copr-backendnoarch7dcc9b8c92dea037ffeb714b923512cdc94d2fb890e47d60bcddea0a03c031feBackend 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-backendnoarchdd59e2a045909a9f5663eb143d23da6d70ddf8d6e337e0374f1ad0d3aba6a2f9Backend 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-backendnoarch259d6a57a06b4c26647677e057e75ad7a2ef275d2cdc38bab215801ef64ef8ddBackend 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-backendsrc4ab36852cb165ee7649f8a982f6e0f1862995a900e45db0888982d41cf793885Backend 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-backendsrc2f297f30486dd3bff65aa41ef0b2e9f4a4b977be53b940bea91909cf7fbb44acBackend 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-backendsrc782493ed3b74c3320f5a9b4ac3bbc7c01f925c473ed95f88a95c97957ef75d0bBackend 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-backendsrc79a650e50c08a09173a80612b3e53e649f3a3a1a207a6aa9ebc147aeff016eaaBackend 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-backendsrce72e0d4f2482d747805a96f7cdc8d43ee2feef17118cf2072c030192aa635462Backend 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-backendnoarch9a80792f599f1085e7d46403d2772fc8a682c974da5b925ed04dda1146ee8759Backend 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-backendnoarch39675975ae35f1043395100e1ba8d66a660c269aff82cb84da7741d4fb8c54a8Backend 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-backendnoarchf633d9d9029d67b29098edc30c0829d0420cd58ac6b43017312baa4f09a67006Backend 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-backendnoarchdee84d35d440f3874c6a45f1843f15cb6976ca641f183c7f22574c44fd783a96Backend 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-backendsrc7ac21436d917a10ac0410f6e2a8df16f4399f80eff8f0c530be8abfbd9505857Backend 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-backendsrc813e79a403fa92bf2880086a035774664978505f297b1dabf7855e43202b3e87Backend 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-backendsrcd992d346cfbc90d74f2b1181380b5c8114f634c43abcdeb88b0531d442682005Backend 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-backendsrca28a6d2f6c6eb1e905cab615469195f2cee68089e8e6d59a1e109abfbfecbd35Backend 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-backendnoarch3a5bbd7cbdb1341b22539d27d345f4973fb75957a5878dbebe26ccdf2ffb86c4Backend 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-backendsrcc942f79fd80cb509e98ecf562e0daefd6ef2f282cf6bdf5e765c3b456a37de29Backend 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-backendsrc7a4e6463495c104e3ed8bac7988875d1313dc323744d59a4d9c8df05b5a7cd06Backend 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-docnoarch4cac80c5166014afad21171f8fcaa3ecb01eec2c72d783003ad3a4074008c4afCode 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-docnoarchb3c23fe1e911e6b9862538b0ddf73f8937a707c5e0480e3dc5737aaa13ca4ac8Code 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-docnoarchc90664f617b973a0fb9a267cf3afcf3c46e9d9383bcaf203177e8e416c274f77Code 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-docnoarch8bc9f6a63f1b4c219f9baf078976cf38cd567ebf84f450292d26bc9671a2d29cCode 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-docnoarch0a4a3ac8ad155952d33f21c275963584d2731515489baa7bc8b1ade1779596aeCode 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-docnoarcha5f8fd41aee2c684e944c54a54cf4c46ab1ee7e7c193601c76e0b1d73a4100d7Code 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-docnoarch4fe08d09ae6a7f10fd97ea38923f8108876e41c8a7e195e537dd23a2f3d83273Code 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-docnoarch9a866240d4737bd7985fd264e5d4274ee10b25fafcc7b207c46c1a3784f4f9feCode 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_647224ff79325c32a464f35b81c3c42a50bba42535a61ba25ee97214ad44778bafcopr-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_64ab1208a2a287ea274c05915e7c6b79214a355277d07aa9da034f58471330e430copr-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_6489bf260635ec32a1fbe119b657d8334cdd8f1c63dbb3c887cd76532b156b7ea5copr-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_641d4b95836bfe64bed80cd705f6e77f4ce11bee50e72963404f8ad8c5054f09bccopr-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_647e889dc9ff66f885e9651177752d601cf17b163ff3c681b11d45e85268227223copr-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_64f54f553f7ebd4cafb04e4bf77979469973262ddafa774f3beda906317c6f061bcopr-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-clinoarch9e2876f6d46bc84c9f5f6e7781aebd1aafba2194fe5d79e01c8719ed21823d75Command 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-clisrc2b2b44605d4d9900d1075d8f03c4dfb66e1a910779f4baa9f12da43c144aa5edCommand 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-clinoarch9ead0c5dcdcb57f80f47e98c21eb700b79ac3c44e16748dfa794e979acbbea0eCommand 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-clisrc26c755a7e666526b1ed9af383e578f9c50382c279ce1fd76296476fe3d3fb17eCommand 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-clisrc8931d7a69411d67c54f82939541e0a4959503357ba8645ed60d32e34507e620aCommand 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-gitnoarche852fadd3de0c88dc0beec87050c7611baa8ddc0a69c8d5dd2dbf3721dc1afabCopr 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-gitsrcf6dd1dcd8040e5d1d2f23b9654204bc9452ea5a2e3e7a43ebc25ad9303f191e9Copr 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-gitsrcf8ba71111850f477f4d97708df40d0490dfdc7de23fe6dbdc5dcefa755009e54Copr 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-gitsrc3b8a1938d870992106a37c7aa8cafcf4f09b75ecc5fd5a443c67a89c40a72dc0Copr 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-gitsrc2ab8c44259fa9fc3d4a0f8758248a2d021bc54fa50588c549cc5fa42d8cc89e2Copr 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-gitsrc906fc23613423d18ed94b39a1be734897b7a0e80a29df8db0fbba4dae41af07fCopr 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-gitsrc0af87933159e8e392eff0637f18a1046f5bbfb635b79e8979b73f5ec8101c2a0Copr 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-gitsrc03bacb93c6789ae4cc7872982ec36dbec919f6d8b9df6bc75e47c5f98d4ff1ceCopr 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-gitsrc26f066a7a3f34a93976cf0458b35254d6faf3d0da55d39f0096d4e54134cd048Copr 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-gitsrc3f2626b7b05fb4f79199acbecb703869556add089a75430cabcd0b9e5a42e846Copr 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-gitsrc552bc9baaa060f97fc3a27028e095d53438fffceb4c12613e404c0a410292b83Copr 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-gitsrc9c8225557d2a661c54d10cd9f903bcb100beb70621748d6b3e8f1afa06b317cfCopr 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-gitsrc972986c1679f72dad0471b89f1295240f7f390b7678b2ca239f8c9723d1ff641Copr 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-gitsrc7adb66748b0b0a0d67331c566acff5006b4efca04f3c7da7141af6c77cb3286bCopr 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-gitnoarch18ab73612c6e355a0df3db8aa0d0e5150fed3498118d15767101ada8d95289fdCopr 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-gitsrc085a7c61ebafa9470747b4571871eecbc22cff3f02ec27abf38e1e18e4be9c6bCopr 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-gitnoarch647b81db0fdaf128042a08418a95cf9a0b8f19f8b023fba27188bfbae8e990dcCopr 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-gitsrcf0c69edc852d60a7a0da7dcf6d9566f1fcb0e192ee66993a93e5106b04f6b66aCopr 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-gitnoarche2be14385522ea90d7eb4a3481d259be2f1d6d297a4ccfeca838f302dcabcf3dCopr 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-gitsrcb93e8348a9489d3cc417fbf0881d6ecf4ce285cdf90d32bf6c7014e1d2cb9dc2Copr 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-gitnoarch334d080f50d4593f8a9ce74457b657cf8be812fe77633cca89147b46b97c2871Copr 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-gitnoarchb093833cf58e5872c4eb8fb566b770acfdf7ba50a1db18ca7115a1f7709f8fd2Copr 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-gitnoarcheb02e415feb2486bc56a83181e53b12b328d45c6c147e0536373e8e03b660966Copr 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-gitsrcdad981be0a4db5e509ad8b2294a631b342be67143eb70e9830f167ba0189103bCopr 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-gitsrce3335c18bd983c329213873d30582038924673b4594a94510f76daa950fd9c5aCopr 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-gitsrcda4c4daebac3747c03dd46023830d33edaff86ee553de87f5a12e0f8cd068cd7Copr 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-gitsrcd3d67ce04f493c0f9fbbe33799b0061f0985aaf3d1ec2d1cd2e907174979da34Copr 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_640d96a674bbaf4e1f0b3cf8674928f4899efab1b4d89f366b91b9276f45ab3ddeUtility 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_64aabd2c90fc41e67e19d6498c89741ccfa1b6d0462c24c56755814bc3ced2b102Utility 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_6418e2f723cc63980932509aede58fd512f37af878fcc2ca863280e73e43dc155eUtility 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_6439a85bf168decb440cc43fffbfa74afc257f0629a3106be8db2a98704a7446b9Utility 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_640a2973cc8e3ff1533b6a11c3a40516a550ec067a5d8ce0390a8926b950c151adUtility 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_645545c0ac495b8293c4853be6d1afadfa8b04c780c9fcef117c79e2f39a1415b9Utility 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-frontendnoarchf0c103a3b9f8003a4acf3b670ed72d8f7a60cf6e7ffb2f33e7cd678c986ff880Frontend 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-frontendnoarchb6540ca2a45ab014d451be342f726ae1ab825f2bbb7fc8e1b73f897db8bff3b5Frontend 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-frontendsrc2b71339f20389153fbfa667123788cf5d7afa49ac2361116e2400c9a22120d10Frontend 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-frontendsrc98d019522305172581bff5e680942e335220a12ba41aac7a64f9948bacee88feFrontend 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-frontendsrcc4fd2223bcd8bb5466ed6ed7d3b2b92e8df716279a615fb061f0b9eaaa88decdFrontend 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-frontendsrc5c5efccc0d4f70d0e31dd1f679d8b11df622cf0a0384f5418d84d42e38b4aadcFrontend 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-frontendsrca5e737084b8c4500a058baf97d4cfad3d5226e1efd3850470dd34f041279a57aFrontend 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-frontendsrc8315170e8d520f770c1a44c2f669fe12eebe12d6b260c36a8817474a673cca10Frontend 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-frontendsrce3394b6d0ad8ed6536974265c941fd6e101c32ce041f14789b57f768dc8a76c1Frontend 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-frontendsrcf97592cb52da90fe3d0ed8d1b61ff865dde77ad0cab54e7c98c5ab4081eb561bFrontend 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-frontendsrc71b1e510b79bf9d687f23e4af55cd19862c4a2056579c74ea4d6800c64b4cf4dFrontend 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-frontendnoarch77580240cabe71a09025a58a5bf6dd7b235fd9b593c211cad7e55c575e385fd9Frontend 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-frontendnoarch10d0b740c9398103eb3e950bc9c1f757b118efae0625b3a59b1d80bf32491de5Frontend 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-frontendnoarchcbd06cc139de55fa1d11be967af54d869817ec12011319694206f587b49eaa86Frontend 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-frontendsrcf8c71ce96efc1732df0cfc60faece2542764916281fcd373f149624f49c56e8cFrontend 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-frontendsrcd0eb06a00eb2f9b8590e742b642f9f7804129a4f5f3ea9d24fc760f5a6e27ec9Frontend 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-frontendsrc54c38f6a80cb791209b234048cc46f269cdf2395925d7a7d5fabe27d22b68d30Frontend 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-frontendsrca6ca668e2e58aeb7234508f936753a77a794b80ad04cf4e3a71feedf659bf1e0Frontend 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-develnoarchd04fbf487c00f2a9d41c5d36bfd205e8ce54008aa2e689d4489b0f209ed9ebf2Development 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-develnoarch89d9f8b0fa6606770d99a93268ade14e8cb0cc5a3b520fc540a4fbaa3c21d6aaDevelopment 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-develnoarche8fd5d536965d5a0080c3528b904eb43cc8c8faaa551c2ed3f0d3432a63b006bDevelopment 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-develnoarcheb74bd2409554c56213c23c398d712f38670d0386ce82c99a1bd71f693753705Development 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-develnoarch8d0ea0fb21010db1d0341fa7ad1731fc5b86170ecdf5f3138f61782676d1d2caDevelopment 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-fedoranoarch125476f00d4753eddc111a05e09346f80b2206c63f63cbbd5a17adf419b63c0bTemplate 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-fedoranoarch7bdf849828ee1d72d59f70f8bd0c10f022552b7cfc11691da7f98cf24a35316fTemplate 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-fedoranoarchc0ff079bdc83576a9fe83a7840476df083d158e1bbf80d9f3f4487ecf6575d80Template 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-fedoranoarch9de5e502f25b6e1783d8e81c2b72b1caee661a4aed00b1a08131f086bcb08813Template 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-fedoranoarch44ed88500201dad5ece0042c0902687354d662e73ad54922a7e27d158c995696Template 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-keygennoarchfa2464504fee5715644b9ca52302020192ff5e7be75330d64d8b45f36b237b7fPart 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-keygensrcbce771f6655aeb086080ec612ee231680ca44edd8537ebbedcb15390123f7b97Part 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-keygensrc0c791f69278c80fc56d804be12bea78c323321e16ef109de1e1ba29db91ec1d4Part 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-keygennoarch2a141cb552ffdcf67024d7f5a85c844dc2be3667bf7cfa6a4d79692e72ac1b4dPart 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-keygensrce770c56ee2a228392539c79b6ab2baa4b50479966dea4d4bb6bdb7139a17589cPart 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-keygennoarcha2f95c9e8ac30840e8818afeea6099eb4033391fa1d2e55e51633f20415e9827Part 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-keygensrc20be981661fac6d55024a4eb5ce7eda3e22c40b1d6ebcba1697457bcfac78370Part 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-keygennoarch32bebea8525fb739e6fe21313fab82425da0b4a47c6a165fa5ad3b546cea8c3cPart 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-keygennoarch3d050b15d4f597ed3f872471c628d5e1513ce7808eff19c6fb6befb0a779ac89Part 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-keygennoarchd464d1935ce21333372139020fe155c3995ae47244d9923ee80cdcef901ea0e8Part 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-keygensrce6c2446fcc279996701bfb566dcebdf043dd8a5e55dd4c8b03d23f01e7c5efdbPart 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-keygensrc93ec46cd64f5321ce543382de9eb129cda4251c8168040b2ab12e0957c320754Part 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-keygensrc8dd624fc4d2fe988c19eee88c60ed6aa8b1a844ffe620a5b201450574b7af6dbPart 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-rpmbuildsrc021405ed25807dfcde6ad8212aef671784790f4d0d347614f9cacea2aaf49e75Run 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-rpmbuildsrc5e530c29d1860cd9b71c522009bd2e4f66f0367680eb86c604c1a59dff24fe2aRun 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-rpmbuildsrc9f96e39ac951672bdf625d2ef6cd81a545189902d590584c0998557c80e6ccf2Run 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-rpmbuildsrcd9ea295c7974d97d1f35b968688c6b31f83f8ee534f22169205213bd2e2c08e2Run 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-rpmbuildsrc50bc3caf86738a8acb902672ae8ea198a29175df040b40bcb60451485d47672eRun 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-rpmbuildsrc6cc7e980310219b1cd0a676fab3e475eb1998801277417fbb2e49782fef2b558Run 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_641f22e2600b0c5c7f559e861cf4994e2a9bf87f6b9ff4d32b26d8fadbedb07134Run 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-rpmbuildsrc1453bb07865832cdeb914a56c097e7c8cefb017d41e9f1cf803fd1ce5359f296Run 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_6456abeff312f178638f616031f347c7228badfaee9e5078de921a2713a829dfc1Run 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-rpmbuildsrc84d33aaa8e80f3b58736c74f50e7e94f33ba59f85fc02c7673630caaff6863e6Run 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-rpmbuildsrc8ec649c5f91c81344f2d38b4c751c6e954fdfeca1ef32463169c0cc91f40fb6aRun 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-rpmbuildsrc05fb2f28823977cea40ed0945a029ae323ab71dac549da5d48dbac949659fd97Run 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-rpmbuildsrcfb5d6fc3b19f27dbb432f1ca1a93b2f97f5a8c14d146843a42a10ec8e0f07c40Run 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-rpmbuildsrc825baf01f2a493eb2d313bda5bc2a182db1aa163ab9d90cfa15b08d8484c1413Run 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-rpmbuildsrc5849ccb3b646fd42c48db9b3271b56606daa8fe07dcf0b62e2bbc7988d6eb339Run 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_6402acdcd2ac5247e87f87255b3b9d6c06b1327c4c025d4ad0009dc1c2e6c4757dRun 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_642c6f6ae75f3ad968813857bfcc359415c36e1fa5c6436f871558656e1aa9e1c5Run 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_642adaa940c5598e7388f1d274aaad5c61c4ddd3fc705b366923e5ec2367dca65fRun 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_64d675ebba546ff6992763f91f78b8048b658136e3fd2350c26a816cdb66b87b41Run 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-gitnoarche688953a74876925436c0f99f699bd0e66b5f960ef5566edd4b939b921406415Package 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-gitsrcf3c534a0dc25278deb91f097069916b74533695b681259c768fb8196ce52bdabPackage 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-selinuxnoarchaa61dd8308871d9a35a4eb1c00c70046f8f14bba413bc83e9a289dcdcb399364SELinux 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-keysnoarch3209fa290d9688d63d78186b7d888d4978d216586125a4a4920c7b66e2e03802GPG 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-keyssrce4890c0069de8380dbde54513b2fbf9ad14ca216e30f623f9ee038a3bbf90a77GPG 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-coprnoarch59c61e4178c4327bace3d75b21eaaa47aa01bfeca099394e0e24e9d99c10e1e1GPG 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-uinoarchb2946689c173f53836d657913c044f22add8392df0f0ae29baadc171e9c9dc99jQuery 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-uisrcdb7064b9b23974733852def2d6fe73aa3ef269ac34b854a5950735d3389f0e3fjQuery 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-262ed82ea60dkojinoarch854c22e272553baf2aac38f0ff842ec248c97f0b35c6640a628810db5487ee06Build 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/kojikojisrcd409986f25c5003119ae1ad15f66b70eb3db9b612368beca2e3ca110209cda75Build 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-rpmautospecnoarch37298db261ab0bf5d8f19262df45022581c7d58c8f6b0b970668eaa0886692edKoji 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-rpmautospecnoarch1ce318abbad1698a49c265a57fe0e7191d261cc28d7b0f628617525534273d9aKoji 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.rpmmocknoarchd607ae49111515c219136953ffc941882f050a12faeb7b65ed1b73fda5511827Builds 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/mockchainmocksrcbfe8c7574cde2d1b3d91285996ad8a69db1e44b2e205a64a3c73d5663042c7aeBuilds 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-configsnoarchac8cb993782244c6a3f987e7884aaa178547eddebc368ad65168be3dc56556afMock 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-configssrc58893bed667a6dcc04d77b82d323a42c70ba8ba3856255e108041c6bb6bfcf94Mock 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-configsnoarch42373381f8d340dd4db65c22cadf4225e82cf33586ae41316f6ec052452e921dMock 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-configssrce7cd6398eb802773ac351ece5b6d44c4f40f7b7c15bf0dd66a2940a97c43bec5Mock 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-filesystemnoarch35cd02e90b8f879e613df2106b9ad5e8d77e7afa1889fb936052a4fb18b589c5Mock 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-lvmnoarchaacd45259d42df38bdcc59c171fe33c6043bf2656199f47f48c7cea3d94d2d7bLVM 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-scmnoarch65e94d8dedb2f544ed99f7b672edfff4c76e0c6f74ee293630b34a9a56c56b22Mock 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-toolsnoarch1553e06ef9e0ee18a5a5dc82cc4b25c6dc1fe766465d99ddc5c95ec4acaa31e5Collection 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-toolsnoarchd14c97d7b0eabec59bd854cbee9270428fa765eef9bfc94d23642bb3e2f7d782Collection 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-toolsnoarch4d106adbac7c7b467adbfb1d16e7d472022057b16c0f0215d388aa3529d21069Collection 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-toolssrc29339d1ea49458c4fd7c1c724a8ac981c287fd879c480c86304d39f8b5eeb699Collection 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-toolssrc56b8a26fff5dc857b4e7dc44bd6d8de8f711b6dde4eba9d475b53ecb4f4ca614Collection 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-toolssrc5dcdf7ad3ced94e71dc9eafd85d5afe4381361de7f0cbbbb6b4b2c44c4cf4410Collection 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-toolssrc944e7f84d8b32dd19cbce517517a56b4e08bc10895d88ecafa9659a88d77e75eCollection 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-toolssrce84d55edf091a053ad989234d084ba12a699f84e44f095cda5653f2fe6629f91Collection 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-toolssrc5347cd25decb8020719d55aaab569fe084566ae450c8afb736c96a78ad4c2916Collection 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-toolssrc3e06c890ed4894b11b05331674e02d09d84c9a74972c0fa40f3dff12f35e6313Collection 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-toolssrcc497f9aab5b971d7198c4904f9d8ff1ae30911fc71d5c53c5deb07aa3696b5a6Collection 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-toolssrc2e61b2ac8d0d688f2142f5eeb23c904853bb46c8a3793539eec6fa7da6af88f6Collection 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-toolssrce39b65cb464b5b8754a9f60a048d482215acc6f5ded0d4234edb57c099a7b44bCollection 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-toolssrce31c2ad13aa9205862e2adc42b85ec2e71f379cd171711546135435741d7c5ffCollection 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-toolssrc963d40d69a7d9400ce4495ecb00464852d78bd4a0e5e856233dfffac7b2c0b1dCollection 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-pythonsrcdd544df2850ee2340afddd0bb501d2dbe127b987c44ae7144c6b2388faa6fd59MySQL 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-pythonsrc0766af9a932d151ea2a6adfe4b91bea9f05867ac7340241ab6c5d2f8da96ef11MySQL 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_64f5203856547db98cfea13aff820cc6ec7de1542015f104c3daf59eab638084d3Debug 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_64b0cae05d6686b55a41d3c48f03f79d8970b26c0d8184e9dcca0b41a6de4f6e4fDebug 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_64846bef9fb65719437319b63b3fa8c24fe8f4e8ffffedfdcbb1745f94578b3b61Debug 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_649f7419b1d08643b758c6b82446d6b61a6f398d4817220a65c86d980374a80d2eDebug 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_64b05beb9e5fa031c2b9ed9894b138ebf45d069b2439c7a1fea26601affa826585Development 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_648ac56cd2ee092afccc7c54489215cb4d92ab4e0efe4f88c746a2bbad682f19a1Development 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_6418c7b3937d4acd69128ce3b087ce30e204f6e5cce196f9aa9906bb8fad40d0d7MySQL 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_64864a55c20f5a94efbe507d9744f862e3ea2be3cffc84b91f9408986539be4373MySQL 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.rpmnosyncsrc41720436b631255e80e4e9fb808c062292f0ee3a01e9b783a35227a99511c5bbPreload 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-400cb91fbf21nosyncsrca87202270b1372466bceccdec89756b9ed3b5bb2730223b60f6d8630ea2d2e97Preload 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-1feba6f0b434nosyncsrc5f6e9c721b60e1cbfef6978077ee501bcb7ee1f7c2e8bb00852c2dd8f4b9ac88Preload 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-c910529d5b81nosyncsrc93345bd0668158c6c95f129e8778c44c9bce51b63d5f565f3c5833afd05b4527Preload 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-593fb34a41acnosyncsrc19e90134ab9cccd8c51569c87166c51ce482afa0f5d46d959a220697222b72b1Preload 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_6480c7111969613d510d0fc682adcbf3aa9060eaeb146f44c74d564a98ee5f0803Preload 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_643177b1e39ed07f758cc397f5375549e7ae1caff1e7cb77b984d8ae6cf35eecfbPreload 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_64305ecdd8a32bc6c26171d4adadb5565e646319c3dc4c385d3dbb5ab274a2a849Preload 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_6427138ec0a74af66eafa5723de9f16e2f9ed9cea2259c26169586812cca16c6b4Preload 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_643e8df7235afcf12ee6b0a9a441d71e441803904721a53d7d7def93d45bce9931Preload 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_64f5281db2fd81fe70959aa1586f0d2dc28eb8c381602a6854853c50f3affb2c40Debug 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_64d29c80100e323d7bbcd4726126a7f189d35a438f26d0f59cf1e663a5c67c6ce1Debug 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_646054da8eee84b9eebb81e08ea1ea0737a9a774903bc5e3dc33f5ee31d5c7110fDebug 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_64a43712dee37020eb86ddfbd3435f190448ffad3e0b82e15748c53425e35baed2Debug 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_64bc40cd3e8f585659dc79e2e31df5cd07a996ebb62a737c6b485e216db85e45ccDebug 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_64a6b872b90d30ca904537b92a1237e91151038160f3c6dbd219adb9f1fba07482Debug 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_64c8b40b45823aac879c59ded9b70e077dd951e4169cd254b69df6c10d9bd297ceDebug 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_6478c5c167216d95127f9886faa58f457926af8d5b98634b810d2849f7be6f4784Debug 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_647651e5c37598afd9ee690e62635e582cc8cb1b9d1178cfbdddf7bb12fd892f66Debug 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_64247fdb2d9c59a6c03b5068b073c4b6c8eea6f1351221e1dde23e2da392f5befbDebug 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-signdsrc73f7c7231e1678aaa357a19ac6465e906a73a139e34af4df880df882fa258686The 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-signdsrc937c8ee95cfd229fef5c6639c45e273a74664b5f20b47780dcbea679b85ff909The 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_64ff5199b126fba5e53d91eff4a50e62df766739d5afab83cee11067bacfb82a7fThe 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_642ef0a6e6663682015a03ce9af3d30dc19a1ae166c30e6f594902a9af5e45257cThe 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_649b4536c79ebb59db8215daee80d73455839b9f1500e3e261d9c992f9e4311c36Debug 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_64fe02a7142e56d460c44a79d5ff303305892a267e304879056f6a2ac71b1d2c19Debug 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_64dfe3c6f05d927734b175e0cdb7714a6f7f060b2483bdc6c049de21d0c8e63599Debug 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_64c83e83d89a818f32e3512f1b44dd84a07bc35d223bd2d85de2128f35ffb7081aDebug 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.rpmpreprocnoarch205e53a0e8df99edc1e012abcb81a7bdd24c0ef636dbdf9db13456f6b83a5370Simple 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/preprocpreprocsrc1dd2a3cf9eaa5c779ea8021da6869fd8f5d9153cdaecc00b25ec0fed43d096bdSimple 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-542ee0ba0ac4procenvsrc3e49f7d477e9338df2c316db78c3f0bab2861cd2e074d49316467b81ca01d183Utility 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-e95e227c37ddprocenvsrcb4ba5b73e4f5c11b910d9991a5934c448debb9d4966e5bd6abe1a21865e28a79Utility 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-9f5084ba5ff5procenvsrc5b9213c49539e8d4cfb804000350f1bc21dd5370bc087e82f8e95e843bd89ef1Utility 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-a1c95a0fbf36procenvsrc60ba2ea95aa39ea0b17629823e850a6001670d104b24ee52a37b3b3b05fedc0cUtility 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-75c11e7b5af5procenvsrce389a1cb3c86b10bfc54f716a8e93583783b122a12cf985e3be41fbb46b04050Utility 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-02491procenvsrc1cdf035ae2e6a99fb5dad3e1759e75238c4530208dca64334f6689e58a3d2f0bUtility 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_64f689443c33d4fe8dfe54bddd8d686765836af72805efbf948a7446c3ab471894Utility 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_64d9a7e0215ddce421175f405724bd57d7f74e01b1005ec6b89d0ea75d34f2a0d8Utility 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_64cae5cc296cf08f6e3aa7c360734d239044cfc6e0b0f1fedb7e222a2a99fd597fUtility 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_64cf617b740fa6dd331572b982acc71f76cfd14b1050e988ee0d9076f4aa9e5779Utility 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_647ff04ed7d818fdbef1ba494fd46e739020cc4095ce810aabc13ec9c59eb3921bUtility 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_64c09408bfac0fdabc03411bce3b9121afbb8080ae4750a219b122ad5a0eb917d4Utility 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_64f70a2d598f9c01e738e2500c7a4f0d8f8269a17551f66aa12d3befb90eda0513Debug 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_64b517109dc9ebb85627382aeab92e06fede62e5bd0b76e1e4ede4b932d853a422Debug 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_64ca4779daf54dde4e081601bce175d728f70b45254699de56ea608109c2c12d56Debug 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_640955fdee64922df9f7a8e137c57225429874ed5708764d2053a3442861572071Debug 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_647d02600992c96ea1b839c5469ce8cf5394ca4a9389465caf1c74a5a7857ab4a4Debug 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_643daad9f7850f4ee79fb2dc75d084f847e5037289495c323e6ce315599073fd21Debug 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_64218709305996b50aedc15fcad9d92a920e2ca67d2af2f5d0e7c058104866880aDebug 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_64f88b4c05cf7ae8a0ca044fa1617734c882dc413250c17481510d342e6f139cc6Debug 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_641f5a5fb02c5d297cce18da9979b10c33b0a01b69ab71fd675da220c41ad095a8Debug 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_64ccf3db8bc17d6bf6f7f9269cdb8a9aa331c3a2d39f18216c1a38f09e49442958Debug 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_64ca1216366c5685ac0323686e77cf718c49b8d11e319fde634925b374a5bb6a49Debug 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_6415f6499bddde1d6a148e846dceff8ca701655e2605680bfc6b59fea8abf3ec35Debug 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.rpmprunereponoarchfd54765b7598477854dd23c2ad809bbfbb1c1ba02207804abffbb6f1ce8f1b29Remove 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/prunerepoprunereposrca3f4256f654a48b151c95ae3119b8cb40769aca779d1c2b9b878f72f033ccf57Remove 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-macrosnoarchfd28028d41f5e66eb634a4d6876fe142a483ca264dff132b4f22f8b203014b09RPM 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-macrossrc57486da1d6f56a34f33e61c69d89f8907c2e03ba980f61b9dc3ea9446b7ca3b6RPM 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-macrossrcaaf8445132e88e5320c8118b7a0538b64fa03b0ab420be66ef54ff18f60fd91cRPM 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-Authlibsrc8c06f9acceba6d5a45aca2c6784e6235452d8db4f6107999170e77bf4e43952cThe 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-helpnoarch99f8dc4f34013aa4a3a1eb1aaf0ebf8e08eb02b2ac048826ef83bb325d9dfc94Development 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-CCColUtilssrc515ae121ffcef1a9012d369051141c2bcba0f5a8b059425e2549056cebc4b108Kerberos5 Credential Cache Collection UtilitiesKerberos5 Credential Cache Collection Utilities.https://pagure.io/cccolutilsGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-46f4b592-1360-4414-8da0-da81cd95a8fcpython-CCColUtils-debuginfox86_64dae6b7821b10c308c8fe81abace3e34f8ed01b8fdf7ef5a2d1ca5bd7745813cfDebug 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_64db9f46e9ae6ec9933271144e0724981c24a7944d9438c978d976fda7dfa86482Debug 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-Cachingsrc4be28a01b19b7fba3af7c9795f193fb08bb4bd41e8ae855781ba1f17e6655786Adds 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-Cachingsrce3a84c4bc82b2f371b66486bc3dfa8b150eace5a45eb6e9a35d1851ca00665caAdds 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-helpnoarchc0d1fb62f695a3792e523a8124739775e264162f3ca549f23fcb4cedc35b084aDevelopment 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-helpnoarch53be9a1ab5d062c449d3052255e2fa104fccb0fc1425b212eb5f06f98f85efd3Development 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-OpenIDsrc49fdad0e1d2986b0ae6368ee740784ce204ef8b5e881d9bf56f500174643a1edOpenID 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-helpnoarcha20b2b47d2fee06cd044d7aa551c9e4063a81b03afbff50c5571c50b1304d2d1Development 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-WTFsrca88b834db4557d797726182a7ab599959361a5fe1c925eee876f5f4a2a172ac0Form 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-WTFsrc495e2cccd51b817ab8d408d6cad8eaa5f80fc6098fa13c47ff097be0fc484803Form 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-helpnoarch15fd1af6262df82b0453e510c2f707d82e69c78a1ce4611873fbd6ca03cf403fDevelopment 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-helpnoarchf333b020df0200b1499e844f36a70e27029202d0745913d7abc4760586b0418fDevelopment 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-WTFormssrcb436925fab03cbe9840a7888ddb982a7bc22e9a17e3f2366af1d88a0db15793fForm 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-WTFormssrc0ec4840814b8624e2147bcfa4f87e1b14fde306a720c09a4680f9905c497bf21Form 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-WTFormssrc7f3b2699ab4c593ec9692f7ea1c8b02be7005f39e28d5bc78c13a26129396365Form 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-WTFormssrca12f8ca58439045b33dab5f80caefdef01b8e4d35b9b0131e3db508196a04a60Form 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-WTFormssrcd789aed86dbd535f677bce76dfe21ef6402af2410ed1e91d06964eef732e780cForm 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-helpnoarch897730a58228bec2d492d5dc60cb180902389f36e038652346f1f6fcc20c4a44Development 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-helpnoarchb47d09a38ecc925bd483cb9f43df2fb1bb7c386fa238a13c1d9204d6e86a2725Development 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-SCSSsrcd6e4ebe9948d8a7723c9e48389329e02c300e7a36be0aec96a8a5f07a1c5cd97Bootstrap-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-SCSSsrce29ae03d2ea77b521f09b57d3c3cb5f2fe4c9bcbf622e9dbe5a4787da78612e8Bootstrap-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-helpnoarchf13a4444d1c5a420f3f0ca18efe373e460b9b7f72654052270b51f40f8781f5dDevelopment 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-DataTablessrc0a8a78a01d4c92701609c4cc2c35d2876ca7acf3da88dbeee4d06e7a26a47e04DataTables 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-DataTablessrc7a97712b5091e19b549d378aa7e24a38949b2e34d62b6be4edef06bc2c1e62d3DataTables 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-helpnoarchff436cfd352dec00dfa5ab418ab5adafeb7c8ae6a661d256aba1c0537d17ffe2Development 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-Patternflysrce893f20f82f53de0ada047ff0218f902b850eafd71af8cf6ad39ebae39d8b201Patternfly 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-Patternflysrc8c36d40283f547fb4544cdf010e7180b0294fca638bcb919a047e0b230792eb4Patternfly 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-helpnoarchdbf9d822401d19dd02cc567a86992763e2e78198ab71d4bbd40ab068feeeeedaDevelopment 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-manpagesrcaf26cdf7d594be7f9d56110ee7600dfbb5aeb1ae3606749135574c4cac37185eBuild 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-helpnoarch8508eca547d90e743321fea36ba01aeead938d174f00a945ee684163cdbc1313Development 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-asttokenssrc55050e1e0843d69b158f87fc6a2b678e82a8369594df2b9c3f7ae4573cd01822Annotate 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-asttokenssrc746671746a1d4325d7dfae74cb3206b5dace99b79f13ea8d397a574909ee4195Module 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-backoffsrc50fb2f7db4acf2554e12a91551db7f2a3b67e1d376f6e8542aa8b3e0f9dd1fb3Function 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-helpnoarchfb912cf36fd634dcb55ff119333c6c5a696605cdf915f08a38c4f8d2abf4a781Development 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-blessedsrc6bfb1a82c551426c5b867c32cb1d8051769f24059f94b5785cd91291444a5cc1A 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-blessedsrc4e1fcafa62e719b3a21f440557d3b9d3eb360d5e4d6b67b4b0e9d3d43ca72b2cEasy, 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-helpnoarch60925b54fc72af11afa1a7e1cab551d424ac83c030a9aa341883a9bf76b25042Development 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-cachelibsrc2cc83917cd176501bb546f912160b6a1b881795d90f2e23a28c2aa23cbdcb391A 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-helpnoarch4b7de65f37f247d0eaa52f3c6ff29d6401addb011cfefe846427efe93417aba6Development 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-coprsrc7edcfa80e70a93b02ab63138b3cb8f9aeeeb192da1f96c5fb8e1cdc9b9208742Python 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-coprsrc663d3a7d2c309795bc551b46655388996eec162963bd1aa5280c84f7d11f0da7Python 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-coprsrcbd5b8fb919ab44abadf802c6119935d400fe31b09ae0a36f8d252e70e9fb4630Python 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-coprsrc35bc20a441af1e90e8dda44dcc1d313f877232e57a16c0f29ca4d3be13cdebb5Python 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-coprsrcfc9f98ba886f3c61b9f169b2be0ec38ad8f97e4989b468b3a940e24852742278Python 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-coprsrcf341b4e8e7e06ffa47e0b80282f6b4542ebf2eea8d35f77211ae3cee21fcf7fcPython 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-coprsrc39220d7351c9cc3505993cc6d78b3f1128352625b24730cf5bdf8b7fc898aceePython 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-coprsrc34331c08a59ae07b0273f81bd7f3ccbb5e2b50117f773731504945b6c29014cePython 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-commonsrca521762f848ea579244efd61b0614a7fab948e75ecbe054fa80930b2c07f6db7Python 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-commonsrcc4fda5576114e8fd4d46b2ab5ef4ad54aeaead79ab709f173574f910141f452aPython 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-commonsrc109ff1aa4abdb68e4f8437836b5a86e234144ea4934267d9018002fdb6bdda45Python 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-commonsrc471faa0cdf8e8d5b3cab5d3879e5effbea13f37d170ab9a6843c72a260615befPython 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-docnoarchb4f64b9cac2ba97ad1ea8245bc49d8a758dfdfc0d1ea56f242af3305dcf65cb7Code 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-docnoarch7b989bcc2fa89da0f28bff44ad87765842dc4bdb42e3a2d88c19d7defbbc6f93Code 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-docnoarchef99dacce89c3c9b598ddaee0df8addd69cfbeb59a532b89db9230ab37fd1092Code 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-docnoarchb89fbda23653a994942f63c6ef0f09d858be909fa9336f5c01847fa71672b00eCode 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-docnoarch684326539759efe9b49bde50d4fd66425c1f2710ee0965b2b9e6e1498b725bd5Code 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-crudinisrcabfca5464b0fdbbcb1c442793afbd2c887e47c76315a6e1cf40ac91932c789bcA 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-helpnoarchbab113860abd4724e39cc963eea989b869703ecd2614f4b282f3cf6d423acc00A 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-debtcollectorsrcd8726da935feb10406494872bec3af49f96dd9fe8fe87390f23807d0d7c304ccA 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-helpnoarch86d7c34a321f03f93069ab7f9ebe19e544b608d829c898bb21094648ceb32b57A 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-validatorsrce7c7af7a12cc34cf34695530e8d7aaea0f8620c1a88229cdc328a2c1364f0b08A 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-validatorsrcd181f31a43788a3005bd8f2acf6784dbab206bba2b62acc07ba5d06e79ac3e80A 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-helpnoarchee83f7695cb66a160a6d7726b30e78e6ab86a34bba538b9cb31a40812457e0f6Development 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-helpnoarchbcf2f91ffbdfe7426af1e879a6f8296621d50744443d13798db9fcd8486f3969Development 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-executingsrcd99e5a836bf2554d0486b1b118c8970fa378011d5f96cf0369697d03d576cb3fGet 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-executingsrc063b7efd8646e137592eb37db0320ccbda3c55372b733a9f54293b3207ce1aa8Get 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-executingsrc7ee4ebc9c4039e2c93c7a6baf26256e5b33af56acba51a8918f3b0e6ae61a8fcGet 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-executingsrcb1b2c3235eec1bb04f5a7def264e6cc73f59a8eb2a38b6c194ab09f9d8ac0a4dGet 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-executingsrcae9891e0d6535dedc0182dcecda4da8049081ef4ef86c6149b054f62cc526a8eGet 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-executingsrc00ed4e990bfad6492f5f57117bbe63b6df02d965f4277a81eda599358153921cGet 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-executingsrc39fbcade4193420271ac3089752e90ca9ad0e102a042e2b64bde7d515f5ec6ffGet 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-executingsrc9573d29224e0a1260f99b1283f4ab3fa644d455459aaf8b749c122a0a9352015Get 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-helpnoarchbb99986d2e8ed40b5495bf52921013b06deea6cfc162382a98ed67fa9fa76c3fDevelopment 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-helpnoarchca5df2a8ec6651899cd1712874b72954f6faf51642aefcbe89110a825d3844fdDevelopment 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-helpnoarch110da4732a074319e6261ab6b1681d1be3a53c1655c5b133a3ce505d631fa612Development 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-whoosheesrc9a9fe76eade50b2c1f70e6d8ed75ecb683e4cd9770a5f4cb21b887f753da39c2Flask-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-helpnoarch8c9b789f021fcc1998cd00d2fd671a4c41f9afe4ecbe525933fe9708435bd0bbDevelopment 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-html2textsrc29066137e3b3b5d866ef59c25442b5a965799acfd0941f8c9689471997fefc8dTurn 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-helpnoarch3d410bdfa13769eef8167136e444d9377311d4518c4b7d954bc28e46dd16f9d9Development 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-parsersrc7eb08ff08d518e3807a94604a470369d9f635aec3e7997c0b30db4d409006495A 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-parsersrc17f0fb9150aeeec48b428d01a8015b600a695790ebfbdce2086398da98104ea8Fast 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_641d86bea4bc7d42d3a4682996111d0dcd7504f23e400f2493299c27896dc3ac96Debug 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_6445682164c65a2a58c399abd08f446b33df447861e6fa7bfa8a7c6b1c242f8a9cDebug 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-ipdbsrc6b42ab4bc53a5c88dfd86d41ccb21a34bba7f0406a8d7d60382d7643d8ece2daIPython-enabled pdbhttps://github.com/gotcha/ipdbBSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6a63f5bb-47c9-4416-8492-f19492a67c7epython-ipdb-helpnoarch6bce6863c9f37a4ee5e54f2793a4b23c240a3e166ef42193268b328bf6d97001Development 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-ipythonsrc6d0011654ba261fc4b9efa4b73310d36afece681ddaee7cf2c9c86f9be7500fdIPython: 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-ipythonsrcea1451b7628bea5fa3309aaa80a1e9e97eb6f2407b93a05e43261f1c8249b1d2IPython: 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-helpnoarchb74ba8acbe7601ba5165c3f4bfe0c526ea7efdcee175034480de2b5d0fa77fa1Development 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-helpnoarche8ece024993fbcc75b03dd6e83433e0eff80afb2fc6cc915185aaff642f91e60Development 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-jedisrc9b28a3ac84a1531e0136b60ff20e47e1114dc1f8c104093ddd60f1a64f1ed4aaA 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-jedisrc8fecf4205aa5d132c664f973f46251bcc66b4c83f1065cb06d7d200d15d28d15A 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-helpnoarch9c5010082db885f765e5ded57664169c8a73cf2c2d584284d1afbf89dc6f6105Development 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-keystoneauth1src925fbf6ebc11827faf5817df4c24d3a1a29af25bb937e721e62cc17b5ea96fd3Authentication 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-keystoneauth1srcb6d5d16c8d914ea79dff10d1c2eeb9f6051b26a8a17ddfa2f3cf2c7dee5c44abAuthentication 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-helpnoarchbc85f49e494528e0dc5a896224e7b75a95e3918cff04394ce6f3a3ed440bec06Development 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-littleutilssrcf1944ce5f7b0be75056d9ac6367626fda5488432438ad119c9627dcf4ce88ddbSmall collection of Python utilitiesSmall collection of Python utilities.https://pypi.org/pypi/littleutilsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-39d7a377-28fe-48e5-bd1d-33b167eb137epython-matplotlib-inlinesrcd0323fec61d5105a68cba523f59b581ed0687ff644358f9b83bbc2d422f7d5eeInline 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-inlinesrcf38152096ee318864897920a5c121ed43f6f7f59e3ae8e268f11d91a66dea677Inline 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-helpnoarch5f32500c5b551daeb9724aa4e412d2a546755e40e2f8684cd646a4d1336dbd99Development 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-helpnoarchf9e38f60b204c4e9c59b0d0eb16d811f380b103538a48551f61b608209ddbd40Development 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-novaclientsrc6425072432224f38b91d948f2b4996b01bba072b18ab6de2180d0bf2abe0032cClient 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-novaclientsrcb185280c8b8898e10bde9e7d26a46de4ec025447934e31889faaf2439c3b383bClient 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-helpnoarchaeef0ff07a7a7352988528a4a88e2e46e74c962a202e9b7cf4458962c8163cbdClient 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-teamssrc335543ccb6e03122218dc7c00eb7438948ab0652bd7b80511986cef0302e1b3fThis 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-teamssrc0644cda6ddb0660eca353c42bc23680e3fc6860725215ac190e591b0f8763eb5This 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-teamssrc06fef23250f2911a06ad947e22398d5284238c907c594dd8fd788a0d4d04d0cbThis 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-teamssrc97d77ac0f5e9a869ef3fb0ef69db31fc923d92ca6169c5574f4e63933b1b58d0This 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-teamssrc360fd993edddf7e6a23ca5e359ad3f9d421ffe3c67c283bd6f21d0a0a587f216This 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-helpnoarchb36ca4ec9f55b34cde7b495eb6a9ba2bb067b29877804c3039db8abaf627b212Development 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-helpnoarchfe7fdf4aa048f45e0c5070bcd69a05312eeb447d529cc0892dac659ab79129f5Development 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-helpnoarchfb305ceef74179524a72bcf5bf3089a10d3caafd0fd05270c9c27625122fc271Development 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-helpnoarchba9b483041657bfaf1a7d99871101eb56bc0a42fc390624815991379798793d9Development 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-helpnoarch4a87f347b468c2a78a283101e202bdd179d6e50e99f35b15143408238bd2e5caDevelopment 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-clientsrcf2857e8bc6c5f8a1c597a00333b372cb27711fe07e8133a1d0d31858ac5c0a61Python 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-typessrcbea801371122eaaa40c14c81e8d5a69ad2e8b60136284bd0a31fa47f53714e1fPython 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-helpnoarch19e8336fe5a579efbee6ecc0e22633c82e523c8476d9d0da72185148acfe9cbdDevelopment 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-concurrencysrc818376b459660fa363980cb60712962ec3e828e5fe91c2578949dfc5fc7af313Oslo 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-concurrencysrc2ff693a65b616847771b532de13e579b34f3ec2c47a3c8ea0044955a5a910a02Oslo 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-concurrencysrce02e09c970db2d6d11abedcb156c75cd110b3f722770ac09fe4df18491d03971Oslo 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-helpnoarch5ef29fbd89178f24224b51e5e24e84a48f5c93ddde9cc4f290d381d22a68ae9bOslo 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-helpnoarch621dc6b1041da3380acb9f70097bea949a6eca2e579c2dc6f36173710dcde291Oslo 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-configsrc62e8326e2e702ce363b7cc0f25465b39adb7e811b6de06a50a47dff9c944213bOslo 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-configsrc16c1fdb0da9557fcef2f6b52581b6e396738a7ca4277a9d6c1fbd51bd06e2d2aOslo 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-configsrca94a5c83e4aabfced98835ef6f33de4242fc1ca816270fd6c9949936fbeaac65Oslo 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-configsrc1cf8f874ae3adfc89b91726f7a42012e8746dff93a602b96f950cb91be4317f1Oslo 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-helpnoarcha3e8cc775979b8ad6062077088551bd90611d96f48ae0a8d1630c2c8634dd343Oslo 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-helpnoarchf8fc1a3088b633b2f85ee26f8e2a73ec50194a0592b957b96935d0e66671fbebOslo 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-helpnoarch5b64cc762abe17746d22cd249394bc8ef011d4f3728a24b8c2d6516564f9d2d0Oslo 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-i18nsrce80a867cd830f579f5ffffb047cf8df110d268682f29fda41564e96faf9531c1Oslo i18n libraryInternationalization and translation libraryhttps://docs.openstack.org/oslo.i18n/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-60612359-e0cf-4c6e-b057-da0f7a13dd50python-oslo-i18nsrcce958220cbec3cd612ee2afb7b463c512aea61e0252c03b3446a5c06cc9ab2eeOslo i18n libraryInternationalization and translation libraryhttps://docs.openstack.org/oslo.i18n/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-579164a8-378f-4c92-af1a-e6ad69f40c2bpython-oslo-i18n-helpnoarchdb7f9b27e6129ea3b5eabee8440808363863c275da6e9c5387a02aeaa24c7a7dOslo 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-helpnoarcha7069b663306ced381a6b6a9d214a12bcc03d4f3bc9daa5d694266251e9997feOslo 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-serializationsrcf55f82e6bee3fc7dd32c47532c8546745d47ecfb06873892349a45ae56287365Oslo 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-serializationsrc81935d23bcd334dcf5bf5a10f82e3889a33c39f88daf5b860e218a98a6cfe153Oslo 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-helpnoarch80ae902ab600171791b22d5f73300efbede6e32d9b0581ecbad9e70831c10830Oslo 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-helpnoarch7d41a3855476a6c546b711aeff43cb687c7057957a878f2849908d86667a81ecOslo 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-utilssrc46fa0f32fad893ded2891b4a2ec1eab2530bfebab5adbb139b83be0dcff090e3Oslo 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-utilssrc8ff44ebf6c2cc0921b4d526de1be416c98cb87b7ed06046efceb02ac18c5c9f0Oslo 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-utilssrc777a87a7499e4f52804aa0fdfbd7a8e44596240ab0f20d3a9ad4323491f5d6b3Oslo 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-helpnoarchee6a7c64c25e4a6f2a80b4cf11b9f59c33b3418375002205d5903b357fb62e43Oslo 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-helpnoarchd2ba76f58dff1c4164d29904d04cc02ef0cc3a64738c3920d0bbd643060b7a24Oslo 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-parsosrcdf10067358f1b3bb5592b5827b85aa9015b9a5f1bd46bd7d0187aa6edc0af1b3A 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-parsosrc471f4be20c344658075b6d1e49ab57ae8cd7a87cbcffd838120e1268cb532902A 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-helpnoarch6a932629c820345f612b4e11b204b33a09165012b715a1d4dea3a0c2c5dcf872Development 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-helpnoarche5c74075c9e86ffcbc3928b0d6cb6d091de6a66be76fdf1a8861307aa11d9341Development 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-picklesharesrc3b91b77aa0299d568ea143ed756ba2fcfb811bdbbb94beceeae3b8bceaa56f65Tiny '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-helpnoarcha9291b81d8a1a027f4600f159652998600f32dc4a824cbbdf77727f67cccfb83Development 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-toolkitsrc9fa3d9c43e1afa66e51d8beb0e21853c30284d99bd4a079c40b079714c625ca1Library 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-helpnoarch3a355e7890b970854c42e616ced74d2ac9f7e449314e6f33361df73d53156144Development 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-evalsrc48612171281281976e437c026db0d84557aeb0460461ca79017abf8e48172cd6Safely 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-evalsrcb251f900672a7e5c931c23023cca613cd40fd0794f7a548bac2b28ca09d805b4Safely 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-evalsrc641fd91ae9adff3cb17e7a2c812b8ebff6461155612270563654b884471d1c95Safely 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-evalsrc950b93795871b7ae3e274bbfb7f0c390f4fa9468aa84c73e09925d2e6a92c371Safely 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-evalsrcea2e918976d841447029b010a5ffd3f3cc5a47735792d8efeff97977a68efd44Safely 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-helpnoarcha95cc437dd2067630881ae3ba0f9b73aee21f31223afc07e5da22ce4f081c8b5Development 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-helpnoarchcee1fac4599f5c063f97221d08694bf6a105ee1241a44a8f0228782c4106412dDevelopment 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-helpnoarch691d7edec8692a73c2bc4cbe0f5f5e0f1cfeeec469e5e1f2ea3ffe69d31d2a25Development 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-py3dnssrce126846d2d5bdc9ddac13fcf001cee209c4906c9e506692f0268f37abd1916c3Python 3 DNS libraryPython 3 DNS library:https://launchpad.net/py3dnsPython LicenseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-39dcb513-3e0a-42c8-95b6-1311483b6036python-py3dns-helpnoarch2e22fbf836d1e9a9c5de41849a523082697e807a466446af26480e94fdd9f7c4Development 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-pyLibravatarsrc2b6643843212db5f0643377b9b2f227931779950e722b8190b719c581545d5e3Python 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-pyLibravatarsrc532d35168c1ea57ec1a72374e113e93d747d64acb8c51200e633047e49463f80Python 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-pyLibravatarsrc0c438e810e7117cbb936b8c0d7c9d285ddd26d1f2cb37ef02b7ff4764edf8afcPython 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-pygalsrc28edc05d98bb0e0b2ee43a5b38381995930b7049d6e90dc6e1cbfb0f03576761A 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-pygalsrc460a69d4e4da20292b1bb22f0a191d407b3ada9c7119eba8336fd4671ef326b8A 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-pygalsrc632c0cb3a377b3fa53aad2d114fe2ac95976ccf8dd04b248db2a93498e6a33b3A 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-helpnoarch3394417f41d5d61c315e6815ac1cc14dc4c9e8b2e94d596866b4248a947e024eDevelopment 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-helpnoarchc329429d64141b1c9937e4ba2a7b9e3d867c69efb2cb94322826fcf4c99fb1a7Development 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-helpnoarch7498f74ec19d2ada1de744948c8f2455f8e1cc9bda1c9be01828258eabea5eeeDevelopment 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-pygit2srcf59c5a31c9f8b61e48466baf0e010f792fe8fce42cd4d8acc3764ef33cea34faPython 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-pygit2src1a2566f539fd122041b831aa384b68309b39017441dd91d3b004c42580bb6b97Python 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-pygit2srcaf93d041d8449c2880890da4bc10bed796d5785ab0c81f74927c671db887f062Python 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_64b99a12f3603e4ef766241e7868d379aa6fc45db3bc37d4d4935eb8c2c86e64a4Debug 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_6401044049f747d62660aae990635c436edace3f6b91b62e30bf0a4079a7b9f98fDebug 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_64af16ef9731436e4ab3fcc73945018413bcd9f78fb4bd8c1b66363eb93f61a60cDebug 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_640671473297df1d418c3c824f4376d96cea97673962ba9c20edd49996790f8405Debug 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_6475981c95960407f1fb2ee213963fdd60a1c71bd1fe30ff099bdd68142a66275bDevelopment 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_64a216aef1dea0db120f66c56f2bec28d493469a6fa28bf1b9a587114f8257af91Development 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-xdistsrc2737e9a2c3626d409890441364c4cc437fda83237e7e2c3e7ddcd4217033d5f1pytest 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-helpnoarch5b6b3065e4fb8ee3c06711284eb7678e0ad89ed6e31e0506ae5f2a2e28e66fc9Development 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-responsessrc10df84a740f74840293253ea62a25eb571bf003752440bc939aeb84f5d061211A 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-helpnoarchf5bc54dbc7e3f7c6bf92f1cf59b4cb50cfc12b670afe6d83c83bf102ad56c9ebA 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-retasksrc4ca4658ab92c6fc5a0b853f79b9cab99512fe65b4e7815abb7a4b1ea9c15b260Python 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-retasksrc757329ec2105a113753f04982f16c19c436ab6aded36e5fe01d8a3628066160aPython 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-retasksrcc64c139d0ddc2eaa1185440a5832bd464939d815de173621b1c6b419b5206e33Task 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-richsrc8778c85267aa30e80314b827acae7b2e6c39fd8268464d7cc573059b8c51d804Render 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-helpnoarch572b2bd1319932a8f967261db1fdff288fb51dd2cc7e6be14451021d233ea404Development 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-rpmautospecsrc159de245a219b52a617b07f8ff7e16ca139c4734ab51bede929d2e3cde70d804Package 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-rpmautospecsrc6afdd2c5d253e2691751ac2efad4be2df675111138751ba2a961c2d25c7e386dPackage 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-rpmautospecsrc0653b789baebb2b5386d606378058d89eb7e2090866717f643184970c21f8f1dPackage 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-rpmautospecsrcbf60b4678f6fac502246e0b93437578114b0333a960db6479e37101afcc523f9Package 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-datasrc3fe2827fca94b382132a81fdcdf13bbbd0ebc448730a797a6ddaf7b7720501e6Extract 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-datasrc032e8c3c44612f03a41639ded26ec8aa58eb359fa054f1f05f9665f27db3695cExtract 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-datasrc5644e5a0d470a67f9e602f1bec8e2cb0cf0f7851112380c350fcce378f2a6ffeExtract 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-datasrcce03ed5c329c2e42fe5e75d1db122e2f80a1b8165cdea8c63623113c933132ddExtract 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-datasrcb1f0bcc7503bb970009877797cf35f055277f2114b4079714982091ee73b4de2Extract 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-helpnoarch95725bac41809fa9aafcb1b3c4495c2624046a5366f9345930081946af0572c9Development 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-helpnoarch874401a70c13430537ce5bc57fb4be880014bab59a840d7c2bd260a9489d151fDevelopment 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-helpnoarch4b5b1345bd0a3c4f7de96ca17ef4a4c2bb87acf6fd96df7b0420b8dbc5be8d2dDevelopment 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-dictionarysrc923ce3e76a58187c5d42ad71ab233d922f5e681fd2959d2a4a74a6ee1cb55ab6Dictionary 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-dictionarysrca2ce1d7fcc5e516dd316e8126151ced8c4e6d8adee097b2bc9ca39111e8b3570Dictionary 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-helpnoarchf8b16f22ed11fd61e07249fa37a4dcc2fa895c28c2da54f47d5834e09f949e24Development 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-helpnoarchaccd3275dfffc97a2473d907d9e6f4daff7caf70e02025b94ba93dbafdab72f7Development 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-Authlibnoarch664a6affc06faca425c202f16e07565d516057e7a09249a54153b4f1a22b2af1The 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_645c46a7f38d677f920fe6ed921fc25a4712505f4aa0d38ce89047e4727f3aec04Kerberos5 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-Cachingnoarch64a2f6614b192aa8ba3cdb3c51620c06140ba2a9ca8912e5ecc71f8ce9e0b0fdAdds 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-Cachingnoarch9cc5480ee30dd17a34a4a3a98dac146040d30ca94c96b5ba0358badf3e8aaac2Adds 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-OpenIDnoarchfad5b026cc2b784dd7568099ee9fdbd649907a8bea60580399c3d5dfb0895027OpenID 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-WTFnoarchbd82bf8fc948f57dd8f3298d4e967a3c597a2859027eb4ca4b180ff3c08fe162Form 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-WTFnoarcheb2fb91b675a914a48fe0c948000d0e3749e28547c381d817dd186402c851458Form 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-WTFormsnoarch60fa8317b1c1ce7ea38ffb2de723abc3bd45f9b8bd8c5d0c125e814f4315162dForm 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-WTFormsnoarch30bb29c3230d41d8b51ed406c2cf3ddd8d3719b02ac2684007e4f60f91d29082Form 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-SCSSnoarche01b727798dd14c09296b9d618f6edce3483ef0cd54d1157e738d5bccff5265aBootstrap-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-DataTablesnoarchb0e468b9b3875c2e27a962d9315cd9e90c66d1da75bf7c805903f1443d4b4b52DataTables 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-Patternflynoarch28d48faa2e737d163e61967eccd617af75a92eaf6893e46e07ea9cb7868a425cPatternfly 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-manpagenoarch3838d852a9a64e935150cc0c13c9bf05ebb72dcfea850ac84c7746872e6e02f7Build 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-asttokensnoarch1dfd0a4d30666900398c7475a25148637f921980d97afb599d32be91565428e0Module 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-backoffnoarchd64d3d5e09f868ab13fc46b2885259bb56f5339db570431455ca891d65fe4ffcFunction 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-blessednoarch7aa8f025bbe50351ee0a6bee55d8bdb8bf824c4e6b45b6730e541412198eee50A 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-blessednoarchf07bbb623452a4328c98719f2cbf1eeaf03f009218113f442f96af772be5bf92Easy, 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-cachelibnoarch835ddd7b7619350ae2bdcbb81ddb5d6789bee9c16ce78b4ddec0a77f552dd074A 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-coprnoarch57df57b5b159d975cde0a209db1624748bd68a1c6fcce2ee651324b14e36dd3bPython 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-coprnoarch89058d9ffc36d9c9b3d3aa1900ead9eec6ca9762b7cca542b593c6cd1a515aaaPython 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-coprnoarch2675b46cedb6b11b43ad9cd6425d9bb90a336b5096a1b6316beb18ec68f2181fPython 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-coprnoarch214e843f79aebda1780d849f23f3df3e08ebba7d5cf1f02cec682b869452cebaPython 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-coprnoarch17ae7a27c8e368d68e9534dbf5771d388f6102d242f17ee3bcc8bed6845d1ab3Python 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-commonnoarchc0fb3ec5a0dcfb50105bf5fe5a512595d400ab1771138f5994da71f2e55801ccPython 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-commonnoarchfefb762e008e1b23a69c9737c0f22b09e1ef15b96f6d255b29cba3fb96f6bddcPython 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-commonnoarch5f498050e11d23de6feff8abd6dc2ec99ecf6ec3a8ffb83a5a324a14702c0411Python 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-commonnoarch5c068fef1c5420c1983c62da84228819711d62ba6a10179c1280f5a1c6e809dfPython 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-crudininoarch17845ec3482b4cd16bec45c2f09561656a6fb714e630737800cffd57888e2dbfA 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-debtcollectornoarch4604802897b91d7e0ee0c98c1bedff1c2093b42eadeb4d2047e2512f9c935e93A 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-validatornoarcha7876387553211e01e27991d38632d9cb232ff211815220eb041c4d6b4f80062A 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-validatornoarcha2779fa651739ef685498f5cf9341f4d38216c2b37ff82816a81a694a1946dedA 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-executingnoarch4cd4fedbb3014f9279cf0330e892f49d47b973c6d00d16d9cc7335634a15e287Get 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-executingnoarch6f1bb03cd9525e55b38f87d829e746e21046d02b50e5165a95509756171d3747Get 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-executingnoarch390bfd50eee6aff63968182b2f7d12ee406d40e7ac3d140971dde9d2938d4d2aGet 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-whoosheenoarchf0d0aee4cba342a03af1d96f3042c2f3a0d9a8473d8873b8c1f8a1351f99c319Flask-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-html2textnoarch5a717e74bc2f6b81d85bb0de2c0bc8b0f14241485dcbff2f56111856694757a9Turn 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_64d0819e919772c057a832ea59af51bb6d178e4e1586cef70d5fde302f54bbe3efA 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-ipdbnoarch915a1db2e45f381d7dfe834b7fd60919180f2beba906d836bfe80e66a18c7925IPython-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-ipythonnoarch3cbd68632fff92b1e27e3d0f022ac669b9ea770d2637cf5b5e1c6b7ec9c51e47IPython: 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-ipythonnoarchc801d6681246b2dd849ea9fc0953dc946c638c6c34b2b616e71093b4731dda28IPython: 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-jedinoarchab17cdf5411387e6e0f4f145840042146519b9de6be8c94fd878ae9171fcd147A 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-keystoneauth1noarchd3dbd4e42af2d8c9528d853c792aabe8c85da48f5f9bede17396a66c409f6780Authentication 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-kojinoarch69de4f989ac37f3cd4359b7f604c5df656486c78fdfbab4ea45a48867079b968Build 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-littleutilsnoarch3662c60018791bc5a46ce30a70010b5b391232e3f7bf5804b90abd0d749bf621Small 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-inlinenoarch4b0e3f6d9de6a49e53496b3ccf05c3f405587d4269a6a5a907aee72b7b7967e2Inline 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-inlinenoarch9bc4c5d7b3155cbe6b7605f640bd1d2d93a91e787ea065ccd7e79c3076459740Inline 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-novaclientnoarcha713903e008e732970978de3ad1d76313e8289f26fe9968a2c21fee6342032d2Client 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-openidnoarch393e67d2b3baa79ce9edea136f560d594c0ac75dc0ba208a8d87e11895561b4aOpenID 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-openidsrc9ee542012349c2a55937c64df997d33c417f8e7ad1f334c4f1def324d45a2cfeOpenID 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-helpnoarchbdc5818621fdf226027fc566d6b2a14301fff517739b410360a937fbe3117d93Development 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-teamsnoarchf1b7cfdeba072e2b9738735bc8f23f0af4231ff0fd88e53fc7dfec9924b5ef67This 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-teamsnoarchdf483ef94154a354c2797cacfacf64abe4dd29f642d37763a2942adf5d766856This 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-teamsnoarch1cee9bc77659cbd83a28e6326ea1c696896004be38b88e14cffe5fcfb720e270This 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-teamsnoarche7fe18c2d5191c9876f292d3028175216e456a90d6a26cbf2e1cb9abbd9505fdThis 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-clientnoarch8c357c25e654d746ec89aec4d5b88487b89f4e20a228fbc9833fa7b1992d5eb1Python 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-typesnoarchb06bb5000602d226d85e30eaf91d56c0107ab4a9ef1c5e80fe4519b2fd9cb21cPython 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-concurrencynoarch24ca6643ba910de6e1664140c4125175e78407b718591cd83d7d03c2976254eeOslo 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-concurrencynoarchf2fb806fb25bb806f0cdf326e0e03e56d7888bad3e4188e21947b0ebdc91ea51Oslo 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-confignoarch10874a72fde05a01f4f9f2bc2d4beb3b82b6c268c51351d59f4a79400eeeadb2Oslo 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-confignoarch7d2c325dc78d3a092b87cf465421e1e81ac10579d1f6b0095708489545b9b39cOslo 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-confignoarch265b21d0a46d93f33fd332ca059f43f845af71f001d9d54d9f00daa8d0ab68f7Oslo 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-i18nnoarchff70fc44e8f67b099795adb2c72dd82de2c5c0ab306ef0fd1b488487c26fefd8Oslo 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-i18nnoarchd73326e5f4b2ea4db272b9ff84ee622ca9e2f34c5aea712cf714f14586d9178cOslo 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-serializationnoarch67876853eac60818e5280a65a8288e6c1fd3626708cbeb9c6bfb6c7693d10ea4Oslo 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-serializationnoarch4aa5bc766f0ee3ae8182bb4ee1c94eff84d28ba5b36260f8512d3e6786274a95Oslo 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-utilsnoarchc6d5e144bb260f0e82af3d51e89abddab6e2cedaefa3725933e9c39752f8fd6eOslo 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-utilsnoarchff9334184ac5bca22750e61f97406261241f6477d0595889575afec93fb4b590Oslo 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-parsonoarch6e98fb73e86c9e8952351b77a3c0dbc767251af748fb96f92b8bd6fcda9d6d16A 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-parsonoarchbe24e19d4da461d77e49909b634061f49b5ac451039c24d70f8181e19b2822f9A 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-picklesharenoarch0366af865921ba0365d93a212e0897565a42bf1217c20fb33cd69639aa8b60ffTiny '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-toolkitnoarch6d09c9da33e0e08b4d98df4bc62a8d71c65c60933f6fc246dbd089c3992fb75dLibrary 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-evalnoarch93b03f236504fbbe643231afbf40497702bfe7885a73201bd07fca4b0f6875d1Safely 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-evalnoarch942669131f535cc97da39fdbf490317be6ce98abf160791963e1c29f89434554Safely 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-evalnoarch5c85e9c45485e03ab9c50c9c7bddbbd76d850799fd23ca90ea2ad1901b78ed9fSafely 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-py3dnsnoarch2d2fbbf8c30cc610fcee0a92fe2d1fc7e38661c17bb9cd1ad64a58d519c793c4Python 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-pyLibravatarnoarch49ec12ab4f40e88e0abf34519cdc03235238534603af4c5fe75694087e37533bPython 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-pyLibravatarnoarch82e8359dd9a66992d548dba6eb790c017ce28edc20e18aec400c571637fda1ddPython 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-pyLibravatarnoarch2fad074b13a6cdd0daa5dd2866487fe80509a5f16b8f9e08c5f4846f050574a9Python 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-pygalnoarch91803f97830b69a7891fe8e3796f779736acd31676b9f307c037e08fcf98b02cA 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-pygalnoarch1e9f7184412e83442fa885cd093959353c203235b3111f5b1f9f031020040f83A 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-pygalnoarch010303d4b80d6e31dd442d1775d2fb7f8b38b610160414375bbac4c41d73b407A 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_64d86e95309103724786581c3bd42403720c2ab9af16995582a20b640c50ddf989Python 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_64c114c8ec84432b95e24354130cae34c8d4c8581a0bd8bb7b5d723e57f166209aPython 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-xdistnoarch73160a30a76a1af4ad0ae94fb7fe20637f622432bd6f0ec2d0f598ba06890be3pytest 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-teamsnoarch883391f9e013ad915af23e8fbb45cb91a95de1c4417c2205f19144c2b90dd24dThis 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-resallocnoarch4b2572f294a5d4f5f9ab6b4840b3d1bd2ddbab2abdbee0e613d5ecd121e79e82Resource 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-resallocnoarchaeac13687ad33dcb0945f907d249a088f86333af4c4586400ddf7e620d51be7fResource 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-responsesnoarch1cc48321dbf636d2d9c88bc2d5c44751031ace4ceaea9619d6e1b7e1dc5ebe13A 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-retasknoarch39be51268805bcc0bb0823a3fdb6e47f65cae9c31a2329892c313a577d3edd78Python 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-retasknoarchbc2b11d882bfcb96f7001bff8313e8c3c85d17dfa56a48eef9d80a02093f5381Python 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-richnoarch1db3d3645c50f0e112548e8c393bb7505d7ecd3370b22fbd205794e9ecff7081Render 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-rpkgnoarche1738fc306817b94a671d4af4c7719d30c3fc17cd185402564f8a9e985bac07dPython 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-rpkgnoarch5854e8c1914c3aac78bb97e46a1dca871cc9eff3cf1273f763ff8c1a9e7f7c78Python 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-rpkgnoarch11e794d3c71653e64f1b6b3b13e3279f3bb91e3d51da4c255f145911d1f0dc51Python 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-rpkgnoarch2d7e4b08d8dfe15fa37e89fe76dff4a089516adbaa855eeae58cf84675d83960Python 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-rpkgnoarch4c02b3882702919af67d340ee83bb933edf65093d3c3818bd0484d57ee467cc0Python 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-rpkgnoarchc239ab3a04fbd626d0e6b52ec6b816e4a83bb74c025e002f129fd1ddf9e3fa48Python 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-rpmautospecnoarche9c7b3ac981530cf355d299b2db3893d3bc8e80118733fa6c888781d795e155fPackage 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-rpmautospecnoarch29c09e7daf6a38c961581ecbc4028b6c7ff5a621b2171a72fa757fda3279dc46Package 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-datanoarchcd68ec968f63d4d67f3bcc8f3b9aaa78f64fed0b04549d5bcf63d598911bb0edExtract 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-datanoarch497efc993037bdfd906c82f85a3b111fe16defa0b435e0ff386f3ce1e023cf2aExtract 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-datanoarch42d7a93dc977a3235c0848f75073d231b6b4f07e7b02e29afd3d87911332c3dbExtract 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-dictionarynoarcha473d58130655d9e510babebc7ddc292bdee1ffa336c5560402ded0d96d5075bDictionary 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-dictionarynoarchf31d26265a0f09998bbe3ec1697934ea5310a2d97c3cb7600145167a90ff1160Dictionary 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.rpmresallocnoarch497a16bdbdede4c760f6535f3cef2e43852ea1deb2ecf42786d31cc50e885783Resource 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/resallocresallocnoarchac9ad52d990927c1c9ff26ba79d1e8ff2e4713658ba3f4e1ef4f9273dcea9408Resource 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/resallocresallocsrcdb0e1b9d3ea17c3ca9b2439bd9ae28659c5f38d72d021f3e76bf2295aff638e0Resource 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-82025ed6adf0resallocsrcf8b92a9146d78005ba41c9db83d224f318f9421e9d57052e84ea049ad2f6c2d5Resource 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-e7e8585f96e8resallocsrc26ee58e812e2de2cceb89dd529b22966b6da6e936c1d7b39a9812b9c1e63de70Resource 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-f7829c02b498resallocsrc555ad47e5a0af7545232b6eb52056097e9fba0cee07eae67aefb8d3d07e4900cResource 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-selinuxnoarch28c4a007c8155faae48b476606aac298da7bf252099479a38727340022834f20SELinux 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-selinuxnoarch1e2ea0a688c5d76cfa2e684745df023ce9ee29d736347eeb6c04aaf2cd044b31SELinux 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-servernoarcha2a9774f8cdd3cd329a82417e66cfa2df202f93227f0d74de31e47cf0d8c8260Resource 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-servernoarche113003540fee27a9b07e0c039b9bcac94c3d56a29991a0df4d7a2ea739599d5Resource 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-webuinoarch0c72437caaa0c5c01b001912a158548499265d60e577d2f05095609a38f0f098Resource 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-webuinoarch372a3f2737386749bc26fe052f95ddb31dc2f6dfa04e8979547b5c753e73d30fResource 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.rpmrpkgsrc8debceafd5953c27fe5d5e9ef62457457d91719f99a92a12d970aee1af875b57Python 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-5c65443c7283rpkgsrc2380fd5a49419e59ae9d1f11759bfef8ec1630a35ea70add3fabe0aab2fb390ePython 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-8b049dae9993rpkgsrcaed1715b2c499bba188d9c7694e3ac8eb77ab3be8cc2591b18054628419bf55dPython 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-c806fb361e20rpkgsrc533660b46c91228cdc15d00b29f524b35bd765a23f23feb46d58ca6d25efb59cPython 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-697bf4169b2crpkgsrc3fcb5f8fb43b9b2b208ae1a5cd8fe2de51ae77667ddb0c5b3676d0219e4973adPython 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-598ea1e5755drpkgsrc3ae875320414419c745dc1c4299562b8d1b2383ed9788c2c13a798120c2990c8Python 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-824336c31b15rpkgsrc6f7500be12cf6c785106d6bdf0d47bf83b19a5143534685c3dcf0da7ebbdc572Python 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-81b60b0746b6rpkgnoarch303658146e8b918d890ea6bbb7d1104011638303083ce6aa6eb3cc3d1fea77e2RPM 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/rpkgrpkgnoarch7fceb10295e78fd6ed43daa7ac11fec949452e30035856e1ef40435e9f77e2d3RPM 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/rpkgrpkgnoarchdb681e49584b34a1b9e5ef1ffeef53aee31cacdd3a0f64c68df9d84dd6271c3eRPM 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/rpkgrpkgnoarch781de16a11ecd9c5e16902bc35c7402ee17b4e55326855b111f039dbd07dd1e1RPM 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/rpkgrpkgnoarch909196a691e39f6d8e53e05d683f0548f3da32b4d87739e6634889acbf7d55acRPM 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/rpkgrpkgnoarchdbbaa99040d5ed247922d446f2331dd4a9639666323d9a84d3375a4b4ecf6250RPM 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-commonnoarchbfb5ba136dc22733e2732c0a8c02fddf5e45017f7f1d71b88ddb0bd8f3c68ef6Common 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-commonnoarch7bb0961cd1c301b34a1dc01ea6bff9a066514d32d0bbbaf508cad45264591f5dCommon 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-commonnoarch01462c72f93771cf5e3f3ed0ca93a9f99070ae44a29bc34e3a719deeeab9beedCommon 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-commonnoarchaff22a4d33525416301f5cbe2c77b37e76f65c3fdbc19c889165edc8d628932cCommon 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-commonnoarch969391bd06f941b3605096a6364a5cb3f14ee093aa41d9f3ad4c9eb5362bafc8Common 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-commonnoarch7e52196fe25754100f3dce8fb5b2373c49b015ad3486838229dfacf4995aab3fCommon 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-macrosnoarch5592a21f536b9150142ef82fefe0865dcb17872d6e4e4e73490d02ac785a1113Set 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-macrossrc1c6a691bc16ff2c440cca8d7b7fce982e1f996c97c2444d7bce07669721b1894Set 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-utilsrc64ede585fa7ce5ac4adf0c3ccc1bdfdef84aa001fd2e79d376799cebc1d4c7cdRPM 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-utilsrcb157a43833cdfd4f813da905c840445daffe96e02955f0e56f2a710a520e811aRPM 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-utilsrc3c8c662139ea4fcbcb5286f698e1fc203c8c889c6f057f7549841371b7782191RPM 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-utilsrc21cbdfc91eedab3d505fd4c1b93ff1c821604fab10056c5fc27bde1e8938660aRPM 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-utilsrc963e1289979e51f79e32587b8a5b1dda89b6c2719f2995c0e67cfb2511c8498fRPM 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-utilsrc5c4c61aa2816049500ee9fcae435ef23e1fa4aade281a77a5ceea05b43df2334RPM 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-utilsrc941e8e70fd2827c7e9673c9ab61c97b6055d5c3ba31e949a6589ace2c039bd03RPM 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-sortsrcd61035bfcc494bc2039f3cf33b06da1770abcece9b4511ba6adc67feffceab70Sorts 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-sortsrc4639997d62a14d97e75afd4dd889749e3efec72ffa337e290e8dcdb8e1ae4d86Sorts 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_641b7fcb9333466134f9e4cc39f9495d9176e19a8f29c77b9b947599b69959eb9aSorts 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_641ff1f53675954e12b65e984564a2ee9455ba68d02f4eeb4913bd35532616ee5bSorts 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_649ff996d2426a170018df64136c08e4319ac97dd9bec8eeff7c4742944c7b3da5Debug 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_6499859d6cac5cc3efdf00d45cf8c5800af7afd5127e596d601723aef0d0d74198Debug 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_64da4e0b707b693147ebeb99b53ee54f0b76b5f72cd8fb21751c645707a31008c2Debug 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_648aaec5ba2e657981cd9ae4d069c154f4e9327e09a9d8800ccfe44044211b1607Debug 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.rpmrpmautospecnoarchbf69c620f76f469cdaaba1d35717c1dfba569f0f667a6d0eb50ae16620016a7bCLI 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/rpmautospecrpmautospecnoarch0d8bd853e8ad33a0c66a597a402031caf91ff4aaeb649e6363a33bfbb96e33fcCLI 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-macrosnoarch65c4fcd558bd94b9baa354fd0de4dc57bd336911a012ce73e04de2218d1e55ecRpmautospec 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-macrosnoarch61016a5f76483fc69d42755d76a21b1f45caf9d23a3c1fb585537aaee1b78128Rpmautospec 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.rpmtinisrc94655e32d77d924ae108c309e93c1771f112584f06f74c88183df842d7a630d3A 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-b19f18bfa645tinisrc05fa6fce9d7a2c859d03a70db5b221415e49c3d0726b602a237532c6d1085642A 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-b6fc1ac9e6f9tinisrcb3b4999e08051ebe58df175b1d35caf3a6cfe795336fb6166e2f72229082b77fA 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_6471472ce90159eb11a3dda9388c8a5874cc6e8c9735af0691c9cbe735495ef3f2A 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_640c7d8dc09930d8e90b66447152fef682d87eb938c0674096930f543a5696f0d5A 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_648f47eccc8f59640e80dc07877432311a4f01b74b32797d5954f20ace62f0c643Debug 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_6457b1a2d5fe793ac2d96d5fc75a51c90803aceb8f8b506489de861b1cdf8ab11eDebug 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_64a67491ca8d1a7106386d9a33b246e9397cea3e64a27862d269258942f1ba651fDebug 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_649dc567b4a57c54d14c064fbcaaeea15a1dd19fd57cc541e96ef2a25f13b0d6dcDebug 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_641c30b7d5f9ea6e4a07e3327e176b3019948390ee427410aa52180ff057c32a08Standalone 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_6459348e903b9b5ca632e414d92d0c169c81d5b9aed14a0a55452ad937fb106c37Standalone 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-statictitonoarchb718d12d7cba70c66d4f76f91b011a8ae02a17d0551a3375c6c8e829329b7a27A 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/titotitosrca706b55daf78b5dd2179fe49ea022c4c29f7ba595b173576dfc7d0607c6f9c47A 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