copr-backendnoarcha976f61bc4940e1e2f7bbef68f0032a4e68e3f99a1ccfe5eb9e7eb7ef31750c0Backend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-56b1aeab-82d7-419d-a96f-46f5a5f74263copr-backend-1.165-1.src.rpm/etc/copr/etc/copr/copr-be.conf/etc/cron.daily/copr-backend/etc/cron.weekly/copr-backend/etc/logrotate.d/copr-backend/etc/sudoers.d/copr/usr/bin/copr-assure-permissions/usr/bin/copr-aws-s3-hitcounter/usr/bin/copr-backend-analyze-results/usr/bin/copr-backend-generate-graphs/usr/bin/copr-backend-process-action/usr/bin/copr-backend-process-build/usr/bin/copr-backend-resultdir-cleaner/usr/bin/copr-backend-unknown-resalloc-tickets.py/usr/bin/copr-compress-live-logs/usr/bin/copr-rename-chroot/usr/bin/copr-repo/usr/bin/copr-run-dispatcher/usr/bin/copr_find_obsolete_builds.sh/usr/bin/copr_find_wrong_chroot_artifacts.py/usr/bin/copr_fix_gpg.py/usr/bin/copr_log_hitcounter.py/usr/bin/copr_print_results_to_delete.py/usr/bin/copr_prune_results.py/usr/bin/copr_prune_srpms.py/usr/bin/copr_run_logger.py/usr/bin/copr_sign_unsigned.py/usr/bin/print_queues.py/usr/sbin/copr-backend-servicecopr-backendnoarch576576c3baaf09fce322c91a5612e19bc99c53b986febbe3dd5b67b30977ebbaBackend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-2d9ca3c9-8b2b-442e-a90d-efd7c9608640copr-backend-1.165-1.src.rpm/etc/copr/etc/copr/copr-be.conf/etc/cron.daily/copr-backend/etc/cron.weekly/copr-backend/etc/logrotate.d/copr-backend/etc/sudoers.d/copr/usr/bin/copr-assure-permissions/usr/bin/copr-aws-s3-hitcounter/usr/bin/copr-backend-analyze-results/usr/bin/copr-backend-generate-graphs/usr/bin/copr-backend-process-action/usr/bin/copr-backend-process-build/usr/bin/copr-backend-resultdir-cleaner/usr/bin/copr-backend-unknown-resalloc-tickets.py/usr/bin/copr-compress-live-logs/usr/bin/copr-rename-chroot/usr/bin/copr-repo/usr/bin/copr-run-dispatcher/usr/bin/copr_find_obsolete_builds.sh/usr/bin/copr_find_wrong_chroot_artifacts.py/usr/bin/copr_fix_gpg.py/usr/bin/copr_log_hitcounter.py/usr/bin/copr_print_results_to_delete.py/usr/bin/copr_prune_results.py/usr/bin/copr_prune_srpms.py/usr/bin/copr_run_logger.py/usr/bin/copr_sign_unsigned.py/usr/bin/print_queues.py/usr/sbin/copr-backend-servicecopr-backendnoarch5e9f2d80240496fef2a5c083ba5b43da6771d43c01b0bc141c289b97f12a26c0Backend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b015ca6d-9802-46a7-9a60-0a8731e39ceecopr-backend-1.165-1.src.rpm/etc/copr/etc/copr/copr-be.conf/etc/cron.daily/copr-backend/etc/cron.weekly/copr-backend/etc/logrotate.d/copr-backend/etc/sudoers.d/copr/usr/bin/copr-assure-permissions/usr/bin/copr-aws-s3-hitcounter/usr/bin/copr-backend-analyze-results/usr/bin/copr-backend-generate-graphs/usr/bin/copr-backend-process-action/usr/bin/copr-backend-process-build/usr/bin/copr-backend-resultdir-cleaner/usr/bin/copr-backend-unknown-resalloc-tickets.py/usr/bin/copr-compress-live-logs/usr/bin/copr-rename-chroot/usr/bin/copr-repo/usr/bin/copr-run-dispatcher/usr/bin/copr_find_obsolete_builds.sh/usr/bin/copr_find_wrong_chroot_artifacts.py/usr/bin/copr_fix_gpg.py/usr/bin/copr_log_hitcounter.py/usr/bin/copr_print_results_to_delete.py/usr/bin/copr_prune_results.py/usr/bin/copr_prune_srpms.py/usr/bin/copr_run_logger.py/usr/bin/copr_sign_unsigned.py/usr/bin/print_queues.py/usr/sbin/copr-backend-servicecopr-backendsrcdb65d6d4d87a726d0a8865b64d8c572b76081988acd30ba39bec523fcfb2880dBackend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b10b2387-afa8-4b00-9feb-89bf9b7a6632copr-backendsrcfbf191212a5fed891bc05392219b7888d9e90a765ce9f4a9d6d0320b08de5f60Backend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c68d35cf-93ca-450e-8cd6-990665cc6d29copr-backendsrc5329bc437a90f444c0b7ae11a500790aa607367e09f16641ad6c87fc84cd2874Backend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-56b1aeab-82d7-419d-a96f-46f5a5f74263copr-backendsrc914a4f01915c8902b7baa4b470f0458545947ac011b0f0a00e24351f80b1b8a2Backend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-2d9ca3c9-8b2b-442e-a90d-efd7c9608640copr-backendsrc9e8870a6a213bb3633b6c62e3669a263bb1f43579c1deb25f89c4cae50b80ec0Backend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b015ca6d-9802-46a7-9a60-0a8731e39ceecopr-backendnoarchfca38778aad58784f9436fe8dc917c25795265459cf2a6e1808665afe6aeb13cBackend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-0d15fee0-94cd-4e8b-ba7b-70da04a92654copr-backend-1.168-1.src.rpm/etc/copr/etc/copr/copr-be.conf/etc/cron.daily/copr-backend/etc/cron.weekly/copr-backend/etc/logrotate.d/copr-backend/etc/sudoers.d/copr/usr/bin/copr-assure-permissions/usr/bin/copr-aws-s3-hitcounter/usr/bin/copr-backend-analyze-results/usr/bin/copr-backend-generate-graphs/usr/bin/copr-backend-process-action/usr/bin/copr-backend-process-build/usr/bin/copr-backend-resultdir-cleaner/usr/bin/copr-backend-unknown-resalloc-tickets.py/usr/bin/copr-compress-live-logs/usr/bin/copr-rename-chroot/usr/bin/copr-repo/usr/bin/copr-run-dispatcher/usr/bin/copr_find_obsolete_builds.sh/usr/bin/copr_find_wrong_chroot_artifacts.py/usr/bin/copr_fix_gpg.py/usr/bin/copr_log_hitcounter.py/usr/bin/copr_print_results_to_delete.py/usr/bin/copr_prune_results.py/usr/bin/copr_prune_srpms.py/usr/bin/copr_run_logger.py/usr/bin/copr_sign_unsigned.py/usr/bin/print_queues.py/usr/sbin/copr-backend-servicecopr-backendnoarche3303a4436f19f8cffa08bc52367b954c25ff3b5853764016d8fcb3fa69b5fe5Backend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-32463d61-f7e8-4a0d-a460-ac8d652ec58ccopr-backend-1.168-1.src.rpm/etc/copr/etc/copr/copr-be.conf/etc/cron.daily/copr-backend/etc/cron.weekly/copr-backend/etc/logrotate.d/copr-backend/etc/sudoers.d/copr/usr/bin/copr-assure-permissions/usr/bin/copr-aws-s3-hitcounter/usr/bin/copr-backend-analyze-results/usr/bin/copr-backend-generate-graphs/usr/bin/copr-backend-process-action/usr/bin/copr-backend-process-build/usr/bin/copr-backend-resultdir-cleaner/usr/bin/copr-backend-unknown-resalloc-tickets.py/usr/bin/copr-compress-live-logs/usr/bin/copr-rename-chroot/usr/bin/copr-repo/usr/bin/copr-run-dispatcher/usr/bin/copr_find_obsolete_builds.sh/usr/bin/copr_find_wrong_chroot_artifacts.py/usr/bin/copr_fix_gpg.py/usr/bin/copr_log_hitcounter.py/usr/bin/copr_print_results_to_delete.py/usr/bin/copr_prune_results.py/usr/bin/copr_prune_srpms.py/usr/bin/copr_run_logger.py/usr/bin/copr_sign_unsigned.py/usr/bin/print_queues.py/usr/sbin/copr-backend-servicecopr-backendnoarch95111e8b7ab7ed92071a31f046f2cb59b5d1ca13caeeb3cbc4135990b6ec084bBackend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-1c5d24fa-a67b-4a1c-af32-37861a1844f5copr-backend-1.168-1.src.rpm/etc/copr/etc/copr/copr-be.conf/etc/cron.daily/copr-backend/etc/cron.weekly/copr-backend/etc/logrotate.d/copr-backend/etc/sudoers.d/copr/usr/bin/copr-assure-permissions/usr/bin/copr-aws-s3-hitcounter/usr/bin/copr-backend-analyze-results/usr/bin/copr-backend-generate-graphs/usr/bin/copr-backend-process-action/usr/bin/copr-backend-process-build/usr/bin/copr-backend-resultdir-cleaner/usr/bin/copr-backend-unknown-resalloc-tickets.py/usr/bin/copr-compress-live-logs/usr/bin/copr-rename-chroot/usr/bin/copr-repo/usr/bin/copr-run-dispatcher/usr/bin/copr_find_obsolete_builds.sh/usr/bin/copr_find_wrong_chroot_artifacts.py/usr/bin/copr_fix_gpg.py/usr/bin/copr_log_hitcounter.py/usr/bin/copr_print_results_to_delete.py/usr/bin/copr_prune_results.py/usr/bin/copr_prune_srpms.py/usr/bin/copr_run_logger.py/usr/bin/copr_sign_unsigned.py/usr/bin/print_queues.py/usr/sbin/copr-backend-servicecopr-backendnoarch3a4605869dde552296e1c5eacb51e6ac97bdfad27f404fcac6c52e7ce6126588Backend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e2666111-3580-414a-ae94-4425be89f433copr-backend-1.168-1.src.rpm/etc/copr/etc/copr/copr-be.conf/etc/cron.daily/copr-backend/etc/cron.weekly/copr-backend/etc/logrotate.d/copr-backend/etc/sudoers.d/copr/usr/bin/copr-assure-permissions/usr/bin/copr-aws-s3-hitcounter/usr/bin/copr-backend-analyze-results/usr/bin/copr-backend-generate-graphs/usr/bin/copr-backend-process-action/usr/bin/copr-backend-process-build/usr/bin/copr-backend-resultdir-cleaner/usr/bin/copr-backend-unknown-resalloc-tickets.py/usr/bin/copr-compress-live-logs/usr/bin/copr-rename-chroot/usr/bin/copr-repo/usr/bin/copr-run-dispatcher/usr/bin/copr_find_obsolete_builds.sh/usr/bin/copr_find_wrong_chroot_artifacts.py/usr/bin/copr_fix_gpg.py/usr/bin/copr_log_hitcounter.py/usr/bin/copr_print_results_to_delete.py/usr/bin/copr_prune_results.py/usr/bin/copr_prune_srpms.py/usr/bin/copr_run_logger.py/usr/bin/copr_sign_unsigned.py/usr/bin/print_queues.py/usr/sbin/copr-backend-servicecopr-backendsrcebfadc43cd93be1b747bd23919f944baab3e5e856eccff791ebd18ff0436bed2Backend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-0d15fee0-94cd-4e8b-ba7b-70da04a92654copr-backendsrce967f719bfc39ff90088bb23ca56ed582333832ddda4341e4f2d7d82225b67a8Backend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-32463d61-f7e8-4a0d-a460-ac8d652ec58ccopr-backendsrc8c9d440b0dc13d213a7cb8936fd027abd743ee70aa49e06302090c5d80a3e618Backend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-1c5d24fa-a67b-4a1c-af32-37861a1844f5copr-backendsrcca2dd909cc38626ce2272ee12d5d5fd57f972f6bb1ec336874510cd83eb53483Backend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e2666111-3580-414a-ae94-4425be89f433copr-backendnoarch159a7f7827d068f98266955fbbda815d54e611d0f8a88835acd87ca8fe43e2dcBackend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-19bb73fc-097b-4eee-bc25-7eb653b52edecopr-backend-1.171-1.src.rpm/etc/copr/etc/copr/copr-be.conf/etc/cron.daily/copr-backend/etc/cron.weekly/copr-backend/etc/logrotate.d/copr-backend/etc/sudoers.d/copr/usr/bin/copr-assure-permissions/usr/bin/copr-aws-s3-hitcounter/usr/bin/copr-backend-analyze-results/usr/bin/copr-backend-generate-graphs/usr/bin/copr-backend-process-action/usr/bin/copr-backend-process-build/usr/bin/copr-backend-resultdir-cleaner/usr/bin/copr-backend-unknown-resalloc-tickets.py/usr/bin/copr-compress-live-logs/usr/bin/copr-rename-chroot/usr/bin/copr-repo/usr/bin/copr-run-dispatcher/usr/bin/copr_find_obsolete_builds.sh/usr/bin/copr_find_wrong_chroot_artifacts.py/usr/bin/copr_fix_gpg.py/usr/bin/copr_log_hitcounter.py/usr/bin/copr_print_results_to_delete.py/usr/bin/copr_prune_results.py/usr/bin/copr_prune_srpms.py/usr/bin/copr_run_logger.py/usr/bin/copr_sign_unsigned.py/usr/bin/print_queues.py/usr/sbin/copr-backend-servicecopr-backendsrc2542659a7c6811e147abe93f92da970d020f50c46ec460153424d0e6093fca77Backend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-19bb73fc-097b-4eee-bc25-7eb653b52edecopr-backendsrcf3197e20978c28df53d576e86349030d6ca9fce6994de9754b0d53483f5ed0bdBackend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains backend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-549d0365-0a44-44e1-88e5-5b48a37d8a43copr-backend-docnoarchcba576e72611f04abd9dfa1fdec1535bc2753e214278f569dd36c9e4c8f47527Code documentation for COPR backendCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package include documentation for COPR code. Mostly useful for developers
only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-56b1aeab-82d7-419d-a96f-46f5a5f74263copr-backend-1.165-1.src.rpmcopr-backend-docnoarchc4965192460601b748f89f25350fc8cdcd56d53ef0be77c0326f62618b3fd02cCode documentation for COPR backendCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package include documentation for COPR code. Mostly useful for developers
only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-2d9ca3c9-8b2b-442e-a90d-efd7c9608640copr-backend-1.165-1.src.rpmcopr-backend-docnoarchdb0a3cdd1e38dbcbeca25bdcdc72d3ae23c521b1548684bb56e260156c11a646Code documentation for COPR backendCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package include documentation for COPR code. Mostly useful for developers
only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b015ca6d-9802-46a7-9a60-0a8731e39ceecopr-backend-1.165-1.src.rpmcopr-backend-docnoarch11b221282fc83bdf10f5b6c6da9cab849d7ac329b54b6a85a6b1c3c3130f0fe4Code documentation for COPR backendCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package include documentation for COPR code. Mostly useful for developers
only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-0d15fee0-94cd-4e8b-ba7b-70da04a92654copr-backend-1.168-1.src.rpmcopr-backend-docnoarch9eca3f94028aa8ff1d3f5aeffa0451d24d25b4257472dc7b3e0beedbc7faea27Code documentation for COPR backendCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package include documentation for COPR code. Mostly useful for developers
only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-32463d61-f7e8-4a0d-a460-ac8d652ec58ccopr-backend-1.168-1.src.rpmcopr-backend-docnoarchf78ec9d5709d82e46d9e66ab6fa2f32db9872720a507ded8ce3ba29db97fad6eCode documentation for COPR backendCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package include documentation for COPR code. Mostly useful for developers
only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-1c5d24fa-a67b-4a1c-af32-37861a1844f5copr-backend-1.168-1.src.rpmcopr-backend-docnoarch9451e33603d58ecd55786cc43d625bf910be5efc0c647a50a834d6bab6a68bb0Code documentation for COPR backendCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package include documentation for COPR code. Mostly useful for developers
only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e2666111-3580-414a-ae94-4425be89f433copr-backend-1.168-1.src.rpmcopr-backend-docnoarchb8e6d862d5925f394492883c7d72bca339d4ec5b77e1b7f69fde307abb82074fCode documentation for COPR backendCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package include documentation for COPR code. Mostly useful for developers
only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-19bb73fc-097b-4eee-bc25-7eb653b52edecopr-backend-1.171-1.src.rpmcopr-builderx86_64fc4404ffcb91748504d3180067dc7f749c876105d8b2f9671692cd5020822e63copr-rpmbuild with all weak dependenciesProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.
This package contains all optional modules for building SRPM.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a8fe8f42-ff25-434b-8279-d09c40481288copr-rpmbuild-0.64-1.src.rpm/etc/copr-builder/etc/copr-builder/hooks/etc/copr-builder/hooks/cleanup/etc/copr-builder/hooks/cleanup/README/etc/copr-rpmbuild/mock-config-overrides/etc/copr-rpmbuild/mock-config-overrides/README/usr/bin/copr-builder-cleanup/usr/bin/copr-update-buildercopr-builderx86_647dd43efe9a0bbbd5d123fb0bc3511bea4071e36c497b0ddbdae30288d4f2c7fbcopr-rpmbuild with all weak dependenciesProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.
This package contains all optional modules for building SRPM.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-4fc89fdd-748b-4fb8-85f4-cd0393c200b9copr-rpmbuild-0.66-1.src.rpm/etc/copr-builder/etc/copr-builder/hooks/etc/copr-builder/hooks/cleanup/etc/copr-builder/hooks/cleanup/README/etc/copr-rpmbuild/mock-config-overrides/etc/copr-rpmbuild/mock-config-overrides/README/usr/bin/copr-builder-cleanup/usr/bin/copr-update-buildercopr-builderx86_6415e9ec8d55bcc4bf6f4932a72ba585209b9ba2f576685f0a8610bdf415ba79cecopr-rpmbuild with all weak dependenciesProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.
This package contains all optional modules for building SRPM.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-1cb97a38-1026-4012-a1c8-22061b4c137ecopr-rpmbuild-0.68-1.src.rpm/etc/copr-builder/etc/copr-builder/hooks/etc/copr-builder/hooks/cleanup/etc/copr-builder/hooks/cleanup/README/etc/copr-rpmbuild/mock-config-overrides/etc/copr-rpmbuild/mock-config-overrides/README/usr/bin/copr-builder-cleanup/usr/bin/copr-update-buildercopr-builderx86_6458ce5ad72558ddd302a1685ca55413bc7faf10e6a7a95a38a2a04ca02b810fd6copr-rpmbuild with all weak dependenciesProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.
This package contains all optional modules for building SRPM.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-74ded8a0-cc4d-45ef-b88b-53f6ed7b804ccopr-rpmbuild-0.68-1.src.rpm/etc/copr-builder/etc/copr-builder/hooks/etc/copr-builder/hooks/cleanup/etc/copr-builder/hooks/cleanup/README/etc/copr-rpmbuild/mock-config-overrides/etc/copr-rpmbuild/mock-config-overrides/README/usr/bin/copr-builder-cleanup/usr/bin/copr-update-buildercopr-builderx86_64fb65ff668924441d417e0e7ceda07d0add3b104c35f9f3f5407bd314a59756bfcopr-rpmbuild with all weak dependenciesProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.
This package contains all optional modules for building SRPM.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-91ec6a00-578d-4281-b1dc-c51cf9c3b895copr-rpmbuild-0.68-1.src.rpm/etc/copr-builder/etc/copr-builder/hooks/etc/copr-builder/hooks/cleanup/etc/copr-builder/hooks/cleanup/README/etc/copr-rpmbuild/mock-config-overrides/etc/copr-rpmbuild/mock-config-overrides/README/usr/bin/copr-builder-cleanup/usr/bin/copr-update-buildercopr-builderx86_6445e2ec709eb29eb500b170fd383854c56f315618714827ddd3016e137b95a728copr-rpmbuild with all weak dependenciesProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.
This package contains all optional modules for building SRPM.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-00643205-9cca-4de7-a031-6bf4cf1cc02acopr-rpmbuild-0.68-1.src.rpm/etc/copr-builder/etc/copr-builder/hooks/etc/copr-builder/hooks/cleanup/etc/copr-builder/hooks/cleanup/README/etc/copr-rpmbuild/mock-config-overrides/etc/copr-rpmbuild/mock-config-overrides/README/usr/bin/copr-builder-cleanup/usr/bin/copr-update-buildercopr-clinoarche95972fea134ef21799342095914615cd0a91fb571ef1fc1f77c6f6500009397Command line interface for COPRCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains command line interface.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-22f3939d-b213-46a1-9370-1d2963fdbd76copr-cli-1.109-1.git.7620.64e3545.src.rpm/usr/bin/copr/usr/bin/copr-cli/usr/bin/package-build-ordercopr-clisrcd89ac6f2736c4b74c7585b503ce1c4fc803b999147fa157372bfe8fc65d45509Command line interface for COPRCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains command line interface.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-22f3939d-b213-46a1-9370-1d2963fdbd76copr-clinoarch849f65e02bde055f47b0a0b010a701b4cc853f0ef185679cf62d98dd624f27d8Command line interface for COPRCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains command line interface.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-392924f2-50a3-4cee-8061-d63070ee0529copr-cli-1.109-1.git.7652.b8277be.src.rpm/usr/bin/copr/usr/bin/copr-cli/usr/bin/package-build-ordercopr-clisrc7954d801c4eaa2663b5b32b794a266db4a40de38a7d7b226d034dc08eeab77c0Command line interface for COPRCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains command line interface.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-392924f2-50a3-4cee-8061-d63070ee0529copr-clisrc404ae300dfbfd7f0ce523de8665cd0b44760e069d799b75038ae714296364176Command line interface for COPRCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains command line interface.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d7514723-e73b-4450-bd7b-c35aec18afb2copr-dist-gitnoarchd73b445925cde62c67f768cc73583cc044afdde7fa447212a2f339dcc1d1b253Copr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-2348af1b-0481-40fb-8230-236242d2b795copr-dist-git-0.60-1.src.rpm/etc/copr/etc/copr/copr-dist-git.conf/etc/cron.monthly/copr-dist-git/etc/httpd/conf.d/copr-dist-git.conf/etc/logrotate.d/etc/logrotate.d/copr-dist-git/usr/bin/clear_lookaside_cache.py/usr/bin/copr-dist-git-config/usr/bin/copr-dist-git-refresh-cgit/usr/bin/copr-distgit-process-import/usr/bin/copr-prune-dist-git-sources/usr/bin/copr-run-dispatcher/usr/bin/dist-git-clear-tarballs.py/usr/bin/prune-dist-git.pycopr-dist-gitsrc91b111705aa0eb7af772362e58f120d73f8634b658a2eee673dc5d4b229cd79aCopr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-049c0476-2408-4360-bbc3-4ca9e53f5510copr-dist-gitsrc9dea140e36c0b9f92a35e784fe07344f5a0f560b0e47b498659334d57b03c71eCopr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-53955087-4f9b-48d0-bdd8-05b52376c527copr-dist-gitsrce5d1e99a17106854c9f4e57f5c8c7727e64999af1ab79b97e8683cbe7948d96eCopr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-0a4ee369-c866-482c-9184-bab81ad9733fcopr-dist-gitsrc62b3edbc013107dab575ea093309cfa0403d56cc308b41b240206df898ca31f7Copr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a59dd994-1809-4bd6-9439-8b5b17d224fecopr-dist-gitsrc8878234bd0182a00c4233ca587cd72687f4cd4ea0b5acd85e429d592bcadd483Copr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-4e926d79-e060-4ae9-8c17-9e65ed0499cbcopr-dist-gitsrc7ddb29d6ee6dbbac34f24f70b5f75ecd016e3404694a8d9f0e006d9918ce2fe5Copr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-94c1fedb-8db6-497b-8719-b3c424c67d30copr-dist-gitsrc8a21eefe6d191acdfdd14d988c3a7514cd5a53f2e5b6a325b240491e1c71b9cfCopr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-fa08385b-0953-4618-9592-4b96773342fdcopr-dist-gitsrcd3fc3663592cd278df6cae13e55d8917d960449f19e3b1988b03631113ffb250Copr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e1492aed-5cc9-4611-94db-1eac42b4bca1copr-dist-gitsrc5f33230067cf429c226c0e014a366ae7b807b94efba0e72f03cb315382a9717bCopr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3d5b7345-e045-42d7-962d-c9add95a5472copr-dist-gitsrc65ebd90a352bdb50d2e998c96128a4bf5d7bb7560d6384827111229f1604bc97Copr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-46108f81-32da-4179-98e8-2224d98c5c5fcopr-dist-gitsrc38427fbac7e93afdf19f2c1670d31638083e8bf4f3a0a45074417717dc03de3aCopr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d94772e4-c0eb-4cc1-bfed-b03b058e59e2copr-dist-gitsrc38abed0e4489aa492e5369d424094f16e9cf15ad25942f40d3b77fa4ef169005Copr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3fd0c290-d87c-4abb-a705-acb8f3377481copr-dist-gitsrca7950cfce8c07c5833dc3b0335f3ce750105f0b2a98278f640982565327e8cf4Copr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-2348af1b-0481-40fb-8230-236242d2b795copr-dist-gitnoarcha6f0b980abfa4a63b05149cb02cfda73e831c56bc94c44f71de0dc2aad497bd7Copr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6d5c1e1a-a148-4eea-8d83-8898f8145f0bcopr-dist-git-0.64-1.src.rpm/etc/copr/etc/copr/copr-dist-git.conf/etc/cron.monthly/copr-dist-git/etc/httpd/conf.d/copr-dist-git.conf/etc/logrotate.d/etc/logrotate.d/copr-dist-git/usr/bin/clear_lookaside_cache.py/usr/bin/copr-dist-git-config/usr/bin/copr-dist-git-refresh-cgit/usr/bin/copr-distgit-process-import/usr/bin/copr-prune-dist-git-sources/usr/bin/copr-run-dispatcher/usr/bin/dist-git-clear-tarballs.py/usr/bin/prune-dist-git.pycopr-dist-gitsrc522a746579d3128746b6099ee5413e02322ee16271d45e1ab80b53be10b98e1dCopr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6d5c1e1a-a148-4eea-8d83-8898f8145f0bcopr-dist-gitnoarch381f3dad03ab3b82c02c62affaa239e333af765a86ba8c9fa9b30fc956a8c654Copr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6d11299f-8554-43ef-a97f-511547db119dcopr-dist-git-0.66-1.git.19.49aa87c.src.rpm/etc/copr/etc/copr/copr-dist-git.conf/etc/cron.monthly/copr-dist-git/etc/httpd/conf.d/copr-dist-git.conf/etc/logrotate.d/etc/logrotate.d/copr-dist-git/usr/bin/clear_lookaside_cache.py/usr/bin/copr-dist-git-config/usr/bin/copr-dist-git-refresh-cgit/usr/bin/copr-distgit-process-import/usr/bin/copr-prune-dist-git-sources/usr/bin/copr-run-dispatcher/usr/bin/dist-git-clear-tarballs.py/usr/bin/prune-dist-git.pycopr-dist-gitsrcebe82b49932f08273d3acd8d63d9626cd9625be5a4512832c0d61678fff1ea14Copr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6d11299f-8554-43ef-a97f-511547db119dcopr-dist-gitnoarch53f1b9e3444f879960425ed82c48f2dc2ddd76db8772f6c31d6aaa6042dbc656Copr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-4e77b809-66e3-4c4a-863d-efd5b552f8eccopr-dist-git-0.66-1.git.7611.6327012.src.rpm/etc/copr/etc/copr/copr-dist-git.conf/etc/cron.monthly/copr-dist-git/etc/httpd/conf.d/copr-dist-git.conf/etc/logrotate.d/etc/logrotate.d/copr-dist-git/usr/bin/clear_lookaside_cache.py/usr/bin/copr-dist-git-config/usr/bin/copr-dist-git-refresh-cgit/usr/bin/copr-distgit-process-import/usr/bin/copr-prune-dist-git-sources/usr/bin/copr-run-dispatcher/usr/bin/dist-git-clear-tarballs.py/usr/bin/prune-dist-git.pycopr-dist-gitsrc72a01a13d9aa1e5fcc343d120040c0ca847dc8fa2d05a3776ab14907bc3da232Copr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-4e77b809-66e3-4c4a-863d-efd5b552f8eccopr-dist-gitnoarch89aba62d33e860853848d4203608ccc11f66731e1b5567e7105197403bf3210eCopr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c0af8377-1f26-4e2d-87d6-97c4ae0a5a02copr-dist-git-0.66-1.src.rpm/etc/copr/etc/copr/copr-dist-git.conf/etc/cron.monthly/copr-dist-git/etc/httpd/conf.d/copr-dist-git.conf/etc/logrotate.d/etc/logrotate.d/copr-dist-git/usr/bin/clear_lookaside_cache.py/usr/bin/copr-dist-git-config/usr/bin/copr-dist-git-refresh-cgit/usr/bin/copr-distgit-process-import/usr/bin/copr-prune-dist-git-sources/usr/bin/copr-run-dispatcher/usr/bin/dist-git-clear-tarballs.py/usr/bin/prune-dist-git.pycopr-dist-gitnoarch5830646ebb65eff830099904f09e7249aec47ebd34cc1567c5a0bfc4fec6c100Copr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c619a8c5-9df9-4a8a-a6ca-f0db70f77401copr-dist-git-0.66-1.src.rpm/etc/copr/etc/copr/copr-dist-git.conf/etc/cron.monthly/copr-dist-git/etc/httpd/conf.d/copr-dist-git.conf/etc/logrotate.d/etc/logrotate.d/copr-dist-git/usr/bin/clear_lookaside_cache.py/usr/bin/copr-dist-git-config/usr/bin/copr-dist-git-refresh-cgit/usr/bin/copr-distgit-process-import/usr/bin/copr-prune-dist-git-sources/usr/bin/copr-run-dispatcher/usr/bin/dist-git-clear-tarballs.py/usr/bin/prune-dist-git.pycopr-dist-gitnoarch4bf03b2b98fe97f9c2b1ffe1a96e78f9f886a453c39db83aa948b8aaa71bd271Copr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f4b07876-4c69-4e08-a200-cf0998f19b9bcopr-dist-git-0.66-1.src.rpm/etc/copr/etc/copr/copr-dist-git.conf/etc/cron.monthly/copr-dist-git/etc/httpd/conf.d/copr-dist-git.conf/etc/logrotate.d/etc/logrotate.d/copr-dist-git/usr/bin/clear_lookaside_cache.py/usr/bin/copr-dist-git-config/usr/bin/copr-dist-git-refresh-cgit/usr/bin/copr-distgit-process-import/usr/bin/copr-prune-dist-git-sources/usr/bin/copr-run-dispatcher/usr/bin/dist-git-clear-tarballs.py/usr/bin/prune-dist-git.pycopr-dist-gitsrc4ff453539a89801b6cdd29773e7e253ccd290a93a910e5b34252860d94eec6bfCopr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-721fbf1e-22bd-4a68-98cb-cf51c237fcd6copr-dist-gitsrc64179921abf82d420a6ee310a7212fd5810615db0e170881477cad50963ed01bCopr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c0af8377-1f26-4e2d-87d6-97c4ae0a5a02copr-dist-gitsrca159854d61a904b13a5038fd4df2f319becfff3662959fd50e881439d1ffd77fCopr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c619a8c5-9df9-4a8a-a6ca-f0db70f77401copr-dist-gitsrc6866454966eab7094297e122b9e2b7f00123d5e780c10a7b5d3786df73e3ecf3Copr services for Dist Git serverCOPR is lightweight build system. It allows you to create new project in WebUI
and submit new builds and COPR will create yum repository from latest builds.
This package contains Copr services for Dist Git server.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f4b07876-4c69-4e08-a200-cf0998f19b9bcopr-distgit-clientx86_64e9022fb4d91e5e59c2601b86d30e01eca517ea4c61abce71ceabbe05e21e344bUtility to download sources from dist-gitA simple, configurable python utility that is able to download sources from
various dist-git instances, and generate source RPMs.
The utility is able to automatically map the .git/config clone URL into
the corresponding dist-git instance configuration.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a8fe8f42-ff25-434b-8279-d09c40481288copr-rpmbuild-0.64-1.src.rpm/etc/copr-distgit-client/etc/copr-distgit-client/default.ini/usr/bin/copr-distgit-clientcopr-distgit-clientx86_6471bd3ebcd8cdc47f422b65a531aa5c6f334285c35ff2428eaf38b314bc8befafUtility to download sources from dist-gitA simple, configurable python utility that is able to download sources from
various dist-git instances, and generate source RPMs.
The utility is able to automatically map the .git/config clone URL into
the corresponding dist-git instance configuration.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-4fc89fdd-748b-4fb8-85f4-cd0393c200b9copr-rpmbuild-0.66-1.src.rpm/etc/copr-distgit-client/etc/copr-distgit-client/default.ini/usr/bin/copr-distgit-clientcopr-distgit-clientx86_6454d5c4bcb8732f4a70fe81e23478f14f461c67429813b7720297b840e63330ebUtility to download sources from dist-gitA simple, configurable python utility that is able to download sources from
various dist-git instances, and generate source RPMs.
The utility is able to automatically map the .git/config clone URL into
the corresponding dist-git instance configuration.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-1cb97a38-1026-4012-a1c8-22061b4c137ecopr-rpmbuild-0.68-1.src.rpm/etc/copr-distgit-client/etc/copr-distgit-client/default.ini/usr/bin/copr-distgit-clientcopr-distgit-clientx86_6463ec567b6eff2eee39dc7f5c71294a383f259266cf57c73006689c42395d0699Utility to download sources from dist-gitA simple, configurable python utility that is able to download sources from
various dist-git instances, and generate source RPMs.
The utility is able to automatically map the .git/config clone URL into
the corresponding dist-git instance configuration.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-74ded8a0-cc4d-45ef-b88b-53f6ed7b804ccopr-rpmbuild-0.68-1.src.rpm/etc/copr-distgit-client/etc/copr-distgit-client/default.ini/usr/bin/copr-distgit-clientcopr-distgit-clientx86_644e1946ac5f63bf433361191850ec68bdd6346a0f59dd16544dfd2906308950fcUtility to download sources from dist-gitA simple, configurable python utility that is able to download sources from
various dist-git instances, and generate source RPMs.
The utility is able to automatically map the .git/config clone URL into
the corresponding dist-git instance configuration.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-91ec6a00-578d-4281-b1dc-c51cf9c3b895copr-rpmbuild-0.68-1.src.rpm/etc/copr-distgit-client/etc/copr-distgit-client/default.ini/usr/bin/copr-distgit-clientcopr-distgit-clientx86_6476d2f80cc7789d4f4b5682053ed2c33af436b2fc44c10094c977383530ae8fc9Utility to download sources from dist-gitA simple, configurable python utility that is able to download sources from
various dist-git instances, and generate source RPMs.
The utility is able to automatically map the .git/config clone URL into
the corresponding dist-git instance configuration.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-00643205-9cca-4de7-a031-6bf4cf1cc02acopr-rpmbuild-0.68-1.src.rpm/etc/copr-distgit-client/etc/copr-distgit-client/default.ini/usr/bin/copr-distgit-clientcopr-frontendnoarchfbd831c2a8989fd6217e379a767bbd4f6f5c7365e9be67352e0bbc245dac3ceaFrontend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains frontend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-bf12dde3-0629-4d56-937c-b09cc22cea30copr-frontend-1.199-1.src.rpm/etc/copr/etc/copr/chroots.conf/etc/copr/copr.conf/etc/copr/copr_devel.conf/etc/copr/copr_unit_test.conf/etc/cron.daily/copr-frontend/etc/cron.daily/copr-frontend-optional/etc/cron.hourly/copr-frontend/etc/cron.hourly/copr-frontend-optional/etc/logrotate.d/copr-frontend/usr/bin/copr-frontendcopr-frontendnoarche849e34e0ca8bdc50a2415e8bfc8dc18e02fb237ab9055afdbb2d58f920a9359Frontend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains frontend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f9d97aad-7604-4928-a857-e71a34232de3copr-frontend-1.199-1.src.rpm/etc/copr/etc/copr/chroots.conf/etc/copr/copr.conf/etc/copr/copr_devel.conf/etc/copr/copr_unit_test.conf/etc/cron.daily/copr-frontend/etc/cron.daily/copr-frontend-optional/etc/cron.hourly/copr-frontend/etc/cron.hourly/copr-frontend-optional/etc/logrotate.d/copr-frontend/usr/bin/copr-frontendcopr-frontendsrccb4650b6253c6addc98f7cad14d5f94fb495ce2ee6784e55c13c8dc9a23ba5d3Frontend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains frontend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-bf12dde3-0629-4d56-937c-b09cc22cea30copr-frontendsrcbb697ea194ff81e89e5c9be1e7a7cc904d0627a01aedd80d0183aa704dc4dd33Frontend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains frontend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f9d97aad-7604-4928-a857-e71a34232de3copr-frontendsrc64ea4c74668d1dada9f9531db9d13f8ff825b1f929568bc1041a56181988561bFrontend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains frontend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-ee43c057-589b-4991-a287-63d3a33c6661copr-frontendsrc2d25d2d09745e14347cda9475ea3b2145228646bd54fc6b1f51ea7ef2c830e57Frontend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains frontend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5214f3ce-00cd-4af4-baa6-e939cbc34a46copr-frontendsrc3f637237050a03af528c5326827d97a41aad0018ee8f4eb0989996fa9b1c315aFrontend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains frontend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-2ecd2a06-7d80-4961-bde3-9cb6134a6ac5copr-frontendsrccd98ecdc3f525af393d21ff9a78eaa9ff1487771031ca03ce8361557c7e6824eFrontend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains frontend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-2005b88d-9f14-49cb-bc61-ec7973ede5a0copr-frontendsrcd62ce34caa336311a1e6e1236710428084a5fc245cb0de2d9ff0fc9554e4efa3Frontend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains frontend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-9718d0a2-b277-452d-b9fd-2c69c01c000fcopr-frontendsrc3bba22c1f96bcf853d0d97f9330679079ebc1872f720134bbd615c119615fbdfFrontend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains frontend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-320e13fa-6c0e-4fe0-a0d8-1a75e3d3f1d4copr-frontendsrcbf53ac24b0c916a7b469fd6e9c44f2fa1ba8a7deeb8cca08f87dfc40d647341bFrontend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains frontend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-300565b5-5b63-48d2-8b7e-a18e9bc08094copr-frontendnoarchc67046a7e834517ea9d404dc0ebb7715da1b00283ca68d0ebf1931498f789ebaFrontend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains frontend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-72beeb65-aed3-4b77-8967-8bbf4c93ba27copr-frontend-1.200-1.src.rpm/etc/copr/etc/copr/chroots.conf/etc/copr/copr.conf/etc/copr/copr_devel.conf/etc/copr/copr_unit_test.conf/etc/cron.daily/copr-frontend/etc/cron.daily/copr-frontend-optional/etc/cron.hourly/copr-frontend/etc/cron.hourly/copr-frontend-optional/etc/logrotate.d/copr-frontend/usr/bin/copr-frontendcopr-frontendnoarchd068a7197e41b458d8f731530a57a84134cdbb268eb685000b0f1176ff9aff55Frontend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains frontend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-42ac65e7-6290-4966-90b2-32b1511cc742copr-frontend-1.200-1.src.rpm/etc/copr/etc/copr/chroots.conf/etc/copr/copr.conf/etc/copr/copr_devel.conf/etc/copr/copr_unit_test.conf/etc/cron.daily/copr-frontend/etc/cron.daily/copr-frontend-optional/etc/cron.hourly/copr-frontend/etc/cron.hourly/copr-frontend-optional/etc/logrotate.d/copr-frontend/usr/bin/copr-frontendcopr-frontendnoarchb8bd0beb4a11564be0e533a4dd82e867d3bccbc436489f942c43e8f91724b45fFrontend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains frontend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e62a184c-7625-4809-80f5-1c53268c9ed9copr-frontend-1.200-1.src.rpm/etc/copr/etc/copr/chroots.conf/etc/copr/copr.conf/etc/copr/copr_devel.conf/etc/copr/copr_unit_test.conf/etc/cron.daily/copr-frontend/etc/cron.daily/copr-frontend-optional/etc/cron.hourly/copr-frontend/etc/cron.hourly/copr-frontend-optional/etc/logrotate.d/copr-frontend/usr/bin/copr-frontendcopr-frontendsrc939e70cdc183ae747e658b9362fcc9b3439c3f5ad4bba83f5e6790d99ed5287cFrontend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains frontend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-4d879061-9c2f-4d87-a966-b2ce4795d26ecopr-frontendsrc961be79adba5660d71e6eb4b752fee63f970dd6378759913759582de34020240Frontend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains frontend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-72beeb65-aed3-4b77-8967-8bbf4c93ba27copr-frontendsrc4cbf0a55bafe1bb5e20b3f46a4eb90961358ba0f14c58582288a632648ef5fa8Frontend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains frontend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-42ac65e7-6290-4966-90b2-32b1511cc742copr-frontendsrc769dd36e7ec7aa32b47d9f3f7870b76dd7f1c9e1feb152d466c4a91420296422Frontend for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latests builds.
This package contains frontend.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e62a184c-7625-4809-80f5-1c53268c9ed9copr-frontend-develnoarche632af88c980efc3f78511cd5d46ec8f43a75a218a73ba533e8cd72e50f25e48Development files to build against copr-frontendFiles which allow a build against copr-frontend, currently it's useful to build
custom copr-frontend-flavor package.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-bf12dde3-0629-4d56-937c-b09cc22cea30copr-frontend-1.199-1.src.rpmcopr-frontend-develnoarchb53ab2a7d4c3c8ef6ffd892e29bba073931feb712e8880ad25be7a2df7385697Development files to build against copr-frontendFiles which allow a build against copr-frontend, currently it's useful to build
custom copr-frontend-flavor package.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f9d97aad-7604-4928-a857-e71a34232de3copr-frontend-1.199-1.src.rpmcopr-frontend-develnoarch4100ece6ddab4e6257e1ff9682b22f507b9cf8a3371b73039cf73274fd84858cDevelopment files to build against copr-frontendFiles which allow a build against copr-frontend, currently it's useful to build
custom copr-frontend-flavor package.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-72beeb65-aed3-4b77-8967-8bbf4c93ba27copr-frontend-1.200-1.src.rpmcopr-frontend-develnoarchbe70a3522c3a5e770074b495c2a5dec53779c53fbefebd49a670f1ea80842f40Development files to build against copr-frontendFiles which allow a build against copr-frontend, currently it's useful to build
custom copr-frontend-flavor package.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-42ac65e7-6290-4966-90b2-32b1511cc742copr-frontend-1.200-1.src.rpmcopr-frontend-develnoarchad87f4b02f0ee0e498a188035d319b65eedc32723f1522f530b1c6ea68c2fd9aDevelopment files to build against copr-frontendFiles which allow a build against copr-frontend, currently it's useful to build
custom copr-frontend-flavor package.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e62a184c-7625-4809-80f5-1c53268c9ed9copr-frontend-1.200-1.src.rpmcopr-frontend-fedoranoarche2b9acecff0a63da5b5e77de01fef55544de6ce1255e0fb1bf5143050d924305Template files for copr-frontendTemplate files for copr-frontend (basically colors, logo, etc.). This package is
designed to be replaced - build your replacement package against copr-frontend-devel
to produce compatible {name}-flavor package, then use man dnf.conf(5) 'priority'
option to prioritize your package against the default package we provide.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-bf12dde3-0629-4d56-937c-b09cc22cea30copr-frontend-1.199-1.src.rpmcopr-frontend-fedoranoarchbc5a0044f930e0005576d8326977737a1cc98d8803d4957f8af67889fd1861e8Template files for copr-frontendTemplate files for copr-frontend (basically colors, logo, etc.). This package is
designed to be replaced - build your replacement package against copr-frontend-devel
to produce compatible {name}-flavor package, then use man dnf.conf(5) 'priority'
option to prioritize your package against the default package we provide.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f9d97aad-7604-4928-a857-e71a34232de3copr-frontend-1.199-1.src.rpmcopr-frontend-fedoranoarch9ed720bae6a742f123421bd503c0815a9de4dae90b4e543083b6198c60453206Template files for copr-frontendTemplate files for copr-frontend (basically colors, logo, etc.). This package is
designed to be replaced - build your replacement package against copr-frontend-devel
to produce compatible {name}-flavor package, then use man dnf.conf(5) 'priority'
option to prioritize your package against the default package we provide.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-72beeb65-aed3-4b77-8967-8bbf4c93ba27copr-frontend-1.200-1.src.rpmcopr-frontend-fedoranoarch901e67c2dc67c76c70c077d94c6a621f2fe2956433b67f12f46d3f823cf3f00eTemplate files for copr-frontendTemplate files for copr-frontend (basically colors, logo, etc.). This package is
designed to be replaced - build your replacement package against copr-frontend-devel
to produce compatible {name}-flavor package, then use man dnf.conf(5) 'priority'
option to prioritize your package against the default package we provide.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-42ac65e7-6290-4966-90b2-32b1511cc742copr-frontend-1.200-1.src.rpmcopr-frontend-fedoranoarch06909df56083e90b72d993d54767afbdcb867f653a567db2edc36d25a345da53Template files for copr-frontendTemplate files for copr-frontend (basically colors, logo, etc.). This package is
designed to be replaced - build your replacement package against copr-frontend-devel
to produce compatible {name}-flavor package, then use man dnf.conf(5) 'priority'
option to prioritize your package against the default package we provide.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e62a184c-7625-4809-80f5-1c53268c9ed9copr-frontend-1.200-1.src.rpmcopr-keygennoarch24a543b283f26df03d0e67e9e566310c138ca4c2caeabff72d00057d96abf2c0Part of Copr build system. Aux service that generate keys for signdCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains aux service that generate keys for package signing.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-49cfbfea-b5de-4fb1-b360-8ca565446d76copr-keygen-1.88-1.src.rpm/etc/copr-keygen/etc/cron.daily/copr-keygen/etc/logrotate.d/copr-keygen/etc/sudoers.d/copr_signer/usr/bin/gpg-copr/usr/bin/gpg-copr-prolong/usr/bin/gpg_copr.shcopr-keygensrcdfb60c8bc62fc59f62e43ad99666ef540288aa1b3c1f44372b01d444bb7044b1Part of Copr build system. Aux service that generate keys for signdCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains aux service that generate keys for package signing.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5d4c078f-4d67-4b3b-89a2-16ab5f60a0c1copr-keygensrc32530ccf8118c5d297bade7b968eccdc7d630bbc5613c6def504fb1244269f88Part of Copr build system. Aux service that generate keys for signdCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains aux service that generate keys for package signing.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-49cfbfea-b5de-4fb1-b360-8ca565446d76copr-keygennoarch6b6fd5f590d47ae606522bea69dad3436e8b99f8ea1d23be544c512f1d483f99Part of Copr build system. Aux service that generate keys for signdCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains aux service that generate keys for package signing.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-eb744925-254c-4be1-8b9d-d7440b0fbea7copr-keygen-1.89-1.git.72.34d7b29.src.rpm/etc/copr-keygen/etc/cron.daily/copr-keygen/etc/logrotate.d/copr-keygen/etc/sudoers.d/copr_signer/usr/bin/gpg-copr/usr/bin/gpg-copr-prolong/usr/bin/gpg_copr.shcopr-keygensrcf42902e7dbce174fc64a1d02c378b70719ed6014060ed664f1106cd2a5bb2a56Part of Copr build system. Aux service that generate keys for signdCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains aux service that generate keys for package signing.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-eb744925-254c-4be1-8b9d-d7440b0fbea7copr-keygennoarched470784298571dd7c3fa1f86e9ca924f38d3d0e4fce5541689641d61f6e9f3aPart of Copr build system. Aux service that generate keys for signdCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains aux service that generate keys for package signing.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-99dd5979-b08d-4811-b744-04985bb559e9copr-keygen-1.89-1.git.76.8c8bf18.src.rpm/etc/copr-keygen/etc/cron.daily/copr-keygen/etc/logrotate.d/copr-keygen/etc/sudoers.d/copr_signer/usr/bin/gpg-copr/usr/bin/gpg-copr-prolong/usr/bin/gpg_copr.shcopr-keygensrcf84a01ca0972de218d0f62704671625d28bf9e0d7382cbb5823b60d5f1464199Part of Copr build system. Aux service that generate keys for signdCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains aux service that generate keys for package signing.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-99dd5979-b08d-4811-b744-04985bb559e9copr-keygennoarch0c2836fdd92fada314c5a72fd627be6419ed032033d58d7cddb23ea002823662Part of Copr build system. Aux service that generate keys for signdCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains aux service that generate keys for package signing.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-ba2c8303-8c69-47a5-b713-b72e37932fbfcopr-keygen-1.90-1.src.rpm/etc/copr-keygen/etc/cron.daily/copr-keygen/etc/logrotate.d/copr-keygen/etc/sudoers.d/copr_signer/usr/bin/gpg-copr/usr/bin/gpg-copr-prolong/usr/bin/gpg_copr.shcopr-keygennoarchea444c53609e6a428fae5aa0173b374d0fb7f099cf5461cf3df64288594cecd3Part of Copr build system. Aux service that generate keys for signdCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains aux service that generate keys for package signing.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-7a9d7490-c211-4a34-bc98-634de14f061acopr-keygen-1.90-1.src.rpm/etc/copr-keygen/etc/cron.daily/copr-keygen/etc/logrotate.d/copr-keygen/etc/sudoers.d/copr_signer/usr/bin/gpg-copr/usr/bin/gpg-copr-prolong/usr/bin/gpg_copr.shcopr-keygennoarch42a11f749a9d6d4f5711cb508db84a6b0eedd23e4f3d1e7105ab8b9630bdff68Part of Copr build system. Aux service that generate keys for signdCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains aux service that generate keys for package signing.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-92c3e0b5-3f61-494f-8865-f0872f45767ecopr-keygen-1.90-1.src.rpm/etc/copr-keygen/etc/cron.daily/copr-keygen/etc/logrotate.d/copr-keygen/etc/sudoers.d/copr_signer/usr/bin/gpg-copr/usr/bin/gpg-copr-prolong/usr/bin/gpg_copr.shcopr-keygensrcca3ea6083297452592840b03887f5efe2903ba2b42494737c628762b37b6f3bePart of Copr build system. Aux service that generate keys for signdCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains aux service that generate keys for package signing.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-ba2c8303-8c69-47a5-b713-b72e37932fbfcopr-keygensrc60f19066b9a2008516f7db63ff8fc2463f8554a44762c77e488dc8b5a434f66cPart of Copr build system. Aux service that generate keys for signdCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains aux service that generate keys for package signing.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-7a9d7490-c211-4a34-bc98-634de14f061acopr-keygensrcbeb1f90d1a80670c365f9487ef7753c4329a7b02f5247e3a3d844c0783b5130aPart of Copr build system. Aux service that generate keys for signdCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains aux service that generate keys for package signing.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-92c3e0b5-3f61-494f-8865-f0872f45767ecopr-rpmbuildsrc247b77869f8d9084ecfc35624b9e2d92684ff796e80b8629653d26ccb846e84fRun COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-14a5ddf7-9859-4a54-80e8-f1e69bbedc3bcopr-rpmbuildsrcd747d6a34bda5c705cfef494b2571a604f79440b53fbea8af047b93630ec4f30Run COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f3a3e686-df83-4da5-813c-6dca6f244316copr-rpmbuildsrc6fa44f07058c71c91e332929736409680f9c0a280b80bb9c8e87a27e5654c5b5Run COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-8aa451ca-0ca3-4437-9eb1-657dd39f4ca9copr-rpmbuildsrc862d5aaffc7f00121858e433729e9af441ffbf2158e35dd6c378c6cc9ed6e008Run COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-2ce117eb-d4a1-49f2-89ad-2ccdecb85230copr-rpmbuildsrc45fb7ca19d80e37b41ba62a1da78d24a92ef3f883401b51944d72fbdfdf2a769Run COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c428abcd-dc3f-4212-b124-adda44542e4ecopr-rpmbuildsrcc0e1e844d6e5d5308ca11e55cce263d286f45894cb8a5e0032e28359067ed624Run COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a8fe8f42-ff25-434b-8279-d09c40481288copr-rpmbuildx86_64ee98c3ba757fde4bc5ce5e2692fcf6d13fefac33d90c0619d007d91ef3241911Run COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a8fe8f42-ff25-434b-8279-d09c40481288copr-rpmbuild-0.64-1.src.rpm/etc/copr-rpmbuild/etc/copr-rpmbuild/main.ini/etc/copr-rpmbuild/mock-custom-build.cfg.j2/etc/copr-rpmbuild/mock-source-build.cfg.j2/etc/copr-rpmbuild/mock.cfg.j2/etc/copr-rpmbuild/rpkg.conf.j2/usr/bin/copr-rpmbuild/usr/bin/copr-rpmbuild-cancel/usr/bin/copr-rpmbuild-log/usr/bin/copr-rpmbuild-loggify/usr/bin/copr-sources-customcopr-rpmbuildsrc997e2d703ae04d0b0f9c1dbd7f7508905858786ba322bd0a8d668dc6ae2048afRun COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-4fc89fdd-748b-4fb8-85f4-cd0393c200b9copr-rpmbuildx86_64189c0db919b538bd74b14c88f31bcdb349e1ecbadacb839eece0bd1f8c459549Run COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-4fc89fdd-748b-4fb8-85f4-cd0393c200b9copr-rpmbuild-0.66-1.src.rpm/etc/copr-rpmbuild/etc/copr-rpmbuild/main.ini/etc/copr-rpmbuild/mock-custom-build.cfg.j2/etc/copr-rpmbuild/mock-source-build.cfg.j2/etc/copr-rpmbuild/mock.cfg.j2/etc/copr-rpmbuild/rpkg.conf.j2/usr/bin/copr-rpmbuild/usr/bin/copr-rpmbuild-cancel/usr/bin/copr-rpmbuild-log/usr/bin/copr-rpmbuild-loggify/usr/bin/copr-sources-customcopr-rpmbuildsrc80249ebd3e3a16f1827ca19b9d012221a1a90b9e8471ced2445142b3ae92c6f1Run COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-1cb97a38-1026-4012-a1c8-22061b4c137ecopr-rpmbuildsrc4b153d64ded0c16613abbc8c04ad9c51ec3e024e364b9a8bb41695abf8320cf3Run COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-74ded8a0-cc4d-45ef-b88b-53f6ed7b804ccopr-rpmbuildsrcb160936ae768a6bfb7a285ebd1fb442b5c19faaaec5dc8c746654bc822351a86Run COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-370631e1-1f49-4e7f-a72c-034fa52002e6copr-rpmbuildsrce2db1acaf3d0b81016f3d9fe0eae1283542d66ae9a13a9bf53c2816837fc0c00Run COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-fd82f827-0ce8-4781-bc01-c3d521a14dc9copr-rpmbuildsrc272d6ab91fdbf0f353105c7c059f881a4ee966345b98776fd3acdb0862a3f5c9Run COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-91ec6a00-578d-4281-b1dc-c51cf9c3b895copr-rpmbuildsrc1b89fbc2563f2e7ed0b2d62399caea1d7938ae9c1db9ce42b60785d3be604167Run COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-00643205-9cca-4de7-a031-6bf4cf1cc02acopr-rpmbuildx86_6455a45368ef1bb18a26a688f103710f9d78e63492b7d9b26284453066b1e1a6e2Run COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-1cb97a38-1026-4012-a1c8-22061b4c137ecopr-rpmbuild-0.68-1.src.rpm/etc/copr-rpmbuild/etc/copr-rpmbuild/main.ini/etc/copr-rpmbuild/mock-custom-build.cfg.j2/etc/copr-rpmbuild/mock-source-build.cfg.j2/etc/copr-rpmbuild/mock.cfg.j2/etc/copr-rpmbuild/rpkg.conf.j2/usr/bin/copr-rpmbuild/usr/bin/copr-rpmbuild-cancel/usr/bin/copr-rpmbuild-log/usr/bin/copr-rpmbuild-loggify/usr/bin/copr-sources-customcopr-rpmbuildx86_64057644ec290020b041e6e5d70097c322f4189ff45caaf7b3361570cdaeb909d7Run COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-74ded8a0-cc4d-45ef-b88b-53f6ed7b804ccopr-rpmbuild-0.68-1.src.rpm/etc/copr-rpmbuild/etc/copr-rpmbuild/main.ini/etc/copr-rpmbuild/mock-custom-build.cfg.j2/etc/copr-rpmbuild/mock-source-build.cfg.j2/etc/copr-rpmbuild/mock.cfg.j2/etc/copr-rpmbuild/rpkg.conf.j2/usr/bin/copr-rpmbuild/usr/bin/copr-rpmbuild-cancel/usr/bin/copr-rpmbuild-log/usr/bin/copr-rpmbuild-loggify/usr/bin/copr-sources-customcopr-rpmbuildx86_647a8c8665def1859fe028b57e54e36f54577e822737b44e95836938b9a1de9ba5Run COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-91ec6a00-578d-4281-b1dc-c51cf9c3b895copr-rpmbuild-0.68-1.src.rpm/etc/copr-rpmbuild/etc/copr-rpmbuild/main.ini/etc/copr-rpmbuild/mock-custom-build.cfg.j2/etc/copr-rpmbuild/mock-source-build.cfg.j2/etc/copr-rpmbuild/mock.cfg.j2/etc/copr-rpmbuild/rpkg.conf.j2/usr/bin/copr-rpmbuild/usr/bin/copr-rpmbuild-cancel/usr/bin/copr-rpmbuild-log/usr/bin/copr-rpmbuild-loggify/usr/bin/copr-sources-customcopr-rpmbuildx86_64ee24419e76088a60c8a95cb532a72e9faddb1e1ba81fa5929198de8ddc7e25b7Run COPR build tasksProvides command capable of running COPR build-tasks.
Example: copr-rpmbuild 12345-epel-7-x86_64 will locally
build build-id 12345 for chroot epel-7-x86_64.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-00643205-9cca-4de7-a031-6bf4cf1cc02acopr-rpmbuild-0.68-1.src.rpm/etc/copr-rpmbuild/etc/copr-rpmbuild/main.ini/etc/copr-rpmbuild/mock-custom-build.cfg.j2/etc/copr-rpmbuild/mock-source-build.cfg.j2/etc/copr-rpmbuild/mock.cfg.j2/etc/copr-rpmbuild/rpkg.conf.j2/usr/bin/copr-rpmbuild/usr/bin/copr-rpmbuild-cancel/usr/bin/copr-rpmbuild-log/usr/bin/copr-rpmbuild-loggify/usr/bin/copr-sources-customdist-gitnoarch2b14dc224a9830dca5eaec2dbfe3f1b98659b7fd00b199fd487dffdec7ee83f1Package source version control systemDistGit is a Git repository specifically designed to hold RPM
package sources.https://github.com/release-engineering/dist-gitMIT AND GPL-1.0-onlyopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d88d2f13-581f-477d-b094-edbfb4ec9c23dist-git-1.17-1.src.rpm/etc/dist-git/etc/dist-git/dist-git.conf/etc/httpd/conf.d/dist-git/etc/httpd/conf.d/dist-git.conf/etc/httpd/conf.d/dist-git/git-smart-http.conf/etc/httpd/conf.d/dist-git/lookaside-upload.conf.example/etc/httpd/conf.d/dist-git/lookaside.conf/etc/httpd/conf.d/dist-git/manifest.confdist-gitsrc08c231530a578297375660c9d333c3292f3558bd2b9d3ff5fefe6b29edaed244Package source version control systemDistGit is a Git repository specifically designed to hold RPM
package sources.https://github.com/release-engineering/dist-gitMIT AND GPL-1.0-onlyopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d88d2f13-581f-477d-b094-edbfb4ec9c23dist-git-selinuxnoarch462cb715040ac415bade3f5d360ad5ae4fd2fb32a89b6ababfb9f0d32c4e657bSELinux support for dist-gitDist Git is a remote Git repository specifically designed to hold RPM
package sources.
This package includes SELinux support.https://github.com/release-engineering/dist-gitMIT AND GPL-1.0-onlyopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d88d2f13-581f-477d-b094-edbfb4ec9c23dist-git-1.17-1.src.rpm/usr/bin/dist-git-gc/usr/bin/mkbranch/usr/bin/mkbranch_branching/usr/bin/remove_unused_sources/usr/bin/setup_git_packagedistribution-gpg-keysnoarch424e141ecce228c1b1fec73a24abad20741332909ba34b3d777b5a73a175794eGPG keys of various Linux distributionsGPG keys used by various Linux distributions to sign packages.https://github.com/xsuchy/distribution-gpg-keysCC0-1.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e0ea2dcf-35cc-4e66-98f4-3d9c76c3e2e0distribution-gpg-keys-1.87-1.src.rpmdistribution-gpg-keyssrc3553f55b2c29a61068b3b6000eb8790e2ca85edf851b5a0fba31a92dba886c7eGPG keys of various Linux distributionsGPG keys used by various Linux distributions to sign packages.https://github.com/xsuchy/distribution-gpg-keysCC0-1.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e0ea2dcf-35cc-4e66-98f4-3d9c76c3e2e0distribution-gpg-keys-coprnoarch018491a78cae85924a4c842d4352cfa7ac47c455f7c9a54006aec267346d395dGPG keys for Copr projectsGPG keys used by Copr projects.https://github.com/xsuchy/distribution-gpg-keysCC0-1.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e0ea2dcf-35cc-4e66-98f4-3d9c76c3e2e0distribution-gpg-keys-1.87-1.src.rpmjs-jquery-uinoarch73b37d5d825e5df71431f1695232b903a59fa5614af425f975e054ad2c1e6fd2jQuery user interfaceA curated set of user interface interactions, effects, widgets, and
themes built on top of the jQuery JavaScript Library.https://jqueryui.com/MITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d112ea9b-3979-4bef-8a2f-262ed82ea60djs-jquery-ui-1.13.2-1.src.rpmjs-jquery-uisrc7536905eb66ebd89be463faeba74b709d1f5f5e4e9d8acdd424f9602bcca9664jQuery user interfaceA curated set of user interface interactions, effects, widgets, and
themes built on top of the jQuery JavaScript Library.https://jqueryui.com/MITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d112ea9b-3979-4bef-8a2f-262ed82ea60dkojinoarch68f5352fe38cfcb880bc1580ac55540c3484e8e92ce353f730e143a4670c843aBuild system toolsKoji is a system for building and tracking RPMS. The base package
contains shared libraries and the command-line interface.https://pagure.io/koji/LGPLv2 and GPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e6d5cee3-68fd-40d9-ada3-514b8b86f810koji-1.32.0-1.src.rpm/etc/koji.conf/etc/koji.conf.d/usr/bin/kojikojisrcb7fb7ab306981a1747cd7530c12c12fa26426a663642b67bb60e517ca01a7fe9Build system toolsKoji is a system for building and tracking RPMS. The base package
contains shared libraries and the command-line interface.https://pagure.io/koji/LGPLv2 and GPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e6d5cee3-68fd-40d9-ada3-514b8b86f810koji-builder-plugin-rpmautospecnoarch4feb97dced042360abebb3a2378b3f6236e547064895cba2fffda4477ff43cd7Koji plugin for generating RPM releases and changelogsA Koji plugin for generating RPM releases and changelogs.https://pagure.io/fedora-infra/rpmautospecMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a3e521a2-12e4-48a3-b5bc-35f2df3b8dbbpython-rpmautospec-0.3.5-1.src.rpmkoji-builder-plugin-rpmautospecnoarch1b0fe5dfbb89b720e8743ad6fb73036f6dd0955ff9e4bd0d9716684a7ffad48cKoji plugin for generating RPM releases and changelogsA Koji plugin for generating RPM releases and changelogs.https://pagure.io/fedora-infra/rpmautospecMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-9e694644-b8eb-4f4d-af70-d1c89e233b07python-rpmautospec-0.3.5-1.src.rpmmocknoarchc3031ca228e06b5fe2d3d123051ba18e90a7bd9442689e533f64859385f86ddcBuilds packages inside chrootsMock takes an SRPM and builds it in a chroot.https://github.com/rpm-software-management/mock/GPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-45c28ec4-5a84-4190-b274-04ad85f4b88emock-3.5-1.src.rpm/etc/mock/logging.ini/etc/pam.d/mock/etc/pki/mock/etc/pki/mock/README.txt/etc/security/console.apps/mock/usr/bin/mock/usr/bin/mock-parse-buildlog/usr/bin/mockchainmocksrc43f4089d1d6b8ab6b126a11cc67e555ce316eff608c2b880b210c21378ead64dBuilds packages inside chrootsMock takes an SRPM and builds it in a chroot.https://github.com/rpm-software-management/mock/GPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-45c28ec4-5a84-4190-b274-04ad85f4b88emock-core-configsnoarchb356246479374180988755051f3fd94684b8604ca8d7c47d8f8a3c6c1f8b0642Mock core config files basic chrootsConfig files which allow you to create chroots for:
* Fedora
* Epel
* Mageia
* Custom chroot
* OpenSuse Tumbleweed and Leap
* openEulerhttps://github.com/rpm-software-management/mock/GPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-356ce64b-8f35-412a-a5f4-8a1b43d9981bmock-core-configs-31.6-1.src.rpm/etc/mock/etc/mock/amazonlinux-2-aarch64.cfg/etc/mock/amazonlinux-2-x86_64.cfg/etc/mock/centos-stream-aarch64.cfg/etc/mock/centos-stream-ppc64le.cfg/etc/mock/centos-stream-x86_64.cfg/etc/mock/custom-1-aarch64.cfg/etc/mock/custom-1-armhfp.cfg/etc/mock/custom-1-i386.cfg/etc/mock/custom-1-ppc64.cfg/etc/mock/custom-1-ppc64le.cfg/etc/mock/custom-1-s390.cfg/etc/mock/custom-1-s390x.cfg/etc/mock/custom-1-x86_64.cfg/etc/mock/default.cfg/etc/mock/eol/etc/mock/eol/epel-5-i386.cfg/etc/mock/eol/epel-5-x86_64.cfg/etc/mock/eol/fedora-25-aarch64.cfg/etc/mock/eol/fedora-25-armhfp.cfg/etc/mock/eol/fedora-25-i386.cfg/etc/mock/eol/fedora-25-ppc64.cfg/etc/mock/eol/fedora-25-ppc64le.cfg/etc/mock/eol/fedora-25-s390x.cfg/etc/mock/eol/fedora-25-x86_64.cfg/etc/mock/eol/fedora-26-aarch64.cfg/etc/mock/eol/fedora-26-armhfp.cfg/etc/mock/eol/fedora-26-i386.cfg/etc/mock/eol/fedora-26-ppc64.cfg/etc/mock/eol/fedora-26-ppc64le.cfg/etc/mock/eol/fedora-26-s390x.cfg/etc/mock/eol/fedora-26-x86_64.cfg/etc/mock/eol/fedora-27-aarch64.cfg/etc/mock/eol/fedora-27-armhfp.cfg/etc/mock/eol/fedora-27-i386.cfg/etc/mock/eol/fedora-27-ppc64.cfg/etc/mock/eol/fedora-27-ppc64le.cfg/etc/mock/eol/fedora-27-s390x.cfg/etc/mock/eol/fedora-27-x86_64.cfg/etc/mock/eol/fedora-28-aarch64.cfg/etc/mock/eol/fedora-28-armhfp.cfg/etc/mock/eol/fedora-28-i386.cfg/etc/mock/eol/fedora-28-ppc64.cfg/etc/mock/eol/fedora-28-ppc64le.cfg/etc/mock/eol/fedora-28-s390x.cfg/etc/mock/eol/fedora-28-x86_64.cfg/etc/mock/epel-6-i386.cfg/etc/mock/epel-6-ppc64.cfg/etc/mock/epel-6-x86_64.cfg/etc/mock/epel-7-aarch64.cfg/etc/mock/epel-7-ppc64.cfg/etc/mock/epel-7-ppc64le.cfg/etc/mock/epel-7-x86_64.cfg/etc/mock/epel-8-aarch64.cfg/etc/mock/epel-8-ppc64le.cfg/etc/mock/epel-8-x86_64.cfg/etc/mock/fedora-29-aarch64.cfg/etc/mock/fedora-29-armhfp.cfg/etc/mock/fedora-29-i386.cfg/etc/mock/fedora-29-ppc64le.cfg/etc/mock/fedora-29-s390x.cfg/etc/mock/fedora-29-x86_64.cfg/etc/mock/fedora-30-aarch64.cfg/etc/mock/fedora-30-armhfp.cfg/etc/mock/fedora-30-i386.cfg/etc/mock/fedora-30-ppc64le.cfg/etc/mock/fedora-30-s390x.cfg/etc/mock/fedora-30-x86_64.cfg/etc/mock/fedora-31-aarch64.cfg/etc/mock/fedora-31-armhfp.cfg/etc/mock/fedora-31-i386.cfg/etc/mock/fedora-31-ppc64le.cfg/etc/mock/fedora-31-s390x.cfg/etc/mock/fedora-31-x86_64.cfg/etc/mock/fedora-32-aarch64.cfg/etc/mock/fedora-32-armhfp.cfg/etc/mock/fedora-32-i386.cfg/etc/mock/fedora-32-ppc64le.cfg/etc/mock/fedora-32-s390x.cfg/etc/mock/fedora-32-x86_64.cfg/etc/mock/fedora-rawhide-aarch64.cfg/etc/mock/fedora-rawhide-armhfp.cfg/etc/mock/fedora-rawhide-i386.cfg/etc/mock/fedora-rawhide-ppc64le.cfg/etc/mock/fedora-rawhide-s390x.cfg/etc/mock/fedora-rawhide-x86_64.cfg/etc/mock/mageia-6-armv5tl.cfg/etc/mock/mageia-6-armv7hl.cfg/etc/mock/mageia-6-i586.cfg/etc/mock/mageia-6-x86_64.cfg/etc/mock/mageia-7-aarch64.cfg/etc/mock/mageia-7-armv7hl.cfg/etc/mock/mageia-7-i586.cfg/etc/mock/mageia-7-x86_64.cfg/etc/mock/mageia-8-aarch64.cfg/etc/mock/mageia-8-armv7hl.cfg/etc/mock/mageia-8-i586.cfg/etc/mock/mageia-8-x86_64.cfg/etc/mock/mageia-cauldron-aarch64.cfg/etc/mock/mageia-cauldron-armv7hl.cfg/etc/mock/mageia-cauldron-i586.cfg/etc/mock/mageia-cauldron-x86_64.cfg/etc/mock/openmandriva-4.0-aarch64.cfg/etc/mock/openmandriva-4.0-armv7hnl.cfg/etc/mock/openmandriva-4.0-i686.cfg/etc/mock/openmandriva-4.0-x86_64.cfg/etc/mock/openmandriva-cooker-aarch64.cfg/etc/mock/openmandriva-cooker-armv7hnl.cfg/etc/mock/openmandriva-cooker-i686.cfg/etc/mock/openmandriva-cooker-x86_64.cfg/etc/mock/openmandriva-rolling-aarch64.cfg/etc/mock/openmandriva-rolling-armv7hnl.cfg/etc/mock/openmandriva-rolling-i686.cfg/etc/mock/openmandriva-rolling-x86_64.cfg/etc/mock/opensuse-leap-15.0-aarch64.cfg/etc/mock/opensuse-leap-15.0-x86_64.cfg/etc/mock/opensuse-leap-15.1-aarch64.cfg/etc/mock/opensuse-leap-15.1-x86_64.cfg/etc/mock/opensuse-tumbleweed-aarch64.cfg/etc/mock/opensuse-tumbleweed-i586.cfg/etc/mock/opensuse-tumbleweed-ppc64.cfg/etc/mock/opensuse-tumbleweed-ppc64le.cfg/etc/mock/opensuse-tumbleweed-x86_64.cfg/etc/mock/rhel-7-aarch64.cfg/etc/mock/rhel-7-ppc64.cfg/etc/mock/rhel-7-ppc64le.cfg/etc/mock/rhel-7-x86_64.cfg/etc/mock/rhel-8-aarch64.cfg/etc/mock/rhel-8-ppc64.cfg/etc/mock/rhel-8-ppc64le.cfg/etc/mock/rhel-8-x86_64.cfg/etc/mock/rhelbeta-8-aarch64.cfg/etc/mock/rhelbeta-8-ppc64le.cfg/etc/mock/rhelbeta-8-s390x.cfg/etc/mock/rhelbeta-8-x86_64.cfg/etc/mock/rhelepel-8-aarch64.cfg/etc/mock/rhelepel-8-ppc64.cfg/etc/mock/rhelepel-8-ppc64le.cfg/etc/mock/rhelepel-8-x86_64.cfg/etc/mock/templates/etc/mock/templates/amazonlinux-2.tpl/etc/mock/templates/centos-8.tpl/etc/mock/templates/centos-stream.tpl/etc/mock/templates/epel-8.tpl/etc/mock/templates/epel-playground-8.tpl/etc/mock/templates/fedora-29.tpl/etc/mock/templates/fedora-30.tpl/etc/mock/templates/fedora-31.tpl/etc/mock/templates/fedora-rawhide.tpl/etc/mock/templates/rhel-7.tpl/etc/mock/templates/rhel-8.tplmock-core-configssrcc63e4f9d7a3593bf540bac66fd0b40fc0360913147624dd2f0bed1eda0f69fa3Mock core config files basic chrootsConfig files which allow you to create chroots for:
* Fedora
* Epel
* Mageia
* Custom chroot
* OpenSuse Tumbleweed and Leap
* openEulerhttps://github.com/rpm-software-management/mock/GPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-356ce64b-8f35-412a-a5f4-8a1b43d9981bmock-core-configsnoarcha22dd713d12eed1209211c93fb2a15b2f9aa79941b1d07b53680da08b5bc6a75Mock core config files basic chrootsConfig files which allow you to create chroots for:
* Fedora
* Epel
* Mageia
* Custom chroot
* OpenSuse Tumbleweed and Leap
* openEulerhttps://github.com/rpm-software-management/mock/GPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-bd4b3beb-2eb5-4304-a141-2d97e8565c84mock-core-configs-38.3-2.src.rpm/etc/mock/etc/mock/alma+epel-8-aarch64.cfg/etc/mock/alma+epel-8-ppc64le.cfg/etc/mock/alma+epel-8-x86_64.cfg/etc/mock/alma+epel-9-aarch64.cfg/etc/mock/alma+epel-9-ppc64le.cfg/etc/mock/alma+epel-9-s390x.cfg/etc/mock/alma+epel-9-x86_64.cfg/etc/mock/almalinux-8-aarch64.cfg/etc/mock/almalinux-8-ppc64le.cfg/etc/mock/almalinux-8-x86_64.cfg/etc/mock/almalinux-9-aarch64.cfg/etc/mock/almalinux-9-ppc64le.cfg/etc/mock/almalinux-9-s390x.cfg/etc/mock/almalinux-9-x86_64.cfg/etc/mock/amazonlinux-2-aarch64.cfg/etc/mock/amazonlinux-2-x86_64.cfg/etc/mock/anolis-7-aarch64.cfg/etc/mock/anolis-7-x86_64.cfg/etc/mock/anolis-8-aarch64.cfg/etc/mock/anolis-8-x86_64.cfg/etc/mock/centos+epel-7-ppc64le.cfg/etc/mock/centos+epel-7-x86_64.cfg/etc/mock/centos-7-aarch64.cfg/etc/mock/centos-7-ppc64.cfg/etc/mock/centos-7-ppc64le.cfg/etc/mock/centos-7-x86_64.cfg/etc/mock/centos-stream+epel-8-aarch64.cfg/etc/mock/centos-stream+epel-8-ppc64le.cfg/etc/mock/centos-stream+epel-8-x86_64.cfg/etc/mock/centos-stream+epel-9-aarch64.cfg/etc/mock/centos-stream+epel-9-ppc64le.cfg/etc/mock/centos-stream+epel-9-s390x.cfg/etc/mock/centos-stream+epel-9-x86_64.cfg/etc/mock/centos-stream+epel-next-8-aarch64.cfg/etc/mock/centos-stream+epel-next-8-ppc64le.cfg/etc/mock/centos-stream+epel-next-8-x86_64.cfg/etc/mock/centos-stream+epel-next-9-aarch64.cfg/etc/mock/centos-stream+epel-next-9-ppc64le.cfg/etc/mock/centos-stream+epel-next-9-s390x.cfg/etc/mock/centos-stream+epel-next-9-x86_64.cfg/etc/mock/centos-stream-8-aarch64.cfg/etc/mock/centos-stream-8-ppc64le.cfg/etc/mock/centos-stream-8-x86_64.cfg/etc/mock/centos-stream-9-aarch64.cfg/etc/mock/centos-stream-9-ppc64le.cfg/etc/mock/centos-stream-9-s390x.cfg/etc/mock/centos-stream-9-x86_64.cfg/etc/mock/chroot-aliases.cfg/etc/mock/circlelinux+epel-8-aarch64.cfg/etc/mock/circlelinux+epel-8-ppc64le.cfg/etc/mock/circlelinux+epel-8-x86_64.cfg/etc/mock/circlelinux-8-aarch64.cfg/etc/mock/circlelinux-8-ppc64le.cfg/etc/mock/circlelinux-8-x86_64.cfg/etc/mock/custom-1-aarch64.cfg/etc/mock/custom-1-armhfp.cfg/etc/mock/custom-1-i386.cfg/etc/mock/custom-1-ppc64.cfg/etc/mock/custom-1-ppc64le.cfg/etc/mock/custom-1-s390.cfg/etc/mock/custom-1-s390x.cfg/etc/mock/custom-1-x86_64.cfg/etc/mock/default.cfg/etc/mock/eol/etc/mock/eol/centos+epel-7-aarch64.cfg/etc/mock/eol/centos+epel-7-ppc64.cfg/etc/mock/eol/centos+epel-8-aarch64.cfg/etc/mock/eol/centos+epel-8-ppc64le.cfg/etc/mock/eol/centos+epel-8-x86_64.cfg/etc/mock/eol/centos-6-i386.cfg/etc/mock/eol/centos-6-x86_64.cfg/etc/mock/eol/centos-8-aarch64.cfg/etc/mock/eol/centos-8-ppc64le.cfg/etc/mock/eol/centos-8-x86_64.cfg/etc/mock/eol/epel-5-i386.cfg/etc/mock/eol/epel-5-x86_64.cfg/etc/mock/eol/epel-6-i386.cfg/etc/mock/eol/epel-6-x86_64.cfg/etc/mock/eol/epelplayground-8-aarch64.cfg/etc/mock/eol/epelplayground-8-ppc64le.cfg/etc/mock/eol/epelplayground-8-x86_64.cfg/etc/mock/eol/fedora-25-aarch64.cfg/etc/mock/eol/fedora-25-armhfp.cfg/etc/mock/eol/fedora-25-i386.cfg/etc/mock/eol/fedora-25-ppc64.cfg/etc/mock/eol/fedora-25-ppc64le.cfg/etc/mock/eol/fedora-25-s390x.cfg/etc/mock/eol/fedora-25-x86_64.cfg/etc/mock/eol/fedora-26-aarch64.cfg/etc/mock/eol/fedora-26-armhfp.cfg/etc/mock/eol/fedora-26-i386.cfg/etc/mock/eol/fedora-26-ppc64.cfg/etc/mock/eol/fedora-26-ppc64le.cfg/etc/mock/eol/fedora-26-s390x.cfg/etc/mock/eol/fedora-26-x86_64.cfg/etc/mock/eol/fedora-27-aarch64.cfg/etc/mock/eol/fedora-27-armhfp.cfg/etc/mock/eol/fedora-27-i386.cfg/etc/mock/eol/fedora-27-ppc64.cfg/etc/mock/eol/fedora-27-ppc64le.cfg/etc/mock/eol/fedora-27-s390x.cfg/etc/mock/eol/fedora-27-x86_64.cfg/etc/mock/eol/fedora-28-aarch64.cfg/etc/mock/eol/fedora-28-armhfp.cfg/etc/mock/eol/fedora-28-i386.cfg/etc/mock/eol/fedora-28-ppc64.cfg/etc/mock/eol/fedora-28-ppc64le.cfg/etc/mock/eol/fedora-28-s390x.cfg/etc/mock/eol/fedora-28-x86_64.cfg/etc/mock/eol/fedora-29-aarch64.cfg/etc/mock/eol/fedora-29-armhfp.cfg/etc/mock/eol/fedora-29-i386.cfg/etc/mock/eol/fedora-29-ppc64le.cfg/etc/mock/eol/fedora-29-s390x.cfg/etc/mock/eol/fedora-29-x86_64.cfg/etc/mock/eol/fedora-30-aarch64.cfg/etc/mock/eol/fedora-30-armhfp.cfg/etc/mock/eol/fedora-30-i386.cfg/etc/mock/eol/fedora-30-ppc64le.cfg/etc/mock/eol/fedora-30-s390x.cfg/etc/mock/eol/fedora-30-x86_64.cfg/etc/mock/eol/fedora-31-aarch64.cfg/etc/mock/eol/fedora-31-armhfp.cfg/etc/mock/eol/fedora-31-i386.cfg/etc/mock/eol/fedora-31-ppc64le.cfg/etc/mock/eol/fedora-31-s390x.cfg/etc/mock/eol/fedora-31-x86_64.cfg/etc/mock/eol/fedora-32-aarch64.cfg/etc/mock/eol/fedora-32-armhfp.cfg/etc/mock/eol/fedora-32-i386.cfg/etc/mock/eol/fedora-32-ppc64le.cfg/etc/mock/eol/fedora-32-s390x.cfg/etc/mock/eol/fedora-32-x86_64.cfg/etc/mock/eol/fedora-33-aarch64.cfg/etc/mock/eol/fedora-33-armhfp.cfg/etc/mock/eol/fedora-33-i386.cfg/etc/mock/eol/fedora-33-ppc64le.cfg/etc/mock/eol/fedora-33-s390x.cfg/etc/mock/eol/fedora-33-x86_64.cfg/etc/mock/eol/fedora-34-aarch64.cfg/etc/mock/eol/fedora-34-armhfp.cfg/etc/mock/eol/fedora-34-i386.cfg/etc/mock/eol/fedora-34-ppc64le.cfg/etc/mock/eol/fedora-34-s390x.cfg/etc/mock/eol/fedora-34-x86_64.cfg/etc/mock/eol/mageia-6-armv5tl.cfg/etc/mock/eol/mageia-6-armv7hl.cfg/etc/mock/eol/mageia-6-i586.cfg/etc/mock/eol/mageia-6-x86_64.cfg/etc/mock/eol/openmandriva-4.0-aarch64.cfg/etc/mock/eol/openmandriva-4.0-armv7hnl.cfg/etc/mock/eol/openmandriva-4.0-i686.cfg/etc/mock/eol/openmandriva-4.0-x86_64.cfg/etc/mock/eol/opensuse-leap-15.0-aarch64.cfg/etc/mock/eol/opensuse-leap-15.0-x86_64.cfg/etc/mock/eol/opensuse-leap-15.1-aarch64.cfg/etc/mock/eol/opensuse-leap-15.1-x86_64.cfg/etc/mock/eol/opensuse-leap-15.2-aarch64.cfg/etc/mock/eol/opensuse-leap-15.2-x86_64.cfg/etc/mock/eol/rhel-6-x86_64.cfg/etc/mock/epel-7-ppc64le.cfg/etc/mock/epel-7-x86_64.cfg/etc/mock/eurolinux-8-aarch64.cfg/etc/mock/eurolinux-8-i686.cfg/etc/mock/eurolinux-8-x86_64.cfg/etc/mock/eurolinux-9-aarch64.cfg/etc/mock/eurolinux-9-i686.cfg/etc/mock/eurolinux-9-x86_64.cfg/etc/mock/fedora-35-aarch64.cfg/etc/mock/fedora-35-armhfp.cfg/etc/mock/fedora-35-i386.cfg/etc/mock/fedora-35-ppc64le.cfg/etc/mock/fedora-35-s390x.cfg/etc/mock/fedora-35-x86_64.cfg/etc/mock/fedora-36-aarch64.cfg/etc/mock/fedora-36-armhfp.cfg/etc/mock/fedora-36-i386.cfg/etc/mock/fedora-36-ppc64le.cfg/etc/mock/fedora-36-s390x.cfg/etc/mock/fedora-36-x86_64.cfg/etc/mock/fedora-37-aarch64.cfg/etc/mock/fedora-37-i386.cfg/etc/mock/fedora-37-ppc64le.cfg/etc/mock/fedora-37-s390x.cfg/etc/mock/fedora-37-x86_64.cfg/etc/mock/fedora-38-aarch64.cfg/etc/mock/fedora-38-i386.cfg/etc/mock/fedora-38-ppc64le.cfg/etc/mock/fedora-38-s390x.cfg/etc/mock/fedora-38-x86_64.cfg/etc/mock/fedora-39-aarch64.cfg/etc/mock/fedora-39-i386.cfg/etc/mock/fedora-39-ppc64le.cfg/etc/mock/fedora-39-s390x.cfg/etc/mock/fedora-39-x86_64.cfg/etc/mock/fedora-eln-aarch64.cfg/etc/mock/fedora-eln-i386.cfg/etc/mock/fedora-eln-ppc64le.cfg/etc/mock/fedora-eln-s390x.cfg/etc/mock/fedora-eln-x86_64.cfg/etc/mock/fedora-rawhide-aarch64.cfg/etc/mock/fedora-rawhide-i386.cfg/etc/mock/fedora-rawhide-ppc64le.cfg/etc/mock/fedora-rawhide-s390x.cfg/etc/mock/fedora-rawhide-x86_64.cfg/etc/mock/mageia-7-aarch64.cfg/etc/mock/mageia-7-armv7hl.cfg/etc/mock/mageia-7-i586.cfg/etc/mock/mageia-7-x86_64.cfg/etc/mock/mageia-8-aarch64.cfg/etc/mock/mageia-8-armv7hl.cfg/etc/mock/mageia-8-i586.cfg/etc/mock/mageia-8-x86_64.cfg/etc/mock/mageia-9-aarch64.cfg/etc/mock/mageia-9-armv7hl.cfg/etc/mock/mageia-9-i586.cfg/etc/mock/mageia-9-x86_64.cfg/etc/mock/mageia-cauldron-aarch64.cfg/etc/mock/mageia-cauldron-armv7hl.cfg/etc/mock/mageia-cauldron-i586.cfg/etc/mock/mageia-cauldron-x86_64.cfg/etc/mock/navy-8-x86_64.cfg/etc/mock/openeuler-20.03-aarch64.cfg/etc/mock/openeuler-20.03-x86_64.cfg/etc/mock/openeuler-20.03_LTS-aarch64.cfg/etc/mock/openeuler-20.03_LTS-x86_64.cfg/etc/mock/openeuler-20.03_LTS_SP1-aarch64.cfg/etc/mock/openeuler-20.03_LTS_SP1-x86_64.cfg/etc/mock/openeuler-20.03_LTS_SP2-aarch64.cfg/etc/mock/openeuler-20.03_LTS_SP2-x86_64.cfg/etc/mock/openeuler-20.03_LTS_SP3-aarch64.cfg/etc/mock/openeuler-20.03_LTS_SP3-x86_64.cfg/etc/mock/openeuler-20.09-aarch64.cfg/etc/mock/openeuler-20.09-x86_64.cfg/etc/mock/openeuler-21.03-aarch64.cfg/etc/mock/openeuler-21.03-x86_64.cfg/etc/mock/openeuler-21.09-aarch64.cfg/etc/mock/openeuler-21.09-x86_64.cfg/etc/mock/openeuler-22.03-aarch64.cfg/etc/mock/openeuler-22.03-x86_64.cfg/etc/mock/openeuler-22.03_LTS-aarch64.cfg/etc/mock/openeuler-22.03_LTS-x86_64.cfg/etc/mock/openeuler-22.03_LTS_SP1-aarch64.cfg/etc/mock/openeuler-22.03_LTS_SP1-x86_64.cfg/etc/mock/openeuler-22.03_LTS_SP2-aarch64.cfg/etc/mock/openeuler-22.03_LTS_SP2-x86_64.cfg/etc/mock/openeuler-22.09-aarch64.cfg/etc/mock/openeuler-22.09-x86_64.cfg/etc/mock/openeuler-23.03-aarch64.cfg/etc/mock/openeuler-23.03-x86_64.cfg/etc/mock/openmandriva-4.1-aarch64.cfg/etc/mock/openmandriva-4.1-armv7hnl.cfg/etc/mock/openmandriva-4.1-i686.cfg/etc/mock/openmandriva-4.1-x86_64.cfg/etc/mock/openmandriva-cooker-aarch64.cfg/etc/mock/openmandriva-cooker-armv7hnl.cfg/etc/mock/openmandriva-cooker-i686.cfg/etc/mock/openmandriva-cooker-x86_64.cfg/etc/mock/openmandriva-rolling-aarch64.cfg/etc/mock/openmandriva-rolling-armv7hnl.cfg/etc/mock/openmandriva-rolling-i686.cfg/etc/mock/openmandriva-rolling-x86_64.cfg/etc/mock/opensuse-leap-15.3-aarch64.cfg/etc/mock/opensuse-leap-15.3-ppc64le.cfg/etc/mock/opensuse-leap-15.3-s390x.cfg/etc/mock/opensuse-leap-15.3-x86_64.cfg/etc/mock/opensuse-leap-15.4-aarch64.cfg/etc/mock/opensuse-leap-15.4-ppc64le.cfg/etc/mock/opensuse-leap-15.4-s390x.cfg/etc/mock/opensuse-leap-15.4-x86_64.cfg/etc/mock/opensuse-tumbleweed-aarch64.cfg/etc/mock/opensuse-tumbleweed-i586.cfg/etc/mock/opensuse-tumbleweed-ppc64.cfg/etc/mock/opensuse-tumbleweed-ppc64le.cfg/etc/mock/opensuse-tumbleweed-s390x.cfg/etc/mock/opensuse-tumbleweed-x86_64.cfg/etc/mock/oraclelinux+epel-7-aarch64.cfg/etc/mock/oraclelinux+epel-7-x86_64.cfg/etc/mock/oraclelinux+epel-8-aarch64.cfg/etc/mock/oraclelinux+epel-8-x86_64.cfg/etc/mock/oraclelinux+epel-9-aarch64.cfg/etc/mock/oraclelinux+epel-9-x86_64.cfg/etc/mock/oraclelinux-7-aarch64.cfg/etc/mock/oraclelinux-7-x86_64.cfg/etc/mock/oraclelinux-8-aarch64.cfg/etc/mock/oraclelinux-8-x86_64.cfg/etc/mock/oraclelinux-9-aarch64.cfg/etc/mock/oraclelinux-9-x86_64.cfg/etc/mock/rhel+epel-8-aarch64.cfg/etc/mock/rhel+epel-8-ppc64le.cfg/etc/mock/rhel+epel-8-s390x.cfg/etc/mock/rhel+epel-8-x86_64.cfg/etc/mock/rhel+epel-9-aarch64.cfg/etc/mock/rhel+epel-9-ppc64le.cfg/etc/mock/rhel+epel-9-s390x.cfg/etc/mock/rhel+epel-9-x86_64.cfg/etc/mock/rhel-7-aarch64.cfg/etc/mock/rhel-7-ppc64.cfg/etc/mock/rhel-7-ppc64le.cfg/etc/mock/rhel-7-s390x.cfg/etc/mock/rhel-7-x86_64.cfg/etc/mock/rhel-8-aarch64.cfg/etc/mock/rhel-8-ppc64le.cfg/etc/mock/rhel-8-s390x.cfg/etc/mock/rhel-8-x86_64.cfg/etc/mock/rhel-9-aarch64.cfg/etc/mock/rhel-9-ppc64le.cfg/etc/mock/rhel-9-s390x.cfg/etc/mock/rhel-9-x86_64.cfg/etc/mock/rocky+epel-8-aarch64.cfg/etc/mock/rocky+epel-8-x86_64.cfg/etc/mock/rocky+epel-9-aarch64.cfg/etc/mock/rocky+epel-9-ppc64le.cfg/etc/mock/rocky+epel-9-s390x.cfg/etc/mock/rocky+epel-9-x86_64.cfg/etc/mock/rocky-8-aarch64.cfg/etc/mock/rocky-8-x86_64.cfg/etc/mock/rocky-9-aarch64.cfg/etc/mock/rocky-9-ppc64le.cfg/etc/mock/rocky-9-s390x.cfg/etc/mock/rocky-9-x86_64.cfg/etc/mock/site-defaults.cfg/etc/mock/templates/etc/mock/templates/almalinux-8.tpl/etc/mock/templates/almalinux-9.tpl/etc/mock/templates/amazonlinux-2.tpl/etc/mock/templates/anolis-7.tpl/etc/mock/templates/anolis-8.tpl/etc/mock/templates/centos-7.tpl/etc/mock/templates/centos-stream-8.tpl/etc/mock/templates/centos-stream-9.tpl/etc/mock/templates/circlelinux-8.tpl/etc/mock/templates/custom-1.tpl/etc/mock/templates/epel-7.tpl/etc/mock/templates/epel-8.tpl/etc/mock/templates/epel-9.tpl/etc/mock/templates/epel-next-8.tpl/etc/mock/templates/epel-next-9.tpl/etc/mock/templates/eurolinux-8.tpl/etc/mock/templates/eurolinux-9.tpl/etc/mock/templates/fedora-branched.tpl/etc/mock/templates/fedora-eln.tpl/etc/mock/templates/fedora-rawhide.tpl/etc/mock/templates/mageia-7.tpl/etc/mock/templates/mageia-branched.tpl/etc/mock/templates/mageia-cauldron.tpl/etc/mock/templates/navy-8.tpl/etc/mock/templates/openeuler-20.03-sp1.tpl/etc/mock/templates/openeuler-20.03-sp2.tpl/etc/mock/templates/openeuler-20.03-sp3.tpl/etc/mock/templates/openeuler-20.03.tpl/etc/mock/templates/openeuler-20.09.tpl/etc/mock/templates/openeuler-21.03.tpl/etc/mock/templates/openeuler-21.09.tpl/etc/mock/templates/openeuler-22.03-sp1.tpl/etc/mock/templates/openeuler-22.03-sp2.tpl/etc/mock/templates/openeuler-22.03.tpl/etc/mock/templates/openeuler-22.09.tpl/etc/mock/templates/openeuler-23.03.tpl/etc/mock/templates/openmandriva-branched.tpl/etc/mock/templates/openmandriva-cooker.tpl/etc/mock/templates/openmandriva-rolling.tpl/etc/mock/templates/opensuse-leap-15.3.tpl/etc/mock/templates/opensuse-leap-15.4.tpl/etc/mock/templates/opensuse-tumbleweed.tpl/etc/mock/templates/oraclelinux-7.tpl/etc/mock/templates/oraclelinux-8.tpl/etc/mock/templates/oraclelinux-9.tpl/etc/mock/templates/oraclelinux-epel-7.tpl/etc/mock/templates/oraclelinux-epel-8.tpl/etc/mock/templates/oraclelinux-epel-9.tpl/etc/mock/templates/rhel-7.tpl/etc/mock/templates/rhel-8.tpl/etc/mock/templates/rhel-9.tpl/etc/mock/templates/rocky-8.tpl/etc/mock/templates/rocky-9.tplmock-core-configssrc63f21cf2202ca16484d8990d9d7a35be92e56bf18488c3ccbf3eae459c0833cdMock core config files basic chrootsConfig files which allow you to create chroots for:
* Fedora
* Epel
* Mageia
* Custom chroot
* OpenSuse Tumbleweed and Leap
* openEulerhttps://github.com/rpm-software-management/mock/GPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-bd4b3beb-2eb5-4304-a141-2d97e8565c84mock-filesystemnoarch5dc3e8f28b02fbb8a05ce6cadd368321e93c6514313ec78a87cab7b9dae00238Mock filesystem layoutFilesystem layout and group for Mock.https://github.com/rpm-software-management/mock/GPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-45c28ec4-5a84-4190-b274-04ad85f4b88emock-3.5-1.src.rpm/etc/mock/etc/mock/eol/etc/mock/eol/templates/etc/mock/templatesmock-lvmnoarchbcd64df790ad2b0990fef60ecb0ffda6fcba763fd7767d81384c58670b1e6024LVM plugin for mockMock plugin that enables using LVM as a backend and support creating snapshots
of the buildroot.https://github.com/rpm-software-management/mock/GPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-45c28ec4-5a84-4190-b274-04ad85f4b88emock-3.5-1.src.rpmmock-scmnoarchdc7daa3b9aeaf2ac386bc08a13812c99389d63fc3659abf59372b458216899c7Mock SCM integration moduleMock SCM integration module.https://github.com/rpm-software-management/mock/GPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-45c28ec4-5a84-4190-b274-04ad85f4b88emock-3.5-1.src.rpmmodulemd-toolsnoarch760ec2abad158ffaded15827dd9276db2c1be05be79f2c3d9c80e1bf5d062ed5Collection of tools for parsing and generating modulemd YAML filesTools provided by this package:
repo2module - Takes a YUM repository on its input and creates modules.yaml
containing YAML module definitions generated for each package.
dir2module - Generates a module YAML definition based on essential module
information provided via command-line parameters. The packages provided by
the module are found in a specified directory or a text file containing
their list.
createrepo_mod - A small wrapper around createrepo_c and modifyrepo_c to provide
an easy tool for generating module repositories.
modulemd-add-platform - Add a new context configuration for a new platform
into a modulemd-packager file.
modulemd-merge - Merge several modules.yaml files into one. This is useful for
example if you have several yum repositories and want to merge them into one.
modulemd-generate-macros - Generate module-build-macros SRPM package, which is
a central piece for building modules. It should be present in the buildroot
before any other module packages are submitted to be built.
bld2repo - Simple tool for dowloading build required RPMs of a modular build from koji.https://github.com/rpm-software-management/modulemd-toolsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6ce4cd4b-4599-4213-bdae-64cd5a307997modulemd-tools-0.13-1.src.rpm/usr/bin/bld2repo/usr/bin/createrepo_mod/usr/bin/dir2module/usr/bin/modulemd-add-platform/usr/bin/modulemd-generate-macros/usr/bin/modulemd-merge/usr/bin/repo2modulemodulemd-toolsnoarch8921e228c8896f536f760b68c450c409ce96ea91e251f96452fcd81ac2737402Collection of tools for parsing and generating modulemd YAML filesTools provided by this package:
repo2module - Takes a YUM repository on its input and creates modules.yaml
containing YAML module definitions generated for each package.
dir2module - Generates a module YAML definition based on essential module
information provided via command-line parameters. The packages provided by
the module are found in a specified directory or a text file containing
their list.
createrepo_mod - A small wrapper around createrepo_c and modifyrepo_c to provide
an easy tool for generating module repositories.
modulemd-add-platform - Add a new context configuration for a new platform
into a modulemd-packager file.
modulemd-merge - Merge several modules.yaml files into one. This is useful for
example if you have several yum repositories and want to merge them into one.
modulemd-generate-macros - Generate module-build-macros SRPM package, which is
a central piece for building modules. It should be present in the buildroot
before any other module packages are submitted to be built.
bld2repo - Simple tool for dowloading build required RPMs of a modular build from koji.https://github.com/rpm-software-management/modulemd-toolsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6d9dbc47-7051-41fc-bef8-526cc1fecc7dmodulemd-tools-0.13-1.src.rpm/usr/bin/bld2repo/usr/bin/createrepo_mod/usr/bin/dir2module/usr/bin/modulemd-add-platform/usr/bin/modulemd-generate-macros/usr/bin/modulemd-merge/usr/bin/repo2modulemodulemd-toolsnoarch1bcea249b82360b54346be96b7152f96281e381e216f0c3c5359b9c7584987dbCollection of tools for parsing and generating modulemd YAML filesTools provided by this package:
repo2module - Takes a YUM repository on its input and creates modules.yaml
containing YAML module definitions generated for each package.
dir2module - Generates a module YAML definition based on essential module
information provided via command-line parameters. The packages provided by
the module are found in a specified directory or a text file containing
their list.
createrepo_mod - A small wrapper around createrepo_c and modifyrepo_c to provide
an easy tool for generating module repositories.
modulemd-add-platform - Add a new context configuration for a new platform
into a modulemd-packager file.
modulemd-merge - Merge several modules.yaml files into one. This is useful for
example if you have several yum repositories and want to merge them into one.
modulemd-generate-macros - Generate module-build-macros SRPM package, which is
a central piece for building modules. It should be present in the buildroot
before any other module packages are submitted to be built.
bld2repo - Simple tool for dowloading build required RPMs of a modular build from koji.https://github.com/rpm-software-management/modulemd-toolsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-1d7ccbf2-ace4-4f2c-a629-c761f9acc46fmodulemd-tools-0.13-1.src.rpm/usr/bin/bld2repo/usr/bin/createrepo_mod/usr/bin/dir2module/usr/bin/modulemd-add-platform/usr/bin/modulemd-generate-macros/usr/bin/modulemd-merge/usr/bin/repo2modulemodulemd-toolssrc6ed5eaccc7144162a481fcfd66d9b954882ee374f2eb674d7d859e236f0dd7ebCollection of tools for parsing and generating modulemd YAML filesTools provided by this package:
repo2module - Takes a YUM repository on its input and creates modules.yaml
containing YAML module definitions generated for each package.
dir2module - Generates a module YAML definition based on essential module
information provided via command-line parameters. The packages provided by
the module are found in a specified directory or a text file containing
their list.
createrepo_mod - A small wrapper around createrepo_c and modifyrepo_c to provide
an easy tool for generating module repositories.
modulemd-add-platform - Add a new context configuration for a new platform
into a modulemd-packager file.
modulemd-merge - Merge several modules.yaml files into one. This is useful for
example if you have several yum repositories and want to merge them into one.
modulemd-generate-macros - Generate module-build-macros SRPM package, which is
a central piece for building modules. It should be present in the buildroot
before any other module packages are submitted to be built.
bld2repo - Simple tool for dowloading build required RPMs of a modular build from koji.https://github.com/rpm-software-management/modulemd-toolsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6468e6e9-ca0f-49d9-b49a-238e63d43284modulemd-toolssrc4deca7914f24946881cef91edf64015ebe3afcd82d2b293b9eacdfbab6dc5fe5Collection of tools for parsing and generating modulemd YAML filesTools provided by this package:
repo2module - Takes a YUM repository on its input and creates modules.yaml
containing YAML module definitions generated for each package.
dir2module - Generates a module YAML definition based on essential module
information provided via command-line parameters. The packages provided by
the module are found in a specified directory or a text file containing
their list.
createrepo_mod - A small wrapper around createrepo_c and modifyrepo_c to provide
an easy tool for generating module repositories.
modulemd-add-platform - Add a new context configuration for a new platform
into a modulemd-packager file.
modulemd-merge - Merge several modules.yaml files into one. This is useful for
example if you have several yum repositories and want to merge them into one.
modulemd-generate-macros - Generate module-build-macros SRPM package, which is
a central piece for building modules. It should be present in the buildroot
before any other module packages are submitted to be built.
bld2repo - Simple tool for dowloading build required RPMs of a modular build from koji.https://github.com/rpm-software-management/modulemd-toolsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-9973c467-a40f-425d-b4ba-3b63272398bamodulemd-toolssrc9af191222083ba72829af3698f104c3307830f3687ec41b1f928d195f225e76dCollection of tools for parsing and generating modulemd YAML filesTools provided by this package:
repo2module - Takes a YUM repository on its input and creates modules.yaml
containing YAML module definitions generated for each package.
dir2module - Generates a module YAML definition based on essential module
information provided via command-line parameters. The packages provided by
the module are found in a specified directory or a text file containing
their list.
createrepo_mod - A small wrapper around createrepo_c and modifyrepo_c to provide
an easy tool for generating module repositories.
modulemd-add-platform - Add a new context configuration for a new platform
into a modulemd-packager file.
modulemd-merge - Merge several modules.yaml files into one. This is useful for
example if you have several yum repositories and want to merge them into one.
modulemd-generate-macros - Generate module-build-macros SRPM package, which is
a central piece for building modules. It should be present in the buildroot
before any other module packages are submitted to be built.
bld2repo - Simple tool for dowloading build required RPMs of a modular build from koji.https://github.com/rpm-software-management/modulemd-toolsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a8099981-ff00-4460-bbf3-d35dc15e39b9modulemd-toolssrca3ec92e9c0c2cc79f7c83afc977a3f96afc575d0c3f278002dad7952c188244cCollection of tools for parsing and generating modulemd YAML filesTools provided by this package:
repo2module - Takes a YUM repository on its input and creates modules.yaml
containing YAML module definitions generated for each package.
dir2module - Generates a module YAML definition based on essential module
information provided via command-line parameters. The packages provided by
the module are found in a specified directory or a text file containing
their list.
createrepo_mod - A small wrapper around createrepo_c and modifyrepo_c to provide
an easy tool for generating module repositories.
modulemd-add-platform - Add a new context configuration for a new platform
into a modulemd-packager file.
modulemd-merge - Merge several modules.yaml files into one. This is useful for
example if you have several yum repositories and want to merge them into one.
modulemd-generate-macros - Generate module-build-macros SRPM package, which is
a central piece for building modules. It should be present in the buildroot
before any other module packages are submitted to be built.
bld2repo - Simple tool for dowloading build required RPMs of a modular build from koji.https://github.com/rpm-software-management/modulemd-toolsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-da736ae1-b49e-4667-957e-f0760e6b591fmodulemd-toolssrc19438263306c80d19915b155d817614ce2e6ee3dd7225a00685324fecaac811aCollection of tools for parsing and generating modulemd YAML filesTools provided by this package:
repo2module - Takes a YUM repository on its input and creates modules.yaml
containing YAML module definitions generated for each package.
dir2module - Generates a module YAML definition based on essential module
information provided via command-line parameters. The packages provided by
the module are found in a specified directory or a text file containing
their list.
createrepo_mod - A small wrapper around createrepo_c and modifyrepo_c to provide
an easy tool for generating module repositories.
modulemd-add-platform - Add a new context configuration for a new platform
into a modulemd-packager file.
modulemd-merge - Merge several modules.yaml files into one. This is useful for
example if you have several yum repositories and want to merge them into one.
modulemd-generate-macros - Generate module-build-macros SRPM package, which is
a central piece for building modules. It should be present in the buildroot
before any other module packages are submitted to be built.
bld2repo - Simple tool for dowloading build required RPMs of a modular build from koji.https://github.com/rpm-software-management/modulemd-toolsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-117c7522-0cca-489d-8809-5b9344503866modulemd-toolssrc247f3693596ed51e215f0683ceb4255bf64f3d93ea728c3d809594e49df02899Collection of tools for parsing and generating modulemd YAML filesTools provided by this package:
repo2module - Takes a YUM repository on its input and creates modules.yaml
containing YAML module definitions generated for each package.
dir2module - Generates a module YAML definition based on essential module
information provided via command-line parameters. The packages provided by
the module are found in a specified directory or a text file containing
their list.
createrepo_mod - A small wrapper around createrepo_c and modifyrepo_c to provide
an easy tool for generating module repositories.
modulemd-add-platform - Add a new context configuration for a new platform
into a modulemd-packager file.
modulemd-merge - Merge several modules.yaml files into one. This is useful for
example if you have several yum repositories and want to merge them into one.
modulemd-generate-macros - Generate module-build-macros SRPM package, which is
a central piece for building modules. It should be present in the buildroot
before any other module packages are submitted to be built.
bld2repo - Simple tool for dowloading build required RPMs of a modular build from koji.https://github.com/rpm-software-management/modulemd-toolsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-07a19f30-de02-49b0-8f41-d7c45cdb2cb3modulemd-toolssrc46b86b5a10a0abf6cb63f67a8ee60a62afebbbc0d3f364b2d9b40b0424c68749Collection of tools for parsing and generating modulemd YAML filesTools provided by this package:
repo2module - Takes a YUM repository on its input and creates modules.yaml
containing YAML module definitions generated for each package.
dir2module - Generates a module YAML definition based on essential module
information provided via command-line parameters. The packages provided by
the module are found in a specified directory or a text file containing
their list.
createrepo_mod - A small wrapper around createrepo_c and modifyrepo_c to provide
an easy tool for generating module repositories.
modulemd-add-platform - Add a new context configuration for a new platform
into a modulemd-packager file.
modulemd-merge - Merge several modules.yaml files into one. This is useful for
example if you have several yum repositories and want to merge them into one.
modulemd-generate-macros - Generate module-build-macros SRPM package, which is
a central piece for building modules. It should be present in the buildroot
before any other module packages are submitted to be built.
bld2repo - Simple tool for dowloading build required RPMs of a modular build from koji.https://github.com/rpm-software-management/modulemd-toolsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-52e1e5d1-931e-4ed6-a7ca-934dc3b54754modulemd-toolssrcd5daf8331115a92703cbc96b387e1f6cb0e3718ea2df06e03ea6db374e2f0142Collection of tools for parsing and generating modulemd YAML filesTools provided by this package:
repo2module - Takes a YUM repository on its input and creates modules.yaml
containing YAML module definitions generated for each package.
dir2module - Generates a module YAML definition based on essential module
information provided via command-line parameters. The packages provided by
the module are found in a specified directory or a text file containing
their list.
createrepo_mod - A small wrapper around createrepo_c and modifyrepo_c to provide
an easy tool for generating module repositories.
modulemd-add-platform - Add a new context configuration for a new platform
into a modulemd-packager file.
modulemd-merge - Merge several modules.yaml files into one. This is useful for
example if you have several yum repositories and want to merge them into one.
modulemd-generate-macros - Generate module-build-macros SRPM package, which is
a central piece for building modules. It should be present in the buildroot
before any other module packages are submitted to be built.
bld2repo - Simple tool for dowloading build required RPMs of a modular build from koji.https://github.com/rpm-software-management/modulemd-toolsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6a3139aa-4f82-4683-a5f1-8514875f88e5modulemd-toolssrc59ca6953c6c6c57604725d5fbca17254c1f480ffb695be2510a6c46684da8855Collection of tools for parsing and generating modulemd YAML filesTools provided by this package:
repo2module - Takes a YUM repository on its input and creates modules.yaml
containing YAML module definitions generated for each package.
dir2module - Generates a module YAML definition based on essential module
information provided via command-line parameters. The packages provided by
the module are found in a specified directory or a text file containing
their list.
createrepo_mod - A small wrapper around createrepo_c and modifyrepo_c to provide
an easy tool for generating module repositories.
modulemd-add-platform - Add a new context configuration for a new platform
into a modulemd-packager file.
modulemd-merge - Merge several modules.yaml files into one. This is useful for
example if you have several yum repositories and want to merge them into one.
modulemd-generate-macros - Generate module-build-macros SRPM package, which is
a central piece for building modules. It should be present in the buildroot
before any other module packages are submitted to be built.
bld2repo - Simple tool for dowloading build required RPMs of a modular build from koji.https://github.com/rpm-software-management/modulemd-toolsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-62deb155-d639-4f84-a1ea-8dbc7ede826fmodulemd-toolssrcd09dadb0206b0d7e29d9070f1588ce1b4474805c9a4133866a37394eee7ccd59Collection of tools for parsing and generating modulemd YAML filesTools provided by this package:
repo2module - Takes a YUM repository on its input and creates modules.yaml
containing YAML module definitions generated for each package.
dir2module - Generates a module YAML definition based on essential module
information provided via command-line parameters. The packages provided by
the module are found in a specified directory or a text file containing
their list.
createrepo_mod - A small wrapper around createrepo_c and modifyrepo_c to provide
an easy tool for generating module repositories.
modulemd-add-platform - Add a new context configuration for a new platform
into a modulemd-packager file.
modulemd-merge - Merge several modules.yaml files into one. This is useful for
example if you have several yum repositories and want to merge them into one.
modulemd-generate-macros - Generate module-build-macros SRPM package, which is
a central piece for building modules. It should be present in the buildroot
before any other module packages are submitted to be built.
bld2repo - Simple tool for dowloading build required RPMs of a modular build from koji.https://github.com/rpm-software-management/modulemd-toolsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6ce4cd4b-4599-4213-bdae-64cd5a307997modulemd-toolssrc945c778ac0b32d42d7ab7a70c7c2ce3db07a1931fddbb810754aa6c841eb7398Collection of tools for parsing and generating modulemd YAML filesTools provided by this package:
repo2module - Takes a YUM repository on its input and creates modules.yaml
containing YAML module definitions generated for each package.
dir2module - Generates a module YAML definition based on essential module
information provided via command-line parameters. The packages provided by
the module are found in a specified directory or a text file containing
their list.
createrepo_mod - A small wrapper around createrepo_c and modifyrepo_c to provide
an easy tool for generating module repositories.
modulemd-add-platform - Add a new context configuration for a new platform
into a modulemd-packager file.
modulemd-merge - Merge several modules.yaml files into one. This is useful for
example if you have several yum repositories and want to merge them into one.
modulemd-generate-macros - Generate module-build-macros SRPM package, which is
a central piece for building modules. It should be present in the buildroot
before any other module packages are submitted to be built.
bld2repo - Simple tool for dowloading build required RPMs of a modular build from koji.https://github.com/rpm-software-management/modulemd-toolsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6d9dbc47-7051-41fc-bef8-526cc1fecc7dmodulemd-toolssrcf7b86f2dbea2b2480ce83a04952010a5945b27f36be214b96ddfe73b5e1c7036Collection of tools for parsing and generating modulemd YAML filesTools provided by this package:
repo2module - Takes a YUM repository on its input and creates modules.yaml
containing YAML module definitions generated for each package.
dir2module - Generates a module YAML definition based on essential module
information provided via command-line parameters. The packages provided by
the module are found in a specified directory or a text file containing
their list.
createrepo_mod - A small wrapper around createrepo_c and modifyrepo_c to provide
an easy tool for generating module repositories.
modulemd-add-platform - Add a new context configuration for a new platform
into a modulemd-packager file.
modulemd-merge - Merge several modules.yaml files into one. This is useful for
example if you have several yum repositories and want to merge them into one.
modulemd-generate-macros - Generate module-build-macros SRPM package, which is
a central piece for building modules. It should be present in the buildroot
before any other module packages are submitted to be built.
bld2repo - Simple tool for dowloading build required RPMs of a modular build from koji.https://github.com/rpm-software-management/modulemd-toolsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-1d7ccbf2-ace4-4f2c-a629-c761f9acc46fmysql-connector-pythonsrc144142e17200398a765b0c0e1f340fb5e235bcd7e1d4dbf14712974d7448c723MySQL driver written in Python
MySQL driver written in Python which does not depend on MySQL C client
libraries and implements the DB API v2.0 specification (PEP-249).http://dev.mysql.com/doc/connector-python/en/index.htmlGNU GPLv2 (with FOSS License Exception)openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-8bdffad1-4cbe-40a2-b5bc-ddd09c7ee279mysql-connector-pythonsrce53ad110b1931ea78ef7dcf2b171e538f0e04912a874cf5c49154a3d23c0e0aaMySQL driver written in Python
MySQL driver written in Python which does not depend on MySQL C client
libraries and implements the DB API v2.0 specification (PEP-249).http://dev.mysql.com/doc/connector-python/en/index.htmlGNU GPLv2 (with FOSS License Exception)openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a5b60b90-c87e-4b8d-adc3-3b2ba5cc89e5mysql-connector-python-debuginfox86_645278e12b3922142e8c61d634936d046081c48c8744f862aa7e66ffb3ed1e0ed2Debug information for package mysql-connector-pythonThis package provides debug information for package mysql-connector-python.
Debug information is useful when developing applications that use this
package or when debugging this package.http://dev.mysql.com/doc/connector-python/en/index.htmlGNU GPLv2 (with FOSS License Exception)openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-8bdffad1-4cbe-40a2-b5bc-ddd09c7ee279mysql-connector-python-8.0.32-1.src.rpmmysql-connector-python-debuginfox86_64019738289c36f0284ed31e8876264b4dd1cb1690c83c65065ed6fd9333f63dadDebug information for package mysql-connector-pythonThis package provides debug information for package mysql-connector-python.
Debug information is useful when developing applications that use this
package or when debugging this package.http://dev.mysql.com/doc/connector-python/en/index.htmlGNU GPLv2 (with FOSS License Exception)openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-a5b60b90-c87e-4b8d-adc3-3b2ba5cc89e5mysql-connector-python-8.0.32-1.src.rpmmysql-connector-python-debugsourcex86_640bf5002f337a5bec911c243e653c9d5b98afea1b17168c4d9fb993d85931b137Debug sources for package mysql-connector-pythonThis package provides debug sources for package mysql-connector-python.
Debug sources are useful when developing applications that use this
package or when debugging this package.http://dev.mysql.com/doc/connector-python/en/index.htmlGNU GPLv2 (with FOSS License Exception)openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-8bdffad1-4cbe-40a2-b5bc-ddd09c7ee279mysql-connector-python-8.0.32-1.src.rpmmysql-connector-python-debugsourcex86_64e3bb4843114e0b553177b65e4eca2ee364aa6c6a320ac878f217e5a203abc371Debug sources for package mysql-connector-pythonThis package provides debug sources for package mysql-connector-python.
Debug sources are useful when developing applications that use this
package or when debugging this package.http://dev.mysql.com/doc/connector-python/en/index.htmlGNU GPLv2 (with FOSS License Exception)openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-a5b60b90-c87e-4b8d-adc3-3b2ba5cc89e5mysql-connector-python-8.0.32-1.src.rpmmysql-connector-python-helpx86_642b5d8c0f9495739524f074f84deb12c6b19b2b94547c40e97a2b7fcc19dee856Development documents and examples for mysql-connector-python
MySQL driver written in Python which does not depend on MySQL C client
libraries and implements the DB API v2.0 specification (PEP-249).http://dev.mysql.com/doc/connector-python/en/index.htmlGNU GPLv2 (with FOSS License Exception)openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-8bdffad1-4cbe-40a2-b5bc-ddd09c7ee279mysql-connector-python-8.0.32-1.src.rpmmysql-connector-python-helpx86_64606a612a09cacc8bd7f020d89a77d5d55515851af2e4d30bbe9e98ea8cc5d45fDevelopment documents and examples for mysql-connector-python
MySQL driver written in Python which does not depend on MySQL C client
libraries and implements the DB API v2.0 specification (PEP-249).http://dev.mysql.com/doc/connector-python/en/index.htmlGNU GPLv2 (with FOSS License Exception)openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a5b60b90-c87e-4b8d-adc3-3b2ba5cc89e5mysql-connector-python-8.0.32-1.src.rpmmysql-connector-python3x86_6464b543552afc5acd41837c0d9dc6dbc025c97cd77f510eac7074f4256a985fd0MySQL driver written in Python
MySQL driver written in Python which does not depend on MySQL C client
libraries and implements the DB API v2.0 specification (PEP-249).http://dev.mysql.com/doc/connector-python/en/index.htmlGNU GPLv2 (with FOSS License Exception)openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-8bdffad1-4cbe-40a2-b5bc-ddd09c7ee279mysql-connector-python-8.0.32-1.src.rpmmysql-connector-python3x86_64cce80a3379edc212801db2fabddc9343f5a8f1050c6dfcbbf120ec2fd0ef8332MySQL driver written in Python
MySQL driver written in Python which does not depend on MySQL C client
libraries and implements the DB API v2.0 specification (PEP-249).http://dev.mysql.com/doc/connector-python/en/index.htmlGNU GPLv2 (with FOSS License Exception)openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a5b60b90-c87e-4b8d-adc3-3b2ba5cc89e5mysql-connector-python-8.0.32-1.src.rpmnosyncsrc2eb717e0258b738bf5c6ab8ae2c5f14a5cb6b401b8c501275378f956e6b023c2Preload library for disabling file's content synchronizationnosync is a small preload library that can be used to disable
synchronization of file's content with storage devices on GNU/Linux.
It works by overriding implementations of certain standard functions
like fsync or open.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-defac9ae-a617-416c-bc19-400cb91fbf21nosyncsrc56b4fcd265fd3d2992f036d22e7eec6bef5b7eff1dd3102e28f3600cbd18509aPreload library for disabling file's content synchronizationnosync is a small preload library that can be used to disable
synchronization of file's content with storage devices on GNU/Linux.
It works by overriding implementations of certain standard functions
like fsync or open.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-50b52550-13a3-4102-948f-1feba6f0b434nosyncsrc00afda3275b34b71d84c70bd10c14c4b29c542606d310953e251f62ca0a685b1Preload library for disabling file's content synchronizationnosync is a small preload library that can be used to disable
synchronization of file's content with storage devices on GNU/Linux.
It works by overriding implementations of certain standard functions
like fsync or open.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b28dde8d-21e2-4b68-9ed9-c910529d5b81nosyncsrc3e42da37ecd525e8cb90b8c6cdbee1d900b8d1859a1bdd7ef880086f40a2a8d6Preload library for disabling file's content synchronizationnosync is a small preload library that can be used to disable
synchronization of file's content with storage devices on GNU/Linux.
It works by overriding implementations of certain standard functions
like fsync or open.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-702ed6ec-fafd-4d19-b91d-593fb34a41acnosyncsrc63ce6e44786bc1b350db3c8d03dcb8935a74a46ce571cd3b74768243d430123aPreload library for disabling file's content synchronizationnosync is a small preload library that can be used to disable
synchronization of file's content with storage devices on GNU/Linux.
It works by overriding implementations of certain standard functions
like fsync or open.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-71691c6d-e481-41da-a87c-5db3bf0c6298nosyncx86_645456657368bb31400c81cc86e1cd73dcc96d926750e37f38ee6115aaafd6b7c4Preload library for disabling file's content synchronizationnosync is a small preload library that can be used to disable
synchronization of file's content with storage devices on GNU/Linux.
It works by overriding implementations of certain standard functions
like fsync or open.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-defac9ae-a617-416c-bc19-400cb91fbf21nosync-1.1-1.src.rpmnosyncx86_64a8b82fda373ac09dbc50e47b9bb1a9aeb46f083689ddc1e180081620c121e528Preload library for disabling file's content synchronizationnosync is a small preload library that can be used to disable
synchronization of file's content with storage devices on GNU/Linux.
It works by overriding implementations of certain standard functions
like fsync or open.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-50b52550-13a3-4102-948f-1feba6f0b434nosync-1.1-1.src.rpmnosyncx86_64723531b35571807e956b8f94761e6b5b442a04e319c1e7fc492a9b1b9aee9bd5Preload library for disabling file's content synchronizationnosync is a small preload library that can be used to disable
synchronization of file's content with storage devices on GNU/Linux.
It works by overriding implementations of certain standard functions
like fsync or open.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b28dde8d-21e2-4b68-9ed9-c910529d5b81nosync-1.1-1.src.rpmnosyncx86_648a5605e846e0fa1734401720357c537b240a470b95aeb5071c54bd10bd204f6cPreload library for disabling file's content synchronizationnosync is a small preload library that can be used to disable
synchronization of file's content with storage devices on GNU/Linux.
It works by overriding implementations of certain standard functions
like fsync or open.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-702ed6ec-fafd-4d19-b91d-593fb34a41acnosync-1.1-1.src.rpmnosyncx86_6406b0d5415ca36966e2fdf3eac171b74ca383cb37e19a8d76681a63935f6236a5Preload library for disabling file's content synchronizationnosync is a small preload library that can be used to disable
synchronization of file's content with storage devices on GNU/Linux.
It works by overriding implementations of certain standard functions
like fsync or open.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-71691c6d-e481-41da-a87c-5db3bf0c6298nosync-1.1-1.src.rpmnosync-debuginfox86_642214cc8865bd13bf72c3662d55019c9c2c5683cf3cfa4e84ed177598525ad832Debug information for package nosyncThis package provides debug information for package nosync.
Debug information is useful when developing applications that use this
package or when debugging this package.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-defac9ae-a617-416c-bc19-400cb91fbf21nosync-1.1-1.src.rpmnosync-debuginfox86_6443176666e436913d157b53b6adc078a46a30a7e150376788f56d0cd318109f41Debug information for package nosyncThis package provides debug information for package nosync.
Debug information is useful when developing applications that use this
package or when debugging this package.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-50b52550-13a3-4102-948f-1feba6f0b434nosync-1.1-1.src.rpmnosync-debuginfox86_64fd3ff4750b25fe6dfd19c7e8e7dd9d7b2a866a256a83268aaff018939f281c72Debug information for package nosyncThis package provides debug information for package nosync.
Debug information is useful when developing applications that use this
package or when debugging this package.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-b28dde8d-21e2-4b68-9ed9-c910529d5b81nosync-1.1-1.src.rpmnosync-debuginfox86_64159ef256aab8d7ca0cdf128e4626319d75f9328088aa210d85083e99f252a2dcDebug information for package nosyncThis package provides debug information for package nosync.
Debug information is useful when developing applications that use this
package or when debugging this package.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-702ed6ec-fafd-4d19-b91d-593fb34a41acnosync-1.1-1.src.rpmnosync-debuginfox86_64bad3dfde3da1e5a040631ce3d5c6332052b729f07df420ca2d8733f6b715551cDebug information for package nosyncThis package provides debug information for package nosync.
Debug information is useful when developing applications that use this
package or when debugging this package.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-71691c6d-e481-41da-a87c-5db3bf0c6298nosync-1.1-1.src.rpmnosync-debugsourcex86_640053577b40a639727d8349bd919280f74b001dfed5e99355cb9391e2b2060dafDebug sources for package nosyncThis package provides debug sources for package nosync.
Debug sources are useful when developing applications that use this
package or when debugging this package.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-defac9ae-a617-416c-bc19-400cb91fbf21nosync-1.1-1.src.rpmnosync-debugsourcex86_64b876796ab567173eb404fbd53a7c2ab6c733bda07f9bc982ca83ca8207efd3f0Debug sources for package nosyncThis package provides debug sources for package nosync.
Debug sources are useful when developing applications that use this
package or when debugging this package.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-50b52550-13a3-4102-948f-1feba6f0b434nosync-1.1-1.src.rpmnosync-debugsourcex86_64d900e634eb362331732d440598a9c736b26d6654f3279b192006de415c2ccbebDebug sources for package nosyncThis package provides debug sources for package nosync.
Debug sources are useful when developing applications that use this
package or when debugging this package.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-b28dde8d-21e2-4b68-9ed9-c910529d5b81nosync-1.1-1.src.rpmnosync-debugsourcex86_64904e0724f243d284d8e1bbb0c1e19151355a09da0cffa0de22aa4901741db15fDebug sources for package nosyncThis package provides debug sources for package nosync.
Debug sources are useful when developing applications that use this
package or when debugging this package.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-702ed6ec-fafd-4d19-b91d-593fb34a41acnosync-1.1-1.src.rpmnosync-debugsourcex86_6497696e4852a01cbd948570361102511fa2e33f70f6c1ec1b03a0fc411d4448ffDebug sources for package nosyncThis package provides debug sources for package nosync.
Debug sources are useful when developing applications that use this
package or when debugging this package.http://github.com/kjn/nosyncASL 2.0openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-71691c6d-e481-41da-a87c-5db3bf0c6298nosync-1.1-1.src.rpmobs-signdsrcbc52b6159cf9150cbfe1b6c20538e129a6ccfab6acf46673176bfd1084a4f53fThe OBS sign daemonThe OpenSUSE Build Service sign client and daemon.
This daemon can be used to sign anything via gpg by communicating
with a remote server to avoid the need to host the private key
on the same server.https://github.com/openSUSE/obs-signGPL-2.0-onlyopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3760092a-904f-44f9-a4d0-05eb99a3d540obs-signdsrcdef544eba0ae903149626289578124b19499cfdd13d552e01d7b57c789516d92The OBS sign daemonThe OpenSUSE Build Service sign client and daemon.
This daemon can be used to sign anything via gpg by communicating
with a remote server to avoid the need to host the private key
on the same server.https://github.com/openSUSE/obs-signGPL-2.0-onlyopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-23d67174-2fea-4bef-94f1-1911aee263acobs-signdx86_6417801c8a3216f5df21f6e68cb139b82df2baeff2144ef884fc4d58e043bd564dThe OBS sign daemonThe OpenSUSE Build Service sign client and daemon.
This daemon can be used to sign anything via gpg by communicating
with a remote server to avoid the need to host the private key
on the same server.https://github.com/openSUSE/obs-signGPL-2.0-onlyopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3760092a-904f-44f9-a4d0-05eb99a3d540obs-signd-2.6.1-1.src.rpm/etc/sign.conf/usr/bin/sign/usr/sbin/signdobs-signdx86_64099362af4a8c23881cc801e8b93550b224503f4d5cb1a0934b8968831580e161The OBS sign daemonThe OpenSUSE Build Service sign client and daemon.
This daemon can be used to sign anything via gpg by communicating
with a remote server to avoid the need to host the private key
on the same server.https://github.com/openSUSE/obs-signGPL-2.0-onlyopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-23d67174-2fea-4bef-94f1-1911aee263acobs-signd-2.6.1-1.src.rpm/etc/sign.conf/usr/bin/sign/usr/sbin/signdobs-signd-debuginfox86_64e357699eab3b797537e89e4513614e63616294ca6184911bb79f56dcb08f392fDebug information for package obs-signdThis package provides debug information for package obs-signd.
Debug information is useful when developing applications that use this
package or when debugging this package.https://github.com/openSUSE/obs-signGPL-2.0-onlyopenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-3760092a-904f-44f9-a4d0-05eb99a3d540obs-signd-2.6.1-1.src.rpm/usr/lib/debug/usr/bin/sign-2.6.1-1.x86_64.debugobs-signd-debuginfox86_643635a99432aa4f8e12381374d8a39bcd5aa9883f1b71afbb24fcb71830859ecbDebug information for package obs-signdThis package provides debug information for package obs-signd.
Debug information is useful when developing applications that use this
package or when debugging this package.https://github.com/openSUSE/obs-signGPL-2.0-onlyopenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-23d67174-2fea-4bef-94f1-1911aee263acobs-signd-2.6.1-1.src.rpm/usr/lib/debug/usr/bin/sign-2.6.1-1.x86_64.debugobs-signd-debugsourcex86_64e346a0ce0d16e016875e4a05aa6d618a9eebda24ca1b933a953600326a007ca6Debug sources for package obs-signdThis package provides debug sources for package obs-signd.
Debug sources are useful when developing applications that use this
package or when debugging this package.https://github.com/openSUSE/obs-signGPL-2.0-onlyopenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-3760092a-904f-44f9-a4d0-05eb99a3d540obs-signd-2.6.1-1.src.rpmobs-signd-debugsourcex86_64f38ce2addec20da0294cda0ed2fabe7899dd10c6436d984ba688d6b5f24e444bDebug sources for package obs-signdThis package provides debug sources for package obs-signd.
Debug sources are useful when developing applications that use this
package or when debugging this package.https://github.com/openSUSE/obs-signGPL-2.0-onlyopenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-23d67174-2fea-4bef-94f1-1911aee263acobs-signd-2.6.1-1.src.rpmpreprocnoarch6fb24fa9634895f0d6bebf4ad0613b8a545f5e07140ec5361b9b437c84c1e159Simple text preprocessorSimple text preprocessor implementing a very basic templating language.
You can use bash code enclosed in triple braces in a text file and
then pipe content of that file to preproc. preproc will replace each of
the tags with stdout of the executed code and print the final renderred
result to its own stdout.https://pagure.io/rpkg-util.gitGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a8f0a7f5-a47c-441b-bf40-542ee0ba0ac4preproc-0.5-1.src.rpm/usr/bin/preprocpreprocsrc162ce8a51c949b0b940d7730686f75afb082ad8cdad83c3a90c0e936c543402bSimple text preprocessorSimple text preprocessor implementing a very basic templating language.
You can use bash code enclosed in triple braces in a text file and
then pipe content of that file to preproc. preproc will replace each of
the tags with stdout of the executed code and print the final renderred
result to its own stdout.https://pagure.io/rpkg-util.gitGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a8f0a7f5-a47c-441b-bf40-542ee0ba0ac4procenvsrccc211de7e22151e9630b63fdebe76ea6dc336e981aee3d800f81f668a535babbUtility to show process environmentThis package contains a command-line tool that displays as much
detail about itself and its environment as possible. It can be
used as a test tool, to understand the type of environment a
process runs in, and for comparing system environments.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-66442e5b-a0f9-46b5-a169-e95e227c37ddprocenvsrc12bfc3329298866b76b7ddc24f9a5c79be9b92717dfeb7044bdf97f3701b722dUtility to show process environmentThis package contains a command-line tool that displays as much
detail about itself and its environment as possible. It can be
used as a test tool, to understand the type of environment a
process runs in, and for comparing system environments.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d62b3f15-d5cf-4f41-adb9-9f5084ba5ff5procenvsrcaacb8617dd574fd1b6b1ad911b14da951ad64bb565fe4bbe4142daa8dccebf35Utility to show process environmentThis package contains a command-line tool that displays as much
detail about itself and its environment as possible. It can be
used as a test tool, to understand the type of environment a
process runs in, and for comparing system environments.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3ad9afe2-9aef-4a89-840a-a1c95a0fbf36procenvsrc5db1886844a98bf960bdf41a499ee13f56939bb9cad3ab4603e574d0a0b0052bUtility to show process environmentThis package contains a command-line tool that displays as much
detail about itself and its environment as possible. It can be
used as a test tool, to understand the type of environment a
process runs in, and for comparing system environments.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c243825d-2ced-4832-8dea-75c11e7b5af5procenvsrc8518f5058deebe5a518def4c0a2fcec119f9b6d81ab231b2f144d4bb1a959d36Utility to show process environmentThis package contains a command-line tool that displays as much
detail about itself and its environment as possible. It can be
used as a test tool, to understand the type of environment a
process runs in, and for comparing system environments.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedeur-prod-workerlocal-x86-64-normal-prod-00210485-20240301-02491procenvsrc83b93252a0532ee98d893b67205065c48467cb19eb8cfe0372fb2f0da9532023Utility to show process environmentThis package contains a command-line tool that displays as much
detail about itself and its environment as possible. It can be
used as a test tool, to understand the type of environment a
process runs in, and for comparing system environments.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedeur-prod-workerlocal-x86-64-normal-prod-00211508-20240329-08213procenvx86_64442f2920fa4e2e69dd180c856c5cbae74c04ba31683f8c743ef663330dc58ac4Utility to show process environmentThis package contains a command-line tool that displays as much
detail about itself and its environment as possible. It can be
used as a test tool, to understand the type of environment a
process runs in, and for comparing system environments.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-66442e5b-a0f9-46b5-a169-e95e227c37ddprocenv-0.60-1.src.rpm/usr/bin/procenvprocenvx86_64b6dd33440c3acbb3fdca736457f9d330988be1ba402a95572d9b4d4f67456032Utility to show process environmentThis package contains a command-line tool that displays as much
detail about itself and its environment as possible. It can be
used as a test tool, to understand the type of environment a
process runs in, and for comparing system environments.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d62b3f15-d5cf-4f41-adb9-9f5084ba5ff5procenv-0.60-1.src.rpm/usr/bin/procenvprocenvx86_644596abec844da8af2295636c332d3793ebbe876d19b21442174cd24b2244731cUtility to show process environmentThis package contains a command-line tool that displays as much
detail about itself and its environment as possible. It can be
used as a test tool, to understand the type of environment a
process runs in, and for comparing system environments.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3ad9afe2-9aef-4a89-840a-a1c95a0fbf36procenv-0.60-1.src.rpm/usr/bin/procenvprocenvx86_64e0f6821235fb0057beb0283b963e5e30c9588b7868e4eb4b4137b57915b38a7dUtility to show process environmentThis package contains a command-line tool that displays as much
detail about itself and its environment as possible. It can be
used as a test tool, to understand the type of environment a
process runs in, and for comparing system environments.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c243825d-2ced-4832-8dea-75c11e7b5af5procenv-0.60-1.src.rpm/usr/bin/procenvprocenvx86_64decaa210aad8c834f92b6b006ac35509527d90fb713d883f517ac7a41e81be9cUtility to show process environmentThis package contains a command-line tool that displays as much
detail about itself and its environment as possible. It can be
used as a test tool, to understand the type of environment a
process runs in, and for comparing system environments.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedeur-prod-workerlocal-x86-64-normal-prod-00210485-20240301-02491procenv-0.60-1.src.rpm/usr/bin/procenvprocenvx86_64c25e5742acc0635eb099bcb6d59e4a3321175f22d20881f7a53f9edf4bb7c83aUtility to show process environmentThis package contains a command-line tool that displays as much
detail about itself and its environment as possible. It can be
used as a test tool, to understand the type of environment a
process runs in, and for comparing system environments.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedeur-prod-workerlocal-x86-64-normal-prod-00211508-20240329-08213procenv-0.60-1.src.rpm/usr/bin/procenvprocenv-debuginfox86_64e5553961a8333415c0352fa93b288ba6f66562dc45dc4eb6d559f267a4531b28Debug information for package procenvThis package provides debug information for package procenv.
Debug information is useful when developing applications that use this
package or when debugging this package.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-66442e5b-a0f9-46b5-a169-e95e227c37ddprocenv-0.60-1.src.rpm/usr/lib/debug/usr/bin/procenv-0.60-1.x86_64.debugprocenv-debuginfox86_6476a4b0d98e0229f4ab60995063da327cc9212d812393351b088f139d75c29bedDebug information for package procenvThis package provides debug information for package procenv.
Debug information is useful when developing applications that use this
package or when debugging this package.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-d62b3f15-d5cf-4f41-adb9-9f5084ba5ff5procenv-0.60-1.src.rpm/usr/lib/debug/usr/bin/procenv-0.60-1.x86_64.debugprocenv-debuginfox86_64133e6d78e5577dab3251ba8df3dea9aa093d1cf88a2ca4a83fd3f60ab869a63dDebug information for package procenvThis package provides debug information for package procenv.
Debug information is useful when developing applications that use this
package or when debugging this package.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-3ad9afe2-9aef-4a89-840a-a1c95a0fbf36procenv-0.60-1.src.rpm/usr/lib/debug/usr/bin/procenv-0.60-1.x86_64.debugprocenv-debuginfox86_64e28d56b6be78cefbef3eb69d7eace0aee4684d4557fed93e912ac8558cc6d687Debug information for package procenvThis package provides debug information for package procenv.
Debug information is useful when developing applications that use this
package or when debugging this package.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-c243825d-2ced-4832-8dea-75c11e7b5af5procenv-0.60-1.src.rpm/usr/lib/debug/usr/bin/procenv-0.60-1.x86_64.debugprocenv-debuginfox86_64de09f1b1de5cc4b009982e2b1eb96cc5dae6cc7c2264b810b49c5882c1787a68Debug information for package procenvThis package provides debug information for package procenv.
Debug information is useful when developing applications that use this
package or when debugging this package.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminDevelopment/Debugeur-prod-workerlocal-x86-64-normal-prod-00210485-20240301-02491procenv-0.60-1.src.rpm/usr/lib/debug/usr/bin/procenv-0.60-1.x86_64.debugprocenv-debuginfox86_645575c88b4c496e09013107f593a2ad43f71a9b6aa5a6969ddf3dd530c35df823Debug information for package procenvThis package provides debug information for package procenv.
Debug information is useful when developing applications that use this
package or when debugging this package.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminDevelopment/Debugeur-prod-workerlocal-x86-64-normal-prod-00211508-20240329-08213procenv-0.60-1.src.rpm/usr/lib/debug/usr/bin/procenv-0.60-1.x86_64.debugprocenv-debugsourcex86_64139f674d6055efe7c295800a27a4433dc25eb7267e75e8eaf59495ddad24b0bdDebug sources for package procenvThis package provides debug sources for package procenv.
Debug sources are useful when developing applications that use this
package or when debugging this package.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-66442e5b-a0f9-46b5-a169-e95e227c37ddprocenv-0.60-1.src.rpmprocenv-debugsourcex86_649ad9eb6ba705bb38b44e45171859755f8a778515a88ca6508ea68f0310294c28Debug sources for package procenvThis package provides debug sources for package procenv.
Debug sources are useful when developing applications that use this
package or when debugging this package.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-d62b3f15-d5cf-4f41-adb9-9f5084ba5ff5procenv-0.60-1.src.rpmprocenv-debugsourcex86_64d02afed476e672994bceaf315710171caa3306442fd0a638cd1c5694e0f0e522Debug sources for package procenvThis package provides debug sources for package procenv.
Debug sources are useful when developing applications that use this
package or when debugging this package.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-3ad9afe2-9aef-4a89-840a-a1c95a0fbf36procenv-0.60-1.src.rpmprocenv-debugsourcex86_645f3fd11a72045b671ae8f1c940d4c3596e4a23509f3fee119bbe7a18fc2e1b43Debug sources for package procenvThis package provides debug sources for package procenv.
Debug sources are useful when developing applications that use this
package or when debugging this package.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-c243825d-2ced-4832-8dea-75c11e7b5af5procenv-0.60-1.src.rpmprocenv-debugsourcex86_6483c984268809d0147c03390ead6312702a3c92881c8e3f37bab0a4236b243879Debug sources for package procenvThis package provides debug sources for package procenv.
Debug sources are useful when developing applications that use this
package or when debugging this package.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminDevelopment/Debugeur-prod-workerlocal-x86-64-normal-prod-00210485-20240301-02491procenv-0.60-1.src.rpmprocenv-debugsourcex86_6483bc219ef9cda8440a60bc46b840aa2e510ec157be5f68036436274c117a5645Debug sources for package procenvThis package provides debug sources for package procenv.
Debug sources are useful when developing applications that use this
package or when debugging this package.https://github.com/jamesodhunt/procenvGPL-3.0-or-lateropenEuler Copr - user mywaaagh_adminDevelopment/Debugeur-prod-workerlocal-x86-64-normal-prod-00211508-20240329-08213procenv-0.60-1.src.rpmprunereponoarchfdfd6212c98c1ef2eea2c94d1bde82e23262d224cefd2da6b7389c046703e0b9Remove old packages from rpm-md repositoryRPM packages that have newer version available in that same
repository are deleted from filesystem and the rpm-md metadata are
recreated afterwards. If there is a source rpm for a deleted rpm
(and they both share the same directory path), then the source rpm
will be deleted as well.
Support for specific repository structure (e.g. COPR) is also available
making it possible to additionally remove build logs and whole build
directories associated with a package.
After deletion of obsoleted packages, the command
"createrepo_c --database --update" is called
to recreate the repository metadata.https://pagure.io/prunerepoGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-df21d7e5-287f-45ed-8500-97a57d106c54prunerepo-1.21-1.src.rpm/usr/bin/prunerepoprunereposrc2c89859f9e6987ae989f1c57e19a2bf9c63704fb61c8916d0c361ec58a872cfbRemove old packages from rpm-md repositoryRPM packages that have newer version available in that same
repository are deleted from filesystem and the rpm-md metadata are
recreated afterwards. If there is a source rpm for a deleted rpm
(and they both share the same directory path), then the source rpm
will be deleted as well.
Support for specific repository structure (e.g. COPR) is also available
making it possible to additionally remove build logs and whole build
directories associated with a package.
After deletion of obsoleted packages, the command
"createrepo_c --database --update" is called
to recreate the repository metadata.https://pagure.io/prunerepoGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-df21d7e5-287f-45ed-8500-97a57d106c54pyproject-rpm-macrosnoarch5606dc477cfb34efed06bf5928b2ce658a3a0c90fe83d094ef2ebf328e3f3a8bRPM macros for PEP 517 Python packagesThese macros allow projects that follow the Python packaging specifications
to be packaged as RPMs.
They work for:
* traditional Setuptools-based projects that use the setup.py file,
* newer Setuptools-based projects that have a setup.cfg file,
* general Python projects that use the PEP 517 pyproject.toml file
(which allows using any build system, such as setuptools, flit or poetry).
These macros replace %py3_build and %py3_install,
which only work with setup.py.https://src.fedoraproject.org/rpms/pyproject-rpm-macrosMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-935acf7b-d1bb-4b35-912c-16e8d547ec84pyproject-rpm-macros-1.4.0-1.src.rpmpyproject-rpm-macrossrcf93dea057b7ae37cbb7f3083fe767d0dbd4e14b5e24e66be329222ee57217f95RPM macros for PEP 517 Python packagesThese macros allow projects that follow the Python packaging specifications
to be packaged as RPMs.
They work for:
* traditional Setuptools-based projects that use the setup.py file,
* newer Setuptools-based projects that have a setup.cfg file,
* general Python projects that use the PEP 517 pyproject.toml file
(which allows using any build system, such as setuptools, flit or poetry).
These macros replace %py3_build and %py3_install,
which only work with setup.py.https://src.fedoraproject.org/rpms/pyproject-rpm-macrosMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-935acf7b-d1bb-4b35-912c-16e8d547ec84pyproject-rpm-macrossrcc0cea3958b88276ac6272a866a15634a31f5001b57952c491f97130ba2f8ca20RPM macros for PEP 517 Python packagesThese macros allow projects that follow the Python packaging specifications
to be packaged as RPMs.
They work for:
* traditional Setuptools-based projects that use the setup.py file,
* newer Setuptools-based projects that have a setup.cfg file,
* general Python projects that use the PEP 517 pyproject.toml file
(which allows using any build system, such as setuptools, flit or poetry).
These macros replace %py3_build and %py3_install,
which only work with setup.py.https://src.fedoraproject.org/rpms/pyproject-rpm-macrosMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-dd558e10-35a3-4ce7-9fdd-3847dbb3fba5python-Authlibsrc3dd3cb6a64dd72d8e746cc815fea7c4978f1a72911d47611bb49ce0c03ca3262The ultimate Python library in building OAuth and OpenID Connect servers and clients.The ultimate Python library in building OAuth and OpenID Connect servers.
JWS, JWK, JWA, JWT are included.https://authlib.org/BSD 3-Clause LicenseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b57784f7-d625-4237-995f-4bbe27608752python-Authlib-helpnoarch50fad7aaaf83c88a256dc83b0dce93a790062e09f30fdd6137abd705242c27b1Development documents and examples for AuthlibThe ultimate Python library in building OAuth and OpenID Connect servers.
JWS, JWK, JWA, JWT are included.https://authlib.org/BSD 3-Clause LicenseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b57784f7-d625-4237-995f-4bbe27608752python-Authlib-1.2.0-1.src.rpmpython-CCColUtilssrc35803a4538624af212294bf55d0f54156a313aa0ea26c68056de378d1dda61bdKerberos5 Credential Cache Collection UtilitiesKerberos5 Credential Cache Collection Utilities.https://pagure.io/cccolutilsGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-46f4b592-1360-4414-8da0-da81cd95a8fcpython-CCColUtils-debuginfox86_644a2473e1517741993978add259724f87eeb31f91abb59fac06bdf8af686da4d0Debug information for package python-CCColUtilsThis package provides debug information for package python-CCColUtils.
Debug information is useful when developing applications that use this
package or when debugging this package.https://pagure.io/cccolutilsGPLv2+openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-46f4b592-1360-4414-8da0-da81cd95a8fcpython-CCColUtils-1.5-2.src.rpmpython-CCColUtils-debugsourcex86_64716c375dacad9eee0fb655dee9b2f6afc3abdb3b8677dc9d86597b812f6a95f8Debug sources for package python-CCColUtilsThis package provides debug sources for package python-CCColUtils.
Debug sources are useful when developing applications that use this
package or when debugging this package.https://pagure.io/cccolutilsGPLv2+openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-46f4b592-1360-4414-8da0-da81cd95a8fcpython-CCColUtils-1.5-2.src.rpmpython-Flask-Cachingsrce49e12b887ea5dd41abfd597c4c3fddd347326b35ab0c62cd90402f870b3ab48Adds caching support to Flask applications.A fork of the `Flask-cache`_ extension which adds easy cache support to Flask.https://github.com/pallets-eco/flask-cachingBSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-261fe3ab-c3ac-4e5e-94ab-7b0b4980da67python-Flask-Cachingsrc60d6cdea7f2f4af7a19a98855856bf9581ba678142b4fa1116e4e8ecbba7cd73Adds caching support to Flask applications.A fork of the `Flask-cache`_ extension which adds easy cache support to Flask.https://github.com/pallets-eco/flask-cachingBSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-57e9c2a1-b0f8-448a-94e3-60573f85c1f8python-Flask-Caching-helpnoarchac18bdbbc42d00647a7226f9003bea7f1c20ee8c05d49114e29183f1f13700e0Development documents and examples for Flask-CachingA fork of the `Flask-cache`_ extension which adds easy cache support to Flask.https://github.com/pallets-eco/flask-cachingBSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-261fe3ab-c3ac-4e5e-94ab-7b0b4980da67python-Flask-Caching-2.0.2-1.src.rpmpython-Flask-Caching-helpnoarch0de7bcc75e5abce6607f09958fe9f687c0348ba8c06241f189c3062810044329Development documents and examples for Flask-CachingA fork of the `Flask-cache`_ extension which adds easy cache support to Flask.https://github.com/pallets-eco/flask-cachingBSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-57e9c2a1-b0f8-448a-94e3-60573f85c1f8python-Flask-Caching-2.0.2-1.src.rpmpython-Flask-OpenIDsrcec73a171599df5c8eb3ba5bd4b91fecbd679beb445e2db8e676c2f295fe5f74bOpenID support for FlaskFlask-OpenID adds openid support to flask applicationshttp://github.com/mitsuhiko/flask-openid/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-601340c1-2fa6-48f2-a006-a5cf1371a23fpython-Flask-OpenID-helpnoarcha7f6841745f603343ad49cc8438092e01bda262fce1a5774e373f2f422526c65Development documents and examples for Flask-OpenIDFlask-OpenID adds openid support to flask applicationshttp://github.com/mitsuhiko/flask-openid/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-601340c1-2fa6-48f2-a006-a5cf1371a23fpython-Flask-OpenID-1.3.0-2.src.rpmpython-Flask-WTFsrc137127b7a1684f9f7bc845c561998302b3849a3fdcaa915b623192a5a6c42775Form rendering, validation, and CSRF protection for Flask with WTForms.Simple integration of Flask and WTForms, including CSRF, file upload,
and reCAPTCHA.https://github.com/wtforms/flask-wtf/BSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c3c1fda4-0c66-46b4-8ebb-819a601a0f6cpython-Flask-WTFsrccaee610718414661878b0ba1683afed792bcacf547b1791395b1d5812ee8ce84Form rendering, validation, and CSRF protection for Flask with WTForms.Simple integration of Flask and WTForms, including CSRF, file upload,
and reCAPTCHA.https://github.com/wtforms/flask-wtf/BSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e963fa4c-7a87-4023-8345-780b6bcfa9ebpython-Flask-WTF-helpnoarch73b67034692197d00969b4907eb10e674044d116b7a074316f85190bde3fe7d1Development documents and examples for Flask-WTFSimple integration of Flask and WTForms, including CSRF, file upload,
and reCAPTCHA.https://github.com/wtforms/flask-wtf/BSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c3c1fda4-0c66-46b4-8ebb-819a601a0f6cpython-Flask-WTF-1.1.1-1.src.rpmpython-Flask-WTF-helpnoarchdc157601bef9ac8d996a8e65f6a05e14e7b3672dd69e663fa0bbd1ad9890c889Development documents and examples for Flask-WTFSimple integration of Flask and WTForms, including CSRF, file upload,
and reCAPTCHA.https://github.com/wtforms/flask-wtf/BSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e963fa4c-7a87-4023-8345-780b6bcfa9ebpython-Flask-WTF-1.1.1-1.src.rpmpython-WTFormssrc04910cc467d7a5e679eb271e02b5b3e32f7c3f888fc847aaf96733ca255a7d09Form validation and rendering for Python web development.WTForms is a flexible forms validation and rendering library for Python
web development. It can work with whatever web framework and template
engine you choose. It supports data validation, CSRF protection,
internationalization (I18N), and more. There are various community
libraries that provide closer integration with popular frameworks.https://wtforms.readthedocs.io/BSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e9349607-e149-47c9-b1a6-74f01f03f633python-WTFormssrc189a0ca0c90e75152dc8aa94125d729e42da326dd349fe348b3a8bb793d85dfeForm validation and rendering for Python web development.WTForms is a flexible forms validation and rendering library for Python
web development. It can work with whatever web framework and template
engine you choose. It supports data validation, CSRF protection,
internationalization (I18N), and more. There are various community
libraries that provide closer integration with popular frameworks.https://wtforms.readthedocs.io/BSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-db674ac0-92d6-4a47-b215-776854cf5e2epython-WTFormssrc864b8543d1cd493f2e3409b0e33bfb786246a9304014d56d2403e8e8f32dc618Form validation and rendering for Python web development.WTForms is a flexible forms validation and rendering library for Python
web development. It can work with whatever web framework and template
engine you choose. It supports data validation, CSRF protection,
internationalization (I18N), and more. There are various community
libraries that provide closer integration with popular frameworks.https://wtforms.readthedocs.io/BSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5a4f1398-97a4-4e2d-9eea-ec41cdd7b2fapython-WTFormssrc262754f1940be355b8ea236a07b078592de4ab76846b345def5105ac8636ffacForm validation and rendering for Python web development.WTForms is a flexible forms validation and rendering library for Python
web development. It can work with whatever web framework and template
engine you choose. It supports data validation, CSRF protection,
internationalization (I18N), and more. There are various community
libraries that provide closer integration with popular frameworks.https://wtforms.readthedocs.io/BSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d14638b0-e091-48d6-aefd-c704310fa59apython-WTFormssrcf3c6cd2b66400010d4c8727e239f8dc4ad3c7c25970333f4f4d82141201a8244Form validation and rendering for Python web development.WTForms is a flexible forms validation and rendering library for Python
web development. It can work with whatever web framework and template
engine you choose. It supports data validation, CSRF protection,
internationalization (I18N), and more. There are various community
libraries that provide closer integration with popular frameworks.https://wtforms.readthedocs.io/BSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-16c9d501-f242-4a4d-a68f-71628488446bpython-WTForms-helpnoarchdca7aa17e80e0b822de6d99da51caeb3a8f8a20e4ba814f207e5640b96278944Development documents and examples for WTFormsWTForms is a flexible forms validation and rendering library for Python
web development. It can work with whatever web framework and template
engine you choose. It supports data validation, CSRF protection,
internationalization (I18N), and more. There are various community
libraries that provide closer integration with popular frameworks.https://wtforms.readthedocs.io/BSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5a4f1398-97a4-4e2d-9eea-ec41cdd7b2fapython-WTForms-3.0.1-1.src.rpmpython-WTForms-helpnoarch8e171c62a1dae06062fbd14eeac80ef038d95611060fbb4f190bcdc29f85e895Development documents and examples for WTFormsWTForms is a flexible forms validation and rendering library for Python
web development. It can work with whatever web framework and template
engine you choose. It supports data validation, CSRF protection,
internationalization (I18N), and more. There are various community
libraries that provide closer integration with popular frameworks.https://wtforms.readthedocs.io/BSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-16c9d501-f242-4a4d-a68f-71628488446bpython-WTForms-3.0.1-1.src.rpmpython-XStatic-Bootstrap-SCSSsrc825c460d6eab17b4e259973aebd5fecc805dfced019a1847e828e6907842ad0bBootstrap-SCSS 3.4.1 (XStatic packaging standard)Bootstrap style library packaged for setuptools (easy_install) / pip.
This package is intended to be used by **any** project that needs these files.
It intentionally does **not** provide any extra code except some metadata
**nor** has any extra requirements. You MAY use some minimal support code from
the XStatic base package, if you like.
You can find more info about the xstatic packaging way in the package `XStatic`.https://github.com/twbs/bootstrap-sassMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-7c84b5b2-4e74-4c4f-8a69-232d64dde645python-XStatic-Bootstrap-SCSSsrc1123dc76cad813450355c56d4436aaba068377c4316ecc8f260214a64ca12d07Bootstrap-SCSS 3.4.1 (XStatic packaging standard)Bootstrap style library packaged for setuptools (easy_install) / pip.
This package is intended to be used by **any** project that needs these files.
It intentionally does **not** provide any extra code except some metadata
**nor** has any extra requirements. You MAY use some minimal support code from
the XStatic base package, if you like.
You can find more info about the xstatic packaging way in the package `XStatic`.https://github.com/twbs/bootstrap-sassMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-369a2a50-5b31-4340-b4c7-2cfebae798e0python-XStatic-Bootstrap-SCSS-helpnoarch2b8766dc70fee59f4bb11609a1d20e217c7d8b62b234bcf5bfc318ef06de23c5Development documents and examples for XStatic-Bootstrap-SCSSBootstrap style library packaged for setuptools (easy_install) / pip.
This package is intended to be used by **any** project that needs these files.
It intentionally does **not** provide any extra code except some metadata
**nor** has any extra requirements. You MAY use some minimal support code from
the XStatic base package, if you like.
You can find more info about the xstatic packaging way in the package `XStatic`.https://github.com/twbs/bootstrap-sassMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-369a2a50-5b31-4340-b4c7-2cfebae798e0python-XStatic-Bootstrap-SCSS-3.4.1.0-1.src.rpmpython-XStatic-DataTablessrc8f4020c96585c9bf08af0c57715e45e32fcf321bc9aff1c3de93758ff2584177DataTables 1.10.15 (XStatic packaging standard)The DataTables plugin for jQuery packaged for setuptools (easy_install) / pip.
This package is intended to be used by **any** project that needs these files.
It intentionally does **not** provide any extra code except some metadata
**nor** has any extra requirements. You MAY use some minimal support code from
the XStatic base package, if you like.
You can find more info about the xstatic packaging way in the package `XStatic`.http://www.datatables.net(same as DataTables)openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-67880b50-8e37-4e8c-a2a9-21d7c0c57d11python-XStatic-DataTablessrc090cc8beda0fee5986ff8792544f760dc1988ac4d313f5f053726da69807a5d1DataTables 1.10.15 (XStatic packaging standard)The DataTables plugin for jQuery packaged for setuptools (easy_install) / pip.
This package is intended to be used by **any** project that needs these files.
It intentionally does **not** provide any extra code except some metadata
**nor** has any extra requirements. You MAY use some minimal support code from
the XStatic base package, if you like.
You can find more info about the xstatic packaging way in the package `XStatic`.http://www.datatables.net(same as DataTables)openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e1b589f1-bac2-41a2-aa5b-de4800cd510apython-XStatic-DataTables-helpnoarch2ffe46414b21818460b5eefc9654a85b2610284bfe1adf21f972b6c2fd8c7c9fDevelopment documents and examples for XStatic-DataTablesThe DataTables plugin for jQuery packaged for setuptools (easy_install) / pip.
This package is intended to be used by **any** project that needs these files.
It intentionally does **not** provide any extra code except some metadata
**nor** has any extra requirements. You MAY use some minimal support code from
the XStatic base package, if you like.
You can find more info about the xstatic packaging way in the package `XStatic`.http://www.datatables.net(same as DataTables)openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e1b589f1-bac2-41a2-aa5b-de4800cd510apython-XStatic-DataTables-1.10.15.1-1.src.rpmpython-XStatic-Patternflysrcb7db059aa052d098a895810109e6715d62a6aa30dec74dca6bc9565f9e0c5193Patternfly 3.21.0 (XStatic packaging standard)Patternfly style library packaged for setuptools (easy_install) / pip.
This package is intended to be used by **any** project that needs these files.
It intentionally does **not** provide any extra code except some metadata
**nor** has any extra requirements. You MAY use some minimal support code from
the XStatic base package, if you like.
You can find more info about the xstatic packaging way in the package `XStatic`.https://www.patternfly.org/Apache v2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-56fc4624-7f84-4ab1-8723-e1cecc223987python-XStatic-Patternflysrcd0211cead4a6d19aca006bc6c02c6aa748f81d08a340dedc710cbbceccbf35e6Patternfly 3.21.0 (XStatic packaging standard)Patternfly style library packaged for setuptools (easy_install) / pip.
This package is intended to be used by **any** project that needs these files.
It intentionally does **not** provide any extra code except some metadata
**nor** has any extra requirements. You MAY use some minimal support code from
the XStatic base package, if you like.
You can find more info about the xstatic packaging way in the package `XStatic`.https://www.patternfly.org/Apache v2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-796a8aa6-2c62-463f-8907-f6a6d6cc37a1python-XStatic-Patternfly-helpnoarch0c64376b2cbab390f5ce0dcfdef31b610c1a323d786a85a16a897aab31493de7Development documents and examples for XStatic-PatternflyPatternfly style library packaged for setuptools (easy_install) / pip.
This package is intended to be used by **any** project that needs these files.
It intentionally does **not** provide any extra code except some metadata
**nor** has any extra requirements. You MAY use some minimal support code from
the XStatic base package, if you like.
You can find more info about the xstatic packaging way in the package `XStatic`.https://www.patternfly.org/Apache v2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-796a8aa6-2c62-463f-8907-f6a6d6cc37a1python-XStatic-Patternfly-3.21.0.1-1.src.rpmpython-argparse-manpagesrc64bdb6e8e93ae18d528307b1453897efc0bb731e2a398cf9aeaf251c20f19ffaBuild manual page from python's ArgumentParser object.Automatically build manpage from argparsehttps://github.com/praiskup/argparse-manpageApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-84277450-6796-4958-bb16-2a556ca96233python-argparse-manpage-helpnoarch606d7326859e3a4985f1f21177b0b3f61215a4371b0ac27a1173484a3a7e0e08Development documents and examples for argparse-manpageAutomatically build manpage from argparsehttps://github.com/praiskup/argparse-manpageApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-84277450-6796-4958-bb16-2a556ca96233python-argparse-manpage-4-1.src.rpm/usr/share/doc/python-argparse-manpage/examples/argument_groups/bin/test/usr/share/doc/python-argparse-manpage/examples/raw-description/bin/dg/usr/share/doc/python-argparse-manpage/examples/resalloc/bin/resalloc/usr/share/doc/python-argparse-manpage/examples/resalloc/bin/resalloc-maintpython-asttokenssrc5241c807d4d5dcedaa8b664d296f9ac1991b40b68d19450fde8c2e77da69112bAnnotate AST trees with source code positionsThe ``asttokens`` module annotates Python abstract syntax trees (ASTs) with the positions of tokens
and text in the source code that generated them.
It makes it possible for tools that work with logical AST nodes to find the particular text that
resulted in those nodes, for example for automated refactoring or highlighting.https://github.com/gristlabs/asttokensApache 2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f022e18a-fce5-48de-b2b7-cb006d8b5d23python-asttokenssrc81bfd060af6326a8d1e3adc974c5d90e4f6fbb0299c44e9f44836c88da152364Module to annotate Python abstract syntax trees with source code positionsThe asttokens module annotates Python abstract syntax trees (ASTs)
with the positions of tokens and text in the source code that
generated them. This makes it possible for tools that work with
logical AST nodes to find the particular text that resulted in those
nodes, for example for automated refactoring or highlighting.https://github.com/gristlabs/asttokensApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-1075d000-8b1d-4320-84c9-c5ff0871cbc0python-backoffsrc5c5e5c85d87f9a3d51ef9beb99b4e7a7e7b6fcca0ae2cafd2900c17661efca0bFunction decoration for backoff and retryThis module provides function decorators which can be used to wrap a\
function such that it will be retried until some condition is met. It\
is meant to be of use when accessing unreliable resources with the\
potential for intermittent failures i.e. network resources and external\
APIs. Somewhat more generally, it may also be of use for dynamically\
polling resources for externally generated content.https://github.com/litl/backoffMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d13c4a35-79d2-4951-8f4c-1c0a1b633f74python-backoff-helpnoarch1c64fa3ae073000583c603cec9a63f8655e08cef3d30367e487e9995ebabe133Development documents and examples for backoffThis module provides function decorators which can be used to wrap a\
function such that it will be retried until some condition is met. It\
is meant to be of use when accessing unreliable resources with the\
potential for intermittent failures i.e. network resources and external\
APIs. Somewhat more generally, it may also be of use for dynamically\
polling resources for externally generated content.https://github.com/litl/backoffMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d13c4a35-79d2-4951-8f4c-1c0a1b633f74python-backoff-2.2.1-1.src.rpmpython-blessedsrc5086b67060c144c7701dfdde115a945692cef1fabf6a0fad3c52a8116dc14686A thin, practical wrapper around terminal capabilities in PythonBlessed is a thin, practical wrapper around terminal styling, screen
positioning, and keyboard input.
It provides:
- Styles, color, and maybe a little positioning without necessarily clearing
the whole screen first.
- Works great with standard Python string formatting.
- Provides up-to-the-moment terminal height and width, so you can respond
to terminal size changes.
- Avoids making a mess if the output gets piped to a non-terminal: outputs
to any file-like object such as StringIO, files, or pipes.
- Uses the terminfo(5) database so it works with any terminal type and
supports any terminal capability: No more C-like calls to tigetstr and
tparm.
- Keeps a minimum of internal state, so you can feel free to mix and match
with calls to curses or whatever other terminal libraries you like.
- Provides plenty of context managers to safely express terminal modes,
automatically restoring the terminal to a safe state on exit.
- Act intelligently when somebody redirects your output to a file, omitting
all of the terminal sequences such as styling, colors, or positioning.
- Dead-simple keyboard handling: safely decoding unicode input in your
system’s preferred locale and supports application/arrow keys.
- Allows the printable length of strings containing sequences to be
determined.https://github.com/jquast/blessedMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-75fad790-07a0-4de3-981e-def083f20401python-blessedsrcf941d5d7635143b062e57b39865a03e4caf3b6423e717f1b9108478a956e9c61Easy, practical library for making terminal apps, by providing an elegant, well-documented interface to Colors, Keyboard input, and screen Positioning capabilities.Blessed is an easy, practical library for making python terminal appshttps://github.com/jquast/blessedMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3b9f605c-1bf6-413a-ba8a-e7723358bae3python-blessed-helpnoarchd55527ae72e11ba8c37c3538ecf0b95362410c3341f67887a746af1ffba2ac0fDevelopment documents and examples for blessedBlessed is an easy, practical library for making python terminal appshttps://github.com/jquast/blessedMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3b9f605c-1bf6-413a-ba8a-e7723358bae3python-blessed-1.20.0-1.src.rpmpython-cachelibsrcce7db9306ef46539ef666b37ba54e9f52d38c9deb10d04b1b37c5263564c3087A collection of cache libraries in the same API interface.A collection of cache libraries in the same API interface. Extracted from werkzeug.https://github.com/pallets-eco/cachelibBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-08717eb7-0000-4ffa-88a5-17d9aaa7e7d2python-cachelib-helpnoarch32881f53bd463deef60c4c7bb9edda09f163df7cab47595ae829ac62720a650dDevelopment documents and examples for cachelibDevelopment documents and examples for cachelibhttps://github.com/pallets-eco/cachelibBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-08717eb7-0000-4ffa-88a5-17d9aaa7e7d2python-cachelib-0.9.0-1.src.rpmpython-coprsrc0e61197f2e7c75ba4ff067a9f1c8e25f75e971f1198d6eab07a7552b23878608Python interface for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python interface to access Copr service. Mostly useful
for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-9319f748-a48e-46fc-9dc5-52a50629f0c7python-coprsrc84ea954511bd1dead15c24046adaf7882e24546e580940530c7da0f61cc8aac6Python interface for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python interface to access Copr service. Mostly useful
for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d90c9b8f-0c15-4528-b895-e5ca7ad50c75python-coprsrc2f8a501733b02c5c1ab460057f5249dae184049a81eadb3f92e8222ea6ca457ePython interface for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python interface to access Copr service. Mostly useful
for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-016fc85c-27d8-4287-9ac0-26323f611d38python-coprsrcc848b49bb34bdb01dbca946a2240c7761eda0b922d5822d02ee2fdeab03305bePython interface for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python interface to access Copr service. Mostly useful
for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a6762820-df4c-4bdc-a2b3-876fc06de658python-coprsrc00db128acf6c7c91c1f953291c555adbf56d0fa4e421d6f8bff855789bbc2d0ePython interface for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python interface to access Copr service. Mostly useful
for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-77aae4f9-3ce7-438c-ac20-ef7dbcd43f3bpython-coprsrc643d265812cc974f64ce341bd28d253597840586ec6d71b0e59909cef1e9f463Python interface for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python interface to access Copr service. Mostly useful
for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5f1ee2f4-9fbb-4045-b276-09b12f94efd4python-coprsrc89466444a3ee014a27921443230faa909afe79ec9243b330ee3fb249937039e0Python interface for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python interface to access Copr service. Mostly useful
for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-1e341525-fe64-46c7-834f-dc1ffe377e39python-coprsrc4a1b95f60e18cded1d798a1ede5a1f64f3152491f3ccc316bc270473fbdb7689Python interface for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python interface to access Copr service. Mostly useful
for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6c0f72be-1613-4132-bd94-4999024fa515python-copr-commonsrc70a03eefe7be54dd216d7e0bbea3ad7c99c335f17725c0614b9dee8c12909bb5Python code used by CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python code used by other Copr packages. Mostly
useful for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-54ca5422-70e9-41aa-a91c-074abe07a4cbpython-copr-commonsrc680f7dfc87361af25e7d9097e06d8e02e1c14e08073b45689d2339c5ec4aec61Python code used by CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python code used by other Copr packages. Mostly
useful for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-008e50b3-dbd3-472d-bf9c-e74d06fca1a3python-copr-commonsrc860c9ca889f839fbe79ee4144ddf11b54aaaf6ec8a875133e88262dd1c1b445cPython code used by CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python code used by other Copr packages. Mostly
useful for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-41d57ab4-8daf-46d9-b5d4-445ebfa9c641python-copr-commonsrc42037018491731377c7cc70c2a07a307738a278ef7843c6e8c6b309480caa286Python code used by CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python code used by other Copr packages. Mostly
useful for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c7f2364a-c42b-4917-a1d8-c1e21d84a48cpython-copr-docnoarch0d716ab7132021dbefa1a1f09892cfa0f9519a47985146c3a6023389cc006727Code documentation for python-copr packageCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package includes documentation for python-copr. Mostly useful for
developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d90c9b8f-0c15-4528-b895-e5ca7ad50c75python-copr-1.125-1.src.rpmpython-copr-docnoarch592ca6760f8845fbeff6c4009eaadcd4b729754a45771b989a155218ea6e2380Code documentation for python-copr packageCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package includes documentation for python-copr. Mostly useful for
developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-016fc85c-27d8-4287-9ac0-26323f611d38python-copr-1.128-1.git.37.cea32e7.src.rpmpython-copr-docnoarcha6bece45ba7d0036aa64c3dddc15148406adf0389576195c657a9fef9c6d8600Code documentation for python-copr packageCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package includes documentation for python-copr. Mostly useful for
developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a6762820-df4c-4bdc-a2b3-876fc06de658python-copr-1.129-1.git.52.0b462e7.src.rpmpython-copr-docnoarch83caa1dbb45bb6a06daa0419f20dbd9f94c04bc59510e434ee7083bc574adde4Code documentation for python-copr packageCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package includes documentation for python-copr. Mostly useful for
developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5f1ee2f4-9fbb-4045-b276-09b12f94efd4python-copr-1.129-1.git.7640.d26c50c.src.rpmpython-copr-docnoarch5c4ed38fdfaa6f305a5da454d5badee3d3c9dd9335a4cf4011429102991cfd23Code documentation for python-copr packageCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package includes documentation for python-copr. Mostly useful for
developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6c0f72be-1613-4132-bd94-4999024fa515python-copr-1.129-1.src.rpmpython-crudinisrce14da627c1975de1726f0922b7958221a0d45e67da3a072ac99425063dcde830A utility for manipulating ini filescrudini A utility for manipulating ini fileshttp://github.com/pixelb/crudiniGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3f03d4e6-19c6-4b86-aacb-00b92a42221dpython-crudini-helpnoarch602757dcc057e25c2efb5fbd940c340472ee55ffc038f45a16b981b08d9fbb11A utility for manipulating ini filesUsage:
crudini --set [OPTION]... config_file section [param] [value]
or: crudini --get [OPTION]... config_file [section] [param]
or: crudini --del [OPTION]... config_file section [param] [list value]
or: crudini --merge [OPTION]... config_file [section]http://github.com/pixelb/crudiniGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3f03d4e6-19c6-4b86-aacb-00b92a42221dpython-crudini-0.9.3-2.src.rpmpython-debtcollectorsrc550ab16169376b035980be2de1cb17d66973bac35a615fc8b6081e9fde6fdeb9A collection of Python deprecation patterns and strategies that help you collect your technical debt in a non-destructive manner.A collection of Python deprecation patterns and strategies that help you collect your technical debt in a non-destructive manner.https://docs.openstack.org/debtcollector/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c3c25227-b092-4b7c-9c39-d1d3649ab7d2python-debtcollector-helpnoarchd3f867bd4d153abf0408b509502b799ca5b24b86e4344af56f3c5bf7605e1994A collection of Python deprecation patterns and strategies that help you collect your technical debt in a non-destructive manner.A collection of Python deprecation patterns and strategies that help you collect your technical debt in a non-destructive manner.https://docs.openstack.org/debtcollector/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c3c25227-b092-4b7c-9c39-d1d3649ab7d2python-debtcollector-2.5.0-1.src.rpmpython-email-validatorsrc20beceb5fcd0e6868abc36588aae6c57240d04ba9be221484dec4f44df4218a7A robust email address syntax and deliverability validation library.A robust email address syntax and deliverability validation library for
Python by [Joshua Tauberer](https://joshdata.me).
This library validates that a string is of the form `name@example.com`. This is
the sort of validation you would want for an email-based login form on
a website.
Key features:
* Checks that an email address has the correct syntax --- good for
login forms or other uses related to identifying users.
* Gives friendly error messages when validation fails (appropriate to show
to end users).
* (optionally) Checks deliverability: Does the domain name resolve? And you can override the default DNS resolver.
* Supports internationalized domain names and (optionally)
internationalized local parts, but blocks unsafe characters.
* Normalizes email addresses (super important for internationalized
addresses! see below).
The library is NOT for validation of the To: line in an email message
(e.g. `My Name <my@address.com>`), which
[flanker](https://github.com/mailgun/flanker) is more appropriate for.
And this library does NOT permit obsolete forms of email addresses, so
if you need strict validation against the email specs exactly, use
[pyIsEmail](https://github.com/michaelherold/pyIsEmail).
This library is tested with Python 3.6+ but should work in earlier versions:
[![Build Status](https://app.travis-ci.com/JoshData/python-email-validator.svg?branch=main)](https://app.travis-ci.com/JoshData/python-email-validator)https://github.com/JoshData/python-email-validatorCC0 (copyright waived)openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5f49315d-00ab-43c2-9857-7fa2943762e1python-email-validatorsrc3595a6224f40c76f4510a27ff2382d6f5c17d76765410f4482eea7b6f2b96bd7A robust email address syntax and deliverability validation library.A robust email address syntax and deliverability validation library for
Python by [Joshua Tauberer](https://joshdata.me).
This library validates that a string is of the form `name@example.com`. This is
the sort of validation you would want for an email-based login form on
a website.
Key features:
* Checks that an email address has the correct syntax --- good for
login forms or other uses related to identifying users.
* Gives friendly error messages when validation fails (appropriate to show
to end users).
* (optionally) Checks deliverability: Does the domain name resolve? And you can override the default DNS resolver.
* Supports internationalized domain names and (optionally)
internationalized local parts, but blocks unsafe characters.
* Normalizes email addresses (super important for internationalized
addresses! see below).
The library is NOT for validation of the To: line in an email message
(e.g. `My Name <my@address.com>`), which
[flanker](https://github.com/mailgun/flanker) is more appropriate for.
And this library does NOT permit obsolete forms of email addresses, so
if you need strict validation against the email specs exactly, use
[pyIsEmail](https://github.com/michaelherold/pyIsEmail).
This library is tested with Python 3.6+ but should work in earlier versions:
[![Build Status](https://app.travis-ci.com/JoshData/python-email-validator.svg?branch=main)](https://app.travis-ci.com/JoshData/python-email-validator)https://github.com/JoshData/python-email-validatorCC0 (copyright waived)openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e85fe846-0594-4c34-a1f1-e4b97a058a32python-email-validator-helpnoarchd61eb038729eb17afdd3518211c8accc137295f766e41c3c313689745d59e03dDevelopment documents and examples for email-validatorA robust email address syntax and deliverability validation library for
Python by [Joshua Tauberer](https://joshdata.me).
This library validates that a string is of the form `name@example.com`. This is
the sort of validation you would want for an email-based login form on
a website.
Key features:
* Checks that an email address has the correct syntax --- good for
login forms or other uses related to identifying users.
* Gives friendly error messages when validation fails (appropriate to show
to end users).
* (optionally) Checks deliverability: Does the domain name resolve? And you can override the default DNS resolver.
* Supports internationalized domain names and (optionally)
internationalized local parts, but blocks unsafe characters.
* Normalizes email addresses (super important for internationalized
addresses! see below).
The library is NOT for validation of the To: line in an email message
(e.g. `My Name <my@address.com>`), which
[flanker](https://github.com/mailgun/flanker) is more appropriate for.
And this library does NOT permit obsolete forms of email addresses, so
if you need strict validation against the email specs exactly, use
[pyIsEmail](https://github.com/michaelherold/pyIsEmail).
This library is tested with Python 3.6+ but should work in earlier versions:
[![Build Status](https://app.travis-ci.com/JoshData/python-email-validator.svg?branch=main)](https://app.travis-ci.com/JoshData/python-email-validator)https://github.com/JoshData/python-email-validatorCC0 (copyright waived)openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5f49315d-00ab-43c2-9857-7fa2943762e1python-email-validator-1.3.1-1.src.rpmpython-email-validator-helpnoarch48d4e1ad4acc770e086a22bc8d66e87e24eaf0c75b65c1326a938250cb0d65ceDevelopment documents and examples for email-validatorA robust email address syntax and deliverability validation library for
Python by [Joshua Tauberer](https://joshdata.me).
This library validates that a string is of the form `name@example.com`. This is
the sort of validation you would want for an email-based login form on
a website.
Key features:
* Checks that an email address has the correct syntax --- good for
login forms or other uses related to identifying users.
* Gives friendly error messages when validation fails (appropriate to show
to end users).
* (optionally) Checks deliverability: Does the domain name resolve? And you can override the default DNS resolver.
* Supports internationalized domain names and (optionally)
internationalized local parts, but blocks unsafe characters.
* Normalizes email addresses (super important for internationalized
addresses! see below).
The library is NOT for validation of the To: line in an email message
(e.g. `My Name <my@address.com>`), which
[flanker](https://github.com/mailgun/flanker) is more appropriate for.
And this library does NOT permit obsolete forms of email addresses, so
if you need strict validation against the email specs exactly, use
[pyIsEmail](https://github.com/michaelherold/pyIsEmail).
This library is tested with Python 3.6+ but should work in earlier versions:
[![Build Status](https://app.travis-ci.com/JoshData/python-email-validator.svg?branch=main)](https://app.travis-ci.com/JoshData/python-email-validator)https://github.com/JoshData/python-email-validatorCC0 (copyright waived)openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e85fe846-0594-4c34-a1f1-e4b97a058a32python-email-validator-1.3.1-1.src.rpmpython-executingsrc79356c35a53fcfd857bfaefbaf4cf1f26d8d20d4958aa7a58336e3d886b0780cGet the currently executing AST node of a frame, and other information
[![Build Status](https://github.com/alexmojaki/executing/workflows/Tests/badge.svg?branch=master)](https://github.com/alexmojaki/executing/actions) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/executing/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/executing?branch=master) [![Supports Python versions 2.7 and 3.5+, including PyPy](https://img.shields.io/pypi/pyversions/executing.svg)](https://pypi.python.org/pypi/executing)
This mini-package lets you get information about what a frame is currently doing, particularly the AST node being executed.
* [Usage](#usage)
* [Getting the AST node](#getting-the-ast-node)
* [Getting the source code of the node](#getting-the-source-code-of-the-node)
* [Getting the `__qualname__` of the current function](#getting-the-__qualname__-of-the-current-function)
* [The Source class](#the-source-class)
* [Installation](#installation)
* [How does it work?](#how-does-it-work)
* [Is it reliable?](#is-it-reliable)
* [Which nodes can it identify?](#which-nodes-can-it-identify)
* [Libraries that use this](#libraries-that-use-this)
```python
import executing
node = executing.Source.executing(frame).node
```
Then `node` will be an AST node (from the `ast` standard library module) or None if the node couldn't be identified (which may happen often and should always be checked).
`node` will always be the same instance for multiple calls with frames at the same point of execution.
If you have a traceback object, pass it directly to `Source.executing()` rather than the `tb_frame` attribute to get the correct node.
For this you will need to separately install the [`asttokens`](https://github.com/gristlabs/asttokens) library, then obtain an `ASTTokens` object:
```python
executing.Source.executing(frame).source.asttokens()
```
or:
```python
executing.Source.for_frame(frame).asttokens()
```
or use one of the convenience methods:
```python
executing.Source.executing(frame).text()
executing.Source.executing(frame).text_range()
```
```python
executing.Source.executing(frame).code_qualname()
```
or:
```python
executing.Source.for_frame(frame).code_qualname(frame.f_code)
```
Everything goes through the `Source` class. Only one instance of the class is created for each filename. Subclassing it to add more attributes on creation or methods is recommended. The classmethods such as `executing` will respect this. See the source code and docstrings for more detail.
pip install executing
If you don't like that you can just copy the file `executing.py`, there are no dependencies (but of course you won't get updates).
Suppose the frame is executing this line:
```python
self.foo(bar.x)
```
and in particular it's currently obtaining the attribute `self.foo`. Looking at the bytecode, specifically `frame.f_code.co_code[frame.f_lasti]`, we can tell that it's loading an attribute, but it's not obvious which one. We can narrow down the statement being executed using `frame.f_lineno` and find the two `ast.Attribute` nodes representing `self.foo` and `bar.x`. How do we find out which one it is, without recreating the entire compiler in Python?
The trick is to modify the AST slightly for each candidate expression and observe the changes in the bytecode instructions. We change the AST to this:
```python
(self.foo ** 'longuniqueconstant')(bar.x)
```
and compile it, and the bytecode will be almost the same but there will be two new instructions:
LOAD_CONST 'longuniqueconstant'
BINARY_POWER
and just before that will be a `LOAD_ATTR` instruction corresponding to `self.foo`. Seeing that it's in the same position as the original instruction lets us know we've found our match.
Yes - if it identifies a node, you can trust that it's identified the correct one. The tests are very thorough - in addition to unit tests which check various situations directly, there are property tests against a large number of files (see the filenames printed in [this build](https://travis-ci.org/alexmojaki/executing/jobs/557970457)) with real code. Specifically, for each file, the tests:
1. Identify as many nodes as possible from all the bytecode instructions in the file, and assert that they are all distinct
2. Find all the nodes that should be identifiable, and assert that they were indeed identified somewhere
In other words, it shows that there is a one-to-one mapping between the nodes and the instructions that can be handled. This leaves very little room for a bug to creep in.
Furthermore, `executing` checks that the instructions compiled from the modified AST exactly match the original code save for a few small known exceptions. This accounts for all the quirks and optimisations in the interpreter.
Currently it works in almost all cases for the following `ast` nodes:
- `Call`, e.g. `self.foo(bar)`
- `Attribute`, e.g. `point.x`
- `Subscript`, e.g. `lst[1]`
- `BinOp`, e.g. `x + y` (doesn't include `and` and `or`)
- `UnaryOp`, e.g. `-n` (includes `not` but only works sometimes)
- `Compare` e.g. `a < b` (not for chains such as `0 < p < 1`)
The plan is to extend to more operations in the future.
- **[`stack_data`](https://github.com/alexmojaki/stack_data)**: Extracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default. Also uses another related library of mine: **[`pure_eval`](https://github.com/alexmojaki/pure_eval)**.
- **[`futurecoder`](https://futurecoder.io/)**: Highlights the executing node in tracebacks using `executing` via `stack_data`, and provides debugging with `snoop`.
- **[`snoop`](https://github.com/alexmojaki/snoop)**: A feature-rich and convenient debugging library. Uses `executing` to show the operation which caused an exception and to allow the `pp` function to display the source of its arguments.
- **[`heartrate`](https://github.com/alexmojaki/heartrate)**: A simple real time visualisation of the execution of a Python program. Uses `executing` to highlight currently executing operations, particularly in each frame of the stack trace.
- **[`sorcery`](https://github.com/alexmojaki/sorcery)**: Dark magic delights in Python. Uses `executing` to let special callables called spells know where they're being called from.
- **[`IPython`](https://github.com/ipython/ipython/pull/12150)**: Highlights the executing node in tracebacks using `executing` via [`stack_data`](https://github.com/alexmojaki/stack_data).
- **[`icecream`](https://github.com/gruns/icecream)**: 🍦 Sweet and creamy print debugging. Uses `executing` to identify where `ic` is called and print its arguments.
- **[`friendly_traceback`](https://github.com/friendly-traceback/friendly-traceback)**: Uses `stack_data` and `executing` to pinpoint the cause of errors and provide helpful explanations.
- **[`python-devtools`](https://github.com/samuelcolvin/python-devtools)**: Uses `executing` for print debugging similar to `icecream`.
- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events.
- **[`varname`](https://github.com/pwwang/python-varname)**: Dark magics about variable names in python. Uses `executing` to find where its various magical functions like `varname` and `nameof` are called from.https://github.com/alexmojaki/executingMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6a865ba1-ab63-488a-ba91-0ac32c990f12python-executingsrc7f710dbe582b923081b9dd4756c605426d073aa8890a710e9ec3f0939fbe4eb9Get the currently executing AST node of a frame, and other information
[![Build Status](https://github.com/alexmojaki/executing/workflows/Tests/badge.svg?branch=master)](https://github.com/alexmojaki/executing/actions) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/executing/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/executing?branch=master) [![Supports Python versions 2.7 and 3.5+, including PyPy](https://img.shields.io/pypi/pyversions/executing.svg)](https://pypi.python.org/pypi/executing)
This mini-package lets you get information about what a frame is currently doing, particularly the AST node being executed.
* [Usage](#usage)
* [Getting the AST node](#getting-the-ast-node)
* [Getting the source code of the node](#getting-the-source-code-of-the-node)
* [Getting the `__qualname__` of the current function](#getting-the-__qualname__-of-the-current-function)
* [The Source class](#the-source-class)
* [Installation](#installation)
* [How does it work?](#how-does-it-work)
* [Is it reliable?](#is-it-reliable)
* [Which nodes can it identify?](#which-nodes-can-it-identify)
* [Libraries that use this](#libraries-that-use-this)
```python
import executing
node = executing.Source.executing(frame).node
```
Then `node` will be an AST node (from the `ast` standard library module) or None if the node couldn't be identified (which may happen often and should always be checked).
`node` will always be the same instance for multiple calls with frames at the same point of execution.
If you have a traceback object, pass it directly to `Source.executing()` rather than the `tb_frame` attribute to get the correct node.
For this you will need to separately install the [`asttokens`](https://github.com/gristlabs/asttokens) library, then obtain an `ASTTokens` object:
```python
executing.Source.executing(frame).source.asttokens()
```
or:
```python
executing.Source.for_frame(frame).asttokens()
```
or use one of the convenience methods:
```python
executing.Source.executing(frame).text()
executing.Source.executing(frame).text_range()
```
```python
executing.Source.executing(frame).code_qualname()
```
or:
```python
executing.Source.for_frame(frame).code_qualname(frame.f_code)
```
Everything goes through the `Source` class. Only one instance of the class is created for each filename. Subclassing it to add more attributes on creation or methods is recommended. The classmethods such as `executing` will respect this. See the source code and docstrings for more detail.
pip install executing
If you don't like that you can just copy the file `executing.py`, there are no dependencies (but of course you won't get updates).
Suppose the frame is executing this line:
```python
self.foo(bar.x)
```
and in particular it's currently obtaining the attribute `self.foo`. Looking at the bytecode, specifically `frame.f_code.co_code[frame.f_lasti]`, we can tell that it's loading an attribute, but it's not obvious which one. We can narrow down the statement being executed using `frame.f_lineno` and find the two `ast.Attribute` nodes representing `self.foo` and `bar.x`. How do we find out which one it is, without recreating the entire compiler in Python?
The trick is to modify the AST slightly for each candidate expression and observe the changes in the bytecode instructions. We change the AST to this:
```python
(self.foo ** 'longuniqueconstant')(bar.x)
```
and compile it, and the bytecode will be almost the same but there will be two new instructions:
LOAD_CONST 'longuniqueconstant'
BINARY_POWER
and just before that will be a `LOAD_ATTR` instruction corresponding to `self.foo`. Seeing that it's in the same position as the original instruction lets us know we've found our match.
Yes - if it identifies a node, you can trust that it's identified the correct one. The tests are very thorough - in addition to unit tests which check various situations directly, there are property tests against a large number of files (see the filenames printed in [this build](https://travis-ci.org/alexmojaki/executing/jobs/557970457)) with real code. Specifically, for each file, the tests:
1. Identify as many nodes as possible from all the bytecode instructions in the file, and assert that they are all distinct
2. Find all the nodes that should be identifiable, and assert that they were indeed identified somewhere
In other words, it shows that there is a one-to-one mapping between the nodes and the instructions that can be handled. This leaves very little room for a bug to creep in.
Furthermore, `executing` checks that the instructions compiled from the modified AST exactly match the original code save for a few small known exceptions. This accounts for all the quirks and optimisations in the interpreter.
Currently it works in almost all cases for the following `ast` nodes:
- `Call`, e.g. `self.foo(bar)`
- `Attribute`, e.g. `point.x`
- `Subscript`, e.g. `lst[1]`
- `BinOp`, e.g. `x + y` (doesn't include `and` and `or`)
- `UnaryOp`, e.g. `-n` (includes `not` but only works sometimes)
- `Compare` e.g. `a < b` (not for chains such as `0 < p < 1`)
The plan is to extend to more operations in the future.
- **[`stack_data`](https://github.com/alexmojaki/stack_data)**: Extracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default. Also uses another related library of mine: **[`pure_eval`](https://github.com/alexmojaki/pure_eval)**.
- **[`futurecoder`](https://futurecoder.io/)**: Highlights the executing node in tracebacks using `executing` via `stack_data`, and provides debugging with `snoop`.
- **[`snoop`](https://github.com/alexmojaki/snoop)**: A feature-rich and convenient debugging library. Uses `executing` to show the operation which caused an exception and to allow the `pp` function to display the source of its arguments.
- **[`heartrate`](https://github.com/alexmojaki/heartrate)**: A simple real time visualisation of the execution of a Python program. Uses `executing` to highlight currently executing operations, particularly in each frame of the stack trace.
- **[`sorcery`](https://github.com/alexmojaki/sorcery)**: Dark magic delights in Python. Uses `executing` to let special callables called spells know where they're being called from.
- **[`IPython`](https://github.com/ipython/ipython/pull/12150)**: Highlights the executing node in tracebacks using `executing` via [`stack_data`](https://github.com/alexmojaki/stack_data).
- **[`icecream`](https://github.com/gruns/icecream)**: 🍦 Sweet and creamy print debugging. Uses `executing` to identify where `ic` is called and print its arguments.
- **[`friendly_traceback`](https://github.com/friendly-traceback/friendly-traceback)**: Uses `stack_data` and `executing` to pinpoint the cause of errors and provide helpful explanations.
- **[`python-devtools`](https://github.com/samuelcolvin/python-devtools)**: Uses `executing` for print debugging similar to `icecream`.
- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events.
- **[`varname`](https://github.com/pwwang/python-varname)**: Dark magics about variable names in python. Uses `executing` to find where its various magical functions like `varname` and `nameof` are called from.https://github.com/alexmojaki/executingMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-0392fb80-2042-43be-8c8a-550011831bedpython-executingsrcbb09c976d205b9b817d595c6c0036a5fb56495734be39c936e021218136eacfbGet the currently executing AST node of a frame, and other information
[![Build Status](https://github.com/alexmojaki/executing/workflows/Tests/badge.svg?branch=master)](https://github.com/alexmojaki/executing/actions) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/executing/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/executing?branch=master) [![Supports Python versions 2.7 and 3.5+, including PyPy](https://img.shields.io/pypi/pyversions/executing.svg)](https://pypi.python.org/pypi/executing)
This mini-package lets you get information about what a frame is currently doing, particularly the AST node being executed.
* [Usage](#usage)
* [Getting the AST node](#getting-the-ast-node)
* [Getting the source code of the node](#getting-the-source-code-of-the-node)
* [Getting the `__qualname__` of the current function](#getting-the-__qualname__-of-the-current-function)
* [The Source class](#the-source-class)
* [Installation](#installation)
* [How does it work?](#how-does-it-work)
* [Is it reliable?](#is-it-reliable)
* [Which nodes can it identify?](#which-nodes-can-it-identify)
* [Libraries that use this](#libraries-that-use-this)
```python
import executing
node = executing.Source.executing(frame).node
```
Then `node` will be an AST node (from the `ast` standard library module) or None if the node couldn't be identified (which may happen often and should always be checked).
`node` will always be the same instance for multiple calls with frames at the same point of execution.
If you have a traceback object, pass it directly to `Source.executing()` rather than the `tb_frame` attribute to get the correct node.
For this you will need to separately install the [`asttokens`](https://github.com/gristlabs/asttokens) library, then obtain an `ASTTokens` object:
```python
executing.Source.executing(frame).source.asttokens()
```
or:
```python
executing.Source.for_frame(frame).asttokens()
```
or use one of the convenience methods:
```python
executing.Source.executing(frame).text()
executing.Source.executing(frame).text_range()
```
```python
executing.Source.executing(frame).code_qualname()
```
or:
```python
executing.Source.for_frame(frame).code_qualname(frame.f_code)
```
Everything goes through the `Source` class. Only one instance of the class is created for each filename. Subclassing it to add more attributes on creation or methods is recommended. The classmethods such as `executing` will respect this. See the source code and docstrings for more detail.
pip install executing
If you don't like that you can just copy the file `executing.py`, there are no dependencies (but of course you won't get updates).
Suppose the frame is executing this line:
```python
self.foo(bar.x)
```
and in particular it's currently obtaining the attribute `self.foo`. Looking at the bytecode, specifically `frame.f_code.co_code[frame.f_lasti]`, we can tell that it's loading an attribute, but it's not obvious which one. We can narrow down the statement being executed using `frame.f_lineno` and find the two `ast.Attribute` nodes representing `self.foo` and `bar.x`. How do we find out which one it is, without recreating the entire compiler in Python?
The trick is to modify the AST slightly for each candidate expression and observe the changes in the bytecode instructions. We change the AST to this:
```python
(self.foo ** 'longuniqueconstant')(bar.x)
```
and compile it, and the bytecode will be almost the same but there will be two new instructions:
LOAD_CONST 'longuniqueconstant'
BINARY_POWER
and just before that will be a `LOAD_ATTR` instruction corresponding to `self.foo`. Seeing that it's in the same position as the original instruction lets us know we've found our match.
Yes - if it identifies a node, you can trust that it's identified the correct one. The tests are very thorough - in addition to unit tests which check various situations directly, there are property tests against a large number of files (see the filenames printed in [this build](https://travis-ci.org/alexmojaki/executing/jobs/557970457)) with real code. Specifically, for each file, the tests:
1. Identify as many nodes as possible from all the bytecode instructions in the file, and assert that they are all distinct
2. Find all the nodes that should be identifiable, and assert that they were indeed identified somewhere
In other words, it shows that there is a one-to-one mapping between the nodes and the instructions that can be handled. This leaves very little room for a bug to creep in.
Furthermore, `executing` checks that the instructions compiled from the modified AST exactly match the original code save for a few small known exceptions. This accounts for all the quirks and optimisations in the interpreter.
Currently it works in almost all cases for the following `ast` nodes:
- `Call`, e.g. `self.foo(bar)`
- `Attribute`, e.g. `point.x`
- `Subscript`, e.g. `lst[1]`
- `BinOp`, e.g. `x + y` (doesn't include `and` and `or`)
- `UnaryOp`, e.g. `-n` (includes `not` but only works sometimes)
- `Compare` e.g. `a < b` (not for chains such as `0 < p < 1`)
The plan is to extend to more operations in the future.
- **[`stack_data`](https://github.com/alexmojaki/stack_data)**: Extracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default. Also uses another related library of mine: **[`pure_eval`](https://github.com/alexmojaki/pure_eval)**.
- **[`futurecoder`](https://futurecoder.io/)**: Highlights the executing node in tracebacks using `executing` via `stack_data`, and provides debugging with `snoop`.
- **[`snoop`](https://github.com/alexmojaki/snoop)**: A feature-rich and convenient debugging library. Uses `executing` to show the operation which caused an exception and to allow the `pp` function to display the source of its arguments.
- **[`heartrate`](https://github.com/alexmojaki/heartrate)**: A simple real time visualisation of the execution of a Python program. Uses `executing` to highlight currently executing operations, particularly in each frame of the stack trace.
- **[`sorcery`](https://github.com/alexmojaki/sorcery)**: Dark magic delights in Python. Uses `executing` to let special callables called spells know where they're being called from.
- **[`IPython`](https://github.com/ipython/ipython/pull/12150)**: Highlights the executing node in tracebacks using `executing` via [`stack_data`](https://github.com/alexmojaki/stack_data).
- **[`icecream`](https://github.com/gruns/icecream)**: 🍦 Sweet and creamy print debugging. Uses `executing` to identify where `ic` is called and print its arguments.
- **[`friendly_traceback`](https://github.com/friendly-traceback/friendly-traceback)**: Uses `stack_data` and `executing` to pinpoint the cause of errors and provide helpful explanations.
- **[`python-devtools`](https://github.com/samuelcolvin/python-devtools)**: Uses `executing` for print debugging similar to `icecream`.
- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events.
- **[`varname`](https://github.com/pwwang/python-varname)**: Dark magics about variable names in python. Uses `executing` to find where its various magical functions like `varname` and `nameof` are called from.https://github.com/alexmojaki/executingMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-7f89dd53-1914-46db-8e99-c102482a6f62python-executingsrc82468f819d71fe977ccb47c9291934b8156fb1e44db69d3524fd31af5974d989Get the currently executing AST node of a frame, and other information
[![Build Status](https://github.com/alexmojaki/executing/workflows/Tests/badge.svg?branch=master)](https://github.com/alexmojaki/executing/actions) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/executing/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/executing?branch=master) [![Supports Python versions 2.7 and 3.5+, including PyPy](https://img.shields.io/pypi/pyversions/executing.svg)](https://pypi.python.org/pypi/executing)
This mini-package lets you get information about what a frame is currently doing, particularly the AST node being executed.
* [Usage](#usage)
* [Getting the AST node](#getting-the-ast-node)
* [Getting the source code of the node](#getting-the-source-code-of-the-node)
* [Getting the `__qualname__` of the current function](#getting-the-__qualname__-of-the-current-function)
* [The Source class](#the-source-class)
* [Installation](#installation)
* [How does it work?](#how-does-it-work)
* [Is it reliable?](#is-it-reliable)
* [Which nodes can it identify?](#which-nodes-can-it-identify)
* [Libraries that use this](#libraries-that-use-this)
```python
import executing
node = executing.Source.executing(frame).node
```
Then `node` will be an AST node (from the `ast` standard library module) or None if the node couldn't be identified (which may happen often and should always be checked).
`node` will always be the same instance for multiple calls with frames at the same point of execution.
If you have a traceback object, pass it directly to `Source.executing()` rather than the `tb_frame` attribute to get the correct node.
For this you will need to separately install the [`asttokens`](https://github.com/gristlabs/asttokens) library, then obtain an `ASTTokens` object:
```python
executing.Source.executing(frame).source.asttokens()
```
or:
```python
executing.Source.for_frame(frame).asttokens()
```
or use one of the convenience methods:
```python
executing.Source.executing(frame).text()
executing.Source.executing(frame).text_range()
```
```python
executing.Source.executing(frame).code_qualname()
```
or:
```python
executing.Source.for_frame(frame).code_qualname(frame.f_code)
```
Everything goes through the `Source` class. Only one instance of the class is created for each filename. Subclassing it to add more attributes on creation or methods is recommended. The classmethods such as `executing` will respect this. See the source code and docstrings for more detail.
pip install executing
If you don't like that you can just copy the file `executing.py`, there are no dependencies (but of course you won't get updates).
Suppose the frame is executing this line:
```python
self.foo(bar.x)
```
and in particular it's currently obtaining the attribute `self.foo`. Looking at the bytecode, specifically `frame.f_code.co_code[frame.f_lasti]`, we can tell that it's loading an attribute, but it's not obvious which one. We can narrow down the statement being executed using `frame.f_lineno` and find the two `ast.Attribute` nodes representing `self.foo` and `bar.x`. How do we find out which one it is, without recreating the entire compiler in Python?
The trick is to modify the AST slightly for each candidate expression and observe the changes in the bytecode instructions. We change the AST to this:
```python
(self.foo ** 'longuniqueconstant')(bar.x)
```
and compile it, and the bytecode will be almost the same but there will be two new instructions:
LOAD_CONST 'longuniqueconstant'
BINARY_POWER
and just before that will be a `LOAD_ATTR` instruction corresponding to `self.foo`. Seeing that it's in the same position as the original instruction lets us know we've found our match.
Yes - if it identifies a node, you can trust that it's identified the correct one. The tests are very thorough - in addition to unit tests which check various situations directly, there are property tests against a large number of files (see the filenames printed in [this build](https://travis-ci.org/alexmojaki/executing/jobs/557970457)) with real code. Specifically, for each file, the tests:
1. Identify as many nodes as possible from all the bytecode instructions in the file, and assert that they are all distinct
2. Find all the nodes that should be identifiable, and assert that they were indeed identified somewhere
In other words, it shows that there is a one-to-one mapping between the nodes and the instructions that can be handled. This leaves very little room for a bug to creep in.
Furthermore, `executing` checks that the instructions compiled from the modified AST exactly match the original code save for a few small known exceptions. This accounts for all the quirks and optimisations in the interpreter.
Currently it works in almost all cases for the following `ast` nodes:
- `Call`, e.g. `self.foo(bar)`
- `Attribute`, e.g. `point.x`
- `Subscript`, e.g. `lst[1]`
- `BinOp`, e.g. `x + y` (doesn't include `and` and `or`)
- `UnaryOp`, e.g. `-n` (includes `not` but only works sometimes)
- `Compare` e.g. `a < b` (not for chains such as `0 < p < 1`)
The plan is to extend to more operations in the future.
- **[`stack_data`](https://github.com/alexmojaki/stack_data)**: Extracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default. Also uses another related library of mine: **[`pure_eval`](https://github.com/alexmojaki/pure_eval)**.
- **[`futurecoder`](https://futurecoder.io/)**: Highlights the executing node in tracebacks using `executing` via `stack_data`, and provides debugging with `snoop`.
- **[`snoop`](https://github.com/alexmojaki/snoop)**: A feature-rich and convenient debugging library. Uses `executing` to show the operation which caused an exception and to allow the `pp` function to display the source of its arguments.
- **[`heartrate`](https://github.com/alexmojaki/heartrate)**: A simple real time visualisation of the execution of a Python program. Uses `executing` to highlight currently executing operations, particularly in each frame of the stack trace.
- **[`sorcery`](https://github.com/alexmojaki/sorcery)**: Dark magic delights in Python. Uses `executing` to let special callables called spells know where they're being called from.
- **[`IPython`](https://github.com/ipython/ipython/pull/12150)**: Highlights the executing node in tracebacks using `executing` via [`stack_data`](https://github.com/alexmojaki/stack_data).
- **[`icecream`](https://github.com/gruns/icecream)**: 🍦 Sweet and creamy print debugging. Uses `executing` to identify where `ic` is called and print its arguments.
- **[`friendly_traceback`](https://github.com/friendly-traceback/friendly-traceback)**: Uses `stack_data` and `executing` to pinpoint the cause of errors and provide helpful explanations.
- **[`python-devtools`](https://github.com/samuelcolvin/python-devtools)**: Uses `executing` for print debugging similar to `icecream`.
- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events.
- **[`varname`](https://github.com/pwwang/python-varname)**: Dark magics about variable names in python. Uses `executing` to find where its various magical functions like `varname` and `nameof` are called from.https://github.com/alexmojaki/executingMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f3187111-0ee4-4230-a1a4-d0382598487epython-executingsrc6a880cbf7a63358a6fa82eec93f79fc3b7d0424cee0fa871d42db60c7362dfc6Get the currently executing AST node of a frame, and other information
[![Build Status](https://github.com/alexmojaki/executing/workflows/Tests/badge.svg?branch=master)](https://github.com/alexmojaki/executing/actions) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/executing/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/executing?branch=master) [![Supports Python versions 2.7 and 3.5+, including PyPy](https://img.shields.io/pypi/pyversions/executing.svg)](https://pypi.python.org/pypi/executing)
This mini-package lets you get information about what a frame is currently doing, particularly the AST node being executed.
* [Usage](#usage)
* [Getting the AST node](#getting-the-ast-node)
* [Getting the source code of the node](#getting-the-source-code-of-the-node)
* [Getting the `__qualname__` of the current function](#getting-the-__qualname__-of-the-current-function)
* [The Source class](#the-source-class)
* [Installation](#installation)
* [How does it work?](#how-does-it-work)
* [Is it reliable?](#is-it-reliable)
* [Which nodes can it identify?](#which-nodes-can-it-identify)
* [Libraries that use this](#libraries-that-use-this)
```python
import executing
node = executing.Source.executing(frame).node
```
Then `node` will be an AST node (from the `ast` standard library module) or None if the node couldn't be identified (which may happen often and should always be checked).
`node` will always be the same instance for multiple calls with frames at the same point of execution.
If you have a traceback object, pass it directly to `Source.executing()` rather than the `tb_frame` attribute to get the correct node.
For this you will need to separately install the [`asttokens`](https://github.com/gristlabs/asttokens) library, then obtain an `ASTTokens` object:
```python
executing.Source.executing(frame).source.asttokens()
```
or:
```python
executing.Source.for_frame(frame).asttokens()
```
or use one of the convenience methods:
```python
executing.Source.executing(frame).text()
executing.Source.executing(frame).text_range()
```
```python
executing.Source.executing(frame).code_qualname()
```
or:
```python
executing.Source.for_frame(frame).code_qualname(frame.f_code)
```
Everything goes through the `Source` class. Only one instance of the class is created for each filename. Subclassing it to add more attributes on creation or methods is recommended. The classmethods such as `executing` will respect this. See the source code and docstrings for more detail.
pip install executing
If you don't like that you can just copy the file `executing.py`, there are no dependencies (but of course you won't get updates).
Suppose the frame is executing this line:
```python
self.foo(bar.x)
```
and in particular it's currently obtaining the attribute `self.foo`. Looking at the bytecode, specifically `frame.f_code.co_code[frame.f_lasti]`, we can tell that it's loading an attribute, but it's not obvious which one. We can narrow down the statement being executed using `frame.f_lineno` and find the two `ast.Attribute` nodes representing `self.foo` and `bar.x`. How do we find out which one it is, without recreating the entire compiler in Python?
The trick is to modify the AST slightly for each candidate expression and observe the changes in the bytecode instructions. We change the AST to this:
```python
(self.foo ** 'longuniqueconstant')(bar.x)
```
and compile it, and the bytecode will be almost the same but there will be two new instructions:
LOAD_CONST 'longuniqueconstant'
BINARY_POWER
and just before that will be a `LOAD_ATTR` instruction corresponding to `self.foo`. Seeing that it's in the same position as the original instruction lets us know we've found our match.
Yes - if it identifies a node, you can trust that it's identified the correct one. The tests are very thorough - in addition to unit tests which check various situations directly, there are property tests against a large number of files (see the filenames printed in [this build](https://travis-ci.org/alexmojaki/executing/jobs/557970457)) with real code. Specifically, for each file, the tests:
1. Identify as many nodes as possible from all the bytecode instructions in the file, and assert that they are all distinct
2. Find all the nodes that should be identifiable, and assert that they were indeed identified somewhere
In other words, it shows that there is a one-to-one mapping between the nodes and the instructions that can be handled. This leaves very little room for a bug to creep in.
Furthermore, `executing` checks that the instructions compiled from the modified AST exactly match the original code save for a few small known exceptions. This accounts for all the quirks and optimisations in the interpreter.
Currently it works in almost all cases for the following `ast` nodes:
- `Call`, e.g. `self.foo(bar)`
- `Attribute`, e.g. `point.x`
- `Subscript`, e.g. `lst[1]`
- `BinOp`, e.g. `x + y` (doesn't include `and` and `or`)
- `UnaryOp`, e.g. `-n` (includes `not` but only works sometimes)
- `Compare` e.g. `a < b` (not for chains such as `0 < p < 1`)
The plan is to extend to more operations in the future.
- **[`stack_data`](https://github.com/alexmojaki/stack_data)**: Extracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default. Also uses another related library of mine: **[`pure_eval`](https://github.com/alexmojaki/pure_eval)**.
- **[`futurecoder`](https://futurecoder.io/)**: Highlights the executing node in tracebacks using `executing` via `stack_data`, and provides debugging with `snoop`.
- **[`snoop`](https://github.com/alexmojaki/snoop)**: A feature-rich and convenient debugging library. Uses `executing` to show the operation which caused an exception and to allow the `pp` function to display the source of its arguments.
- **[`heartrate`](https://github.com/alexmojaki/heartrate)**: A simple real time visualisation of the execution of a Python program. Uses `executing` to highlight currently executing operations, particularly in each frame of the stack trace.
- **[`sorcery`](https://github.com/alexmojaki/sorcery)**: Dark magic delights in Python. Uses `executing` to let special callables called spells know where they're being called from.
- **[`IPython`](https://github.com/ipython/ipython/pull/12150)**: Highlights the executing node in tracebacks using `executing` via [`stack_data`](https://github.com/alexmojaki/stack_data).
- **[`icecream`](https://github.com/gruns/icecream)**: 🍦 Sweet and creamy print debugging. Uses `executing` to identify where `ic` is called and print its arguments.
- **[`friendly_traceback`](https://github.com/friendly-traceback/friendly-traceback)**: Uses `stack_data` and `executing` to pinpoint the cause of errors and provide helpful explanations.
- **[`python-devtools`](https://github.com/samuelcolvin/python-devtools)**: Uses `executing` for print debugging similar to `icecream`.
- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events.
- **[`varname`](https://github.com/pwwang/python-varname)**: Dark magics about variable names in python. Uses `executing` to find where its various magical functions like `varname` and `nameof` are called from.https://github.com/alexmojaki/executingMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-0a4af59c-518d-4c53-8c78-93b2d431baadpython-executingsrc04a4423785b81a913008acc4d0e45e0ebf746a805b27d9eb4ec93ee9cee7d87bGet the currently executing AST node of a frame, and other information
[![Build Status](https://github.com/alexmojaki/executing/workflows/Tests/badge.svg?branch=master)](https://github.com/alexmojaki/executing/actions) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/executing/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/executing?branch=master) [![Supports Python versions 2.7 and 3.5+, including PyPy](https://img.shields.io/pypi/pyversions/executing.svg)](https://pypi.python.org/pypi/executing)
This mini-package lets you get information about what a frame is currently doing, particularly the AST node being executed.
* [Usage](#usage)
* [Getting the AST node](#getting-the-ast-node)
* [Getting the source code of the node](#getting-the-source-code-of-the-node)
* [Getting the `__qualname__` of the current function](#getting-the-__qualname__-of-the-current-function)
* [The Source class](#the-source-class)
* [Installation](#installation)
* [How does it work?](#how-does-it-work)
* [Is it reliable?](#is-it-reliable)
* [Which nodes can it identify?](#which-nodes-can-it-identify)
* [Libraries that use this](#libraries-that-use-this)
```python
import executing
node = executing.Source.executing(frame).node
```
Then `node` will be an AST node (from the `ast` standard library module) or None if the node couldn't be identified (which may happen often and should always be checked).
`node` will always be the same instance for multiple calls with frames at the same point of execution.
If you have a traceback object, pass it directly to `Source.executing()` rather than the `tb_frame` attribute to get the correct node.
For this you will need to separately install the [`asttokens`](https://github.com/gristlabs/asttokens) library, then obtain an `ASTTokens` object:
```python
executing.Source.executing(frame).source.asttokens()
```
or:
```python
executing.Source.for_frame(frame).asttokens()
```
or use one of the convenience methods:
```python
executing.Source.executing(frame).text()
executing.Source.executing(frame).text_range()
```
```python
executing.Source.executing(frame).code_qualname()
```
or:
```python
executing.Source.for_frame(frame).code_qualname(frame.f_code)
```
Everything goes through the `Source` class. Only one instance of the class is created for each filename. Subclassing it to add more attributes on creation or methods is recommended. The classmethods such as `executing` will respect this. See the source code and docstrings for more detail.
pip install executing
If you don't like that you can just copy the file `executing.py`, there are no dependencies (but of course you won't get updates).
Suppose the frame is executing this line:
```python
self.foo(bar.x)
```
and in particular it's currently obtaining the attribute `self.foo`. Looking at the bytecode, specifically `frame.f_code.co_code[frame.f_lasti]`, we can tell that it's loading an attribute, but it's not obvious which one. We can narrow down the statement being executed using `frame.f_lineno` and find the two `ast.Attribute` nodes representing `self.foo` and `bar.x`. How do we find out which one it is, without recreating the entire compiler in Python?
The trick is to modify the AST slightly for each candidate expression and observe the changes in the bytecode instructions. We change the AST to this:
```python
(self.foo ** 'longuniqueconstant')(bar.x)
```
and compile it, and the bytecode will be almost the same but there will be two new instructions:
LOAD_CONST 'longuniqueconstant'
BINARY_POWER
and just before that will be a `LOAD_ATTR` instruction corresponding to `self.foo`. Seeing that it's in the same position as the original instruction lets us know we've found our match.
Yes - if it identifies a node, you can trust that it's identified the correct one. The tests are very thorough - in addition to unit tests which check various situations directly, there are property tests against a large number of files (see the filenames printed in [this build](https://travis-ci.org/alexmojaki/executing/jobs/557970457)) with real code. Specifically, for each file, the tests:
1. Identify as many nodes as possible from all the bytecode instructions in the file, and assert that they are all distinct
2. Find all the nodes that should be identifiable, and assert that they were indeed identified somewhere
In other words, it shows that there is a one-to-one mapping between the nodes and the instructions that can be handled. This leaves very little room for a bug to creep in.
Furthermore, `executing` checks that the instructions compiled from the modified AST exactly match the original code save for a few small known exceptions. This accounts for all the quirks and optimisations in the interpreter.
Currently it works in almost all cases for the following `ast` nodes:
- `Call`, e.g. `self.foo(bar)`
- `Attribute`, e.g. `point.x`
- `Subscript`, e.g. `lst[1]`
- `BinOp`, e.g. `x + y` (doesn't include `and` and `or`)
- `UnaryOp`, e.g. `-n` (includes `not` but only works sometimes)
- `Compare` e.g. `a < b` (not for chains such as `0 < p < 1`)
The plan is to extend to more operations in the future.
- **[`stack_data`](https://github.com/alexmojaki/stack_data)**: Extracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default. Also uses another related library of mine: **[`pure_eval`](https://github.com/alexmojaki/pure_eval)**.
- **[`futurecoder`](https://futurecoder.io/)**: Highlights the executing node in tracebacks using `executing` via `stack_data`, and provides debugging with `snoop`.
- **[`snoop`](https://github.com/alexmojaki/snoop)**: A feature-rich and convenient debugging library. Uses `executing` to show the operation which caused an exception and to allow the `pp` function to display the source of its arguments.
- **[`heartrate`](https://github.com/alexmojaki/heartrate)**: A simple real time visualisation of the execution of a Python program. Uses `executing` to highlight currently executing operations, particularly in each frame of the stack trace.
- **[`sorcery`](https://github.com/alexmojaki/sorcery)**: Dark magic delights in Python. Uses `executing` to let special callables called spells know where they're being called from.
- **[`IPython`](https://github.com/ipython/ipython/pull/12150)**: Highlights the executing node in tracebacks using `executing` via [`stack_data`](https://github.com/alexmojaki/stack_data).
- **[`icecream`](https://github.com/gruns/icecream)**: 🍦 Sweet and creamy print debugging. Uses `executing` to identify where `ic` is called and print its arguments.
- **[`friendly_traceback`](https://github.com/friendly-traceback/friendly-traceback)**: Uses `stack_data` and `executing` to pinpoint the cause of errors and provide helpful explanations.
- **[`python-devtools`](https://github.com/samuelcolvin/python-devtools)**: Uses `executing` for print debugging similar to `icecream`.
- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events.
- **[`varname`](https://github.com/pwwang/python-varname)**: Dark magics about variable names in python. Uses `executing` to find where its various magical functions like `varname` and `nameof` are called from.https://github.com/alexmojaki/executingMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-150313c4-e510-45f8-b244-d5d53201c8a6python-executingsrc1658b50713cdd8fcb11fe8436ce56c3728e08fec564d1ef5d51e63ac382526c7Get the currently executing AST node of a frame, and other information
[![Build Status](https://github.com/alexmojaki/executing/workflows/Tests/badge.svg?branch=master)](https://github.com/alexmojaki/executing/actions) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/executing/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/executing?branch=master) [![Supports Python versions 2.7 and 3.5+, including PyPy](https://img.shields.io/pypi/pyversions/executing.svg)](https://pypi.python.org/pypi/executing)
This mini-package lets you get information about what a frame is currently doing, particularly the AST node being executed.
* [Usage](#usage)
* [Getting the AST node](#getting-the-ast-node)
* [Getting the source code of the node](#getting-the-source-code-of-the-node)
* [Getting the `__qualname__` of the current function](#getting-the-__qualname__-of-the-current-function)
* [The Source class](#the-source-class)
* [Installation](#installation)
* [How does it work?](#how-does-it-work)
* [Is it reliable?](#is-it-reliable)
* [Which nodes can it identify?](#which-nodes-can-it-identify)
* [Libraries that use this](#libraries-that-use-this)
```python
import executing
node = executing.Source.executing(frame).node
```
Then `node` will be an AST node (from the `ast` standard library module) or None if the node couldn't be identified (which may happen often and should always be checked).
`node` will always be the same instance for multiple calls with frames at the same point of execution.
If you have a traceback object, pass it directly to `Source.executing()` rather than the `tb_frame` attribute to get the correct node.
For this you will need to separately install the [`asttokens`](https://github.com/gristlabs/asttokens) library, then obtain an `ASTTokens` object:
```python
executing.Source.executing(frame).source.asttokens()
```
or:
```python
executing.Source.for_frame(frame).asttokens()
```
or use one of the convenience methods:
```python
executing.Source.executing(frame).text()
executing.Source.executing(frame).text_range()
```
```python
executing.Source.executing(frame).code_qualname()
```
or:
```python
executing.Source.for_frame(frame).code_qualname(frame.f_code)
```
Everything goes through the `Source` class. Only one instance of the class is created for each filename. Subclassing it to add more attributes on creation or methods is recommended. The classmethods such as `executing` will respect this. See the source code and docstrings for more detail.
pip install executing
If you don't like that you can just copy the file `executing.py`, there are no dependencies (but of course you won't get updates).
Suppose the frame is executing this line:
```python
self.foo(bar.x)
```
and in particular it's currently obtaining the attribute `self.foo`. Looking at the bytecode, specifically `frame.f_code.co_code[frame.f_lasti]`, we can tell that it's loading an attribute, but it's not obvious which one. We can narrow down the statement being executed using `frame.f_lineno` and find the two `ast.Attribute` nodes representing `self.foo` and `bar.x`. How do we find out which one it is, without recreating the entire compiler in Python?
The trick is to modify the AST slightly for each candidate expression and observe the changes in the bytecode instructions. We change the AST to this:
```python
(self.foo ** 'longuniqueconstant')(bar.x)
```
and compile it, and the bytecode will be almost the same but there will be two new instructions:
LOAD_CONST 'longuniqueconstant'
BINARY_POWER
and just before that will be a `LOAD_ATTR` instruction corresponding to `self.foo`. Seeing that it's in the same position as the original instruction lets us know we've found our match.
Yes - if it identifies a node, you can trust that it's identified the correct one. The tests are very thorough - in addition to unit tests which check various situations directly, there are property tests against a large number of files (see the filenames printed in [this build](https://travis-ci.org/alexmojaki/executing/jobs/557970457)) with real code. Specifically, for each file, the tests:
1. Identify as many nodes as possible from all the bytecode instructions in the file, and assert that they are all distinct
2. Find all the nodes that should be identifiable, and assert that they were indeed identified somewhere
In other words, it shows that there is a one-to-one mapping between the nodes and the instructions that can be handled. This leaves very little room for a bug to creep in.
Furthermore, `executing` checks that the instructions compiled from the modified AST exactly match the original code save for a few small known exceptions. This accounts for all the quirks and optimisations in the interpreter.
Currently it works in almost all cases for the following `ast` nodes:
- `Call`, e.g. `self.foo(bar)`
- `Attribute`, e.g. `point.x`
- `Subscript`, e.g. `lst[1]`
- `BinOp`, e.g. `x + y` (doesn't include `and` and `or`)
- `UnaryOp`, e.g. `-n` (includes `not` but only works sometimes)
- `Compare` e.g. `a < b` (not for chains such as `0 < p < 1`)
The plan is to extend to more operations in the future.
- **[`stack_data`](https://github.com/alexmojaki/stack_data)**: Extracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default. Also uses another related library of mine: **[`pure_eval`](https://github.com/alexmojaki/pure_eval)**.
- **[`futurecoder`](https://futurecoder.io/)**: Highlights the executing node in tracebacks using `executing` via `stack_data`, and provides debugging with `snoop`.
- **[`snoop`](https://github.com/alexmojaki/snoop)**: A feature-rich and convenient debugging library. Uses `executing` to show the operation which caused an exception and to allow the `pp` function to display the source of its arguments.
- **[`heartrate`](https://github.com/alexmojaki/heartrate)**: A simple real time visualisation of the execution of a Python program. Uses `executing` to highlight currently executing operations, particularly in each frame of the stack trace.
- **[`sorcery`](https://github.com/alexmojaki/sorcery)**: Dark magic delights in Python. Uses `executing` to let special callables called spells know where they're being called from.
- **[`IPython`](https://github.com/ipython/ipython/pull/12150)**: Highlights the executing node in tracebacks using `executing` via [`stack_data`](https://github.com/alexmojaki/stack_data).
- **[`icecream`](https://github.com/gruns/icecream)**: 🍦 Sweet and creamy print debugging. Uses `executing` to identify where `ic` is called and print its arguments.
- **[`friendly_traceback`](https://github.com/friendly-traceback/friendly-traceback)**: Uses `stack_data` and `executing` to pinpoint the cause of errors and provide helpful explanations.
- **[`python-devtools`](https://github.com/samuelcolvin/python-devtools)**: Uses `executing` for print debugging similar to `icecream`.
- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events.
- **[`varname`](https://github.com/pwwang/python-varname)**: Dark magics about variable names in python. Uses `executing` to find where its various magical functions like `varname` and `nameof` are called from.https://github.com/alexmojaki/executingMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-ae7b6eb2-204a-473e-9a5f-9bd6b6695e15python-executingsrc54642a3eb0cd6ca979cdc24557fc71a0d094f98d5cfb24275b9e1db80f4868b6Get the currently executing AST node of a frame, and other information
[![Build Status](https://github.com/alexmojaki/executing/workflows/Tests/badge.svg?branch=master)](https://github.com/alexmojaki/executing/actions) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/executing/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/executing?branch=master) [![Supports Python versions 2.7 and 3.5+, including PyPy](https://img.shields.io/pypi/pyversions/executing.svg)](https://pypi.python.org/pypi/executing)
This mini-package lets you get information about what a frame is currently doing, particularly the AST node being executed.
* [Usage](#usage)
* [Getting the AST node](#getting-the-ast-node)
* [Getting the source code of the node](#getting-the-source-code-of-the-node)
* [Getting the `__qualname__` of the current function](#getting-the-__qualname__-of-the-current-function)
* [The Source class](#the-source-class)
* [Installation](#installation)
* [How does it work?](#how-does-it-work)
* [Is it reliable?](#is-it-reliable)
* [Which nodes can it identify?](#which-nodes-can-it-identify)
* [Libraries that use this](#libraries-that-use-this)
```python
import executing
node = executing.Source.executing(frame).node
```
Then `node` will be an AST node (from the `ast` standard library module) or None if the node couldn't be identified (which may happen often and should always be checked).
`node` will always be the same instance for multiple calls with frames at the same point of execution.
If you have a traceback object, pass it directly to `Source.executing()` rather than the `tb_frame` attribute to get the correct node.
For this you will need to separately install the [`asttokens`](https://github.com/gristlabs/asttokens) library, then obtain an `ASTTokens` object:
```python
executing.Source.executing(frame).source.asttokens()
```
or:
```python
executing.Source.for_frame(frame).asttokens()
```
or use one of the convenience methods:
```python
executing.Source.executing(frame).text()
executing.Source.executing(frame).text_range()
```
```python
executing.Source.executing(frame).code_qualname()
```
or:
```python
executing.Source.for_frame(frame).code_qualname(frame.f_code)
```
Everything goes through the `Source` class. Only one instance of the class is created for each filename. Subclassing it to add more attributes on creation or methods is recommended. The classmethods such as `executing` will respect this. See the source code and docstrings for more detail.
pip install executing
If you don't like that you can just copy the file `executing.py`, there are no dependencies (but of course you won't get updates).
Suppose the frame is executing this line:
```python
self.foo(bar.x)
```
and in particular it's currently obtaining the attribute `self.foo`. Looking at the bytecode, specifically `frame.f_code.co_code[frame.f_lasti]`, we can tell that it's loading an attribute, but it's not obvious which one. We can narrow down the statement being executed using `frame.f_lineno` and find the two `ast.Attribute` nodes representing `self.foo` and `bar.x`. How do we find out which one it is, without recreating the entire compiler in Python?
The trick is to modify the AST slightly for each candidate expression and observe the changes in the bytecode instructions. We change the AST to this:
```python
(self.foo ** 'longuniqueconstant')(bar.x)
```
and compile it, and the bytecode will be almost the same but there will be two new instructions:
LOAD_CONST 'longuniqueconstant'
BINARY_POWER
and just before that will be a `LOAD_ATTR` instruction corresponding to `self.foo`. Seeing that it's in the same position as the original instruction lets us know we've found our match.
Yes - if it identifies a node, you can trust that it's identified the correct one. The tests are very thorough - in addition to unit tests which check various situations directly, there are property tests against a large number of files (see the filenames printed in [this build](https://travis-ci.org/alexmojaki/executing/jobs/557970457)) with real code. Specifically, for each file, the tests:
1. Identify as many nodes as possible from all the bytecode instructions in the file, and assert that they are all distinct
2. Find all the nodes that should be identifiable, and assert that they were indeed identified somewhere
In other words, it shows that there is a one-to-one mapping between the nodes and the instructions that can be handled. This leaves very little room for a bug to creep in.
Furthermore, `executing` checks that the instructions compiled from the modified AST exactly match the original code save for a few small known exceptions. This accounts for all the quirks and optimisations in the interpreter.
Currently it works in almost all cases for the following `ast` nodes:
- `Call`, e.g. `self.foo(bar)`
- `Attribute`, e.g. `point.x`
- `Subscript`, e.g. `lst[1]`
- `BinOp`, e.g. `x + y` (doesn't include `and` and `or`)
- `UnaryOp`, e.g. `-n` (includes `not` but only works sometimes)
- `Compare` e.g. `a < b` (not for chains such as `0 < p < 1`)
The plan is to extend to more operations in the future.
- **[`stack_data`](https://github.com/alexmojaki/stack_data)**: Extracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default. Also uses another related library of mine: **[`pure_eval`](https://github.com/alexmojaki/pure_eval)**.
- **[`futurecoder`](https://futurecoder.io/)**: Highlights the executing node in tracebacks using `executing` via `stack_data`, and provides debugging with `snoop`.
- **[`snoop`](https://github.com/alexmojaki/snoop)**: A feature-rich and convenient debugging library. Uses `executing` to show the operation which caused an exception and to allow the `pp` function to display the source of its arguments.
- **[`heartrate`](https://github.com/alexmojaki/heartrate)**: A simple real time visualisation of the execution of a Python program. Uses `executing` to highlight currently executing operations, particularly in each frame of the stack trace.
- **[`sorcery`](https://github.com/alexmojaki/sorcery)**: Dark magic delights in Python. Uses `executing` to let special callables called spells know where they're being called from.
- **[`IPython`](https://github.com/ipython/ipython/pull/12150)**: Highlights the executing node in tracebacks using `executing` via [`stack_data`](https://github.com/alexmojaki/stack_data).
- **[`icecream`](https://github.com/gruns/icecream)**: 🍦 Sweet and creamy print debugging. Uses `executing` to identify where `ic` is called and print its arguments.
- **[`friendly_traceback`](https://github.com/friendly-traceback/friendly-traceback)**: Uses `stack_data` and `executing` to pinpoint the cause of errors and provide helpful explanations.
- **[`python-devtools`](https://github.com/samuelcolvin/python-devtools)**: Uses `executing` for print debugging similar to `icecream`.
- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events.
- **[`varname`](https://github.com/pwwang/python-varname)**: Dark magics about variable names in python. Uses `executing` to find where its various magical functions like `varname` and `nameof` are called from.https://github.com/alexmojaki/executingMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3ce627ae-b694-49b8-ae2e-db33c972eaa1python-executing-helpnoarch9d928310e94c69c9354b1448c75d13bb53cdc4a50c435c48ba73da91b977961fDevelopment documents and examples for executing
[![Build Status](https://github.com/alexmojaki/executing/workflows/Tests/badge.svg?branch=master)](https://github.com/alexmojaki/executing/actions) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/executing/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/executing?branch=master) [![Supports Python versions 2.7 and 3.5+, including PyPy](https://img.shields.io/pypi/pyversions/executing.svg)](https://pypi.python.org/pypi/executing)
This mini-package lets you get information about what a frame is currently doing, particularly the AST node being executed.
* [Usage](#usage)
* [Getting the AST node](#getting-the-ast-node)
* [Getting the source code of the node](#getting-the-source-code-of-the-node)
* [Getting the `__qualname__` of the current function](#getting-the-__qualname__-of-the-current-function)
* [The Source class](#the-source-class)
* [Installation](#installation)
* [How does it work?](#how-does-it-work)
* [Is it reliable?](#is-it-reliable)
* [Which nodes can it identify?](#which-nodes-can-it-identify)
* [Libraries that use this](#libraries-that-use-this)
```python
import executing
node = executing.Source.executing(frame).node
```
Then `node` will be an AST node (from the `ast` standard library module) or None if the node couldn't be identified (which may happen often and should always be checked).
`node` will always be the same instance for multiple calls with frames at the same point of execution.
If you have a traceback object, pass it directly to `Source.executing()` rather than the `tb_frame` attribute to get the correct node.
For this you will need to separately install the [`asttokens`](https://github.com/gristlabs/asttokens) library, then obtain an `ASTTokens` object:
```python
executing.Source.executing(frame).source.asttokens()
```
or:
```python
executing.Source.for_frame(frame).asttokens()
```
or use one of the convenience methods:
```python
executing.Source.executing(frame).text()
executing.Source.executing(frame).text_range()
```
```python
executing.Source.executing(frame).code_qualname()
```
or:
```python
executing.Source.for_frame(frame).code_qualname(frame.f_code)
```
Everything goes through the `Source` class. Only one instance of the class is created for each filename. Subclassing it to add more attributes on creation or methods is recommended. The classmethods such as `executing` will respect this. See the source code and docstrings for more detail.
pip install executing
If you don't like that you can just copy the file `executing.py`, there are no dependencies (but of course you won't get updates).
Suppose the frame is executing this line:
```python
self.foo(bar.x)
```
and in particular it's currently obtaining the attribute `self.foo`. Looking at the bytecode, specifically `frame.f_code.co_code[frame.f_lasti]`, we can tell that it's loading an attribute, but it's not obvious which one. We can narrow down the statement being executed using `frame.f_lineno` and find the two `ast.Attribute` nodes representing `self.foo` and `bar.x`. How do we find out which one it is, without recreating the entire compiler in Python?
The trick is to modify the AST slightly for each candidate expression and observe the changes in the bytecode instructions. We change the AST to this:
```python
(self.foo ** 'longuniqueconstant')(bar.x)
```
and compile it, and the bytecode will be almost the same but there will be two new instructions:
LOAD_CONST 'longuniqueconstant'
BINARY_POWER
and just before that will be a `LOAD_ATTR` instruction corresponding to `self.foo`. Seeing that it's in the same position as the original instruction lets us know we've found our match.
Yes - if it identifies a node, you can trust that it's identified the correct one. The tests are very thorough - in addition to unit tests which check various situations directly, there are property tests against a large number of files (see the filenames printed in [this build](https://travis-ci.org/alexmojaki/executing/jobs/557970457)) with real code. Specifically, for each file, the tests:
1. Identify as many nodes as possible from all the bytecode instructions in the file, and assert that they are all distinct
2. Find all the nodes that should be identifiable, and assert that they were indeed identified somewhere
In other words, it shows that there is a one-to-one mapping between the nodes and the instructions that can be handled. This leaves very little room for a bug to creep in.
Furthermore, `executing` checks that the instructions compiled from the modified AST exactly match the original code save for a few small known exceptions. This accounts for all the quirks and optimisations in the interpreter.
Currently it works in almost all cases for the following `ast` nodes:
- `Call`, e.g. `self.foo(bar)`
- `Attribute`, e.g. `point.x`
- `Subscript`, e.g. `lst[1]`
- `BinOp`, e.g. `x + y` (doesn't include `and` and `or`)
- `UnaryOp`, e.g. `-n` (includes `not` but only works sometimes)
- `Compare` e.g. `a < b` (not for chains such as `0 < p < 1`)
The plan is to extend to more operations in the future.
- **[`stack_data`](https://github.com/alexmojaki/stack_data)**: Extracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default. Also uses another related library of mine: **[`pure_eval`](https://github.com/alexmojaki/pure_eval)**.
- **[`futurecoder`](https://futurecoder.io/)**: Highlights the executing node in tracebacks using `executing` via `stack_data`, and provides debugging with `snoop`.
- **[`snoop`](https://github.com/alexmojaki/snoop)**: A feature-rich and convenient debugging library. Uses `executing` to show the operation which caused an exception and to allow the `pp` function to display the source of its arguments.
- **[`heartrate`](https://github.com/alexmojaki/heartrate)**: A simple real time visualisation of the execution of a Python program. Uses `executing` to highlight currently executing operations, particularly in each frame of the stack trace.
- **[`sorcery`](https://github.com/alexmojaki/sorcery)**: Dark magic delights in Python. Uses `executing` to let special callables called spells know where they're being called from.
- **[`IPython`](https://github.com/ipython/ipython/pull/12150)**: Highlights the executing node in tracebacks using `executing` via [`stack_data`](https://github.com/alexmojaki/stack_data).
- **[`icecream`](https://github.com/gruns/icecream)**: 🍦 Sweet and creamy print debugging. Uses `executing` to identify where `ic` is called and print its arguments.
- **[`friendly_traceback`](https://github.com/friendly-traceback/friendly-traceback)**: Uses `stack_data` and `executing` to pinpoint the cause of errors and provide helpful explanations.
- **[`python-devtools`](https://github.com/samuelcolvin/python-devtools)**: Uses `executing` for print debugging similar to `icecream`.
- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events.
- **[`varname`](https://github.com/pwwang/python-varname)**: Dark magics about variable names in python. Uses `executing` to find where its various magical functions like `varname` and `nameof` are called from.https://github.com/alexmojaki/executingMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6a865ba1-ab63-488a-ba91-0ac32c990f12python-executing-1.2.0-1.src.rpmpython-executing-helpnoarch7c658d682d51e59f2b3630a809b0cd478dd9d9caa3ade52fb97b4991b4ffb015Development documents and examples for executing
[![Build Status](https://github.com/alexmojaki/executing/workflows/Tests/badge.svg?branch=master)](https://github.com/alexmojaki/executing/actions) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/executing/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/executing?branch=master) [![Supports Python versions 2.7 and 3.5+, including PyPy](https://img.shields.io/pypi/pyversions/executing.svg)](https://pypi.python.org/pypi/executing)
This mini-package lets you get information about what a frame is currently doing, particularly the AST node being executed.
* [Usage](#usage)
* [Getting the AST node](#getting-the-ast-node)
* [Getting the source code of the node](#getting-the-source-code-of-the-node)
* [Getting the `__qualname__` of the current function](#getting-the-__qualname__-of-the-current-function)
* [The Source class](#the-source-class)
* [Installation](#installation)
* [How does it work?](#how-does-it-work)
* [Is it reliable?](#is-it-reliable)
* [Which nodes can it identify?](#which-nodes-can-it-identify)
* [Libraries that use this](#libraries-that-use-this)
```python
import executing
node = executing.Source.executing(frame).node
```
Then `node` will be an AST node (from the `ast` standard library module) or None if the node couldn't be identified (which may happen often and should always be checked).
`node` will always be the same instance for multiple calls with frames at the same point of execution.
If you have a traceback object, pass it directly to `Source.executing()` rather than the `tb_frame` attribute to get the correct node.
For this you will need to separately install the [`asttokens`](https://github.com/gristlabs/asttokens) library, then obtain an `ASTTokens` object:
```python
executing.Source.executing(frame).source.asttokens()
```
or:
```python
executing.Source.for_frame(frame).asttokens()
```
or use one of the convenience methods:
```python
executing.Source.executing(frame).text()
executing.Source.executing(frame).text_range()
```
```python
executing.Source.executing(frame).code_qualname()
```
or:
```python
executing.Source.for_frame(frame).code_qualname(frame.f_code)
```
Everything goes through the `Source` class. Only one instance of the class is created for each filename. Subclassing it to add more attributes on creation or methods is recommended. The classmethods such as `executing` will respect this. See the source code and docstrings for more detail.
pip install executing
If you don't like that you can just copy the file `executing.py`, there are no dependencies (but of course you won't get updates).
Suppose the frame is executing this line:
```python
self.foo(bar.x)
```
and in particular it's currently obtaining the attribute `self.foo`. Looking at the bytecode, specifically `frame.f_code.co_code[frame.f_lasti]`, we can tell that it's loading an attribute, but it's not obvious which one. We can narrow down the statement being executed using `frame.f_lineno` and find the two `ast.Attribute` nodes representing `self.foo` and `bar.x`. How do we find out which one it is, without recreating the entire compiler in Python?
The trick is to modify the AST slightly for each candidate expression and observe the changes in the bytecode instructions. We change the AST to this:
```python
(self.foo ** 'longuniqueconstant')(bar.x)
```
and compile it, and the bytecode will be almost the same but there will be two new instructions:
LOAD_CONST 'longuniqueconstant'
BINARY_POWER
and just before that will be a `LOAD_ATTR` instruction corresponding to `self.foo`. Seeing that it's in the same position as the original instruction lets us know we've found our match.
Yes - if it identifies a node, you can trust that it's identified the correct one. The tests are very thorough - in addition to unit tests which check various situations directly, there are property tests against a large number of files (see the filenames printed in [this build](https://travis-ci.org/alexmojaki/executing/jobs/557970457)) with real code. Specifically, for each file, the tests:
1. Identify as many nodes as possible from all the bytecode instructions in the file, and assert that they are all distinct
2. Find all the nodes that should be identifiable, and assert that they were indeed identified somewhere
In other words, it shows that there is a one-to-one mapping between the nodes and the instructions that can be handled. This leaves very little room for a bug to creep in.
Furthermore, `executing` checks that the instructions compiled from the modified AST exactly match the original code save for a few small known exceptions. This accounts for all the quirks and optimisations in the interpreter.
Currently it works in almost all cases for the following `ast` nodes:
- `Call`, e.g. `self.foo(bar)`
- `Attribute`, e.g. `point.x`
- `Subscript`, e.g. `lst[1]`
- `BinOp`, e.g. `x + y` (doesn't include `and` and `or`)
- `UnaryOp`, e.g. `-n` (includes `not` but only works sometimes)
- `Compare` e.g. `a < b` (not for chains such as `0 < p < 1`)
The plan is to extend to more operations in the future.
- **[`stack_data`](https://github.com/alexmojaki/stack_data)**: Extracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default. Also uses another related library of mine: **[`pure_eval`](https://github.com/alexmojaki/pure_eval)**.
- **[`futurecoder`](https://futurecoder.io/)**: Highlights the executing node in tracebacks using `executing` via `stack_data`, and provides debugging with `snoop`.
- **[`snoop`](https://github.com/alexmojaki/snoop)**: A feature-rich and convenient debugging library. Uses `executing` to show the operation which caused an exception and to allow the `pp` function to display the source of its arguments.
- **[`heartrate`](https://github.com/alexmojaki/heartrate)**: A simple real time visualisation of the execution of a Python program. Uses `executing` to highlight currently executing operations, particularly in each frame of the stack trace.
- **[`sorcery`](https://github.com/alexmojaki/sorcery)**: Dark magic delights in Python. Uses `executing` to let special callables called spells know where they're being called from.
- **[`IPython`](https://github.com/ipython/ipython/pull/12150)**: Highlights the executing node in tracebacks using `executing` via [`stack_data`](https://github.com/alexmojaki/stack_data).
- **[`icecream`](https://github.com/gruns/icecream)**: 🍦 Sweet and creamy print debugging. Uses `executing` to identify where `ic` is called and print its arguments.
- **[`friendly_traceback`](https://github.com/friendly-traceback/friendly-traceback)**: Uses `stack_data` and `executing` to pinpoint the cause of errors and provide helpful explanations.
- **[`python-devtools`](https://github.com/samuelcolvin/python-devtools)**: Uses `executing` for print debugging similar to `icecream`.
- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events.
- **[`varname`](https://github.com/pwwang/python-varname)**: Dark magics about variable names in python. Uses `executing` to find where its various magical functions like `varname` and `nameof` are called from.https://github.com/alexmojaki/executingMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-7f89dd53-1914-46db-8e99-c102482a6f62python-executing-1.2.0-1.src.rpmpython-executing-helpnoarch88e11a94b5a5f448e97b86f97f8b4d909fe7178a980eb64dbcff99f118f51b56Development documents and examples for executing
[![Build Status](https://github.com/alexmojaki/executing/workflows/Tests/badge.svg?branch=master)](https://github.com/alexmojaki/executing/actions) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/executing/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/executing?branch=master) [![Supports Python versions 2.7 and 3.5+, including PyPy](https://img.shields.io/pypi/pyversions/executing.svg)](https://pypi.python.org/pypi/executing)
This mini-package lets you get information about what a frame is currently doing, particularly the AST node being executed.
* [Usage](#usage)
* [Getting the AST node](#getting-the-ast-node)
* [Getting the source code of the node](#getting-the-source-code-of-the-node)
* [Getting the `__qualname__` of the current function](#getting-the-__qualname__-of-the-current-function)
* [The Source class](#the-source-class)
* [Installation](#installation)
* [How does it work?](#how-does-it-work)
* [Is it reliable?](#is-it-reliable)
* [Which nodes can it identify?](#which-nodes-can-it-identify)
* [Libraries that use this](#libraries-that-use-this)
```python
import executing
node = executing.Source.executing(frame).node
```
Then `node` will be an AST node (from the `ast` standard library module) or None if the node couldn't be identified (which may happen often and should always be checked).
`node` will always be the same instance for multiple calls with frames at the same point of execution.
If you have a traceback object, pass it directly to `Source.executing()` rather than the `tb_frame` attribute to get the correct node.
For this you will need to separately install the [`asttokens`](https://github.com/gristlabs/asttokens) library, then obtain an `ASTTokens` object:
```python
executing.Source.executing(frame).source.asttokens()
```
or:
```python
executing.Source.for_frame(frame).asttokens()
```
or use one of the convenience methods:
```python
executing.Source.executing(frame).text()
executing.Source.executing(frame).text_range()
```
```python
executing.Source.executing(frame).code_qualname()
```
or:
```python
executing.Source.for_frame(frame).code_qualname(frame.f_code)
```
Everything goes through the `Source` class. Only one instance of the class is created for each filename. Subclassing it to add more attributes on creation or methods is recommended. The classmethods such as `executing` will respect this. See the source code and docstrings for more detail.
pip install executing
If you don't like that you can just copy the file `executing.py`, there are no dependencies (but of course you won't get updates).
Suppose the frame is executing this line:
```python
self.foo(bar.x)
```
and in particular it's currently obtaining the attribute `self.foo`. Looking at the bytecode, specifically `frame.f_code.co_code[frame.f_lasti]`, we can tell that it's loading an attribute, but it's not obvious which one. We can narrow down the statement being executed using `frame.f_lineno` and find the two `ast.Attribute` nodes representing `self.foo` and `bar.x`. How do we find out which one it is, without recreating the entire compiler in Python?
The trick is to modify the AST slightly for each candidate expression and observe the changes in the bytecode instructions. We change the AST to this:
```python
(self.foo ** 'longuniqueconstant')(bar.x)
```
and compile it, and the bytecode will be almost the same but there will be two new instructions:
LOAD_CONST 'longuniqueconstant'
BINARY_POWER
and just before that will be a `LOAD_ATTR` instruction corresponding to `self.foo`. Seeing that it's in the same position as the original instruction lets us know we've found our match.
Yes - if it identifies a node, you can trust that it's identified the correct one. The tests are very thorough - in addition to unit tests which check various situations directly, there are property tests against a large number of files (see the filenames printed in [this build](https://travis-ci.org/alexmojaki/executing/jobs/557970457)) with real code. Specifically, for each file, the tests:
1. Identify as many nodes as possible from all the bytecode instructions in the file, and assert that they are all distinct
2. Find all the nodes that should be identifiable, and assert that they were indeed identified somewhere
In other words, it shows that there is a one-to-one mapping between the nodes and the instructions that can be handled. This leaves very little room for a bug to creep in.
Furthermore, `executing` checks that the instructions compiled from the modified AST exactly match the original code save for a few small known exceptions. This accounts for all the quirks and optimisations in the interpreter.
Currently it works in almost all cases for the following `ast` nodes:
- `Call`, e.g. `self.foo(bar)`
- `Attribute`, e.g. `point.x`
- `Subscript`, e.g. `lst[1]`
- `BinOp`, e.g. `x + y` (doesn't include `and` and `or`)
- `UnaryOp`, e.g. `-n` (includes `not` but only works sometimes)
- `Compare` e.g. `a < b` (not for chains such as `0 < p < 1`)
The plan is to extend to more operations in the future.
- **[`stack_data`](https://github.com/alexmojaki/stack_data)**: Extracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default. Also uses another related library of mine: **[`pure_eval`](https://github.com/alexmojaki/pure_eval)**.
- **[`futurecoder`](https://futurecoder.io/)**: Highlights the executing node in tracebacks using `executing` via `stack_data`, and provides debugging with `snoop`.
- **[`snoop`](https://github.com/alexmojaki/snoop)**: A feature-rich and convenient debugging library. Uses `executing` to show the operation which caused an exception and to allow the `pp` function to display the source of its arguments.
- **[`heartrate`](https://github.com/alexmojaki/heartrate)**: A simple real time visualisation of the execution of a Python program. Uses `executing` to highlight currently executing operations, particularly in each frame of the stack trace.
- **[`sorcery`](https://github.com/alexmojaki/sorcery)**: Dark magic delights in Python. Uses `executing` to let special callables called spells know where they're being called from.
- **[`IPython`](https://github.com/ipython/ipython/pull/12150)**: Highlights the executing node in tracebacks using `executing` via [`stack_data`](https://github.com/alexmojaki/stack_data).
- **[`icecream`](https://github.com/gruns/icecream)**: 🍦 Sweet and creamy print debugging. Uses `executing` to identify where `ic` is called and print its arguments.
- **[`friendly_traceback`](https://github.com/friendly-traceback/friendly-traceback)**: Uses `stack_data` and `executing` to pinpoint the cause of errors and provide helpful explanations.
- **[`python-devtools`](https://github.com/samuelcolvin/python-devtools)**: Uses `executing` for print debugging similar to `icecream`.
- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events.
- **[`varname`](https://github.com/pwwang/python-varname)**: Dark magics about variable names in python. Uses `executing` to find where its various magical functions like `varname` and `nameof` are called from.https://github.com/alexmojaki/executingMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3ce627ae-b694-49b8-ae2e-db33c972eaa1python-executing-1.2.0-1.src.rpmpython-flask-whoosheesrcdccd63bb325a020b2affb69da5785afd4e14f1c2cc0576242e7177adfef34547Flask-SQLAlchemy - Whoosh IntegrationCustomizable Flask - SQLAlchemy - Whoosh integrationhttps://github.com/bkabrda/flask-whoosheeBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d1e783fe-e081-4dd5-ac73-c73d10d50cbbpython-flask-whooshee-helpnoarch32879c2b071997323809f072892b52f18d12d44b24e52f2c72042962b0e6548bDevelopment documents and examples for flask-whoosheeCustomizable Flask - SQLAlchemy - Whoosh integrationhttps://github.com/bkabrda/flask-whoosheeBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d1e783fe-e081-4dd5-ac73-c73d10d50cbbpython-flask-whooshee-0.8.2-1.src.rpmpython-html2textsrc2b3e03f4d43b76e9a69c4a1d85f5a81777086c78f602bf52b6b15107f2ac99c8Turn HTML into equivalent Markdown-structured text.Convert HTML to Markdown-formatted text.https://github.com/Alir3z4/html2text/GPL-3.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-372ca4f5-56ac-44c1-a876-f2a271a8c050python-html2text-helpnoarchc6e93745bc08278be261723f8bfda4442a816aa2f224e74a81622fe5cb1e81d0Development documents and examples for html2textConvert HTML to Markdown-formatted text.https://github.com/Alir3z4/html2text/GPL-3.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-372ca4f5-56ac-44c1-a876-f2a271a8c050python-html2text-2020.1.16-1.src.rpmpython-html5-parsersrcedff36a2325d856fd3c025ce8189ffb26b5597ceccd34d1d2effb42927200c84A fast, standards compliant, C based, HTML 5 parser for pythonA fast, standards compliant, C based, HTML 5 parser for pythonhttps://pypi.python.org/pypi/html5-parserASL 2.0 and MITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-53192bba-8f00-42e9-977d-0d0870131779python-html5-parsersrc54549243228bdab5f00b30a919fb849a3b92891dcaaf8d1cbfc0bc637c1a4c45Fast C based HTML 5 parsing for pythonhttps://html5-parser.readthedocs.ioApache 2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-7efe67b9-e03f-410b-a16a-d3a9e79735cbpython-html5-parser-debuginfox86_64bf8cabd2e3ce2827373d1a8f4aac67d7276036d61505fd5ed30f4c811da2490dDebug information for package python-html5-parserThis package provides debug information for package python-html5-parser.
Debug information is useful when developing applications that use this
package or when debugging this package.https://pypi.python.org/pypi/html5-parserASL 2.0 and MITopenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-53192bba-8f00-42e9-977d-0d0870131779python-html5-parser-0.4.10-1.src.rpmpython-html5-parser-debugsourcex86_642db010396b9b9e2f694263c8e77ba838c2e5cfc5bd716cc5045d58c52b6be464Debug sources for package python-html5-parserThis package provides debug sources for package python-html5-parser.
Debug sources are useful when developing applications that use this
package or when debugging this package.https://pypi.python.org/pypi/html5-parserASL 2.0 and MITopenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-53192bba-8f00-42e9-977d-0d0870131779python-html5-parser-0.4.10-1.src.rpmpython-ipdbsrccf93b9488e24ae7de0f858e1bcd0c83060adbe43020a9387527888ab5a61009fIPython-enabled pdbhttps://github.com/gotcha/ipdbBSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6a63f5bb-47c9-4416-8492-f19492a67c7epython-ipdb-helpnoarchd741c7b1b3917a0f1b1683966fcada1a413f539c0e9e766f929a17d31c0acfc8Development documents and examples for ipdbhttps://github.com/gotcha/ipdbBSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6a63f5bb-47c9-4416-8492-f19492a67c7epython-ipdb-0.13.13-1.src.rpmpython-ipythonsrce48053c6007530c53dbe620eefe7768275933fe05649608658c02bfc555f3787IPython: Productive Interactive ComputingIPython provides a rich toolkit to help you make the most out of using Python
interactively. Its main components are:
* A powerful interactive Python shell
* A `Jupyter <https://jupyter.org/>`_ kernel to work with Python code in Jupyter
notebooks and other interactive frontends.
The enhanced interactive Python shells have the following main features:
* Comprehensive object introspection.
* Input history, persistent across sessions.
* Caching of output results during a session with automatically generated
references.
* Extensible tab completion, with support by default for completion of python
variables and keywords, filenames and function keywords.
* Extensible system of 'magic' commands for controlling the environment and
performing many tasks related either to IPython or the operating system.
* A rich configuration system with easy switching between different setups
(simpler than changing $PYTHONSTARTUP environment variables every time).
* Session logging and reloading.
* Extensible syntax processing for special purpose situations.
* Access to the system shell with user-extensible alias system.
* Easily embeddable in other Python programs and GUIs.
* Integrated access to the pdb debugger and the Python profiler.
The latest development version is always available from IPython's `GitHub
site <http://github.com/ipython>`_.https://ipython.orgBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-08b7f7a3-e21b-4e5b-92d2-681d7a954ce9python-ipythonsrc26f26298e1925feb5e3704faa885a59874bcd9515a89cb983a9c97fc88e97ffaIPython: Productive Interactive ComputingIPython provides a rich toolkit to help you make the most out of using Python
interactively. Its main components are:
* A powerful interactive Python shell
* A `Jupyter <https://jupyter.org/>`_ kernel to work with Python code in Jupyter
notebooks and other interactive frontends.
The enhanced interactive Python shells have the following main features:
* Comprehensive object introspection.
* Input history, persistent across sessions.
* Caching of output results during a session with automatically generated
references.
* Extensible tab completion, with support by default for completion of python
variables and keywords, filenames and function keywords.
* Extensible system of 'magic' commands for controlling the environment and
performing many tasks related either to IPython or the operating system.
* A rich configuration system with easy switching between different setups
(simpler than changing $PYTHONSTARTUP environment variables every time).
* Session logging and reloading.
* Extensible syntax processing for special purpose situations.
* Access to the system shell with user-extensible alias system.
* Easily embeddable in other Python programs and GUIs.
* Integrated access to the pdb debugger and the Python profiler.
The latest development version is always available from IPython's `GitHub
site <http://github.com/ipython>`_.https://ipython.orgBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f8141126-c2ac-41d0-8c79-cfac4dc75165python-ipython-helpnoarchb770b3b37f6e9e00b41bc7354e12834cc3a12e87b33af57412410dd00be90dceDevelopment documents and examples for ipythonIPython provides a rich toolkit to help you make the most out of using Python
interactively. Its main components are:
* A powerful interactive Python shell
* A `Jupyter <https://jupyter.org/>`_ kernel to work with Python code in Jupyter
notebooks and other interactive frontends.
The enhanced interactive Python shells have the following main features:
* Comprehensive object introspection.
* Input history, persistent across sessions.
* Caching of output results during a session with automatically generated
references.
* Extensible tab completion, with support by default for completion of python
variables and keywords, filenames and function keywords.
* Extensible system of 'magic' commands for controlling the environment and
performing many tasks related either to IPython or the operating system.
* A rich configuration system with easy switching between different setups
(simpler than changing $PYTHONSTARTUP environment variables every time).
* Session logging and reloading.
* Extensible syntax processing for special purpose situations.
* Access to the system shell with user-extensible alias system.
* Easily embeddable in other Python programs and GUIs.
* Integrated access to the pdb debugger and the Python profiler.
The latest development version is always available from IPython's `GitHub
site <http://github.com/ipython>`_.https://ipython.orgBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-08b7f7a3-e21b-4e5b-92d2-681d7a954ce9python-ipython-8.14.0-1.src.rpmpython-ipython-helpnoarch7fe99a23279d9a8ee65e5dc967445d4b2c42da6b8063a6d25027345a2e9359c7Development documents and examples for ipythonIPython provides a rich toolkit to help you make the most out of using Python
interactively. Its main components are:
* A powerful interactive Python shell
* A `Jupyter <https://jupyter.org/>`_ kernel to work with Python code in Jupyter
notebooks and other interactive frontends.
The enhanced interactive Python shells have the following main features:
* Comprehensive object introspection.
* Input history, persistent across sessions.
* Caching of output results during a session with automatically generated
references.
* Extensible tab completion, with support by default for completion of python
variables and keywords, filenames and function keywords.
* Extensible system of 'magic' commands for controlling the environment and
performing many tasks related either to IPython or the operating system.
* A rich configuration system with easy switching between different setups
(simpler than changing $PYTHONSTARTUP environment variables every time).
* Session logging and reloading.
* Extensible syntax processing for special purpose situations.
* Access to the system shell with user-extensible alias system.
* Easily embeddable in other Python programs and GUIs.
* Integrated access to the pdb debugger and the Python profiler.
The latest development version is always available from IPython's `GitHub
site <http://github.com/ipython>`_.https://ipython.orgBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f8141126-c2ac-41d0-8c79-cfac4dc75165python-ipython-8.14.0-1.src.rpmpython-jedisrc05dfbf29901b6e0b1c10f6200967001ac51896225037debee8c95794c915c7e1A static analysis tool for Python that is typically used in IDEs/editors pluginsJedi is a static analysis tool for Python that is typically used in IDEs/editors plugins.
It has a focus on autocompletion and goto functionality.
Other features include refactoring, code search and finding references.https://github.com/davidhalter/jediMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-32a83284-4dc4-4a2a-b759-49f738ffca62python-jedisrc067fb76990d2680010fb01c6b7ecb48315c5a9ba0640e53713ab6cb2b687a7ddA static analysis tool for Python that is typically used in IDEs/editors pluginsJedi is a static analysis tool for Python that is typically used in IDEs/editors plugins.
It has a focus on autocompletion and goto functionality.
Other features include refactoring, code search and finding references.https://github.com/davidhalter/jediMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f9f566bf-d337-4c7b-b6b9-deb8297566dfpython-jedi-helpnoarch8a64ccffba8349d20d5c3ddf4742bbd92e84bcb2259e43b9a0706bdee407c4d6Development documents and examples for jediJedi is a static analysis tool for Python that is typically used in IDEs/editors plugins.
It has a focus on autocompletion and goto functionality.
Other features include refactoring, code search and finding references.https://github.com/davidhalter/jediMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f9f566bf-d337-4c7b-b6b9-deb8297566dfpython-jedi-0.18.1-1.src.rpmpython-keystoneauth1srcb06d32d8a573d8a291cc2be456f2c7166c79291cd549f4d35bcaeed622a87747Authentication Library for OpenStack IdentityKeystoneauth provides a standard way to do authentication and service requests \
within the OpenStack ecosystem. It is designed for use in conjunction with \
the existing OpenStack clients and for simplifying the process of writing \
new clients.https://docs.openstack.org/keystoneauth/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f5f266a8-3331-49b0-930f-58ca2d0be851python-keystoneauth1src6a353a00ebe9a8673d50a3e10746ad7e24596638718670afd880fa75fe428e9fAuthentication Library for OpenStack IdentityKeystoneauth provides a standard way to do authentication and service requests \
within the OpenStack ecosystem. It is designed for use in conjunction with \
the existing OpenStack clients and for simplifying the process of writing \
new clients.https://docs.openstack.org/keystoneauth/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-302859f6-6ca6-4b92-b1ab-1b6ef212ae74python-keystoneauth1-helpnoarche5b21c784605cd7a932fea1c8e554f09e67037e6bcdba3aa9c94f485ad06bbf7Development documents and examples for keystoneauth1Keystoneauth provides a standard way to do authentication and service requests \
within the OpenStack ecosystem. It is designed for use in conjunction with \
the existing OpenStack clients and for simplifying the process of writing \
new clients.https://docs.openstack.org/keystoneauth/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-302859f6-6ca6-4b92-b1ab-1b6ef212ae74python-keystoneauth1-5.1.0-1.src.rpmpython-littleutilssrca813d1353874e84ddec723782e419c0d14a3e68c4a24311b2d37e82138dc2956Small collection of Python utilitiesSmall collection of Python utilities.https://pypi.org/pypi/littleutilsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-39d7a377-28fe-48e5-bd1d-33b167eb137epython-matplotlib-inlinesrc5c2a5e17b25f202fdaab13c40701a676b7a932ec53dee6293f93fed5f6f6e00eInline Matplotlib backend for Jupyter
This package provides support for matplotlib to display figures directly inline in the Jupyter notebook and related clients, as shown below.
With conda:
```bash
conda install -c conda-forge matplotlib-inline
```
With pip:
```bash
pip install matplotlib-inline
```
Note that in current versions of JupyterLab and Jupyter Notebook, the explicit use of the `%matplotlib inline` directive is not needed anymore, though other third-party clients may still require it.
This will produce a figure immediately below:
```python
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 3*np.pi, 500)
plt.plot(x, np.sin(x**2))
plt.title('A simple chirp');
```
Licensed under the terms of the BSD 3-Clause License, by the IPython Development Team (see `LICENSE` file).
BSD 3-Clause License
Copyright (c) 2019-2022, IPython Development Team.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.https://github.com/ipython/matplotlib-inlineBSD 3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b3927d3b-3e30-4dcc-843b-bb9c300d3a76python-matplotlib-inlinesrcf926e653f2b527444334c9a9417cc59a2135e40de220d7d070f26a60e6823c7aInline Matplotlib backend for Jupyter
This package provides support for matplotlib to display figures directly inline in the Jupyter notebook and related clients, as shown below.
With conda:
```bash
conda install -c conda-forge matplotlib-inline
```
With pip:
```bash
pip install matplotlib-inline
```
Note that in current versions of JupyterLab and Jupyter Notebook, the explicit use of the `%matplotlib inline` directive is not needed anymore, though other third-party clients may still require it.
This will produce a figure immediately below:
```python
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 3*np.pi, 500)
plt.plot(x, np.sin(x**2))
plt.title('A simple chirp');
```
Licensed under the terms of the BSD 3-Clause License, by the IPython Development Team (see `LICENSE` file).
BSD 3-Clause License
Copyright (c) 2019-2022, IPython Development Team.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.https://github.com/ipython/matplotlib-inlineBSD 3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-2e8a70e9-89c7-4386-bd07-d189d4e8956fpython-matplotlib-inline-helpnoarch0366e03f85334f06455d20686f7d44776db09272e4495599675c972277273976Development documents and examples for matplotlib-inline
This package provides support for matplotlib to display figures directly inline in the Jupyter notebook and related clients, as shown below.
With conda:
```bash
conda install -c conda-forge matplotlib-inline
```
With pip:
```bash
pip install matplotlib-inline
```
Note that in current versions of JupyterLab and Jupyter Notebook, the explicit use of the `%matplotlib inline` directive is not needed anymore, though other third-party clients may still require it.
This will produce a figure immediately below:
```python
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 3*np.pi, 500)
plt.plot(x, np.sin(x**2))
plt.title('A simple chirp');
```
Licensed under the terms of the BSD 3-Clause License, by the IPython Development Team (see `LICENSE` file).
BSD 3-Clause License
Copyright (c) 2019-2022, IPython Development Team.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.https://github.com/ipython/matplotlib-inlineBSD 3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b3927d3b-3e30-4dcc-843b-bb9c300d3a76python-matplotlib-inline-0.1.6-1.src.rpmpython-matplotlib-inline-helpnoarch179e406efb2ef96c98342ca7021c590b966e1ac87a6d3eda311b5437609f4136Development documents and examples for matplotlib-inline
This package provides support for matplotlib to display figures directly inline in the Jupyter notebook and related clients, as shown below.
With conda:
```bash
conda install -c conda-forge matplotlib-inline
```
With pip:
```bash
pip install matplotlib-inline
```
Note that in current versions of JupyterLab and Jupyter Notebook, the explicit use of the `%matplotlib inline` directive is not needed anymore, though other third-party clients may still require it.
This will produce a figure immediately below:
```python
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 3*np.pi, 500)
plt.plot(x, np.sin(x**2))
plt.title('A simple chirp');
```
Licensed under the terms of the BSD 3-Clause License, by the IPython Development Team (see `LICENSE` file).
BSD 3-Clause License
Copyright (c) 2019-2022, IPython Development Team.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.https://github.com/ipython/matplotlib-inlineBSD 3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-2e8a70e9-89c7-4386-bd07-d189d4e8956fpython-matplotlib-inline-0.1.6-1.src.rpmpython-novaclientsrc3bdc15396342b3aabe4635dc34affe846f59aa536f07a12230b9f5af12345f0fClient library for OpenStack Compute APIThis is a client for the OpenStack Nova API. There's a Python API (the
novaclient module), and a command-line script (nova). Each implements 100% of
the OpenStack Nova API.https://docs.openstack.org/python-novaclient/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-4ab14391-e97f-4cfd-9c07-1e7e9c2f2f19python-novaclientsrcea1e69ebb5afe6694a6446c0660b5ad92b09f1ef34f70a833439c7c626d6946cClient library for OpenStack Compute APIThis is a client for the OpenStack Nova API. There's a Python API (the
novaclient module), and a command-line script (nova). Each implements 100% of
the OpenStack Nova API.https://docs.openstack.org/python-novaclient/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-ba3d0a38-7ee2-4e04-a364-69c48187fe63python-novaclient-helpnoarch7d1716d330ec70b02b843d400abf47af067f09c2e23d272eb1eea49299065a44Client library for OpenStack Compute APIThis is a client for the OpenStack Nova API. There's a Python API (the
novaclient module), and a command-line script (nova). Each implements 100% of
the OpenStack Nova API.https://docs.openstack.org/python-novaclient/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-ba3d0a38-7ee2-4e04-a364-69c48187fe63python-novaclient-17.7.0-1.src.rpmpython-openid-teamssrc69c50261c4f70266be200d4f93327e750cc35ec55e71c06d1d8f4d771011da52This is an implementation of the OpenID teams extension for python-openidUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-cb3e972e-ff22-4b62-ab63-9fd62a8a7d10python-openid-teamssrcea3d89aeb6ad3941cc1e195c70f7f93b374de007c7acb3de0dd5e2e6a78b1278This is an implementation of the OpenID teams extension for python-openidUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-856d034a-815e-4497-afec-cc2922669d67python-openid-teamssrc3185f29d9a37d9c082501229e8bc8bcaae0ac55cd1c92cf18dff9cd553a38b3fThis is an implementation of the OpenID teams extension for python-openidUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-eb977f11-84ea-45fd-ab36-da0573ed08a7python-openid-teamssrc5271d7c699f83c327f597d062b773e0d71a59d1ba35731f13c53110dbc1df319This is an implementation of the OpenID teams extension for python-openidUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b4ec749d-be76-4dc1-9b63-80bbc0d543b6python-openid-teamssrcbfa695c10d07ed128d91fd6d705f96f13aaf65ed2947ac889d2ca1cf8042da1bThis is an implementation of the OpenID teams extension for python-openidUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3e703c96-b788-4b47-8e8c-6ba6b7c9568cpython-openid-teams-helpnoarch22a34c6dc1c60b3bf01a3d507a699ad84855012b9ccad34fc6100df4b6296e2fDevelopment documents and examples for python-openid-teamsUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-cb3e972e-ff22-4b62-ab63-9fd62a8a7d10python-openid-teams-1.1-1.src.rpmpython-openid-teams-helpnoarcha81e0be03fde19cca98bd992e91e73d6549f1b28d9a3579af83426d2349adb71Development documents and examples for python-openid-teamsUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-856d034a-815e-4497-afec-cc2922669d67python-openid-teams-1.1-1.src.rpmpython-openid-teams-helpnoarch85a8157414e8084175b356073b66c50f619186a75cfa62a4354eee070e0ede35Development documents and examples for python-openid-teamsUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-eb977f11-84ea-45fd-ab36-da0573ed08a7python-openid-teams-1.1-1.src.rpmpython-openid-teams-helpnoarch6ec94fb5389351734b873d1fc161b7ab010bd65975ff3e5b7c41f928bea93becDevelopment documents and examples for python-openid-teamsUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b4ec749d-be76-4dc1-9b63-80bbc0d543b6python-openid-teams-1.1-2.src.rpmpython-openid-teams-helpnoarch4667c0a6bce9b846bd965c8a3ba36b9c10b0fdcb4b047228d8c0f76a34098755Development documents and examples for python-openid-teamsUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3e703c96-b788-4b47-8e8c-6ba6b7c9568cpython-openid-teams-1.1-2.src.rpmpython-openidc-clientsrc4f4d4459f2552e13257f32d5e4354fb21c91b7070813a2eacee0d47fb17efa0dPython OpenID Connect client with token caching and managementPython OpenID Connect client with token caching and management.MITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-68f4a1a0-724c-40fa-9e35-d8e5e87ce66epython-os-service-typessrcfc90f43b111ca1711fdd8f24e139fdf6f5ec95187551c49f0451ae33f25d81dcPython library for consuming OpenStack sevice-types-authority dataPython library for consuming OpenStack sevice-types-authority datahttps://pypi.org/project/os-service-types/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-0d8aa98c-5a04-4684-8c17-34e8722df6d8python-os-service-types-helpnoarchc6df4e356c7390137714691e940e578afe3ff0f647af207a6989e0783b92f6fdDevelopment documents and examples for os-service-typeshttps://pypi.org/project/os-service-types/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-0d8aa98c-5a04-4684-8c17-34e8722df6d8python-os-service-types-1.7.0-2.src.rpmpython-oslo-concurrencysrce313d596302c48e92fb1b5233ea16aa20a7f34461c4e911d1e993d5cbaed48cfOslo Concurrency libraryOpenStack library for all concurrency-related codehttps://docs.openstack.org/oslo.concurrency/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-344da169-3f6d-44cf-bb63-ac93ea1a25b1python-oslo-concurrencysrcfe9155fac928580ec31a93f718b490ee9e752dfb82e3b001586765e9d8158f9eOslo Concurrency libraryOpenStack library for all concurrency-related codehttps://docs.openstack.org/oslo.concurrency/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-183ce2d2-c1de-41e3-b82a-898372b06a36python-oslo-concurrencysrcbc739405f3b8e31580f9bb6e002c52609421271c231289cc1a719d7770234d8bOslo Concurrency libraryOpenStack library for all concurrency-related codehttps://docs.openstack.org/oslo.concurrency/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-55a5e51d-3410-473a-a888-4b19d41ae302python-oslo-concurrency-helpnoarch0e477fc4f1fd5a253cb9e2e0ddb468bca738061050a259c7da561b2f96abe99dOslo Concurrency libraryOpenStack library for all concurrency-related codehttps://docs.openstack.org/oslo.concurrency/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-344da169-3f6d-44cf-bb63-ac93ea1a25b1python-oslo-concurrency-4.5.0-1.src.rpmpython-oslo-concurrency-helpnoarche9ab550c84cef3f469c6a5bd1e561e244f3c47966d3f4fbf491629fbcf9944a1Oslo Concurrency libraryOpenStack library for all concurrency-related codehttps://docs.openstack.org/oslo.concurrency/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-55a5e51d-3410-473a-a888-4b19d41ae302python-oslo-concurrency-5.1.0-1.src.rpmpython-oslo-configsrcdd67aad1f51f653a0eb5bb5d3ff4fdd8d0e963438a813e99e6eec3f60203d7a8Oslo Configuration APIThe Oslo configuration API supports parsing command line arguments and .ini style configuration files.https://docs.openstack.org/oslo.config/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5936d92d-bf79-4b69-bfd4-764eb52ae0a1python-oslo-configsrc471555764fde4c628859342c44232d83386de990f3cdb9253ba3a7f67b0e5ebfOslo Configuration APIThe Oslo configuration API supports parsing command line arguments and .ini style configuration files.https://docs.openstack.org/oslo.config/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a3ed9fe0-3f03-4f82-955e-3779f7fff9bdpython-oslo-configsrcde4152a2ad32b0bb4b8113744cdec2972e3844c58a4e1fb2926ca65f21254e2cOslo Configuration APIThe Oslo configuration API supports parsing command line arguments and .ini style configuration files.https://docs.openstack.org/oslo.config/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f55fcb02-9726-44cf-9506-4d40b0a1549bpython-oslo-configsrca5e9b5fd0bc4e70f30cf46fcaf32ac87c196509970551e90a26ed56956d07854Oslo Configuration APIThe Oslo configuration API supports parsing command line arguments and .ini style configuration files.https://docs.openstack.org/oslo.config/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-01c01fb1-2ab8-4911-9535-7ceba9acf44dpython-oslo-config-helpnoarch9d7c7161e21ffb9a8942f6303e1b5f88b085d680a6fd17ee150993cc4b2cbed6Oslo Configuration APIThe Oslo configuration API supports parsing command line arguments and .ini style configuration files.https://docs.openstack.org/oslo.config/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a3ed9fe0-3f03-4f82-955e-3779f7fff9bdpython-oslo-config-9.0.0-1.src.rpmpython-oslo-config-helpnoarchfcae6be1907df7a47beb394b4502dce698f34076ec7f32c11ec9af72e053f85dOslo Configuration APIThe Oslo configuration API supports parsing command line arguments and .ini style configuration files.https://docs.openstack.org/oslo.config/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f55fcb02-9726-44cf-9506-4d40b0a1549bpython-oslo-config-9.0.0-1.src.rpmpython-oslo-config-helpnoarch39560ccaea8ba1a287fd23a18e937b05f206c29a134bf05af750589a8f7e0c9dOslo Configuration APIThe Oslo configuration API supports parsing command line arguments and .ini style configuration files.https://docs.openstack.org/oslo.config/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-01c01fb1-2ab8-4911-9535-7ceba9acf44dpython-oslo-config-9.0.0-1.src.rpmpython-oslo-i18nsrc80c3f540b6f6fb0b088ac5e659fc437ac57af06b27214be00a320d6c6c667528Oslo i18n libraryInternationalization and translation libraryhttps://docs.openstack.org/oslo.i18n/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-60612359-e0cf-4c6e-b057-da0f7a13dd50python-oslo-i18nsrc8ff7de6e1bc3cc508905197a170615c670f38223cc1d24b10f21ac77c7e8943fOslo i18n libraryInternationalization and translation libraryhttps://docs.openstack.org/oslo.i18n/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-579164a8-378f-4c92-af1a-e6ad69f40c2bpython-oslo-i18n-helpnoarch97c4c235ae6ee5eb0849151321ffeef8352ba439a96b451957098361210fc803Oslo i18n libraryInternationalization and translation libraryhttps://docs.openstack.org/oslo.i18n/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-60612359-e0cf-4c6e-b057-da0f7a13dd50python-oslo-i18n-5.1.0-1.src.rpmpython-oslo-i18n-helpnoarch01e0d1680ec5529e8997733a9d1f3b87ce3db92fdb13bfecb6fdd8c19fc7f5e1Oslo i18n libraryInternationalization and translation libraryhttps://docs.openstack.org/oslo.i18n/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-579164a8-378f-4c92-af1a-e6ad69f40c2bpython-oslo-i18n-5.1.0-1.src.rpmpython-oslo-serializationsrc49a39480e8d0cc83205543ada8a3c9be50a57bb1977208d0bf1184cff184fd1dOslo Serialization libraryThe oslo.serialization library provides support for representing objects in
transmittable and storable formats, such as Base64, JSON and MessagePack.https://docs.openstack.org/oslo.serialization/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6842813f-57f2-47d9-9341-1e43b858d904python-oslo-serializationsrc8ce5e6ce40656890fb4774094d7ac56b07c16ba163e66c88db00483764189e4cOslo Serialization libraryThe oslo.serialization library provides support for representing objects in
transmittable and storable formats, such as Base64, JSON and MessagePack.https://docs.openstack.org/oslo.serialization/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-1f4b46c6-dcc0-4458-94b8-48ef9f1fb3d7python-oslo-serialization-helpnoarch9f44ab0fe3c7b4dc849fcc2b07a03879e57b6b2aca47a2a828e66fe78d2336eaOslo Serialization libraryThe oslo.serialization library provides support for representing objects in
transmittable and storable formats, such as Base64, JSON and MessagePack.https://docs.openstack.org/oslo.serialization/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6842813f-57f2-47d9-9341-1e43b858d904python-oslo-serialization-4.3.0-1.src.rpmpython-oslo-serialization-helpnoarch0725e1a2419a92ead36624f19a33f60d8221688ae8d6482cbcfbbc02dc52b056Oslo Serialization libraryThe oslo.serialization library provides support for representing objects in
transmittable and storable formats, such as Base64, JSON and MessagePack.https://docs.openstack.org/oslo.serialization/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-1f4b46c6-dcc0-4458-94b8-48ef9f1fb3d7python-oslo-serialization-5.1.0-1.src.rpmpython-oslo-utilssrc8bddae221aa9e53d790fbfec0b950d062144ba625b7ccab479d8c663a1fcad64Oslo Utility libraryThe oslo.utils library provides support for common utility type functions,
such as encoding, exception handling, string manipulation, and time handling.https://docs.openstack.org/oslo.utils/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5cf33acc-8d04-4ed7-8303-f8594c6cef5fpython-oslo-utilssrc2d71f9c94a7a480cfea59225a82cf4d21a829494e087c3e25feefb41cd6de0ccOslo Utility libraryThe oslo.utils library provides support for common utility type functions,
such as encoding, exception handling, string manipulation, and time handling.https://docs.openstack.org/oslo.utils/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-ac3dd2ca-8eea-448f-869d-f1210d5d6945python-oslo-utilssrc305c8942a52914367199bf7c4d1835c9f2a3e88fbf647c6e4f8502258f803189Oslo Utility libraryThe oslo.utils library provides support for common utility type functions,
such as encoding, exception handling, string manipulation, and time handling.https://docs.openstack.org/oslo.utils/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-fc121184-ff18-4e66-b77c-bf68fc8a2eebpython-oslo-utils-helpnoarch1ccb0d1ea353c7f4442c9082ba5194b788007fbffb85c8e593ef26b91f41a550Oslo Utility libraryThe oslo.utils library provides support for common utility type functions,
such as encoding, exception handling, string manipulation, and time handling.https://docs.openstack.org/oslo.utils/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-ac3dd2ca-8eea-448f-869d-f1210d5d6945python-oslo-utils-4.12.3-1.src.rpmpython-oslo-utils-helpnoarch7d30956eb66b43b5a19f5f52343bcd268a31372984b0bd8700174d9a4f461fa4Oslo Utility libraryThe oslo.utils library provides support for common utility type functions,
such as encoding, exception handling, string manipulation, and time handling.https://docs.openstack.org/oslo.utils/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-fc121184-ff18-4e66-b77c-bf68fc8a2eebpython-oslo-utils-4.12.3-1.src.rpmpython-parsosrc0068f7d1b38455747388ee41da4d48cf1c58daab277ed0c665dadbefb542c08cA Python Parser- `Testing <https://parso.readthedocs.io/en/latest/docs/development.html#testing>`_
- `PyPI <https://pypi.python.org/pypi/parso>`_
- `Docs <https://parso.readthedocs.org/en/latest/>`_
- Uses `semantic versioning <https://semver.org/>`_https://github.com/davidhalter/parsoMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e9a7c180-c7e8-496e-a286-16bba46c926bpython-parsosrc282a41d5bf4335ca32989da25e5a4eae97ea08f4920dfaa55333905d44c4c112A Python ParserParso is a Python parser that supports error recovery and round-trip parsing
for different Python versions. Parso consists of a small API to parse Python
and analyse the syntax tree.https://github.com/davidhalter/parsoMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6d261977-d483-4d9c-bf0c-e4909f06ab2cpython-parso-helpnoarchaace238a793385195c0c9c8c4db0c0f60366ae853dd4b657271f6eff5059f681Development documents and examples for parso- `Testing <https://parso.readthedocs.io/en/latest/docs/development.html#testing>`_
- `PyPI <https://pypi.python.org/pypi/parso>`_
- `Docs <https://parso.readthedocs.org/en/latest/>`_
- Uses `semantic versioning <https://semver.org/>`_https://github.com/davidhalter/parsoMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e9a7c180-c7e8-496e-a286-16bba46c926bpython-parso-0.8.3-1.src.rpmpython-parso-helpnoarch2b6b6a256fa39e51cd68e1c670b8a9e0653c259bf1cc155f3ae7070996a330fdDevelopment documents and examples for parsoParso is a Python parser that supports error recovery and round-trip parsing
for different Python versions. Parso consists of a small API to parse Python
and analyse the syntax tree.https://github.com/davidhalter/parsoMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6d261977-d483-4d9c-bf0c-e4909f06ab2cpython-parso-0.8.3-1.src.rpmpython-picklesharesrc4411d9ff75afd30c36fc95960e1b8ff7c045e86a1b8da01c65fbe9c46e9bc3b3Tiny 'shelve'-like database with concurrency supportPickleShare - a small 'shelve' like datastore with concurrency support
Like shelve, a PickleShareDB object acts like a normal dictionary. Unlike shelve,
many processes can access the database simultaneously. Changing a value in
database is immediately visible to other processes accessing the same database.
Concurrency is possible because the values are stored in separate files. Hence
the "database" is a directory where *all* files are governed by PickleShare.
Example usage::
from pickleshare import *
db = PickleShareDB('~/testpickleshare')
db.clear()
print("Should be empty:",db.items())
db['hello'] = 15
db['aku ankka'] = [1,2,313]
db['paths/are/ok/key'] = [1,(5,46)]
print(db.keys())
This module is certainly not ZODB, but can be used for low-load
(non-mission-critical) situations where tiny code size trumps the
advanced features of a "real" object database.
Installation guide: pip install picklesharehttps://github.com/pickleshare/pickleshareMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d4fe1913-a967-41cb-9227-e9c749bc1699python-pickleshare-helpnoarch8bda7bcdf20540051664ccbca4eb4ea45ef26bed6c532e591be3771826cf537fDevelopment documents and examples for picklesharePickleShare - a small 'shelve' like datastore with concurrency support
Like shelve, a PickleShareDB object acts like a normal dictionary. Unlike shelve,
many processes can access the database simultaneously. Changing a value in
database is immediately visible to other processes accessing the same database.
Concurrency is possible because the values are stored in separate files. Hence
the "database" is a directory where *all* files are governed by PickleShare.
Example usage::
from pickleshare import *
db = PickleShareDB('~/testpickleshare')
db.clear()
print("Should be empty:",db.items())
db['hello'] = 15
db['aku ankka'] = [1,2,313]
db['paths/are/ok/key'] = [1,(5,46)]
print(db.keys())
This module is certainly not ZODB, but can be used for low-load
(non-mission-critical) situations where tiny code size trumps the
advanced features of a "real" object database.
Installation guide: pip install picklesharehttps://github.com/pickleshare/pickleshareMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d4fe1913-a967-41cb-9227-e9c749bc1699python-pickleshare-0.7.5-1.src.rpmpython-prompt-toolkitsrce92593806d1a9e451551337956b6285c67c4fd9de0b9912e5fd0165603c28b64Library for building powerful interactive command lines in Pythonprompt_toolkit is a library for building powerful interactive command lines and
terminal applications in Python.https://github.com/prompt-toolkit/python-prompt-toolkitBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5a106d13-8d06-418e-a342-693d1d1d6813python-prompt-toolkit-helpnoarchdb906757231f745a4ad8b3013792863e6d8a54b9d47c2b527d7dc1d09d1a03a2Development documents and examples for prompt-toolkitprompt_toolkit is a library for building powerful interactive command lines and
terminal applications in Python.https://github.com/prompt-toolkit/python-prompt-toolkitBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5a106d13-8d06-418e-a342-693d1d1d6813python-prompt-toolkit-3.0.38-1.src.rpmpython-pure-evalsrc3b0043afc01aea162e9ed3463776dad7ddfbc753f3b72d47ac9c2073a09ee8e6Safely evaluate AST nodes without side effects
[![Build Status](https://travis-ci.org/alexmojaki/pure_eval.svg?branch=master)](https://travis-ci.org/alexmojaki/pure_eval) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/pure_eval/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/pure_eval?branch=master) [![Supports Python versions 3.5+](https://img.shields.io/pypi/pyversions/pure_eval.svg)](https://pypi.python.org/pypi/pure_eval)
This is a Python package that lets you safely evaluate certain AST nodes without triggering arbitrary code that may have unwanted side effects.
It can be installed from PyPI:
pip install pure_eval
To demonstrate usage, suppose we have an object defined as follows:
```python
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
@property
def area(self):
print("Calculating area...")
return self.width * self.height
rect = Rectangle(3, 5)
```
Given the `rect` object, we want to evaluate whatever expressions we can in this source code:
```python
source = "(rect.width, rect.height, rect.area)"
```
This library works with the AST, so let's parse the source code and peek inside:
```python
import ast
tree = ast.parse(source)
the_tuple = tree.body[0].value
for node in the_tuple.elts:
print(ast.dump(node))
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='area', ctx=Load())
```
Now to actually use the library. First construct an Evaluator:
```python
from pure_eval import Evaluator
evaluator = Evaluator({"rect": rect})
```
The argument to `Evaluator` should be a mapping from variable names to their values. Or if you have access to the stack frame where `rect` is defined, you can instead use:
```python
evaluator = Evaluator.from_frame(frame)
```
Now to evaluate some nodes, using `evaluator[node]`:
```python
print("rect.width:", evaluator[the_tuple.elts[0]])
print("rect:", evaluator[the_tuple.elts[0].value])
```
Output:
```
rect.width: 3
rect: <__main__.Rectangle object at 0x105b0dd30>
```
OK, but you could have done the same thing with `eval`. The useful part is that it will refuse to evaluate the property `rect.area` because that would trigger unknown code. If we try, it'll raise a `CannotEval` exception.
```python
from pure_eval import CannotEval
try:
print("rect.area:", evaluator[the_tuple.elts[2]]) # fails
except CannotEval as e:
print(e) # prints CannotEval
```
To find all the expressions that can be evaluated in a tree:
```python
for node, value in evaluator.find_expressions(tree):
print(ast.dump(node), value)
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load()) 3
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load()) 5
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
```
Note that this includes `rect` three times, once for each appearance in the source code. Since all these nodes are equivalent, we can group them together:
```python
from pure_eval import group_expressions
for nodes, values in group_expressions(evaluator.find_expressions(tree)):
print(len(nodes), "nodes with value:", values)
```
Output:
```
1 nodes with value: 3
1 nodes with value: 5
3 nodes with value: <__main__.Rectangle object at 0x10d374d30>
```
If we want to list all the expressions in a tree, we may want to filter out certain expressions whose values are obvious. For example, suppose we have a function `foo`:
```python
def foo():
pass
```
If we refer to `foo` by its name as usual, then that's not interesting:
```python
from pure_eval import is_expression_interesting
node = ast.parse('foo').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='foo', ctx=Load())
False
```
But if we refer to it by a different name, then it's interesting:
```python
node = ast.parse('bar').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='bar', ctx=Load())
True
```
In general `is_expression_interesting` returns False for the following values:
- Literals (e.g. `123`, `'abc'`, `[1, 2, 3]`, `{'a': (), 'b': ([1, 2], [3])}`)
- Variables or attributes whose name is equal to the value's `__name__`, such as `foo` above or `self.foo` if it was a method.
- Builtins (e.g. `len`) referred to by their usual name.
To make things easier, you can combine finding expressions, grouping them, and filtering out the obvious ones with:
```python
evaluator.interesting_expressions_grouped(root)
```
To get the source code of an AST node, I recommend [asttokens](https://github.com/gristlabs/asttokens).
Here's a complete example that brings it all together:
```python
from asttokens import ASTTokens
from pure_eval import Evaluator
source = """
x = 1
d = {x: 2}
y = d[x]
"""
names = {}
exec(source, names)
atok = ASTTokens(source, parse=True)
for nodes, value in Evaluator(names).interesting_expressions_grouped(atok.tree):
print(atok.get_text(nodes[0]), "=", value)
```
Output:
```python
x = 1
d = {1: 2}
y = 2
d[x] = 2
```http://github.com/alexmojaki/pure_evalMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-ba9db3ff-2802-4f43-a221-e225d490d386python-pure-evalsrc603923a2f2bb9d586d2898d5abe24f0dc7189d467bb68ced3df0d6a15b971538Safely evaluate AST nodes without side effects
[![Build Status](https://travis-ci.org/alexmojaki/pure_eval.svg?branch=master)](https://travis-ci.org/alexmojaki/pure_eval) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/pure_eval/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/pure_eval?branch=master) [![Supports Python versions 3.5+](https://img.shields.io/pypi/pyversions/pure_eval.svg)](https://pypi.python.org/pypi/pure_eval)
This is a Python package that lets you safely evaluate certain AST nodes without triggering arbitrary code that may have unwanted side effects.
It can be installed from PyPI:
pip install pure_eval
To demonstrate usage, suppose we have an object defined as follows:
```python
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
@property
def area(self):
print("Calculating area...")
return self.width * self.height
rect = Rectangle(3, 5)
```
Given the `rect` object, we want to evaluate whatever expressions we can in this source code:
```python
source = "(rect.width, rect.height, rect.area)"
```
This library works with the AST, so let's parse the source code and peek inside:
```python
import ast
tree = ast.parse(source)
the_tuple = tree.body[0].value
for node in the_tuple.elts:
print(ast.dump(node))
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='area', ctx=Load())
```
Now to actually use the library. First construct an Evaluator:
```python
from pure_eval import Evaluator
evaluator = Evaluator({"rect": rect})
```
The argument to `Evaluator` should be a mapping from variable names to their values. Or if you have access to the stack frame where `rect` is defined, you can instead use:
```python
evaluator = Evaluator.from_frame(frame)
```
Now to evaluate some nodes, using `evaluator[node]`:
```python
print("rect.width:", evaluator[the_tuple.elts[0]])
print("rect:", evaluator[the_tuple.elts[0].value])
```
Output:
```
rect.width: 3
rect: <__main__.Rectangle object at 0x105b0dd30>
```
OK, but you could have done the same thing with `eval`. The useful part is that it will refuse to evaluate the property `rect.area` because that would trigger unknown code. If we try, it'll raise a `CannotEval` exception.
```python
from pure_eval import CannotEval
try:
print("rect.area:", evaluator[the_tuple.elts[2]]) # fails
except CannotEval as e:
print(e) # prints CannotEval
```
To find all the expressions that can be evaluated in a tree:
```python
for node, value in evaluator.find_expressions(tree):
print(ast.dump(node), value)
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load()) 3
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load()) 5
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
```
Note that this includes `rect` three times, once for each appearance in the source code. Since all these nodes are equivalent, we can group them together:
```python
from pure_eval import group_expressions
for nodes, values in group_expressions(evaluator.find_expressions(tree)):
print(len(nodes), "nodes with value:", values)
```
Output:
```
1 nodes with value: 3
1 nodes with value: 5
3 nodes with value: <__main__.Rectangle object at 0x10d374d30>
```
If we want to list all the expressions in a tree, we may want to filter out certain expressions whose values are obvious. For example, suppose we have a function `foo`:
```python
def foo():
pass
```
If we refer to `foo` by its name as usual, then that's not interesting:
```python
from pure_eval import is_expression_interesting
node = ast.parse('foo').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='foo', ctx=Load())
False
```
But if we refer to it by a different name, then it's interesting:
```python
node = ast.parse('bar').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='bar', ctx=Load())
True
```
In general `is_expression_interesting` returns False for the following values:
- Literals (e.g. `123`, `'abc'`, `[1, 2, 3]`, `{'a': (), 'b': ([1, 2], [3])}`)
- Variables or attributes whose name is equal to the value's `__name__`, such as `foo` above or `self.foo` if it was a method.
- Builtins (e.g. `len`) referred to by their usual name.
To make things easier, you can combine finding expressions, grouping them, and filtering out the obvious ones with:
```python
evaluator.interesting_expressions_grouped(root)
```
To get the source code of an AST node, I recommend [asttokens](https://github.com/gristlabs/asttokens).
Here's a complete example that brings it all together:
```python
from asttokens import ASTTokens
from pure_eval import Evaluator
source = """
x = 1
d = {x: 2}
y = d[x]
"""
names = {}
exec(source, names)
atok = ASTTokens(source, parse=True)
for nodes, value in Evaluator(names).interesting_expressions_grouped(atok.tree):
print(atok.get_text(nodes[0]), "=", value)
```
Output:
```python
x = 1
d = {1: 2}
y = 2
d[x] = 2
```http://github.com/alexmojaki/pure_evalMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3a5332d6-e6cb-4b16-ae91-1e8d3a246c2apython-pure-evalsrc18c35cbb7cf081f5a93da162354526a211b97507739e66201f9179f891c459c4Safely evaluate AST nodes without side effects
[![Build Status](https://travis-ci.org/alexmojaki/pure_eval.svg?branch=master)](https://travis-ci.org/alexmojaki/pure_eval) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/pure_eval/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/pure_eval?branch=master) [![Supports Python versions 3.5+](https://img.shields.io/pypi/pyversions/pure_eval.svg)](https://pypi.python.org/pypi/pure_eval)
This is a Python package that lets you safely evaluate certain AST nodes without triggering arbitrary code that may have unwanted side effects.
It can be installed from PyPI:
pip install pure_eval
To demonstrate usage, suppose we have an object defined as follows:
```python
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
@property
def area(self):
print("Calculating area...")
return self.width * self.height
rect = Rectangle(3, 5)
```
Given the `rect` object, we want to evaluate whatever expressions we can in this source code:
```python
source = "(rect.width, rect.height, rect.area)"
```
This library works with the AST, so let's parse the source code and peek inside:
```python
import ast
tree = ast.parse(source)
the_tuple = tree.body[0].value
for node in the_tuple.elts:
print(ast.dump(node))
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='area', ctx=Load())
```
Now to actually use the library. First construct an Evaluator:
```python
from pure_eval import Evaluator
evaluator = Evaluator({"rect": rect})
```
The argument to `Evaluator` should be a mapping from variable names to their values. Or if you have access to the stack frame where `rect` is defined, you can instead use:
```python
evaluator = Evaluator.from_frame(frame)
```
Now to evaluate some nodes, using `evaluator[node]`:
```python
print("rect.width:", evaluator[the_tuple.elts[0]])
print("rect:", evaluator[the_tuple.elts[0].value])
```
Output:
```
rect.width: 3
rect: <__main__.Rectangle object at 0x105b0dd30>
```
OK, but you could have done the same thing with `eval`. The useful part is that it will refuse to evaluate the property `rect.area` because that would trigger unknown code. If we try, it'll raise a `CannotEval` exception.
```python
from pure_eval import CannotEval
try:
print("rect.area:", evaluator[the_tuple.elts[2]]) # fails
except CannotEval as e:
print(e) # prints CannotEval
```
To find all the expressions that can be evaluated in a tree:
```python
for node, value in evaluator.find_expressions(tree):
print(ast.dump(node), value)
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load()) 3
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load()) 5
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
```
Note that this includes `rect` three times, once for each appearance in the source code. Since all these nodes are equivalent, we can group them together:
```python
from pure_eval import group_expressions
for nodes, values in group_expressions(evaluator.find_expressions(tree)):
print(len(nodes), "nodes with value:", values)
```
Output:
```
1 nodes with value: 3
1 nodes with value: 5
3 nodes with value: <__main__.Rectangle object at 0x10d374d30>
```
If we want to list all the expressions in a tree, we may want to filter out certain expressions whose values are obvious. For example, suppose we have a function `foo`:
```python
def foo():
pass
```
If we refer to `foo` by its name as usual, then that's not interesting:
```python
from pure_eval import is_expression_interesting
node = ast.parse('foo').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='foo', ctx=Load())
False
```
But if we refer to it by a different name, then it's interesting:
```python
node = ast.parse('bar').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='bar', ctx=Load())
True
```
In general `is_expression_interesting` returns False for the following values:
- Literals (e.g. `123`, `'abc'`, `[1, 2, 3]`, `{'a': (), 'b': ([1, 2], [3])}`)
- Variables or attributes whose name is equal to the value's `__name__`, such as `foo` above or `self.foo` if it was a method.
- Builtins (e.g. `len`) referred to by their usual name.
To make things easier, you can combine finding expressions, grouping them, and filtering out the obvious ones with:
```python
evaluator.interesting_expressions_grouped(root)
```
To get the source code of an AST node, I recommend [asttokens](https://github.com/gristlabs/asttokens).
Here's a complete example that brings it all together:
```python
from asttokens import ASTTokens
from pure_eval import Evaluator
source = """
x = 1
d = {x: 2}
y = d[x]
"""
names = {}
exec(source, names)
atok = ASTTokens(source, parse=True)
for nodes, value in Evaluator(names).interesting_expressions_grouped(atok.tree):
print(atok.get_text(nodes[0]), "=", value)
```
Output:
```python
x = 1
d = {1: 2}
y = 2
d[x] = 2
```http://github.com/alexmojaki/pure_evalMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-08b2e3b7-9c1d-4aa3-b84d-a9963eae9efepython-pure-evalsrc93f9ef02ecfa07c2d1402a1d032975951d65a3985606592393c3534e82cd1d03Safely evaluate AST nodes without side effects
[![Build Status](https://travis-ci.org/alexmojaki/pure_eval.svg?branch=master)](https://travis-ci.org/alexmojaki/pure_eval) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/pure_eval/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/pure_eval?branch=master) [![Supports Python versions 3.5+](https://img.shields.io/pypi/pyversions/pure_eval.svg)](https://pypi.python.org/pypi/pure_eval)
This is a Python package that lets you safely evaluate certain AST nodes without triggering arbitrary code that may have unwanted side effects.
It can be installed from PyPI:
pip install pure_eval
To demonstrate usage, suppose we have an object defined as follows:
```python
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
@property
def area(self):
print("Calculating area...")
return self.width * self.height
rect = Rectangle(3, 5)
```
Given the `rect` object, we want to evaluate whatever expressions we can in this source code:
```python
source = "(rect.width, rect.height, rect.area)"
```
This library works with the AST, so let's parse the source code and peek inside:
```python
import ast
tree = ast.parse(source)
the_tuple = tree.body[0].value
for node in the_tuple.elts:
print(ast.dump(node))
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='area', ctx=Load())
```
Now to actually use the library. First construct an Evaluator:
```python
from pure_eval import Evaluator
evaluator = Evaluator({"rect": rect})
```
The argument to `Evaluator` should be a mapping from variable names to their values. Or if you have access to the stack frame where `rect` is defined, you can instead use:
```python
evaluator = Evaluator.from_frame(frame)
```
Now to evaluate some nodes, using `evaluator[node]`:
```python
print("rect.width:", evaluator[the_tuple.elts[0]])
print("rect:", evaluator[the_tuple.elts[0].value])
```
Output:
```
rect.width: 3
rect: <__main__.Rectangle object at 0x105b0dd30>
```
OK, but you could have done the same thing with `eval`. The useful part is that it will refuse to evaluate the property `rect.area` because that would trigger unknown code. If we try, it'll raise a `CannotEval` exception.
```python
from pure_eval import CannotEval
try:
print("rect.area:", evaluator[the_tuple.elts[2]]) # fails
except CannotEval as e:
print(e) # prints CannotEval
```
To find all the expressions that can be evaluated in a tree:
```python
for node, value in evaluator.find_expressions(tree):
print(ast.dump(node), value)
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load()) 3
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load()) 5
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
```
Note that this includes `rect` three times, once for each appearance in the source code. Since all these nodes are equivalent, we can group them together:
```python
from pure_eval import group_expressions
for nodes, values in group_expressions(evaluator.find_expressions(tree)):
print(len(nodes), "nodes with value:", values)
```
Output:
```
1 nodes with value: 3
1 nodes with value: 5
3 nodes with value: <__main__.Rectangle object at 0x10d374d30>
```
If we want to list all the expressions in a tree, we may want to filter out certain expressions whose values are obvious. For example, suppose we have a function `foo`:
```python
def foo():
pass
```
If we refer to `foo` by its name as usual, then that's not interesting:
```python
from pure_eval import is_expression_interesting
node = ast.parse('foo').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='foo', ctx=Load())
False
```
But if we refer to it by a different name, then it's interesting:
```python
node = ast.parse('bar').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='bar', ctx=Load())
True
```
In general `is_expression_interesting` returns False for the following values:
- Literals (e.g. `123`, `'abc'`, `[1, 2, 3]`, `{'a': (), 'b': ([1, 2], [3])}`)
- Variables or attributes whose name is equal to the value's `__name__`, such as `foo` above or `self.foo` if it was a method.
- Builtins (e.g. `len`) referred to by their usual name.
To make things easier, you can combine finding expressions, grouping them, and filtering out the obvious ones with:
```python
evaluator.interesting_expressions_grouped(root)
```
To get the source code of an AST node, I recommend [asttokens](https://github.com/gristlabs/asttokens).
Here's a complete example that brings it all together:
```python
from asttokens import ASTTokens
from pure_eval import Evaluator
source = """
x = 1
d = {x: 2}
y = d[x]
"""
names = {}
exec(source, names)
atok = ASTTokens(source, parse=True)
for nodes, value in Evaluator(names).interesting_expressions_grouped(atok.tree):
print(atok.get_text(nodes[0]), "=", value)
```
Output:
```python
x = 1
d = {1: 2}
y = 2
d[x] = 2
```http://github.com/alexmojaki/pure_evalMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f7e70b22-4cd2-45f5-aad6-15e26b775720python-pure-evalsrc555b82881a830eb09e0df033975d8322eea28dc1f331b9e2f7db5e7ca9417fa5Safely evaluate AST nodes without side effects
[![Build Status](https://travis-ci.org/alexmojaki/pure_eval.svg?branch=master)](https://travis-ci.org/alexmojaki/pure_eval) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/pure_eval/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/pure_eval?branch=master) [![Supports Python versions 3.5+](https://img.shields.io/pypi/pyversions/pure_eval.svg)](https://pypi.python.org/pypi/pure_eval)
This is a Python package that lets you safely evaluate certain AST nodes without triggering arbitrary code that may have unwanted side effects.
It can be installed from PyPI:
pip install pure_eval
To demonstrate usage, suppose we have an object defined as follows:
```python
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
@property
def area(self):
print("Calculating area...")
return self.width * self.height
rect = Rectangle(3, 5)
```
Given the `rect` object, we want to evaluate whatever expressions we can in this source code:
```python
source = "(rect.width, rect.height, rect.area)"
```
This library works with the AST, so let's parse the source code and peek inside:
```python
import ast
tree = ast.parse(source)
the_tuple = tree.body[0].value
for node in the_tuple.elts:
print(ast.dump(node))
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='area', ctx=Load())
```
Now to actually use the library. First construct an Evaluator:
```python
from pure_eval import Evaluator
evaluator = Evaluator({"rect": rect})
```
The argument to `Evaluator` should be a mapping from variable names to their values. Or if you have access to the stack frame where `rect` is defined, you can instead use:
```python
evaluator = Evaluator.from_frame(frame)
```
Now to evaluate some nodes, using `evaluator[node]`:
```python
print("rect.width:", evaluator[the_tuple.elts[0]])
print("rect:", evaluator[the_tuple.elts[0].value])
```
Output:
```
rect.width: 3
rect: <__main__.Rectangle object at 0x105b0dd30>
```
OK, but you could have done the same thing with `eval`. The useful part is that it will refuse to evaluate the property `rect.area` because that would trigger unknown code. If we try, it'll raise a `CannotEval` exception.
```python
from pure_eval import CannotEval
try:
print("rect.area:", evaluator[the_tuple.elts[2]]) # fails
except CannotEval as e:
print(e) # prints CannotEval
```
To find all the expressions that can be evaluated in a tree:
```python
for node, value in evaluator.find_expressions(tree):
print(ast.dump(node), value)
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load()) 3
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load()) 5
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
```
Note that this includes `rect` three times, once for each appearance in the source code. Since all these nodes are equivalent, we can group them together:
```python
from pure_eval import group_expressions
for nodes, values in group_expressions(evaluator.find_expressions(tree)):
print(len(nodes), "nodes with value:", values)
```
Output:
```
1 nodes with value: 3
1 nodes with value: 5
3 nodes with value: <__main__.Rectangle object at 0x10d374d30>
```
If we want to list all the expressions in a tree, we may want to filter out certain expressions whose values are obvious. For example, suppose we have a function `foo`:
```python
def foo():
pass
```
If we refer to `foo` by its name as usual, then that's not interesting:
```python
from pure_eval import is_expression_interesting
node = ast.parse('foo').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='foo', ctx=Load())
False
```
But if we refer to it by a different name, then it's interesting:
```python
node = ast.parse('bar').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='bar', ctx=Load())
True
```
In general `is_expression_interesting` returns False for the following values:
- Literals (e.g. `123`, `'abc'`, `[1, 2, 3]`, `{'a': (), 'b': ([1, 2], [3])}`)
- Variables or attributes whose name is equal to the value's `__name__`, such as `foo` above or `self.foo` if it was a method.
- Builtins (e.g. `len`) referred to by their usual name.
To make things easier, you can combine finding expressions, grouping them, and filtering out the obvious ones with:
```python
evaluator.interesting_expressions_grouped(root)
```
To get the source code of an AST node, I recommend [asttokens](https://github.com/gristlabs/asttokens).
Here's a complete example that brings it all together:
```python
from asttokens import ASTTokens
from pure_eval import Evaluator
source = """
x = 1
d = {x: 2}
y = d[x]
"""
names = {}
exec(source, names)
atok = ASTTokens(source, parse=True)
for nodes, value in Evaluator(names).interesting_expressions_grouped(atok.tree):
print(atok.get_text(nodes[0]), "=", value)
```
Output:
```python
x = 1
d = {1: 2}
y = 2
d[x] = 2
```http://github.com/alexmojaki/pure_evalMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5cf41ad9-f819-43cb-84e3-5e316007867cpython-pure-eval-helpnoarchc80e49aaf5d5c8af99844f26e2ef73209b375a5a98d56f82588194c535222e99Development documents and examples for pure-eval
[![Build Status](https://travis-ci.org/alexmojaki/pure_eval.svg?branch=master)](https://travis-ci.org/alexmojaki/pure_eval) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/pure_eval/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/pure_eval?branch=master) [![Supports Python versions 3.5+](https://img.shields.io/pypi/pyversions/pure_eval.svg)](https://pypi.python.org/pypi/pure_eval)
This is a Python package that lets you safely evaluate certain AST nodes without triggering arbitrary code that may have unwanted side effects.
It can be installed from PyPI:
pip install pure_eval
To demonstrate usage, suppose we have an object defined as follows:
```python
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
@property
def area(self):
print("Calculating area...")
return self.width * self.height
rect = Rectangle(3, 5)
```
Given the `rect` object, we want to evaluate whatever expressions we can in this source code:
```python
source = "(rect.width, rect.height, rect.area)"
```
This library works with the AST, so let's parse the source code and peek inside:
```python
import ast
tree = ast.parse(source)
the_tuple = tree.body[0].value
for node in the_tuple.elts:
print(ast.dump(node))
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='area', ctx=Load())
```
Now to actually use the library. First construct an Evaluator:
```python
from pure_eval import Evaluator
evaluator = Evaluator({"rect": rect})
```
The argument to `Evaluator` should be a mapping from variable names to their values. Or if you have access to the stack frame where `rect` is defined, you can instead use:
```python
evaluator = Evaluator.from_frame(frame)
```
Now to evaluate some nodes, using `evaluator[node]`:
```python
print("rect.width:", evaluator[the_tuple.elts[0]])
print("rect:", evaluator[the_tuple.elts[0].value])
```
Output:
```
rect.width: 3
rect: <__main__.Rectangle object at 0x105b0dd30>
```
OK, but you could have done the same thing with `eval`. The useful part is that it will refuse to evaluate the property `rect.area` because that would trigger unknown code. If we try, it'll raise a `CannotEval` exception.
```python
from pure_eval import CannotEval
try:
print("rect.area:", evaluator[the_tuple.elts[2]]) # fails
except CannotEval as e:
print(e) # prints CannotEval
```
To find all the expressions that can be evaluated in a tree:
```python
for node, value in evaluator.find_expressions(tree):
print(ast.dump(node), value)
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load()) 3
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load()) 5
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
```
Note that this includes `rect` three times, once for each appearance in the source code. Since all these nodes are equivalent, we can group them together:
```python
from pure_eval import group_expressions
for nodes, values in group_expressions(evaluator.find_expressions(tree)):
print(len(nodes), "nodes with value:", values)
```
Output:
```
1 nodes with value: 3
1 nodes with value: 5
3 nodes with value: <__main__.Rectangle object at 0x10d374d30>
```
If we want to list all the expressions in a tree, we may want to filter out certain expressions whose values are obvious. For example, suppose we have a function `foo`:
```python
def foo():
pass
```
If we refer to `foo` by its name as usual, then that's not interesting:
```python
from pure_eval import is_expression_interesting
node = ast.parse('foo').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='foo', ctx=Load())
False
```
But if we refer to it by a different name, then it's interesting:
```python
node = ast.parse('bar').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='bar', ctx=Load())
True
```
In general `is_expression_interesting` returns False for the following values:
- Literals (e.g. `123`, `'abc'`, `[1, 2, 3]`, `{'a': (), 'b': ([1, 2], [3])}`)
- Variables or attributes whose name is equal to the value's `__name__`, such as `foo` above or `self.foo` if it was a method.
- Builtins (e.g. `len`) referred to by their usual name.
To make things easier, you can combine finding expressions, grouping them, and filtering out the obvious ones with:
```python
evaluator.interesting_expressions_grouped(root)
```
To get the source code of an AST node, I recommend [asttokens](https://github.com/gristlabs/asttokens).
Here's a complete example that brings it all together:
```python
from asttokens import ASTTokens
from pure_eval import Evaluator
source = """
x = 1
d = {x: 2}
y = d[x]
"""
names = {}
exec(source, names)
atok = ASTTokens(source, parse=True)
for nodes, value in Evaluator(names).interesting_expressions_grouped(atok.tree):
print(atok.get_text(nodes[0]), "=", value)
```
Output:
```python
x = 1
d = {1: 2}
y = 2
d[x] = 2
```http://github.com/alexmojaki/pure_evalMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3a5332d6-e6cb-4b16-ae91-1e8d3a246c2apython-pure-eval-0.2.2-1.src.rpmpython-pure-eval-helpnoarchc55d8664db711b966c3ae3e53348bcd0f25d7d732d76dd5bc912a4cecf266751Development documents and examples for pure-eval
[![Build Status](https://travis-ci.org/alexmojaki/pure_eval.svg?branch=master)](https://travis-ci.org/alexmojaki/pure_eval) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/pure_eval/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/pure_eval?branch=master) [![Supports Python versions 3.5+](https://img.shields.io/pypi/pyversions/pure_eval.svg)](https://pypi.python.org/pypi/pure_eval)
This is a Python package that lets you safely evaluate certain AST nodes without triggering arbitrary code that may have unwanted side effects.
It can be installed from PyPI:
pip install pure_eval
To demonstrate usage, suppose we have an object defined as follows:
```python
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
@property
def area(self):
print("Calculating area...")
return self.width * self.height
rect = Rectangle(3, 5)
```
Given the `rect` object, we want to evaluate whatever expressions we can in this source code:
```python
source = "(rect.width, rect.height, rect.area)"
```
This library works with the AST, so let's parse the source code and peek inside:
```python
import ast
tree = ast.parse(source)
the_tuple = tree.body[0].value
for node in the_tuple.elts:
print(ast.dump(node))
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='area', ctx=Load())
```
Now to actually use the library. First construct an Evaluator:
```python
from pure_eval import Evaluator
evaluator = Evaluator({"rect": rect})
```
The argument to `Evaluator` should be a mapping from variable names to their values. Or if you have access to the stack frame where `rect` is defined, you can instead use:
```python
evaluator = Evaluator.from_frame(frame)
```
Now to evaluate some nodes, using `evaluator[node]`:
```python
print("rect.width:", evaluator[the_tuple.elts[0]])
print("rect:", evaluator[the_tuple.elts[0].value])
```
Output:
```
rect.width: 3
rect: <__main__.Rectangle object at 0x105b0dd30>
```
OK, but you could have done the same thing with `eval`. The useful part is that it will refuse to evaluate the property `rect.area` because that would trigger unknown code. If we try, it'll raise a `CannotEval` exception.
```python
from pure_eval import CannotEval
try:
print("rect.area:", evaluator[the_tuple.elts[2]]) # fails
except CannotEval as e:
print(e) # prints CannotEval
```
To find all the expressions that can be evaluated in a tree:
```python
for node, value in evaluator.find_expressions(tree):
print(ast.dump(node), value)
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load()) 3
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load()) 5
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
```
Note that this includes `rect` three times, once for each appearance in the source code. Since all these nodes are equivalent, we can group them together:
```python
from pure_eval import group_expressions
for nodes, values in group_expressions(evaluator.find_expressions(tree)):
print(len(nodes), "nodes with value:", values)
```
Output:
```
1 nodes with value: 3
1 nodes with value: 5
3 nodes with value: <__main__.Rectangle object at 0x10d374d30>
```
If we want to list all the expressions in a tree, we may want to filter out certain expressions whose values are obvious. For example, suppose we have a function `foo`:
```python
def foo():
pass
```
If we refer to `foo` by its name as usual, then that's not interesting:
```python
from pure_eval import is_expression_interesting
node = ast.parse('foo').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='foo', ctx=Load())
False
```
But if we refer to it by a different name, then it's interesting:
```python
node = ast.parse('bar').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='bar', ctx=Load())
True
```
In general `is_expression_interesting` returns False for the following values:
- Literals (e.g. `123`, `'abc'`, `[1, 2, 3]`, `{'a': (), 'b': ([1, 2], [3])}`)
- Variables or attributes whose name is equal to the value's `__name__`, such as `foo` above or `self.foo` if it was a method.
- Builtins (e.g. `len`) referred to by their usual name.
To make things easier, you can combine finding expressions, grouping them, and filtering out the obvious ones with:
```python
evaluator.interesting_expressions_grouped(root)
```
To get the source code of an AST node, I recommend [asttokens](https://github.com/gristlabs/asttokens).
Here's a complete example that brings it all together:
```python
from asttokens import ASTTokens
from pure_eval import Evaluator
source = """
x = 1
d = {x: 2}
y = d[x]
"""
names = {}
exec(source, names)
atok = ASTTokens(source, parse=True)
for nodes, value in Evaluator(names).interesting_expressions_grouped(atok.tree):
print(atok.get_text(nodes[0]), "=", value)
```
Output:
```python
x = 1
d = {1: 2}
y = 2
d[x] = 2
```http://github.com/alexmojaki/pure_evalMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f7e70b22-4cd2-45f5-aad6-15e26b775720python-pure-eval-0.2.2-1.src.rpmpython-pure-eval-helpnoarch08f337f3a822ec2fc984012991b98fe3d0aa1d2f569602ec9659a0e056821966Development documents and examples for pure-eval
[![Build Status](https://travis-ci.org/alexmojaki/pure_eval.svg?branch=master)](https://travis-ci.org/alexmojaki/pure_eval) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/pure_eval/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/pure_eval?branch=master) [![Supports Python versions 3.5+](https://img.shields.io/pypi/pyversions/pure_eval.svg)](https://pypi.python.org/pypi/pure_eval)
This is a Python package that lets you safely evaluate certain AST nodes without triggering arbitrary code that may have unwanted side effects.
It can be installed from PyPI:
pip install pure_eval
To demonstrate usage, suppose we have an object defined as follows:
```python
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
@property
def area(self):
print("Calculating area...")
return self.width * self.height
rect = Rectangle(3, 5)
```
Given the `rect` object, we want to evaluate whatever expressions we can in this source code:
```python
source = "(rect.width, rect.height, rect.area)"
```
This library works with the AST, so let's parse the source code and peek inside:
```python
import ast
tree = ast.parse(source)
the_tuple = tree.body[0].value
for node in the_tuple.elts:
print(ast.dump(node))
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='area', ctx=Load())
```
Now to actually use the library. First construct an Evaluator:
```python
from pure_eval import Evaluator
evaluator = Evaluator({"rect": rect})
```
The argument to `Evaluator` should be a mapping from variable names to their values. Or if you have access to the stack frame where `rect` is defined, you can instead use:
```python
evaluator = Evaluator.from_frame(frame)
```
Now to evaluate some nodes, using `evaluator[node]`:
```python
print("rect.width:", evaluator[the_tuple.elts[0]])
print("rect:", evaluator[the_tuple.elts[0].value])
```
Output:
```
rect.width: 3
rect: <__main__.Rectangle object at 0x105b0dd30>
```
OK, but you could have done the same thing with `eval`. The useful part is that it will refuse to evaluate the property `rect.area` because that would trigger unknown code. If we try, it'll raise a `CannotEval` exception.
```python
from pure_eval import CannotEval
try:
print("rect.area:", evaluator[the_tuple.elts[2]]) # fails
except CannotEval as e:
print(e) # prints CannotEval
```
To find all the expressions that can be evaluated in a tree:
```python
for node, value in evaluator.find_expressions(tree):
print(ast.dump(node), value)
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load()) 3
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load()) 5
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
```
Note that this includes `rect` three times, once for each appearance in the source code. Since all these nodes are equivalent, we can group them together:
```python
from pure_eval import group_expressions
for nodes, values in group_expressions(evaluator.find_expressions(tree)):
print(len(nodes), "nodes with value:", values)
```
Output:
```
1 nodes with value: 3
1 nodes with value: 5
3 nodes with value: <__main__.Rectangle object at 0x10d374d30>
```
If we want to list all the expressions in a tree, we may want to filter out certain expressions whose values are obvious. For example, suppose we have a function `foo`:
```python
def foo():
pass
```
If we refer to `foo` by its name as usual, then that's not interesting:
```python
from pure_eval import is_expression_interesting
node = ast.parse('foo').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='foo', ctx=Load())
False
```
But if we refer to it by a different name, then it's interesting:
```python
node = ast.parse('bar').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='bar', ctx=Load())
True
```
In general `is_expression_interesting` returns False for the following values:
- Literals (e.g. `123`, `'abc'`, `[1, 2, 3]`, `{'a': (), 'b': ([1, 2], [3])}`)
- Variables or attributes whose name is equal to the value's `__name__`, such as `foo` above or `self.foo` if it was a method.
- Builtins (e.g. `len`) referred to by their usual name.
To make things easier, you can combine finding expressions, grouping them, and filtering out the obvious ones with:
```python
evaluator.interesting_expressions_grouped(root)
```
To get the source code of an AST node, I recommend [asttokens](https://github.com/gristlabs/asttokens).
Here's a complete example that brings it all together:
```python
from asttokens import ASTTokens
from pure_eval import Evaluator
source = """
x = 1
d = {x: 2}
y = d[x]
"""
names = {}
exec(source, names)
atok = ASTTokens(source, parse=True)
for nodes, value in Evaluator(names).interesting_expressions_grouped(atok.tree):
print(atok.get_text(nodes[0]), "=", value)
```
Output:
```python
x = 1
d = {1: 2}
y = 2
d[x] = 2
```http://github.com/alexmojaki/pure_evalMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5cf41ad9-f819-43cb-84e3-5e316007867cpython-pure-eval-0.2.2-1.src.rpmpython-py3dnssrc3dcf53c9709e93078b60de29a8cafe14a0bdd8b5f1cd6aa72ee30b67ab3bfa5fPython 3 DNS libraryPython 3 DNS library:https://launchpad.net/py3dnsPython LicenseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-39dcb513-3e0a-42c8-95b6-1311483b6036python-py3dns-helpnoarch468761ffb3ee75192d3f54ba560862f05749472733bc5dec5f6bac921fb01069Development documents and examples for py3dnsPython 3 DNS library:https://launchpad.net/py3dnsPython LicenseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-39dcb513-3e0a-42c8-95b6-1311483b6036python-py3dns-3.2.1-1.src.rpmpython-pyLibravatarsrc087af3c3b10167bd4aadf3cb0d86e4785f2fa79804441925455ea25727166f8cPython module for LibravatarPyLibravatar is an easy way to make use of the federated Libravatar_ avatar
hosting service from within your Python applications.https://launchpad.net/pylibravatarMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-0b43ab61-fe6c-4e51-8de3-118824d00e33python-pyLibravatarsrcec8db7c371068cb4312bbfa384699533a0d69516183640080247c3ffd46ba6caPython module for LibravatarPyLibravatar is an easy way to make use of the federated Libravatar_ avatar
hosting service from within your Python applications.https://launchpad.net/pylibravatarMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-ccfbc728-c065-4425-ba0c-095285a6b6f3python-pyLibravatarsrc0ba1017312aaf35ab7cb5a5b4cba80b9edd3843babdc1515ef9a95b2c75a1562Python module for LibravatarPyLibravatar is an easy way to make use of the federated Libravatar_ avatar
hosting service from within your Python applications.https://launchpad.net/pylibravatarMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-cc0fe5c0-d46c-49b8-a9be-516abcb500a1python-pygalsrcf553eaf6a6d089949d4f6d12a88a41f6c71968d5289e659f196c0c9622f2ac53A Python svg graph plotting libraryA Python svg graph plotting library.https://www.pygal.org/LGPL-3.0+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-7b8b6df2-395c-40ea-8dcb-eeef179e105epython-pygalsrc589d1253adb15bdc9c5be382d9569d6314fd0c5dd4d10cddf91b70d7922ea52aA Python svg graph plotting libraryA Python svg graph plotting library.https://www.pygal.org/LGPL-3.0+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-439fa2b3-25f8-4bce-927e-648189ee04c6python-pygalsrcedc2bde988757631cc3b70d7cfa40419544ecf88a494479958794685356e715cA Python svg graph plotting libraryA Python svg graph plotting library.https://www.pygal.org/LGPL-3.0+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-dd9a9778-f9af-46a2-a816-d4d803ff7595python-pygal-helpnoarch8ff25349b5686da3cd76f5aca902155d332a2960742ade9cb0cb8a6672e8f8c5Development documents and examples for pygalhttps://www.pygal.org/LGPL-3.0+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-7b8b6df2-395c-40ea-8dcb-eeef179e105epython-pygal-3.0.0-1.src.rpmpython-pygal-helpnoarch1b7b7e6865ba507c9a6b9e9b400f25fa6dbbfdd96f255a9dd367a26329d8f634Development documents and examples for pygalhttps://www.pygal.org/LGPL-3.0+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-439fa2b3-25f8-4bce-927e-648189ee04c6python-pygal-3.0.0-1.src.rpmpython-pygal-helpnoarch9b75a74e747d9a7a5f9a9bac84304e463db4aeaaccb14df84294e742cd4a016aDevelopment documents and examples for pygalhttps://www.pygal.org/LGPL-3.0+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-dd9a9778-f9af-46a2-a816-d4d803ff7595python-pygal-3.0.0-1.src.rpmpython-pygit2srcc8cf37de9553ff8d8a7edacf17ab73725435ff0f8f3bc3bd9a4becc7026ff68bPython bindings for libgit2.- Documentation - http://www.pygit2.org/
- Install - http://www.pygit2.org/install.html
- Download - https://pypi.python.org/pypi/pygit2
- Source code and issue tracker - https://github.com/libgit2/pygit2
- Changelog - https://github.com/libgit2/pygit2/blob/master/CHANGELOG.rst
- Authors - https://github.com/libgit2/pygit2/blob/master/AUTHORS.rsthttps://github.com/libgit2/pygit2GPLv2 with linking exceptionopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-cdc9a08c-f6f2-4c34-8a41-21c786a156f9python-pygit2src0c26ca4636779fb04815d12c6cc93a38c51dcb0500e31155881f19ae3b63c852Python bindings for libgit2.- Documentation - http://www.pygit2.org/
- Install - http://www.pygit2.org/install.html
- Download - https://pypi.python.org/pypi/pygit2
- Source code and issue tracker - https://github.com/libgit2/pygit2
- Changelog - https://github.com/libgit2/pygit2/blob/master/CHANGELOG.rst
- Authors - https://github.com/libgit2/pygit2/blob/master/AUTHORS.rsthttps://github.com/libgit2/pygit2GPLv2 with linking exceptionopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5e970f6a-2000-4626-8763-3a0f8aac3579python-pygit2srce3e0a62a89d25bf876eb3a522bc791ef23d8f724f38c4451b459bcd290e7ab65Python bindings for libgit2.- Documentation - http://www.pygit2.org/
- Install - http://www.pygit2.org/install.html
- Download - https://pypi.python.org/pypi/pygit2
- Source code and issue tracker - https://github.com/libgit2/pygit2
- Changelog - https://github.com/libgit2/pygit2/blob/master/CHANGELOG.rst
- Authors - https://github.com/libgit2/pygit2/blob/master/AUTHORS.rsthttps://github.com/libgit2/pygit2GPLv2 with linking exceptionopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d311ce52-49cd-4757-a211-d06e093f8080python-pygit2-debuginfox86_64cf8e71fde1c7fecf39f30d0ac6907159791268668c339143528c5d579262230dDebug information for package python-pygit2This package provides debug information for package python-pygit2.
Debug information is useful when developing applications that use this
package or when debugging this package.https://github.com/libgit2/pygit2GPLv2 with linking exceptionopenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-5e970f6a-2000-4626-8763-3a0f8aac3579python-pygit2-1.7.1-1.src.rpmpython-pygit2-debuginfox86_64d1a4ecf1f7e90a58d8fbd213c5695b2afc89fa5fa6f071b700850159d9da31b3Debug information for package python-pygit2This package provides debug information for package python-pygit2.
Debug information is useful when developing applications that use this
package or when debugging this package.https://github.com/libgit2/pygit2GPLv2 with linking exceptionopenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-d311ce52-49cd-4757-a211-d06e093f8080python-pygit2-1.7.1-1.src.rpmpython-pygit2-debugsourcex86_64804ce4a02a3a6507df3998d50c5aace0855c703e07e3783e7f58c249321c0671Debug sources for package python-pygit2This package provides debug sources for package python-pygit2.
Debug sources are useful when developing applications that use this
package or when debugging this package.https://github.com/libgit2/pygit2GPLv2 with linking exceptionopenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-5e970f6a-2000-4626-8763-3a0f8aac3579python-pygit2-1.7.1-1.src.rpmpython-pygit2-debugsourcex86_64cc6e1e3dffac16a098ad18405e806f9fe4b9c6c9edb337c5c5e2c9215843c27bDebug sources for package python-pygit2This package provides debug sources for package python-pygit2.
Debug sources are useful when developing applications that use this
package or when debugging this package.https://github.com/libgit2/pygit2GPLv2 with linking exceptionopenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-d311ce52-49cd-4757-a211-d06e093f8080python-pygit2-1.7.1-1.src.rpmpython-pygit2-helpx86_64b875a7617a197d321fa39245c986145816b104ecc4f49ff5d0b6c0bee7e5fb5dDevelopment documents and examples for pygit2- Documentation - http://www.pygit2.org/
- Install - http://www.pygit2.org/install.html
- Download - https://pypi.python.org/pypi/pygit2
- Source code and issue tracker - https://github.com/libgit2/pygit2
- Changelog - https://github.com/libgit2/pygit2/blob/master/CHANGELOG.rst
- Authors - https://github.com/libgit2/pygit2/blob/master/AUTHORS.rsthttps://github.com/libgit2/pygit2GPLv2 with linking exceptionopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5e970f6a-2000-4626-8763-3a0f8aac3579python-pygit2-1.7.1-1.src.rpmpython-pygit2-helpx86_64592877adbac93b05456fc8bfcb848e3f8c14c94360644f1ff54cec168cbd3325Development documents and examples for pygit2- Documentation - http://www.pygit2.org/
- Install - http://www.pygit2.org/install.html
- Download - https://pypi.python.org/pypi/pygit2
- Source code and issue tracker - https://github.com/libgit2/pygit2
- Changelog - https://github.com/libgit2/pygit2/blob/master/CHANGELOG.rst
- Authors - https://github.com/libgit2/pygit2/blob/master/AUTHORS.rsthttps://github.com/libgit2/pygit2GPLv2 with linking exceptionopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d311ce52-49cd-4757-a211-d06e093f8080python-pygit2-1.7.1-1.src.rpmpython-pytest-xdistsrc28e9627a005496d9dc1386a71b428a26ebfe07421907ed7a009365d163040102pytest xdist plugin for distributed testing and loop-on-failing modespytest xdist plugin for distributed testing and loop-on-failing modes.https://github.com/pytest-dev/pytest-xdistMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a6f3c7ac-910f-43ec-b7ba-85a6d091fa81python-pytest-xdist-helpnoarch58fc495105206397eccdac0471042d5f2ee679c42f028ec7aed4d18535734a20Development documents and examples for pytest-xdistpytest xdist plugin for distributed testing and loop-on-failing modes.https://github.com/pytest-dev/pytest-xdistMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a6f3c7ac-910f-43ec-b7ba-85a6d091fa81python-pytest-xdist-3.1.0-1.src.rpmpython-responsessrc872040921bf7be50ad1624c3276857e92c265ad0969227cedec3f359b9f59be2A utility library for mocking out the `requests` Python library.A utility library for mocking out the requests Python library.https://github.com/getsentry/responsesApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-327171e8-7925-46c9-b174-625c1cd3f9dcpython-responses-helpnoarch8a12d0eec6038f948071277111507a266fd43dce467170ea73b764095b4d1a38A utility library for mocking out the `requests` Python library.A utility library for mocking out the requests Python library.https://github.com/getsentry/responsesApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-327171e8-7925-46c9-b174-625c1cd3f9dcpython-responses-0.18.0-1.src.rpmpython-retasksrcfe352f8592f5dbcaaaaba80e42ebf89b4b4a4cbaa6f98ba5f254d9f2063564b0Python module to create and manage distributed task queuesPython module to create and manage distributed task queues using redis.http://retask.readthedocs.org/en/latest/index.htmlMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-4d5d4bfa-3df8-4756-be54-91ba9c40f538python-retasksrcca2e07e7a5127de87446067e65799ae74f8226a2e2a558efcb036b5a72eff936Python module to create and manage distributed task queuesPython module to create and manage distributed task queues using redis.http://retask.readthedocs.org/en/latest/index.htmlMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3e07e7d2-7690-4f6a-9bdb-3b9f4e9f1266python-retasksrc097e50270a4f66f2cf6c0aa41061e7e49c3a89eddd3742d51ab44ddf9de1ec90Task Queue implementation in python using redis.retask is a python module to create distributed task
queues using Redis.
You can read the latest documentation `here <http://retask.readthedocs.org/>`_.
Release build is done via [asaman](https://pypi.org/project/asaman/) from the tarball.https://pypi.org/project/retask/MIT LicenseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-df9d13d2-c258-474b-8ecc-0943aaf796f9python-richsrc723c75ed293fa82840f48b1db354e1ac5f53b618abbfcdee4255d0c2c7c3a2d2Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminalRich is a Python library for rich text and beautiful formatting in the terminalhttps://github.com/willmcgugan/richMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d9aa0221-b245-4708-bb85-0935dc5c8853python-rich-helpnoarch8537e86fb2b60a44f8ac4cb3de0fd397ebc64e0390fb837b949b6eabd543292eDevelopment documents and examples for richRich is a Python library for rich text and beautiful formatting in the terminalhttps://github.com/willmcgugan/richMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d9aa0221-b245-4708-bb85-0935dc5c8853python-rich-12.6.0-1.src.rpmpython-rpmautospecsrccae681665c3db5c30c87c1888c3f23faa84f5c9e7a641910d4b561ac869f5849Package and CLI tool to generate release fields and changelogsA package and CLI tool to generate RPM release fields and changelogs.https://pagure.io/fedora-infra/rpmautospecMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-57bb1ac6-40a4-4fae-b3bc-065c9c5f9b89python-rpmautospecsrc6a3aff80be8d3fe7ec6896c5ced42994ac2d32b006425c8194035579f97cbc9cPackage and CLI tool to generate release fields and changelogsA package and CLI tool to generate RPM release fields and changelogs.https://pagure.io/fedora-infra/rpmautospecMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-88b45ac2-8580-43d9-835e-20670241cd98python-rpmautospecsrc6fbe3f3e1fe0bbb0bb410762df9bea904ef999cf82cd569713bc46e870ea6231Package and CLI tool to generate release fields and changelogsA package and CLI tool to generate RPM release fields and changelogs.https://pagure.io/fedora-infra/rpmautospecMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a3e521a2-12e4-48a3-b5bc-35f2df3b8dbbpython-rpmautospecsrc63afa81f5a373527d442257e761923a9946247d4c023e1cdbd4d0d34d976077cPackage and CLI tool to generate release fields and changelogsA package and CLI tool to generate RPM release fields and changelogs.https://pagure.io/fedora-infra/rpmautospecMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-9e694644-b8eb-4f4d-af70-d1c89e233b07python-stack-datasrcf044d1ec5a6f681d409d26c742a0124282eb70bf1aa78ba43644865c20fa8c72Extract data from python stack frames and tracebacks for informative displays 6 | for i in range(5):
7 | row = []
8 | result.append(row)
--> 9 | print_stack()
10 | for j in range(5):
```
The code for `print_stack()` is fairly self-explanatory. If you want to learn more details about a particular class or method I suggest looking through some docstrings. `FrameInfo` is a class that accepts either a frame or a traceback object and provides a bunch of nice attributes and properties (which are cached so you don't need to worry about performance). In particular `frame_info.lines` is a list of `Line` objects. `line.render()` returns the source code of that line suitable for display. Without any arguments it simply strips any common leading indentation. Later on we'll see a more powerful use for it.
You can see that `frame_info.lines` includes some lines of surrounding context. By default it includes 3 pieces of context before the main line and 1 piece after. We can configure the amount of context by passing options:
```python
options = stack_data.Options(before=1, after=0)
frame_info = stack_data.FrameInfo(frame, options)
```
Then the output looks like:
```http://github.com/alexmojaki/stack_dataMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-4f0b6fd7-836c-4e1b-a640-3f9066c5363epython-stack-datasrc98ad1e7b2b18c81b66e9f3823a13948911e9770aadfe0023e599bad1d6eca592Extract data from python stack frames and tracebacks for informative displays 6 | for i in range(5):
7 | row = []
8 | result.append(row)
--> 9 | print_stack()
10 | for j in range(5):
```
The code for `print_stack()` is fairly self-explanatory. If you want to learn more details about a particular class or method I suggest looking through some docstrings. `FrameInfo` is a class that accepts either a frame or a traceback object and provides a bunch of nice attributes and properties (which are cached so you don't need to worry about performance). In particular `frame_info.lines` is a list of `Line` objects. `line.render()` returns the source code of that line suitable for display. Without any arguments it simply strips any common leading indentation. Later on we'll see a more powerful use for it.
You can see that `frame_info.lines` includes some lines of surrounding context. By default it includes 3 pieces of context before the main line and 1 piece after. We can configure the amount of context by passing options:
```python
options = stack_data.Options(before=1, after=0)
frame_info = stack_data.FrameInfo(frame, options)
```
Then the output looks like:
```http://github.com/alexmojaki/stack_dataMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-51877d7d-3b5d-4383-9442-ec86b3670c22python-stack-datasrc46916a2ee3221306cf10eebf2c87dfdb08f69cce4ae55cb8b4dc7f62b2b7700eExtract data from python stack frames and tracebacks for informative displays 6 | for i in range(5):
7 | row = []
8 | result.append(row)
--> 9 | print_stack()
10 | for j in range(5):
```
The code for `print_stack()` is fairly self-explanatory. If you want to learn more details about a particular class or method I suggest looking through some docstrings. `FrameInfo` is a class that accepts either a frame or a traceback object and provides a bunch of nice attributes and properties (which are cached so you don't need to worry about performance). In particular `frame_info.lines` is a list of `Line` objects. `line.render()` returns the source code of that line suitable for display. Without any arguments it simply strips any common leading indentation. Later on we'll see a more powerful use for it.
You can see that `frame_info.lines` includes some lines of surrounding context. By default it includes 3 pieces of context before the main line and 1 piece after. We can configure the amount of context by passing options:
```python
options = stack_data.Options(before=1, after=0)
frame_info = stack_data.FrameInfo(frame, options)
```
Then the output looks like:
```http://github.com/alexmojaki/stack_dataMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b060cffa-a5d4-4ab6-971f-e0f1fd1d9a49python-stack-datasrc69e93513dce6c0fd28bc06fad0bd551e44f3bb49b4621afc9a6060838ce62da0Extract data from python stack frames and tracebacks for informative displays 6 | for i in range(5):
7 | row = []
8 | result.append(row)
--> 9 | print_stack()
10 | for j in range(5):
```
The code for `print_stack()` is fairly self-explanatory. If you want to learn more details about a particular class or method I suggest looking through some docstrings. `FrameInfo` is a class that accepts either a frame or a traceback object and provides a bunch of nice attributes and properties (which are cached so you don't need to worry about performance). In particular `frame_info.lines` is a list of `Line` objects. `line.render()` returns the source code of that line suitable for display. Without any arguments it simply strips any common leading indentation. Later on we'll see a more powerful use for it.
You can see that `frame_info.lines` includes some lines of surrounding context. By default it includes 3 pieces of context before the main line and 1 piece after. We can configure the amount of context by passing options:
```python
options = stack_data.Options(before=1, after=0)
frame_info = stack_data.FrameInfo(frame, options)
```
Then the output looks like:
```http://github.com/alexmojaki/stack_dataMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e3ae9d8d-dcac-467d-a5c7-6921ed51df87python-stack-datasrc40aca282c610af833a242b30daf273937980b3c98c24d855672e3c399485495aExtract data from python stack frames and tracebacks for informative displays 6 | for i in range(5):
7 | row = []
8 | result.append(row)
--> 9 | print_stack()
10 | for j in range(5):
```
The code for `print_stack()` is fairly self-explanatory. If you want to learn more details about a particular class or method I suggest looking through some docstrings. `FrameInfo` is a class that accepts either a frame or a traceback object and provides a bunch of nice attributes and properties (which are cached so you don't need to worry about performance). In particular `frame_info.lines` is a list of `Line` objects. `line.render()` returns the source code of that line suitable for display. Without any arguments it simply strips any common leading indentation. Later on we'll see a more powerful use for it.
You can see that `frame_info.lines` includes some lines of surrounding context. By default it includes 3 pieces of context before the main line and 1 piece after. We can configure the amount of context by passing options:
```python
options = stack_data.Options(before=1, after=0)
frame_info = stack_data.FrameInfo(frame, options)
```
Then the output looks like:
```http://github.com/alexmojaki/stack_dataMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-4f06c15a-5f4a-4625-b144-c0c9317c8b4apython-stack-data-helpnoarchc89096d0cb78d49c6761ce3d9812c7a05b95ee0c3d412f5aa420fe47939f7f48Development documents and examples for stack-data 6 | for i in range(5):
7 | row = []
8 | result.append(row)
--> 9 | print_stack()
10 | for j in range(5):
```
The code for `print_stack()` is fairly self-explanatory. If you want to learn more details about a particular class or method I suggest looking through some docstrings. `FrameInfo` is a class that accepts either a frame or a traceback object and provides a bunch of nice attributes and properties (which are cached so you don't need to worry about performance). In particular `frame_info.lines` is a list of `Line` objects. `line.render()` returns the source code of that line suitable for display. Without any arguments it simply strips any common leading indentation. Later on we'll see a more powerful use for it.
You can see that `frame_info.lines` includes some lines of surrounding context. By default it includes 3 pieces of context before the main line and 1 piece after. We can configure the amount of context by passing options:
```python
options = stack_data.Options(before=1, after=0)
frame_info = stack_data.FrameInfo(frame, options)
```
Then the output looks like:
```http://github.com/alexmojaki/stack_dataMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-51877d7d-3b5d-4383-9442-ec86b3670c22python-stack-data-0.6.2-1.src.rpmpython-stack-data-helpnoarch77ffeb5a0645865b3df4e5da26accb7d09cfe8013a36e1096e659434a51371c1Development documents and examples for stack-data 6 | for i in range(5):
7 | row = []
8 | result.append(row)
--> 9 | print_stack()
10 | for j in range(5):
```
The code for `print_stack()` is fairly self-explanatory. If you want to learn more details about a particular class or method I suggest looking through some docstrings. `FrameInfo` is a class that accepts either a frame or a traceback object and provides a bunch of nice attributes and properties (which are cached so you don't need to worry about performance). In particular `frame_info.lines` is a list of `Line` objects. `line.render()` returns the source code of that line suitable for display. Without any arguments it simply strips any common leading indentation. Later on we'll see a more powerful use for it.
You can see that `frame_info.lines` includes some lines of surrounding context. By default it includes 3 pieces of context before the main line and 1 piece after. We can configure the amount of context by passing options:
```python
options = stack_data.Options(before=1, after=0)
frame_info = stack_data.FrameInfo(frame, options)
```
Then the output looks like:
```http://github.com/alexmojaki/stack_dataMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e3ae9d8d-dcac-467d-a5c7-6921ed51df87python-stack-data-0.6.2-1.src.rpmpython-stack-data-helpnoarch056f62caac51b88d17aae4c9318ed1241cae9c3532d3dfb2a445f6da1614636fDevelopment documents and examples for stack-data 6 | for i in range(5):
7 | row = []
8 | result.append(row)
--> 9 | print_stack()
10 | for j in range(5):
```
The code for `print_stack()` is fairly self-explanatory. If you want to learn more details about a particular class or method I suggest looking through some docstrings. `FrameInfo` is a class that accepts either a frame or a traceback object and provides a bunch of nice attributes and properties (which are cached so you don't need to worry about performance). In particular `frame_info.lines` is a list of `Line` objects. `line.render()` returns the source code of that line suitable for display. Without any arguments it simply strips any common leading indentation. Later on we'll see a more powerful use for it.
You can see that `frame_info.lines` includes some lines of surrounding context. By default it includes 3 pieces of context before the main line and 1 piece after. We can configure the amount of context by passing options:
```python
options = stack_data.Options(before=1, after=0)
frame_info = stack_data.FrameInfo(frame, options)
```
Then the output looks like:
```http://github.com/alexmojaki/stack_dataMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-4f06c15a-5f4a-4625-b144-c0c9317c8b4apython-stack-data-0.6.2-1.src.rpmpython-templated-dictionarysrc9553ce337b009c2b3bbbbacccc96e625f6fb30184c6761cf2e35625432d0257eDictionary with Jinja2 expansionDictionary where __getitem__() is run through Jinja2 template.https://github.com/xsuchy/templated-dictionaryGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-aadf4ccc-21dd-4068-9006-7d7f80ba1eabpython-templated-dictionarysrc50ee6ddc56acfa8cb41b8eda8459ace50b4f30f380e56edd03302aff7356f0e8Dictionary with Jinja2 expansionDictionary where __getitem__() is run through Jinja2 template.https://github.com/xsuchy/templated-dictionaryGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-55dcf74d-ae27-439a-97b0-3cd39b050345python-templated-dictionary-helpnoarch631bf1b127d1a559e1013be55c0627606eebbcbf5fde5ab79b03e3b20d9d2379Development documents and examples for templated-dictionaryDictionary where __getitem__() is run through Jinja2 template.https://github.com/xsuchy/templated-dictionaryGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-aadf4ccc-21dd-4068-9006-7d7f80ba1eabpython-templated-dictionary-1.2-1.src.rpmpython-templated-dictionary-helpnoarchef477d587b7812d607ff7ff9095e581de4b92041c5c3c0e45d4401e3870c44e4Development documents and examples for templated-dictionaryDictionary where __getitem__() is run through Jinja2 template.https://github.com/xsuchy/templated-dictionaryGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-55dcf74d-ae27-439a-97b0-3cd39b050345python-templated-dictionary-1.2-1.src.rpmpython3-Authlibnoarcha5f0d57cc5fda0c958a8560b27d2580c1a08110e47dc5727e5361d1f3bc6cfaeThe ultimate Python library in building OAuth and OpenID Connect servers and clients.The ultimate Python library in building OAuth and OpenID Connect servers.
JWS, JWK, JWA, JWT are included.https://authlib.org/BSD 3-Clause LicenseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b57784f7-d625-4237-995f-4bbe27608752python-Authlib-1.2.0-1.src.rpmpython3-CCColUtilsx86_64b387404f12605b48eab43526cc0913bffc668df461a49d2a8e6f6446e75cde1eKerberos5 Credential Cache Collection UtilitiesKerberos5 Credential Cache Collection Utilities.https://pagure.io/cccolutilsGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-46f4b592-1360-4414-8da0-da81cd95a8fcpython-CCColUtils-1.5-2.src.rpmpython3-Flask-Cachingnoarch24236b6c4d9eaaea1258b594d7f7dd4aad3df340cfce8136c875d4ac5f12e6bdAdds caching support to Flask applications.A fork of the `Flask-cache`_ extension which adds easy cache support to Flask.https://github.com/pallets-eco/flask-cachingBSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-261fe3ab-c3ac-4e5e-94ab-7b0b4980da67python-Flask-Caching-2.0.2-1.src.rpmpython3-Flask-Cachingnoarch88d2c89a6a8280a5005469f65fec2bf922c292e3d18b55df77091124aed10595Adds caching support to Flask applications.A fork of the `Flask-cache`_ extension which adds easy cache support to Flask.https://github.com/pallets-eco/flask-cachingBSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-57e9c2a1-b0f8-448a-94e3-60573f85c1f8python-Flask-Caching-2.0.2-1.src.rpmpython3-Flask-OpenIDnoarchc030b241a33cd538cac45742f1434b60973feecd9702c2eb02a2f611fbaecafdOpenID support for FlaskFlask-OpenID adds openid support to flask applicationshttp://github.com/mitsuhiko/flask-openid/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-601340c1-2fa6-48f2-a006-a5cf1371a23fpython-Flask-OpenID-1.3.0-2.src.rpmpython3-Flask-WTFnoarche385a1ebe7284dac2bd9c322b4c546795dfbc6a72733d168e8c1c7877381ee7eForm rendering, validation, and CSRF protection for Flask with WTForms.Simple integration of Flask and WTForms, including CSRF, file upload,
and reCAPTCHA.https://github.com/wtforms/flask-wtf/BSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c3c1fda4-0c66-46b4-8ebb-819a601a0f6cpython-Flask-WTF-1.1.1-1.src.rpmpython3-Flask-WTFnoarchea8cb68fd07f31fa29f821e280013f00ffeb982d7e553abd1cf7bc651b1a24e8Form rendering, validation, and CSRF protection for Flask with WTForms.Simple integration of Flask and WTForms, including CSRF, file upload,
and reCAPTCHA.https://github.com/wtforms/flask-wtf/BSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e963fa4c-7a87-4023-8345-780b6bcfa9ebpython-Flask-WTF-1.1.1-1.src.rpmpython3-WTFormsnoarchd098c06ee5a372fbef2344977a099645b05442672b7374b9dfedbf912ba9526bForm validation and rendering for Python web development.WTForms is a flexible forms validation and rendering library for Python
web development. It can work with whatever web framework and template
engine you choose. It supports data validation, CSRF protection,
internationalization (I18N), and more. There are various community
libraries that provide closer integration with popular frameworks.https://wtforms.readthedocs.io/BSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5a4f1398-97a4-4e2d-9eea-ec41cdd7b2fapython-WTForms-3.0.1-1.src.rpmpython3-WTFormsnoarch21e3a4a17c73416b6f61de21b5a2966bfeea5b3a50cceda46618ba5ed1fd6e69Form validation and rendering for Python web development.WTForms is a flexible forms validation and rendering library for Python
web development. It can work with whatever web framework and template
engine you choose. It supports data validation, CSRF protection,
internationalization (I18N), and more. There are various community
libraries that provide closer integration with popular frameworks.https://wtforms.readthedocs.io/BSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-16c9d501-f242-4a4d-a68f-71628488446bpython-WTForms-3.0.1-1.src.rpmpython3-XStatic-Bootstrap-SCSSnoarchbd6115a5d1ea114fc3840ca90c83ad167793c25f7a4ed12d24abbaae72f093ccBootstrap-SCSS 3.4.1 (XStatic packaging standard)Bootstrap style library packaged for setuptools (easy_install) / pip.
This package is intended to be used by **any** project that needs these files.
It intentionally does **not** provide any extra code except some metadata
**nor** has any extra requirements. You MAY use some minimal support code from
the XStatic base package, if you like.
You can find more info about the xstatic packaging way in the package `XStatic`.https://github.com/twbs/bootstrap-sassMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-369a2a50-5b31-4340-b4c7-2cfebae798e0python-XStatic-Bootstrap-SCSS-3.4.1.0-1.src.rpmpython3-XStatic-DataTablesnoarch2d316088a2b669b73a47344688f4edd2f5a0fdb045abef6e383787c544416002DataTables 1.10.15 (XStatic packaging standard)The DataTables plugin for jQuery packaged for setuptools (easy_install) / pip.
This package is intended to be used by **any** project that needs these files.
It intentionally does **not** provide any extra code except some metadata
**nor** has any extra requirements. You MAY use some minimal support code from
the XStatic base package, if you like.
You can find more info about the xstatic packaging way in the package `XStatic`.http://www.datatables.net(same as DataTables)openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e1b589f1-bac2-41a2-aa5b-de4800cd510apython-XStatic-DataTables-1.10.15.1-1.src.rpmpython3-XStatic-Patternflynoarch2e828b008638d0cca73ec9b45db4ec3d4c4e32199fe4fc601142fd60df865ea0Patternfly 3.21.0 (XStatic packaging standard)Patternfly style library packaged for setuptools (easy_install) / pip.
This package is intended to be used by **any** project that needs these files.
It intentionally does **not** provide any extra code except some metadata
**nor** has any extra requirements. You MAY use some minimal support code from
the XStatic base package, if you like.
You can find more info about the xstatic packaging way in the package `XStatic`.https://www.patternfly.org/Apache v2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-796a8aa6-2c62-463f-8907-f6a6d6cc37a1python-XStatic-Patternfly-3.21.0.1-1.src.rpmpython3-argparse-manpagenoarch0c2ed738cb83d951e02cf2011f96de77f9a35a7d076a473420b829abfe589e56Build manual page from python's ArgumentParser object.Automatically build manpage from argparsehttps://github.com/praiskup/argparse-manpageApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-84277450-6796-4958-bb16-2a556ca96233python-argparse-manpage-4-1.src.rpm/usr/bin/argparse-manpagepython3-asttokensnoarch6a758d60e6ac2998deb3a0a18c938b894932225f08f46e9dc34bb82e3d68d687Module to annotate Python abstract syntax trees with source code positionsThe asttokens module annotates Python abstract syntax trees (ASTs)
with the positions of tokens and text in the source code that
generated them. This makes it possible for tools that work with
logical AST nodes to find the particular text that resulted in those
nodes, for example for automated refactoring or highlighting.https://github.com/gristlabs/asttokensApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-1075d000-8b1d-4320-84c9-c5ff0871cbc0python-asttokens-2.2.1-1.src.rpmpython3-backoffnoarch72100a0acfb365845115a54cdad006cd19d4b70fc1cf779fc3027a78a1666295Function decoration for backoff and retryThis module provides function decorators which can be used to wrap a\
function such that it will be retried until some condition is met. It\
is meant to be of use when accessing unreliable resources with the\
potential for intermittent failures i.e. network resources and external\
APIs. Somewhat more generally, it may also be of use for dynamically\
polling resources for externally generated content.https://github.com/litl/backoffMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d13c4a35-79d2-4951-8f4c-1c0a1b633f74python-backoff-2.2.1-1.src.rpmpython3-blessednoarch11cf45ae139fa832a479f9098f9c7a9767b639f57e92b3c166a4216ebaa74e26A thin, practical wrapper around terminal capabilities in PythonBlessed is a thin, practical wrapper around terminal styling, screen
positioning, and keyboard input.
It provides:
- Styles, color, and maybe a little positioning without necessarily clearing
the whole screen first.
- Works great with standard Python string formatting.
- Provides up-to-the-moment terminal height and width, so you can respond
to terminal size changes.
- Avoids making a mess if the output gets piped to a non-terminal: outputs
to any file-like object such as StringIO, files, or pipes.
- Uses the terminfo(5) database so it works with any terminal type and
supports any terminal capability: No more C-like calls to tigetstr and
tparm.
- Keeps a minimum of internal state, so you can feel free to mix and match
with calls to curses or whatever other terminal libraries you like.
- Provides plenty of context managers to safely express terminal modes,
automatically restoring the terminal to a safe state on exit.
- Act intelligently when somebody redirects your output to a file, omitting
all of the terminal sequences such as styling, colors, or positioning.
- Dead-simple keyboard handling: safely decoding unicode input in your
system’s preferred locale and supports application/arrow keys.
- Allows the printable length of strings containing sequences to be
determined.https://github.com/jquast/blessedMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-75fad790-07a0-4de3-981e-def083f20401python-blessed-1.19.1-4.src.rpmpython3-blessednoarch923dc846ebcfa9a226a91abab73a8829762035542383d43a2dffbe2478a64629Easy, practical library for making terminal apps, by providing an elegant, well-documented interface to Colors, Keyboard input, and screen Positioning capabilities.Blessed is an easy, practical library for making python terminal appshttps://github.com/jquast/blessedMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3b9f605c-1bf6-413a-ba8a-e7723358bae3python-blessed-1.20.0-1.src.rpmpython3-cachelibnoarch041e4852154bd7c1bf786160668b4a71a136ab09862d8260cc4f00c6d9a2b731A collection of cache libraries in the same API interface.A collection of cache libraries in the same API interface. Extracted from werkzeug.https://github.com/pallets-eco/cachelibBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-08717eb7-0000-4ffa-88a5-17d9aaa7e7d2python-cachelib-0.9.0-1.src.rpmpython3-coprnoarch4e64d2fcb2ce8d1ede6991215b31b3814b58477d8c41aaa0f2a44b8f3bcadde7Python interface for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python interface to access Copr service. Mostly useful
for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d90c9b8f-0c15-4528-b895-e5ca7ad50c75python-copr-1.125-1.src.rpmpython3-coprnoarch5d1e138b7787457894ae2017a07e73c287093a9c454cb0858debc79d1c3ba830Python interface for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python interface to access Copr service. Mostly useful
for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-016fc85c-27d8-4287-9ac0-26323f611d38python-copr-1.128-1.git.37.cea32e7.src.rpmpython3-coprnoarch6d4bcfb83cc6bb27cebdcf29a1764e4a61bdeac1621390876352f6883658089fPython interface for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python interface to access Copr service. Mostly useful
for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a6762820-df4c-4bdc-a2b3-876fc06de658python-copr-1.129-1.git.52.0b462e7.src.rpmpython3-coprnoarch286546ce047383bb4c9c402623392666da8cca6e9e4bc8d863c09ce4dffa0f74Python interface for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python interface to access Copr service. Mostly useful
for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5f1ee2f4-9fbb-4045-b276-09b12f94efd4python-copr-1.129-1.git.7640.d26c50c.src.rpmpython3-coprnoarch7e05f4844ec463b55ccf22a7e34b687ea47332441fafbc39faf5000314ac016cPython interface for CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python interface to access Copr service. Mostly useful
for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6c0f72be-1613-4132-bd94-4999024fa515python-copr-1.129-1.src.rpmpython3-copr-commonnoarcha47320fda446350c69551971e155056abed217470e6afd0e1d2739d41218b739Python code used by CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python code used by other Copr packages. Mostly
useful for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-54ca5422-70e9-41aa-a91c-074abe07a4cbpython-copr-common-0.18-1.git.137.c392fd6.src.rpmpython3-copr-commonnoarchd26bb91045b5bdd957acdec08263c271edfaeba8623a2c2e12cf870317bd841fPython code used by CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python code used by other Copr packages. Mostly
useful for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-008e50b3-dbd3-472d-bf9c-e74d06fca1a3python-copr-common-0.18-1.src.rpmpython3-copr-commonnoarch1dc2197eb8a79b0d32123a58acb9e13bb2791495a279ae0cb3031c91bbba322cPython code used by CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python code used by other Copr packages. Mostly
useful for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-41d57ab4-8daf-46d9-b5d4-445ebfa9c641python-copr-common-0.19-1.src.rpmpython3-copr-commonnoarch2689ea630089513e42f01529929a7c2bed36c9d799fcbeb483ca060aa6f8d9dfPython code used by CoprCOPR is lightweight build system. It allows you to create new project in WebUI,
and submit new builds and COPR will create yum repository from latest builds.
This package contains python code used by other Copr packages. Mostly
useful for developers only.https://github.com/fedora-copr/coprGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c7f2364a-c42b-4917-a1d8-c1e21d84a48cpython-copr-common-0.19-1.src.rpmpython3-crudininoarch851d1a476683d9fce0147fac9ab8521c3e6741653e68e7a582c1d9e185760bd2A utility for manipulating ini filescrudini A utility for manipulating ini fileshttp://github.com/pixelb/crudiniGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3f03d4e6-19c6-4b86-aacb-00b92a42221dpython-crudini-0.9.3-2.src.rpm/usr/bin/crudinipython3-debtcollectornoarch63a031838893cb3c8e5a092b4ce0ff15227978474ec98304bfc122212c03cc22A collection of Python deprecation patterns and strategies that help you collect your technical debt in a non-destructive manner.A collection of Python deprecation patterns and strategies that help you collect your technical debt in a non-destructive manner.https://docs.openstack.org/debtcollector/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c3c25227-b092-4b7c-9c39-d1d3649ab7d2python-debtcollector-2.5.0-1.src.rpmpython3-email-validatornoarch4540e3521c77813a7a93db18965c6d51cbf72793acb9ebffa4c264bdc3cdfd29A robust email address syntax and deliverability validation library.A robust email address syntax and deliverability validation library for
Python by [Joshua Tauberer](https://joshdata.me).
This library validates that a string is of the form `name@example.com`. This is
the sort of validation you would want for an email-based login form on
a website.
Key features:
* Checks that an email address has the correct syntax --- good for
login forms or other uses related to identifying users.
* Gives friendly error messages when validation fails (appropriate to show
to end users).
* (optionally) Checks deliverability: Does the domain name resolve? And you can override the default DNS resolver.
* Supports internationalized domain names and (optionally)
internationalized local parts, but blocks unsafe characters.
* Normalizes email addresses (super important for internationalized
addresses! see below).
The library is NOT for validation of the To: line in an email message
(e.g. `My Name <my@address.com>`), which
[flanker](https://github.com/mailgun/flanker) is more appropriate for.
And this library does NOT permit obsolete forms of email addresses, so
if you need strict validation against the email specs exactly, use
[pyIsEmail](https://github.com/michaelherold/pyIsEmail).
This library is tested with Python 3.6+ but should work in earlier versions:
[![Build Status](https://app.travis-ci.com/JoshData/python-email-validator.svg?branch=main)](https://app.travis-ci.com/JoshData/python-email-validator)https://github.com/JoshData/python-email-validatorCC0 (copyright waived)openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5f49315d-00ab-43c2-9857-7fa2943762e1python-email-validator-1.3.1-1.src.rpm/usr/bin/email_validatorpython3-email-validatornoarcha36055b33ec408a3621db1f8fdbdfe87f48fb6c2a979b7bd5386402ff2079347A robust email address syntax and deliverability validation library.A robust email address syntax and deliverability validation library for
Python by [Joshua Tauberer](https://joshdata.me).
This library validates that a string is of the form `name@example.com`. This is
the sort of validation you would want for an email-based login form on
a website.
Key features:
* Checks that an email address has the correct syntax --- good for
login forms or other uses related to identifying users.
* Gives friendly error messages when validation fails (appropriate to show
to end users).
* (optionally) Checks deliverability: Does the domain name resolve? And you can override the default DNS resolver.
* Supports internationalized domain names and (optionally)
internationalized local parts, but blocks unsafe characters.
* Normalizes email addresses (super important for internationalized
addresses! see below).
The library is NOT for validation of the To: line in an email message
(e.g. `My Name <my@address.com>`), which
[flanker](https://github.com/mailgun/flanker) is more appropriate for.
And this library does NOT permit obsolete forms of email addresses, so
if you need strict validation against the email specs exactly, use
[pyIsEmail](https://github.com/michaelherold/pyIsEmail).
This library is tested with Python 3.6+ but should work in earlier versions:
[![Build Status](https://app.travis-ci.com/JoshData/python-email-validator.svg?branch=main)](https://app.travis-ci.com/JoshData/python-email-validator)https://github.com/JoshData/python-email-validatorCC0 (copyright waived)openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e85fe846-0594-4c34-a1f1-e4b97a058a32python-email-validator-1.3.1-1.src.rpm/usr/bin/email_validatorpython3-executingnoarch1af6d29726871c45836cb125621e437bee9893dc8da1fda92e3280af1a16fe8dGet the currently executing AST node of a frame, and other information
[![Build Status](https://github.com/alexmojaki/executing/workflows/Tests/badge.svg?branch=master)](https://github.com/alexmojaki/executing/actions) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/executing/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/executing?branch=master) [![Supports Python versions 2.7 and 3.5+, including PyPy](https://img.shields.io/pypi/pyversions/executing.svg)](https://pypi.python.org/pypi/executing)
This mini-package lets you get information about what a frame is currently doing, particularly the AST node being executed.
* [Usage](#usage)
* [Getting the AST node](#getting-the-ast-node)
* [Getting the source code of the node](#getting-the-source-code-of-the-node)
* [Getting the `__qualname__` of the current function](#getting-the-__qualname__-of-the-current-function)
* [The Source class](#the-source-class)
* [Installation](#installation)
* [How does it work?](#how-does-it-work)
* [Is it reliable?](#is-it-reliable)
* [Which nodes can it identify?](#which-nodes-can-it-identify)
* [Libraries that use this](#libraries-that-use-this)
```python
import executing
node = executing.Source.executing(frame).node
```
Then `node` will be an AST node (from the `ast` standard library module) or None if the node couldn't be identified (which may happen often and should always be checked).
`node` will always be the same instance for multiple calls with frames at the same point of execution.
If you have a traceback object, pass it directly to `Source.executing()` rather than the `tb_frame` attribute to get the correct node.
For this you will need to separately install the [`asttokens`](https://github.com/gristlabs/asttokens) library, then obtain an `ASTTokens` object:
```python
executing.Source.executing(frame).source.asttokens()
```
or:
```python
executing.Source.for_frame(frame).asttokens()
```
or use one of the convenience methods:
```python
executing.Source.executing(frame).text()
executing.Source.executing(frame).text_range()
```
```python
executing.Source.executing(frame).code_qualname()
```
or:
```python
executing.Source.for_frame(frame).code_qualname(frame.f_code)
```
Everything goes through the `Source` class. Only one instance of the class is created for each filename. Subclassing it to add more attributes on creation or methods is recommended. The classmethods such as `executing` will respect this. See the source code and docstrings for more detail.
pip install executing
If you don't like that you can just copy the file `executing.py`, there are no dependencies (but of course you won't get updates).
Suppose the frame is executing this line:
```python
self.foo(bar.x)
```
and in particular it's currently obtaining the attribute `self.foo`. Looking at the bytecode, specifically `frame.f_code.co_code[frame.f_lasti]`, we can tell that it's loading an attribute, but it's not obvious which one. We can narrow down the statement being executed using `frame.f_lineno` and find the two `ast.Attribute` nodes representing `self.foo` and `bar.x`. How do we find out which one it is, without recreating the entire compiler in Python?
The trick is to modify the AST slightly for each candidate expression and observe the changes in the bytecode instructions. We change the AST to this:
```python
(self.foo ** 'longuniqueconstant')(bar.x)
```
and compile it, and the bytecode will be almost the same but there will be two new instructions:
LOAD_CONST 'longuniqueconstant'
BINARY_POWER
and just before that will be a `LOAD_ATTR` instruction corresponding to `self.foo`. Seeing that it's in the same position as the original instruction lets us know we've found our match.
Yes - if it identifies a node, you can trust that it's identified the correct one. The tests are very thorough - in addition to unit tests which check various situations directly, there are property tests against a large number of files (see the filenames printed in [this build](https://travis-ci.org/alexmojaki/executing/jobs/557970457)) with real code. Specifically, for each file, the tests:
1. Identify as many nodes as possible from all the bytecode instructions in the file, and assert that they are all distinct
2. Find all the nodes that should be identifiable, and assert that they were indeed identified somewhere
In other words, it shows that there is a one-to-one mapping between the nodes and the instructions that can be handled. This leaves very little room for a bug to creep in.
Furthermore, `executing` checks that the instructions compiled from the modified AST exactly match the original code save for a few small known exceptions. This accounts for all the quirks and optimisations in the interpreter.
Currently it works in almost all cases for the following `ast` nodes:
- `Call`, e.g. `self.foo(bar)`
- `Attribute`, e.g. `point.x`
- `Subscript`, e.g. `lst[1]`
- `BinOp`, e.g. `x + y` (doesn't include `and` and `or`)
- `UnaryOp`, e.g. `-n` (includes `not` but only works sometimes)
- `Compare` e.g. `a < b` (not for chains such as `0 < p < 1`)
The plan is to extend to more operations in the future.
- **[`stack_data`](https://github.com/alexmojaki/stack_data)**: Extracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default. Also uses another related library of mine: **[`pure_eval`](https://github.com/alexmojaki/pure_eval)**.
- **[`futurecoder`](https://futurecoder.io/)**: Highlights the executing node in tracebacks using `executing` via `stack_data`, and provides debugging with `snoop`.
- **[`snoop`](https://github.com/alexmojaki/snoop)**: A feature-rich and convenient debugging library. Uses `executing` to show the operation which caused an exception and to allow the `pp` function to display the source of its arguments.
- **[`heartrate`](https://github.com/alexmojaki/heartrate)**: A simple real time visualisation of the execution of a Python program. Uses `executing` to highlight currently executing operations, particularly in each frame of the stack trace.
- **[`sorcery`](https://github.com/alexmojaki/sorcery)**: Dark magic delights in Python. Uses `executing` to let special callables called spells know where they're being called from.
- **[`IPython`](https://github.com/ipython/ipython/pull/12150)**: Highlights the executing node in tracebacks using `executing` via [`stack_data`](https://github.com/alexmojaki/stack_data).
- **[`icecream`](https://github.com/gruns/icecream)**: 🍦 Sweet and creamy print debugging. Uses `executing` to identify where `ic` is called and print its arguments.
- **[`friendly_traceback`](https://github.com/friendly-traceback/friendly-traceback)**: Uses `stack_data` and `executing` to pinpoint the cause of errors and provide helpful explanations.
- **[`python-devtools`](https://github.com/samuelcolvin/python-devtools)**: Uses `executing` for print debugging similar to `icecream`.
- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events.
- **[`varname`](https://github.com/pwwang/python-varname)**: Dark magics about variable names in python. Uses `executing` to find where its various magical functions like `varname` and `nameof` are called from.https://github.com/alexmojaki/executingMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6a865ba1-ab63-488a-ba91-0ac32c990f12python-executing-1.2.0-1.src.rpmpython3-executingnoarch36296237579346201667d57fa506ee7bb22753d7597d4b292dcd3a8c8a744611Get the currently executing AST node of a frame, and other information
[![Build Status](https://github.com/alexmojaki/executing/workflows/Tests/badge.svg?branch=master)](https://github.com/alexmojaki/executing/actions) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/executing/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/executing?branch=master) [![Supports Python versions 2.7 and 3.5+, including PyPy](https://img.shields.io/pypi/pyversions/executing.svg)](https://pypi.python.org/pypi/executing)
This mini-package lets you get information about what a frame is currently doing, particularly the AST node being executed.
* [Usage](#usage)
* [Getting the AST node](#getting-the-ast-node)
* [Getting the source code of the node](#getting-the-source-code-of-the-node)
* [Getting the `__qualname__` of the current function](#getting-the-__qualname__-of-the-current-function)
* [The Source class](#the-source-class)
* [Installation](#installation)
* [How does it work?](#how-does-it-work)
* [Is it reliable?](#is-it-reliable)
* [Which nodes can it identify?](#which-nodes-can-it-identify)
* [Libraries that use this](#libraries-that-use-this)
```python
import executing
node = executing.Source.executing(frame).node
```
Then `node` will be an AST node (from the `ast` standard library module) or None if the node couldn't be identified (which may happen often and should always be checked).
`node` will always be the same instance for multiple calls with frames at the same point of execution.
If you have a traceback object, pass it directly to `Source.executing()` rather than the `tb_frame` attribute to get the correct node.
For this you will need to separately install the [`asttokens`](https://github.com/gristlabs/asttokens) library, then obtain an `ASTTokens` object:
```python
executing.Source.executing(frame).source.asttokens()
```
or:
```python
executing.Source.for_frame(frame).asttokens()
```
or use one of the convenience methods:
```python
executing.Source.executing(frame).text()
executing.Source.executing(frame).text_range()
```
```python
executing.Source.executing(frame).code_qualname()
```
or:
```python
executing.Source.for_frame(frame).code_qualname(frame.f_code)
```
Everything goes through the `Source` class. Only one instance of the class is created for each filename. Subclassing it to add more attributes on creation or methods is recommended. The classmethods such as `executing` will respect this. See the source code and docstrings for more detail.
pip install executing
If you don't like that you can just copy the file `executing.py`, there are no dependencies (but of course you won't get updates).
Suppose the frame is executing this line:
```python
self.foo(bar.x)
```
and in particular it's currently obtaining the attribute `self.foo`. Looking at the bytecode, specifically `frame.f_code.co_code[frame.f_lasti]`, we can tell that it's loading an attribute, but it's not obvious which one. We can narrow down the statement being executed using `frame.f_lineno` and find the two `ast.Attribute` nodes representing `self.foo` and `bar.x`. How do we find out which one it is, without recreating the entire compiler in Python?
The trick is to modify the AST slightly for each candidate expression and observe the changes in the bytecode instructions. We change the AST to this:
```python
(self.foo ** 'longuniqueconstant')(bar.x)
```
and compile it, and the bytecode will be almost the same but there will be two new instructions:
LOAD_CONST 'longuniqueconstant'
BINARY_POWER
and just before that will be a `LOAD_ATTR` instruction corresponding to `self.foo`. Seeing that it's in the same position as the original instruction lets us know we've found our match.
Yes - if it identifies a node, you can trust that it's identified the correct one. The tests are very thorough - in addition to unit tests which check various situations directly, there are property tests against a large number of files (see the filenames printed in [this build](https://travis-ci.org/alexmojaki/executing/jobs/557970457)) with real code. Specifically, for each file, the tests:
1. Identify as many nodes as possible from all the bytecode instructions in the file, and assert that they are all distinct
2. Find all the nodes that should be identifiable, and assert that they were indeed identified somewhere
In other words, it shows that there is a one-to-one mapping between the nodes and the instructions that can be handled. This leaves very little room for a bug to creep in.
Furthermore, `executing` checks that the instructions compiled from the modified AST exactly match the original code save for a few small known exceptions. This accounts for all the quirks and optimisations in the interpreter.
Currently it works in almost all cases for the following `ast` nodes:
- `Call`, e.g. `self.foo(bar)`
- `Attribute`, e.g. `point.x`
- `Subscript`, e.g. `lst[1]`
- `BinOp`, e.g. `x + y` (doesn't include `and` and `or`)
- `UnaryOp`, e.g. `-n` (includes `not` but only works sometimes)
- `Compare` e.g. `a < b` (not for chains such as `0 < p < 1`)
The plan is to extend to more operations in the future.
- **[`stack_data`](https://github.com/alexmojaki/stack_data)**: Extracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default. Also uses another related library of mine: **[`pure_eval`](https://github.com/alexmojaki/pure_eval)**.
- **[`futurecoder`](https://futurecoder.io/)**: Highlights the executing node in tracebacks using `executing` via `stack_data`, and provides debugging with `snoop`.
- **[`snoop`](https://github.com/alexmojaki/snoop)**: A feature-rich and convenient debugging library. Uses `executing` to show the operation which caused an exception and to allow the `pp` function to display the source of its arguments.
- **[`heartrate`](https://github.com/alexmojaki/heartrate)**: A simple real time visualisation of the execution of a Python program. Uses `executing` to highlight currently executing operations, particularly in each frame of the stack trace.
- **[`sorcery`](https://github.com/alexmojaki/sorcery)**: Dark magic delights in Python. Uses `executing` to let special callables called spells know where they're being called from.
- **[`IPython`](https://github.com/ipython/ipython/pull/12150)**: Highlights the executing node in tracebacks using `executing` via [`stack_data`](https://github.com/alexmojaki/stack_data).
- **[`icecream`](https://github.com/gruns/icecream)**: 🍦 Sweet and creamy print debugging. Uses `executing` to identify where `ic` is called and print its arguments.
- **[`friendly_traceback`](https://github.com/friendly-traceback/friendly-traceback)**: Uses `stack_data` and `executing` to pinpoint the cause of errors and provide helpful explanations.
- **[`python-devtools`](https://github.com/samuelcolvin/python-devtools)**: Uses `executing` for print debugging similar to `icecream`.
- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events.
- **[`varname`](https://github.com/pwwang/python-varname)**: Dark magics about variable names in python. Uses `executing` to find where its various magical functions like `varname` and `nameof` are called from.https://github.com/alexmojaki/executingMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-7f89dd53-1914-46db-8e99-c102482a6f62python-executing-1.2.0-1.src.rpmpython3-executingnoarcheddf68e4a43560f8682318133fc8ab562b60591fa157d07dc304f0b2fd132e64Get the currently executing AST node of a frame, and other information
[![Build Status](https://github.com/alexmojaki/executing/workflows/Tests/badge.svg?branch=master)](https://github.com/alexmojaki/executing/actions) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/executing/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/executing?branch=master) [![Supports Python versions 2.7 and 3.5+, including PyPy](https://img.shields.io/pypi/pyversions/executing.svg)](https://pypi.python.org/pypi/executing)
This mini-package lets you get information about what a frame is currently doing, particularly the AST node being executed.
* [Usage](#usage)
* [Getting the AST node](#getting-the-ast-node)
* [Getting the source code of the node](#getting-the-source-code-of-the-node)
* [Getting the `__qualname__` of the current function](#getting-the-__qualname__-of-the-current-function)
* [The Source class](#the-source-class)
* [Installation](#installation)
* [How does it work?](#how-does-it-work)
* [Is it reliable?](#is-it-reliable)
* [Which nodes can it identify?](#which-nodes-can-it-identify)
* [Libraries that use this](#libraries-that-use-this)
```python
import executing
node = executing.Source.executing(frame).node
```
Then `node` will be an AST node (from the `ast` standard library module) or None if the node couldn't be identified (which may happen often and should always be checked).
`node` will always be the same instance for multiple calls with frames at the same point of execution.
If you have a traceback object, pass it directly to `Source.executing()` rather than the `tb_frame` attribute to get the correct node.
For this you will need to separately install the [`asttokens`](https://github.com/gristlabs/asttokens) library, then obtain an `ASTTokens` object:
```python
executing.Source.executing(frame).source.asttokens()
```
or:
```python
executing.Source.for_frame(frame).asttokens()
```
or use one of the convenience methods:
```python
executing.Source.executing(frame).text()
executing.Source.executing(frame).text_range()
```
```python
executing.Source.executing(frame).code_qualname()
```
or:
```python
executing.Source.for_frame(frame).code_qualname(frame.f_code)
```
Everything goes through the `Source` class. Only one instance of the class is created for each filename. Subclassing it to add more attributes on creation or methods is recommended. The classmethods such as `executing` will respect this. See the source code and docstrings for more detail.
pip install executing
If you don't like that you can just copy the file `executing.py`, there are no dependencies (but of course you won't get updates).
Suppose the frame is executing this line:
```python
self.foo(bar.x)
```
and in particular it's currently obtaining the attribute `self.foo`. Looking at the bytecode, specifically `frame.f_code.co_code[frame.f_lasti]`, we can tell that it's loading an attribute, but it's not obvious which one. We can narrow down the statement being executed using `frame.f_lineno` and find the two `ast.Attribute` nodes representing `self.foo` and `bar.x`. How do we find out which one it is, without recreating the entire compiler in Python?
The trick is to modify the AST slightly for each candidate expression and observe the changes in the bytecode instructions. We change the AST to this:
```python
(self.foo ** 'longuniqueconstant')(bar.x)
```
and compile it, and the bytecode will be almost the same but there will be two new instructions:
LOAD_CONST 'longuniqueconstant'
BINARY_POWER
and just before that will be a `LOAD_ATTR` instruction corresponding to `self.foo`. Seeing that it's in the same position as the original instruction lets us know we've found our match.
Yes - if it identifies a node, you can trust that it's identified the correct one. The tests are very thorough - in addition to unit tests which check various situations directly, there are property tests against a large number of files (see the filenames printed in [this build](https://travis-ci.org/alexmojaki/executing/jobs/557970457)) with real code. Specifically, for each file, the tests:
1. Identify as many nodes as possible from all the bytecode instructions in the file, and assert that they are all distinct
2. Find all the nodes that should be identifiable, and assert that they were indeed identified somewhere
In other words, it shows that there is a one-to-one mapping between the nodes and the instructions that can be handled. This leaves very little room for a bug to creep in.
Furthermore, `executing` checks that the instructions compiled from the modified AST exactly match the original code save for a few small known exceptions. This accounts for all the quirks and optimisations in the interpreter.
Currently it works in almost all cases for the following `ast` nodes:
- `Call`, e.g. `self.foo(bar)`
- `Attribute`, e.g. `point.x`
- `Subscript`, e.g. `lst[1]`
- `BinOp`, e.g. `x + y` (doesn't include `and` and `or`)
- `UnaryOp`, e.g. `-n` (includes `not` but only works sometimes)
- `Compare` e.g. `a < b` (not for chains such as `0 < p < 1`)
The plan is to extend to more operations in the future.
- **[`stack_data`](https://github.com/alexmojaki/stack_data)**: Extracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default. Also uses another related library of mine: **[`pure_eval`](https://github.com/alexmojaki/pure_eval)**.
- **[`futurecoder`](https://futurecoder.io/)**: Highlights the executing node in tracebacks using `executing` via `stack_data`, and provides debugging with `snoop`.
- **[`snoop`](https://github.com/alexmojaki/snoop)**: A feature-rich and convenient debugging library. Uses `executing` to show the operation which caused an exception and to allow the `pp` function to display the source of its arguments.
- **[`heartrate`](https://github.com/alexmojaki/heartrate)**: A simple real time visualisation of the execution of a Python program. Uses `executing` to highlight currently executing operations, particularly in each frame of the stack trace.
- **[`sorcery`](https://github.com/alexmojaki/sorcery)**: Dark magic delights in Python. Uses `executing` to let special callables called spells know where they're being called from.
- **[`IPython`](https://github.com/ipython/ipython/pull/12150)**: Highlights the executing node in tracebacks using `executing` via [`stack_data`](https://github.com/alexmojaki/stack_data).
- **[`icecream`](https://github.com/gruns/icecream)**: 🍦 Sweet and creamy print debugging. Uses `executing` to identify where `ic` is called and print its arguments.
- **[`friendly_traceback`](https://github.com/friendly-traceback/friendly-traceback)**: Uses `stack_data` and `executing` to pinpoint the cause of errors and provide helpful explanations.
- **[`python-devtools`](https://github.com/samuelcolvin/python-devtools)**: Uses `executing` for print debugging similar to `icecream`.
- **[`sentry_sdk`](https://github.com/getsentry/sentry-python)**: Add the integration `sentry_sdk.integrations.executingExecutingIntegration()` to show the function `__qualname__` in each frame in sentry events.
- **[`varname`](https://github.com/pwwang/python-varname)**: Dark magics about variable names in python. Uses `executing` to find where its various magical functions like `varname` and `nameof` are called from.https://github.com/alexmojaki/executingMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3ce627ae-b694-49b8-ae2e-db33c972eaa1python-executing-1.2.0-1.src.rpmpython3-flask-whoosheenoarchdb56e9288c8dfbb7d582a2d3f3ec9f5331263f56ad27e77348c1dbecc7f78d03Flask-SQLAlchemy - Whoosh IntegrationCustomizable Flask - SQLAlchemy - Whoosh integrationhttps://github.com/bkabrda/flask-whoosheeBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d1e783fe-e081-4dd5-ac73-c73d10d50cbbpython-flask-whooshee-0.8.2-1.src.rpmpython3-html2textnoarche9a4a47c0c7f3dc66c2caff35281dd97120fdbe3992cb3af17b304cab5e6c6a3Turn HTML into equivalent Markdown-structured text.Convert HTML to Markdown-formatted text.https://github.com/Alir3z4/html2text/GPL-3.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-372ca4f5-56ac-44c1-a876-f2a271a8c050python-html2text-2020.1.16-1.src.rpm/usr/bin/html2textpython3-html5-parserx86_64bfac37cbfb6d17f79510e9eda9d8ec85d116fade3feb417ebc70243a18bbec70A fast, standards compliant, C based, HTML 5 parser for pythonA fast, standards compliant, C based, HTML 5 parser for pythonhttps://pypi.python.org/pypi/html5-parserASL 2.0 and MITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-53192bba-8f00-42e9-977d-0d0870131779python-html5-parser-0.4.10-1.src.rpmpython3-ipdbnoarch5ee9fc64a421fe1dab30e081dcaff041023cf0877301b5be403c052cafcc331eIPython-enabled pdbhttps://github.com/gotcha/ipdbBSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6a63f5bb-47c9-4416-8492-f19492a67c7epython-ipdb-0.13.13-1.src.rpm/usr/bin/ipdb3python3-ipythonnoarch95ffd7863bf0f15da1094037a48090e95eeba6bab2cdace91ca11ebe6329363eIPython: Productive Interactive ComputingIPython provides a rich toolkit to help you make the most out of using Python
interactively. Its main components are:
* A powerful interactive Python shell
* A `Jupyter <https://jupyter.org/>`_ kernel to work with Python code in Jupyter
notebooks and other interactive frontends.
The enhanced interactive Python shells have the following main features:
* Comprehensive object introspection.
* Input history, persistent across sessions.
* Caching of output results during a session with automatically generated
references.
* Extensible tab completion, with support by default for completion of python
variables and keywords, filenames and function keywords.
* Extensible system of 'magic' commands for controlling the environment and
performing many tasks related either to IPython or the operating system.
* A rich configuration system with easy switching between different setups
(simpler than changing $PYTHONSTARTUP environment variables every time).
* Session logging and reloading.
* Extensible syntax processing for special purpose situations.
* Access to the system shell with user-extensible alias system.
* Easily embeddable in other Python programs and GUIs.
* Integrated access to the pdb debugger and the Python profiler.
The latest development version is always available from IPython's `GitHub
site <http://github.com/ipython>`_.https://ipython.orgBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-08b7f7a3-e21b-4e5b-92d2-681d7a954ce9python-ipython-8.14.0-1.src.rpm/usr/bin/ipython/usr/bin/ipython3python3-ipythonnoarche5cabeb68897669a7d054cfbbd9b32792001719083441cfdd9bb4ab1c3485503IPython: Productive Interactive ComputingIPython provides a rich toolkit to help you make the most out of using Python
interactively. Its main components are:
* A powerful interactive Python shell
* A `Jupyter <https://jupyter.org/>`_ kernel to work with Python code in Jupyter
notebooks and other interactive frontends.
The enhanced interactive Python shells have the following main features:
* Comprehensive object introspection.
* Input history, persistent across sessions.
* Caching of output results during a session with automatically generated
references.
* Extensible tab completion, with support by default for completion of python
variables and keywords, filenames and function keywords.
* Extensible system of 'magic' commands for controlling the environment and
performing many tasks related either to IPython or the operating system.
* A rich configuration system with easy switching between different setups
(simpler than changing $PYTHONSTARTUP environment variables every time).
* Session logging and reloading.
* Extensible syntax processing for special purpose situations.
* Access to the system shell with user-extensible alias system.
* Easily embeddable in other Python programs and GUIs.
* Integrated access to the pdb debugger and the Python profiler.
The latest development version is always available from IPython's `GitHub
site <http://github.com/ipython>`_.https://ipython.orgBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f8141126-c2ac-41d0-8c79-cfac4dc75165python-ipython-8.14.0-1.src.rpm/usr/bin/ipython/usr/bin/ipython3python3-jedinoarch1ac5b96b550e05d3a9e0690f14b0434a6c1591b08c7dd765a4d2be376b02a399A static analysis tool for Python that is typically used in IDEs/editors pluginsJedi is a static analysis tool for Python that is typically used in IDEs/editors plugins.
It has a focus on autocompletion and goto functionality.
Other features include refactoring, code search and finding references.https://github.com/davidhalter/jediMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f9f566bf-d337-4c7b-b6b9-deb8297566dfpython-jedi-0.18.1-1.src.rpmpython3-keystoneauth1noarch71526552bfae0dbc1e70738a81a9e749fbd6edc0db5846297a2f6af7f50fb70bAuthentication Library for OpenStack IdentityKeystoneauth provides a standard way to do authentication and service requests \
within the OpenStack ecosystem. It is designed for use in conjunction with \
the existing OpenStack clients and for simplifying the process of writing \
new clients.https://docs.openstack.org/keystoneauth/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-302859f6-6ca6-4b92-b1ab-1b6ef212ae74python-keystoneauth1-5.1.0-1.src.rpmpython3-kojinoarche9302a39400d431061643ed9459379d25e96b104d31123b7c83e1bd8fd181650Build system tools python libraryKoji is a system for building and tracking RPMS.
This subpackage provides python functions and libraries.https://pagure.io/koji/LGPLv2 and GPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e6d5cee3-68fd-40d9-ada3-514b8b86f810koji-1.32.0-1.src.rpmpython3-littleutilsnoarch7d88883b90f16eecc3ab0fcd62d6cac66aae53b8d0c78ca7e3c57c387a89c059Small collection of Python utilitiesSmall collection of Python utilities.https://pypi.org/pypi/littleutilsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-39d7a377-28fe-48e5-bd1d-33b167eb137epython-littleutils-0.2.2-1.src.rpmpython3-matplotlib-inlinenoarchda9c178e0eaef1270965784fde31ee4e04f8153aece99be54f7588db0e83e134Inline Matplotlib backend for Jupyter
This package provides support for matplotlib to display figures directly inline in the Jupyter notebook and related clients, as shown below.
With conda:
```bash
conda install -c conda-forge matplotlib-inline
```
With pip:
```bash
pip install matplotlib-inline
```
Note that in current versions of JupyterLab and Jupyter Notebook, the explicit use of the `%matplotlib inline` directive is not needed anymore, though other third-party clients may still require it.
This will produce a figure immediately below:
```python
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 3*np.pi, 500)
plt.plot(x, np.sin(x**2))
plt.title('A simple chirp');
```
Licensed under the terms of the BSD 3-Clause License, by the IPython Development Team (see `LICENSE` file).
BSD 3-Clause License
Copyright (c) 2019-2022, IPython Development Team.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.https://github.com/ipython/matplotlib-inlineBSD 3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b3927d3b-3e30-4dcc-843b-bb9c300d3a76python-matplotlib-inline-0.1.6-1.src.rpmpython3-matplotlib-inlinenoarche17a8255b9ee4fd8204d0579641806f4840afc410e129ba5a3d1d6a0745a407aInline Matplotlib backend for Jupyter
This package provides support for matplotlib to display figures directly inline in the Jupyter notebook and related clients, as shown below.
With conda:
```bash
conda install -c conda-forge matplotlib-inline
```
With pip:
```bash
pip install matplotlib-inline
```
Note that in current versions of JupyterLab and Jupyter Notebook, the explicit use of the `%matplotlib inline` directive is not needed anymore, though other third-party clients may still require it.
This will produce a figure immediately below:
```python
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 3*np.pi, 500)
plt.plot(x, np.sin(x**2))
plt.title('A simple chirp');
```
Licensed under the terms of the BSD 3-Clause License, by the IPython Development Team (see `LICENSE` file).
BSD 3-Clause License
Copyright (c) 2019-2022, IPython Development Team.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.https://github.com/ipython/matplotlib-inlineBSD 3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-2e8a70e9-89c7-4386-bd07-d189d4e8956fpython-matplotlib-inline-0.1.6-1.src.rpmpython3-novaclientnoarchf65a73239c0d8a781b26fd31915cb3483137cefd8037adfb329c5e403f89aa19Client library for OpenStack Compute APIThis is a client for the OpenStack Nova API. There's a Python API (the
novaclient module), and a command-line script (nova). Each implements 100% of
the OpenStack Nova API.https://docs.openstack.org/python-novaclient/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-ba3d0a38-7ee2-4e04-a364-69c48187fe63python-novaclient-17.7.0-1.src.rpm/usr/bin/novapython3-openidnoarch61e833facfbf89f933a1b54f3c2d0fe74df99902cebe4720ed2244ddb90ffc86OpenID support for modern servers and consumers.This is a set of Python packages to support use of
the OpenID decentralized identity system in your application, update to Python
3. Want to enable single sign-on for your web site? Use the openid.consumer
package. Want to run your own OpenID server? Check out openid.server.
Includes example code and support for a variety of storage back-ends.http://github.com/necaris/python3-openidApache Software LicenseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6544559f-68b3-4844-b469-6cdfb63bda5cpython3-openid-3.2.0-1.src.rpmpython3-openidsrc8a1aaff3f6b56b1c80055b7f491e4dc41fa22097a73379f3b8ce7a0ae70c60deOpenID support for modern servers and consumers.This is a set of Python packages to support use of
the OpenID decentralized identity system in your application, update to Python
3. Want to enable single sign-on for your web site? Use the openid.consumer
package. Want to run your own OpenID server? Check out openid.server.
Includes example code and support for a variety of storage back-ends.http://github.com/necaris/python3-openidApache Software LicenseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6544559f-68b3-4844-b469-6cdfb63bda5cpython3-openid-helpnoarch208581b904f6ed7aea7b2e3402d3f92757ced4ff4ce8381175b93f3a0e5e29d3Development documents and examples for python3-openidThis is a set of Python packages to support use of
the OpenID decentralized identity system in your application, update to Python
3. Want to enable single sign-on for your web site? Use the openid.consumer
package. Want to run your own OpenID server? Check out openid.server.
Includes example code and support for a variety of storage back-ends.http://github.com/necaris/python3-openidApache Software LicenseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6544559f-68b3-4844-b469-6cdfb63bda5cpython3-openid-3.2.0-1.src.rpmpython3-openid-teamsnoarchf9c999874de3ddf5f16fee711bc70581ee7a780db5fc0c7143093819d8a73dc9This is an implementation of the OpenID teams extension for python-openidUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-856d034a-815e-4497-afec-cc2922669d67python-openid-teams-1.1-1.src.rpmpython3-openid-teamsnoarche8623ab21ca8f7ff610c690cc127f5ad168718774f57a2fde0c2b7a421c43c0eThis is an implementation of the OpenID teams extension for python-openidUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-eb977f11-84ea-45fd-ab36-da0573ed08a7python-openid-teams-1.1-1.src.rpmpython3-openid-teamsnoarchff08156273343abf976543848931e968a4a1de2a3ce30148e9e82c3d8575e201This is an implementation of the OpenID teams extension for python-openidUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b4ec749d-be76-4dc1-9b63-80bbc0d543b6python-openid-teams-1.1-2.src.rpmpython3-openid-teamsnoarche1bdfd916f1c7f7a3e5f910be9e5a40217f446ec91b4f1be45b9a6a50620780bThis is an implementation of the OpenID teams extension for python-openidUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3e703c96-b788-4b47-8e8c-6ba6b7c9568cpython-openid-teams-1.1-2.src.rpmpython3-openidc-clientnoarcha3f03ee3f8038be6925175098c1e78e2b6fc913c2092847fb8b783e2256026ebPython OpenID Connect client with token caching and managementPython OpenID Connect client with token caching and management.MITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-68f4a1a0-724c-40fa-9e35-d8e5e87ce66epython-openidc-client-0.6.0-1.src.rpmpython3-os-service-typesnoarche11394e58d5890db076fb288854294e9252aecae446492e70d24838bc28ca42aPython library for consuming OpenStack sevice-types-authority datahttps://pypi.org/project/os-service-types/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-0d8aa98c-5a04-4684-8c17-34e8722df6d8python-os-service-types-1.7.0-2.src.rpmpython3-oslo-concurrencynoarche8e3a1cb43fec53ba0bc019a1bfb3016f0967c1e9c64fae8127e5f9cdf0c7348Oslo Concurrency libraryOpenStack library for all concurrency-related codehttps://docs.openstack.org/oslo.concurrency/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-344da169-3f6d-44cf-bb63-ac93ea1a25b1python-oslo-concurrency-4.5.0-1.src.rpm/usr/bin/lockutils-wrapperpython3-oslo-concurrencynoarchc0686e8950cdbe5bf30d5bb3ffabab7cd51edc375ee4a942d38d786c88b278d7Oslo Concurrency libraryOpenStack library for all concurrency-related codehttps://docs.openstack.org/oslo.concurrency/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-55a5e51d-3410-473a-a888-4b19d41ae302python-oslo-concurrency-5.1.0-1.src.rpm/usr/bin/lockutils-wrapperpython3-oslo-confignoarcha9eb60edf557564a264f219f7a7cb5524a949725125f25a28ebad0a044ab4391Oslo Configuration APIThe Oslo configuration API supports parsing command line arguments and .ini style configuration files.https://docs.openstack.org/oslo.config/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a3ed9fe0-3f03-4f82-955e-3779f7fff9bdpython-oslo-config-9.0.0-1.src.rpm/usr/bin/oslo-config-generator/usr/bin/oslo-config-validatorpython3-oslo-confignoarchb6058143f0f38f30191068440eb821d9ec8127c1674137579fd1e2d04eb3841bOslo Configuration APIThe Oslo configuration API supports parsing command line arguments and .ini style configuration files.https://docs.openstack.org/oslo.config/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f55fcb02-9726-44cf-9506-4d40b0a1549bpython-oslo-config-9.0.0-1.src.rpm/usr/bin/oslo-config-generator/usr/bin/oslo-config-validatorpython3-oslo-confignoarchb11bb28e01233227828abe15c616e53e179d9b218c44b256487c103f1b469919Oslo Configuration APIThe Oslo configuration API supports parsing command line arguments and .ini style configuration files.https://docs.openstack.org/oslo.config/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-01c01fb1-2ab8-4911-9535-7ceba9acf44dpython-oslo-config-9.0.0-1.src.rpm/usr/bin/oslo-config-generator/usr/bin/oslo-config-validatorpython3-oslo-i18nnoarch09cd33378cdd8b9063f0d865d4dd0c2e7a0c8320bc2960b712f3cf396d30ad60Oslo i18n libraryInternationalization and translation libraryhttps://docs.openstack.org/oslo.i18n/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-60612359-e0cf-4c6e-b057-da0f7a13dd50python-oslo-i18n-5.1.0-1.src.rpmpython3-oslo-i18nnoarcha0e467b38c65b3e53df2d3f9237c53bd939599adf21638afb8623c7fe583f0dbOslo i18n libraryInternationalization and translation libraryhttps://docs.openstack.org/oslo.i18n/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-579164a8-378f-4c92-af1a-e6ad69f40c2bpython-oslo-i18n-5.1.0-1.src.rpmpython3-oslo-serializationnoarchf0febc28b0c74517cd7bd311a28fd8cf72a9f1fc64327328ef8e46d1a7404ea4Oslo Serialization libraryThe oslo.serialization library provides support for representing objects in
transmittable and storable formats, such as Base64, JSON and MessagePack.https://docs.openstack.org/oslo.serialization/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6842813f-57f2-47d9-9341-1e43b858d904python-oslo-serialization-4.3.0-1.src.rpmpython3-oslo-serializationnoarch990a7841804fd9e842df085415aaab1e1facd7d8521400f858b1f28eab931121Oslo Serialization libraryThe oslo.serialization library provides support for representing objects in
transmittable and storable formats, such as Base64, JSON and MessagePack.https://docs.openstack.org/oslo.serialization/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-1f4b46c6-dcc0-4458-94b8-48ef9f1fb3d7python-oslo-serialization-5.1.0-1.src.rpmpython3-oslo-utilsnoarchac95c45f93ed0137172f4daec564aefea7a3cae7daab6f562cc9127422aaa0bbOslo Utility libraryThe oslo.utils library provides support for common utility type functions,
such as encoding, exception handling, string manipulation, and time handling.https://docs.openstack.org/oslo.utils/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-ac3dd2ca-8eea-448f-869d-f1210d5d6945python-oslo-utils-4.12.3-1.src.rpmpython3-oslo-utilsnoarch7ee480413480c392e05850bbc056196e96295f5ef8e58b342a1aa6dd53461610Oslo Utility libraryThe oslo.utils library provides support for common utility type functions,
such as encoding, exception handling, string manipulation, and time handling.https://docs.openstack.org/oslo.utils/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-fc121184-ff18-4e66-b77c-bf68fc8a2eebpython-oslo-utils-4.12.3-1.src.rpmpython3-parsonoarch8baf96b3e94b5319a4ada587e8d44d6f900a33a81984d7a7a1d05479d66b6364A Python Parser- `Testing <https://parso.readthedocs.io/en/latest/docs/development.html#testing>`_
- `PyPI <https://pypi.python.org/pypi/parso>`_
- `Docs <https://parso.readthedocs.org/en/latest/>`_
- Uses `semantic versioning <https://semver.org/>`_https://github.com/davidhalter/parsoMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e9a7c180-c7e8-496e-a286-16bba46c926bpython-parso-0.8.3-1.src.rpmpython3-parsonoarch88efe9abaf8e7db6f0dff093c709b69622c1439f0b470f7d1e9d25cb739b9c81A Python ParserParso is a Python parser that supports error recovery and round-trip parsing
for different Python versions. Parso consists of a small API to parse Python
and analyse the syntax tree.https://github.com/davidhalter/parsoMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6d261977-d483-4d9c-bf0c-e4909f06ab2cpython-parso-0.8.3-1.src.rpmpython3-picklesharenoarchdf1aaf1167ca20afba60b5da14ccd01863690bc2269e1f101ea29a182e7b7fe4Tiny 'shelve'-like database with concurrency supportPickleShare - a small 'shelve' like datastore with concurrency support
Like shelve, a PickleShareDB object acts like a normal dictionary. Unlike shelve,
many processes can access the database simultaneously. Changing a value in
database is immediately visible to other processes accessing the same database.
Concurrency is possible because the values are stored in separate files. Hence
the "database" is a directory where *all* files are governed by PickleShare.
Example usage::
from pickleshare import *
db = PickleShareDB('~/testpickleshare')
db.clear()
print("Should be empty:",db.items())
db['hello'] = 15
db['aku ankka'] = [1,2,313]
db['paths/are/ok/key'] = [1,(5,46)]
print(db.keys())
This module is certainly not ZODB, but can be used for low-load
(non-mission-critical) situations where tiny code size trumps the
advanced features of a "real" object database.
Installation guide: pip install picklesharehttps://github.com/pickleshare/pickleshareMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d4fe1913-a967-41cb-9227-e9c749bc1699python-pickleshare-0.7.5-1.src.rpmpython3-prompt-toolkitnoarch7b9174a9d92fe84c6c1297dcfa7bd1536fe84e838cfad5e3b821bb01059aef1aLibrary for building powerful interactive command lines in Pythonprompt_toolkit is a library for building powerful interactive command lines and
terminal applications in Python.https://github.com/prompt-toolkit/python-prompt-toolkitBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5a106d13-8d06-418e-a342-693d1d1d6813python-prompt-toolkit-3.0.38-1.src.rpmpython3-pure-evalnoarchf8e0a029973170a321331dc83fca067fa41f676cfdebb201aab0d33fb8837c69Safely evaluate AST nodes without side effects
[![Build Status](https://travis-ci.org/alexmojaki/pure_eval.svg?branch=master)](https://travis-ci.org/alexmojaki/pure_eval) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/pure_eval/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/pure_eval?branch=master) [![Supports Python versions 3.5+](https://img.shields.io/pypi/pyversions/pure_eval.svg)](https://pypi.python.org/pypi/pure_eval)
This is a Python package that lets you safely evaluate certain AST nodes without triggering arbitrary code that may have unwanted side effects.
It can be installed from PyPI:
pip install pure_eval
To demonstrate usage, suppose we have an object defined as follows:
```python
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
@property
def area(self):
print("Calculating area...")
return self.width * self.height
rect = Rectangle(3, 5)
```
Given the `rect` object, we want to evaluate whatever expressions we can in this source code:
```python
source = "(rect.width, rect.height, rect.area)"
```
This library works with the AST, so let's parse the source code and peek inside:
```python
import ast
tree = ast.parse(source)
the_tuple = tree.body[0].value
for node in the_tuple.elts:
print(ast.dump(node))
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='area', ctx=Load())
```
Now to actually use the library. First construct an Evaluator:
```python
from pure_eval import Evaluator
evaluator = Evaluator({"rect": rect})
```
The argument to `Evaluator` should be a mapping from variable names to their values. Or if you have access to the stack frame where `rect` is defined, you can instead use:
```python
evaluator = Evaluator.from_frame(frame)
```
Now to evaluate some nodes, using `evaluator[node]`:
```python
print("rect.width:", evaluator[the_tuple.elts[0]])
print("rect:", evaluator[the_tuple.elts[0].value])
```
Output:
```
rect.width: 3
rect: <__main__.Rectangle object at 0x105b0dd30>
```
OK, but you could have done the same thing with `eval`. The useful part is that it will refuse to evaluate the property `rect.area` because that would trigger unknown code. If we try, it'll raise a `CannotEval` exception.
```python
from pure_eval import CannotEval
try:
print("rect.area:", evaluator[the_tuple.elts[2]]) # fails
except CannotEval as e:
print(e) # prints CannotEval
```
To find all the expressions that can be evaluated in a tree:
```python
for node, value in evaluator.find_expressions(tree):
print(ast.dump(node), value)
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load()) 3
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load()) 5
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
```
Note that this includes `rect` three times, once for each appearance in the source code. Since all these nodes are equivalent, we can group them together:
```python
from pure_eval import group_expressions
for nodes, values in group_expressions(evaluator.find_expressions(tree)):
print(len(nodes), "nodes with value:", values)
```
Output:
```
1 nodes with value: 3
1 nodes with value: 5
3 nodes with value: <__main__.Rectangle object at 0x10d374d30>
```
If we want to list all the expressions in a tree, we may want to filter out certain expressions whose values are obvious. For example, suppose we have a function `foo`:
```python
def foo():
pass
```
If we refer to `foo` by its name as usual, then that's not interesting:
```python
from pure_eval import is_expression_interesting
node = ast.parse('foo').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='foo', ctx=Load())
False
```
But if we refer to it by a different name, then it's interesting:
```python
node = ast.parse('bar').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='bar', ctx=Load())
True
```
In general `is_expression_interesting` returns False for the following values:
- Literals (e.g. `123`, `'abc'`, `[1, 2, 3]`, `{'a': (), 'b': ([1, 2], [3])}`)
- Variables or attributes whose name is equal to the value's `__name__`, such as `foo` above or `self.foo` if it was a method.
- Builtins (e.g. `len`) referred to by their usual name.
To make things easier, you can combine finding expressions, grouping them, and filtering out the obvious ones with:
```python
evaluator.interesting_expressions_grouped(root)
```
To get the source code of an AST node, I recommend [asttokens](https://github.com/gristlabs/asttokens).
Here's a complete example that brings it all together:
```python
from asttokens import ASTTokens
from pure_eval import Evaluator
source = """
x = 1
d = {x: 2}
y = d[x]
"""
names = {}
exec(source, names)
atok = ASTTokens(source, parse=True)
for nodes, value in Evaluator(names).interesting_expressions_grouped(atok.tree):
print(atok.get_text(nodes[0]), "=", value)
```
Output:
```python
x = 1
d = {1: 2}
y = 2
d[x] = 2
```http://github.com/alexmojaki/pure_evalMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3a5332d6-e6cb-4b16-ae91-1e8d3a246c2apython-pure-eval-0.2.2-1.src.rpmpython3-pure-evalnoarch9c9e8b37b77ed6c5c59a0d10c9d3bb727171740c1d0055f43482e7fc66b7cef5Safely evaluate AST nodes without side effects
[![Build Status](https://travis-ci.org/alexmojaki/pure_eval.svg?branch=master)](https://travis-ci.org/alexmojaki/pure_eval) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/pure_eval/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/pure_eval?branch=master) [![Supports Python versions 3.5+](https://img.shields.io/pypi/pyversions/pure_eval.svg)](https://pypi.python.org/pypi/pure_eval)
This is a Python package that lets you safely evaluate certain AST nodes without triggering arbitrary code that may have unwanted side effects.
It can be installed from PyPI:
pip install pure_eval
To demonstrate usage, suppose we have an object defined as follows:
```python
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
@property
def area(self):
print("Calculating area...")
return self.width * self.height
rect = Rectangle(3, 5)
```
Given the `rect` object, we want to evaluate whatever expressions we can in this source code:
```python
source = "(rect.width, rect.height, rect.area)"
```
This library works with the AST, so let's parse the source code and peek inside:
```python
import ast
tree = ast.parse(source)
the_tuple = tree.body[0].value
for node in the_tuple.elts:
print(ast.dump(node))
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='area', ctx=Load())
```
Now to actually use the library. First construct an Evaluator:
```python
from pure_eval import Evaluator
evaluator = Evaluator({"rect": rect})
```
The argument to `Evaluator` should be a mapping from variable names to their values. Or if you have access to the stack frame where `rect` is defined, you can instead use:
```python
evaluator = Evaluator.from_frame(frame)
```
Now to evaluate some nodes, using `evaluator[node]`:
```python
print("rect.width:", evaluator[the_tuple.elts[0]])
print("rect:", evaluator[the_tuple.elts[0].value])
```
Output:
```
rect.width: 3
rect: <__main__.Rectangle object at 0x105b0dd30>
```
OK, but you could have done the same thing with `eval`. The useful part is that it will refuse to evaluate the property `rect.area` because that would trigger unknown code. If we try, it'll raise a `CannotEval` exception.
```python
from pure_eval import CannotEval
try:
print("rect.area:", evaluator[the_tuple.elts[2]]) # fails
except CannotEval as e:
print(e) # prints CannotEval
```
To find all the expressions that can be evaluated in a tree:
```python
for node, value in evaluator.find_expressions(tree):
print(ast.dump(node), value)
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load()) 3
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load()) 5
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
```
Note that this includes `rect` three times, once for each appearance in the source code. Since all these nodes are equivalent, we can group them together:
```python
from pure_eval import group_expressions
for nodes, values in group_expressions(evaluator.find_expressions(tree)):
print(len(nodes), "nodes with value:", values)
```
Output:
```
1 nodes with value: 3
1 nodes with value: 5
3 nodes with value: <__main__.Rectangle object at 0x10d374d30>
```
If we want to list all the expressions in a tree, we may want to filter out certain expressions whose values are obvious. For example, suppose we have a function `foo`:
```python
def foo():
pass
```
If we refer to `foo` by its name as usual, then that's not interesting:
```python
from pure_eval import is_expression_interesting
node = ast.parse('foo').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='foo', ctx=Load())
False
```
But if we refer to it by a different name, then it's interesting:
```python
node = ast.parse('bar').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='bar', ctx=Load())
True
```
In general `is_expression_interesting` returns False for the following values:
- Literals (e.g. `123`, `'abc'`, `[1, 2, 3]`, `{'a': (), 'b': ([1, 2], [3])}`)
- Variables or attributes whose name is equal to the value's `__name__`, such as `foo` above or `self.foo` if it was a method.
- Builtins (e.g. `len`) referred to by their usual name.
To make things easier, you can combine finding expressions, grouping them, and filtering out the obvious ones with:
```python
evaluator.interesting_expressions_grouped(root)
```
To get the source code of an AST node, I recommend [asttokens](https://github.com/gristlabs/asttokens).
Here's a complete example that brings it all together:
```python
from asttokens import ASTTokens
from pure_eval import Evaluator
source = """
x = 1
d = {x: 2}
y = d[x]
"""
names = {}
exec(source, names)
atok = ASTTokens(source, parse=True)
for nodes, value in Evaluator(names).interesting_expressions_grouped(atok.tree):
print(atok.get_text(nodes[0]), "=", value)
```
Output:
```python
x = 1
d = {1: 2}
y = 2
d[x] = 2
```http://github.com/alexmojaki/pure_evalMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f7e70b22-4cd2-45f5-aad6-15e26b775720python-pure-eval-0.2.2-1.src.rpmpython3-pure-evalnoarch1ef3a6d78260906f05ee2bdd3f8c039d406a535a6b46aad11e611e5e3c41c3a1Safely evaluate AST nodes without side effects
[![Build Status](https://travis-ci.org/alexmojaki/pure_eval.svg?branch=master)](https://travis-ci.org/alexmojaki/pure_eval) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/pure_eval/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/pure_eval?branch=master) [![Supports Python versions 3.5+](https://img.shields.io/pypi/pyversions/pure_eval.svg)](https://pypi.python.org/pypi/pure_eval)
This is a Python package that lets you safely evaluate certain AST nodes without triggering arbitrary code that may have unwanted side effects.
It can be installed from PyPI:
pip install pure_eval
To demonstrate usage, suppose we have an object defined as follows:
```python
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
@property
def area(self):
print("Calculating area...")
return self.width * self.height
rect = Rectangle(3, 5)
```
Given the `rect` object, we want to evaluate whatever expressions we can in this source code:
```python
source = "(rect.width, rect.height, rect.area)"
```
This library works with the AST, so let's parse the source code and peek inside:
```python
import ast
tree = ast.parse(source)
the_tuple = tree.body[0].value
for node in the_tuple.elts:
print(ast.dump(node))
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load())
Attribute(value=Name(id='rect', ctx=Load()), attr='area', ctx=Load())
```
Now to actually use the library. First construct an Evaluator:
```python
from pure_eval import Evaluator
evaluator = Evaluator({"rect": rect})
```
The argument to `Evaluator` should be a mapping from variable names to their values. Or if you have access to the stack frame where `rect` is defined, you can instead use:
```python
evaluator = Evaluator.from_frame(frame)
```
Now to evaluate some nodes, using `evaluator[node]`:
```python
print("rect.width:", evaluator[the_tuple.elts[0]])
print("rect:", evaluator[the_tuple.elts[0].value])
```
Output:
```
rect.width: 3
rect: <__main__.Rectangle object at 0x105b0dd30>
```
OK, but you could have done the same thing with `eval`. The useful part is that it will refuse to evaluate the property `rect.area` because that would trigger unknown code. If we try, it'll raise a `CannotEval` exception.
```python
from pure_eval import CannotEval
try:
print("rect.area:", evaluator[the_tuple.elts[2]]) # fails
except CannotEval as e:
print(e) # prints CannotEval
```
To find all the expressions that can be evaluated in a tree:
```python
for node, value in evaluator.find_expressions(tree):
print(ast.dump(node), value)
```
Output:
```python
Attribute(value=Name(id='rect', ctx=Load()), attr='width', ctx=Load()) 3
Attribute(value=Name(id='rect', ctx=Load()), attr='height', ctx=Load()) 5
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
Name(id='rect', ctx=Load()) <__main__.Rectangle object at 0x105568d30>
```
Note that this includes `rect` three times, once for each appearance in the source code. Since all these nodes are equivalent, we can group them together:
```python
from pure_eval import group_expressions
for nodes, values in group_expressions(evaluator.find_expressions(tree)):
print(len(nodes), "nodes with value:", values)
```
Output:
```
1 nodes with value: 3
1 nodes with value: 5
3 nodes with value: <__main__.Rectangle object at 0x10d374d30>
```
If we want to list all the expressions in a tree, we may want to filter out certain expressions whose values are obvious. For example, suppose we have a function `foo`:
```python
def foo():
pass
```
If we refer to `foo` by its name as usual, then that's not interesting:
```python
from pure_eval import is_expression_interesting
node = ast.parse('foo').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='foo', ctx=Load())
False
```
But if we refer to it by a different name, then it's interesting:
```python
node = ast.parse('bar').body[0].value
print(ast.dump(node))
print(is_expression_interesting(node, foo))
```
Output:
```python
Name(id='bar', ctx=Load())
True
```
In general `is_expression_interesting` returns False for the following values:
- Literals (e.g. `123`, `'abc'`, `[1, 2, 3]`, `{'a': (), 'b': ([1, 2], [3])}`)
- Variables or attributes whose name is equal to the value's `__name__`, such as `foo` above or `self.foo` if it was a method.
- Builtins (e.g. `len`) referred to by their usual name.
To make things easier, you can combine finding expressions, grouping them, and filtering out the obvious ones with:
```python
evaluator.interesting_expressions_grouped(root)
```
To get the source code of an AST node, I recommend [asttokens](https://github.com/gristlabs/asttokens).
Here's a complete example that brings it all together:
```python
from asttokens import ASTTokens
from pure_eval import Evaluator
source = """
x = 1
d = {x: 2}
y = d[x]
"""
names = {}
exec(source, names)
atok = ASTTokens(source, parse=True)
for nodes, value in Evaluator(names).interesting_expressions_grouped(atok.tree):
print(atok.get_text(nodes[0]), "=", value)
```
Output:
```python
x = 1
d = {1: 2}
y = 2
d[x] = 2
```http://github.com/alexmojaki/pure_evalMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5cf41ad9-f819-43cb-84e3-5e316007867cpython-pure-eval-0.2.2-1.src.rpmpython3-py3dnsnoarch52d668aa7d7bdaab9dbf54fb67b42305d69ea0ef838b0637d0ae6946c21ed6f7Python 3 DNS libraryPython 3 DNS library:https://launchpad.net/py3dnsPython LicenseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-39dcb513-3e0a-42c8-95b6-1311483b6036python-py3dns-3.2.1-1.src.rpmpython3-pyLibravatarnoarch0ab8441ec8fc99de4bdc05a24e81e8ec90d890d9af343aae3bf0f5cf667ce5f4Python module for LibravatarPyLibravatar is an easy way to make use of the federated Libravatar_ avatar
hosting service from within your Python applications.https://launchpad.net/pylibravatarMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-0b43ab61-fe6c-4e51-8de3-118824d00e33python-pyLibravatar-1.7-1.src.rpmpython3-pyLibravatarnoarch00ac36df2531c7f8f5a7dd054ac7e889ded0b1d55a4b8d5d18e8e0160da40212Python module for LibravatarPyLibravatar is an easy way to make use of the federated Libravatar_ avatar
hosting service from within your Python applications.https://launchpad.net/pylibravatarMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-ccfbc728-c065-4425-ba0c-095285a6b6f3python-pyLibravatar-1.7-2.src.rpmpython3-pyLibravatarnoarch9754ef778c7c4ca9fe9c57b5f19f2b899ce4f8b4cf7d618bd1b1ea35210d2843Python module for LibravatarPyLibravatar is an easy way to make use of the federated Libravatar_ avatar
hosting service from within your Python applications.https://launchpad.net/pylibravatarMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-cc0fe5c0-d46c-49b8-a9be-516abcb500a1python-pyLibravatar-1.7-2.src.rpmpython3-pygalnoarch60d20252b5e00464a4ba80e2f51df3c19bafc8a964dac7d6b89e208331d55809A Python svg graph plotting libraryhttps://www.pygal.org/LGPL-3.0+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-7b8b6df2-395c-40ea-8dcb-eeef179e105epython-pygal-3.0.0-1.src.rpm/usr/bin/pygal_gen.pypython3-pygalnoarch55cd3f4e517e7a522172b08319e6a61ae56e94247202973073a3e9fa5f51b8f5A Python svg graph plotting libraryhttps://www.pygal.org/LGPL-3.0+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-439fa2b3-25f8-4bce-927e-648189ee04c6python-pygal-3.0.0-1.src.rpm/usr/bin/pygal_gen.pypython3-pygalnoarch88f2aa06d8ee8df5560dac10b63972592f0dc7b576eec0abf085b9e9844e6ecdA Python svg graph plotting libraryhttps://www.pygal.org/LGPL-3.0+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-dd9a9778-f9af-46a2-a816-d4d803ff7595python-pygal-3.0.0-1.src.rpm/usr/bin/pygal_gen.pypython3-pygit2x86_64534435cc19fd7a04a8347b486912741160f5b5115cafbc6c2694c06bdad48b00Python bindings for libgit2.- Documentation - http://www.pygit2.org/
- Install - http://www.pygit2.org/install.html
- Download - https://pypi.python.org/pypi/pygit2
- Source code and issue tracker - https://github.com/libgit2/pygit2
- Changelog - https://github.com/libgit2/pygit2/blob/master/CHANGELOG.rst
- Authors - https://github.com/libgit2/pygit2/blob/master/AUTHORS.rsthttps://github.com/libgit2/pygit2GPLv2 with linking exceptionopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5e970f6a-2000-4626-8763-3a0f8aac3579python-pygit2-1.7.1-1.src.rpmpython3-pygit2x86_647ce7fcaca1174b9fc7cd37526e13e8f353a4ee7c5daa5237292e80b8ac4bfd63Python bindings for libgit2.- Documentation - http://www.pygit2.org/
- Install - http://www.pygit2.org/install.html
- Download - https://pypi.python.org/pypi/pygit2
- Source code and issue tracker - https://github.com/libgit2/pygit2
- Changelog - https://github.com/libgit2/pygit2/blob/master/CHANGELOG.rst
- Authors - https://github.com/libgit2/pygit2/blob/master/AUTHORS.rsthttps://github.com/libgit2/pygit2GPLv2 with linking exceptionopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d311ce52-49cd-4757-a211-d06e093f8080python-pygit2-1.7.1-1.src.rpmpython3-pytest-xdistnoarch455a1197f76a3d2c91c112476a05d9823c1a693d5abb11e3fbc7c6e63d44bf25pytest xdist plugin for distributed testing and loop-on-failing modespytest xdist plugin for distributed testing and loop-on-failing modes.https://github.com/pytest-dev/pytest-xdistMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a6f3c7ac-910f-43ec-b7ba-85a6d091fa81python-pytest-xdist-3.1.0-1.src.rpmpython3-python-openid-teamsnoarch939cbdc48d17e332c4f7e4c548c49b0c042edfe545d4a6bcdc88187b98e0ea06This is an implementation of the OpenID teams extension for python-openidUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-cb3e972e-ff22-4b62-ab63-9fd62a8a7d10python-openid-teams-1.1-1.src.rpmpython3-resallocnoarch17e699f8915ce779c9407b0d9a0cce5c54975d6195b5df1e835f7ed22a7fe4d6Resource allocator for expensive resources - Python 3 client library
The resalloc project aims to help with taking care of dynamically
allocated resources, for example ephemeral virtual machines used for
the purposes of CI/CD tasks.
The python3-resalloc package provides Python 3 client library for talking
to the resalloc server.https://github.com/praiskup/resallocGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-57024498-e0aa-411c-b490-82025ed6adf0resalloc-4.9-1.src.rpmpython3-resallocnoarche37ee953f5c8a44776cd0189cbf0a7e141f5cb44f822f1293f83290154c68314Resource allocator for expensive resources - Python 3 client library
The resalloc project aims to help with taking care of dynamically
allocated resources, for example ephemeral virtual machines used for
the purposes of CI/CD tasks.
The python3-resalloc package provides Python 3 client library for talking
to the resalloc server.https://github.com/praiskup/resallocGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-50cf24ee-68d3-4ada-a23c-e7e8585f96e8resalloc-4.9-1.src.rpmpython3-responsesnoarch3bd8f6b0024282e3e8fd23e203e770182b78d2a4ea9fa0ffb031ba706fa298c6A utility library for mocking out the `requests` Python library.A utility library for mocking out the requests Python library.https://github.com/getsentry/responsesApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-327171e8-7925-46c9-b174-625c1cd3f9dcpython-responses-0.18.0-1.src.rpmpython3-retasknoarch05b15980ae5330c9618f7d6a09b9fcf59f768ba9b923733e7b63bd06aaaebb1ePython module to create and manage distributed task queuesPython module to create and manage distributed task queues using redis.http://retask.readthedocs.org/en/latest/index.htmlMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-4d5d4bfa-3df8-4756-be54-91ba9c40f538python-retask-0.4-1.src.rpmpython3-retasknoarch940563c3a126f66392ca05b655039698022bf17fdf0b4cee1f55e12e05f71344Python module to create and manage distributed task queuesPython module to create and manage distributed task queues using redis.http://retask.readthedocs.org/en/latest/index.htmlMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3e07e7d2-7690-4f6a-9bdb-3b9f4e9f1266python-retask-0.4-1.src.rpmpython3-richnoarch6c04b2ca44aedf8a7aad487e0f053941dc9d7029270ee6b02d8cd484ceee8ce9Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminalRich is a Python library for rich text and beautiful formatting in the terminalhttps://github.com/willmcgugan/richMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d9aa0221-b245-4708-bb85-0935dc5c8853python-rich-12.6.0-1.src.rpmpython3-rpkgnoarchde4836964829affa8f7f82e026d061231ce95df45a4d35bcf255f475a1fdaa12Python library for interacting with rpm+gitA python library for managing RPM package sources in a git repository.https://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-74f73df7-f7f4-460f-8b33-5c65443c7283rpkg-1.65-1.src.rpmpython3-rpkgnoarch4d803bfef73faa440e3b1bc53922ee0cb037a20b399aa36d056a2d63f4e23153Python library for interacting with rpm+gitA python library for managing RPM package sources in a git repository.https://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-523b73cf-959a-4f14-b7a7-8b049dae9993rpkg-1.65-1.src.rpmpython3-rpkgnoarch836a935f4e70a150e75f6585868701b6660633ac0e45400cc916d4731a1ec72aPython library for interacting with rpm+gitA python library for managing RPM package sources in a git repository.https://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3f38ab19-7291-45f5-91dd-c806fb361e20rpkg-1.65-1.src.rpmpython3-rpkgnoarch838593b646a5257259aa1a008f466f83b6b1c0364abcea03c88291e97990bd37Python library for interacting with rpm+gitA python library for managing RPM package sources in a git repository.https://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-07d8bf4c-4cc9-4c95-a3fa-697bf4169b2crpkg-1.65-1.src.rpmpython3-rpkgnoarch04a26a76ee90d26f75326c51ece67a182aca830971b325a7aa5f859b9f06b1acPython library for interacting with rpm+gitA python library for managing RPM package sources in a git repository.https://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-cb997f2b-278d-4b3c-87a3-598ea1e5755drpkg-1.65-1.src.rpmpython3-rpkgnoarch6370c377fb7c71b28abdb7820f153899fe3c83916b788402b341a2575b833512Python library for interacting with rpm+gitA python library for managing RPM package sources in a git repository.https://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-fa6ae5ab-bc81-463f-8223-81b60b0746b6rpkg-1.65-1.src.rpmpython3-rpmautospecnoarchb5cc55c4d350414d518825e12a65a9d05f8ef1c25017c6df1c2c8cfa2a042bfbPackage and CLI tool to generate release fields and changelogsA package and CLI tool to generate RPM release fields and changelogs.https://pagure.io/fedora-infra/rpmautospecMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a3e521a2-12e4-48a3-b5bc-35f2df3b8dbbpython-rpmautospec-0.3.5-1.src.rpmpython3-rpmautospecnoarch60395816f219fe27333bf27b99b011fa924345cefa28ac2669876c32a66f15cfPackage and CLI tool to generate release fields and changelogsA package and CLI tool to generate RPM release fields and changelogs.https://pagure.io/fedora-infra/rpmautospecMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-9e694644-b8eb-4f4d-af70-d1c89e233b07python-rpmautospec-0.3.5-1.src.rpmpython3-stack-datanoarchd2978ffb45e2cbe842502e7635384445414497f15b6ab8b3fb38266a3ffb6065Extract data from python stack frames and tracebacks for informative displays 6 | for i in range(5):
7 | row = []
8 | result.append(row)
--> 9 | print_stack()
10 | for j in range(5):
```
The code for `print_stack()` is fairly self-explanatory. If you want to learn more details about a particular class or method I suggest looking through some docstrings. `FrameInfo` is a class that accepts either a frame or a traceback object and provides a bunch of nice attributes and properties (which are cached so you don't need to worry about performance). In particular `frame_info.lines` is a list of `Line` objects. `line.render()` returns the source code of that line suitable for display. Without any arguments it simply strips any common leading indentation. Later on we'll see a more powerful use for it.
You can see that `frame_info.lines` includes some lines of surrounding context. By default it includes 3 pieces of context before the main line and 1 piece after. We can configure the amount of context by passing options:
```python
options = stack_data.Options(before=1, after=0)
frame_info = stack_data.FrameInfo(frame, options)
```
Then the output looks like:
```http://github.com/alexmojaki/stack_dataMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-51877d7d-3b5d-4383-9442-ec86b3670c22python-stack-data-0.6.2-1.src.rpmpython3-stack-datanoarch15dc5bcc0609db95cd35cff67ac3174b05e8f7e1bf81ee0355f0afdf33e9ef1aExtract data from python stack frames and tracebacks for informative displays 6 | for i in range(5):
7 | row = []
8 | result.append(row)
--> 9 | print_stack()
10 | for j in range(5):
```
The code for `print_stack()` is fairly self-explanatory. If you want to learn more details about a particular class or method I suggest looking through some docstrings. `FrameInfo` is a class that accepts either a frame or a traceback object and provides a bunch of nice attributes and properties (which are cached so you don't need to worry about performance). In particular `frame_info.lines` is a list of `Line` objects. `line.render()` returns the source code of that line suitable for display. Without any arguments it simply strips any common leading indentation. Later on we'll see a more powerful use for it.
You can see that `frame_info.lines` includes some lines of surrounding context. By default it includes 3 pieces of context before the main line and 1 piece after. We can configure the amount of context by passing options:
```python
options = stack_data.Options(before=1, after=0)
frame_info = stack_data.FrameInfo(frame, options)
```
Then the output looks like:
```http://github.com/alexmojaki/stack_dataMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e3ae9d8d-dcac-467d-a5c7-6921ed51df87python-stack-data-0.6.2-1.src.rpmpython3-stack-datanoarch73b0e1c6ab27e5e504c17fe683c6ae58c6b34e929d3a1891028ecc7c1e998c41Extract data from python stack frames and tracebacks for informative displays 6 | for i in range(5):
7 | row = []
8 | result.append(row)
--> 9 | print_stack()
10 | for j in range(5):
```
The code for `print_stack()` is fairly self-explanatory. If you want to learn more details about a particular class or method I suggest looking through some docstrings. `FrameInfo` is a class that accepts either a frame or a traceback object and provides a bunch of nice attributes and properties (which are cached so you don't need to worry about performance). In particular `frame_info.lines` is a list of `Line` objects. `line.render()` returns the source code of that line suitable for display. Without any arguments it simply strips any common leading indentation. Later on we'll see a more powerful use for it.
You can see that `frame_info.lines` includes some lines of surrounding context. By default it includes 3 pieces of context before the main line and 1 piece after. We can configure the amount of context by passing options:
```python
options = stack_data.Options(before=1, after=0)
frame_info = stack_data.FrameInfo(frame, options)
```
Then the output looks like:
```http://github.com/alexmojaki/stack_dataMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-4f06c15a-5f4a-4625-b144-c0c9317c8b4apython-stack-data-0.6.2-1.src.rpmpython3-templated-dictionarynoarch911cd187291fc8be6941043de77b8e13076323ea44d54d6b33902f7caaf7e30bDictionary with Jinja2 expansionDictionary where __getitem__() is run through Jinja2 template.https://github.com/xsuchy/templated-dictionaryGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-aadf4ccc-21dd-4068-9006-7d7f80ba1eabpython-templated-dictionary-1.2-1.src.rpmpython3-templated-dictionarynoarch33e01bab4af8be15c6abf0a2574c4d8563912a1be2182d743bd24631e874e1e1Dictionary with Jinja2 expansionDictionary where __getitem__() is run through Jinja2 template.https://github.com/xsuchy/templated-dictionaryGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-55dcf74d-ae27-439a-97b0-3cd39b050345python-templated-dictionary-1.2-1.src.rpmresallocnoarch64dfd0e20eeec486b3d9587aac71105fe5704bb9c4b4267bdb773cf197072542Resource allocator for expensive resources - client tooling
The resalloc project aims to help with taking care of dynamically
allocated resources, for example ephemeral virtual machines used for
the purposes of CI/CD tasks.
The resalloc package provides the client-side tooling.https://github.com/praiskup/resallocGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-57024498-e0aa-411c-b490-82025ed6adf0resalloc-4.9-1.src.rpm/usr/bin/resallocresallocnoarch84348dd3133fc3eba7336220a9367d8b60f3db7df2b117dde6edfccc263ee148Resource allocator for expensive resources - client tooling
The resalloc project aims to help with taking care of dynamically
allocated resources, for example ephemeral virtual machines used for
the purposes of CI/CD tasks.
The resalloc package provides the client-side tooling.https://github.com/praiskup/resallocGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-50cf24ee-68d3-4ada-a23c-e7e8585f96e8resalloc-4.9-1.src.rpm/usr/bin/resallocresallocsrcb57064ff79d372e4dc95c5ff0d712cf1b64c055b9520db0c26b5ebf6bef7134eResource allocator for expensive resources - client tooling
The resalloc project aims to help with taking care of dynamically
allocated resources, for example ephemeral virtual machines used for
the purposes of CI/CD tasks.
The resalloc package provides the client-side tooling.https://github.com/praiskup/resallocGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-57024498-e0aa-411c-b490-82025ed6adf0resallocsrcf6ebe0f2294e17fb05ef197a06b850aac4be2d5e9a7d860f2357dff63479c100Resource allocator for expensive resources - client tooling
The resalloc project aims to help with taking care of dynamically
allocated resources, for example ephemeral virtual machines used for
the purposes of CI/CD tasks.
The resalloc package provides the client-side tooling.https://github.com/praiskup/resallocGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-50cf24ee-68d3-4ada-a23c-e7e8585f96e8resallocsrc29ae3f4e70db7ffbc7abfc04caa25046bed940e5f202a7014efa514acabd4369Resource allocator for expensive resources - client tooling
The resalloc project aims to help with taking care of dynamically
allocated resources, for example ephemeral virtual machines used for
the purposes of CI/CD tasks.
The resalloc package provides the client-side tooling.https://github.com/praiskup/resallocGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-087cc4e0-e13c-4e79-9951-f7829c02b498resallocsrca0c428ac8865ad5b55daedca6fef0f2951eeab8791b62202341ad7bf9b89dc48Resource allocator for expensive resources - client tooling
The resalloc project aims to help with taking care of dynamically
allocated resources, for example ephemeral virtual machines used for
the purposes of CI/CD tasks.
The resalloc package provides the client-side tooling.https://github.com/praiskup/resallocGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b0775935-f352-4800-842b-05b140a05d67resalloc-selinuxnoarche79c61aedff7588dc8fae804952cdcf718100a5547e94d9a6af40c8b26f0214eSELinux module for resalloc
The resalloc project aims to help with taking care of dynamically
allocated resources, for example ephemeral virtual machines used for
the purposes of CI/CD tasks.https://github.com/praiskup/resallocGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-57024498-e0aa-411c-b490-82025ed6adf0resalloc-4.9-1.src.rpmresalloc-selinuxnoarch8bfef67338e5920473827cc749326e4fbb48f86fe59c9346c7b5ce97b8edb03bSELinux module for resalloc
The resalloc project aims to help with taking care of dynamically
allocated resources, for example ephemeral virtual machines used for
the purposes of CI/CD tasks.https://github.com/praiskup/resallocGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-50cf24ee-68d3-4ada-a23c-e7e8585f96e8resalloc-4.9-1.src.rpmresalloc-servernoarch6496056c02e8487277aad2213ca23a0bb92ed0405062d6b084dceeffd638f2bcResource allocator for expensive resources - server part
The resalloc project aims to help with taking care of dynamically
allocated resources, for example ephemeral virtual machines used for
the purposes of CI/CD tasks.
The resalloc-server package provides the resalloc server, and
some tooling for resalloc administrators.https://github.com/praiskup/resallocGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-57024498-e0aa-411c-b490-82025ed6adf0resalloc-4.9-1.src.rpm/etc/cron.hourly/resalloc/etc/logrotate.d/resalloc-server/etc/resallocserver/etc/resallocserver/pools.yaml/etc/resallocserver/server.yaml/usr/bin/resalloc-check-vm-ip/usr/bin/resalloc-maint/usr/bin/resalloc-serverresalloc-servernoarchb2235a3b208fbb1d6147435db9a51af066824e4e320464beb0b299a220b91d2cResource allocator for expensive resources - server part
The resalloc project aims to help with taking care of dynamically
allocated resources, for example ephemeral virtual machines used for
the purposes of CI/CD tasks.
The resalloc-server package provides the resalloc server, and
some tooling for resalloc administrators.https://github.com/praiskup/resallocGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-50cf24ee-68d3-4ada-a23c-e7e8585f96e8resalloc-4.9-1.src.rpm/etc/cron.hourly/resalloc/etc/logrotate.d/resalloc-server/etc/resallocserver/etc/resallocserver/pools.yaml/etc/resallocserver/server.yaml/usr/bin/resalloc-check-vm-ip/usr/bin/resalloc-maint/usr/bin/resalloc-serverresalloc-webuinoarch2994b0e43f0832237bbdde95a252f2ac97bacbb41cb07eea213b2857d58bf09bResource allocator for expensive resources - webui part
The resalloc project aims to help with taking care of dynamically
allocated resources, for example ephemeral virtual machines used for
the purposes of CI/CD tasks.
The resalloc-webui package provides the resalloc webui,
it shows page with information about resalloc resources.https://github.com/praiskup/resallocGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-57024498-e0aa-411c-b490-82025ed6adf0resalloc-4.9-1.src.rpmresalloc-webuinoarch8c046beaed927f0fde8d91f97bab7f6f79f2899d3b405dfb39e333c058fe5201Resource allocator for expensive resources - webui part
The resalloc project aims to help with taking care of dynamically
allocated resources, for example ephemeral virtual machines used for
the purposes of CI/CD tasks.
The resalloc-webui package provides the resalloc webui,
it shows page with information about resalloc resources.https://github.com/praiskup/resallocGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-50cf24ee-68d3-4ada-a23c-e7e8585f96e8resalloc-4.9-1.src.rpmrpkgsrcba0191a9d1214658eadd4db12904281012e3f812102a245efccaa44efa23d680Python library for interacting with rpm+gitPython library for interacting with rpm+githttps://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-74f73df7-f7f4-460f-8b33-5c65443c7283rpkgsrc2e281a09d1b13f94baf692977fcb5a6f87f12762f5b57e903452668e50fcd03bPython library for interacting with rpm+gitPython library for interacting with rpm+githttps://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-523b73cf-959a-4f14-b7a7-8b049dae9993rpkgsrc669c59998abd0a99ffbb05ead956fb27aefaba5907cdedc9ff49f855cad5671ePython library for interacting with rpm+gitPython library for interacting with rpm+githttps://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3f38ab19-7291-45f5-91dd-c806fb361e20rpkgsrcd3fde6e6bd0580bcbbef7d721ce13e57d5787f4bc1981a0550efb6ac154007aaPython library for interacting with rpm+gitPython library for interacting with rpm+githttps://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-07d8bf4c-4cc9-4c95-a3fa-697bf4169b2crpkgsrc75438c64e4bbd76479ac8366c88ab046c34ddef46f90ba1871636f273124201fPython library for interacting with rpm+gitPython library for interacting with rpm+githttps://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-cb997f2b-278d-4b3c-87a3-598ea1e5755drpkgsrcdd55e9485dbed13c024e4d8e20a031ded11183dab6dc70e769a59fb2bd8c3565Python library for interacting with rpm+gitPython library for interacting with rpm+githttps://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d570f055-0110-42e6-928e-824336c31b15rpkgsrc810c9bc1fde32e1750591fb805dba8a86c87fb7deb5dab3ff37b0c7f40314f71Python library for interacting with rpm+gitPython library for interacting with rpm+githttps://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-fa6ae5ab-bc81-463f-8223-81b60b0746b6rpkgnoarch867144424b05c6c45e753b337fec893e315b3164a110a3fef02915dd23aa4007RPM packaging utilityThis is an RPM packaging utility that can work with both DistGit
and standard Git repositories and handles packed directory content
as well as unpacked one.https://pagure.io/rpkg-util.gitGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e036d222-3609-4c4f-bb8e-497af4843942rpkg-util-3.2-1.src.rpm/etc/rpkg.conf/usr/bin/rpkgrpkgnoarch84a61d99004c7b7784f47780351b1c2149b55d933d0d2b6327640dda33fd0b91RPM packaging utilityThis is an RPM packaging utility that can work with both DistGit
and standard Git repositories and handles packed directory content
as well as unpacked one.https://pagure.io/rpkg-util.gitGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-bdc82307-f126-4ca4-8b1a-381e73ec4b09rpkg-util-3.2-1.src.rpm/etc/rpkg.conf/usr/bin/rpkgrpkgnoarchfde9ab7c2381414aa78fb9d1028e0680750a82951834bded6cea4feaf7acf954RPM packaging utilityThis is an RPM packaging utility that can work with both DistGit
and standard Git repositories and handles packed directory content
as well as unpacked one.https://pagure.io/rpkg-util.gitGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f5291710-92af-43cf-8e21-407ac3818503rpkg-util-3.2-1.src.rpm/etc/rpkg.conf/usr/bin/rpkgrpkgnoarch65b2beb49a254427ab57d5bdef10ab592be0f8142d2e9773cc9a4db2bef78d39RPM packaging utilityThis is an RPM packaging utility that can work with both DistGit
and standard Git repositories and handles packed directory content
as well as unpacked one.https://pagure.io/rpkg-util.gitGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-cbf40e01-7de4-4624-adad-140baf45b47frpkg-util-3.2-1.src.rpm/etc/rpkg.conf/usr/bin/rpkgrpkgnoarch3379a06acfa60254d0c1f23e1889d15e84d43aa854abf5ae857d4ee82ded1de6RPM packaging utilityThis is an RPM packaging utility that can work with both DistGit
and standard Git repositories and handles packed directory content
as well as unpacked one.https://pagure.io/rpkg-util.gitGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-949d792b-a884-47de-9022-ab555ccc6adfrpkg-util-3.2-1.src.rpm/etc/rpkg.conf/usr/bin/rpkgrpkgnoarch371528336725c64bded1d01bca290aba4c1cb91e0b5879bd92f6b7430153e819RPM packaging utilityThis is an RPM packaging utility that can work with both DistGit
and standard Git repositories and handles packed directory content
as well as unpacked one.https://pagure.io/rpkg-util.gitGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-bb22a812-6548-49a3-b811-3d7e22be387crpkg-util-3.2-1.src.rpm/etc/rpkg.conf/usr/bin/rpkgrpkg-commonnoarch04bf4e91e82ff1b3983b1fdb7f904c057592e8bce4af386799f030c83c8749e6Common files for rpkgCommon files for python2-rpkg and python3-rpkg.https://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-74f73df7-f7f4-460f-8b33-5c65443c7283rpkg-1.65-1.src.rpm/etc/rpkg/usr/share/rpkg/examples/cli/usr/bin/rpkgrpkg-commonnoarchf15a1d0e149997e09d257ee78dadca899404d3fc8aa5f274b2c47ffae885975dCommon files for rpkgCommon files for python2-rpkg and python3-rpkg.https://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-523b73cf-959a-4f14-b7a7-8b049dae9993rpkg-1.65-1.src.rpm/etc/rpkg/usr/share/rpkg/examples/cli/usr/bin/rpkgrpkg-commonnoarch383069efea9105c83e7c56ee08960d042499b09c68ec15245b5d9e753898a665Common files for rpkgCommon files for python2-rpkg and python3-rpkg.https://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3f38ab19-7291-45f5-91dd-c806fb361e20rpkg-1.65-1.src.rpm/etc/rpkg/usr/share/rpkg/examples/cli/usr/bin/rpkgrpkg-commonnoarch1fc94bf9f7741b9b0248340e1be643a6bb5c90563d98635ba9962264f8e010afCommon files for rpkgCommon files for python2-rpkg and python3-rpkg.https://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-07d8bf4c-4cc9-4c95-a3fa-697bf4169b2crpkg-1.65-1.src.rpm/etc/rpkg/usr/share/rpkg/examples/cli/usr/bin/rpkgrpkg-commonnoarchd80cbdad1c7dc9514bddd7d49ee375ec386bb05edc855e4b48b83a28415a34d3Common files for rpkgCommon files for python2-rpkg and python3-rpkg.https://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-cb997f2b-278d-4b3c-87a3-598ea1e5755drpkg-1.65-1.src.rpm/etc/rpkg/usr/share/rpkg/examples/cli/usr/bin/rpkgrpkg-commonnoarch85c2a45dce50feaf2a70ab5637363a2d47b80f5333bfbd6c67a489c6fc3f11b0Common files for rpkgCommon files for python2-rpkg and python3-rpkg.https://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-fa6ae5ab-bc81-463f-8223-81b60b0746b6rpkg-1.65-1.src.rpm/etc/rpkg/usr/share/rpkg/examples/cli/usr/bin/rpkgrpkg-macrosnoarchbf75ba74a4bf3814e1fe236c5f08b3a2ad452b3afe8c105c0ea6b82f69ada69aSet of preproc macros for rpkg utilitySet of preproc macros to be used by rpkg utility. They
are designed to dynamically generate certain parts
of rpm spec files. You can use those macros also without
rpkg by:
$ cat <file_with_the_macros> | preproc -s /usr/lib/rpkg.macros.d/all.bash -e INPUT_PATH=<file_with_the_macros>
INPUT_PATH env variable is passed to preproc to inform
macros about the input file location. The variable is used
to derive INPUT_DIR_PATH variable which rpkg macros use.
If neither INPUT_PATH nor INPUT_DIR_PATH are specified,
INPUT_PATH will stay empty and INPUT_DIR_PATH will default
to '.' (the current working directory).
Another option to experiment with the macros is to source
/usr/lib/rpkg.macros.d/all.bash into your bash environment
Then you can directly invoke the macros on your command-line
as bash functions. See content in /usr/lib/rpkg.macros.d to
discover available macros.
Please, see man rpkg-macros for more information.https://pagure.io/rpkg-util.gitGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c51e9106-fc76-413c-bbfe-3bde1a962af7rpkg-macros-2.0-1.src.rpm/usr/bin/pack_sourcesrpkg-macrossrc007c327398857e7de389cb07df3a091cfac9248838a8c0c9f49a35cf55db63eeSet of preproc macros for rpkg utilitySet of preproc macros to be used by rpkg utility. They
are designed to dynamically generate certain parts
of rpm spec files. You can use those macros also without
rpkg by:
$ cat <file_with_the_macros> | preproc -s /usr/lib/rpkg.macros.d/all.bash -e INPUT_PATH=<file_with_the_macros>
INPUT_PATH env variable is passed to preproc to inform
macros about the input file location. The variable is used
to derive INPUT_DIR_PATH variable which rpkg macros use.
If neither INPUT_PATH nor INPUT_DIR_PATH are specified,
INPUT_PATH will stay empty and INPUT_DIR_PATH will default
to '.' (the current working directory).
Another option to experiment with the macros is to source
/usr/lib/rpkg.macros.d/all.bash into your bash environment
Then you can directly invoke the macros on your command-line
as bash functions. See content in /usr/lib/rpkg.macros.d to
discover available macros.
Please, see man rpkg-macros for more information.https://pagure.io/rpkg-util.gitGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c51e9106-fc76-413c-bbfe-3bde1a962af7rpkg-utilsrc0ea9de5b9c5330481247c08baf3740b5333161f290d1bfb5c00ba7d64aba0374RPM packaging utilityThis package contains the rpkg utility. We are putting
the actual 'rpkg' package into a subpackage because there already
exists package https://src.fedoraproject.org/rpms/rpkg. That package,
however, does not actually produce rpkg rpm whereas rpkg-util does.https://pagure.io/rpkg-util.gitGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e036d222-3609-4c4f-bb8e-497af4843942rpkg-utilsrc520fb749cd4b9918cdc94d2dd0ff7bd7fdff59855d84d4e2f0a8e0221f8672f5RPM packaging utilityThis package contains the rpkg utility. We are putting
the actual 'rpkg' package into a subpackage because there already
exists package https://src.fedoraproject.org/rpms/rpkg. That package,
however, does not actually produce rpkg rpm whereas rpkg-util does.https://pagure.io/rpkg-util.gitGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-bdc82307-f126-4ca4-8b1a-381e73ec4b09rpkg-utilsrcb8481e0f0cfd32505a63a0f0ab6877b1bf4270074b27fd6be9d7f1a97f077414RPM packaging utilityThis package contains the rpkg utility. We are putting
the actual 'rpkg' package into a subpackage because there already
exists package https://src.fedoraproject.org/rpms/rpkg. That package,
however, does not actually produce rpkg rpm whereas rpkg-util does.https://pagure.io/rpkg-util.gitGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f5291710-92af-43cf-8e21-407ac3818503rpkg-utilsrc4ce0732c6705f7faca8f5f8590a31219170ca0febf8ac36481727616e598e9ffRPM packaging utilityThis package contains the rpkg utility. We are putting
the actual 'rpkg' package into a subpackage because there already
exists package https://src.fedoraproject.org/rpms/rpkg. That package,
however, does not actually produce rpkg rpm whereas rpkg-util does.https://pagure.io/rpkg-util.gitGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-cbf40e01-7de4-4624-adad-140baf45b47frpkg-utilsrce9db5e3340592baef84de0420bb1283ac207c875ae98269e76ad2273499be749RPM packaging utilityThis package contains the rpkg utility. We are putting
the actual 'rpkg' package into a subpackage because there already
exists package https://src.fedoraproject.org/rpms/rpkg. That package,
however, does not actually produce rpkg rpm whereas rpkg-util does.https://pagure.io/rpkg-util.gitGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-24724ef6-129b-4c10-8e13-6bc1cc78465brpkg-utilsrc589d194f5a754c06a848aa6c8136c48db72a8937bc33d354c3b52f806b2f6af8RPM packaging utilityThis package contains the rpkg utility. We are putting
the actual 'rpkg' package into a subpackage because there already
exists package https://src.fedoraproject.org/rpms/rpkg. That package,
however, does not actually produce rpkg rpm whereas rpkg-util does.https://pagure.io/rpkg-util.gitGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-949d792b-a884-47de-9022-ab555ccc6adfrpkg-utilsrcae8fba920079b77c9b477c8a9f7c42b8088bde4650017c02868ba9ee6335affeRPM packaging utilityThis package contains the rpkg utility. We are putting
the actual 'rpkg' package into a subpackage because there already
exists package https://src.fedoraproject.org/rpms/rpkg. That package,
however, does not actually produce rpkg rpm whereas rpkg-util does.https://pagure.io/rpkg-util.gitGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-bb22a812-6548-49a3-b811-3d7e22be387crpm-git-tag-sortsrc4a3a88c3d839a163ebdeb46b69dec80787e6a8ce88af352ce301a3b796f15a71Sorts merged git annotated tags according to topology and rpm version sorting.Sorts git annotated tags of Name-Version-Release form
according to topology (primary criterion) and rpm
version sorting (secondary criterion). Outputs only
merged tags (i.e. those that reachable from the
current HEAD).https://pagure.io/rpm-git-tag-sortGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-7b194f85-1cb4-4edc-a897-edfc61a88d2arpm-git-tag-sortsrc71ffb2436cef79c4a6953c87ed9a6878b579b99cf9951a8e818890650945e489Sorts merged git annotated tags according to topology and rpm version sorting.Sorts git annotated tags of Name-Version-Release form
according to topology (primary criterion) and rpm
version sorting (secondary criterion). Outputs only
merged tags (i.e. those that reachable from the
current HEAD).https://pagure.io/rpm-git-tag-sortGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-7a4bf00a-4857-4907-a9e1-56a54e61119brpm-git-tag-sortx86_64f10e02460394918dafd64999108e9947a0f0a821cb6ff57162e69cd3a3aa9270Sorts merged git annotated tags according to topology and rpm version sorting.Sorts git annotated tags of Name-Version-Release form
according to topology (primary criterion) and rpm
version sorting (secondary criterion). Outputs only
merged tags (i.e. those that reachable from the
current HEAD).https://pagure.io/rpm-git-tag-sortGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-7b194f85-1cb4-4edc-a897-edfc61a88d2arpm-git-tag-sort-1.0-12.src.rpm/usr/bin/rpm-git-tag-sortrpm-git-tag-sortx86_649f99183709f4904a858fd09933ac24b46e90d9b84574377abab5cc4a50610b72Sorts merged git annotated tags according to topology and rpm version sorting.Sorts git annotated tags of Name-Version-Release form
according to topology (primary criterion) and rpm
version sorting (secondary criterion). Outputs only
merged tags (i.e. those that reachable from the
current HEAD).https://pagure.io/rpm-git-tag-sortGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-7a4bf00a-4857-4907-a9e1-56a54e61119brpm-git-tag-sort-1.0-12.src.rpm/usr/bin/rpm-git-tag-sortrpm-git-tag-sort-debuginfox86_649a35781160a35803a662284dbce54bd2e0f52a0ff655d361e78b52140cc8aaa0Debug information for package rpm-git-tag-sortThis package provides debug information for package rpm-git-tag-sort.
Debug information is useful when developing applications that use this
package or when debugging this package.https://pagure.io/rpm-git-tag-sortGPLv2+openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-7b194f85-1cb4-4edc-a897-edfc61a88d2arpm-git-tag-sort-1.0-12.src.rpm/usr/lib/debug/usr/bin/rpm-git-tag-sort-1.0-12.x86_64.debugrpm-git-tag-sort-debuginfox86_64cb35587f62ecc56b9a3ba847ba3e18dbd2b8d68c52eb9232f47f4d390f3f5550Debug information for package rpm-git-tag-sortThis package provides debug information for package rpm-git-tag-sort.
Debug information is useful when developing applications that use this
package or when debugging this package.https://pagure.io/rpm-git-tag-sortGPLv2+openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-7a4bf00a-4857-4907-a9e1-56a54e61119brpm-git-tag-sort-1.0-12.src.rpm/usr/lib/debug/usr/bin/rpm-git-tag-sort-1.0-12.x86_64.debugrpm-git-tag-sort-debugsourcex86_64ea96ea788b57a84a13bc2cb745052b2fd4ffc929eaf6167e15b464dd18331462Debug sources for package rpm-git-tag-sortThis package provides debug sources for package rpm-git-tag-sort.
Debug sources are useful when developing applications that use this
package or when debugging this package.https://pagure.io/rpm-git-tag-sortGPLv2+openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-7b194f85-1cb4-4edc-a897-edfc61a88d2arpm-git-tag-sort-1.0-12.src.rpmrpm-git-tag-sort-debugsourcex86_64b54305598291950555fc0fcbf9ccaba79a24fe77edd89a15d75b00a39a4c9246Debug sources for package rpm-git-tag-sortThis package provides debug sources for package rpm-git-tag-sort.
Debug sources are useful when developing applications that use this
package or when debugging this package.https://pagure.io/rpm-git-tag-sortGPLv2+openEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-7a4bf00a-4857-4907-a9e1-56a54e61119brpm-git-tag-sort-1.0-12.src.rpmrpmautospecnoarch23402bd4dbfdd58ff307217780f40ce375c64433c7a3caba18933661591a4e99CLI tool for generating RPM releases and changelogsCLI tool for generating RPM releases and changelogshttps://pagure.io/fedora-infra/rpmautospecMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a3e521a2-12e4-48a3-b5bc-35f2df3b8dbbpython-rpmautospec-0.3.5-1.src.rpm/usr/bin/rpmautospecrpmautospecnoarch42aa3f1e3e434fd75587fbc7c78a24e2fa4e92d71a9a8c139bd74efa996998c0CLI tool for generating RPM releases and changelogsCLI tool for generating RPM releases and changelogshttps://pagure.io/fedora-infra/rpmautospecMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-9e694644-b8eb-4f4d-af70-d1c89e233b07python-rpmautospec-0.3.5-1.src.rpm/usr/bin/rpmautospecrpmautospec-rpm-macrosnoarch05cd463fbbe18e14cada003c057369c8ce0050bbb77ba400c1127616ab495c9fRpmautospec RPM macros for local rpmbuildRPM macros with placeholders for building rpmautospec enabled packages localyhttps://pagure.io/fedora-infra/rpmautospecMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-a3e521a2-12e4-48a3-b5bc-35f2df3b8dbbpython-rpmautospec-0.3.5-1.src.rpmrpmautospec-rpm-macrosnoarch52cf25e228ccb5274fc43d7b20325b3a8661490c8363d15774301690d2deec12Rpmautospec RPM macros for local rpmbuildRPM macros with placeholders for building rpmautospec enabled packages localyhttps://pagure.io/fedora-infra/rpmautospecMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-9e694644-b8eb-4f4d-af70-d1c89e233b07python-rpmautospec-0.3.5-1.src.rpmtinisrc0cc9fecfa73dc3a5005a34f98918bb1f2052e9f79b89ab02c10bd229be25ffa2A tiny but valid init for containersTini is the simplest init you could think of.
All Tini does is spawn a single child (Tini is meant to be run in a container),
and wait for it to exit all the while reaping zombies and performing signal
forwarding.https://github.com/krallin/tiniMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-1d022c58-f5be-479b-92f8-b19f18bfa645tinisrc7e85b0c9829a8a29879dfed761f817196191ad9ccc84babfbb33683f5b56cb45A tiny but valid init for containersTini is the simplest init you could think of.
All Tini does is spawn a single child (Tini is meant to be run in a container),
and wait for it to exit all the while reaping zombies and performing signal
forwarding.https://github.com/krallin/tiniMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5cc72745-dde5-4d44-9da6-b6fc1ac9e6f9tinisrc6d0b0ecc341551d33961fc441abb7a2e2a242cf815c259437b4d205403068930A tiny but valid init for containersTini is the simplest init you could think of.
All Tini does is spawn a single child (Tini is meant to be run in a container),
and wait for it to exit all the while reaping zombies and performing signal
forwarding.https://github.com/krallin/tiniMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-0cf7c66e-86d1-4496-9a09-b2af39855db9tinix86_641f6d1c7ab8cddec8e986e80642ca0ab986251cdbe062fab186f77e8ce072cb0fA tiny but valid init for containersTini is the simplest init you could think of.
All Tini does is spawn a single child (Tini is meant to be run in a container),
and wait for it to exit all the while reaping zombies and performing signal
forwarding.https://github.com/krallin/tiniMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5cc72745-dde5-4d44-9da6-b6fc1ac9e6f9tini-0.19.0-1.src.rpm/usr/bin/tinitinix86_6414388839f45bb570b30e6555e1f494766171eff4fd3b7ff98346e279455376eaA tiny but valid init for containersTini is the simplest init you could think of.
All Tini does is spawn a single child (Tini is meant to be run in a container),
and wait for it to exit all the while reaping zombies and performing signal
forwarding.https://github.com/krallin/tiniMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-0cf7c66e-86d1-4496-9a09-b2af39855db9tini-0.19.0-1.src.rpm/usr/bin/tinitini-debuginfox86_6438fee8d01c1f6e32caa0ccc8f5b90ef19bb3e5ce0087a28740f9ad9a12f324caDebug information for package tiniThis package provides debug information for package tini.
Debug information is useful when developing applications that use this
package or when debugging this package.https://github.com/krallin/tiniMITopenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-5cc72745-dde5-4d44-9da6-b6fc1ac9e6f9tini-0.19.0-1.src.rpm/usr/lib/debug/usr/bin/tini-0.19.0-1.x86_64.debug/usr/lib/debug/usr/bin/tini-static-0.19.0-1.x86_64.debugtini-debuginfox86_64cf04840ab37b56342c6c54a9284012d31ca604176e5007e803dc434362c20688Debug information for package tiniThis package provides debug information for package tini.
Debug information is useful when developing applications that use this
package or when debugging this package.https://github.com/krallin/tiniMITopenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-0cf7c66e-86d1-4496-9a09-b2af39855db9tini-0.19.0-1.src.rpm/usr/lib/debug/usr/bin/tini-0.19.0-1.x86_64.debug/usr/lib/debug/usr/bin/tini-static-0.19.0-1.x86_64.debugtini-debugsourcex86_64db01891e6554716442534bfc6135136d35dea452389da6f0a1fce26d11c92b39Debug sources for package tiniThis package provides debug sources for package tini.
Debug sources are useful when developing applications that use this
package or when debugging this package.https://github.com/krallin/tiniMITopenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-5cc72745-dde5-4d44-9da6-b6fc1ac9e6f9tini-0.19.0-1.src.rpmtini-debugsourcex86_6488376919093f32c1c35d3bbf24c1c51aa0f0d552ee708bd4a5e300953ff25b2cDebug sources for package tiniThis package provides debug sources for package tini.
Debug sources are useful when developing applications that use this
package or when debugging this package.https://github.com/krallin/tiniMITopenEuler Copr - user mywaaagh_adminDevelopment/Debugresalloc-0cf7c66e-86d1-4496-9a09-b2af39855db9tini-0.19.0-1.src.rpmtini-staticx86_644bc60c827c6b38750ef87975674ccd1541b6395cadc060c7d246de2421bf03e1Standalone static build of tiniThis package contains a standalone static build of tini, meant to be used
inside a container.https://github.com/krallin/tiniMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5cc72745-dde5-4d44-9da6-b6fc1ac9e6f9tini-0.19.0-1.src.rpm/usr/bin/tini-statictini-staticx86_64a14ef54d0d4a9d83b298c2737ee17d2c9ad1aaa537277926b801d2fb5c9fcc93Standalone static build of tiniThis package contains a standalone static build of tini, meant to be used
inside a container.https://github.com/krallin/tiniMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-0cf7c66e-86d1-4496-9a09-b2af39855db9tini-0.19.0-1.src.rpm/usr/bin/tini-statictitonoarcha674ea06891593329198e7dcb3e0d4d3a1ec7e699954e2dc922c2ce8ec57e741A tool for managing rpm based git projectsTito is a tool for managing tarballs, rpms, and builds for projects using
git.https://github.com/rpm-software-management/titoGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6a4614db-355e-4ed6-95d0-dbc056f572ebtito-0.6.21-1.src.rpm/usr/bin/generate-patches.pl/usr/bin/titotitosrc5ca3358f83ac6f6fd8845cbac67b89fe8f2fba5b0ef26dc50a2f27e558dccaf4A tool for managing rpm based git projectsTito is a tool for managing tarballs, rpms, and builds for projects using
git.https://github.com/rpm-software-management/titoGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6a4614db-355e-4ed6-95d0-dbc056f572eb