copr-backendsrc8d52848f824ae38601f560be67d5650a55ae8a6140a403e770dd7ee63a8c0f99Backend 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-14a38bde-e2e6-4ce4-93d8-22f202a29a23copr-backendsrc9bea749242b9cd0216f988c70ac8189d5ca2a81021628feae0d67c0fe0b52165Backend 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-36f90f34-4857-4e8e-bc74-179b015e7ad6copr-backendsrce34170e5db1bb9e0274e7f696bf4e52077c121e31eb7c37357826ac5f7aaa055Backend 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-4b66672e-3b9b-43e0-9fe9-092bfbe69d0bcopr-backendsrc76ccf6e003714d6cb2b39585b3c04d9f41edacabc234f7a267f7116118d29735Backend 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-fae00223-867d-431f-a77f-edffd193a319copr-builderaarch646d2aeee73ef8b4e389d2d5ecc69fe5a38535b64a7ea2eed3d644f20344fd12a7copr-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-216ca98e-ff7e-47c5-9c23-6702efb83801copr-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-clisrc606127b593519f087b8618c830d81d77a1fbf2f74dd3b0bc1fd8f675ccc434f3Command 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-40987dbe-e1b7-478c-bb67-6565b5bc8675copr-clinoarchc471828466c0d0120dcd3ed11147d1eab619dcc8a3822a493e6d32c2356c19abCommand 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-c0933a53-4e65-4f33-a92e-65b8f7cff4e7copr-cli-1.109-1.git.7652.b8277be.src.rpm/usr/bin/copr/usr/bin/copr-cli/usr/bin/package-build-ordercopr-clisrc6d25e56e23f4535021a3e5627bf863368230e70b1b0dd79eda3e47764a0b5b87Command 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-36949ae8-654d-4c9d-92fa-c8f1ddfa815acopr-clisrcb1cc6f2e7dafd4e71d646c7fd2621af14ec22ceaf95c3e3f5644b4203812544aCommand 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-c0933a53-4e65-4f33-a92e-65b8f7cff4e7copr-clisrc47e4f48512c2049d9d639760b179509101c8c51b115cfb439d3d6161c4eac013Command 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-b80f7508-9880-4d07-aef1-8cee5c2d9abecopr-dist-gitsrc9832c4434c487e68aca6c59a976e2d750d4837ee42b2cf8a21e7631756edc328Copr 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-33e2aa57-576e-424f-81f1-1069efb9c7b3copr-dist-gitsrc08c6c0057dbe2da879f7d72b9382c98ed26a9cf926156eed1c618b8ecbff3c86Copr 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-ebc5b693-f68a-4e00-b5c4-cf2743efb74ccopr-dist-gitsrcc967644035038b21b74e13d0e7e51d9849e62ba1d530fa5a95fb2aca4442e7f0Copr 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-c971423a-043b-42f9-9344-e62cefa162facopr-distgit-clientaarch6446cbd0e17fb14fd3c61bcfa9a9aca132c5cd6a651d38d0ba55d85fa335037becUtility 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-216ca98e-ff7e-47c5-9c23-6702efb83801copr-rpmbuild-0.68-1.src.rpm/etc/copr-distgit-client/etc/copr-distgit-client/default.ini/usr/bin/copr-distgit-clientcopr-frontendsrc99484d78f48d247e33828cb734a697498f2e369179d95156d87c8f8de9f02ca1Frontend 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-4b6cfbe8-09ef-49f0-b5cd-7c1ead557a0ecopr-frontendsrcab81b4076bc72c79be7e1f6e8bd2bb31dfc6a4a688cea4d06b06562055f21aafFrontend 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-6a4a0bac-a4b0-405c-8d85-e5d6c4b8b62ecopr-frontendsrc00bbe9754dbe00d2b84d55ba8bdc7f82357c252332f88d19244ca129fc8fd796Frontend 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-9cd7b98e-b57e-4158-9c3b-eb45502207b9copr-frontendsrc5980870835ab8aaac2b69851ef7ceeaac47f14f919cb1d49a3158b89cd962667Frontend 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-67089621-97f0-4206-997e-634c8d605585copr-frontendsrccf7a6a287a92f211a808b543f510b9d0828f5534d0130a0212e85432cd721214Frontend 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-003dddd6-f291-4b56-82e7-4dfde2141bcfcopr-keygennoarch4d0b11e83a87345f47f205f9f0d63eaa65fcbe0ae80386cfb1cc118e2f29daf9Part 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-972fdfb6-7f83-402c-b934-7af572fe11a7copr-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-keygensrc7bf231ae7e6aa0d6e5172f97846dc928021a1ef4ef1c2fb5b2fe034870da72d5Part 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-972fdfb6-7f83-402c-b934-7af572fe11a7copr-rpmbuildaarch64d2b735f7a3a2dc2d3b7e5820608a10f110b6751e5e9127ec0ceb6ff6f74cfe0eRun 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-216ca98e-ff7e-47c5-9c23-6702efb83801copr-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-rpmbuildsrc663426d42585188abd0235edd57073fda30dfd29a9594eaad486dcaac6b1f150Run 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-5cb86915-c399-4ba3-936c-f794280da930copr-rpmbuildsrced417c7c331823e762132525c1bd6534ed76f927c52d5920f0df50d9c371817dRun 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-41b5dd95-c389-4049-86bc-7c229d82b62dcopr-rpmbuildsrc3867bf7d5f276778cea463686a7fb62e6cae96ce0fe8ca4547224cc4b16bd22eRun 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-216ca98e-ff7e-47c5-9c23-6702efb83801dist-gitnoarchfa17d25ade8a938d5dd212751b8bb348f17ada6ceedcabdde87a397c7f93a3c5Package 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-4fba2129-3412-4636-b023-8519f57d26fadist-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-gitsrc091c1878c491e7f1f83499c294845b17867ca69041758901edc4ece1bf34f52aPackage 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-4fba2129-3412-4636-b023-8519f57d26fadist-git-selinuxnoarch5634d329f676c779e495361df3af11fb13371ee9ba635868d343134c106c1ddfSELinux 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-4fba2129-3412-4636-b023-8519f57d26fadist-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-keysnoarch5817a27a79b59c6f21119b3e732a8d02e67fde76d63eb0e7c5284052137fc850GPG 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-aaa2d0f4-48ba-4126-8308-63b7f3eb75e4distribution-gpg-keys-1.87-1.src.rpmdistribution-gpg-keyssrcea7a8d44cdccaebe6a0f54c4380ce448d6c4b0b271e220ccb4ae7a42f586e35aGPG 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-aaa2d0f4-48ba-4126-8308-63b7f3eb75e4distribution-gpg-keys-coprnoarch1b1876035cb286188908e726a4a243d599ef247aac1467815b9dd3c3af62e1b7GPG keys for Copr projectsGPG keys used by Copr projects.https://github.com/xsuchy/distribution-gpg-keysCC0-1.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-aaa2d0f4-48ba-4126-8308-63b7f3eb75e4distribution-gpg-keys-1.87-1.src.rpmjs-jquery-uinoarchbfdb1eb8e8baa969fed8d078b1735fee334ebd9f4aa2be274bb1be7245b7d18ejQuery 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-254e1402-a880-40ac-a476-eba4283dfd95js-jquery-ui-1.13.2-1.src.rpmjs-jquery-uisrcdd1f8dd4e64364e903b1ddf78a42ec314655430e8a68aace3f7e6ad707bbc3a9jQuery 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-254e1402-a880-40ac-a476-eba4283dfd95kojinoarche5dddbf14c23c0e54ecdc3d1862a384cde18950bf3cf202c463804d8daeb3a2cBuild 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-b0759db8-014f-405d-9ae7-8138a81afc74koji-1.32.0-1.src.rpm/etc/koji.conf/etc/koji.conf.d/usr/bin/kojikojinoarch63e7dd0ac5e7b31e81c93e62017b6a238a620a2cdba1e3e10c959676119abf7dBuild 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-71298be8-2047-4b01-9e3c-78e5b5cf5e04koji-1.32.0-1.src.rpm/etc/koji.conf/etc/koji.conf.d/usr/bin/kojikojisrcfbafef48ecdf23dac44ffe243ef46e233ee9edbf5c68f4484a9cf3aa1f50ab61Build 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-b0759db8-014f-405d-9ae7-8138a81afc74kojisrca939f42d2720538ba3ecea3e3690fb781d58ad8c1faaf057a280da462c57de31Build 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-71298be8-2047-4b01-9e3c-78e5b5cf5e04koji-builder-plugin-rpmautospecnoarchdbd207e3da2621af98bebfad28c315976d25b3ff93f07bbbba6630a9cc8ca07fKoji 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-428ca6f9-ec8d-4bf7-94be-6b5f53cfa6ccpython-rpmautospec-0.3.5-1.src.rpmkoji-builder-plugin-rpmautospecnoarch07fddb29d050615c2fc3e8d1a87de49ec2c569b5e609e16a6ab5373e0a4d776aKoji 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-dfc83c2f-644a-4c8b-b46b-85bc010ea54cpython-rpmautospec-0.3.5-1.src.rpmmocknoarchab95cfd90a7b9f7ef08c41d6c1fd55294987295c1b014212041e8731f8191131Builds 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-6cd368f7-68a9-44b9-9b1c-71017f5ecf84mock-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/mockchainmocksrccd7dda031048fbf18a213361ddb15ac9ef58d4b7ee0093bd0164d20f9733ae1bBuilds 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-6cd368f7-68a9-44b9-9b1c-71017f5ecf84mock-core-configsnoarchfdca926a618fc5026fa209ec6a47dd281559393c171ee89cef12497c9e556875Mock 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-56b6e264-769a-4ece-b883-c3fbb47152bamock-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-configssrc1da2eacdee0efd4fc87e5161d990a302aa43e1ae77c11c7983cd1f55f97b2806Mock 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-56b6e264-769a-4ece-b883-c3fbb47152bamock-core-configsnoarch132ebfd3dd01c42121f46a0890e1e6087c5b4496327607650608aae03a4a258bMock 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-a6791dab-88ea-4b57-84d1-e1ccfbc54affmock-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-configssrc8a7e3e90001ce453ccdf7724403b285a081b1520b2e07509b13cd421d50171d9Mock 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-a6791dab-88ea-4b57-84d1-e1ccfbc54affmock-filesystemnoarch71d3fc59cf8a885f42f5b363b94eb80536b30739fce548b792ee6f13d6faeda1Mock filesystem layoutFilesystem layout and group for Mock.https://github.com/rpm-software-management/mock/GPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6cd368f7-68a9-44b9-9b1c-71017f5ecf84mock-3.5-1.src.rpm/etc/mock/etc/mock/eol/etc/mock/eol/templates/etc/mock/templatesmock-lvmnoarchc21368a1c6c102e048cdfac69d1d7bd53c07bfd8bf8bb3f637a09d76e2c6013aLVM 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-6cd368f7-68a9-44b9-9b1c-71017f5ecf84mock-3.5-1.src.rpmmock-scmnoarchffd060237f3eb7b81eee68e9f7c120e6690b03c2c8e0e69874b2277a05c468d7Mock SCM integration moduleMock SCM integration module.https://github.com/rpm-software-management/mock/GPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-6cd368f7-68a9-44b9-9b1c-71017f5ecf84mock-3.5-1.src.rpmmodulemd-toolsnoarche658ef59644f6f74a85a7d09b0580939d2115fa213665113587d8a68c182781aCollection 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-a4ac9dce-62b4-477e-9b05-1865672300e2modulemd-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-toolssrc56261a4e083c7959ab4b4707ef439c6addd101066aae64bc7255b25282a3f0d2Collection 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-a4ac9dce-62b4-477e-9b05-1865672300e2mysql-connector-pythonsrc8ff0e9287ae0a0545a8678b58b2b542b7c58cf87b4c28de450fbfd5b16f57caeMySQL 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-bf090d3f-0039-4e68-86d9-89e4d8e81823mysql-connector-python-debuginfoaarch6458a6b435c8a7ec52c276e2ba6816e039c2c743fa9d1bd1322614a7b60d7315a3Debug 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-bf090d3f-0039-4e68-86d9-89e4d8e81823mysql-connector-python-8.0.32-1.src.rpmmysql-connector-python-debugsourceaarch645fb95cf99639a5880ea55698f257d4125c8ae29f2babe7bfef0995133fe044a1Debug 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-bf090d3f-0039-4e68-86d9-89e4d8e81823mysql-connector-python-8.0.32-1.src.rpmmysql-connector-python-helpaarch6413ffde983251dd58de5e1faffdf928f2a500b7fe714d113de14829ce28548056Development 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-bf090d3f-0039-4e68-86d9-89e4d8e81823mysql-connector-python-8.0.32-1.src.rpmmysql-connector-python3aarch64e327e90889062a345092c172c487671cf0d2a133b9df01cc0c0e542817eaa7aaMySQL 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-bf090d3f-0039-4e68-86d9-89e4d8e81823mysql-connector-python-8.0.32-1.src.rpmobs-signdaarch646b3d25bb53bd5fddbdff15c0f8940f323f9b9759a61a340f80b28d30ab46cff7The 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-7f6efcb2-3bc6-46d8-925e-a3766f957f0bobs-signd-2.6.1-1.src.rpm/etc/sign.conf/usr/bin/sign/usr/sbin/signdobs-signdsrced0232fc79bd115ff22a6be498764668f1ee8ec2f6e08dcb5b8e629823e45d87The 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-7f6efcb2-3bc6-46d8-925e-a3766f957f0bobs-signd-debuginfoaarch64573cf10e0526d43845970b1684c476f1d689f5dfbd1aa13e8a6066923c8ba51bDebug 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-7f6efcb2-3bc6-46d8-925e-a3766f957f0bobs-signd-2.6.1-1.src.rpm/usr/lib/debug/usr/bin/sign-2.6.1-1.aarch64.debugobs-signd-debugsourceaarch64efc6ac242020424425730d5a460e98ff725d2012656dc0be9ccf8f12993dac75Debug 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-7f6efcb2-3bc6-46d8-925e-a3766f957f0bobs-signd-2.6.1-1.src.rpmpreprocnoarch0675d970835fc565977cd57522513247d3edb5eac7edf16e8a7292108e7b5129Simple 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-b5b7447f-fb7f-4b1d-913d-4235927b6e03preproc-0.5-1.src.rpm/usr/bin/preprocpreprocnoarchfab6bca180bb9db18a86e6e34f950bb6cf5c4a6098ca39f0ab20a48779e14695Simple 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-49775126-b696-4879-9ecf-e74cb74574dbpreproc-0.5-1.src.rpm/usr/bin/preprocpreprocsrc4efbd1ef7209c16cb72b6dafdc5937431f07a8d19e58bc2bf4755b14f61dc54eSimple 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-b5b7447f-fb7f-4b1d-913d-4235927b6e03preprocsrc338e2665695cf732ae668533ea8dfbf4cd8d9a0d7eb4fa02ab73d519496ec250Simple 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-49775126-b696-4879-9ecf-e74cb74574dbprocenvaarch64f1116507e4b69136fc9a6cca0b6b1bbe0e80a89dfcc0ee8a2bd79ce58d219dfdUtility 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-97a32997-27d3-42f8-acc0-80e568e9efa4procenv-0.60-1.src.rpm/usr/bin/procenvprocenvaarch64d042eeb5b910d8d96cc2538636a331d191322bb34248bcc092a59a7afde6d089Utility 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-01be057d-c8aa-4b11-b6a2-b7d4f90c0e21procenv-0.60-1.src.rpm/usr/bin/procenvprocenvaarch64db2f3d1568a0c0c09dfe384f1c88b376c85f09d9528a6dd7448cdf70f4bd2f16Utility 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-aarch64-normal-prod-00210475-20240229-1612procenv-0.60-1.src.rpm/usr/bin/procenvprocenvsrc1650c11c1e21b2d22e9d7151388f7ecd0f75c08237d55d5d948031043e480c77Utility 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-97a32997-27d3-42f8-acc0-80e568e9efa4procenvsrc857e7e8069438850c59dfb7b5b74f4352b6d31034f03285ca368f69d4d4b773eUtility 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-01be057d-c8aa-4b11-b6a2-b7d4f90c0e21procenvsrc683e693a2cdc345be67879e5a601068af9ed402da5b47e97137908611a09b17dUtility 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-aarch64-normal-prod-00210475-20240229-1612procenv-debuginfoaarch648267be807092da52ac86d253123482956d5104b8e2aef62c67dbec528532db94Debug 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-97a32997-27d3-42f8-acc0-80e568e9efa4procenv-0.60-1.src.rpm/usr/lib/debug/usr/bin/procenv-0.60-1.aarch64.debugprocenv-debuginfoaarch64fc17788cd29e9fe4cbc9102657af688e9142d67813db37ba161ee006d499e03bDebug 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-01be057d-c8aa-4b11-b6a2-b7d4f90c0e21procenv-0.60-1.src.rpm/usr/lib/debug/usr/bin/procenv-0.60-1.aarch64.debugprocenv-debuginfoaarch64e2a900bf5fe13c666f7419b8d8f194165d32d825cbdb19f8c1b2f892bf7d7c5aDebug 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-aarch64-normal-prod-00210475-20240229-1612procenv-0.60-1.src.rpm/usr/lib/debug/usr/bin/procenv-0.60-1.aarch64.debugprocenv-debugsourceaarch649fcb9319ac04809b333643e9d6205f63d6c12eeb3ca0c0ad6bb428f1a930bfa6Debug 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-97a32997-27d3-42f8-acc0-80e568e9efa4procenv-0.60-1.src.rpmprocenv-debugsourceaarch6459eaa9bf76d7f23f511a1286751c03c72105e2e296146eb8574fc010c4ecf668Debug 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-01be057d-c8aa-4b11-b6a2-b7d4f90c0e21procenv-0.60-1.src.rpmprocenv-debugsourceaarch64bd60fb15435784c1db5aa8bb1529e809c6a31bb0bd7247cdede138bd468cd8adDebug 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-aarch64-normal-prod-00210475-20240229-1612procenv-0.60-1.src.rpmprunereponoarcha102f2bbd75b132f70799bc28f243c7061e74c8fbc8b82251113e71040c17f20Remove 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-e72612de-e5a2-4613-bddc-d6e72515fe48prunerepo-1.21-1.src.rpm/usr/bin/prunerepoprunereposrc06cc9dcd290143607521e6ec705cb40926747915f5728eb59d5dfa7489841564Remove 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-e72612de-e5a2-4613-bddc-d6e72515fe48pyproject-rpm-macrosnoarch26f6472aa4bb5e6932c14251a6f4d9660309552dc090e654ef23367d8c7a2859RPM 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-9c99cd7f-8175-4da0-9c22-bde9e5ee34e0pyproject-rpm-macros-1.4.0-1.src.rpmpyproject-rpm-macrossrc45141103c3cedac4c645a7276d864f5bb42e5a44a396c8f790a63680ed945feeRPM 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-9c99cd7f-8175-4da0-9c22-bde9e5ee34e0python-Authlibsrc5748e1a5474007602a1ed6a9998009f5d4bc85043f541345dfa5cd346ca1ff40The 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-91e45a70-a08c-447d-bb0a-9759ee63d116python-Authlib-helpnoarche62b6d38f6794234bb64bf0499086f8e239991c2d5d198e6d461e6a36cc161e7Development 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-91e45a70-a08c-447d-bb0a-9759ee63d116python-Authlib-1.2.0-1.src.rpmpython-CCColUtilssrc00a62664495f7fe29b31775a25878f9a266ce4fdab3a42044d6dd15a7c79451cKerberos5 Credential Cache Collection UtilitiesKerberos5 Credential Cache Collection Utilities.https://pagure.io/cccolutilsGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c26796db-78c9-49f6-ad99-8ff43218daabpython-CCColUtils-debuginfoaarch6436b2b40652f947207db04381ed3a63fd0ada4eb7414370d51680908c640e14dcDebug 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-c26796db-78c9-49f6-ad99-8ff43218daabpython-CCColUtils-1.5-2.src.rpmpython-CCColUtils-debugsourceaarch64b01c4dae61d164b954fb139cb8ebf85ad14c5e30b6566de72588e8a9e8979e24Debug 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-c26796db-78c9-49f6-ad99-8ff43218daabpython-CCColUtils-1.5-2.src.rpmpython-Flask-Cachingsrcdf7944b0543f918a748966068545c9d6960b89f18ce856ca6899d954576f26f7Adds 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-1c7d95ca-daf7-4e38-98ef-040435625c95python-Flask-Caching-helpnoarchb0b6111998cc80aff0a115c5715d4a6ee4f80c8b10d67d10af0d6c4cc3088caeDevelopment 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-1c7d95ca-daf7-4e38-98ef-040435625c95python-Flask-Caching-2.0.2-1.src.rpmpython-Flask-OpenIDsrc46954b4845c7e94bff6cf7d604213fcc0e6a5c76ed859bf3db4806e448914c12OpenID support for FlaskFlask-OpenID adds openid support to flask applicationshttp://github.com/mitsuhiko/flask-openid/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-df4f39ec-1058-4876-a383-cacabde17c22python-Flask-OpenID-helpnoarcha4390dabc83e2df5b3759bb4ad73af41282f380ef0197d22a018fdee2691a34eDevelopment documents and examples for Flask-OpenIDFlask-OpenID adds openid support to flask applicationshttp://github.com/mitsuhiko/flask-openid/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-df4f39ec-1058-4876-a383-cacabde17c22python-Flask-OpenID-1.3.0-2.src.rpmpython-Flask-WTFsrcc87f3b7b9b908f40fde54048ee8c15e4d32083f2858964c0c7e2126c390c50c7Form 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-1b20f136-f3be-4526-9064-72c413bc0f4epython-Flask-WTF-helpnoarch0515a403c68dc5ed1c835a94778a4fb7924187573c197c3714a1068cc2014c6eDevelopment 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-1b20f136-f3be-4526-9064-72c413bc0f4epython-Flask-WTF-1.1.1-1.src.rpmpython-WTFormssrcc0826e6164669e1ab7b593d652e1f397a85fa2f272ee23910c558db55fa3cb04Form 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-6c1dddea-297c-4a4f-b456-0d826a63403epython-WTFormssrc3e3fa34bce898285e6b9032bc3adf985161724bca1edbb2bb4695b01ea292f13Form 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-88e37143-95d3-4e55-86f1-fd845a8c92capython-XStatic-Bootstrap-SCSSsrccd9a1a7036bdb3a5803560f95c4de1a1a7351a519eb985a7192056cd3a348d57Bootstrap-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-d5bb7c78-a89f-417f-a7f4-833471010d66python-XStatic-Bootstrap-SCSS-helpnoarche2db82d9fa34ed23f3a129adf42e43756ecc8a10630f1f33f2c320d0fb5a0394Development 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-d5bb7c78-a89f-417f-a7f4-833471010d66python-XStatic-Bootstrap-SCSS-3.4.1.0-1.src.rpmpython-XStatic-DataTablessrc7e7dd87d9905d65193da89dd32c75b37d59cd99375b6661482ff0a50c3809fa2DataTables 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-84416b2f-8d4a-46ae-b3e0-054c5fa76974python-XStatic-DataTables-helpnoarch3f44314c8908b30be21a3e017667344606bf632c9cbfd1e018c1329a33829316Development 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-84416b2f-8d4a-46ae-b3e0-054c5fa76974python-XStatic-DataTables-1.10.15.1-1.src.rpmpython-XStatic-Patternflysrc2847b8ae81940bb7f2d154a567e829fe33bc99a1c4ff69efe9dd6e85c456c424Patternfly 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-00ff5dc2-2802-4786-bb81-8b37d4a0f181python-XStatic-Patternfly-helpnoarch05809a1bfb707f39e438df6d2bcf4baa37c2331c1f7fd29e867daf01b9153d6bDevelopment 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-00ff5dc2-2802-4786-bb81-8b37d4a0f181python-XStatic-Patternfly-3.21.0.1-1.src.rpmpython-argparse-manpagesrc6bccdcecec962aea3577288211817b04d98f1933c651a41f90604d77157a4309Build manual page from python's ArgumentParser object.Automatically build manpage from argparsehttps://github.com/praiskup/argparse-manpageApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-7aaf6fae-50da-4af2-94fb-4fd035557ec0python-argparse-manpage-helpnoarch840e811e298c5127d8fd9e771e98584e18050ba96a39dbf869e3f3a2b51a36b0Development documents and examples for argparse-manpageAutomatically build manpage from argparsehttps://github.com/praiskup/argparse-manpageApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-7aaf6fae-50da-4af2-94fb-4fd035557ec0python-argparse-manpage-4.3-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-asttokenssrcef775deea8f2618cf2cb5e1b61ab439b8ae971239188300691e1259ce9a8cb46Module 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-b72d8905-468e-49fd-9573-b52c03465971python-backoffsrc2af74df1c9be1d97e5acf7284cbbdacfc6cea327bfa145bf390605e78cbf4190Function 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-6b823508-cb15-44e3-a821-95c51c3dbc36python-backoff-helpnoarch5e6f0792aeafc8aa13d6bfd590a3038a7a9abc1bc3c7db6a57ea66c70e476437Development 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-6b823508-cb15-44e3-a821-95c51c3dbc36python-backoff-2.2.1-1.src.rpmpython-blessedsrc128514df7b700e4788ec419f129bfb379bc9405ed8e03becf26dd369fc1acc53Easy, 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-27c1c308-0a36-4300-93c4-1b3f22eeef2dpython-blessed-helpnoarch3874c426a5d5f1e44af17d59b907a7617ddb3fff3acca2a2e8cec98eb7ce00ffDevelopment documents and examples for blessedBlessed is an easy, practical library for making python terminal appshttps://github.com/jquast/blessedMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-27c1c308-0a36-4300-93c4-1b3f22eeef2dpython-blessed-1.20.0-1.src.rpmpython-cachelibsrccdab58f529ff5b9212029d661508878f6e7a47895d452df8fb5bc011ae62ba30A 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-7e6e8ef2-6dfc-4eac-b3cf-5a32210e5b52python-cachelib-helpnoarchc9be575eb0591112946fea9f53fe3c97888721f03243a7f9ca471286df7d782dDevelopment documents and examples for cachelibDevelopment documents and examples for cachelibhttps://github.com/pallets-eco/cachelibBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-7e6e8ef2-6dfc-4eac-b3cf-5a32210e5b52python-cachelib-0.9.0-1.src.rpmpython-coprsrc5f6ad8ad561f279869375c2e90df27a6bd7c672af0d8f751335aa1ffaeefa3ebPython 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-0d3725fe-81b9-470a-bc6c-4c3a7bcdb13fpython-coprsrc0e1a3483b30ff3890c4d31b24cb3c30dcf625e3252192872dbc73cc2d196b5b9Python 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-0bb62915-436d-44ff-96f1-7af6aa4601depython-coprsrca4257659916c1ed229843124982b84cc46f65539f05dea8f63ab603db05f944bPython 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-0fd8ff38-bb7b-4e1e-b62f-4e4481d24ebdpython-copr-commonsrc2c975ba23afdf1ac657034da8179b5015050ecf1e17d168e554c70ad6b657875Python 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-71cf6878-2e37-4ad1-bf6f-ee658b833d83python-crudinisrc038065fa4de4e5698f8f96142d55c33e71fc476cb93dd1187c3e700c056bdde6A utility for manipulating ini filescrudini A utility for manipulating ini fileshttp://github.com/pixelb/crudiniGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e672c122-e9a9-4bcf-986f-bfba3a890fc5python-crudini-helpnoarchc3a74465c167d289806fe49e64010ad4128b1813a01730fae71745e2265c17c5A 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-e672c122-e9a9-4bcf-986f-bfba3a890fc5python-crudini-0.9.3-2.src.rpmpython-debtcollectorsrc73969bddc2230b608405d906f723a9bbb1367b2c5f238c050acf7e8566cd852bA 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-5b7046c2-ac2d-467a-a044-2fa7b7b5a202python-debtcollector-helpnoarchd2daacbf6150ec76a9044e4584b2d1a763bf7f22985870f95daa01266f6a909fA 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-5b7046c2-ac2d-467a-a044-2fa7b7b5a202python-debtcollector-2.5.0-1.src.rpmpython-email-validatorsrc7436df2bd3482000ff282c7b26f8bc6a7d7acb35172b7330b7af66f5229bda72A 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-b74b4f04-c5f3-4dae-b34d-0356f81c2f4epython-email-validator-helpnoarch04dffc7aa4be4a74763130327f69dba2610f3fd3b4c248c5c40d13c8e2e0e009Development 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-b74b4f04-c5f3-4dae-b34d-0356f81c2f4epython-email-validator-1.3.1-1.src.rpmpython-executingsrc73a2517a9a6da8eb61c366e3ec2357f6d965328f642ef9301ac6ea9f83a15d6bGet 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-f6e29d26-fb88-49aa-8e29-3b37b8f74bcfpython-executingsrc928cfb0693463dea92b4f576857653a67fa46a4eaaac5442fe2bb0c2bd8d22feGet 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-0015cc66-4bb9-47e4-b51f-b2f61a4dbfa6python-executing-helpnoarchf64120f6bedb14f38a3760bcf393da4217db6cab2d6e1b1f27614873dde8f440Development 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-f6e29d26-fb88-49aa-8e29-3b37b8f74bcfpython-executing-1.2.0-1.src.rpmpython-executing-helpnoarch4ef79bc272a87818e57f90301459d05227848627c393caaf4459bebf2379799fDevelopment 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-0015cc66-4bb9-47e4-b51f-b2f61a4dbfa6python-executing-1.2.0-1.src.rpmpython-flask-whoosheesrc96dc9cc6dd0bf56f6ebbdb36e5819af65163ce996f72516f621011e902a41a92Flask-SQLAlchemy - Whoosh IntegrationCustomizable Flask - SQLAlchemy - Whoosh integrationhttps://github.com/bkabrda/flask-whoosheeBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-729531db-ba50-4603-b356-590d5a7fef76python-flask-whooshee-helpnoarchb38754d12aebf49caf57d0c4ef0300cb729935063ffb8f2a5472869a81b9d824Development documents and examples for flask-whoosheeCustomizable Flask - SQLAlchemy - Whoosh integrationhttps://github.com/bkabrda/flask-whoosheeBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-729531db-ba50-4603-b356-590d5a7fef76python-flask-whooshee-0.8.2-1.src.rpmpython-html2textsrcfb1b2cd8b475b8d4f014105355ff49b2cc7814d07a9da580411ec329416f0c52Turn HTML into equivalent Markdown-structured text.Convert HTML to Markdown-formatted text.https://github.com/Alir3z4/html2text/GPL-3.0-onlyopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-bd109f8e-0726-4a80-9197-dfe93bed4383python-html2text-helpnoarchf83d28e4dfba8378f06a9566f2fadc46749c619c6d045a541b69f8148c711d67Development documents and examples for html2textConvert HTML to Markdown-formatted text.https://github.com/Alir3z4/html2text/GPL-3.0-onlyopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-bd109f8e-0726-4a80-9197-dfe93bed4383python-html2text-2020.1.16-2.src.rpmpython-html5-parsersrcc9de6a3ccf16fe9c2e349679df465228df25a8ef82ea7ec29a381904614b0f11A 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-7e61f95b-c523-44a0-8fd1-6cb717d25560python-html5-parsersrc651980b4ab1541ca4960dc8363f81b90a4bd228a6e41b727fa9d9cbb831038dfA 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-5ea2a781-1bc3-469e-936f-6beaef16d88fpython-html5-parser-debuginfoaarch649b3775371745a58600382a0db3fe5333c1a0598432ce488a9c37df6fb284456eDebug 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-7e61f95b-c523-44a0-8fd1-6cb717d25560python-html5-parser-0.4.10-1.src.rpmpython-html5-parser-debuginfoaarch6486147d1bc8940c8bf773f38238a0b0b276dffef7ed0ec49b3463359a719bf71eDebug 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-5ea2a781-1bc3-469e-936f-6beaef16d88fpython-html5-parser-0.4.10-1.src.rpmpython-html5-parser-debugsourceaarch64568beb9af8959253c894d4a1be57480aa02195b227231d6e0460432d678e7ffcDebug 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-7e61f95b-c523-44a0-8fd1-6cb717d25560python-html5-parser-0.4.10-1.src.rpmpython-html5-parser-debugsourceaarch64d2f1c2701cd1b3e45946990b5087794d9ebf398513ecb353a2ea9f146ce5f3efDebug 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-5ea2a781-1bc3-469e-936f-6beaef16d88fpython-html5-parser-0.4.10-1.src.rpmpython-ipdbsrc96f70563d3a6e5821d85010872f567c97d18aeb423d03f449f6ed646f05053d1IPython-enabled pdbhttps://github.com/gotcha/ipdbBSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-aa5e520a-5358-4771-9f12-2b6ca8922d0fpython-ipdb-helpnoarchadca665a6cc56a659f44c3b6da382ce0836c359f41902d0e72c9b9440ddb6444Development documents and examples for ipdbhttps://github.com/gotcha/ipdbBSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-aa5e520a-5358-4771-9f12-2b6ca8922d0fpython-ipdb-0.13.13-1.src.rpmpython-ipythonsrcfe0304dc5a6682c999548fd6286fcfdb00b225326e4f88f99b04f1b95afac4f0IPython: 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-1527a09e-cbb5-4181-b612-f426874cbaddpython-ipythonsrc000a81d0b9f40eadfd937f506edfa0d74566c468c6d6c5a2ad3ded3d1b7794a8IPython: 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-dd918943-89f8-4c9b-ac46-b31c6a6987ddpython-ipython-helpnoarchea463fffb580182f82702bfc1b5524069fbc0b0d4b6380da9d1b3004b249a83cDevelopment 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-1527a09e-cbb5-4181-b612-f426874cbaddpython-ipython-8.14.0-1.src.rpmpython-ipython-helpnoarchfa6136254f481229fa276f7c6beb84b97b64eb141c5154fb76f216b03c28b2f7Development 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-dd918943-89f8-4c9b-ac46-b31c6a6987ddpython-ipython-8.14.0-1.src.rpmpython-jedisrc2b77eb96ce26abd9a70a75d1bb2dc8c33cd6594c81f0378dfe956b0e46175c4aA 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-76592836-696f-4ffc-86a5-771a7477b581python-jedisrc7f5bab2e41b817570b6729008cdf8b770966ce5178d9093e7ab549e2d4e09badA 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-ec01b083-9bf6-4dd5-b083-6507515b24c7python-jedi-helpnoarch5f3b98aeb9b2ecfb044fe9cca329ccc1b388b3bc2ef30405918a3fa41eedf782Development 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-76592836-696f-4ffc-86a5-771a7477b581python-jedi-0.18.1-1.src.rpmpython-jedi-helpnoarchf55627b9866f77fc0d7ef7bb45a87e16c7fba99bd35e069c2300499a150244d7Development 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-ec01b083-9bf6-4dd5-b083-6507515b24c7python-jedi-0.18.1-1.src.rpmpython-keystoneauth1src6b6b69ed54bc4359449caef0523049503acee3817041e03c0cdaf2f90385cd8cAuthentication 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-5305f65b-2f27-49a5-9a8f-88f47a5c3ec7python-littleutilssrcb0e0a42eece9f66aa850e9ffc07f88c0c603e1e3fb9e748cf5d190163fe1b32cSmall collection of Python utilitiesSmall collection of Python utilities.https://pypi.org/pypi/littleutilsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e3fa49c6-fc73-4d3a-b31e-41cbc7efd86epython-matplotlib-inlinesrc9d8306e456fabc7008b18804c87924067f78c48ade2decd4b354554ebde5db3fInline 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-459437aa-ef0d-4cc3-9e03-386b04c0e96fpython-matplotlib-inline-helpnoarch2b018499fc5f1c35e99acbe79116dc72edf3cb2955c15efe020ad2bfedf2bb67Development 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-459437aa-ef0d-4cc3-9e03-386b04c0e96fpython-matplotlib-inline-0.1.6-1.src.rpmpython-novaclientsrcabf576e4137fabbe3058f5b0414c33dcedf8e0cce8b5c38808f82395bdcb7021Client 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-bb112b50-c2ab-4610-88cf-7c0a07c6199apython-openid-teamssrce44841896fe284d3bb7f373a24e7041647c301f695e6580c3f1de7a1ff69c930This is an implementation of the OpenID teams extension for python-openidUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e585f687-ddd8-4ce1-8638-a48c3f2ee6a7python-openid-teamssrc937114f78889f2b583f435b0200a7d59fdd6b824bcd1cbc41bb853a4eb89bccbThis is an implementation of the OpenID teams extension for python-openidUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-2eecc2e2-5b21-4c7e-8acd-38a60f40620bpython-openid-teams-helpnoarch5118ee01384102b5715eee52f69b57b275262efe176be650a9cbeae3d21f939bDevelopment documents and examples for python-openid-teamsUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e585f687-ddd8-4ce1-8638-a48c3f2ee6a7python-openid-teams-1.1-2.src.rpmpython-openid-teams-helpnoarchc2d7adc2f45ac0d27c193c9bd3f1c536c07a96ac9946688b95d453646790cd85Development documents and examples for python-openid-teamsUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-2eecc2e2-5b21-4c7e-8acd-38a60f40620bpython-openid-teams-1.1-2.src.rpmpython-openidc-clientsrc3de2783cc28b7354205621d465642a34ff82c5a4f4ad751eb5e20baffcb7395dPython OpenID Connect client with token caching and managementPython OpenID Connect client with token caching and management.MITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3ac5911b-fa50-44da-b494-4373bb1f31dfpython-os-service-typessrc6f86006828c0a71baecbf9dd46b4c4e4bc11e62b8cb67437a59d731f8392a989Python 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-8d49c018-467e-4ba8-9354-5fec04f0ff1epython-os-service-types-helpnoarch266f35238f4906025c0af9d3a8393f64223d1efcb2bc9caf39610a858421ed02Development documents and examples for os-service-typeshttps://pypi.org/project/os-service-types/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-8d49c018-467e-4ba8-9354-5fec04f0ff1epython-os-service-types-1.7.0-2.src.rpmpython-oslo-concurrencysrced1ce3bd28e215e4f92f5aa7dee4c4a64a360d675aa4fa0d42e50813b6d3833bOslo Concurrency libraryOpenStack library for all concurrency-related codehttps://docs.openstack.org/oslo.concurrency/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-dfe1ff5b-677a-4d3d-a87b-fe7256cd582epython-oslo-concurrencysrc047c8ce1cd8886932d7ad2b1ab31c11d779192ae365f198d0d24ef13218038fdOslo Concurrency libraryOpenStack library for all concurrency-related codehttps://docs.openstack.org/oslo.concurrency/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-d7f8bf58-9537-49b4-9d1e-770fdd59d27bpython-oslo-concurrency-helpnoarch6cd02af5a60aa72acb1451a6037e1cca312fa6e274a7b9f4067b5652e8d27d6cOslo Concurrency libraryOpenStack library for all concurrency-related codehttps://docs.openstack.org/oslo.concurrency/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-dfe1ff5b-677a-4d3d-a87b-fe7256cd582epython-oslo-concurrency-4.5.0-1.src.rpmpython-oslo-configsrc03e4f12b2e77ebc96392bf9fd6050c2d252572dcdb887cdf214fe4b2d963632dOslo 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-2db4d873-1a56-494e-a70c-37e67d781698python-oslo-configsrc5727f9a1283c8be544e6f35ec6ea8230e2761b1ce95b3dd9fe5f50d91179aaceOslo 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-25cabf81-4ae1-4216-b6d5-d50ef3d8ab98python-oslo-config-helpnoarche4473a58813c1b1d89b83f29bad59186ad299e80f66849cceb4013c086cf3610Oslo 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-2db4d873-1a56-494e-a70c-37e67d781698python-oslo-config-9.0.0-1.src.rpmpython-oslo-i18nsrc8dbe6f2cafd0f745baa905af26ff8e6b00e0381b194ffa0eaf4a0a7b31a8f084Oslo i18n libraryInternationalization and translation libraryhttps://docs.openstack.org/oslo.i18n/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-5510d05e-7c67-4fb6-9435-a54134f0d126python-oslo-i18nsrc5a1492f694604ddf2cd5b3f7517d896104b806a3f3fd345e0554bc8a884e53f0Oslo i18n libraryInternationalization and translation libraryhttps://docs.openstack.org/oslo.i18n/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-2fe516a3-6c12-4fe3-9139-2d0c38e8daf6python-oslo-i18n-helpnoarch9036a338032f516d6c0b6085011b5f19894f28a860b0eb6f9226ca7d5b5fdfeaOslo i18n libraryInternationalization and translation libraryhttps://docs.openstack.org/oslo.i18n/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-2fe516a3-6c12-4fe3-9139-2d0c38e8daf6python-oslo-i18n-5.1.0-1.src.rpmpython-oslo-serializationsrcec498a571ef6d011f1fa32a0ddb6453b72f566757578e0330f0990579f76786bOslo 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-18035b3b-2655-4c1d-9441-afc22e8125c3python-oslo-serializationsrc1971e592e6f1d38c64ef7dfd6bf7d01701bcfe621ac468e46fb5b4f7813f289dOslo 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-5e06429d-7d08-4644-9d50-7396f3e33d5bpython-oslo-serialization-helpnoarch87f5c0bc279bdf2169e5545ec9816da21f21e6eb2f40db8376cd51cdfd276565Oslo 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-18035b3b-2655-4c1d-9441-afc22e8125c3python-oslo-serialization-4.3.0-1.src.rpmpython-oslo-utilssrc5f606e02e8c9fe6e8d93ca1f490510cdb507acf4ac869a2938dc6faabe31108dOslo 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-af64814b-975a-4670-8df8-868f6a799680python-oslo-utilssrc0fa3292105fdf2fe39143381a1232e2c63f0bc4d99e7621c7478bb3ec41d4eaeOslo 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-e509f2d3-c940-410a-96d5-8b5155830fa9python-oslo-utils-helpnoarch2a362c71b863aef003e7c6ffc082198673ef6af698217497aad528b5618c7a91Oslo 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-e509f2d3-c940-410a-96d5-8b5155830fa9python-oslo-utils-4.12.3-1.src.rpmpython-parsosrced9bc3098d4a60057bc79f6b18772fcc2e05ee1efe0ed24efc1a5799482241b5A 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-5c1cb259-b4bc-4131-be0e-25decb31f29bpython-parsosrc55c7a6c39c631949bad7acc0a629a0689e047aaf8c542894d171fb4c76062a19A 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-bf84dd2e-ae15-4836-8d2d-88b89828d4d8python-parso-helpnoarch05fc42048d79f30bc66c45e20e8fd6cb392a8e09e6906f7e0576081e5512c5cbDevelopment 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-5c1cb259-b4bc-4131-be0e-25decb31f29bpython-parso-0.8.3-1.src.rpmpython-parso-helpnoarch244d95f19b8372d50861dc8e54bbae8472f477d0e6b02d5d2c0191e4d5a4ef15Development 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-bf84dd2e-ae15-4836-8d2d-88b89828d4d8python-parso-0.8.3-1.src.rpmpython-picklesharesrca05b1725ca9f669df5ff01c9188df4fad27e636773eb4da67ff1b94a1b6174e9Tiny '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-96b8af8f-f6ce-48e5-ae0e-b804fef0ac5epython-pickleshare-helpnoarche269d86cc029010548aa7aa260111099808e8241e9e09f4db983dea4f9e9dc24Development 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-96b8af8f-f6ce-48e5-ae0e-b804fef0ac5epython-pickleshare-0.7.5-1.src.rpmpython-prompt-toolkitsrc0d76b41b605afc10b90ba536028d6eb8c12940d1cb729f542b6757cb37c3e0ebLibrary 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-8bf6de2d-9318-42ef-bb16-43ef5f0f7ac7python-prompt-toolkitsrc55134dd4ff09f564809c01a310f6a109ff8b36d24a59b7b4abf83a42c895de2dLibrary 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-17ae7822-4074-414b-a1e7-b90da5529c77python-prompt-toolkit-helpnoarch17441502244730daa364ed7245ebd6075757395aeaf9f9e3acc4bccf9ed90d19Development 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-8bf6de2d-9318-42ef-bb16-43ef5f0f7ac7python-prompt-toolkit-3.0.38-1.src.rpmpython-prompt-toolkit-helpnoarch397a5e3b80356b3ec80bac9196ec3e7c025ab5adc2e81bf33d23ac89b818329fDevelopment 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-17ae7822-4074-414b-a1e7-b90da5529c77python-prompt-toolkit-3.0.38-1.src.rpmpython-pure-evalsrc1871616c3c04f89698ad16b3259b629c807ec80fb6abdfe942601bc12e1581f4Safely 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-046c5bb1-bdca-4be4-94bc-8ac7a3597bf1python-pure-evalsrc98512d15726e784590caa2a2780fe2a807a3abd2de2ca4fd8644944d2b9c7e44Safely 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-c9175ae9-fb2e-4a4c-abcb-b3e463c98537python-pure-evalsrc34ddb6461665fe73d8b7edfd4528efb5842de71420c0cd827486656fb24ea4e7Safely 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-16729703-fcd0-4701-adef-bb260938ad88python-pure-eval-helpnoarch193920060b75ff3ded06274107f2f7ac27388344b035fb614cd5b33422c10979Development 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-c9175ae9-fb2e-4a4c-abcb-b3e463c98537python-pure-eval-0.2.2-1.src.rpmpython-pure-eval-helpnoarch280ccf1eed562e6949ff09a679d731a1aa7bc30e4679d1fb26a07315b8281d13Development 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-16729703-fcd0-4701-adef-bb260938ad88python-pure-eval-0.2.2-1.src.rpmpython-py3dnssrcbb132b6e745afe72777d33c2e2f77c0e77fe233fe8357f4fa170179049441367Python 3 DNS libraryPython 3 DNS library:https://launchpad.net/py3dnsPython LicenseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-dac3ed65-49f6-4483-b402-71baadaffe12python-py3dnssrcc92c271c455309294ce59836061464a06670b9fe59c5f8b97e422a0cd70e5b75Python 3 DNS libraryPython 3 DNS library:https://launchpad.net/py3dnsPython LicenseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b8e22ee7-753b-46c1-83ad-ede3333c05a7python-py3dns-helpnoarch3d97eba6768df062d75ef5aa255867564eb41ff5398c8efd33ace85ec7f5e21bDevelopment documents and examples for py3dnsPython 3 DNS library:https://launchpad.net/py3dnsPython LicenseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-dac3ed65-49f6-4483-b402-71baadaffe12python-py3dns-3.2.1-1.src.rpmpython-py3dns-helpnoarchb1e5562f6a52c81efd4cc38a17786404c930d967856ca93fde91ff74c8e59b0eDevelopment documents and examples for py3dnsPython 3 DNS library:https://launchpad.net/py3dnsPython LicenseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b8e22ee7-753b-46c1-83ad-ede3333c05a7python-py3dns-3.2.1-1.src.rpmpython-pyLibravatarsrc8249027d187368316cdfd56c7d9af85b2786b03ff110c7d22a2fd6bebfcef43bPython 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-641bda05-cd9c-494f-b772-63bd2bffdbe0python-pyLibravatarsrc1570ca44f0039c0aa313b729b539483889d5e1033cc09532e0c3cda755984f07Python 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-cd397d79-5ec0-4a8b-b8bf-eed5d240c4capython-pyLibravatarsrcffd00b4f5223db8289e4d2011344cb2bda177fb5cf1e3015672c2c64e2f5c2c0Python 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-752fb509-b319-43a6-856c-e058ba8c9264python-pygalsrc2ef18b3c15c155e5d0be94e339bfb4ec12405b8290ddc3297a440803c1b0ed2aA Python svg graph plotting libraryA Python svg graph plotting library.https://www.pygal.org/LGPL-3.0+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-af917cb2-bce4-4111-b45a-10c4e96d5d38python-pygalsrc7405b9622a6d938157b4c6df081265d186050f0a9132af692a6482a0607dff7dA Python svg graph plotting libraryA Python svg graph plotting library.https://www.pygal.org/LGPL-3.0+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b987cee0-9cc7-434b-aeed-d883262bfb03python-pygal-helpnoarchd3bd3e2cf84c1f6488e8d8bd52e6ec34f26d7c1e7461a5b322dcc4ef8923f145Development documents and examples for pygalhttps://www.pygal.org/LGPL-3.0+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-af917cb2-bce4-4111-b45a-10c4e96d5d38python-pygal-3.0.0-1.src.rpmpython-pygal-helpnoarchc8229ce9d369fff0190bc914f17ee7baafd2878cd21d4192e58a4070da5804dcDevelopment documents and examples for pygalhttps://www.pygal.org/LGPL-3.0+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b987cee0-9cc7-434b-aeed-d883262bfb03python-pygal-3.0.0-1.src.rpmpython-pygit2src9701098d3901b6fc4ec78bab3a4e2bf4d3eb8889aac965408ca566331e94e9dbPython 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-ae225cad-09f8-4d1e-9a2a-6567b760028bpython-pygit2src82d3fc5d0e2c8d08bbd979f0fd0f1f115c630fe82b24d934c8cc1007c665a8dbPython 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-37c01140-db47-42cd-8263-7bf442bf71a6python-pygit2-debuginfoaarch6429362d4a76519c6541bf0d10606b045e78378b81885a2b64e56b44c5f089c1fcDebug 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-ae225cad-09f8-4d1e-9a2a-6567b760028bpython-pygit2-1.7.1-1.src.rpmpython-pygit2-debuginfoaarch64528995799b80393b8e9c6935858ed425d67ec511b184dc410e4188440dd2d67dDebug 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-37c01140-db47-42cd-8263-7bf442bf71a6python-pygit2-1.7.1-1.src.rpmpython-pygit2-debugsourceaarch649c012f85191885b5d80386756a6aeb473482ed5c2e60f5dd767321cc894434a5Debug 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-ae225cad-09f8-4d1e-9a2a-6567b760028bpython-pygit2-1.7.1-1.src.rpmpython-pygit2-debugsourceaarch64eac450eba6dfe5c5f481aa9fa11d0e0c7a2a9d76119fd2039ae3cda6e175283dDebug 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-37c01140-db47-42cd-8263-7bf442bf71a6python-pygit2-1.7.1-1.src.rpmpython-pygit2-helpaarch64ff85448e8543b97a3998b0d99c069084a730ff3feaf915f64d9ffefa55e15165Development 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-ae225cad-09f8-4d1e-9a2a-6567b760028bpython-pygit2-1.7.1-1.src.rpmpython-pygit2-helpaarch64e579b82d80e31f6edf76aba1ed862993fcfb6eb3d5e4dcae0f5a04833e2e2342Development 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-37c01140-db47-42cd-8263-7bf442bf71a6python-pygit2-1.7.1-1.src.rpmpython-pytest-xdistsrcd5abc93857ef70789b306d344a556fa501dc390c8f78204ace58360a9e41c8c3pytest 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-77050220-8165-4e9a-b674-b7cc4aea4dd6python-responsessrc12a144f0966d5e8809144ca8bca82663fd9c0059073c97eea8f52680e08d457dA 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-4129a494-d52a-4112-9b6d-4d6288f1e45fpython-responses-helpnoarchfe046036141d91c12fec55f137b98731b24572941e35472a3229eb87da99f659A 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-4129a494-d52a-4112-9b6d-4d6288f1e45fpython-responses-0.18.0-1.src.rpmpython-retasksrc824295850077e5a8ecea35f332e7d957aab10a11e72057c4cf36e06a4e642829Python 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-7195bafb-a172-489f-961b-1aae4d364df0python-richsrc2c9be023927c94f8493cc80aacec56c09849cc7d5b5b4e3ef21117583e6f62c3Render 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-58bbc0ac-d251-4212-9e5f-821b5dde68a9python-rich-helpnoarch37ab4846c823311ecff781366eca2cee231ab9128c084435040e0bf670ada527Development 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-58bbc0ac-d251-4212-9e5f-821b5dde68a9python-rich-12.6.0-1.src.rpmpython-rpmautospecsrc4b93b0eb0985069a0f9dad5895bb2914b0f6b0e11c04e4dbec96b1da95f7e504Package 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-428ca6f9-ec8d-4bf7-94be-6b5f53cfa6ccpython-rpmautospecsrc317bee1dc033f672ad3244445749e44cb82a77e7ea20f06a014de15c2e9304adPackage 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-dfc83c2f-644a-4c8b-b46b-85bc010ea54cpython-stack-datasrc8ea796bc6079f977de126034c5fb1de0b9718f491f54664baf8ffeefd7cb6c76Extract 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-b63bdc27-6ec7-45b5-8d6c-72262421d590python-stack-datasrc62b9eed1155c7d3447c02bd66eb681aacb5b27b29e4008924a886bea34dd8a2dExtract 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-05fa6231-fc98-4755-a119-1d11b5aba1f7python-stack-datasrc7da05e30b97a81985b6e4a86029c1c7c93a5fbfd844e753b53989e9d17544151Extract 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-067a7582-dc56-45b9-a5f7-c84a70425710python-stack-data-helpnoarch4367aa5e6de7d815be70dc83d5514d500717afd5b43504a1bed2f99cc5c66639Development 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-05fa6231-fc98-4755-a119-1d11b5aba1f7python-stack-data-0.6.2-1.src.rpmpython-stack-data-helpnoarch931239bf20454c7a6161010ba20a25a1983d597826401b86575f8060334dff6eDevelopment 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-067a7582-dc56-45b9-a5f7-c84a70425710python-stack-data-0.6.2-1.src.rpmpython-templated-dictionarysrcc2e43a86fda8649fb16ab1677aa6b748b4fcbe116b870b9f943810adff289d5aDictionary with Jinja2 expansionDictionary where __getitem__() is run through Jinja2 template.https://github.com/xsuchy/templated-dictionaryGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-398ecbb3-cb11-4b0a-ba7f-67a77713de5cpython-templated-dictionary-helpnoarch91725115c27ede5082a44ba0127c7d6c630f8f1d5589a7b134c2bcbfba95c371Development 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-398ecbb3-cb11-4b0a-ba7f-67a77713de5cpython-templated-dictionary-1.2-1.src.rpmpython3-Authlibnoarchc4a76eec593427911b8897635091322375cc05bea415101fea8b46fe174e0ea4The 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-91e45a70-a08c-447d-bb0a-9759ee63d116python-Authlib-1.2.0-1.src.rpmpython3-CCColUtilsaarch648f3842e5271e3b16ca0ec2ad9599f5a2d23d00ceeafad20f4f08d79125b4b42dKerberos5 Credential Cache Collection UtilitiesKerberos5 Credential Cache Collection Utilities.https://pagure.io/cccolutilsGPLv2+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-c26796db-78c9-49f6-ad99-8ff43218daabpython-CCColUtils-1.5-2.src.rpmpython3-Flask-Cachingnoarch5187220d003090123e19c4c05914e24f6e9c3122d2ec421f03732d326cb32504Adds 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-1c7d95ca-daf7-4e38-98ef-040435625c95python-Flask-Caching-2.0.2-1.src.rpmpython3-Flask-OpenIDnoarch3908bb583683381862db7211383252761739ee6e13c237f8f334c1d26d50a183OpenID support for FlaskFlask-OpenID adds openid support to flask applicationshttp://github.com/mitsuhiko/flask-openid/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-df4f39ec-1058-4876-a383-cacabde17c22python-Flask-OpenID-1.3.0-2.src.rpmpython3-Flask-WTFnoarchd75b4e2290a41443576847971e31901ccb955d268950e5da5ba41d54166b8c39Form 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-1b20f136-f3be-4526-9064-72c413bc0f4epython-Flask-WTF-1.1.1-1.src.rpmpython3-XStatic-Bootstrap-SCSSnoarch68540619b2e06c5bd5bbfbc226a077bf4b7ea3b6d3bb5cc77e035ccd399c13f7Bootstrap-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-d5bb7c78-a89f-417f-a7f4-833471010d66python-XStatic-Bootstrap-SCSS-3.4.1.0-1.src.rpmpython3-XStatic-DataTablesnoarchc56c7cfd7321bfdfddb284028358281c459fd29415f55e972c08a3bcd8b03dbdDataTables 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-84416b2f-8d4a-46ae-b3e0-054c5fa76974python-XStatic-DataTables-1.10.15.1-1.src.rpmpython3-XStatic-Patternflynoarche01162aa328d4125730ee1750bf9bbe9579dedcefab30b9a76dcc682141ad4d3Patternfly 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-00ff5dc2-2802-4786-bb81-8b37d4a0f181python-XStatic-Patternfly-3.21.0.1-1.src.rpmpython3-argparse-manpagenoarchb8c2f977ea8e9f950a21d6bcc0297e9b77fdb8c950201baa5d344b825c8785b2Build manual page from python's ArgumentParser object.Automatically build manpage from argparsehttps://github.com/praiskup/argparse-manpageApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-7aaf6fae-50da-4af2-94fb-4fd035557ec0python-argparse-manpage-4.3-1.src.rpm/usr/bin/argparse-manpagepython3-asttokensnoarche247831f2728feca77c2fd5302f6cbe5dcedd8bea5d29b5754d6d02776ea1610Module 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-b72d8905-468e-49fd-9573-b52c03465971python-asttokens-2.2.1-1.src.rpmpython3-backoffnoarch7650371c9a3bbb02c63a1331f4a64051c374ecd46616f728ba76165b143d13f2Function 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-6b823508-cb15-44e3-a821-95c51c3dbc36python-backoff-2.2.1-1.src.rpmpython3-blessednoarch858bab9c7818e80d167a21eddcf1ff5169a0eb7177680022518424895db9caafEasy, 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-27c1c308-0a36-4300-93c4-1b3f22eeef2dpython-blessed-1.20.0-1.src.rpmpython3-cachelibnoarchb518952684b50f2c71fd459ebda7dfa8cddaddd320503dc79a761e4ebc166fdfA 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-7e6e8ef2-6dfc-4eac-b3cf-5a32210e5b52python-cachelib-0.9.0-1.src.rpmpython3-copr-commonnoarch9a7dfce6eb02c099ee3554e78fd5d5bebc90f832ee393a6de28b2c3cc62d52adPython 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-71cf6878-2e37-4ad1-bf6f-ee658b833d83python-copr-common-0.19-1.src.rpmpython3-crudininoarch464e1d4256b192311f3baff684a3c2142aa0a228070c540d6c0945ac18985799A utility for manipulating ini filescrudini A utility for manipulating ini fileshttp://github.com/pixelb/crudiniGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e672c122-e9a9-4bcf-986f-bfba3a890fc5python-crudini-0.9.3-2.src.rpm/usr/bin/crudinipython3-debtcollectornoarchf502d3eb6100ee613b056e278797e68d05ea68d5b59db6eed3828f5b718d5547A 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-5b7046c2-ac2d-467a-a044-2fa7b7b5a202python-debtcollector-2.5.0-1.src.rpmpython3-email-validatornoarchb1fb45503448cb22bd12b485a4d25a6eb0af16ce093a4be229b6780e7f792456A 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-b74b4f04-c5f3-4dae-b34d-0356f81c2f4epython-email-validator-1.3.1-1.src.rpm/usr/bin/email_validatorpython3-executingnoarch072439e5f41131008108b774e424edd6515ed4a388073ea52aa9941e099579f5Get 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-f6e29d26-fb88-49aa-8e29-3b37b8f74bcfpython-executing-1.2.0-1.src.rpmpython3-executingnoarch97a47bbed3a10df1a50724609d83c4b939900cd20359f8b83cf07a6b8f97e97cGet 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-0015cc66-4bb9-47e4-b51f-b2f61a4dbfa6python-executing-1.2.0-1.src.rpmpython3-flask-whoosheenoarch4c2f34e881b202c147aaddc7d0cd055e31f8cdecec5c6131d0b3c523e593ea7bFlask-SQLAlchemy - Whoosh IntegrationCustomizable Flask - SQLAlchemy - Whoosh integrationhttps://github.com/bkabrda/flask-whoosheeBSD-3-ClauseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-729531db-ba50-4603-b356-590d5a7fef76python-flask-whooshee-0.8.2-1.src.rpmpython3-html2textnoarchf93a0731cd92739ec1c8c37ec3e1617ef3f60b5cc1b0c5992db04349d1bb3d71Turn HTML into equivalent Markdown-structured text.Convert HTML to Markdown-formatted text.https://github.com/Alir3z4/html2text/GPL-3.0-onlyopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-bd109f8e-0726-4a80-9197-dfe93bed4383python-html2text-2020.1.16-2.src.rpm/usr/bin/html2textpython3-html5-parseraarch640246e58fcb2211765c2e91d92545664964a209ce48ab01c9a7f907ee1c1c067eA 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-7e61f95b-c523-44a0-8fd1-6cb717d25560python-html5-parser-0.4.10-1.src.rpmpython3-html5-parseraarch64e11c9338e93abe09f27b226fbafacb9f6803359489cdfbe0ab83572dcaec81a4A 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-5ea2a781-1bc3-469e-936f-6beaef16d88fpython-html5-parser-0.4.10-1.src.rpmpython3-ipdbnoarch0a2c300208f0b666cbcfb9b0f4813d739a54a0d2f0e8a745a1792e9168c3f052IPython-enabled pdbhttps://github.com/gotcha/ipdbBSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-aa5e520a-5358-4771-9f12-2b6ca8922d0fpython-ipdb-0.13.13-1.src.rpm/usr/bin/ipdb3python3-ipythonnoarch129a89d7e3ac523c1a49715412eebd6782c4604e19cbc2999a23d8a7fe59db98IPython: 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-1527a09e-cbb5-4181-b612-f426874cbaddpython-ipython-8.14.0-1.src.rpm/usr/bin/ipython/usr/bin/ipython3python3-ipythonnoarcha30a272817a7cd2df328bc8b00c3ec7e3e8e544bc79d38f4f6af02e5bab9a793IPython: 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-dd918943-89f8-4c9b-ac46-b31c6a6987ddpython-ipython-8.14.0-1.src.rpm/usr/bin/ipython/usr/bin/ipython3python3-jedinoarch84d2c7cfb91b8647f379e0351b063b193e52ca1f2b5c03a56ca035bfc9c8a08fA 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-76592836-696f-4ffc-86a5-771a7477b581python-jedi-0.18.1-1.src.rpmpython3-jedinoarchc67f47612ad55ccd9378d9afa498ee5c19a5c67bfcc532be39516b7ff45fb90bA 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-ec01b083-9bf6-4dd5-b083-6507515b24c7python-jedi-0.18.1-1.src.rpmpython3-kojinoarch14237c2c306f95af5de42a1efadb625f35ae395cdc83bbcbd48e24176983005aBuild 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-b0759db8-014f-405d-9ae7-8138a81afc74koji-1.32.0-1.src.rpmpython3-kojinoarchf145d1eacbc9a8c57ada78234cf712e5601baed7bce769fc697a853f7719149fBuild 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-71298be8-2047-4b01-9e3c-78e5b5cf5e04koji-1.32.0-1.src.rpmpython3-littleutilsnoarch663d0df19dd481d592a22325823eac5af87ce43a0cc535af6ca83d652035d836Small collection of Python utilitiesSmall collection of Python utilities.https://pypi.org/pypi/littleutilsMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e3fa49c6-fc73-4d3a-b31e-41cbc7efd86epython-littleutils-0.2.2-1.src.rpmpython3-matplotlib-inlinenoarchf702eb83f0455665350c472499da0fe479ded3b955ba68d616ab05a3a340903eInline 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-459437aa-ef0d-4cc3-9e03-386b04c0e96fpython-matplotlib-inline-0.1.6-1.src.rpmpython3-openidnoarch265af0ca63c45b204e1b09c574fe2eedb0b0b2b703e71780ef69c7bff2c3b386OpenID 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-271a3455-f489-497f-9aef-dcc13dfc8af3python3-openid-3.2.0-1.src.rpmpython3-openidnoarch6831575beae1f5aaa9f047932f78a849586074c24db221a4cf6f0b56f9cf57b4OpenID 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-bf1693b9-a9b5-4e1d-b407-7b672878148epython3-openid-3.2.0-1.src.rpmpython3-openidsrcdfe58061cefe629ab6d2e018f83421d643dbdd68737a0907dd5035eea91891d2OpenID 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-271a3455-f489-497f-9aef-dcc13dfc8af3python3-openidsrcbb484f034e14d91569dc77d223de67212cff74f21ea21f08c4ac1716cb4436eeOpenID 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-bf1693b9-a9b5-4e1d-b407-7b672878148epython3-openid-helpnoarchca5fe2790dc6e918cdbee77663614bc76036fe3f41918bf33851ba3d85d31440Development 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-271a3455-f489-497f-9aef-dcc13dfc8af3python3-openid-3.2.0-1.src.rpmpython3-openid-helpnoarch9efd8955cf0347d636b8dc4ca2d2b59995fc447a62405713c9e406e79a3ef766Development 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-bf1693b9-a9b5-4e1d-b407-7b672878148epython3-openid-3.2.0-1.src.rpmpython3-openid-teamsnoarch64939ca775546482cab14d3f2d3329fa4427c2062b3259c1cc3724ffd57e0400This is an implementation of the OpenID teams extension for python-openidUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-e585f687-ddd8-4ce1-8638-a48c3f2ee6a7python-openid-teams-1.1-2.src.rpmpython3-openid-teamsnoarch80a1abeac195f24e6fd9c61c49eb99d561a1feea080f05ea8971c8b8afcf5ceeThis is an implementation of the OpenID teams extension for python-openidUNKNOWNhttp://www.github.com/puiterwijk/python-openid-teams/BSDopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-2eecc2e2-5b21-4c7e-8acd-38a60f40620bpython-openid-teams-1.1-2.src.rpmpython3-openidc-clientnoarch2a3adfb32b06f2dcd3f1a7a710c81707f513e39d9d1dcd96406fab92154b83b8Python OpenID Connect client with token caching and managementPython OpenID Connect client with token caching and management.MITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3ac5911b-fa50-44da-b494-4373bb1f31dfpython-openidc-client-0.6.0-1.src.rpmpython3-os-service-typesnoarchf081bf0aa72742ab542922c4e2984c10dc24d8e706b43310236dbb94d9b9405cPython library for consuming OpenStack sevice-types-authority datahttps://pypi.org/project/os-service-types/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-8d49c018-467e-4ba8-9354-5fec04f0ff1epython-os-service-types-1.7.0-2.src.rpmpython3-oslo-concurrencynoarcha4fd51a5b0ea8a1b6bf32966bc05c1906e1934e5cb68544f3ea37a75988c0951Oslo Concurrency libraryOpenStack library for all concurrency-related codehttps://docs.openstack.org/oslo.concurrency/latest/Apache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-dfe1ff5b-677a-4d3d-a87b-fe7256cd582epython-oslo-concurrency-4.5.0-1.src.rpm/usr/bin/lockutils-wrapperpython3-oslo-confignoarchc2b78fb923317982b9ec97dea4812189b501e15bfd5a462229bc622f329f55f8Oslo 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-2db4d873-1a56-494e-a70c-37e67d781698python-oslo-config-9.0.0-1.src.rpm/usr/bin/oslo-config-generator/usr/bin/oslo-config-validatorpython3-oslo-i18nnoarch52a522b900fae8480579f6c1c8e1c21854c0d23ec0faf700944cbe79ed44d020Oslo i18n libraryInternationalization and translation libraryhttps://docs.openstack.org/oslo.i18n/latestApache-2.0openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-2fe516a3-6c12-4fe3-9139-2d0c38e8daf6python-oslo-i18n-5.1.0-1.src.rpmpython3-oslo-serializationnoarchf7d61a4cb3a97ff1a7cdc61b72faec56052fa5c335caf51748742e4c03b438e4Oslo 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-18035b3b-2655-4c1d-9441-afc22e8125c3python-oslo-serialization-4.3.0-1.src.rpmpython3-oslo-utilsnoarchc1774e928518e13568ba2d16e71b5d0d31fd2bf478e4e1313600f44ae1279e86Oslo 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-e509f2d3-c940-410a-96d5-8b5155830fa9python-oslo-utils-4.12.3-1.src.rpmpython3-parsonoarch28beed2af517635efbcec359fb9b0fb7c88321b37f018e092c7b90967ac8375dA 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-5c1cb259-b4bc-4131-be0e-25decb31f29bpython-parso-0.8.3-1.src.rpmpython3-parsonoarch1813126af21fe630e5b4701cef57f158cd10eb37cef81f678dc1561e516460feA 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-bf84dd2e-ae15-4836-8d2d-88b89828d4d8python-parso-0.8.3-1.src.rpmpython3-picklesharenoarch9c3d764156b5bc5cf6577b7da363d9e8bff65c0118d9ba50e97711bd68908dbbTiny '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-96b8af8f-f6ce-48e5-ae0e-b804fef0ac5epython-pickleshare-0.7.5-1.src.rpmpython3-prompt-toolkitnoarchb68613f479f609174ddcd9ebf6082c3a89e03bc938f1e656f346ecd1c68ee6b5Library 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-8bf6de2d-9318-42ef-bb16-43ef5f0f7ac7python-prompt-toolkit-3.0.38-1.src.rpmpython3-prompt-toolkitnoarch43da968e6d284ece0a375020aa187119d8f60e118bb38be745bb41319557d7b3Library 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-17ae7822-4074-414b-a1e7-b90da5529c77python-prompt-toolkit-3.0.38-1.src.rpmpython3-pure-evalnoarch7f83ac610476178d8b2d0b608ee406ad884e02f8f50fdcd577ea2cb1586acf9eSafely 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-c9175ae9-fb2e-4a4c-abcb-b3e463c98537python-pure-eval-0.2.2-1.src.rpmpython3-pure-evalnoarch59446e80b42577c1b6aa9120a44e76988c5a2e232b94ead0aca79903cd80b129Safely 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-16729703-fcd0-4701-adef-bb260938ad88python-pure-eval-0.2.2-1.src.rpmpython3-py3dnsnoarch9b69f66c9b01d5de48ab8330655cd2c785bd4c7d7d6162820e76e1e9ea5e2896Python 3 DNS libraryPython 3 DNS library:https://launchpad.net/py3dnsPython LicenseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-dac3ed65-49f6-4483-b402-71baadaffe12python-py3dns-3.2.1-1.src.rpmpython3-py3dnsnoarch59af1ddf08b00499d67a31ddbcdbf0c68b121ca9fc610464ecbdc0bc9756320dPython 3 DNS libraryPython 3 DNS library:https://launchpad.net/py3dnsPython LicenseopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b8e22ee7-753b-46c1-83ad-ede3333c05a7python-py3dns-3.2.1-1.src.rpmpython3-pyLibravatarnoarchd8e10f2a5d46f2912bd53c018ca643b39d83452d34b7bb5e3334db9cd6249bebPython 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-641bda05-cd9c-494f-b772-63bd2bffdbe0python-pyLibravatar-1.7-1.src.rpmpython3-pyLibravatarnoarch222dd7d621b54d835204debe996e4fe4e764c5432231eaa0aa10fffdb0d5c12dPython 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-cd397d79-5ec0-4a8b-b8bf-eed5d240c4capython-pyLibravatar-1.7-2.src.rpmpython3-pyLibravatarnoarch7d510999fb695d8006dccf5b0d8110cd058de840a7a66aac887c3be1b81d121bPython 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-752fb509-b319-43a6-856c-e058ba8c9264python-pyLibravatar-1.7-2.src.rpmpython3-pygalnoarch9ab5b5fc7541ee7724f104de2ec0fae928876595aa7505af8ec949b54f27335dA Python svg graph plotting libraryhttps://www.pygal.org/LGPL-3.0+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-af917cb2-bce4-4111-b45a-10c4e96d5d38python-pygal-3.0.0-1.src.rpm/usr/bin/pygal_gen.pypython3-pygalnoarchffbe3a91a91e2f74a0ac76334daf71a04e2cd06b1538d821eb391d2c45d60b17A Python svg graph plotting libraryhttps://www.pygal.org/LGPL-3.0+openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-b987cee0-9cc7-434b-aeed-d883262bfb03python-pygal-3.0.0-1.src.rpm/usr/bin/pygal_gen.pypython3-pygit2aarch64570b65bf486377332812e6e0197412bdce7862d7c13e40a8a66023cdd74b5204Python 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-ae225cad-09f8-4d1e-9a2a-6567b760028bpython-pygit2-1.7.1-1.src.rpmpython3-pygit2aarch64ad6caf9e0b6cff5e40415a364dd74e01eeaa8b31c85fb4231c7c275204749fecPython 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-37c01140-db47-42cd-8263-7bf442bf71a6python-pygit2-1.7.1-1.src.rpmpython3-resallocnoarchfc9f2c3fd5f8eccf850d82e1a8080fe335f057e5df07365aa98577fe61913345Resource 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-0c30b135-2f61-4eaf-8a9f-f8c79eecf981resalloc-4.9-1.src.rpmpython3-responsesnoarchda65ff6441d1f3b2ed62948a5ee6bf38aa047d2abcd43f3abb322bfeefd4fc21A 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-4129a494-d52a-4112-9b6d-4d6288f1e45fpython-responses-0.18.0-1.src.rpmpython3-retasknoarch9736628c1d2d88c3048a2bbdfd13b0784235f71126a60e7d1f0f86b1ba2d5d04Python 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-7195bafb-a172-489f-961b-1aae4d364df0python-retask-0.4-1.src.rpmpython3-richnoarch5793f0aad41a4ac15894e5a089a4859eae802789ea28be3936a0cc0fb2f809b6Render 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-58bbc0ac-d251-4212-9e5f-821b5dde68a9python-rich-12.6.0-1.src.rpmpython3-rpkgnoarchff9af9bd0dd246819dca21cd7cbb8ccf262ca83efbdf99a3cefea5445e36d1cbPython 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-0f424b9a-e878-4927-9fd2-e8796c904e46rpkg-1.65-1.src.rpmpython3-rpkgnoarchca4208c30060737d77e02e43a621edcc5a840407edfa0605422ecf5523514d07Python 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-3fe2a08e-817c-44ce-8b85-f175d8632767rpkg-1.65-1.src.rpmpython3-rpmautospecnoarch766280f5fcfe8c0670404668b745ff1398bb6eec712edc4d6807559b2771a09ePackage 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-428ca6f9-ec8d-4bf7-94be-6b5f53cfa6ccpython-rpmautospec-0.3.5-1.src.rpmpython3-rpmautospecnoarchdba41bf47fca92d4db1141e807eb347450532daf0829c67f2ea29bf7bc85c264Package 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-dfc83c2f-644a-4c8b-b46b-85bc010ea54cpython-rpmautospec-0.3.5-1.src.rpmpython3-stack-datanoarch281443e5e3df7d302b4bd8bb854d7afb291ed04e2c0f7aeccd4644fab058a5e0Extract 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-05fa6231-fc98-4755-a119-1d11b5aba1f7python-stack-data-0.6.2-1.src.rpmpython3-stack-datanoarch7f29322c43079c40a0bd6b0f92deaf96e3877d9af3c2fab29166e33419ab48a0Extract 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-067a7582-dc56-45b9-a5f7-c84a70425710python-stack-data-0.6.2-1.src.rpmpython3-templated-dictionarynoarchb697b8710473c1d7b6179e55826d1afa58aabf345ccf11991980b13f1f8daaa3Dictionary with Jinja2 expansionDictionary where __getitem__() is run through Jinja2 template.https://github.com/xsuchy/templated-dictionaryGPL-2.0-or-lateropenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-398ecbb3-cb11-4b0a-ba7f-67a77713de5cpython-templated-dictionary-1.2-1.src.rpmresallocnoarch7e5b339a47016959013db7d7a25b4a80de599bfc845b7403ac61d84349de999cResource 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-0c30b135-2f61-4eaf-8a9f-f8c79eecf981resalloc-4.9-1.src.rpm/usr/bin/resallocresallocsrcedc23afc47a673462242ef91fd2c22a77b5425367a110fb394d824289db57cd4Resource 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-0c30b135-2f61-4eaf-8a9f-f8c79eecf981resalloc-selinuxnoarch6e84f328b1093259fdf188a5147c191f8d0c6f220a38e02f327f90ba2450dfd0SELinux 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-0c30b135-2f61-4eaf-8a9f-f8c79eecf981resalloc-4.9-1.src.rpmresalloc-servernoarch031ec3e81757229335807108ed493482861569596ff0505a2ebfb14b19117d24Resource 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-0c30b135-2f61-4eaf-8a9f-f8c79eecf981resalloc-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-webuinoarch1cb55d276c7296f52c4746ae1859fb27861b0cf34930f9f566615e5ac16ed13bResource 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-0c30b135-2f61-4eaf-8a9f-f8c79eecf981resalloc-4.9-1.src.rpmrpkgsrcb0b64823f5e4e9c895e01ab57130e885ac4e7a4b4844688815a1240745b7e455Python library for interacting with rpm+gitPython library for interacting with rpm+githttps://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-0bb80078-6911-4e65-bd1f-81861b710145rpkgsrc8e3eb9c70dcd5c47ab631c80c59de0760f764bf4395e185fcc41f13e88217dacPython library for interacting with rpm+gitPython library for interacting with rpm+githttps://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-767fd8eb-22b3-433e-a73a-769673d66be4rpkgsrc4efc9f167e38a1dc2d34a13a19072bb2b6016f78da4e7d95cdc89ca618a32ba7Python library for interacting with rpm+gitPython library for interacting with rpm+githttps://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-0f424b9a-e878-4927-9fd2-e8796c904e46rpkgsrc4c15dbdc7282c3b2d623497da0ce815d144b290c80ff617af90f54f4a5290478Python library for interacting with rpm+gitPython library for interacting with rpm+githttps://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3fe2a08e-817c-44ce-8b85-f175d8632767rpkgsrc6e0dd28cf873343d82b53fe7db2c85ccd25d82824b82f8a87dc4c88f1cb3b3cfPython library for interacting with rpm+gitPython library for interacting with rpm+githttps://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-1b9fb714-9a69-474c-964a-0b0dd97a8b93rpkgsrcfff1a323efd1757bae7d52f95edf2bc22f6e50f3795dbe1c033c470b8000342cPython library for interacting with rpm+gitPython library for interacting with rpm+githttps://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-ac898059-59b2-4c4d-9271-10a9615370f8rpkgsrce07e4dcc689f5a741f2dce188d510a2a8afedc0991dfce39d65fe88ddb2d9019Python library for interacting with rpm+gitPython library for interacting with rpm+githttps://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-f26f7992-8939-4157-9d78-4dd0b404ca7frpkgnoarchf71191756b3b48a0238c5c83774000c062e8f17fda1b6b7c3b640b091584fc8dRPM 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-09cb0677-6f37-4171-bf96-3e9f239d1b6brpkg-util-3.2-1.src.rpm/etc/rpkg.conf/usr/bin/rpkgrpkgnoarchffa897feb791ab0d1fe45465a69acf3e0632f55c9b738936d4a83bc2ab9a79aeRPM 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-b4063024-17ed-4ca3-8597-35ab58ca4259rpkg-util-3.2-1.src.rpm/etc/rpkg.conf/usr/bin/rpkgrpkg-commonnoarch40319bddb9231209388017ecf530f5d429131ca991cc1a8a178041d066d6f0feCommon files for rpkgCommon files for python2-rpkg and python3-rpkg.https://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-0f424b9a-e878-4927-9fd2-e8796c904e46rpkg-1.65-1.src.rpm/etc/rpkg/usr/share/rpkg/examples/cli/usr/bin/rpkgrpkg-commonnoarch9b4c393fc8c11349d454df2198eb3dd5243e87f49fc95071c94bb942154f9f35Common files for rpkgCommon files for python2-rpkg and python3-rpkg.https://pagure.io/rpkgGPLv2+ and LGPLv2openEuler Copr - user mywaaagh_adminUnspecifiedresalloc-3fe2a08e-817c-44ce-8b85-f175d8632767rpkg-1.65-1.src.rpm/etc/rpkg/usr/share/rpkg/examples/cli/usr/bin/rpkgrpkg-macrosnoarchfb2ff5e3ef8443e5dc718b31b045b1700b35df9f0c6f0847a54200ffc6d00c9aSet 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-b118e8a8-2add-4f66-b9b1-cad979a04104rpkg-macros-2.0-1.src.rpm/usr/bin/pack_sourcesrpkg-macrosnoarch9bb7d5357da568a4b666ee5577ed02b53079df9bdb30bbb3d2df8a97d33020d0Set 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-ff06b3ba-ba39-4758-90ec-75e336ef6903rpkg-macros-2.0-1.src.rpm/usr/bin/pack_sourcesrpkg-macrossrcd93e3f329ec7431fdcd5bd2f32cf94474b3094d7a4bca4ef9989c734d8aaa16cSet 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-b118e8a8-2add-4f66-b9b1-cad979a04104rpkg-macrossrc471efad916c08198bbe3706e54021d1d1fa12ff01d28fecae31e4e9b10cb38cfSet 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-ff06b3ba-ba39-4758-90ec-75e336ef6903rpkg-utilsrc0817d48647adda05025d87b1b088452007e10cd828c5437cfc6573f34857316eRPM 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-73eafde3-7462-4d11-a060-3eb1eaaf2d0arpkg-utilsrccf33c5b82d849427f63caa1dc27c999b72aeb50a57bd65a39d338e202f6bf9bdRPM 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-09cb0677-6f37-4171-bf96-3e9f239d1b6brpkg-utilsrc2c7e9632950c1b2b50a7370c77722c1aae3afa65d40a25ac713337312c446abfRPM 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-b4063024-17ed-4ca3-8597-35ab58ca4259rpm-git-tag-sortaarch648afbc5ff879663384a8c8fecf4e5754572505f5d728defb244587b07bd8ff0b6Sorts 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-98b5a0a7-9a0e-4500-b691-cc5694c893derpm-git-tag-sort-1.0-12.src.rpm/usr/bin/rpm-git-tag-sortrpm-git-tag-sortaarch64127605c93b9058b50a6fec5263927646988676eaa7bc2820a9fe84aebd768494Sorts 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-c2183a5e-3c2f-47e6-a449-ccd861568cb8rpm-git-tag-sort-1.0-12.src.rpm/usr/bin/rpm-git-tag-sortrpm-git-tag-sortaarch6463ab4a23bcb67a94ae2a89e084585510aac339e2ec09c29358220f9a6eacd310Sorts 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-d5cea7fb-c5a2-4244-b8a1-6863f26e3b0brpm-git-tag-sort-1.0-12.src.rpm/usr/bin/rpm-git-tag-sortrpm-git-tag-sortsrc5f71829e5aa9d9862c2ef9bdec9fe73189e900c1d8c9872477bb1e637911466aSorts 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-98b5a0a7-9a0e-4500-b691-cc5694c893derpm-git-tag-sortsrc5437b63538080f037a19803e85161a326d6c473c3122c91653ec5abbad496484Sorts 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-c2183a5e-3c2f-47e6-a449-ccd861568cb8rpm-git-tag-sortsrc59fca38830b1e68f2e21da81a0ca274fd4bb0edd71124bf149aaa2dfd928f672Sorts 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-d5cea7fb-c5a2-4244-b8a1-6863f26e3b0brpm-git-tag-sort-debuginfoaarch64218d9e519a8c3ecd2baf14585c1b914b1a51dfb587fc3c55cfd0b1456396504aDebug 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-98b5a0a7-9a0e-4500-b691-cc5694c893derpm-git-tag-sort-1.0-12.src.rpm/usr/lib/debug/usr/bin/rpm-git-tag-sort-1.0-12.aarch64.debugrpm-git-tag-sort-debuginfoaarch64ea108ecedc363eec8b6e55b3ec68c37abe98efc30219380abcf9ae4fb9ec4c39Debug 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-c2183a5e-3c2f-47e6-a449-ccd861568cb8rpm-git-tag-sort-1.0-12.src.rpm/usr/lib/debug/usr/bin/rpm-git-tag-sort-1.0-12.aarch64.debugrpm-git-tag-sort-debuginfoaarch64ee73a2a837e76f45097c0f1510dd810d4130def671a089b8108fc434ecdb2273Debug 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-d5cea7fb-c5a2-4244-b8a1-6863f26e3b0brpm-git-tag-sort-1.0-12.src.rpm/usr/lib/debug/usr/bin/rpm-git-tag-sort-1.0-12.aarch64.debugrpm-git-tag-sort-debugsourceaarch6432b1588eee49786c617fc65b01db0de25cc8b5edb9a9cdc059bb57736e96026eDebug 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-98b5a0a7-9a0e-4500-b691-cc5694c893derpm-git-tag-sort-1.0-12.src.rpmrpm-git-tag-sort-debugsourceaarch64e6de47f5d3c5067456df44d8fbb14716a0bc1340363ddd308392de2372efb613Debug 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-c2183a5e-3c2f-47e6-a449-ccd861568cb8rpm-git-tag-sort-1.0-12.src.rpmrpm-git-tag-sort-debugsourceaarch64c11304555392cfc1061643865ce2dbca52b554e36c385e202b6e921e77500fceDebug 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-d5cea7fb-c5a2-4244-b8a1-6863f26e3b0brpm-git-tag-sort-1.0-12.src.rpmrpmautospecnoarch1f28bc4c502a7ed40142661fa573449693e04852d4e3fd7ae562e629561507cfCLI tool for generating RPM releases and changelogsCLI tool for generating RPM releases and changelogshttps://pagure.io/fedora-infra/rpmautospecMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-428ca6f9-ec8d-4bf7-94be-6b5f53cfa6ccpython-rpmautospec-0.3.5-1.src.rpm/usr/bin/rpmautospecrpmautospecnoarche2c0fb9e9b9a0909560103040eb01dfbd519a78dd0cb15e4bc44302a93918407CLI tool for generating RPM releases and changelogsCLI tool for generating RPM releases and changelogshttps://pagure.io/fedora-infra/rpmautospecMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-dfc83c2f-644a-4c8b-b46b-85bc010ea54cpython-rpmautospec-0.3.5-1.src.rpm/usr/bin/rpmautospecrpmautospec-rpm-macrosnoarch87f1b98edc807ab36c37d1e77cbe59c6f7fd7e21013efa60a965821795014012Rpmautospec RPM macros for local rpmbuildRPM macros with placeholders for building rpmautospec enabled packages localyhttps://pagure.io/fedora-infra/rpmautospecMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-428ca6f9-ec8d-4bf7-94be-6b5f53cfa6ccpython-rpmautospec-0.3.5-1.src.rpmrpmautospec-rpm-macrosnoarch27347096e4aaeac9d246e52fd9706162b34fb05ed30c40599751b23a712a1f76Rpmautospec RPM macros for local rpmbuildRPM macros with placeholders for building rpmautospec enabled packages localyhttps://pagure.io/fedora-infra/rpmautospecMITopenEuler Copr - user mywaaagh_adminUnspecifiedresalloc-dfc83c2f-644a-4c8b-b46b-85bc010ea54cpython-rpmautospec-0.3.5-1.src.rpmtiniaarch64dbb053f7a08744095ae8514afe0552906c3bc430f0173faaffa42a124b48bf5dA 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-1d87f70b-5579-4614-a95e-c5c7f3b5822etini-0.19.0-1.src.rpm/usr/bin/tinitinisrcb6cdb853cc74b99e379cf2b7661bfb8e2f98d548863ad38933b340e097905526A 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-1d87f70b-5579-4614-a95e-c5c7f3b5822etini-debuginfoaarch64a7f00c671c8589c329c50fd9100e822626f9c465b0ad3459debfa853ce4a8f06Debug 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-1d87f70b-5579-4614-a95e-c5c7f3b5822etini-0.19.0-1.src.rpm/usr/lib/debug/usr/bin/tini-0.19.0-1.aarch64.debug/usr/lib/debug/usr/bin/tini-static-0.19.0-1.aarch64.debugtini-debugsourceaarch64ac5184547e1c83a2ad8d6237079a22a99f3b6a6f662dc1b6b4f4c7a7c058f73eDebug 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-1d87f70b-5579-4614-a95e-c5c7f3b5822etini-0.19.0-1.src.rpmtini-staticaarch6407c059facaefc639d3f45a1ea4579cf918f183f0a7f34e67cfa1b7b34b27e296Standalone 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-1d87f70b-5579-4614-a95e-c5c7f3b5822etini-0.19.0-1.src.rpm/usr/bin/tini-statictitonoarch51cf201000cee13d6ae9f1803d8901d475145bcfbd24099ee5c0dcd784010b94A 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-85ab997f-08dd-4dde-9993-0b31cab0cdb6tito-0.6.21-1.src.rpm/usr/bin/generate-patches.pl/usr/bin/titotitosrc9cdfd62e7573f4cd88a31afa8c68ec1c24880fceb18e285c27436903224c6695A 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-85ab997f-08dd-4dde-9993-0b31cab0cdb6