# packages

pkgId: 04bcd632ab84694aa4cd3622878acc9f6cf23e2c6c83c2bb8df8fc00008857e9
name: python-ansi2html
arch: src
version: 1.9.2
epoch: 0
release: 1
summary: Convert text with ANSI color codes to HTML or to LaTeX
url: https://pypi.org/project/ansi2html/
rpm_license: LGPLv3+
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansi2html-1.9.2-1.src.rpm
checksum_type: sha256
description:
  [![Build Status - main branch](https://github.com/pycontribs/ansi2html/workflows/tox/badge.svg?branch=main)](https://github.com/pycontribs/ansi2html/actions?query=workflow%3Atox+branch%3Amain)



  Convert text with ANSI color codes to HTML or to LaTeX.

  Inspired by and developed off of the work of
  [pixelbeat](https://www.pixelbeat.org/docs/terminal_colours/) and
  [blackjack](https://web.archive.org/web/20100911103911/http://www.koders.com/python/fid5D57DD37184B558819D0EE22FCFD67F53078B2A3.aspx).

  [Read the docs](https://ansi2html.readthedocs.io/) for more
  informations.



  ```python
  from ansi2html import Ansi2HTMLConverter
  conv = Ansi2HTMLConverter()
  ansi = "".join(sys.stdin.readlines())
  html = conv.convert(ansi)
  ```



  ```shell
  $ ls --color=always | ansi2html > directories.html
  $ sudo tail /var/log/messages | ccze -A | ansi2html > logs.html
  $ task rc._forcecolor:yes limit:0 burndown | ansi2html > burndown.html
  ```

  See the list of full options with:

  ```shell
  $ ansi2html --help
  ```



  ```shell
  $ pip3 install ansi2html
  ```

  Source: <https://github.com/pycontribs/ansi2html/>

  pypi: <https://pypi.org/project/ansi2html/>



  `ansi2html` is licensed LGPLv3+.



  - Author: [Ralph Bean](mailto:rbean@redhat.com)
  - Contributor: [Robin Schneider](mailto:ypid23@aol.de)


pkgId: 86d6300e2ac7301552446cac4f085e56a63852ccb083c90b914d1de2b2c5d9b5
name: python-ansi2txt
arch: src
version: 0.2.0
epoch: 0
release: 1
summary: ansi to plain text converter
url: https://pypi.org/project/ansi2txt/
rpm_license: GNU Affero General Public License v3
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansi2txt-0.2.0-1.src.rpm
checksum_type: sha256
description:
  ansi to plain text converter



  Here are some related projects

  - [colorized-logs](https://github.com/kilobyte/colorized-logs)
  - [strip-ansi-cli](https://github.com/chalk/strip-ansi-cli)



  This code base is a translation/port of the `ansi2txt.c` code base from [colorized-logs](https://github.com/kilobyte/colorized-logs) to Python3 and Bash.
  This project came about because I liked the original `ansi2txt`'s output but did not want to have to compile it or ship binaries around.
  I ported ansi2txt.c → ansi2txt.py but then came across an environment without python so went ansi2txt.py → ansi2txt.sh.



  [AGPLv3](https://choosealicense.com/licenses/agpl-3.0/) AND [MIT](https://choosealicense.com/licenses/mit/)



  To run tests, run the following command

  ```bash
  bats ansi2txt.bats
  ```


pkgId: c2a01cae59c7560a76df64f4ee140301597dea971a5e4e8a2c3422227476971d
name: python-ansible-base
arch: src
version: 2.10.17
epoch: 0
release: 1
summary: Radically simple IT automation
url: https://ansible.com/
rpm_license: GPLv3+
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-base-2.10.17-1.src.rpm
checksum_type: sha256
description:
  *  Have a dead simple setup process and a minimal learning curve.
  *  Manage machines very quickly and in parallel.
  *  Avoid custom-agents and additional open ports, be agentless by
     leveraging the existing SSH daemon.
  *  Describe infrastructure in a language that is both machine and human
     friendly.
  *  Focus on security and easy auditability/review/rewriting of content.
  *  Manage new remote machines instantly, without bootstrapping any
     software.
  *  Allow module development in any dynamic language, not just Python.
  *  Be usable as non-root.
  *  Be the easiest IT automation system to use, ever.


pkgId: e538257bfaf2070775079b627b18ed888b0da38d7bde330fbb86231b71d1e358
name: python-ansible-bender
arch: src
version: 0.10.1
epoch: 0
release: 1
summary: A tool which builds container images using Ansible playbooks
url: https://github.com/ansible-community/ansible-bender
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-bender-0.10.1-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://badge.fury.io/py/ansible-bender.svg)](https://badge.fury.io/py/ansible-bender)
  ![GitHub Release Date](https://img.shields.io/github/release-date/ansible-community/ansible-bender?label=Latest%20release)
  ![PyPI - Status](https://img.shields.io/pypi/status/ansible-bender)
  ![GitHub](https://img.shields.io/github/license/ansible-community/ansible-bender)
  ![PyPI - Downloads](https://img.shields.io/pypi/dm/ansible-bender)

  This tool bends containers using
  [Ansible](https://github.com/ansible/ansible)
  [playbooks](https://docs.ansible.com/ansible/latest/user_guide/playbooks.html)
  and turns them into container images. It has a pluggable builder selection —
  it is up to you to pick the tool which will be used to construct your container
  image. Right now the only supported builder is
  [buildah](https://github.com/containers/buildah).
  [More](http://github.com/ansible-community/ansible-bender/issues/25) [to
  come](http://github.com/ansible-community/ansible-bender/issues/26) in the future.
  Ansible-bender (ab) relies on [Ansible connection
  plugins](https://docs.ansible.com/ansible/latest/plugins/connection.html) for
  performing builds.

  tl;dr Ansible is the frontend, buildah is the backend.

  The concept is described in following blog posts:
  * [Building containers with buildah and ansible](https://blog.tomecek.net/post/building-containers-with-buildah-and-ansible/).
  * [Ansible and Podman Can Play Together Now](https://blog.tomecek.net/post/ansible-and-podman-can-play-together-now/).




  [This project doesn't have an active maintainer right now that](https://github.com/ansible-community/ansible-bender/issues/282) would watch issues daily.

  If you are a user of ansible-bender and are familiar with Python, please consider becoming a maintainer.




  * You can build your container images with buildah as a backend.
  * Ansible playbook is your build recipe.
  * You are able to set various image metadata via CLI or as specific Ansible vars:
    * working directory
    * environment variables
    * labels
    * user
    * default command
    * exposed ports
  * You can do volume mounts during build.
  * Caching mechanism:
    * Every task result is cached as a container image layer.
    * You can turn this off with `--no-cache`.
    * You can disable caching from a certain point by adding a tag `no-cache` to a task.
  * You can stop creating new image layers by adding tag `stop-layering` to a task.
  * If an image build fails, it's committed and named with a suffix `-[TIMESTAMP]-failed` (so
    you can take a look inside and resolve the issue).
  * The tool tries to find python interpreter inside the base image.
  * You can push images you built to remote locations such as:
    * a registry, a tarball, docker daemon, ...
    * [podman push](https://github.com/containers/podman/blob/main/docs/source/markdown/podman-push.1.md) is used to perform the push.




  You can read more about this project in the documentation:
  * [Documentation home](https://ansible-community.github.io/ansible-bender/build/html/index.html)
  * [Interface](https://ansible-community.github.io/ansible-bender/build/html/interface.html)
  * [Installation](https://ansible-community.github.io/ansible-bender/build/html/installation.html)
  * [Configuration](https://ansible-community.github.io/ansible-bender/build/html/configuration.html)
  * [Usage](https://ansible-community.github.io/ansible-bender/build/html/usage.html)
  * [Caching and Layering mechanism](https://ansible-community.github.io/ansible-bender/build/html/cacheandlayer.html)
  * [Contribution guide](https://ansible-community.github.io/ansible-bender/build/html/contributing.html)
  * [Ansible-bender in OKD](https://ansible-community.github.io/ansible-bender/build/html/okd.html)


pkgId: 54f3a281a88de0cc9381ae58b42d3d94c753384785b4fd5ad07bb7caa2395490
name: python-ansible-builder
arch: src
version: 3.1.0
epoch: 0
release: 1
summary: "A tool for building Ansible Execution Environments"
url: https://ansible-builder.readthedocs.io
rpm_license: Apache Software License, Version 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-builder-3.1.0-1.src.rpm
checksum_type: sha256
description:
  [![CI](https://github.com/ansible/ansible-builder/actions/workflows/ci.yml/badge.svg?branch=devel)](https://github.com/ansible/ansible-builder/actions?query=branch%3Adevel)
  [![codecov](https://codecov.io/gh/ansible/ansible-builder/branch/devel/graph/badge.svg?token=4F6P3DBI40)](https://codecov.io/gh/ansible/ansible-builder)



  Ansible Builder is a tool that automates the process of building execution
  environments using the schemas and tooling defined in various Ansible
  Collections and by the user.

  See the readthedocs page for `ansible-builder` at:

  https://ansible-builder.readthedocs.io/en/stable/




  * We use [GitHub issues](https://github.com/ansible/ansible-builder/issues) to
    track bug reports and feature ideas
  * Want to contribute, check out our [guide](CONTRIBUTING.md)
  * Join us in the `#ansible-builder` channel on Libera.chat IRC
  * For the full list of Ansible email Lists, IRC channels and working groups,
    check out the [Ansible Mailing
    lists](https://docs.ansible.com/ansible/latest/community/communication.html#mailing-list-information)
    page of the official Ansible documentation.



  We ask all of our community members and contributors to adhere to the [Ansible
  code of
  conduct](http://docs.ansible.com/ansible/latest/community/code_of_conduct.html). If
  you have questions, or need assistance, please reach out to our community team
  at [codeofconduct@ansible.com](mailto:codeofconduct@ansible.com)



  [Apache License v2.0](./LICENSE.md)


pkgId: afd5c4e82d272093ee179dc282f89f405312c124c3d123ae46b905fdf2949afe
name: python-ansible-cached-lookup
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: An Ansible lookup plugin that caches the result of any other lookup
url: https://pypi.org/project/ansible-cached-lookup/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-cached-lookup-1.0.0-1.src.rpm
checksum_type: sha256
description:
  An Ansible lookup plugin that caches the results of any other lookup, most
  useful in group/host vars.

  By default, Ansible evaluates any lookups in a group/host var whenever the var
  is accessed. For example, given a group/host var:

  ```yaml
  content: "{{ lookup('pipe', 'a-very-slow-command' }}"
  ```

  any tasks that access `content` (e.g. in a template) will re-evaluate the
  lookup, which adds up very quickly. See
  [ansible/ansible#9263](https://github.com/ansible/ansible/issues/9623).



  1. Pick a name that you want to use to call this plugin in Ansible playbooks.
     This documentation assumes you're using the name `cached`.

     ```
     pip install ansible-cached-lookup
     ```

  2. Create a `lookup_plugins` directory in the directory in which you run Ansible.

     By default, Ansible will look for lookup plugins in an `lookup_plugins` folder
     adjacent to the running playbook. For more information on this, or to change
     the location where Ansible looks for lookup plugins, see the [Ansible
     docs](https://docs.ansible.com/ansible/dev_guide/developing_plugins.html#distributing-plugins).

  3. Create a file called `cached.py` (or whatever name you picked) in the
     `lookup_plugins` directory, with one line:

     ```py
     from ansible_cached_lookup import LookupModule
     ```



  To run the tests, run `tox`.

  To format code to pass `tox -e lint`, run `tox -e format`.


pkgId: bff29849d03f0347da7e5748f1a3c9f8dab891899c085a9bb7a239f671c714ea
name: python-ansible-compat
arch: src
version: 24.10.0
epoch: 0
release: 1
summary: Ansible compatibility goodies
url: https://pypi.org/project/ansible-compat/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-compat-24.10.0-1.src.rpm
checksum_type: sha256
description:
  [![pypi](https://img.shields.io/pypi/v/ansible-compat.svg)](https://pypi.org/project/ansible-compat/)
  [![docs](https://readthedocs.org/projects/ansible-compat/badge/?version=latest)](https://ansible.readthedocs.io/projects/compat/)
  [![gh](https://github.com/ansible/ansible-compat/actions/workflows/tox.yml/badge.svg)](https://github.com/ansible/ansible-compat/actions/workflows/tox.yml)
  [![codecov.io](https://codecov.io/github/ansible/ansible-compat/coverage.svg?branch=main)](https://codecov.io/github/ansible/ansible-compat?branch=main)

  A python package contains functions that facilitate working with various
  versions of Ansible 2.14 and newer.



  Documentation is available at
  [ansible.readthedocs.io/projects/compat/](https://ansible.readthedocs.io/projects/compat/).



  Join the Ansible forum to ask questions, get help, and interact with the
  community.

  - [Get Help](https://forum.ansible.com/c/help/6): get help or help others.
    Please add appropriate tags if you start new discussions.
  - [Social Spaces](https://forum.ansible.com/c/chat/4): meet and interact with
    fellow enthusiasts.
  - [News & Announcements](https://forum.ansible.com/c/news/5): track project-wide
    announcements including social events.

  To get release announcements and important changes from the community, see the
  [Bullhorn newsletter](https://docs.ansible.com/ansible/devel/community/communication.html#the-bullhorn).

  For more information about getting in touch, see the
  [Ansible communication guide](https://docs.ansible.com/ansible/devel/community/communication.html).



  Please see the official
  [Ansible Community Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html).


pkgId: 86b4c08faa1798f00b0ab666081aa1e6d26b31c020015954bb1ab94a618f6922
name: python-ansible-core
arch: src
version: 2.17.4
epoch: 0
release: 1
summary: Radically simple IT automation
url: https://ansible.com/
rpm_license: GPLv3+
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-core-2.17.4-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://img.shields.io/pypi/v/ansible-core.svg)](https://pypi.org/project/ansible-core)
  [![Docs badge](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://docs.ansible.com/ansible/latest/)
  [![Chat badge](https://img.shields.io/badge/chat-IRC-brightgreen.svg)](https://docs.ansible.com/ansible/latest/community/communication.html)
  [![Build Status](https://dev.azure.com/ansible/ansible/_apis/build/status/CI?branchName=devel)](https://dev.azure.com/ansible/ansible/_build/latest?definitionId=20&branchName=devel)
  [![Ansible Code of Conduct](https://img.shields.io/badge/code%20of%20conduct-Ansible-silver.svg)](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html)
  [![Ansible mailing lists](https://img.shields.io/badge/mailing%20lists-Ansible-orange.svg)](https://docs.ansible.com/ansible/latest/community/communication.html#mailing-list-information)
  [![Repository License](https://img.shields.io/badge/license-GPL%20v3.0-brightgreen.svg)](COPYING)
  [![Ansible CII Best Practices certification](https://bestpractices.coreinfrastructure.org/projects/2372/badge)](https://bestpractices.coreinfrastructure.org/projects/2372)



  Ansible is a radically simple IT automation system. It handles
  configuration management, application deployment, cloud provisioning,
  ad-hoc task execution, network automation, and multi-node orchestration. Ansible makes complex
  changes like zero-downtime rolling updates with load balancers easy. More information on the Ansible [website](https://ansible.com/).



  * Have an extremely simple setup process with a minimal learning curve.
  * Manage machines quickly and in parallel.
  * Avoid custom-agents and additional open ports, be agentless by
    leveraging the existing SSH daemon.
  * Describe infrastructure in a language that is both machine and human
    friendly.
  * Focus on security and easy auditability/review/rewriting of content.
  * Manage new remote machines instantly, without bootstrapping any
    software.
  * Allow module development in any dynamic language, not just Python.
  * Be usable as non-root.
  * Be the easiest IT automation system to use, ever.



  You can install a released version of Ansible with `pip` or a package manager. See our
  [installation guide](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html) for details on installing Ansible
  on a variety of platforms.

  Power users and developers can run the `devel` branch, which has the latest
  features and fixes, directly. Although it is reasonably stable, you are more likely to encounter
  breaking changes when running the `devel` branch. We recommend getting involved
  in the Ansible community if you want to run the `devel` branch.



  * Read [Community Information](https://docs.ansible.com/ansible/latest/community) for all
    kinds of ways to contribute to and interact with the project,
    including mailing list information and how to submit bug reports and
    code to Ansible.
  * Join a [Working Group](https://docs.ansible.com/ansible/devel/community/communication.html#working-groups),
    an organized community devoted to a specific technology domain or platform.
  * Submit a proposed code update through a pull request to the `devel` branch.
  * Talk to us before making larger changes
    to avoid duplicate efforts. This not only helps everyone
    know what is going on, but it also helps save time and effort if we decide
    some changes are needed.
  * For a list of email lists, IRC channels and Working Groups, see the
    [Communication page](https://docs.ansible.com/ansible/devel/community/communication.html)



  We document our Coding Guidelines in the [Developer Guide](https://docs.ansible.com/ansible/devel/dev_guide/). We particularly suggest you review:

  * [Contributing your module to Ansible](https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_checklist.html)
  * [Conventions, tips, and pitfalls](https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_best_practices.html)



  * The `devel` branch corresponds to the release actively under development.
  * The `stable-2.X` branches correspond to stable releases.
  * Create a branch based on `devel` and set up a [dev environment](https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_general.html#common-environment-setup) if you want to open a PR.
  * See the [Ansible release and maintenance](https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html) page for information about active branches.



  Based on team and community feedback, an initial roadmap will be published for a major or minor version (ex: 2.7, 2.8).
  The [Ansible Roadmap page](https://docs.ansible.com/ansible/devel/roadmap/) details what is planned and how to influence the roadmap.



  Ansible was created by [Michael DeHaan](https://github.com/mpdehaan)
  and has contributions from over 5000 users (and growing). Thanks everyone!

  [Ansible](https://www.ansible.com) is sponsored by [Red Hat, Inc.](https://www.redhat.com)



  GNU General Public License v3.0 or later

  See [COPYING](COPYING) to see the full text.


pkgId: 47e9d6fe01b7f89dccb5bd8ac6d48a874739c4e3d0ae43a3a53b0f00e22d0f85
name: python-ansible-core
arch: src
version: 2.18.0
epoch: 0
release: 1
summary: Radically simple IT automation
url: https://ansible.com/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-core-2.18.0-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://img.shields.io/pypi/v/ansible-core.svg)](https://pypi.org/project/ansible-core)
  [![Docs badge](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://docs.ansible.com/ansible/latest/)
  [![Chat badge](https://img.shields.io/badge/chat-IRC-brightgreen.svg)](https://docs.ansible.com/ansible/devel/community/communication.html)
  [![Build Status](https://dev.azure.com/ansible/ansible/_apis/build/status/CI?branchName=devel)](https://dev.azure.com/ansible/ansible/_build/latest?definitionId=20&branchName=devel)
  [![Ansible Code of Conduct](https://img.shields.io/badge/code%20of%20conduct-Ansible-silver.svg)](https://docs.ansible.com/ansible/devel/community/code_of_conduct.html)
  [![Ansible mailing lists](https://img.shields.io/badge/mailing%20lists-Ansible-orange.svg)](https://docs.ansible.com/ansible/devel/community/communication.html#mailing-list-information)
  [![Repository License](https://img.shields.io/badge/license-GPL%20v3.0-brightgreen.svg)](COPYING)
  [![Ansible CII Best Practices certification](https://bestpractices.coreinfrastructure.org/projects/2372/badge)](https://bestpractices.coreinfrastructure.org/projects/2372)



  Ansible is a radically simple IT automation system. It handles
  configuration management, application deployment, cloud provisioning,
  ad-hoc task execution, network automation, and multi-node orchestration. Ansible makes complex
  changes like zero-downtime rolling updates with load balancers easy. More information on the Ansible [website](https://ansible.com/).



  * Have an extremely simple setup process with a minimal learning curve.
  * Manage machines quickly and in parallel.
  * Avoid custom-agents and additional open ports, be agentless by
    leveraging the existing SSH daemon.
  * Describe infrastructure in a language that is both machine and human
    friendly.
  * Focus on security and easy auditability/review/rewriting of content.
  * Manage new remote machines instantly, without bootstrapping any
    software.
  * Allow module development in any dynamic language, not just Python.
  * Be usable as non-root.
  * Be the easiest IT automation system to use, ever.



  You can install a released version of Ansible with `pip` or a package manager. See our
  [installation guide](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html) for details on installing Ansible
  on a variety of platforms.

  Power users and developers can run the `devel` branch, which has the latest
  features and fixes, directly. Although it is reasonably stable, you are more likely to encounter
  breaking changes when running the `devel` branch. We recommend getting involved
  in the Ansible community if you want to run the `devel` branch.



  Join the Ansible forum to ask questions, get help, and interact with the
  community.

  * [Get Help](https://forum.ansible.com/c/help/6): Find help or share your Ansible knowledge to help others.
    Use tags to filter and subscribe to posts, such as the following:
    * Posts tagged with [ansible](https://forum.ansible.com/tag/ansible)
    * Posts tagged with [ansible-core](https://forum.ansible.com/tag/ansible-core)
    * Posts tagged with [playbook](https://forum.ansible.com/tag/playbook)
  * [Social Spaces](https://forum.ansible.com/c/chat/4): Meet and interact with fellow enthusiasts.
  * [News & Announcements](https://forum.ansible.com/c/news/5): Track project-wide announcements including social events.
  * [Bullhorn newsletter](https://docs.ansible.com/ansible/devel/community/communication.html#the-bullhorn): Get release announcements and important changes.

  For more ways to get in touch, see [Communicating with the Ansible community](https://docs.ansible.com/ansible/devel/community/communication.html).



  * Check out the [Contributor's Guide](./.github/CONTRIBUTING.md).
  * Read [Community Information](https://docs.ansible.com/ansible/devel/community) for all
    kinds of ways to contribute to and interact with the project,
    including how to submit bug reports and code to Ansible.
  * Submit a proposed code update through a pull request to the `devel` branch.
  * Talk to us before making larger changes
    to avoid duplicate efforts. This not only helps everyone
    know what is going on, but it also helps save time and effort if we decide
    some changes are needed.



  We document our Coding Guidelines in the [Developer Guide](https://docs.ansible.com/ansible/devel/dev_guide/). We particularly suggest you review:

  * [Contributing your module to Ansible](https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_checklist.html)
  * [Conventions, tips, and pitfalls](https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_best_practices.html)



  * The `devel` branch corresponds to the release actively under development.
  * The `stable-2.X` branches correspond to stable releases.
  * Create a branch based on `devel` and set up a [dev environment](https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_general.html#common-environment-setup) if you want to open a PR.
  * See the [Ansible release and maintenance](https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html) page for information about active branches.



  Based on team and community feedback, an initial roadmap will be published for a major or minor version (ex: 2.7, 2.8).
  The [Ansible Roadmap page](https://docs.ansible.com/ansible/devel/roadmap/) details what is planned and how to influence the roadmap.



  Ansible was created by [Michael DeHaan](https://github.com/mpdehaan)
  and has contributions from over 5000 users (and growing). Thanks everyone!

  [Ansible](https://www.ansible.com) is sponsored by [Red Hat, Inc.](https://www.redhat.com)



  GNU General Public License v3.0 or later

  See [COPYING](COPYING) to see the full text.


pkgId: d59c2b8c5e491a24e3d111398192b40a5b11cab925a20c280fe053839ea0c8c3
name: python-ansible-creator
arch: src
version: 24.10.0
epoch: 0
release: 1
summary: A CLI tool for scaffolding Ansible Content.
url: https://pypi.org/project/ansible-creator/
rpm_license: Apache
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-creator-24.10.0-1.src.rpm
checksum_type: sha256
description:
  [![codecov](https://codecov.io/github/ansible/ansible-creator/graph/badge.svg?token=QZKqxsNNsL)](https://codecov.io/github/ansible/ansible-creator)
  [![PyPI - Status](https://img.shields.io/pypi/status/ansible-creator)](https://pypi.org/project/ansible-creator/)
  [![PyPI - Version](https://img.shields.io/pypi/v/ansible-creator)](https://pypi.org/project/ansible-creator/)
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ansible-creator)
  ![License](https://img.shields.io/github/license/ansible/ansible-creator)
  [![Ansible Code of Conduct](https://img.shields.io/badge/Code%20of%20Conduct-Ansible-silver.svg)](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html)
  [![GitHub issues](https://img.shields.io/github/issues/ansible/ansible-creator)](https://github.com/ansible/ansible-creator/issues)



  A CLI tool for scaffolding all your Ansible Content.



  ```shell
  pip install ansible-creator
  ```

  ```shell
  $ ansible-creator --help
  usage: ansible-creator [-h] command ...

  The fastest way to generate all your ansible content.

  Positional arguments:
   command
    add           Add resources to an existing Ansible project.
    init          Initialize a new Ansible project.

  Options:
   --version      Print ansible-creator version and exit.
   -h     --help  Show this help message and exit
  ```



  Full documentation on how to use `ansible-creator`, including integration with the VS Code Ansible Extension, is available in
  [ansible-creator documentation](https://ansible.readthedocs.io/projects/creator/).



  `ansible-creator` has experimental command line completion for common shells. Please ensure you have the `argcomplete` package installed and configured.

  ```shell
  pip install argcomplete --user
  activate-global-python-argcomplete --user
  ```



  - Scaffold Ansible plugins of your choice with the `create` action.
    Switch to the [create](https://github.com/ansible-community/ansible-creator/tree/create) branch and try it out!



  Refer to the [Get in Touch](https://ansible.readthedocs.io/projects/creator/contributing/#get-in-touch)
  section of the Contributor Guide to find out how to communicate with us.

  You can also find more information in the
  [Ansible communication guide](https://docs.ansible.com/ansible/devel/community/communication.html).



  See [Contributing to ansible-creator](https://ansible.readthedocs.io/projects/creator/contributing/).



  Please see the
  [Ansible Community Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html).



  ansible-creator is released under the Apache License version 2.

  See the [LICENSE](https://github.com/ansible/ansible-creator/blob/main/LICENSE) file for more details.


pkgId: 6dc9055d996147cf6d14f222b196739da2bc0a1cfdf278e52d2aa48a21fc0010
name: python-ansible-deployer
arch: src
version: 0.0.49
epoch: 0
release: 1
summary: Wrapper around ansible-playbook allowing configurable tasks and permissions
url: https://github.com/cinek810/ansible-deployer
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-deployer-0.0.49-1.src.rpm
checksum_type: sha256
description:
  However ansible is a great tool for IT infrastructure automation in certain cases it's hard to use
  it for the complete deployment, because of that tools like ansible-tower/AWX try to wrap it's
  activity making further assumptions on the way ansible code is stored (versioning repository), the
  way it's executed - certain combinations of inventory/playbook/tag options used to achieve specific
  goals. Having it in mind ansible-deployer may be treated as yet another ansible-playbook wrapper, but
  focused on comprehensive command line intrface and easy YAML based configuration.


  - The results of whole excution are logged and saved together with the ansible code state for
  potential review in the future.
  - Only one active ansible-deployer per ansible inventory is allowed, attempt to execute ansible-deployer
  on already locked infrastructure will be rejected.
  - Working directory is setup per every execution of ansible-deployer separately to store the code
  state used. This is done by site configurable hook.
  - It's possible to lock/unlock inventory (defined as --infra --stage pairs) for manual manipulation,
  stopping ansible-deployer from being used.


  - `tasks.yaml` - Configuration of tasks (sets of playbooks to be executed)
  - `infra.yaml` - Configuration of infrastructures and stages of those mapping to ansible inventory


  ```
  ansible-deployer run --task updateUsers --infra webServers --stage prod
  ```


pkgId: 4da737845d81872b389c9600b4c0d58c06915aca706fc8b06050b673509545e1
name: python-ansible-dev-environment
arch: src
version: 24.9.0
epoch: 0
release: 1
summary: A pip-like ansible collection installer.
url: https://pypi.org/project/ansible-dev-environment/
rpm_license: GPL-3.0-only
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-dev-environment-24.9.0-1.src.rpm
checksum_type: sha256
description:
  A pip-like install for ansible collections.



  - Promotes an "ephemeral" development approach
  - Ensures the current development environment is isolated
  - Install all collection python requirements
  - Install all collection test requirements
  - Checks for missing system packages
  - Symlinks the current collection into the current python interpreter's site-packages
  - Install all collection collection dependencies into the current python interpreter's site-packages

  By placing collections into the python site-packages directory they are discoverable by ansible as well as python and pytest.



  - Join the Ansible forum:

    - [Get Help](https://forum.ansible.com/c/help/6): get help or help others. Please add appropriate tags if you start new discussions.
    - [Social Spaces](https://forum.ansible.com/c/chat/4): gather and interact with fellow enthusiasts.
    - [News & Announcements](https://forum.ansible.com/c/news/5): track project-wide announcements including social events.
    - [Bullhorn newsletter](https://docs.ansible.com/ansible/devel/community/communication.html#the-bullhorn): used to announce releases and important changes.

  For more information about communication, see the [Ansible communication guide](https://docs.ansible.com/ansible/devel/community/communication.html).





  ```
  $ pip install ansible-dev-environment --user
  $ git clone <collection_repo>
  $ cd <collection_repo>
  $ ade install -e .\[test] --venv venv
  INFO: Found collection name: network.interfaces from /home/bthornto/github/network.interfaces/galaxy.yml.
  INFO: Creating virtual environment: /home/bthornto/github/network.interfaces/venv
  INFO: Virtual environment: /home/bthornto/github/network.interfaces/venv
  INFO: Using specified interpreter: /home/bthornto/github/network.interfaces/venv/bin/python
  INFO: Requirements file /home/bthornto/github/network.interfaces/requirements.txt is empty, skipping
  INFO: Installing python requirements from /home/bthornto/github/network.interfaces/test-requirements.txt
  INFO: Installing ansible-core.
  INFO: Initializing build directory: /home/bthornto/github/network.interfaces/build
  INFO: Copying collection to build directory using git ls-files.
  INFO: Running ansible-galaxy to build collection.
  INFO: Running ansible-galaxy to install collection and it's dependencies.
  INFO: Removing installed /home/bthornto/github/network.interfaces/venv/lib64/python3.11/site-packages/ansible_collections/network/interfaces
  INFO: Symlinking /home/bthornto/github/network.interfaces/venv/lib64/python3.11/site-packages/ansible_collections/network/interfaces to /home/bthornto/github/network.interfaces
  WARNING: A virtual environment was specified but has not been activated.
  WARNING: Please activate the virtual environment:
  source venv/bin/activate
  ```



  ```
  $ ade uninstall ansible.scm
  INFO     Found collection name: ansible.scm from /home/bthornto/github/ansible.scm/galaxy.yml.
  INFO     Requirements file /home/bthornto/github/ansible.scm/requirements.txt is empty, skipping
  INFO     Uninstalling python requirements from /home/bthornto/github/ansible.scm/test-requirements.txt
  INFO     Removed ansible.utils: /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections/ansible/utils
  INFO     Removed ansible.utils*.info: /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections/ansible.utils-2.10.3.info
  INFO     Removed ansible.scm: /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections/ansible/scm
  INFO     Removed collection namespace root: /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections/ansible
  INFO     Removed collection root: /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections
  ```



  `ade --help`

  `ade install --help`

  `ade uninstall --help`


pkgId: a1c788a1069d4355f58b064e9c657173eb9050575d1312d41e48264eacc0ce32
name: python-ansible-dev-tools
arch: src
version: 24.10.0
epoch: 0
release: 1
summary: Ansible Developtment Tools kit bundles all tools needed for content creation and testing.
url: https://pypi.org/project/ansible-dev-tools/
rpm_license: GPL-3.0-only
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-dev-tools-24.10.0-1.src.rpm
checksum_type: sha256
description:
  <!-- cspell:disable-next-line -->



  The `ansible-dev-tools` python package provides an easy way to install and discover the best tools available to create and test ansible content.

  The curated list of tools installed as part of the Ansible automation developer tools package includes:

  [ansible-core](https://github.com/ansible/ansible): Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to cloud management, in a language that approaches plain English, using SSH, with no agents to install on remote systems.

  [ansible-builder](https://github.com/ansible/ansible-builder): a utility for building Ansible execution environments.

  [ansible-creator](https://github.com/ansible/ansible-creator): a utility for scaffolding Ansible projects and content with leading practices.

  [ansible-lint](https://github.com/ansible/ansible-lint): a utility to identify and correct stylistic errors and anti-patterns in Ansible playbooks and roles.

  [ansible-navigator](https://github.com/ansible/ansible-navigator) a text-based user interface (TUI) for developing and troubleshooting Ansible content with execution environments.

  [ansible-sign](https://github.com/ansible/ansible-sign): a utility for signing and verifying Ansible content.

  [molecule](https://github.com/ansible/molecule): Molecule aids in the development and testing of Ansible content: collections, playbooks and roles

  [pytest-ansible](https://github.com/ansible/pytest-ansible): a pytest testing framework extension that provides additional functionality for testing Ansible module and plugin Python code.

  [tox-ansible](https://github.com/ansible/tox-ansible): an extension to the tox testing utility that provides additional functionality to check Ansible module and plugin Python code under different Python interpreters and Ansible core versions.

  [ansible-dev-environment](https://github.com/ansible/ansible-dev-environment): a utility for building and managing a virtual environment for Ansible content development.



  Refer to our [Communication guide](https://ansible.readthedocs.io/projects/dev-tools/contributor-guide/#talk-to-us) for details.



  `python3 -m pip install ansible-dev-tools`

  A VsCode compatible devcontainer is also available which is a great way to develop ansible content. The image name is [community-ansible-dev-tools](https://ansible.readthedocs.io/projects/dev-tools/container/).



  In addition to installing each of the above tools, `ansible-dev-tools` provides an easy way to show the versions of the content creation tools that make up the current development environment.

  ```
  $ adt --version
  ansible-builder                          <version>
  ansible-core                             <version>
  ansible-creator                          <version>
  ansible-dev-environment                  <version>
  ansible-dev-tools                        <version>
  ansible-lint                             <version>
  ansible-navigator                        <version>
  ansible-sign                             <version>
  molecule                                 <version>
  pytest-ansible                           <version>
  tox-ansible                              <version>
  ```



  The `ansible-dev-tools` package also offers an Ansible Devtools server which can be launched with `adt server`. Currently, this server only supports REST APIs for `ansible-creator`.

  Refer to the [server](https://github.com/ansible/ansible-dev-tools/blob/main/src/ansible_dev_tools/subcommands/server.py) code for available endpoints.

  To run this server from the community dev-tools container, use the following command:

  ```
  $ podman run -d -p 8000:8000 --name=ansible-devtools-server ghcr.io/ansible/community-ansible-dev-tools:latest adt server
  778d0423863c5c161b4bdcb6177d169f0897c597ff084c7a0d3401814d78174f
  $ podman logs -f ansible-devtools-server
  [2024-04-25 17:28:02 +0000] [10] [INFO] Starting gunicorn 22.0.0
  [2024-04-25 17:28:02 +0000] [10] [INFO] Listening at: http://0.0.0.0:8000 (10)
  [2024-04-25 17:28:02 +0000] [10] [INFO] Using worker: sync
  [2024-04-25 17:28:02 +0000] [11] [INFO] Booting worker with pid: 11
  ```

  **Note:** This is primarily for backend integrations and is not intended to be an user-facing functionality.



  For more information, please visit our [documentation](https://ansible.readthedocs.io/projects/dev-tools/) page.


pkgId: 9708ebcf4ffb37aea8263ebb52b6b3942e7a2dc4a689515a928f7f1f286cf306
name: python-ansible-directory-helper
arch: src
version: 0.2.0
epoch: 0
release: 1
summary: A small helper library to manage local directories for Ansible Runner
url: https://github.com/saint-hilaire/ansible-directory-helper
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-directory-helper-0.2.0-1.src.rpm
checksum_type: sha256
description:
  This is a small helper library to make it easier to supply different variables to the
  Ansible Runner library, specifically its _Input Directory Hierarchy_.

  I am building this primarily to help me with [Lampsible](https://github.com/saint-hilaire/lampsible)
  and [Docksible](https://github.com/saint-hilaire/docksible), but anyone who is working with
  Ansible Runner might find this useful.



  Do something like this:

  ```

  ...
  dependencies = [
      ...
      "ansible-directory-helper@git+https://github.com/saint-hilaire/ansible-directory-helper",
      ...
  ]
  ```



  If you are using Ansible Runner to develop tools to automate server installations, you likely
  have many dynamic variables, including but not limited to the system users and host addresses
  of your remote servers (_inventory_, in Ansible's parlance), and numerous other variables
  that your playbooks might expect during runtime.
  Ansible Runner expects these variables to be present in the so called
  _Input Directory Hierarchy_, a predefined directory structure on your local file system.
  To avoid the hassle of managing these files and directories yourself, you can use this
  library, which essentially manages this directory structure for you.

  Example:

  ```python


  from ansible_runner import Runner, RunnerConfig
  from ansible_directory_helper.private_data import PrivateData

  private_data_dir = './.my-tool/tmp'
  project_dir = './my-tool/src/project'

  private_data_obj = PrivateData(private_data_dir)

  private_data_obj.add_inventory_groups([
      'group1',
      'group2',
  ])
  private_data_obj.add_inventory_host('host1.example.com', 'group1')
  private_data_obj.add_inventory_host('host2.example.com', 'group2')
  private_data_obj.set_inventory_ansible_user('host1.example.com', 'user1')
  private_data_obj.set_inventory_ansible_user('host2.example.com', 'user2')
  private_data_obj.write_inventory()

  private_data_obj.set_extravar('some_string', 'Hello, World!')
  private_data_obj.set_extravar('some_list', ['Hello', 'World'])
  private_data_obj.set_extravar('some_dict', {'Hello': 'World'})
  private_data_obj.set_extravar('some_none', None)
  private_data_obj.write_env()







  rc = RunnerConfig(
      private_data_dir=private_data_dir,
      project_dir=project_dir,
      playbook='my-playbook.yml'
  )

  rc.prepare()
  r = Runner(config=rc)
  r.run()



  private_data_obj.cleanup_dir()

  ```




  ```
  python -m unittest
  ```


pkgId: 647fa7cf19cf9fe5709a74db344304a506311f33972fafd6a594bff433f33410
name: python-ansible-doc-extractor
arch: src
version: 0.1.11
epoch: 0
release: 1
summary: Extract Ansible module documentation
url: https://github.com/xlab-steampunk/ansible-doc-extractor
rpm_license: GNU Lesser General Public License v3 or later (LGPLv3+)
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-doc-extractor-0.1.11-1.src.rpm
checksum_type: sha256
description:
  This package contains code for Ansible collection documentation extractor. Its
  main audience are Ansible collection maintainers that would like to publish
  API docs in the HTML form without having to manually copy the data already
  present in the module's metadata.


pkgId: e6f4eb491f939881811efdb1be19ecd98b591f76a137ef7f09774faa072673b7
name: python-ansible-doctor
arch: src
version: 6.0.2
epoch: 0
release: 1
summary: Generate documentation from annotated Ansible roles using templates.
url: https://ansible-doctor.geekdocs.de/
rpm_license: GPL-3.0-only
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-doctor-6.0.2-1.src.rpm
checksum_type: sha256
description:
  Annotation based documentation for your Ansible roles

  [![Build Status](https://ci.thegeeklab.de/api/badges/thegeeklab/ansible-doctor/status.svg)](https://ci.thegeeklab.de/repos/thegeeklab/ansible-doctor)
  [![Docker Hub](https://img.shields.io/badge/dockerhub-latest-blue.svg?logo=docker&logoColor=white)](https://hub.docker.com/r/thegeeklab/ansible-doctor)
  [![Quay.io](https://img.shields.io/badge/quay-latest-blue.svg?logo=docker&logoColor=white)](https://quay.io/repository/thegeeklab/ansible-doctor)
  [![Python Version](https://img.shields.io/pypi/pyversions/ansible-doctor.svg)](https://pypi.org/project/ansible-doctor/)
  [![PyPI Status](https://img.shields.io/pypi/status/ansible-doctor.svg)](https://pypi.org/project/ansible-doctor/)
  [![PyPI Release](https://img.shields.io/pypi/v/ansible-doctor.svg)](https://pypi.org/project/ansible-doctor/)
  [![GitHub contributors](https://img.shields.io/github/contributors/thegeeklab/ansible-doctor)](https://github.com/thegeeklab/ansible-doctor/graphs/contributors)
  [![Source: GitHub](https://img.shields.io/badge/source-github-blue.svg?logo=github&logoColor=white)](https://github.com/thegeeklab/ansible-doctor)
  [![License: GPL-3.0](https://img.shields.io/github/license/thegeeklab/ansible-doctor)](https://github.com/thegeeklab/ansible-doctor/blob/main/LICENSE)

  This project is based on the idea (and at some parts on the code) of [ansible-autodoc](https://github.com/AndresBott/ansible-autodoc) by Andres Bott so credits goes to him for his work.

  _ansible-doctor_ is a simple annotation like documentation generator based on Jinja2 templates. While _ansible-doctor_ comes with a default template called `readme`, it is also possible to write custom templates to customize the output or render the data to other formats like HTML or XML as well.

  _ansible-doctor_ is designed to work within a CI pipeline to complete the existing testing and deployment workflow. Releases are available as Python Packages on [GitHub](https://github.com/thegeeklab/ansible-doctor/releases) or [PyPI](https://pypi.org/project/ansible-doctor/) and as Docker Image on [Docker Hub](https://hub.docker.com/r/thegeeklab/ansible-doctor).

  The full documentation is available at [https://ansible-doctor.geekdocs.de](https://ansible-doctor.geekdocs.de/).



  Special thanks to all [contributors](https://github.com/thegeeklab/ansible-doctor/graphs/contributors). If you would like to contribute,
  please see the [instructions](https://github.com/thegeeklab/ansible-doctor/blob/main/CONTRIBUTING.md).



  This project is licensed under the GPL-3.0 License - see the [LICENSE](https://github.com/thegeeklab/ansible-doctor/blob/main/LICENSE) file for details.


pkgId: 315dc106c778d11ec5cd344affcd625cc6b5c8b383ebd084f8b9bdeef088eb64
name: python-ansible-droplet
arch: src
version: 0.5.0
epoch: 0
release: 1
summary: A cli to Create / Destroy DigitalOcean Droplets
url: https://github.com/FlorianKempenich/ansible-droplet
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-droplet-0.5.0-1.src.rpm
checksum_type: sha256
description:
  Before using the tool, a simple _one-time-setup_ must be done.
  1. Make sure you have a **`ssh` public key**, or [generate one](https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/#generating-a-new-ssh-key)
  1. Make sure you have a **Digital Ocean API token**, or [generate one](https://www.digitalocean.com/community/tutorials/how-to-use-the-digitalocean-api-v2)
  1. **Store in a file** the Digital Ocean API token in clear<sup>[1](#f1)</sup>
  1. Note down:
     * _Path_ to your **ssh public key**
     * _Path_ to the file containing the **Digital Ocean API token**
  1. Run `ansible-droplet config` see below for more detail on the config parameters

  ```
  ansible-droplet create my_droplet
  ```

  * **Create a new Droplet** on your Ditigal Ocean Account
  * **Set it up** with: Swap, new sudo user, glances server
  * **Create a SSH entry** in your `~/.ssh/config` to be able to ssh directly with its name: `ssh my_droplet`
  * **Create a ansible inventory entry** in `~/.ansible-droplet-inventory`

  ```
  ansible-droplet destroy my_droplet
  ```

  * **Destroy the Droplet** from your Ditigal Ocean Account
  * **Remove the SSH entry** from your `~/.ssh/config` to be able to ssh directly with its name: `ssh my_droplet`
  * **Remove the ansible inventory entry** from `~/.ansible-droplet-inventory`


  When running `ansible-droplet config` a couple of parameters must be provided:
  * **Path to SSH key**:
      No brainer, the path to your SSH public key.
      _Default: `~/.ssh/id_rsa.pub`_
  * **Name of SSH key on Digital Ocean**:
      To prevent uploading the public keys each time, Digital Ocean offers to store them under a name. It can be anything.
      _Default: `Main SSH Key`_
  * **Path to Ditigal Ocean token**:
      The path to the file containing your Digital Ocean token in plain text.
      _No defaults_
  * **User on Droplet - Username:**
      Username for the sudo user being created on the Droplet.
      _No defaults_
  * **User on Droplet - Default Password:**
      Default password for the sudo user being created on the Droplet.
      _No defaults_
      _Do not forget to change it after the first login!_

  You can specify the droplet size and specs when creating a new droplet.
  Simply list it after the droplet name:
  ```
  ansible-droplet create my_droplet SPEC_NAME
  ```
  For now, only 3 specs are supported<sup>[2](#f2)</sup>:
  * **Micro**
    * size: "512mb"
    * region: "fra1"
    * image: "ubuntu-16-04-x64"
    * swap: "4GiB"
  * **Mini**
    * size: "1gb"
    * region: "fra1"
    * image: "ubuntu-16-04-x64"
    * swap: "4GiB"
  * **Power**
    * size: "4gb"
    * region: "fra1"
    * image: "ubuntu-16-04-x64"
    * swap: "4GiB"
  The list of specification are stored on the repository: [Droplet Specs](https://github.com/FlorianKempenich/ansible-droplet/tree/master/ansible_droplet/ansible/droplet_specs)

  It is possible to access the Droplet from any other ansible playbook via its **name**:
      - hosts: my_droplet
  For that purpose the file `~/.ansible-droplet-inventory` is created.
  `~/.ansible-droplet-inventory` contains ansible inventory entries for each Droplet created with the `ansible-droplet` tool.
  To use the droplet in a playbook, either:
  * Point your _inventory_  to the `~/.ansible-droplet-inventory` file
  * Point your _inventory_  to a directory containing a symlink to the `~/.ansible-droplet-inventory` file
  From there you can reference the Droplet directly by name.

  You can use multiple configurations to support:
  * Multiple **DigitalOcean accounts**
  * Multiple **SHH Keys**
  * Multiple **default user/password**
  The configuration generated by `ansible-droplet config` is kept in the installation directory.


pkgId: 768be9503b7d219eea99680122b38e29599e4d2d76dd7c75c913f48274fd5298
name: python-ansible-ec2-inventory
arch: src
version: 0.1.8
epoch: 0
release: 1
summary: Extendable Python module for ansible EC2 inventories
url: https://github.com/paperhive/ansible-ec2-inventory
rpm_license: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-ec2-inventory-0.1.8-1.src.rpm
checksum_type: sha256
description:
  This Python module is based on the [original Ansible EC2 inventory
  script](https://raw.githubusercontent.com/ansible/ansible/devel/contrib/inventory/ec2.py)
  that is linked in the [Ansible
  docs](http://docs.ansible.com/ansible/intro_dynamic_inventory.html#example-aws-ec2-external-inventory-script).
  The Python module in this repo fixes a few issues by being
  -   installable via `pip` / PyPi: no need to place code from the Ansible
      repo in your inventory.
  -   extendable for your needs: the class `Ec2Inventory` can be used as a
      base class for customizations.


pkgId: b055ddda2e61a6d1540b112cae714175267f9b421846a006f4c1412915afe6e8
name: python-ansible-generator
arch: src
version: 3.1.1
epoch: 0
release: 1
summary: Ansible project generation tool
url: https://github.com/kkirsche/ansible-generator
rpm_license: BSD-4-Clause
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-generator-3.1.1-1.src.rpm
checksum_type: sha256
description:
  Ansible Generator is a python program designed to simplify creating a new
  ansible playbook by creating the necessary directory structure for the user
  based on ansible's best practices, as outlined in [content organization best practices](https://docs.ansible.com/ansible/2.8/user_guide/playbooks_best_practices.html#content-organization).





  ```
  pip install -U ansible-generator
  ```



  ```
  git clone https://github.com/kkirsche/ansible-generator.git
  cd ansible-generator
  curl -sSL https://install.python-poetry.org | python3 -
  poetry build
  ```





  ```
  usage: ansible-generate [-h] [-a] [-i INVENTORIES [INVENTORIES ...]]
                          [-r ROLES [ROLES ...]] [-v]
                          [-p PROJECTS [PROJECTS ...]] [--version]

  Generate an ansible playbook directory structure

  optional arguments:
    -h, --help            show this help message and exit
    -a, --alternate-layout
    -i INVENTORIES [INVENTORIES ...], --inventories INVENTORIES [INVENTORIES ...]
    -r ROLES [ROLES ...], --roles ROLES [ROLES ...]
    -v, --verbose
    -p PROJECTS [PROJECTS ...], --projects PROJECTS [PROJECTS ...]
    --version             show program's version number and exit
  ```



  - `alternate-layout` --- `False`
  - `verbose` --- `False`
  - `inventories` --- `['production', 'staging']`
  - `roles` --- `[]`
  - `projects` --- `[]`





  ```
  ansible-generate
  ```



  ```
  ansible-generate -p playbook_name
  ```



  ```
  ansible-generate -a
  ```



  ```
  ansible-generate -i production staging lab
  ```



  This portion of the tool relies on Ansible's `ansible-galaxy` command line
  application

  ```
  ansible-generate -r role1 role2
  ```



  ```
  ~/Downloads ❯❯❯ ansible-generate -i production staging lab -r common ubuntu centos -a -p network_security_baseline
  creating directory /Users/example_user/Downloads/network_security_baseline/roles
  creating directory /Users/example_user/Downloads/network_security_baseline/inventories/production/group_vars
  creating directory /Users/example_user/Downloads/network_security_baseline/inventories/production/host_vars
  creating directory /Users/example_user/Downloads/network_security_baseline/inventories/staging/group_vars
  creating directory /Users/example_user/Downloads/network_security_baseline/inventories/staging/host_vars
  creating directory /Users/example_user/Downloads/network_security_baseline/inventories/lab/group_vars
  creating directory /Users/example_user/Downloads/network_security_baseline/inventories/lab/host_vars
  creating file /Users/example_user/Downloads/network_security_baseline/inventories/production/hosts
  creating file /Users/example_user/Downloads/network_security_baseline/inventories/staging/hosts
  creating file /Users/example_user/Downloads/network_security_baseline/inventories/lab/hosts
  creating file /Users/example_user/Downloads/network_security_baseline/site.yml
  ansible galaxy output for role common:
  - common was created successfully
  ansible galaxy output for role ubuntu:
  - ubuntu was created successfully
  ansible galaxy output for role centos:
  - centos was created successfully
  ```


pkgId: 1c9740ad131ad4641bf8ce91a868ac5b6b42c00facbd8b2fbc1640b30231ddb0
name: python-ansible-inventory-grapher
arch: src
version: 2.6.0
epoch: 0
release: 1
summary: Creates graphs representing ansible inventory
url: https://github.com/willthames/ansible-inventory-grapher
rpm_license: GPLv3
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-inventory-grapher-2.6.0-1.src.rpm
checksum_type: sha256
description:
  ansible-inventory-grapher creates a dot file suitable for use by
  graphviz

  Requires:
  * ansible
  * graphviz

  [![PyPI version](https://img.shields.io/pypi/v/ansible-inventory-grapher.svg)](https://pypi.python.org/pypi/ansible-inventory-grapher)
  [![Build Status](https://travis-ci.org/willthames/ansible-inventory-grapher.svg?branch=master)](https://travis-ci.org/willthames/ansible-inventory-grapher)


  ```bash
  pip install ansible-inventory-grapher
  ```


  ```
  Usage: ansible-inventory-grapher [options] pattern1 [pattern2...]

  Options:
    --version             show program's version number and exit
    -h, --help            show this help message and exit
    -i INVENTORY          specify inventory host file [/etc/ansible/hosts]
    -d DIRECTORY          Location to output resulting files [current directory]
    -o FORMAT, --format=FORMAT
                          python format string to name output files (e.g.
                          {}.dot) [defaults to stdout]
    -q, --no-variables    Turn off variable display in default template
    -t TEMPLATE           path to jinja2 template used for creating output
    -T                    print default template
    -a ATTRIBUTES         include top-level graphviz attributes from
                          http://www.graphviz.org/doc/info/attrs.html
                          [rankdir=TB;]
    --ask-vault-pass      prompt for vault password
    --vault-password-file=VAULT_PASSWORD_FILE
                          Location of file with cleartext vault password
  ```

  Using the example inventory in https://github.com/willthames/ansible-ec2-example,
  we can generate the dot files for two of the example web servers using:
  ```bash
  bin/ansible-inventory-grapher -i ../ansible-ec2-example/inventory/hosts \
    prod-web-server-78a prod-web-server-28a \
    -d test --format "test-{hostname}.dot"
  ```

  You can add the `-a` option to insert a string with graphviz attributes (http://www.graphviz.org/doc/info/attrs.html) to apply to the root level of the graph.  Some fun examples:
  ```bash

  -a "rankdir=LR;"


  -a "layout=circo; overlap=false; splines=polyline;\
    node [ style=filled fillcolor=lightgrey ]"


  -a "rankdir=LR; splines=ortho; ranksep=2;\
    node [ width=5 style=filled fillcolor=lightgrey ];\
    edge [ dir=back arrowtail=empty ];"
  ```

  You can replace the default template (which can be seen by passing the `-T` variable to `ansible-inventory-grapher`) with a template file that can be
  passed with the `-t` option.

  The resulting graphs can then be converted to pngs using:
  ```bash
  for f in test/*.dot ; do dot -Tpng -o test/`basename $f .dot`.png $f; done
  ```

  ![Resulting image for prod-web-server-78a](test/prod-web-server-1a.png)

  Or the whole thing can now be done in one pipeline (only works for one pattern)
  straight to image viewer (imagemagick's display in this example)
  ```bash
  bin/ansible-inventory-grapher -i ../ansible-ec2-example/inventory/hosts \
    prod-web-server-1a | dot -Tpng | display png:-
  ```

  This works with valid Ansible patterns now although only hosts and groups have been tested.


pkgId: 5f6a1835a1beb38fc68b4e64a52cf76e2172f8b41b7a3727d4d8b486c0426d99
name: python-ansible-inventory-to-ssh-config
arch: src
version: 1.1.2
epoch: 0
release: 1
summary: Generate ssh config file from Ansible inventory
url: https://github.com/yioda/ansible-inventory-to-ssh-config
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-inventory-to-ssh-config-1.1.2-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://img.shields.io/pypi/v/ansible-core.svg)](https://pypi.org/project/ansible-core)
  [![Pylint check](https://github.com/yioda/ansible-inventory-to-ssh-config/actions/workflows/pylint.yml/badge.svg)](https://github.com/yioda/ansible-inventory-to-ssh-config/actions/workflows/pylint.yml)
  [![PyPI pulish](https://github.com/yioda/ansible-inventory-to-ssh-config/actions/workflows/publish-to-pypi.yml/badge.svg)](https://github.com/yioda/ansible-inventory-to-ssh-config/actions/workflows/publish-to-pypi.yml)


  This is a Python tool for updating the SSH config from the Ansible inventory file.



  - [ansible>=2.10.7](https://pypi.org/project/ansible/2.10.5/)
  - [sshconf==0.2.5](https://pypi.org/project/sshconf/0.2.5/)



  > [!WARNING]
  > This project would install Ansible with the specified version metioned above, be careful that might conflict with the version you are using currently.
  > You might need a separated env for this tool, for example:
  > ``` console
  > $ mkdir foo;cd foo
  > foo$ pyenv virtualenv 3.11.4 bar;pyenv local bar
  > (bar)foo$
  > ```

  ``` bash
  $ pip install ansible-inventory-to-ssh-config
  ```

  From Github:

  ``` bash
  $ pip install git+https://github.com/yioda/ansible-inventory-to-ssh-config
  ```

  Local install

  ``` bash
  $ git clone https://github.com/yioda/ansible-inventory-to-ssh-config.git
  $ pip install .
  ```



  ``` bash
  $ aitsc -h # or ansible-inventory-to-ssh-config -h
  usage: aitsc [-h] [-v] [-o OUTPUT] [-d] [-b] [-O] inventory_file

  positional arguments:
    inventory_file        ansible inventory file

  options:
    -h, --help            show this help message and exit
    -v, --version         show program version number and exit
    -o OUTPUT, --output OUTPUT
                          ssh config output path (default: ~/.ssh/config.ansible)
    -d, --dry-run         show new configurations without updating file
    -b, --with-backup     update with backup
    -O, --override        override whole config, this would remove those hosts undefined in playbook



  $ aitsc $INVENTORY_FILE


  $ aitsc $INVENTORY_FILE --with-backup


  $ aitsc $INVENTORY_FILE -o new_ssh_config


  $ aitsc $INVENTORY_FILE -d


  $ aitsc $INVENTORY_FILE -O
  ```



  ``` bash

  $ cat hosts

  [group_1]
  node1 ansible_ssh_host=192.168.0.5
  node2 ansible_ssh_host=192.168.0.6

  [group_2]
  node3 ansible_host=192.168.0.7 ansible_ssh_private_key_file=~/.ssh/id_rsa_for_ansible
  node4 ansible_host=192.168.0.8 ansible_port=10422 ansible_user=foo


  $ aitsc hosts -o newconfig
  Inventory: hosts
  Target: newconfig


  $ cat new_ssh_config

  Host node1
    HostName 192.168.0.5


  Host node2
    HostName 192.168.0.6


  Host node3
    HostName 192.168.0.7
    IdentityFile ~/.ssh/id_rsa_for_ansible


  Host node4
    HostName 192.168.0.8
    Port 10422
    User foo
  ```

rpm_license:
  MIT License  Copyright (c) 2020 Yioda  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


pkgId: 3afd0c427ab718e8b7afcd740ecfeb4d47b3ef310268dc67c17bb2ac252ea54a
name: python-ansible-later
arch: src
version: 4.0.7
epoch: 0
release: 1
summary: Reviews ansible playbooks, roles and inventories and suggests improvements.
url: https://ansible-later.geekdocs.de/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-later-4.0.7-1.src.rpm
checksum_type: sha256
description:
  Another best practice scanner for Ansible roles and playbooks

  [![Build Status](https://ci.thegeeklab.de/api/badges/thegeeklab/ansible-later/status.svg)](https://ci.thegeeklab.de/repos/thegeeklab/ansible-later)
  [![Docker Hub](https://img.shields.io/badge/dockerhub-latest-blue.svg?logo=docker&logoColor=white)](https://hub.docker.com/r/thegeeklab/ansible-later)
  [![Quay.io](https://img.shields.io/badge/quay-latest-blue.svg?logo=docker&logoColor=white)](https://quay.io/repository/thegeeklab/ansible-later)
  [![Python Version](https://img.shields.io/pypi/pyversions/ansible-later.svg)](https://pypi.org/project/ansible-later/)
  [![PyPI Status](https://img.shields.io/pypi/status/ansible-later.svg)](https://pypi.org/project/ansible-later/)
  [![PyPI Release](https://img.shields.io/pypi/v/ansible-later.svg)](https://pypi.org/project/ansible-later/)
  [![GitHub contributors](https://img.shields.io/github/contributors/thegeeklab/ansible-later)](https://github.com/thegeeklab/ansible-later/graphs/contributors)
  [![Source: GitHub](https://img.shields.io/badge/source-github-blue.svg?logo=github&logoColor=white)](https://github.com/thegeeklab/ansible-later)
  [![License: MIT](https://img.shields.io/github/license/thegeeklab/ansible-later)](https://github.com/thegeeklab/ansible-later/blob/main/LICENSE)

  ansible-later is a best practice scanner and linting tool. In most cases, if you write Ansible roles in a team, it helps to have a coding or best practice guideline in place. This will make Ansible roles more readable for all maintainers and can reduce the troubleshooting time. While ansible-later aims to be a fast and easy to use linting tool for your Ansible resources, it might not be that feature completed as required in some situations. If you need a more in-depth analysis you can take a look at [ansible-lint](https://github.com/ansible-community/ansible-lint).

  ansible-later does **not** ensure that your role will work as expected. For deployment tests you can use other tools like [molecule](https://github.com/ansible/molecule).

  You can find the full documentation at [https://ansible-later.geekdocs.de](https://ansible-later.geekdocs.de/).



  Special thanks to all [contributors](https://github.com/thegeeklab/ansible-later/graphs/contributors). If you would like to contribute,
  please see the [instructions](https://github.com/thegeeklab/ansible-later/blob/main/CONTRIBUTING.md).

  ansible-later is a fork of Will Thames [ansible-review](https://github.com/willthames/ansible-review). Thanks for your work on ansible-review and ansible-lint.



  This project is licensed under the MIT License - see the [LICENSE](https://github.com/thegeeklab/ansible-later/blob/main/LICENSE) file for details.


pkgId: 40fd2197b498007d80e6e2333684b8ebc6855d568034d657862aa3955e91c207
name: python-ansible-lint
arch: src
version: 24.10.0
epoch: 0
release: 1
summary: Checks playbooks for practices and behavior that could potentially be improved
url: https://pypi.org/project/ansible-lint/
rpm_license: GPLv3+
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-lint-24.10.0-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://img.shields.io/pypi/v/ansible-lint.svg)](https://pypi.org/project/ansible-lint)
  [![Ansible-lint rules explanation](https://img.shields.io/badge/Ansible--lint-rules-blue.svg)](https://ansible.readthedocs.io/projects/lint/rules/)
  [![Discussions](https://img.shields.io/badge/Discussions-gray.svg)](https://forum.ansible.com/tag/ansible-lint)
  [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)



  `ansible-lint` checks playbooks for practices and behavior that could
  potentially be improved. As a community-backed project ansible-lint supports
  only the last two major versions of Ansible.

  [Visit the Ansible Lint docs site](https://ansible.readthedocs.io/projects/lint/)



  This action allows you to run `ansible-lint` on your codebase without having to
  install it yourself.

  ```yaml

  name: ansible-lint
  on:
    pull_request:
      branches: ["main", "stable", "release/v*"]
  jobs:
    build:
      name: Ansible Lint # Naming the build is important to use it as a status check
      runs-on: ubuntu-latest
      steps:
        - uses: actions/checkout@v4
        - name: Run ansible-lint
          uses: ansible/ansible-lint@main
          
          with:
            args: ""
            setup_python: "true"
            working_directory: ""
            requirements_file: ""
  ```

  All the arguments are optional and most users should not need them:

  - `args`: Arguments to be passed to ansible-lint command.
  - `setup_python`: If python should be installed. Default is `true`.
  - `working_directory`: The directory where to run ansible-lint from. Default is
    `github.workspace`. That might be needed if you want to lint only a subset of
    your repository.
  - `requirements_file`: Path to the requirements.yml file to install role and
    collection dependencies.

  For more details, see [ansible-lint-action].



  Refer to the
  [Talk to us](https://ansible.readthedocs.io/projects/lint/contributing/#talk-to-us)
  section of the Contributing guide to find out how to get in touch with us.

  You can also find more information in the
  [Ansible communication guide](https://docs.ansible.com/ansible/devel/community/communication.html).



  Please read [Contribution guidelines] if you wish to contribute.



  Please see the
  [Ansible Community Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html).



  The ansible-lint project is distributed as [GPLv3] due to use of [GPLv3] runtime
  dependencies, like `ansible` and `yamllint`.

  For historical reasons, its own code-base remains licensed under a more liberal
  [MIT] license and any contributions made are accepted as being made under
  original [MIT] license.



  ansible-lint was created by [Will Thames] and is now maintained as part of the [Ansible]
  by [Red Hat] project.

  [ansible]: https://ansible.com
  [contribution guidelines]:
    https://ansible.readthedocs.io/projects/lint/contributing
  [gplv3]: https://github.com/ansible/ansible-lint/blob/main/COPYING
  [mit]:
    https://github.com/ansible/ansible-lint/blob/main/docs/licenses/LICENSE.mit.txt
  [red hat]: https://redhat.com
  [will thames]: https://github.com/willthames
  [ansible-lint-action]:
    https://ansible.readthedocs.io/projects/lint/installing/#installing-from-source-code


pkgId: 35bbbdc775c6417b8c4f9c7c51b8b4dfb00da32e453308dcdc1d86d61b0a14ab
name: python-ansible-lint
arch: src
version: 24.9.0
epoch: 0
release: 1
summary: Checks playbooks for practices and behavior that could potentially be improved
url: https://pypi.org/project/ansible-lint/
rpm_license: GPLv3+
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-lint-24.9.0-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://img.shields.io/pypi/v/ansible-lint.svg)](https://pypi.org/project/ansible-lint)
  [![Ansible-lint rules explanation](https://img.shields.io/badge/Ansible--lint-rules-blue.svg)](https://ansible.readthedocs.io/projects/lint/rules/)
  [![Discussions](https://img.shields.io/badge/Discussions-gray.svg)](https://forum.ansible.com/tag/ansible-lint)
  [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)



  `ansible-lint` checks playbooks for practices and behavior that could
  potentially be improved. As a community-backed project ansible-lint supports
  only the last two major versions of Ansible.

  [Visit the Ansible Lint docs site](https://ansible.readthedocs.io/projects/lint/)



  This action allows you to run `ansible-lint` on your codebase without having to
  install it yourself.

  ```yaml

  name: ansible-lint
  on:
    pull_request:
      branches: ["main", "stable", "release/v*"]
  jobs:
    build:
      name: Ansible Lint # Naming the build is important to use it as a status check
      runs-on: ubuntu-latest
      steps:
        - uses: actions/checkout@v4
        - name: Run ansible-lint
          uses: ansible/ansible-lint@main # or version tag instead of 'main'
  ```

  For more details, see [ansible-lint-action].



  Refer to the
  [Talk to us](https://ansible.readthedocs.io/projects/lint/contributing/#talk-to-us)
  section of the Contributing guide to find out how to get in touch with us.

  You can also find more information in the
  [Ansible communication guide](https://docs.ansible.com/ansible/devel/community/communication.html).



  Please read [Contribution guidelines] if you wish to contribute.



  Please see the
  [Ansible Community Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html).



  The ansible-lint project is distributed as [GPLv3] due to use of [GPLv3] runtime
  dependencies, like `ansible` and `yamllint`.

  For historical reasons, its own code-base remains licensed under a more liberal
  [MIT] license and any contributions made are accepted as being made under
  original [MIT] license.



  ansible-lint was created by [Will Thames] and is now maintained as part of the
  [Ansible] by [Red Hat] project.

  [ansible]: https://ansible.com
  [contribution guidelines]:
    https://ansible.readthedocs.io/projects/lint/contributing
  [gplv3]: https://github.com/ansible/ansible-lint/blob/main/COPYING
  [mit]:
    https://github.com/ansible/ansible-lint/blob/main/docs/licenses/LICENSE.mit.txt
  [red hat]: https://redhat.com
  [will thames]: https://github.com/willthames
  [ansible-lint-action]:
    https://ansible.readthedocs.io/projects/lint/installing/#installing-from-source-code


pkgId: 19b35d4642a2e9df0ffe187f29a83454639fa9c801ed224e8adf4e4b9189c180
name: python-ansible-lint-junit
arch: src
version: 0.17.8
epoch: 0
release: 1
summary: ansible-lint to JUnit converter.
url: https://github.com/wasilak/ansible-lint-junit
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-lint-junit-0.17.8-1.src.rpm
checksum_type: sha256
description:
  The [ansible-lint](https://github.com/willthames/ansible-lint) to JUnit converter.

  via pip:
  ```shell
  pip install ansible-lint-junit
  ```

  via pip:
  ```shell
  pip install ansible-lint-junit --upgrade
  ```

  - You can run `ansible-lint` on your playbook(s) and redirect output to pipe
    ```shell
    ansible-lint playbook.yml -p --nocolor | ansible-lint-junit -o ansible-lint.xml
    ```
  - You can use a temporary file to store the output of `ansible-lint`.
    After that run `ansible-lint-junit` and pass generated file to it
    ```shell
    ansible-lint -p --nocolor your_fancy_playbook.yml > ansible-lint.txt
    ansible-lint-junit ansible-lint.txt -o ansible-lint.xml
    ```

  - If there are any lint errors, full JUnit XML will be created.
  - If there are no errors, empty JUnit XML will be created, this is for
    i.e. [Bamboo](https://www.atlassian.com/software/bamboo) JUnit parser plugin compatibility.\
    It will break build if XML is missing or incorrect, and there is really no way of generating XML with *"PASSED"* tests
    in case of linter.

  The ansible-lint-junit project is distributed under the [MIT] license.


pkgId: f95f6e56e41c485365de7a37014a63ea23d1b6738d02245025ca5ba068746dbe
name: python-ansible-mdgen
arch: src
version: 0.1.1
epoch: 0
release: 1
summary: A python package to automate documentation generation for ansible roles.
url: https://github.com/murphypetercl/ansible-mdgen
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-mdgen-0.1.1-1.src.rpm
checksum_type: sha256
description:
  [![<CircleCI>](https://circleci.com/gh/murphypetercl/ansible-mdgen.svg?style=svg)](https://app.circleci.com/pipelines/github/murphypetercl/ansible-mdgen?branch=main)

  Ansible-mdgen is a package used to auto generate documentation for an ansible role.


  ```
  pip install ansible-mdgen
  ```




  Call ansible-mdgen passing in the path to the role
  ```
  ansible-mdgen <path_to_role>
  ```



  See [here](https://murphypetercl.github.io/ansible-mdgen/) for full documentation.



  The idea for this project is based on (and includes some code from) [ansible-autodoc](https://github.com/AndresBott/ansible-autodoc) by Andres Bott so credit to him for his work.


pkgId: 03c5403306c8e62cdd2d284f8dc1d340bef3fa49c9b8b55fc5d2503ed508c14e
name: python-ansible-merge-vars
arch: src
version: 5.0.0
epoch: 0
release: 1
summary: An Ansible action plugin to explicitly merge inventory variables
url: https://github.com/leapfrogonline/ansible-merge-vars
rpm_license: Apache Software License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-merge-vars-5.0.0-1.src.rpm
checksum_type: sha256
description:
  [![Travis](https://img.shields.io/travis/leapfrogonline/ansible-merge-vars.svg)](https://travis-ci.org/leapfrogonline/ansible-merge-vars)
  [![PyPI](https://img.shields.io/pypi/v/ansible_merge_vars.svg)](https://pypi.org/project/ansible_merge_vars/)

  An Ansible plugin to merge all variables in context with a certain suffix (lists
  or dicts only) and create a new variable that contains the result of this merge.
  This is an Ansible action plugin, which is basically an Ansible module that runs
  on the machine running Ansible rather than on the host that Ansible is
  provisioning.

  - [Installation](#installation)
  - [Usage](#usage)
    - [Merging dicts](#merging-dicts)
    - [Merging lists](#merging-lists)
  - [Verbosity](#verbosity)
  - [Example Playbooks](#example-playbooks)
  - [Contributing](#contributing)



  This plugin is tested with the latest release of each minor version of Ansible >=
  `2.1`. Earlier releases of some minor versions may not be compatible.  This
  plugin is not compatible with combinations of older versions of Ansible and
  newer versions of Python.  The following combinations are tested:

  | Python        | Ansible |
  |---------------|---------|
  | 2.7           | >= 2.1  |
  | >= 3.5, < 3.8 | >= 2.5  |
  | >= 3.8        | >= 2.8  |



  1. Pick a name that you want to use to call this plugin in Ansible playbooks.
     This documentation assumes you're using the name `merge_vars`.
  1. `pip install ansible_merge_vars`
  1. Create an `action_plugins` directory in the directory in which you run Ansible.

     By default, Ansible will look for action plugins in an `action_plugins`
     folder adjacent to the running playbook. For more information on this, or to
     change the location where ansible looks for action plugins, see [the Ansible
     docs](https://docs.ansible.com/ansible/dev_guide/developing_plugins.html#distributing-plugins).
  1. Create a file called `merge_vars.py` (or whatever name you picked) in the
     `action_plugins` directory, with one line:

     ```
     from ansible_merge_vars import ActionModule
     ```
  1. For Ansible less than 2.4:

     1. Create the `library` directory if it's not created yet:

        ```
        mkdir -p library
        ```

     1. Create an empty `merge_vars` (or whatever name you picked) file in your `library` directory:

         ```
         touch library/merge_vars
         ```

    Ansible action plugins are usually paired with modules (which run on the
    hosts being provisioned), and Ansible will automatically run an action plugin
    when you call of a module of the same name in a task.  Prior to Ansible 2.4,
    if you want to call an action plugin by its name (`merge_vars`) in our tasks,
    you need an empty file called `merge_vars` in the place where ansible checks
    for custom modules; by default, this is a `library` directory adjacent to the
    running playbook.




  The variables that you want to merge must be suffixed with `__to_merge`.
  They can be defined anywhere in the inventory, or by any other means; as long
  as they're in the context for the running play, they'll be merged.



  Let's say we've got a group `someenvironment` in `group_vars` with a file
  `users.yml`, with these contents:

  ```yaml
  users__someenvironment_users__to_merge:
    user1: bob
    user2: henry
  ```

  and a group `somedatacenter` in `groups_vars` with a file `users.yml`, with these
  contents:

  ```yaml
  users__somedatacenter_users__to_merge:
    user3: sally
    user4: jane
  ```

  and we're running a play against hosts that are in both of those groups.
  Then this task:

  ```yaml
  name: Merge user vars
  merge_vars:
    suffix_to_merge: users__to_merge
    merged_var_name: merged_users
    expected_type: 'dict'
  ```
  will set a `merged_users` var (fact) available to all subsequent tasks that looks like this (if it were to be declared in raw yaml):

  ```yaml
  merged_users:
    user1: bob
    user2: henry
    user3: sally
    user4: jane
  ```

  Note that the variables get merged in alphabetical order of their names, with
  values from later dicts replacing values from earlier dicts. So this setup:

  ```yaml
  users__someenvironment_users__to_merge:
    user1: bob
    user2: jekyll
  ```

  ```yaml
  users__somedatacenter_users__to_merge:
    user2: hyde
    user3: sally
  ```

  ```yaml
  name: Merge user vars
  merge_vars:
    suffix_to_merge: users__to_merge
    merged_var_name: merged_users
    expected_type: 'dict'
  ```

  would set a `merged_users` var that looks like this (if it were to be declared in raw yaml):

  ```yaml
  merged_users:
    user1: bob
    user2: jekyll
    user3: sally
  ```

  With great power comes great responsibility...



  Let's say we've got a `someenvironment` group with an `open_ports.yml` file
  that looks like this:

  ```yaml
  open_ports__someenvironment_open_ports__to_merge:
    - 1
    - 2
    - 3
  ```
  and a `somedatacenter` group with an `open_ports.yml` file that looks like this:

  ```yaml
  open_ports__somedatacenter_open_ports__to_merge:
    - 3
    - 4
    - 5
  ```
  Then this task:

  ```yaml
  name: Merge open ports
  merge_vars:
    suffix_to_merge: open_ports__to_merge
    merged_var_name: merged_ports
    expected_type: 'list'
  ```
  will set a `merged_ports` fact that looks like this (because the variables are merged in alphabetical order):

  ```yaml
  merged_ports:
    - 3
    - 4
    - 5
    - 1
    - 2
  ```

  Notice that `3` only appears once in the merged result. By default, this
  `merge_vars` plugin will de-dupe the resulting merged value. If you don't want
  to de-dupe the merged value, you have to declare the `dedup` argument:

  ```yaml
  name: Merge open ports
  merge_vars:
    suffix_to_merge: open_ports__to_merge
    merged_var_name: merged_ports
    dedup: false
    expected_type: 'list'
  ```
  which will set this fact:

  ```yaml
  merged_ports:
    - 3
    - 4
    - 5
    - 1
    - 2
    - 3
  ```

  A note about `dedup`:
    * It has no effect when the merged vars are dictionaries.



  When dealing with complex data structures, you may want to do a deep (recursive) merge.

  Suppose you have variables that define lists of users to add and select who should have admin privileges:

  ```yaml
  users__someenvironment_users__to_merge:
    users:
      - bob
      - henry
    admins:
      - bob
  ```

  and

  ```yaml
  users__somedatacenter_users__to_merge:
    users:
      - sally
      - jane
    admins:
      - sally
  ```

  You can request a recursive merge with:

  ```yaml
  name: Merge user vars
  merge_vars:
    suffix_to_merge: users__to_merge
    merged_var_name: merged_users
    expected_type: 'dict'
    recursive_dict_merge: True
  ```

  and get:

  ```yaml
  merged_users:
    users:
      - sally
      - jane
      - bob
      - henry
    admins:
      - sally
      - bob
  ```

  When merging dictionaries and the same key exists in both, the recursive merge checks the type of the value:
  * if the entry value is a list, it merges the values as lists (merge_list)
  * if the entry value is a dict, it merges the values (recursively) as dicts (merge_dict)
  * any other values: just replace (use last)



  | parameter | required | default | choices | comments |
  | --------- | -------- | ------- | ------- | -------- |
  | suffix_to_merge | yes |        |         | Suffix of variables to merge.  Must end with `__to_merge`. |
  | merged_var_name | yes |        | <identifier> | Name of the target variable. |
  | expected_type | yes |          | dict, list | Expected type of the merged variable (one of dict or list) |
  | dedup     | no       | yes     | yes / no | Whether to remove duplicates from lists (arrays) after merging. |
  | recursive_dict_merge | no | no | yes / no | Whether to do deep (recursive) merging of dictionaries, or just merge only at top level and replace values |



  Running ansible-playbook with `-v` will cause this plugin to output the order in
  which the keys are being merged:

  ```
  PLAY [Example of merging lists] ************************************************

  TASK [Merge port vars] *********************************************************
  Merging vars in this order: [ u'group1_ports__to_merge', u'group2_ports__to_merge', u'group3_ports__to_merge']
  ok: [localhost] => {"ansible_facts": {"merged_ports": [22, 1111, 443, 2222, 80]}, "changed": false}

  TASK [debug] *******************************************************************
  ok: [localhost] => {
      "merged_ports": [
          22,
          1111,
          443,
          2222,
          80
      ]
  }

  PLAY RECAP *********************************************************************
  localhost                  : ok=6    changed=0    unreachable=0    failed=0
  ```



  There are some example playbooks in the `examples` directory that show how the
  various features work in the context of an actual Ansible playbook.  These
  example playbooks are run as part of the test suite for this plugin; if you
  would like to run them yourself, please see the [Contributing](#contributing)
  section for instructions on how to run the test suite.



  Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.

  There is only one prerequisite to working on this project locally:

    1. You have the Python versions in the [.python-version](.python-version)
       installed and on your path (probably with
       [pyenv](https://github.com/pyenv/pyenv)

  A development workflow may look like this:

    1. Clone this repository
    1. Run `make dev-deps`
       * This will create a virtualenv `venv` in the root of this project and
         install all of the dependencies needed to build a release and run tests.
    1. Run `make test-all`
       * This will use [tox](https://tox.readthedocs.io/en/latest/) to run the
         tests against different combinations of python versions and ansible
         releases.
       * It will also use [a script](bin/generate_tox_config.py) to query
         [PyPI](https://pypi.python.org) for the latest versions of Ansible, and
         add them to the `tox.ini` file if they're not there.

    1. Updating the `tox.ini` file and running all the tests against all of the
       combinations of Ansible releases and Python versions takes a lot of time.
       To run aginst just one combination, you can list all of the combinations
       available and tell tox to only run the tests for one combination:

       ```
      $ venv/bin/tox -l

      py27-ansible-2.1
      py27-ansible-2.2
      py27-ansible-2.3
      py27-ansible-2.4
      py27-ansible-2.5
      py27-ansible-2.6
      ...
      py35-ansible-2.5
      py35-ansible-2.6
      py36-ansible-2.7
      py36-ansible-2.8
      ...

      $ venv/bin/tox -e py36-ansible-2.5
      ...
      ```

  If you have any ideas about things to add or improve, or find any bugs to fix, we're all ears!  Just a few guidelines:

    1. Please write or update tests (either example-based tests, property-based
       tests, or both) for any code that you add, change, or remove.

    1. Please add an example playbook or update an existing example playbook in
       the `examples` folder.  These example playbooks serve as the integration
       tests for this plugin.

    1. Please make sure that `make test-all` exits zero. This runs a code linter,
       all of the tests, and all of the examples against all supported versions
       of Python and Ansible.

    1. If the linting seems too annoying, it probably is! Feel free to do what you
       need to do in the `.pylintrc` at the root of this repository to maintain
       sanity. Add it to your PR, and we'll most likely take it.

  Happy merging!


pkgId: 4b2e0a4c337521c864a079ab00589cf6e2d5463895a0d0546142fb0d726a546d
name: python-ansible-modules-hashivault
arch: src
version: 5.3.0
epoch: 0
release: 1
summary: Ansible Modules for Hashicorp Vault
url: https://github.com/TerryHowe/ansible-modules-hashivault
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-modules-hashivault-5.3.0-1.src.rpm
checksum_type: sha256
description:
  Ansible modules for Hashicorp Vault.
  Install this Ansible module:
  * via ``pip``:
    pip install ansible-modules-hashivault
  * via ``ansible-galaxy`` (requires ``hvac>=2.1.0``):
    ansible-galaxy install 'git+https://github.com/TerryHowe/ansible-modules-hashivault.git'
    Note: The ``hashicorp`` lookup plugin does not work with this last install method (`ansible/ansible#28770 <https://github.com/ansible/ansible/issues/28770>`_).
    You can fallback to the build-in lookup plugin: `hashi_vault <https://docs.ansible.com/ansible/latest/plugins/lookup/hashi_vault.html>`_
  In most cases the Hashicorp Vault modules should be run on localhost.


pkgId: f930c96f68f3d8df8abe100aa2798785c34cc2e2d756dc1b2cd9254e40f07c8f
name: python-ansible-navigator
arch: src
version: 24.10.0
epoch: 0
release: 1
summary: A text-based user interface (TUI) for the Red Hat Ansible Automation Platform
url: https://pypi.org/project/ansible-navigator/
rpm_license: Apache
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-navigator-24.10.0-1.src.rpm
checksum_type: sha256
description:
  [//]: # (DO-NOT-REMOVE-docs-intro-START)

  A text-based user interface (TUI) for Ansible.

  A demo of the interface can be found [on YouTube][YT demo].

  [YT demo]: https://www.youtube.com/watch?v=J9PBKi8ydi4

  [//]: # (DO-NOT-REMOVE-docs-intro-END)



  Refer to the
  [Talk to us](https://ansible.readthedocs.io/projects/navigator/contributing/community/#talk-to-us)
  section of the Contributing guide to find out how to get in touch with us.

  You can also find more information in the
  [Ansible communication guide](https://docs.ansible.com/ansible/devel/community/communication.html).



  Any kind of contribution to this project is very welcome and appreciated,
  whether it is a documentation improvement, [bug report][issue],
  [pull request][pull request] review, or a patch.

  See the [Contributing guidelines][contributing guidelines] for details.

  [issue]:https://github.com/ansible/ansible-navigator/issues
  [pull request]:https://github.com/ansible/ansible-navigator/pulls
  [contributing guidelines]:
  https://ansible.readthedocs.io/projects/navigator/contributing/guidelines/



  Please see the official
  [Ansible Community Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html).





  Getting started with ansible-navigator is as simple as:

  ```
  pip3 install 'ansible-navigator[ansible-core]'
  ansible-navigator --help
  ```

  (Users wishing to install within a virtual environment might find the relevant
  [Python documentation][Python venv doc] useful.)

  By default, ansible-navigator uses a container runtime (`podman` or `docker`,
  whichever it finds first) and runs Ansible within an execution environment
  (a pre-built container image which includes [ansible-core] along with a set
  of Ansible collections.)

  This default behavior can be disabled by starting ansible-navigator with
  `--execution-environment false`. In this case, Ansible and any collections
  needed must be installed manually on the system.

  [ansible-core]: https://docs.ansible.com/ansible-core/devel
  [Python venv doc]: https://docs.python.org/3/library/venv.html

  Additional `Linux`, `macOS` and `Windows with WSL2` installation
  instructions are available in the [Installation guide].

  [Installation guide]:
  https://ansible-navigator.readthedocs.io/installation/



  When running `ansible-navigator` with no arguments, you will be presented with
  the *welcome page*. From this page, you can run playbooks, browse collections,
  explore inventories, read Ansible documentation, and more.

  A full list of key bindings can be viewed by typing `:help`.



  There are two modes in which ansible-navigator can be run:

  * The **interactive** mode, which provides a curses-based user interface and
    allows you to "zoom in" on data in real time, filter it, and navigate between
    various Ansible components; and
  * The **stdout** mode, which does *not* use curses, and simply returns the
    output to the terminal's standard output stream, as Ansible's commands
    would.

  The **interactive** mode is the default and this default can be overwritten by
  passing `--mode stdout` (`-m stdout`) or setting `mode` in
  [configuration][settings documentation].

  [settings documentation]: https://ansible-navigator.readthedocs.io/settings/



  All of ansible-navigator's features can be accessed from the *welcome page*
  described above, but as a shortcut, commands can also be provided directly as
  command-line arguments.

  Some examples:

  * Review and explore available collections: `ansible-navigator collections`
  * Review and explore current Ansible configuration: `ansible-navigator config`
  * Review and explore Ansible documentation:
    `ansible-navigator doc ansible.netcommon.cli_command`
  * Review execution environment images available locally:
    `ansible-navigator images`
  * Review and explore an inventory:
    `ansible-navigator inventory -i inventory.yaml`
  * Run and explore a playbook:
    `ansible-navigator run site.yaml -i inventory.yaml`

  Or using the **stdout** mode described above:

  * Show the current Ansible configuration:
    `ansible-navigator config dump -m stdout`
  * Show documentation: `ansible-navigator doc sudo -t become  -m stdout`

  ... and so on. A full list of subcommands and their relation to Ansible
  commands can be found in the [subcommand documentation].

  [subcommand documentation]:
  https://ansible-navigator.readthedocs.io/subcommands/



  There are several ways to configure ansible-navigator and users and projects
  are free to choose the most convenient method for them. The full hierarchy of
  how various configuration sources are applied can be found in the FAQ mentioned
  below.

  Of note, projects making use of ansible-navigator can include a project-wide
  configuration file with the project. If one is not found, ansible-navigator
  will look for a user-specific configuration file in the user's home directory.
  Details about this can be found in the [settings documentation].



  We maintain a [list of common questions][FAQ] which provides a good
  resource to check if something is tripping you up. We also encourage additions
  to this document for the greater community!

  [FAQ]: https://ansible-navigator.readthedocs.io/faq/



  ansible-navigator is released under the Apache License version 2. See the
  [LICENSE] file for more details.

  [LICENSE]: https://github.com/ansible/ansible-navigator/blob/main/LICENSE


pkgId: 2b12a2534cd864d469f600bf1720cdc8968af1734c7b900e8a011bcf580b1f1d
name: python-ansible-parallel
arch: src
version: 2023.7.26
epoch: 0
release: 1
summary: Run ansible playbooks in parallel.
url: https://git.afpy.org/mdk/ansible-parallel
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-parallel-2023.7.26-1.src.rpm
checksum_type: sha256
description:
  TL;DR:

  ```bash
  pip install ansible-parallel
  ansible-parallel *.yml
  ```

  Executes multiple ansible playbooks in parallel.

  For my usage, running sequentially (using a `site.yml` containing
  multiple `import_playbook`) takes 30mn, running in parallel takes
  10mn.




  `ansible-parallel` runs like `ansible-playbook` but accepts multiple
  playbooks. All remaining options are passed to `ansible-playbook` so
  feel free to run `ansible-parallel --check *.yml` for example.




  It's easy to start:

  ```bash
  $ ansible-parallel *.yml
  ```

  When it runs, it display a live update of what's going on, one line per playbook:

  ```
  web.yml:     TASK [common : Configure Debian repositories] *****************************
  gitlab.yml:  TASK [common : Configure IP failover] *************************************
  staging.yml: TASK [common : Configure Debian repositories] *****************************
  dev.yml:     Done.
  ```

  And when it's done, it prints a full report like:

  ```


  web1.meltygroup.com         : ok=51   changed=0    unreachable=0    failed=0    skipped=12   rescued=0    ignored=0
  web2.meltygroup.com         : ok=51   changed=0    unreachable=0    failed=0    skipped=12   rescued=0    ignored=0
  web3.meltygroup.com         : ok=51   changed=0    unreachable=0    failed=0    skipped=12   rescued=0    ignored=0




  staging1.meltygroup.com         : ok=64   changed=6    unreachable=0    failed=0    skipped=18   rescued=0    ignored=0




  gitlab-runner1.meltygroup.com         : ok=47   changed=0    unreachable=0    failed=0    skipped=13   rescued=0    ignored=0
  gitlab-runner2.meltygroup.com         : ok=47   changed=0    unreachable=0    failed=0    skipped=13   rescued=0    ignored=0
  gitlab-runner3.meltygroup.com         : ok=47   changed=0    unreachable=0    failed=0    skipped=13   rescued=0    ignored=0
  gitlab.meltygroup.com                 : ok=51   changed=0    unreachable=0    failed=0    skipped=12   rescued=0    ignored=0




  dev1.meltygroup.com             : ok=121  changed=0    unreachable=0    failed=0    skipped=22   rescued=0    ignored=0
  dev2.meltygroup.com             : ok=121  changed=0    unreachable=0    failed=0    skipped=22   rescued=0    ignored=0
  ```






  ansible-parallel is only good if you want to keep the push behavior of
  Ansible, but if you're here you may have a lot of playbooks, and
  switching to
  [ansible-pull](https://docs.ansible.com/ansible/latest/cli/ansible-pull.html)
  with a proper reporting system like
  [ARA](https://github.com/ansible-community/ara)




  A quick and dirty way of doing it in 3 lines of bash:

  ```
  ls -1 *.yml | xargs -n1 -P16 sh -c 'ansible-playbook "$$0" > "$$0.log"' ||:
  grep -B1 "^\(changed\|fatal\|failed\):" *.log
  echo *.yml.log | xargs -n1 sed -n -e '/^PLAY RECAP/,$$p'
  ```


pkgId: e56becadb9d78f87acca9a3e82698e40ff163b8ae47096786ba17f8a4ea25ea6
name: python-ansible-pygments
arch: src
version: 0.1.1
epoch: 0
release: 1
summary: Tools for building the Ansible Distribution
url: https://github.com/ansible-community/ansible-pygments
rpm_license: BSD-2-Clause
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-pygments-0.1.1-1.src.rpm
checksum_type: sha256
description:
  [![GitHub Actions CI/CD workflow](https://github.com/ansible-community/ansible-pygments/actions/workflows/ci-cd.yml/badge.svg)](https://github.com/ansible-community/ansible-pygments/actions/workflows/ci-cd.yml)
  [![Codecov badge](https://img.shields.io/codecov/c/github/ansible-community/ansible-pygments)](https://codecov.io/gh/ansible-community/ansible-pygments)

  This project provides a [Pygments] lexer that is able to handle
  [Ansible] output. It may be used anywhere Pygments is integrated.
  The lexer is registered globally under the name `ansible-output`.

  It also provides a [Pygments] style for tools needing to highlight
  code snippets.

  The code is licensed under the terms of the [BSD 2-Clause license].



  Make sure this library in installed in the same env as your [Sphinx]
  automation via `pip install ansible-pygments sphinx`. Then, you should
  be able to use a lexer by its name `ansible-output` in the code blocks
  of your RST documents. For example:

  ```rst
  .. code-block:: ansible-output

      [WARNING]: Unable to find '/nosuchfile' in expected paths (use -vvvvv to see paths)

      ok: [localhost] => {
          "msg": ""
      }
  ```



  It is possible to just set `ansible` in `conf.py` and it will "just
  work", provided that this project is installed alongside [Sphinx] as
  shown above.

  ```python
  pygments_style = 'ansible'
  ```

  [Ansible]: https://www.ansible.com/?utm_medium=github-or-pypi&utm_source=ansible-pygments--readme
  [Pygments]: https://pygments.org
  [Sphinx]: https://www.sphinx-doc.org
  [BSD 2-Clause license]: https://opensource.org/licenses/BSD-2-Clause


pkgId: ecec7d583e5cb64962b48101653cf5dd975dc58d1a54882089b42062dd13bea5
name: python-ansible-role-thales-hsm
arch: src
version: 8.0.0
epoch: 0
release: 1
summary: ansible-role-thales-hsm - Ansible role to configure nShileld Connect HSM clients.
url: https://opendev.org/openstack/ansible-role-thales-hsm
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-role-thales-hsm-8.0.0-1.src.rpm
checksum_type: sha256
description:
  This is a role to manage the client software for Entrust nShield Connect
  Hardware Security Modules (HSMs).
  This repo uses the "Thales" name for historical reasons:
  At the time when this repository was created nShield HSMs were owned by Thales.
  Since then, the nShield line of HSMs have gone through some ownership changes,
  including nCipher for some time, and currently Entrust.
  If you are looking for the ansible role to manage client software for
  Thales Luna Network HSMs you can find it here:
  https://opendev.org/openstack/ansible-role-lunasa-hsm


pkgId: 572606272f5bbd073e51c273ed275e8d7e888053f63f6040958075e1c208a46d
name: python-ansible-runner
arch: src
version: 2.4.0
epoch: 0
release: 1
summary: "Consistent Ansible Python API and CLI with container and process isolation runtime capabilities"
url: https://ansible-runner.readthedocs.io
rpm_license: Apache Software License, Version 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-runner-2.4.0-1.src.rpm
checksum_type: sha256
description:
  [![PyPi](https://img.shields.io/pypi/v/ansible-runner.svg?logo=Python)](https://pypi.org/project/ansible-runner/)
  [![Documentation](https://readthedocs.org/projects/ansible-runner/badge/?version=stable)](https://ansible-runner.readthedocs.io/en/latest/)
  [![Code of Conduct](https://img.shields.io/badge/Code%20of%20Conduct-Ansible-silver.svg)](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html)
  [![Ansible Mailing lists](https://img.shields.io/badge/Mailing%20lists-Ansible-orange.svg)](https://docs.ansible.com/ansible/latest/community/communication.html#mailing-list-information)
  [![codecov](https://codecov.io/gh/ansible/ansible-runner/branch/devel/graph/badge.svg?token=CmCcjBz0pQ)](https://codecov.io/gh/ansible/ansible-runner)
  Ansible Runner is a tool and Python library that helps when interfacing with Ansible directly or as part of another system. Ansible Runner works as a standalone tool, a container image interface, or a Python module that can be imported. The goal is to provide a stable and consistent interface abstraction to Ansible.
  See the [latest documentation] for usage details.


pkgId: 9a33d55731e068576335c72e978f24e867eb357ce0afd203ea61ce0631f12ea6
name: python-ansible-runner-http
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: please add a summary manually as the author left a blank one
url: https://github.com/ansible/ansible-runner-http
rpm_license: Apache
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-runner-http-1.0.0-1.src.rpm
checksum_type: sha256
description:
  This project is a plugin for [Ansible Runner](https://github.com/ansible/ansible-runner) that allows emitting Ansible status and events to HTTP services in the form of `POST` events. This can allow `Runner` to notify other systems as Ansible jobs are run and to deliver key events to that system if it's interested.
  For more details and the latest documentation see: https://ansible-runner.readthedocs.io/en/latest


pkgId: b87186fb88759e5af8c8c8353ea2735bd0733f3734e095206f760133c6a01c55
name: python-ansible-sign
arch: src
version: 0.1.1
epoch: 0
release: 1
summary: Ansible content validation library and CLI
url: https://github.com/ansible/ansible-sign/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-sign-0.1.1-1.src.rpm
checksum_type: sha256
description:
  This is a library and auxillary CLI tool for dealing with Ansible content
  verification.

  It does the following:

  - checksum manifest generation and validation (sha256sum)
  - GPG detached signature generation and validation (using python-gnupg) for
    content

  Note: The API (library) part of this package is not officially supported and
  might change as time goes on. CLI commands should be considered stable within
  major verions (the `X` of version `X.Y.Z`).

  Documentation can be found [here](https://ansible.github.io/ansible-sign/)
  including a
  [rundown/tutorial](https://ansible.github.io/ansible-sign/rundown.html)
  explaining how to use the CLI for basic project signing and verification.


pkgId: 00d02352e499789c38207379fbcbc13170dd5b3af5288e57379962090a27a190
name: python-ansible-tower-cli
arch: src
version: 3.3.9
epoch: 0
release: 1
summary: A CLI tool for Ansible Tower and AWX.
url: https://github.com/ansible/tower-cli
rpm_license: Apache 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-tower-cli-3.3.9-1.src.rpm
checksum_type: sha256
description:
  **tower-cli** is a legacy command line tool for Ansible Tower.
  It is also what the Ansible `tower_*` modules use under the hood. Such as:
  https://docs.ansible.com/ansible/latest/modules/tower_organization_module.html
  These modules are now vendored as part of the AWX collection at:
  https://galaxy.ansible.com/awx/awx
  Supporting correct operation of the modules is the maintenance aim of this
  package.
  Anyone developing new tooling around AWX or Ansible Tower via a Unix command
  line is suggested to use the new CLI.
  https://github.com/ansible/awx/tree/devel/awxkit/awxkit/cli/docs


pkgId: 8e2ca9510bb8dca930d42d79cd3ae00e929cccc78c321f6e5dc0f153b9ee2e8f
name: python-ansible-variables
arch: src
version: 0.8.1
epoch: 0
release: 1
summary: Keep track of Ansible host context variables
url: https://github.com/hille721/ansible-variables
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-variables-0.8.1-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version][pypi-version-badge]][pypi-link]
  [![PyPI platforms][pypi-platforms-badge]][pypi-link]
  [![pre-commit][pre-commit-badge]][pre-commit-link]
  [![Ruff][ruff-badge]][ruff-link]

  The Ansible inventory provides a very powerful framework to declare variables in a hierarchical manner.
  There a lof of different places where a variable can be defined (inventory, host_vars, groups_vars, ...)
  and Ansible will merge them in a specific order
  ([variable precedence](https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_variables.html#understanding-variable-precedence)).

  `ansible-variables` will help to keep track of your host context variables:

  - inventory file or script group vars
  - inventory group_vars/all
  - inventory group_vars/\*
  - inventory file or script host vars
  - inventory host_vars/\*

  Based on one host it will return a list with all variables, values and variable type.

  Tested with `ansible-core` 2.11 - 2.18.



  ```bash
  pip install ansible-variables
  ```



  The command line usage is similar to the official Ansible CLI tools, especially like ansible-inventory,
  thus to see all possible commands and options run

  ```plain
  ansible-variables --help
  ```



  The basic usage is pretty simple, you only need to pass the Ansible hostname to it:

  ```plain
  ansible-variables mywebserver
  ```

  This results in following simple rich formatted output
  ![command_simple](https://github.com/hille721/ansible-variables/raw/main/docs/img/command_simple.png)

  The verbosity can be increased Ansible like with `-v`, `-vvv`, ...

  With `-v` the inventory files where the variable is defined, will be printed. The last file wins.

  ![command_simple_verbose](https://github.com/hille721/ansible-variables/raw/main/docs/img/command_simple_verbose.png)

  With `-vvv` it will also print all files which were considered to look for the variable.



  If you are only interested in one variable you can specify it with `--var`:

  ```plain
  ansible-variables mywebserver --var foo
  ```

  Same es above, the verbosity can also increase here.



  With `--help` you will see which further arguments are possible, e.g. you can set the path to your inventory with `-i`

  ```plain
  ansible-variables mywebserver -i /path/to/inventory
  ```



  This tool is tightly coupled to the Ansible library (`ansible-core`) and simple reuses what is already there.
  The whole structure and implementation was inspired and oriented by the implementation of
  [`ansible-inventory`](https://github.com/ansible/ansible/blob/devel/lib/ansible/cli/inventory.py).

  To get the source and the inventory files in which Ansible will look for a variable,
  we are using a [debug flag](https://github.com/ansible/ansible/blob/devel/lib/ansible/vars/manager.py#L187)
  in Ansible's `get_vars` method.

  As as result, the output of `ansible-variables` can be fully trusted
  as it uses the same methods as Ansible to get the variable precedence.



  - as written in the description, this tool only shows host context variables and
    does not know anything about playbook or role variables or command line options.



  - the screenshots used  in this README where created with [termshot](https://github.com/homeport/termshot)



  This project is licensed under the [GNU General Public License v3.0](https://github.com/hille721/ansible-variables/blob/main/LICENSE)

  [pre-commit-badge]: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white%3E
  [pre-commit-link]: https://pre-commit.com/
  [pypi-link]: https://pypi.org/project/ansible-variables/
  [pypi-platforms-badge]: https://img.shields.io/pypi/pyversions/ansible-variables
  [pypi-version-badge]: https://badge.fury.io/py/ansible-variables.svg
  [ruff-badge]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
  [ruff-link]: https://github.com/astral-sh/ruff

rpm_license:
[cell repeats an earlier one in this file: 34486 characters]


pkgId: 80ed18d04aa8863aa416eaf9b9866a34cf4303468192e910e09de7f739b16572
name: python-ansible-vault
arch: src
version: 2.1.0
epoch: 0
release: 1
summary: R/W an ansible-vault yaml file
url: https://github.com/tomoh1r/ansible-vault
rpm_license: GPLv3
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-vault-2.1.0-1.src.rpm
checksum_type: sha256
description:
  [![Test result badge.](https://github.com/tomoh1r/ansible-vault/workflows/test/badge.svg)](https://github.com/tomoh1r/ansible-vault/actions?query=workflow%3Atest) [![Use black.](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black)

  This project aim to R/W an ansible-vault yaml file.

  **This is not Ansible official project.**

  You can install with pip.

  ```console
  pip install ansible-vault
  ```

  When you have an ansible-vault file, then you can read file. See below.

  ```python
  from ansible_vault import Vault

  vault = Vault('password')
  data = vault.load(open('vault.yml').read())
  ```

  When you have to write data, then you can write data to file. See below.

  ```python
  from ansible_vault import Vault

  vault = Vault('password')
  vault.dump(data, open('vault.yml', 'w'))


  print(vault.dump(data))
  ```

  And see [wiki](https://github.com/tomoh1r/ansible-vault/wiki).


pkgId: c69f908a1c715cfabecda50c082ae16228278262f33be1f0a3d3b7423ecb8755
name: python-ansible-vault-win
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: Stand-alone Ansible Vault CLI that works on Windows
url: https://github.com/sparkyb/ansible-vault-win
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansible-vault-win-1.0.0-1.src.rpm
checksum_type: sha256
description:
  Although Ansible only works on POSIX, you may want to edit your inventories and
  playbooks on Windows. This is a problem if you use any files or values encrypted
  with Ansible Vault. It may be a pain to find a separate POSIX machine just to
  run the ansible-vault CLI to encrypt/decrypt these vault files. This is an
  OS-independent port of a simplified version of just the ansible-vault CLI so
  that you can work with these encrypted files on Windows.
  See the [ansible-vault][] docs for more info.
  [ansible-vault]: https://docs.ansible.com/ansible/latest/cli/ansible-vault.html


pkgId: 3636ea3d3b1a0c79964ebbd91cb1d72c52d48c650c3e9bc1de05933e5f1b40c5
name: python-ansiblecall
arch: src
version: 0.2.2
epoch: 0
release: 1
summary: Call ansible modules with python script
url: https://pypi.org/project/ansiblecall/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansiblecall-0.2.2-1.src.rpm
checksum_type: sha256
description:
  [![CI](https://github.com/cheburakshu/ansible-call/actions/workflows/cicd.yml/badge.svg)](https://github.com/cheburakshu/ansible-call/actions/workflows/cicd.yml)

  `ansible-call` is a Python package that allows you to interact with Ansible modules directly from your Python code. This package is designed to make it easier to call and work with Ansible modules programmatically.



  You can install `ansible-call` from PyPI using pip:

  ```bash
  pip install ansiblecall
  ```



  ```python
  import ansiblecall


  result = ansiblecall.module('ansible.builtin.ping', data='hello')


  print(result)



  ```



  Contributions are welcome! If you'd like to contribute to ansible-call, please fork the repository and submit a pull request with your changes. Make sure to follow the project's coding standards and include tests for any new features.


  `ansible-call` is licensed under the GNU GPLv3 License. See the LICENSE file for more details.


pkgId: c9cd85c6638fa145da241dce828157375eba9d13625ada12d9082eef4958365e
name: python-ansibleguy-webui
arch: src
version: 0.0.24.post3
epoch: 0
release: 1
summary: Basic WebUI for using Ansible
url: https://github.com/ansibleguy/webui
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansibleguy-webui-0.0.24.post3-1.src.rpm
checksum_type: sha256
description:
  Requires Python >=3.10
  ```bash

  python3 -m pip install ansibleguy-webui

  python3 -m ansibleguy-webui
  ```

  Images: [webui](https://hub.docker.com/r/ansible0guy/webui), [webui-unprivileged](https://hub.docker.com/r/ansible0guy/webui-unprivileged), [webui-aws](https://hub.docker.com/r/ansible0guy/webui-aws)
  ```bash
  docker image pull ansible0guy/webui:latest
  docker run -d --name ansible-webui --publish 127.0.0.1:8000:8000 ansible0guy/webui:latest

  docker run -d --name ansible-webui --publish 127.0.0.1:8000:8000 --volume $(pwd)/ansible/data:/data --volume $(pwd)/ansible/play:/play ansible0guy/webui:latest

rpm_license:
  GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007  Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.  Preamble  The GNU General Public License is a free, copyleft license for software and other kinds of works.  The licenses for most software and other practical works are designed to take away your freedom to share and change the works.  By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users.  We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors.  You can apply it to your programs, too.  When we speak of free software, we are referring to freedom, not price.  Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.  To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights.  Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.  For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received.  You must make sure that they, too, receive or can get the source code.  And you must show them these terms so they know their rights.  Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.  For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software.  For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions.  Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so.  This is fundamentally incompatible with the aim of protecting users' freedom to change the software.  The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable.  Therefore, we have designed this version of the GPL to prohibit the practice for those products.  If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.  Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary.  To prevent this, the GPL assures that patents cannot be used to render the program non-free.  The precise terms and conditions for copying, distribution and modification follow.  TERMS AND CONDITIONS  0. Definitions.  "This License" refers to version 3 of the GNU General Public License.  "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.  "The Program" refers to any copyrightable work licensed under this License.  Each licensee is addressed as "you".  "Licensees" and "recipients" may be individuals or organizations.  To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy.  The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work.  A "covered work" means either the unmodified Program or a work based on the Program.  To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy.  Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.  To "convey" a work means any kind of propagation that enables other parties to make or receive copies.  Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.  An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License.  If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.  1. Source Code.  The "source code" for a work means the preferred form of the work for making modifications to it.  "Object code" means any non-source form of a work.  A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.  The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form.  A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.  The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities.  However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work.  For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.  The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.  The Corresponding Source for a work in source code form is that same work.  2. Basic Permissions.  All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met.  This License explicitly affirms your unlimited permission to run the unmodified Program.  The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work.  This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.  You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force.  You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright.  Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.  Conveying under any other circumstances is permitted solely under the conditions stated below.  Sublicensing is not allowed; section 10 makes it unnecessary.  3. Protecting Users' Legal Rights From Anti-Circumvention Law.  No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.  When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.  4. Conveying Verbatim Copies.  You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.  You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.  5. Conveying Modified Source Versions.  You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:  a) The work must carry prominent notices stating that you modified it, and giving a relevant date.  b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7.  This requirement modifies the requirement in section 4 to "keep intact all notices".  c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy.  This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged.  This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.  d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.  A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit.  Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.  6. Conveying Non-Source Forms.  You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:  a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.  b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.  c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source.  This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.  d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge.  You need not require recipients to copy the Corresponding Source along with the object code.  If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source.  Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.  e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.  A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.  A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling.  In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage.  For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product.  A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.  "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source.  The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.  If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information.  But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).  The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed.  Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.  Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.  7. Additional Terms.  "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law.  If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.  When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it.  (Additional permissions may be written to require their own removal in certain cases when you modify the work.)  You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.  Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:  a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or  b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or  c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or  d) Limiting the use for publicity purposes of names of licensors or authors of the material; or  e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or  f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.  All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10.  If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term.  If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.  If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.  Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.  8. Termination.  You may not propagate or modify a covered work except as expressly provided under this License.  Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).  However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.  Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.  Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License.  If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.  9. Acceptance Not Required for Having Copies.  You are not required to accept this License in order to receive or run a copy of the Program.  Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance.  However, nothing other than this License grants you permission to propagate or modify any covered work.  These actions infringe copyright if you do not accept this License.  Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.  10. Automatic Licensing of Downstream Recipients.  Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License.  You are not responsible for enforcing compliance by third parties with this License.  An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations.  If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.  You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License.  For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.  11. Patents.  A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based.  The work thus licensed is called the contributor's "contributor version".  A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version.  For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.  Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.  In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement).  To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.  If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients.  "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.  If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.  A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License.  You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.  Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.  12. No Surrender of Others' Freedom.  If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License.  If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all.  For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.  13. Use with the GNU Affero General Public License.  Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work.  The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.  14. Revised Versions of this License.  The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time.  Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.  Each version is given a distinguishing version number.  If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation.  If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.  If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.  Later license versions may give you additional or different permissions.  However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.  15. Disclaimer of Warranty.  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.  16. Limitation of Liability.  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.  17. Interpretation of Sections 15 and 16.  If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.  END OF TERMS AND CONDITIONS   Basic WebUI for using Ansible Copyright (C) 2024 AnsibleGuy  This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.  This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.  You should have received a copy of the GNU General Public License along with this program.  If not, see <http://www.gnu.org/licenses/>.  E-Mail: contact@ansibleguy.net Web: https://github.com/ansibleguy


pkgId: 7768e0bae355ce647ca94f648fef76580bbb08474d42d9b67b3d423eb05e1044
name: python-ansibler
arch: src
version: 0.3.1
epoch: 0
release: 1
url: https://gitlab.com/megabyte-labs/python/ansibler/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansibler-0.3.1-1.src.rpm
checksum_type: sha256
summary:
  Generate JSON data that describes the dependencies of an Ansible playbook/role. Also, automatically generate OS compatibility charts using Molecule.


pkgId: f31dd74525afca683c73e0db8368468e765b0006ece9019b8de33e63ff6e3f4e
name: python-ansifier
arch: src
version: 0.1.2
epoch: 0
release: 1
summary: A python package used to represent static & animated images as text
url: https://github.com/amminer/ansifier
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansifier-0.1.2-1.src.rpm
checksum_type: sha256
description:
  <h1 align="center">🅰️🅽⚡️ℹ️🎏💈📧Ⓡ</h1>




  - [About](#about)
  - [Prerequisites](#prereqs)
  - [Installation](#installation)
  - [Usage](#usage)
  - [Contributing](#contributing)
  - [Acknowledgements](#acknowledgements)



  `ansifier` is a python package which exposes a simple interface
  for converting image files to utf-8 or ascii encoded strings.

  `ansifier` is able to process both image and video files.
  It can format its colorful output using ANSI escapes for terminals
  or HTML/CSS for web applications, so ansifier is kind of a silly name
  as of version 0.0.12, but wasn't it always?



  In addition to pip requirements, ansifier depends on opencv to process video inputs.
  If opencv binaries aren't installed, trying to process a video will fail.

  Version 0.0.15 and older were tested and should work with Python 3.8 or newer.
  Version 0.1.0 and newer were tested and should work with Python 3.11 or newer.
  Older Python versions may still work, but no testing has been done,
  and I'm not familiar enough with when exactly language features were introduced
  to have an idea of how much older you can go.

  For ansi-escaped output, any modern terminal emulator on any modern operating system should work.
  True color support is currently required for accurate color reproduction, but support for lower
  color spaces is on the to-do list.
  Even in a true color terminal, some environments such as `tmux` and `bpython` may require additional
  configuration to play nice with true color escapes.

  HTML/CSS output uses the [rgb() CSS function](https://www.w3schools.com/cssref/func_rgb.php),
  so practically any browser being run today should handle it fine.



  This package is on PyPi - my first ever! `pip install ansifier` and you should be good to go.
  You can also use `pipx` if that's your thing, it seems cool but I haven't given it a try yet so no
  promises.



  In your preferred shell, running `ansifier` or `python -m ansifier` exposes a command-line interface.

  Here it is in action!


  https://github.com/user-attachments/assets/801ca3d9-15b5-43a5-b0cf-e53451bca7a3


  The CLI takes an extensive array of arguments which are pretty thoroughly documented in the `--help` output.

  ```txt
  usage: ansifier [-h] [-v] [-H HEIGHT] [-W WIDTH] [-c CHARS] [-f INPUT_FORMAT] [-F OUTPUT_FORMAT]
                  [-a ANIMATE] [-L] [-i] [-I]
                  [image_path]

  Takes an image file as input and prints a unicode representation of the image to the terminal.

  positional arguments:
    image_path

  options:
    -h, --help            show this help message and exit
    -v, --version         print version information and exit
    -H HEIGHT, --height HEIGHT
                          Restrict output to this many rows. By default, restricts output to the
                          height of the calling shell's terminal, minus one to account for the
                          prompt line. Multiline prompts not yet considered.
    -W WIDTH, --width WIDTH
                          Restrict output to twice this many columns (it takes ~2 chars to represent
                          a square). By default, restricts output to the width of the calling
                          shell's terminal.
    -c CHARS, --chars CHARS
                          comma-separated sequence of characters to be chosen from when converting
                          regions of the image to text. Should be sorted from more opaque to less
                          opaque in normal usage.There are a few special values for this argument:
                          ["default": "█,▓,▒,░,#,≡,±,+,÷,-, " "blocks": "█,▓,▒,░, " "noblocks":
                          "#,≡,±,+,÷,-, " ]
    -f INPUT_FORMAT, --input-format INPUT_FORMAT
                          mimetype of file being provided as input; must be one of the following:
                          ['image', 'video']. By default, tries to guess, falling back on image.
    -F OUTPUT_FORMAT, --output-format OUTPUT_FORMAT
                          how to format output text - must be one of the following: ['ansi-escaped',
                          'html/css']. Default is ansi-escaped.
    -a ANIMATE, --animate ANIMATE
                          If the input image is animated (.gif), process all keyframes and print
                          them with ANIMATE milliseconds of delay between frames.
    -L, --loop-infinitely
                          With -a, causes the animation to loop until the program is terminated.
    -i, --char-by-intensity
                          Use intensity (instead of transparency) to determine character used to
                          represent an input region.
    -I, --invert-char-selection
                          Invert the effect of transparency (or intensity when using -i) on char
                          selection; useful for images with dark foregrounds and bright backgrounds,
                          for example.
  ```

  To use `ansifier` programatically, you can `from ansifier import ansify`.
  This function takes most of the same arguments that the CLI takes; check the docstring,
  or just read the code, it's pretty concise.

  At the time of writing I also maintain a web frontend for this package's functionality at
  [ansifier.com](https://ansifier.com/), source code [here](https://github.com/amminer/ansifier-web).
  It's in very early development, so few options are available, and the way it's written is a little
  funny to say the least. You can visit this site in a browser to use the graphical frontend
  or send it HTTP POSTs from wherever to use it as an API; see the source README for details.



  If you'd like to help improve ansifier, please open an issue first. This package has transitioned
  from being a learning project for me to being something I hope will be actually useful to others,
  as it has been useful to me. As such, I'm happy to accept quality contributions.



  Thanks to the maintainers of:

  * [Pillow](https://github.com/python-pillow/Pillow) for dealing with reading and scaling images

  * [OpenCV](https://docs.opencv.org/4.5.4/d1/dfb/intro.html) for dealing with reading video files

  * [colorama](https://github.com/tartley/colorama) for dealing with Windows nonsense
    so I don't have to 😄

  * [pytest](https://docs.pytest.org/en/8.0.x/), my beloved

  * [this cool webpage](https://stevenacoffman.github.io/homoglyphs/) that I used to generate the title of this document


pkgId: 25b27b749118d6601ae388602b96c8f8a18d9b7749e55eb6cdd1995a8ab858a0
name: python-ansimarkup
arch: src
version: 2.1.0
epoch: 0
release: 1
summary: Produce colored terminal text with an xml-like markup
url: https://github.com/gvalkov/python-ansimarkup
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansimarkup-2.1.0-1.src.rpm
checksum_type: sha256
description:
  <p>
      <a href="https://pypi.python.org/pypi/ansimarkup"><img alt="pypi version" src="https://img.shields.io/pypi/v/ansimarkup.svg"></a>
      <a href="https://github.com/gvalkov/python-ansimarkup/actions/workflows/tests.yml?query=branch:main"><img alt="Build status" src="https://img.shields.io/github/actions/workflow/status/gvalkov/python-ansimarkup/tests.yml?branch=main"></a>
      <a href="https://github.com/gvalkov/python-ansimarkup/blob/main/LICENSE.txt"><img alt="License" src="https://img.shields.io/pypi/l/ansimarkup"></a>
  </p>

  Ansimarkup is an XML-like markup for producing colored terminal text.

  ``` python
  from ansimarkup import ansiprint as print

  print("<b>bold text</b>"))
  print("<red>red text</red>", "<red,green>red text on a green background</red,green>")
  print("<fg #ffaf00>orange text</fg #ffaf00>")
  ```



  The latest stable version of ansimarkup can be installed from PyPi:

  ``` bash
  python3 -m pip install ansimarkup
  ```





  ``` python
  from ansimarkup import parse, ansiprint


  parse("<b>bold</b> <d>dim</d>")


  ansiprint("<b>bold</b>", "<d>dim</d>")
  ansiprint("<b>bold</b>", "<d>dim</d>", sep=":", file=sys.stderr)
  ```



  ``` python

  parse("<red>red foreground</red>")
  parse("<RED>red background</RED>")
  parse("<fg red>red foreground</fg red>")
  parse("<bg red>red background</bg red>")


  parse("<fg 86>aquamarine foreground</fg 86>")
  parse("<bg #00005f>dark blue background</bg #00005f>")
  parse("<fg 0,95,0>dark green foreground</fg 0,95,0>")


  parse("<r><Y>red text on a yellow foreground</Y></r>")


  parse("<r,y>red text on a yellow background</r,y>")


  parse("<b,r,y>bold red text on a yellow background</b,r,y>")
  parse("<b,r,>bold red text</b,r,>")
  parse("<b,,y>bold regular text on a yellow background</b,,y>")


  parse("<b><element1></element1></b>")
  ```

  For a list of markup tags, please refer to [tags.py].



  Custom tags or overrides for existing tags may be defined by creating a
  new `AnsiMarkup` instance:

  ``` python
  from ansimarkup import AnsiMarkup, parse

  user_tags = {
      
      "info": parse("<b><g>")

      
      "info": "e\x1b[32m\x1b[1m",

      
      "err":  lambda: parse("<r>")

      
      "orange": parse("<fg #d78700>"),

      
      "bold": parse("<dim>")
  }

  am = AnsiMarkup(tags=user_tags)

  am.parse("<info>bold green</info>")
  am.ansiprint("<err>red</err>")


  am("<b>bold</b>") == am.parse("<b>bold</b>")
  ```



  Aligning formatted strings can be challenging because the length of the
  rendered string is different that the number of printable characters.
  Consider this example:

  ``` pycon
  >>> a = '| {:30} |'.format('abc')
  >>> b = '| {:30} |'.format(parse('<b>abc</b>'))
  >>> print(a, b, sep='\n')
  | abc                    |
  | abc                            |
  ```

  This can be addressed by using the `ansistring` function or the
  `AnsiMarkup.string(markup)` method, which has the following useful
  properties:

  ``` pycon
  >>> s = ansistring('<b>abc</b>')
  >>> print(repr(s), '->', s)
  <b>abc</b> -> abc  # abc is printed in bold
  >>> len(s), len(am.parse('<b>abc</b>'), s.delta
  3, 11, 8
  ```

  With the help of the `delta` property, it is easy to align the strings
  in the above example:

  ``` pycon
  >>> s = ansistring('<b>abc</b>')
  >>> a = '| {:{width}} |'.format('abc', width=30)
  >>> b = '| {:{width}} |'.format(s, width=(30 + s.delta))
  >>> print(a, b, sep='\n')
  | abc                            |
  | abc                            |
  ```



  Both `ansiprint()` and `parse()` pass arguments of type `raw` untouched.

  ``` pycon
  >>> from ansimarkup import ansiprint, parse, raw
  >>> ansiprint("<b><r>", raw("<l type='V'>2.0</l>"), "</r></b>")
   <l type='V'>2.0</l>  # printed in bold red (note the leading space caused)

  >>> s = parse("<b><r>", raw("<l type='V'>2.0</l>"), "</r></b>")
  >>> print(s)
  <l type='V'>2.0</l>  # printed in bold red
  ```

  Building a template string may also be sufficient:

  ``` pycon
  >>> from ansimarkup import parse
  >>> s = parse("<b><r>%s</r></b>")
  >>> print(s % "<l type='V'>2.0</l>")
  <l type='V'>2.0</l>  # printed in bold red
  ```




  The default tag separators can be changed by passing the `tag_sep`
  argument to `AnsiMarkup`:

  ``` python
  from ansimarkup import AnsiMarkup

  am = AnsiMarkup(tag_sep="{}")
  am.parse("{b}{r}bold red{/b}{/r}")
  ```

  Markup tags can be removed using the `strip()` method:

  ``` python
  from ansimarkup import AnsiMarkup

  am = AnsiMarkup()
  am.strip("<b><r>bold red</b></r>")
  ```

  The `strict` option instructs the parser to raise `MismatchedTag` if
  opening tags don\'t have corresponding closing tags:

  ``` python
  from ansimarkup import AnsiMarkup

  am = AnsiMarkup(strict=True)
  am.parse("<r><b>bold red")

  ```



  Ansimarkup may also be used on the command-line. This works as if all
  arguments were passed to `ansiprint()`:

      $ python -m ansimarkup
      Usage: python -m ansimarkup [<arg> [<arg> ...]]

      Example usage:
        python -m ansimarkup '<b>Bold</b>' '<r>Red</r>'
        python -m ansimarkup '<b><r>Bold Red</r></b>'
        python -m ansimarkup < input-with-markup.txt
        echo '<b>Bold</b>' | python -m ansimarkup



  Ansimarkup also comes with a formatter for the standard library `logging` module. It can be used as:

  ``` python
  import logging
  from ansimarkup.logformatter import AnsiMarkupFormatter

  log = logging.getLogger()
  hdl = logging.StreamHandler()
  fmt = AnsiMarkupFormatter()
  hdl.setFormatter(fmt)
  log.addHandler(hdl)

  log.info("<b>bold text</b>")
  ```



  Ansimarkup uses the [colorama] library internally, which means that
  Windows support for ansi escape sequences is available by first running:

  ``` python
  import colorama
  colorama.init()
  ```

  For more information on Windows support, consult the \"Usage\" section
  of the [colorama] documentation.



  While the focus of ansimarkup is convenience, it does try to keep
  processing to a minimum. The [benchmark.py] script attempts to benchmark
  different ansi escape code libraries:

      Benchmark 1: <r><b>red bold</b></r>
        colorama     0.1959 μs
        colr         1.8022 μs
        ansimarkup   3.1681 μs
        termcolor    5.3734 μs
        rich         9.0673 μs
        pastel       10.7440 μs
        plumbum      14.0620 μs

      Benchmark 2: <r><b>red bold</b>red</r><b>bold</b>
        colorama     0.5360 μs
        colr         4.5575 μs
        ansimarkup   4.5727 μs
        termcolor    15.8462 μs
        rich         21.2631 μs
        pastel       22.9391 μs
        plumbum      33.1179 μs




  Ansimarkup is a simple wrapper around [colorama]. It does very little in
  the way of validating that markup strings are well-formed. This is a
  conscious decision with the goal of keeping things simple and fast.

  Unbalanced nesting, such as in the following example, will produce
  incorrect output:

      <r><Y>1</r>2</Y>



  -   Many corner cases remain to be fixed.
  -   More elaborate testing. The current test suite mostly covers the \"happy paths\".
  -   Replace `tag_list.index` in `sub_end` with something more efficient (i.e. something like an ordered MultiDict).



  -   [pastel][]: bring colors to your terminal
  -   [plumbum.colors][]: small yet feature-rich library for shell script-like programs in Python
  -   [colr][]: easy terminal colors, with chainable methods
  -   [rich][]: rich text and beautiful formatting in the terminal (see `rich.print()` and `rich.markup.render()`)



  Ansimarkup is released under the terms of the [Revised BSD License].

    [tags.py]: https://github.com/gvalkov/python-ansimarkup/blob/main/ansimarkup/tags.py
    [colorama]: https://pypi.python.org/pypi/colorama
    [benchmark.py]: https://github.com/gvalkov/python-ansimarkup/blob/main/tests/benchmark.py
    [pastel]: https://github.com/sdispater/pastel
    [plumbum.colors]: https://plumbum.readthedocs.io/en/latest/cli.html#colors
    [colr]: https://pypi.python.org/pypi/Colr/
    [rich]: https://github.com/Textualize/rich
    [Revised BSD License]: https://github.com/gvalkov/python-ansimarkup/blob/main/LICENSE.txt

rpm_license:
  BSD 3-Clause License  Copyright (c) 2017, Georgi Valkov. All rights reserved.  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:  * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.  * 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.  * 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.


pkgId: 872990e999a1f820cad5b951eafaf83f9621527a88a3df4d4f5a29c3cef12a18
name: python-ansio
arch: src
version: 0.0.2
epoch: 0
release: 1
summary: AnsI/O module for ansi input & output
url: https://github.com/nineteendo/ansio
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansio-0.0.2-1.src.rpm
checksum_type: sha256
description:
  [![pytest](https://github.com/nineteendo/ansio/actions/workflows/pytest.yml/badge.svg)](https://github.com/nineteendo/ansio/actions/workflows/pytest.yml)

  AnsI/O module for ansi input &amp; output





  ```python
  from ansio import ansi_input, application_keypad, mouse_input
  from ansio.input import InputEvent, get_input_event

  with ansi_input, application_keypad, mouse_input:
      while True:
          event: InputEvent = get_input_event()
          print(event.pressed, repr(event.shortcut))
  ```

  Example output:

  ```none
  True 'alt+shift+a'
  True 'ctrl+a'
  True 'tab'
  True 'shift+up'
  True 'a'
  True 'primary_click'
  False 'primary_click'
  True 'ctrl+primary_click'
  False 'ctrl+primary_click'
  ```



  ```python
  from ansio import ansi_output
  from ansio.colors import blue_bg, invert, italic, yellow

  with ansi_output:
      print(f'Print in {yellow(blue_bg("color"))} and with {italic(invert("styles"))}')
  ```

  Example output:

  ![](assets/ansi_output.png)


pkgId: 4ac582246bf7bfcaf8c6efcbd3041a69a06547a5a340f0fa0156df266e4fce46
name: python-ansiplot
arch: src
version: 0.1.1
epoch: 0
release: 1
summary: Legible console plotting in Python.
url: https://github.com/maniospas/ansiplot
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansiplot-0.1.1-1.src.rpm
checksum_type: sha256
description:
  A small utility library for legible console plotting
  in Python. Plot differences remain mostly legible,
  even for highly overlapping plots and small canvas
  dimensions. ANSI is used to color console output.



  Install the library with `pip install ansiplot`.
  Then prepare some data for drawing three curves:
  two similar cosine functions that lie very close to
  each other, and a sine function.

  ```python
  import math

  x = [(i - 100) * 0.01 for i in range(200)]
  y1 = [math.cos(value * 10) for value in x]
  y2 = [math.cos(value * 10 + 0.1) for value in x]
  y3 = [math.sin(value * 10) for value in x]
  ```

  Now, import `ansiplot` and create a rectangle
  60x10 canvas. This has specific scaling limits,
  but you can also use a `Scaled` canvas to
  automatically detect those limits.
  For demonstration purposes,
  hide the default axis to add some on specific
  locations at the end with `bar` and `hbar`.
  Those forcefully rewrite entries, whereas other
  plots try to preserve some overwritten information
  from being hidden if they can help it.

  ```python
  import ansiplot

  plot = ansiplot.Rect(60, 10,
       xlimits=(-1, 1),
       ylimits=(-1, 1),
       axis=False)
  plot.plot(x, y1, title="cos")
  plot.plot(x, y2, title="cos offset")
  plot.plot(x, y3, title="cos")

  plot.bar(0, (-1, 1), symbol="▕▎");
  plot.hbar((-1, 1), 0, symbol=Pretty.xaxis, title="x=0 or y=0")

  plot.show()
  ```

  ![Example image](example/example.png)

  You can export the text manually with `plot.text()`.
  Both this and the show method can create
  colorless versions (useful for exporting to
  files) and control whether legends are shown.
  Here is an example for exporting the canvas
  to a file:

  ```python
  with open("example.txt", "w") as file:
      file.write(plot.text(colorless=True, legend=True))
  ```


pkgId: 7e9a34ba611a7ac0ed48f29cbcee5d6326f9d7ff3eceeec3b57e3b3c547cc881
name: python-ansiplot
arch: src
version: 0.1.3
epoch: 0
release: 1
summary: Legible console plotting in Python.
url: https://github.com/maniospas/ansiplot
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansiplot-0.1.3-1.src.rpm
checksum_type: sha256
description:
  ![Compatibility](https://github.com/maniospas/ansiplot/actions/workflows/compatibility.yaml/badge.svg)

  <img src="example/example.png" alt="Example image" width="300">

  A small library for legible console plotting in Python.



  Install the library with `pip install ansiplot`.
  Create a canvas of given dimensions
  that scales automatically, and plot on it like so:

  ```python
  import ansiplot

  x = [(i - 100) * 0.01 for i in range(200)]
  square = [value**2 for value in x]

  plot = ansiplot.Scaled(30, 10)
  plot.plot(x, x, title="tautology")
  plot.plot(x, square, title="square")
  plot.show()
  ```

  <img src="example/quickstart.png" alt="Quickstart image" width="200">

  Curve differences remain mostly legible,
  even for overlapping regions and small canvases.
  ANSI is used to color the console output, and any
  numeric iterable -such as numpy arrays- can be given as data.



  [Showcase](example/showcase.md) - see several features in action<br>
  [Documentation](example/docs.md) - available methods


pkgId: bd49cc9d6f6b6246369edd468478f2af03982c443a891f8909ba355fd36dd96a
name: python-ansitoimg
arch: src
version: 2024.2
epoch: 0
release: 1
summary: Convert an ANSI string to an image. Great for adding terminal output into a readme.
url: https://github.com/FHPythonUtils/AnsiToImg
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansitoimg-2024.2-1.src.rpm
checksum_type: sha256
description:
  [![GitHub top language](https://img.shields.io/github/languages/top/FHPythonUtils/AnsiToImg.svg?style=for-the-badge&cacheSeconds=28800)](../../)
  [![Issues](https://img.shields.io/github/issues/FHPythonUtils/AnsiToImg.svg?style=for-the-badge&cacheSeconds=28800)](../../issues)
  [![License](https://img.shields.io/github/license/FHPythonUtils/AnsiToImg.svg?style=for-the-badge&cacheSeconds=28800)](/LICENSE.md)
  [![Commit activity](https://img.shields.io/github/commit-activity/m/FHPythonUtils/AnsiToImg.svg?style=for-the-badge&cacheSeconds=28800)](../../commits/master)
  [![Last commit](https://img.shields.io/github/last-commit/FHPythonUtils/AnsiToImg.svg?style=for-the-badge&cacheSeconds=28800)](../../commits/master)
  [![PyPI Downloads](https://img.shields.io/pypi/dm/AnsiToImg.svg?style=for-the-badge&cacheSeconds=28800)](https://pypistats.org/packages/ansitoimg)
  [![PyPI Total Downloads](https://img.shields.io/badge/dynamic/json?style=for-the-badge&label=total%20downloads&query=%24.total_downloads&url=https%3A%2F%2Fapi%2Epepy%2Etech%2Fapi%2Fv2%2Fprojects%2FAnsiToImg)](https://pepy.tech/project/AnsiToImg)
  [![PyPI Version](https://img.shields.io/pypi/v/AnsiToImg.svg?style=for-the-badge&cacheSeconds=28800)](https://pypi.org/project/AnsiToImg)

  <!-- omit in toc -->


  <img src="readme-assets/icons/name.png" alt="Project Icon" width="750">

  Convert an ANSI string to an image. Great for adding terminal output into a readme.

  - [Example Output](#example-output)
  - [Documentation](#documentation)
  - [Install With PIP](#install-with-pip)
  - [Language information](#language-information)
  	- [Built for](#built-for)
  - [Install Python on Windows](#install-python-on-windows)
  	- [Chocolatey](#chocolatey)
  	- [Windows - Python.org](#windows---pythonorg)
  - [Install Python on Linux](#install-python-on-linux)
  	- [Apt](#apt)
  	- [Dnf](#dnf)
  - [Install Python on MacOS](#install-python-on-macos)
  	- [Homebrew](#homebrew)
  	- [MacOS - Python.org](#macos---pythonorg)
  - [How to run](#how-to-run)
  	- [Windows](#windows)
  	- [Linux/ MacOS](#linux-macos)
  - [Building](#building)
  - [Testing](#testing)
  - [Download Project](#download-project)
  	- [Clone](#clone)
  		- [Using The Command Line](#using-the-command-line)
  		- [Using GitHub Desktop](#using-github-desktop)
  	- [Download Zip File](#download-zip-file)
  - [Community Files](#community-files)
  	- [Licence](#licence)
  	- [Changelog](#changelog)
  	- [Code of Conduct](#code-of-conduct)
  	- [Contributing](#contributing)
  	- [Security](#security)
  	- [Support](#support)
  	- [Rationale](#rationale)



  <img src="readme-assets/terminal.png" alt="winterm" width="450">



  A high-level overview of how the documentation is organized organized will help you know
  where to look for certain things:

  - [Tutorials](/documentation/tutorials) take you by the hand through a series of steps to get
    started using the software. Start here if you’re new.
  - The [Technical Reference](/documentation/reference) documents APIs and other aspects of the
    machinery. This documentation describes how to use the classes and functions at a lower level
    and assume that you have a good high-level understanding of the software.
  <!--
  - The [Help](/documentation/help) guide provides a starting point and outlines common issues that you
    may have.
  -->



  ```python
  pip install ansitoimg
  ```

  Head to https://pypi.org/project/ansitoimg/ for more info





  This program has been written for Python versions 3.8 - 3.11 and has been tested with both 3.8 and
  3.11





  ```powershell
  choco install python
  ```



  To install Python, go to https://www.python.org/downloads/windows/ and download the latest
  version.





  ```bash
  sudo apt install python3.x
  ```



  ```bash
  sudo dnf install python3.x
  ```





  ```bash
  brew install python@3.x
  ```



  To install Python, go to https://www.python.org/downloads/macos/ and download the latest
  version.





  - Module
  	`py -3.x -m [module]` or `[module]` (if module installs a script)

  - File
  	`py -3.x [file]` or `./[file]`



  - Module
  	`python3.x -m [module]` or `[module]` (if module installs a script)

  - File
  	`python3.x [file]` or `./[file]`



  This project uses https://github.com/FHPythonUtils/FHMake to automate most of the building. This
  command generates the documentation, updates the requirements.txt and builds the library artefacts

  Note the functionality provided by fhmake can be approximated by the following

  ```sh
  handsdown  --cleanup -o documentation/reference
  poetry export -f requirements.txt --output requirements.txt
  poetry export -f requirements.txt --with dev --output requirements_optional.txt
  poetry build
  ```

  `fhmake audit` can be run to perform additional checks



  For testing with the version of python used by poetry use

  ```sh
  poetry run pytest
  ```

  Alternatively use `tox` to run tests over python 3.8 - 3.11

  ```sh
  tox
  ```







  1. Press the Clone or download button in the top right
  2. Copy the URL (link)
  3. Open the command line and change directory to where you wish to
  clone to
  4. Type 'git clone' followed by URL in step 2
  	```bash
  	git clone https://github.com/FHPythonUtils/AnsiToImg
  	```

  More information can be found at
  https://help.github.com/en/articles/cloning-a-repository



  1. Press the Clone or download button in the top right
  2. Click open in desktop
  3. Choose the path for where you want and click Clone

  More information can be found at
  https://help.github.com/en/desktop/contributing-to-projects/cloning-a-repository-from-github-to-github-desktop



  1. Download this GitHub repository
  2. Extract the zip archive
  3. Copy/ move to the desired location





  MIT License
  Copyright (c) FredHappyface
  (See the [LICENSE](/LICENSE.md) for more information.)



  See the [Changelog](/CHANGELOG.md) for more information.



  Online communities include people from many backgrounds. The *Project*
  contributors are committed to providing a friendly, safe and welcoming
  environment for all. Please see the
  [Code of Conduct](https://github.com/FHPythonUtils/.github/blob/master/CODE_OF_CONDUCT.md)
   for more information.



  Contributions are welcome, please see the
  [Contributing Guidelines](https://github.com/FHPythonUtils/.github/blob/master/CONTRIBUTING.md)
  for more information.



  Thank you for improving the security of the project, please see the
  [Security Policy](https://github.com/FHPythonUtils/.github/blob/master/SECURITY.md)
  for more information.



  Thank you for using this project, I hope it is of use to you. Please be aware that
  those involved with the project often do so for fun along with other commitments
  (such as work, family, etc). Please see the
  [Support Policy](https://github.com/FHPythonUtils/.github/blob/master/SUPPORT.md)
  for more information.



  The rationale acts as a guide to various processes regarding projects such as
  the versioning scheme and the programming styles used. Please see the
  [Rationale](https://github.com/FHPythonUtils/.github/blob/master/RATIONALE.md)
  for more information.


pkgId: 07dd25429dd791f670de84de9caade99e32862cdc676f65024b7a8d0b24ac8b4
name: python-ansiwrap
arch: src
version: 0.8.4
epoch: 0
release: 1
summary: textwrap, but savvy to ANSI colors and styles
url: https://github.com/jonathaneunice/ansiwrap
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansiwrap-0.8.4-1.src.rpm
checksum_type: sha256
description:
  | |travisci| |version| |versions| |impls| |wheel| |coverage|

  .. |travisci| image:: https://api.travis-ci.org/jonathaneunice/ansiwrap.svg
      :target: http://travis-ci.org/jonathaneunice/ansiwrap

  .. |version| image:: http://img.shields.io/pypi/v/ansiwrap.svg?style=flat
      :alt: PyPI Package latest release
      :target: https://pypi.python.org/pypi/ansiwrap

  .. |versions| image:: https://img.shields.io/pypi/pyversions/ansiwrap.svg
      :alt: Supported versions
      :target: https://pypi.python.org/pypi/ansiwrap

  .. |impls| image:: https://img.shields.io/pypi/implementation/ansiwrap.svg
      :alt: Supported implementations
      :target: https://pypi.python.org/pypi/ansiwrap

  .. |wheel| image:: https://img.shields.io/pypi/wheel/ansiwrap.svg
      :alt: Wheel packaging support
      :target: https://pypi.python.org/pypi/ansiwrap

  .. |coverage| image:: https://img.shields.io/badge/test_coverage-99%25-0000FF.svg
      :alt: Test line coverage
      :target: https://pypi.python.org/pypi/ansiwrap


  ``ansiwrap`` wraps text, like the standard ``textwrap`` module.
  But it also correctly wraps text that contains ANSI control
  sequences that colorize or style text.

  Where ``textwrap`` is fooled by the raw string length of those control codes,
  ``ansiwrap`` is not; it understands that however much those codes affect color
  and display style, they have no logical length.

  The API mirrors the ``wrap``, ``fill``, and ``shorten``
  functions of ``textwrap``. For example::

      from __future__ import print_function
      from colors import *     # ansicolors on PyPI
      from ansiwrap import *

      s = ' '.join([red('this string'),
                    blue('is going on a bit long'),
                    green('and may need to be'),
                    color('shortened a bit', fg='purple')])

      print('-- original string --')
      print(s)
      print('-- now filled --')
      print(fill(s, 20))
      print('-- now shortened / truncated --')
      print(shorten(s, 20, placeholder='...'))

  It also exports several other functions:

  * ``ansilen`` (giving the effective length of a string, ignoring ANSI control codes)
  * ``ansi_terminate_lines`` (propagates control codes though a list of strings/lines
    and terminates each line.)
  * ``strip_color`` (removes ANSI control codes from a string)

  See also the enclosed ``demo.py``.

  .. image:: https://content.screencast.com/users/jonathaneunice/folders/Jing/media/8db64be2-01cc-4da4-b46a-789c53c63b44/00000569.png
     :align: center


pkgId: b1314d15296aa07375a5299e447895ffcbb0dc9f241fd5435747c7b47b0cf59f
name: python-ansq
arch: src
version: 0.3.0
epoch: 0
release: 1
summary: Written with native Asyncio NSQ package
url: https://github.com/list-family/ansq
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansq-0.3.0-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://badge.fury.io/py/ansq.svg)](https://badge.fury.io/py/ansq)
  ![Tests](https://github.com/list-family/ansq/workflows/Test/badge.svg)
  [![Coverage](https://codecov.io/gh/list-family/ansq/branch/master/graph/badge.svg)](https://codecov.io/gh/list-family/ansq)
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ansq)

  Written with native Asyncio NSQ package



  ```commandline
  python -m pip install ansq
  ```


  - `Reader` — high-level class for building consumers with `nsqlookupd` support
  - `Writer` — high-level producer class supporting async publishing of messages to `nsqd`
    over the TCP protocol
  - `NSQConnection` — low-level class representing a TCP connection to `nsqd`:
      - full TCP wrapper
      - one connection for `sub` and `pub`
      - self-healing: when the connection is lost, reconnects, sends identify
        and auth commands, subscribes to previous topic/channel



  - [x] SUB
  - [x] PUB
  - [x] Discovery
  - [ ] Backoff
  - [ ] TLS
  - [ ] Deflate
  - [ ] Snappy
  - [x] Sampling
  - [ ] AUTH





  A simple consumer reads messages from "example_topic" and prints them to stdout.

  ```python
  import asyncio

  import ansq


  async def main():
      reader = await ansq.create_reader(
          topic="example_topic",
          channel="example_channel",
      )

      async for message in reader.messages():
          print(f"Message: {message.body}")
          await message.fin()

      await reader.close()


  if __name__ == "__main__":
      asyncio.run(main())
  ```



  A simple producer sends a "Hello, world!" message to "example_topic".

  ```python
  import asyncio

  import ansq


  async def main():
      writer = await ansq.create_writer()
      await writer.pub(
          topic="example_topic",
          message="Hello, world!",
      )
      await writer.close()


  if __name__ == "__main__":
      asyncio.run(main())
  ```




  Create and activate a development virtual environment.

  ```bash
  python -m venv venv
  source venv/bin/activate
  ```

  Install `ansq` in editable mode and its testing dependencies.

  ```bash
  python -m pip install -e .[testing]
  ```

  Run tests.

  ```bash
  pytest
  ```


pkgId: 5a25aaad1eb508dc1668db6ec24511bc4c373370bb8a5bcd3c5c50df79f42783
name: python-answerrocket-client
arch: src
version: 0.2.22
epoch: 0
release: 1
summary: Python client for interacting with AnswerRocket's skill API
url: https://pypi.org/project/answerrocket-client/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-answerrocket-client-0.2.22-1.src.rpm
checksum_type: sha256
description:
  This is a client library for interacting with an AnswerRocket instance.



  `pip install answerrocket-client`



  ```
  from answer_rocket import AnswerRocketClient
  arc = AnswerRocketClient(url='https://your-answerrocket-instance.com', token='<your_api_token>')


  arc.can_connect()


  import json
  some_resource = json.loads(arc.config.get_artifact('path/to/my/file.json'))


  table_name = "my_table"
  sql = "SELECT sum(my_measure) from "+table_name
  database_id = "my_database_id"

  execute_sql_query_result = arc.data.execute_sql_query(database_id, sql, 100)

  if execute_sql_query_result.success:
      print(execute_sql_query_result.df)
  else:
      print(execute_sql_query_result.error)
      print(execute_sql_query_result.code)


  success, model_reply = arc.chat.completion(messages = "hakuna")

  if success:
      
      reply = model_reply["choices"][0]["message"]["content"]
      print(f"** {reply} **")
  else:
      
      print("Error: "+model_reply)


  messages = [
      { "role":"system",
        "content":"You are an efficient assistant helping a business user answer questions about data."},
      { "role":"user",
        "content":"Can you tell me the average of 150,12,200,54,24 and 32?  are any of these outliers?  Explain why."}
  ]

  def display_streaming_result(str):
      print(str,end="", flush=True)

  success, reply = arc.chat.completion(messages = messages, stream_callback=display_streaming_result)

  ```

  Notes:
  - both the token and instance URL can be provided via the AR_TOKEN and AR_URL env vars instead, respectively. This is recommended to avoid accidentally committing a dev api token in your skill code.   API token is available through the AnswerRocket UI for authenticated users.
  - when running outside of an AnswerRocket installation such as during development, make sure the openai key is set before importing answer_rocket, like os.environ['OPENAI_API_KEY'] = openai_completion_key.  Get this key from OpenAI.



  This repository contains a .envrc file for use with direnv. With that installed you should have a separate python interpreter that direnv's hook will activate for you when you cd into this repository.

  Once you have direnv set up and activating inside the repo, just `make` to install dev dependencies and get started.


  The main point of contact with users of this sdk is `AnswerRocketClient` in `answer_rocket/client.py`. That is, it is what users will import and initialize. Different categories of utilities can be grouped into modules in whatever way is most convenient, but they should be exposed via the client rather than through a separate import so that utilities for authentication, etc., can be reused.

  The client hits an sdk-specific GraphQL API on its target AnswerRocket server. There is a `graphql/schema.py` with generated python types for what queries are available. When needed it can be regenerated with the `generate-gql-schema` makefile target. See the Makefile for details.


pkgId: 24d36cbde92fddb6991ae844feac8afa4e63c05217ea1a60b67d5eaacecbe131
name: python-ansys-acp-core
arch: src
version: 0.1rc1
epoch: 0
release: 1
summary: Python library for ACP - Ansys Composite PrepPost
url: https://acp.docs.pyansys.com
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-acp-core-0.1rc1-1.src.rpm
checksum_type: sha256
description:
  |pyansys| |python| |pypi| |GH-CI| |codecov| |MIT| |black|
  A Python client for Ansys Composite PrepPost (ACP).


pkgId: 27987a9384634b336607bc5b3cb9c2e5f6236301820254b198f8c120a4394ac9
name: python-ansys-additive-widgets
arch: src
version: 0.2.1
epoch: 0
release: 1
summary: Visualization toolkit for parametric additive simulations
url: https://github.com/ansys/pyadditive-widgets
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-additive-widgets-0.2.1-1.src.rpm
checksum_type: sha256
description:
  PyAdditive-Widgets is a widget toolkit for `PyAdditive`_ simulations. It provides
  methods for visualizing the results of parametric additive simulations. Some examples
  include viewing the study as a table, viewing the single bead simulation results as
  a heat map, and viewing the porosity relative density results as a contour plot.


pkgId: e5c59641300bc3570b4e45eb5abe4c3249851f0482709ded19ca0f1300d1b2f4
name: python-ansys-aedt-toolkits-common
arch: src
version: 0.7.0
epoch: 0
release: 1
summary: User interface example repository to create your toolkit.
url: https://pypi.org/project/ansys-aedt-toolkits-common/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-aedt-toolkits-common-0.7.0-1.src.rpm
checksum_type: sha256
description:
  |pyansys| |PythonVersion| |GH-CI| |MIT| |coverage| |black|
  The PyAEDT Common Toolkit provides common methods for creating an Ansys Electronics Desktop (AEDT) toolkit.
  A common toolkit library can bring numerous advantages in the creation and development of toolkits,
  including enhancing efficiency, consistency, and collaboration.
  The PyAEDT Common Toolkit has two main parts: a backend and a User Interface (UI).
  - The backend has some common methods for controlling an AEDT session and also a
    REST API based on `Flask <https://flask.palletsprojects.com/en/2.3.x/>`_.
  - The UI consists of some common methods for creating a desktop app based on
    `Pyside6 <https://doc.qt.io/qtforpython-6/quickstart.html>`_.
  Requirements
  ~~~~~~~~~~~~
  In addition to the runtime dependencies listed in
  `Installation <https://aedt.common.toolkit.docs.pyansys.com/version/dev/getting_started/installation.html>`_,
  the PyAEDT Common Toolkit requires AEDT 2023 R2 or later. This toolkit also supports the AEDT Student
  Version for 2023 R2 or later.
  Documentation and issues
  ~~~~~~~~~~~~~~~~~~~~~~~~
  Documentation for the latest stable release is hosted at
  `PyAEDT Common Toolkit documentation <https://aedt.common.toolkit.docs.pyansys.com/version/stable/index.html>`_.
  In the upper right corner of the documentation's title bar, there is an option for switching from
  viewing the documentation for the latest stable release to viewing the documentation for the
  development version or previously released versions.
  On the `PyAEDT Common Toolkit Issues <https://github.com/ansys/pyaedt-toolkits-common/issues>`_ page, you can
  create issues to report bugs and request new features. On the `Discussions <https://discuss.ansys.com/>`_
  page on the Ansys Developer portal, you can post questions, share ideas, and get community feedback.
  License
  ~~~~~~~
  The PyAEDT Common Toolkit is licensed under the MIT license.
  This toolkit makes no commercial claim over Ansys whatsoever.
  The use of this toolkit requires a legally licensed copy of AEDT.
  For more information, see the `Ansys Electronics <https://www.ansys.com/products/electronics>`_
  page on the Ansys website.


pkgId: 9c64536315e6cadc24b2eed9aaffb8a6708fd6c97eda0f81fbdf97125cb6f9ba
name: python-ansys-edb-core
arch: src
version: 0.1.9
epoch: 0
release: 1
summary: A python wrapper for Ansys Edb service
url: https://github.com/ansys/pyedb-core
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-edb-core-0.1.9-1.src.rpm
checksum_type: sha256
description:
  |pyansys| |python| |pypi| |MIT|
  |GH-CI| |black|
  PyEDB-Core is a Python client for the Electronics Database (EDB), a format for storing
  information describing designs for Ansys Electronic Desktop (AEDT). Using the PyEDB-Core API,
  you can make calls to an EDB server that is running either locally or remotely.
  The EDB server can create, edit, read, and write EDB files to disk. These files can then be
  read into AEDT and their designs simulated.
  Documentation and issues
  ~~~~~~~~~~~~~~~~~~~~~~~~
  Documentation for the latest stable release of PyEDB-Core is hosted at
  `PyEDB-Core documentation <https://edb.core.docs.pyansys.com/version/stable/index.html#>`_.
  The documentation has five sections:
  - `Getting started <https://edb.core.docs.pyansys.com/version/stable/getting_started/index.html#>`_: Describes
    how to install PyEDB-Core in user mode.
  - `User guide <https://edb.core.docs.pyansys.com/version/stable/user_guide/index.html>`_: Describes how to
    use PyEDB-Core.
  - `API reference <https://edb.core.docs.pyansys.com/version/stable/api/index.html>`_: Provides API member descriptions
    and usage examples.
  - `Examples <https://edb.core.docs.pyansys.com/version/stable/examples/index.html>`_: Provides examples showing
    end-to-end workflows for using PyEDB-Core.
  - `Contribute <https://edb.core.docs.pyansys.com/version/stable/contribute.html>`_: Describes how to install
    PyEDB-Core in developer mode and how to contribute to this PyAnsys library.
  In the upper right corner of the documentation's title bar, there is an option for switching from
  viewing the documentation for the latest stable release to viewing the documentation for the
  development version or previously released versions.
  On the `PyEDB-Core Issues <https://github.com/ansys/pyedb-core/issues>`_ page, you can create
  issues to report bugs and request new features. When possible, use these issue templates:
  * Bug report template
  * Feature request template
  * Documentation issue template
  * Example request template
  If your issue does not fit into one of these categories, create your own issue.
  On the `Discussions <https://discuss.ansys.com/>`_ page on the Ansys Developer portal, you can post questions,
  share ideas, and get community feedback.
  To reach the PyAnsys support team, email `pyansys.core@ansys.com <pyansys.core@ansys.com>`_.
  License
  ~~~~~~~
  PyEDB-Core is licensed under the MIT license.
  PyEDB-Core makes no commercial claim over Ansys whatsoever. The use of this Python client requires
  a legally licensed copy of AEDT. For more information, see the
  `Ansys Electronics <https://www.ansys.com/products/electronics>`_ page on the Ansys website.


pkgId: 71c650230c2974968325784b7e68a23052626519b16da33c3688c380da65e4c6
name: python-ansys-geometry-core
arch: src
version: 0.7.4
epoch: 0
release: 1
summary: A python wrapper for Ansys Geometry service
url: https://pypi.org/project/ansys-geometry-core/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-geometry-core-0.7.4-1.src.rpm
checksum_type: sha256
description:
  PyAnsys Geometry is a Python client library for the Ansys Geometry service, as well as other CAD Ansys products
  such as Ansys Discovery and Ansys SpaceClaim.
  Installation
  ^^^^^^^^^^^^
  You can use `pip <https://pypi.org/project/pip/>`_ to install PyAnsys Geometry.
      pip install ansys-geometry-core
  You can also install PyAnsys Geometry from `Conda-Forge <https://anaconda.org/conda-forge/ansys-geometry-core>`_:
     conda install -c conda-forge ansys-geometry-core
  To install the latest development version, run these commands:
     git clone https://github.com/ansys/pyansys-geometry
     cd pyansys-geometry
     pip install -e .
  For more information, see `Getting Started`_.
  Basic usage
  ^^^^^^^^^^^
  This code shows how to import PyAnsys Geometry and use some basic capabilities:
     from ansys.geometry.core import launch_modeler
     from ansys.geometry.core.math import Plane, Point3D, Point2D
     from ansys.geometry.core.misc import UNITS, Distance
     from ansys.geometry.core.sketch import Sketch
     
     origin = Point3D([0, 0, 10])
     plane = Plane(origin, direction_x=[1, 0, 0], direction_y=[0, 1, 0])
     
     sketch = Sketch(plane)
     sketch.circle(Point2D([1, 1]), 30 * UNITS.m)
     sketch.plot()
     
     modeler = launch_modeler()
     
     design = modeler.create_design("ModelingDemo")
     
     body = design.extrude_sketch(
         name="CylinderBody", sketch=sketch, distance=Distance(80, unit=UNITS.m)
     )
     
     design.plot()
     
     file_path = design.export_to_scdocx()
  For comprehensive usage information, see `Examples`_ in the `PyAnsys Geometry documentation`_.
  Documentation and issues
  ^^^^^^^^^^^^^^^^^^^^^^^^
  Documentation for the latest stable release of PyAnsys Geometry is hosted at `PyAnsys Geometry documentation`_.
  In the upper right corner of the documentation's title bar, there is an option for switching from
  viewing the documentation for the latest stable release to viewing the documentation for the
  development version or previously released versions.
  On the `PyAnsys Geometry Issues <https://github.com/ansys/pyansys-geometry/issues>`_ page,
  you can create issues to report bugs and request new features. On the `PyAnsys Geometry Discussions
  <https://github.com/ansys/pyansys-geometry/discussions>`_ page or the `Discussions <https://discuss.ansys.com/>`_
  page on the Ansys Developer portal, you can post questions, share ideas, and get community feedback.
  To reach the project support team, email `pyansys.core@ansys.com <mailto:pyansys.core@ansys.com>`_.


pkgId: d886d7522b549498a99179ca952e8052734da6c49ec4c604c7b76ce22288dcd4
name: python-ansys-grantami-bomanalytics-openapi
arch: src
version: 3.1.0
epoch: 0
release: 1
summary: Autogenerated client library for the Granta MI BoM Analytics Services.
url: https://github.com/ansys/grantami-bomanalytics-openapi
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-grantami-bomanalytics-openapi-3.1.0-1.src.rpm
checksum_type: sha256
description:
  Autogenerated client library for the Granta MI BoM Analytics Services.

  Direct use of this package is unsupported. Use [ansys-grantami-bomanalytics](https://github.com/pyansys/grantami-bomanalytics) instead.

  This Python package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project.




  The library is provided under the terms of the MIT license. The license text is provided in the LICENSE file at the root of the repository.


pkgId: 92c7a780470142ec8d6ca11a61141899fe7a251eddc750c4acee4eba5bcfe7d9
name: python-ansys-grantami-recordlists
arch: src
version: 1.2.1
epoch: 0
release: 1
summary: A python wrapper for the Granta MI RecordLists API
url: https://github.com/ansys/grantami-recordlists
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-grantami-recordlists-1.2.1-1.src.rpm
checksum_type: sha256
description:
     _after-badges
  A Python wrapper for the Granta MI Lists API.
  To avoid ambiguity with the Python object ``list``, lists available via the Granta MI Lists API are referred to as
  ``record lists``. Granta MI users might also know the feature as ``Favorites Lists``.
  Using the Granta MI Lists API requires the user to have necessary permissions on the Granta MI Server. Some
  operations on record lists require additional permissions, specific to record lists. For more information,
  see the Help for the Favorites app in Granta MI.


pkgId: 35dc78d0ec7ec307b723bf4dd4bf5a45c9e61eebe7b2fe14d507baa2f940bb7f
name: python-ansys-grantami-serverapi-openapi
arch: src
version: 4.0.0
epoch: 0
release: 1
summary: Autogenerated client library for the Granta MI Server API.
url: https://github.com/ansys/grantami-serverapi-openapi
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-grantami-serverapi-openapi-4.0.0-1.src.rpm
checksum_type: sha256
description:
  Autogenerated client library for the Granta MI Server API.

  Direct use of this package is unsupported. Use [the PyGranta meta-package](https://grantami.docs.pyansys.com) instead.

  This Python package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project.




  The library is provided under the terms of the MIT license. The license text is provided in the LICENSE file at the root of the repository.


pkgId: eb1101072858475a3dc1e0597dfd94d486dee89497d0ad90635b481a6bd13e07
name: python-ansys-grpc-dpf
arch: src
version: 0.8.1
epoch: 0
release: 1
summary: Package for ansys-grpc-dpf python gRPC client
url: https://pypi.org/project/ansys-grpc-dpf/
rpm_license: Ansys Redistribution License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-grpc-dpf-0.8.1-1.src.rpm
checksum_type: sha256
description:
  This module contains the python gRPC client for ansys-dpf-gate (dependency of ansys-dpf-core). It communicates directly with the DPF server. It allows backward compatibility with old DPF servers (strictly older than Ansys 2022 R2).


pkgId: bc21218d436f6bd3a96d7287ca818561add0a4e669522f7b61077dd30b516f93
name: python-ansys-hps-client
arch: src
version: 0.9.0
epoch: 0
release: 1
summary: A python client for Ansys HPC Platform Services
url: https://github.com/ansys/pyhps
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-hps-client-0.9.0-1.src.rpm
checksum_type: sha256
description:
  |pyansys| |python| |pypi| |GH-CI| |codecov| |MIT| |black| |pre-commit|
  PyHPS is a Python client library for Ansys HPC Platform Services (HPS), which is
  a set of technology components designed to help you manage the execution of simulations
  while making use of your full range of computing assets.
  PyHPS brings Ansys HPS to your Python app. Wrapping around Ansys HPS REST APIs, PyHPS
  allows you to:
  * Create projects and modify existing ones.
  * Monitor and manage jobs.
  * Run your own design exploration algorithms.
  * Retrieve simulation results.


pkgId: d7100f3950ebc9ba92f8e0b2f42ac3f5b5b6f1c0319b2aaac7af6553149c5844
name: python-ansys-mapdl-core
arch: src
version: 0.68.6
epoch: 0
release: 1
summary: A Python wrapper for Ansys MAPDL.
url: https://pypi.org/project/ansys-mapdl-core/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-mapdl-core-0.68.6-1.src.rpm
checksum_type: sha256
description:
  <p align="center">
     <picture>
        <source media="(prefers-color-scheme: dark)" srcset="https://github.com/ansys/pymapdl/blob/main/doc/source/_static/logo_dark.png">
        <source media="(prefers-color-scheme: light)" srcset="https://github.com/ansys/pymapdl/blob/main/doc/source/_static/logo_light.png">
        <img alt="PyMAPDL Logo" src="https://github.com/ansys/pymapdl/blob/main/doc/source/_static/logo_light.png" width="70%">
     </picture>
  </p>

  [![pyansys](https://img.shields.io/badge/Py-Ansys-ffc107.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAABDklEQVQ4jWNgoDfg5mD8vE7q/3bpVyskbW0sMRUwofHD7Dh5OBkZGBgW7/3W2tZpa2tLQEOyOzeEsfumlK2tbVpaGj4N6jIs1lpsDAwMJ278sveMY2BgCA0NFRISwqkhyQ1q/Nyd3zg4OBgYGNjZ2ePi4rB5loGBhZnhxTLJ/9ulv26Q4uVk1NXV/f///////69du4Zdg78lx//t0v+3S88rFISInD59GqIH2esIJ8G9O2/XVwhjzpw5EAam1xkkBJn/bJX+v1365hxxuCAfH9+3b9/+////48cPuNehNsS7cDEzMTAwMMzb+Q2u4dOnT2vWrMHu9ZtzxP9vl/69RVpCkBlZ3N7enoDXBwEAAA+YYitOilMVAAAAAElFTkSuQmCC)](https://docs.pyansys.com/)
  [![pypi](https://img.shields.io/pypi/v/ansys-mapdl-core.svg?logo=python&logoColor=white)](https://pypi.org/project/ansys-mapdl-core/)
  [![PyPIact](https://img.shields.io/pypi/dm/ansys-mapdl-core.svg?label=PyPI%20downloads)](https://pypi.org/project/ansys-mapdl-core/)
  [![codecov](https://codecov.io/gh/ansys/pymapdl/branch/main/graph/badge.svg)](https://codecov.io/gh/ansys/pymapdl)
  [![GH-CI](https://github.com/ansys/pymapdl/actions/workflows/ci.yml/badge.svg)](https://github.com/ansys/pymapdl/actions/workflows/ci.yml)
  [![zenodo](https://zenodo.org/badge/70696039.svg)](https://zenodo.org/badge/latestdoi/70696039)
  [![MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  [![black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat)](https://github.com/psf/black)
  [![pre-commit](https://results.pre-commit.ci/badge/github/ansys/pymapdl/main.svg)](https://results.pre-commit.ci/latest/github/ansys/pymapdl/main)



  The PyMAPDL project supports Pythonic access to MAPDL to be able to
  communicate with the MAPDL process directly from Python. The latest
  [ansys-mapdl-core](https://pypi.org/project/ansys-mapdl-core/) package
  enables a more comprehensive interface with MAPDL and supports:

  -  All the features of the original module (for example, Pythonic commands
     and interactive sessions).

  -  Remote connections to MAPDL from anywhere via gRPC.

  -  Direct access to MAPDL arrays, meshes, and geometry as Python
     objects.

  -  Low-level access to the MAPDL solver through APDL math in a SciPy-
     like interface.

  Here's a quick demo of PyMAPDL within Visual Studio Code:

  ![landing_demo](https://github.com/ansys/pymapdl/raw/main/doc/source/_static/landing_page_demo.gif)

  PyMAPDL works within Jupyter Notebooks, the standard Python console,
  or in batch mode on Windows, Linux, and even Mac OS.



  Documentation for the latest stable release of PyMAPDL is hosted at
  [PyMAPDL Documentation](https://mapdl.docs.pyansys.com).

  In the upper right corner of the documentation's title bar, there is an option for switching from
  viewing the documentation for the latest stable release to viewing the documentation for the
  development version or previously released versions.

  You can also [download](https://mapdl.docs.pyansys.com/version/stable/_static/cheat_sheet.pdf) the
  PyMAPDL cheat sheet. This one-page reference provides syntax rules and commands
  for using PyMAPDL.

  For troubleshooting, visit
  [Troubleshooting PyMAPDL](https://mapdl.docs.pyansys.com/version/stable/user_guide/troubleshoot.html#troubleshooting-pymapdl)

  On the [PyMAPDL Issues](https://github.com/ansys/pymapdl/issues) page,
  you can create issues to report bugs and request new features. On the
  [PyMAPDL Discussions](https://github.com/ansys/pymapdl/discussions) page
  or the  [Discussions](https://discuss.ansys.com/) page on the
  [Ansys Developer portal](https://developer.ansys.com),
  you can post questions, share ideas, and get community feedback.

  To reach the project support team, email [PyAnsys Core team](pyansys.core@ansys.com).
  Unfortunately, this team cannot answer specific library questions or issues. You must
  use the [PyMAPDL Issues](https://github.com/ansys/pymapdl/issues)
  and [PyMAPDL Discussions](https://github.com/ansys/pymapdl/discussions) pages
  for raising issues, request new features, and asking questions.

  You can contribute to PyMAPDL by developing new features, fixing bugs, improving the documentation,
  fixing typos, writing examples, etc.
  To learn how to contribute to PyMAPDL, visit [Contributing section](https://mapdl.docs.pyansys.com/version/stable/getting_started/contribution.html).




  This project was formerly known as ``pyansys``, and we'd like to thank
  all the early adopters, contributors, and users who submitted issues,
  gave feedback, and contributed code through the years.  The
  ``pyansys`` project has been taken up at Ansys and is being leveraged in
  creating new Pythonic, cross-platform, and multi-language service-based
  interfaces for Ansys's products.  Your contributions to
  ``pyansys`` has shaped it into a better solution.

  The ``pyansys`` project is expanding beyond just MAPDL, and while
  there are many new features and changes to the original Python module,
  many steps have been taken to ensure compatibility with legacy code
  while supporting new features.  The original Python module has been
  split up into the following projects and modules:

  -  [ansys.mapdl.core](https://github.com/ansys/pymapdl)
  -  [ansys.mapdl.reader](https://github.com/ansys/pymapdl-reader)
  -  [ansys.mapdl.corba](https://github.com/ansys/pymapdl-corba)

  For more information on each project, visit their GitHub pages.



  If you use [PyMAPDL](https://mapdl.docs.pyansys.com/version/stable/) for
  research and would like to cite the module and source, you can visit
  [pyansys Zenodo](https://zenodo.org/badge/latestdoi/70696039) and generate the
  correct citation.  For example, the BibTex citation is:

  ```bibtex
  @software{alexander_kaszynski_2020_4009467,
    author       = {Alexander Kaszynski},
    title        = {{pyansys: Pythonic interface to MAPDL}},
    month        = nov,
    year         = 2021,
    publisher    = {Zenodo},
    version      = {0.60.3},
    doi          = {10.5281/zenodo.4009466},
    url          = {https://doi.org/10.5281/zenodo.4009466}
  }
  ```

  Because the citation here might not be current, visit the link above to obtain
  the most recent citation.



  [PyMAPDL](https://mapdl.docs.pyansys.com/) is licensed under
  [the MIT license](https://github.com/ansys/pymapdl/blob/main/LICENSE).

  [ansys-mapdl-core](https://pypi.org/project/ansys-mapdl-core/) package
  makes no commercial claim over Ansys whatsoever.
  This tool extends the functionality of ``MAPDL`` by adding a Python
  interface to the MAPDL service without changing the
  core behavior or license of the original software.  The use of the
  interactive APDL control of [PyMAPDL](https://mapdl.docs.pyansys.com/)
  requires a legally licensed local copy of Ansys.

  To get a copy of Ansys, visit [Ansys](https://www.ansys.com/).


pkgId: 942f89f5918f158a5ea6a0724df3985de0f2219781385fbea5758f3a586308db
name: python-ansys-materials-manager
arch: src
version: 0.2.3
epoch: 0
release: 1
summary: Python package to unify material management across the ansys portfolio
url: https://github.com/pyansys/pymaterials-manager
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-materials-manager-0.2.3-1.src.rpm
checksum_type: sha256
description:
  |pyansys| |python| |pypi| |GH-CI| |codecov| |MIT| |black|
  PyMaterials Manager is a Python package for unifying material management across the Ansys portfolio.


pkgId: 8ca8751e7d64186904b31128b33f75af65b5c0dd6711544a68bd559ed5fe431e
name: python-ansys-math-core
arch: src
version: 0.2.0
epoch: 0
release: 1
summary: A Python wrapper for PyAnsys Math libraries.
url: https://github.com/ansys/pyansys-math/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-math-core-0.2.0-1.src.rpm
checksum_type: sha256
description:
  |pyansys| |pypi| |GH-CI| |codecov| |MIT| |black|
  PyAnsys Math is a Python repository holding Ansys mathematical libraries.
  To use them, you must have a local installation of Ansys Mechanical APDL.
  For information on getting a licensed copy of Ansys Mechanical APDL, visit
  the `Ansys web site <https://www.ansys.com/>`_.


pkgId: 684c1f75bd2cb0b3f57f1ba4a98e58fc87076f6151dc4f03732ae0b1e6cc3ec1
name: python-ansys-mechanical-core
arch: src
version: 0.11.10
epoch: 0
release: 1
summary: A python wrapper for Ansys Mechanical
url: https://github.com/ansys/pymechanical
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-mechanical-core-0.11.10-1.src.rpm
checksum_type: sha256
description:
  PyMechanical brings Ansys Mechanical to Python. It enables your Python programs to use
  Mechanical within Python's ecosystem. It includes the ability to:
  - Connect to a remote Mechanical session
  - Embed an instance of Mechanical directly as a Python object


pkgId: 761f35e26cbfae22d15161006a60b0282e93524bb72d2e93448e5666f58e2f2e
name: python-ansys-mechanical-env
arch: src
version: 0.1.8
epoch: 0
release: 1
description: |pyansys| |python| |pypi| |GH-CI| |MIT| |black| |pre-commit-ci|
url: https://github.com/ansys/pymechanical-env
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-mechanical-env-0.1.8-1.src.rpm
checksum_type: sha256
summary:
  A python wrapper for loading environment variables when using PyMechanical embedded instances in Linux.


pkgId: 70e82b33e5ef3c748687ec1bd31b0b1eb56315fec141963bdd9dc27a2a0f442a
name: python-ansys-meshing-prime
arch: src
version: 0.6.2
epoch: 0
release: 1
summary: PyPrimeMesh is a Python client to Ansys Prime Server, which delivers core Ansys meshing technology.
url: https://pypi.org/project/ansys-meshing-prime/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-meshing-prime-0.6.2-1.src.rpm
checksum_type: sha256
description:
  [![pyansys](https://img.shields.io/badge/Py-Ansys-ffc107.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAABDklEQVQ4jWNgoDfg5mD8vE7q/3bpVyskbW0sMRUwofHD7Dh5OBkZGBgW7/3W2tZpa2tLQEOyOzeEsfumlK2tbVpaGj4N6jIs1lpsDAwMJ278sveMY2BgCA0NFRISwqkhyQ1q/Nyd3zg4OBgYGNjZ2ePi4rB5loGBhZnhxTLJ/9ulv26Q4uVk1NXV/f///////69du4Zdg78lx//t0v+3S88rFISInD59GqIH2esIJ8G9O2/XVwhjzpw5EAam1xkkBJn/bJX+v1365hxxuCAfH9+3b9/+////48cPuNehNsS7cDEzMTAwMMzb+Q2u4dOnT2vWrMHu9ZtzxP9vl/69RVpCkBlZ3N7enoDXBwEAAA+YYitOilMVAAAAAElFTkSuQmCC)](https://docs.pyansys.com/)
  [![PyPI - Version](https://img.shields.io/pypi/v/ansys-meshing-prime)](https://pypi.org/project/ansys-meshing-prime/)
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ansys-meshing-prime)](https://pypi.org/project/ansys-meshing-prime/)
  [![GH-CI](https://github.com/ansys/pyprimemesh/actions/workflows/ci_cd.yml/badge.svg)](https://github.com/ansys/pyprimemesh/actions/workflows/ci_cd.yml)
  [![MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  [![black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat)](https://github.com/psf/black)
  [![PyPI - Downloads](https://img.shields.io/pypi/dm/ansys-meshing-prime)](https://pypi.org/project/ansys-meshing-prime/)



  PyPrimeMesh is a Python client to Ansys Prime Server, which
  delivers core Ansys meshing technology.



  Documentation for the latest stable release of PyPrimeMesh is hosted at
  [PyPrimeMesh documentation](https://prime.docs.pyansys.com/version/stable/).

  In the upper right corner of the documentation's title bar, there is an option
  for switching from viewing the documentation for the latest stable release
  to viewing the documentation for the development version or previously
  released versions.

  You can also [view](https://cheatsheets.docs.pyansys.com/pyprimemesh_cheat_sheet.png) or
  [download](https://cheatsheets.docs.pyansys.com/pyprimemesh_cheat_sheet.pdf) the
  PyPrimeMesh cheat sheet. This one-page reference provides syntax rules and commands
  for using PyPrimeMesh.

  On the [PyPrimeMesh Issues](https://github.com/ansys/pyprimemesh/issues) page,
  you can create issues to report bugs and request new features. On the
  [PyPrimeMesh Discussions](https://github.com/ansys/pyprimemesh/discussions) page or the
  [Discussions](https://discuss.ansys.com/) page on the Ansys Developer portal,
  you can post questions, share ideas, and get community feedback.

  To reach the project support team, email [pyansys.core@ansys.com](mailtto:pyansys.core@ansys.com).



  The `ansys-meshing-prime` package supports Python 3.8 to Python 3.11 on the Windows and Linux
  operating systems.


  PyPrimeMesh can be installed with all dependencies directly from PyPi by running
  this command:

  ```bash
  pip install ansys-meshing-prime[all]
  ```

  Alternatively, you can clone this repository and install the client using
  these commands:

  ```bash
  git clone https://github.com/ansys/pyprimemesh
  cd pyprimemesh
  pip install -e .[all]
  ```

  The preceding commands install all functionality that is important to development.
  To install a basic version of the client, use this command instead:

  ```bash
  pip install -e .
  ```



  You must have Ansys 2023 R1 or later installed for access to Ansys Prime Server.
  Optionally, CAD readers can be configured. Ansys Prime Server requires
  an Ansys Mechanical PrepPost or Fluids PrepPost (CFD) license to run.





  To launch PyPrimeMesh, use this code:

  ```python
  import ansys.meshing.prime as prime

  with prime.launch_prime() as prime_client:
      model = prime_client.model
  ```



  Run tests locally with this command:
  ```bash
      pytest
  ```



  PyPrimeMesh is licensed under the MIT license.

  PyPrimeMesh makes no commercial claim over Ansys whatsoever. This library extends the functionality of
  Ansys Prime Server by adding a Python interface without changing the core behavior or license
  of the original software. The use of Ansys Prime Server requires a legally licensed copy of Ansys
  2023 R1 or later.


pkgId: 39715141688f80fe15d8b357cc525dc04d1babe8823f8190308cdc8097ad43ec
name: python-ansys-openapi-common
arch: src
version: 2.1.1
epoch: 0
release: 1
summary: Provides a helper to create sessions for use with Ansys OpenAPI clients.
url: https://github.com/pyansys/openapi-common
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-openapi-common-2.1.1-1.src.rpm
checksum_type: sha256
description:
  OpenAPI-Common is intended for use with the custom code generation
  template in the `PyAnsys project <https://github.com/pyansys>`_.
  It provides the source code for an authentication-aware
  client for OpenAPI client libraries.
  OpenAPI-Common supports authentication with Basic, Negotiate, NTLM,
  and OpenID Connect. Most features of the underlying requests session
  are exposed for use. Some basic configuration is also provided by default.


pkgId: 0fbad4580c1a76194df49acdab9e5d4c7ec23f5bfb0b236bfb7a1bd0e84d508e
name: python-ansys-rocky-core
arch: src
version: 0.2.0
epoch: 0
release: 1
summary: Python client library for Ansys Rocky
url: https://pypi.org/project/ansys-rocky-core/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-rocky-core-0.2.0-1.src.rpm
checksum_type: sha256
description:
  |pyansys| |MIT| |python| |pypi| |codecov| |MIT| |black| |pre-commit|
  PyRocky is a Python client library to create, run, and postprocess
  particle dynamics simulations using `Ansys Rocky <https://www.ansys.com/products/fluids/ansys-rocky>`_,
  the most powerful DEM (discrete element method) software in the market.


pkgId: aa54e60e2e11878b6e610570126d5b9f4c1157fd4e88fad7002850e4b4016858
name: python-ansys-seascape
arch: src
version: 0.2.0
epoch: 0
release: 1
summary: A pythonic remotable interface to RedHawkSC and TotemSC
url: https://pypi.org/project/ansys-seascape/
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-seascape-0.2.0-1.src.rpm
checksum_type: sha256
description:
  Install from PyPI
  ^^^^^^^^^^^^^^^^^
  User installation can be performed by running:
      pip install ansys-seascape
  OR
      python -m pip install ansys-seascape
  Install from latest Github source
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Fetch latest source from github:
      cd <your-library-directory>
      git clone https://github.com/pyansys/pyseascape.git
  (Optional) Create and enable virtual environment. Please refer to official `venv`_ documentation for more help regarding virtual environment setup.
      
      python -m venv .venv
      
      source .venv/bin/activate
      
      .venv\Scripts\activate.bat
      
      .venv\Scripts\Activate.ps1
  Install the project
      cd pyseascape
      pip install .
  Install additional requirements (if needed):
      python -m pip install .[tests]
      python -m pip install .[doc]


pkgId: 9ec5a2be0bc4ec63d40df9096284c4b815bf7af7ebb4ab4b15b143a531b3058c
name: python-ansys-sound-core
arch: src
version: 0.1.3
epoch: 0
release: 1
summary: A Python wrapper for Ansys DPF Sound.
url: https://pypi.org/project/ansys-sound-core/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-sound-core-0.1.3-1.src.rpm
checksum_type: sha256
description:
  |pyansys| |python| |pypi| |GH-CI| |codecov| |MIT| |black| |pre-commit.ci|
  PyAnsys Sound lets you use the main features of `Ansys Sound`_ to perform
  the postprocessing and analysis of sounds and vibrations in Python. This library is based on
  `PyDPF-Core`_ and the DPF Sound plugin. It is a Python wrapper that implements classes on top
  of DPF Sound operators


pkgId: 317ef8a4b34af0ee7bb32d33d6a360de3d6b1612d63eb7983df3653e8d8e22ed
name: python-ansys-tools-filetransfer
arch: src
version: 0.1.0
epoch: 0
release: 1
summary: A Python client for uploading and downloading files via gRPC.
url: https://github.com/ansys/ansys-tools-filetransfer
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-tools-filetransfer-0.1.0-1.src.rpm
checksum_type: sha256
description:
  |pyansys| |python| |pypi| |GH-CI| |codecov| |MIT| |black|
  The Ansys FileTransfer Tool provides a simple gRPC API for moving files between
  a client and a server. Its target use case are local Docker deployments or
  simple remote deployments.
  The Ansys FileTransfer Tool is composed of two parts:
  - A Python client, which is contained in this repository.
  - A C++ server, which is contained in the
    `ansys-tools-filetransfer-server <https://github.com/ansys/ansys-tools-filetransfer-server>`_
    repository.
  **WARNING**:
  The FileTransfer Tool does not provide any security measures. Any file
  on the server component can be accessed by any client. Without additional security
  measures, it is unsuited for use over an untrusted network.


pkgId: 23220a63fc305a19e7c10b618255708d1c096b27417c1e1ab252f1331902279a
name: python-ansys-tools-local-product-launcher
arch: src
version: 0.1.1
epoch: 0
release: 1
summary: A utility for launching Ansys products on a local machine
url: https://github.com/ansys/ansys-tools-local-product-launcher
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-tools-local-product-launcher-0.1.1-1.src.rpm
checksum_type: sha256
description:
  |pyansys| |python| |pypi| |GH-CI| |codecov| |MIT| |black|
  The Ansys Local Product Launcher is a utility for launching Ansys products on a local machine
  and configuring their launch settings.


pkgId: a0c64edb77f2720d0758606924cd6a3001a3ca20fdc8380e53a95ea962a4bbd8
name: python-ansys-tools-path
arch: src
version: 0.6.0
epoch: 0
release: 1
summary: Library to locate Ansys products in a local machine.
url: https://github.com/ansys/ansys-tools-path
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-tools-path-0.6.0-1.src.rpm
checksum_type: sha256
description:
  |pyansys| |python| |pypi| |GH-CI| |codecov| |MIT| |black|
  Library to locate Ansys products in a local machine.


pkgId: 5d0cd3370b8698375c68bc1a7b1f6cc8f8616a6c903bd277c2cacd2eaf0b227e
name: python-ansys-tools-protoc-helper
arch: src
version: 0.5.0
epoch: 0
release: 1
summary: A utility for compiling '.proto' files to Python source.
url: https://pypi.org/project/ansys-tools-protoc-helper/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-tools-protoc-helper-0.5.0-1.src.rpm
checksum_type: sha256
description:
  ***************************
  protobuf compilation helper
  ***************************

  A utility to compile ``.proto`` files to Python source when building the package wheel. It supports dependencies to ``.proto`` files of different packages.

  Quickstart
  ~~~~~~~~~~

  The simplest way to get started is using the `template repository <https://github.com/ansys/ansys-api-template>`_.

  Manual use
  ~~~~~~~~~~

  To manually enable the use of ``ansys-tools-protoc-helper`` in your project, the following things need to be defined:

  -   A ``pyproject.toml`` file with the following contents:

      .. code::

          [build-system]
          requires = ["setuptools>=42.0", "wheel", "ansys-tools-protoc-helper", <additional_dependencies>]
          build-backend = "setuptools.build_meta:__legacy__"

      where ``<additional_dependencies>`` are the packages that you depend on for ``.proto`` files.

  -   In the ``setuptools`` configuration (either ``setup.cfg`` or ``setup.py``). We only show the ``setuptools.setup()`` keywords (``setup.py`` variant) here:

      -   Run-time dependencies on the same ``<additional_dependencies>`` used above:

          .. code:: python

              install_requires=[grpcio, protobuf, <additional_dependencies>],

          Refer to the `gRPC version strategy`_ section for details on which ``grpc`` and ``protobuf`` versions can be used.

      -   The ``package_data`` declares additional file names which are included in the package:

          .. code:: python

              package_data={
                  "": ["*.proto", "*.pyi", "py.typed"],
              }

          Note that ``*.proto`` is only needed if other packages should be able to depend on the ``*.proto`` files defined in your package.

          The ``py.typed`` file is used to communicate that the package contains type information, see `PEP 561 <https://www.python.org/dev/peps/pep-0561/>`_. This file needs to be manually added.

      -   The ``cmdclass`` is used to specify that some ``setuptools`` commands should be executed by ``ansys-tools-protoc-helper``:

          .. code:: python

              from ansys.tools.protoc_helper import CMDCLASS_OVERRIDE

              setup(
                  <...>,
                  cmdclass=CMDCLASS_OVERRIDE
              )

          The two commands which are overridden can also be specified individually. This may be useful in particular if you want to use the ``setup.cfg`` format:

          .. code:: python

              from ansys.tools.protoc_helper import BuildPyCommand, DevelopCommand

              setup(
                  <...>,
                  cmdclass={"build_py": BuildPyCommand, "develop": DevelopCommand}
              )

      -   If other projects should be able to depend on the ``.proto`` files contained in your project, an `entry point <https://packaging.python.org/en/latest/specifications/entry-points/>`_ needs to be defined declaring the presence of the ``*.proto`` files:

          .. code:: python

              entry_points={
                  "ansys.tools.protoc_helper.proto_provider": {
                      "<your.package.name>=<your.package.name>"
                  },
              },

          where ``<your.package.name>`` is the _importable_ name of your package. In other words, ``import <your.package.name>`` should work after installing the package.

          By default, the ``.proto`` files will be copied to ``your/package/name``. If a different location should be used, append a semicolon to the entry point name, followed by the dot-separated target location:

          .. code:: python

              entry_points={
                  "ansys.tools.protoc_helper.proto_provider": {
                      "<your.package.name>:<target.location>=<your.package.name>"
                  },
              },

  For a complete example, see the ``test/test_data/testpkg-greeter-protos`` package.

  gRPC version strategy
  ~~~~~~~~~~~~~~~~~~~~~

  The ``ansys-tools-protoc-helper`` pins the versions of ``gRPC`` and ``protobuf`` that it depends on, in the ``dependencies = ...`` section of the `pyproject.toml <https://github.com/ansys/ansys-tools-protoc-helper/blob/main/pyproject.toml>`_ file.

  For your own project, you can use any version of ``grpcio`` and ``protobuf`` that's newer (or equal) to the version pinned here, as long as it is the same major version.

  For example, if ``ansys-tools-protoc-helper`` pins

  .. code::

      dependencies = [
          "grpcio-tools==1.20.0",
          "protobuf==3.19.3",
      ]

  your own dependencies could be ``grpcio-tools~=1.20``, ``protobuf~=3.19`` (using the ``~=`` `compatible version operator <https://www.python.org/dev/peps/pep-0440/#compatible-release>`_).

  .. note::

      The ``protoc`` compiler version used is determined by the ``grpcio-tools`` package, *not* the ``protobuf`` dependency. The ``grpcio-tools==1.20.0`` uses ``protoc==3.7.0``.


  The versions pinned by ``ansys-tools-protoc-helper`` were originally chosen as follows:

  - The first version of ``grpcio-tools`` for which binary wheels are available on PyPI, for at least one of the Python versions we support.
  - The first version of ``protobuf`` which is compatible with ``mypy-protobuf``, for generating type stubs.

  Upgrade plans
  ^^^^^^^^^^^^^

  The current plan for upgrading ``grpcio-tools`` and ``protobuf`` is as follows:

  +----------------------------------------+----------------+--------------------------+----------------------+--------------------+
  | ``ansys-tools-protoc-helper`` version  | release date   | ``grpcio-tools`` version | ``protobuf`` version | ``protoc`` version |
  +========================================+================+==========================+======================+====================+
  | ``0.2.x``                              | 2022-12-09     | ``1.20.x``               | ``3.19.3``           | ``3.7.x``          |
  +----------------------------------------+----------------+--------------------------+----------------------+--------------------+
  | ``0.3.x``                              | 2023-02-20     | ``1.25.x``               | ``3.19.3``           | ``3.8.x``          |
  +----------------------------------------+----------------+--------------------------+----------------------+--------------------+
  | ``0.4.x``                              | 2023-02-20     | ``1.44.x``               | ``3.19.3``           | ``3.19.2``         |
  +----------------------------------------+----------------+--------------------------+----------------------+--------------------+
  | ``0.5.x``                              | TBD            | ``1.49.x``               | ``4.21.x``           | ``3.21.5``         |
  +----------------------------------------+----------------+--------------------------+----------------------+--------------------+

  The strategy for these upgrades is as follows:

  - Upgrade ``grpcio-tools`` as necessary. For example, ``0.5.x`` enables building with Python ``3.11``.
  - Match the version of ``protobuf`` to the version of ``protoc`` bundled into ``grpcio-tools``, or at least ``3.19.3``.
  - Each upgrade is a breaking upgrade for the semantic version. Since we are currently using ``0.x`` versions, the minor version is bumped.

  The ``protobuf`` Python runtime introduced a backwards-incompatible change with version ``4.21`` (matching protoc release ``3.21``). Code generated with ``protoc==3.19`` or newer should be compatible with the ``4.x`` runtime, which corresponds to the ``0.4`` release of ``ansys-tools-protoc-helper``.

  If you need to support a specific *older* version of protobuf and / or gRPC, we encourage pinning ``ansys-tools-protoc-helper`` to its minor version.


pkgId: aedae58c8ee3bbde38f568614dfd551d94b0a8c73263949a56f50bf89ac15de1
name: python-ansys-tools-repo-sync
arch: src
version: 1.2.0
epoch: 0
release: 1
summary: Synchronize the content of two different repositories.
url: https://github.com/ansys/ansys-tools-repo-sync
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-tools-repo-sync-1.2.0-1.src.rpm
checksum_type: sha256
description:
  To post issues, questions, and code, go to `ansys-tools-repo-sync Issues
  <https://github.com/ansys/ansys-tools-repo-sync/issues>`_.


pkgId: 113b91805561a5a2e84b20dd5abf858e1abdab65533928e7513f902c2f1fe187
name: python-ansys-turbogrid-core
arch: src
version: 0.4.1
epoch: 0
release: 1
summary: A python wrapper for Ansys TurboGrid
url: https://turbogrid.docs.pyansys.com
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-turbogrid-core-0.4.1-1.src.rpm
checksum_type: sha256
description:
  |pyansys| |python| |pypi| |GH-CI| |codecov| |MIT| |black|
  PyTurboGrid is a Python wrapper for `Ansys TurboGrid`_, a high-quality turbomachinery
  meshing software app. To run PyTurboGrid, you must have access to a licensed local copy
  of TurboGrid. PyTurboGrid supports Ansys TurboGrid 2023 R2 and later.
  |intro|


pkgId: 3ecca065c0f1cedbcf4466b21847186836f4139aa4acb7ada6aa7e18bdf0804b
name: python-ansys-workbench-core
arch: src
version: 0.7.0
epoch: 0
release: 1
summary: A python wrapper for Ansys Workbench
url: https://github.com/ansys/pyworkbench
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ansys-workbench-core-0.7.0-1.src.rpm
checksum_type: sha256
description:
  |pyansys| |python| |pypi| |GH-CI| |MIT| |ruff|
  PyWorkbench is a Python client library for Ansys Workbench.


pkgId: b1a45af5e24a0b0ce728a17de650f80a4076ff055d577bc50e6cae44f8a88e8d
name: python-ant1Interface
arch: src
version: 0.0.36
epoch: 0
release: 1
summary: please add a summary manually as the author left a blank one
url: https://code.alipay.com/ai-dls/antnlp/blob/master/adabrain/common/interface/ant1/README.md
rpm_license: Copyright 2022 Ant Group Co., Ltd.
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ant1Interface-0.0.36-1.src.rpm
checksum_type: sha256
description:
  前言：
  这个代码库主要是用来实现引擎调用算法模型时，输入输出接口的解析。bot中相应的接口定义详见https://yuque.antfin.com/crtpg4/dp5u2i/ciww6f#qNMmC

  两种import方式：
  1. 如果使用antnlp，参考antnlp/adabrain/common/interface/ant1/demo.py
  2. 如果不使用antnlp, 直接安装pypi包，pip install -i https://test.pypi.org/simple/ ant1
  在代码里面引入包  import ant1
  引入具体包 from ant1 import decoder
  务必在函数每次被调用的时候，进行初始化
  decode_builder = decoder.DecoderParamsBuilder(input_proto_type=INPUT_PROTO_TYPE)

  组件内的解析函数定义使用详见antnlp/adabrain/common/interface/ant1/docs


pkgId: 760c1d43f5f83dd6c62302f59408243f5475b47a5c27972cf0316fa8b1848c59
name: python-anta
arch: src
version: 1.1.0
epoch: 0
release: 1
summary: Arista Network Test Automation (ANTA) Framework
url: https://anta.arista.com
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-anta-1.1.0-1.src.rpm
checksum_type: sha256
description:
  <!--
    ~ Copyright (c) 2023-2024 Arista Networks, Inc.
    ~ Use of this source code is governed by the Apache License 2.0
    ~ that can be found in the LICENSE file.
    -->



  | **Code**       | [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![Numpy](https://img.shields.io/badge/Docstring_format-numpy-blue)](https://numpydoc.readthedocs.io/en/latest/format.html) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=aristanetworks_anta&metric=alert_status&branch=main)](https://sonarcloud.io/summary/new_code?id=aristanetworks_anta) [![Coverage](https://img.shields.io/sonar/coverage/aristanetworks_anta/main?server=https%3A%2F%2Fsonarcloud.io&logo=sonarcloud&link=https%3A%2F%2Fsonarcloud.io%2Fsummary%2Foverall%3Fid%3Daristanetworks_anta)](https://sonarcloud.io/summary/overall?id=aristanetworks_anta) |
  | :------------: | :-------|
  | **License**    | [![License](https://img.shields.io/badge/license-Apache%202.0-brightgreen.svg)](https://github.com/aristanetworks/anta/blob/main/LICENSE) |
  | **GitHub**     | [![CI](https://github.com/aristanetworks/anta/actions/workflows/code-testing.yml/badge.svg)](https://github.com/aristanetworks/anta/actions/workflows/code-testing.yml) ![Commit](https://img.shields.io/github/last-commit/aristanetworks/anta) ![GitHub commit activity (branch)](https://img.shields.io/github/commit-activity/m/aristanetworks/anta) [![Github release](https://img.shields.io/github/release/aristanetworks/anta.svg)](https://github.com/aristanetworks/anta/releases/) [![Contributors](https://img.shields.io/github/contributors/aristanetworks/anta)](https://github.com/aristanetworks/anta/graphs/contributors) |
  | **PyPi**       | ![PyPi Version](https://img.shields.io/pypi/v/anta) ![Python Versions](https://img.shields.io/pypi/pyversions/anta) ![Python format](https://img.shields.io/pypi/format/anta) ![PyPI - Downloads](https://img.shields.io/pypi/dm/anta) |

  ANTA is Python framework that automates tests for Arista devices.

  - ANTA provides a [set of tests](api/tests.md) to validate the state of your network
  - ANTA can be used to:
    - Automate NRFU (Network Ready For Use) test on a preproduction network
    - Automate tests on a live network (periodically or on demand)
  - ANTA can be used with:
    - As a [Python library](advanced_usages/as-python-lib.md) in your own application
    - The [ANTA CLI](cli/overview.md)

  ![anta nrfu](https://raw.githubusercontent.com/aristanetworks/anta/main/docs/imgs/anta-nrfu.svg)



  The library will **NOT** install the necessary dependencies for the CLI.

  ```bash

  pip install anta
  ```



  If you plan to use ANTA only as a CLI tool you can use `pipx` to install it.
  [`pipx`](https://pipx.pypa.io/stable/)  is a tool to install and run python applications in isolated environments. Refer to `pipx` instructions to install on your system.
  `pipx` installs ANTA in an isolated python environment and makes it available globally.

  <!-- markdownlint-disable no-emphasis-as-heading -->
  **This is not recommended if you plan to contribute to ANTA**
  <!-- markdownlint-enable no-emphasis-as-heading -->

  ```bash

  $ pipx install anta[cli]


  $ anta --help
  Usage: anta [OPTIONS] COMMAND [ARGS]...

    Arista Network Test Automation (ANTA) CLI

  Options:
    --version                       Show the version and exit.
    --log-file FILE                 Send the logs to a file. If logging level is
                                    DEBUG, only INFO or higher will be sent to
                                    stdout.  [env var: ANTA_LOG_FILE]
    -l, --log-level [CRITICAL|ERROR|WARNING|INFO|DEBUG]
                                    ANTA logging level  [env var:
                                    ANTA_LOG_LEVEL; default: INFO]
    --help                          Show this message and exit.

  Commands:
    check  Commands to validate configuration files
    debug  Commands to execute EOS commands on remote devices
    exec   Commands to execute various scripts on EOS devices
    get    Commands to get information from or generate inventories
    nrfu   Run ANTA tests on devices
  ```

  You can also still choose to install it with directly with `pip`:

  ```bash
  pip install anta[cli]
  ```



  The documentation is published on [ANTA package website](https://anta.arista.com).



  Contributions are welcome. Please refer to the [contribution guide](contribution.md)



  Thank you to [Jeremy Schulman](https://github.com/jeremyschulman) for [aio-eapi](https://github.com/jeremyschulman/aio-eapi/tree/main/aioeapi).

  Thank you to [Angélique Phillipps](https://github.com/aphillipps), [Colin MacGiollaEáin](https://github.com/colinmacgiolla), [Khelil Sator](https://github.com/ksator), [Matthieu Tache](https://github.com/mtache), [Onur Gashi](https://github.com/onurgashi), [Paul Lavelle](https://github.com/paullavelle), [Guillaume Mulocher](https://github.com/gmuloc) and [Thomas Grimonet](https://github.com/titom73) for their contributions and guidances.

rpm_license:
  Apache License Version 2.0, January 2004 http://www.apache.org/licenses/  TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION  1. Definitions.  "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.  "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.  "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.  "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.  "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.  "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.  "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).  "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.  "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."  "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.  2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.  3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.  4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:  (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and  (b) You must cause any modified files to carry prominent notices stating that You changed the files; and  (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and  (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.  You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.  5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.  6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.  7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.  8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.  9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.  END OF TERMS AND CONDITIONS  APPENDIX: How to apply the Apache License to your work.  To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!)  The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.  Copyright 2022 Arista Networks  Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0  Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


pkgId: cdfa41b72e71ff77bc71aa7081584d9f7329fe159e2b96b0b0096291e66d0020
name: python-antarctic
arch: src
version: 0.6.2
epoch: 0
release: 1
summary: ...
url: https://github.com/tschm/antarctic
rpm_license: UNKNOWN
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antarctic-0.6.2-1.src.rpm
checksum_type: sha256
description:
  [![Test](https://github.com/tschm/antarctic/actions/workflows/main.yml/badge.svg)](https://github.com/tschm/antarctic/actions/workflows/main.yml)
  [![Book](https://github.com/tschm/antarctic/actions/workflows/book.yml/badge.svg)](https://github.com/tschm/antarctic/actions/workflows/book.yml)
  [![Release](https://github.com/tschm/antarctic/workflows/Release/badge.svg)](https://github.com/tschm/antarctic/actions/)
  [![DeepSource](https://deepsource.io/gh/tschm/antarctic.svg/?label=active+issues&show_trend=true&token=Ap44D1XBPLUb19JqC763UIWf)](https://deepsource.io/gh/tschm/antarctic/?ref=repository-badge)
  [![Publish Docker image](https://github.com/tschm/antarctic/actions/workflows/binder.yml/badge.svg)](https://github.com/tschm/antarctic/actions/workflows/binder.yml)
  [![Binder](http://mybinder.org/badge_logo.svg)](http://mybinder.org/v2/gh/tschm/antarctic/HEAD)

  Project to persist Pandas data structures in a MongoDB database.


  ```python
  pip install antarctic
  ```


  This project (unless the popular arctic project which I admire) is based on top of [MongoEngine](https://pypi.org/project/mongoengine/).
  MongoEngine is an ORM for MongoDB. MongoDB stores documents. We introduce a new field and extend the Document class
  to make Antarctic a convenient choice for storing Pandas (time series) data.


  We introduce first a new field --- the PandasField.

  ```python
  from mongoengine import Document, connect
  from antarctic.pandas_field import PandasField


  client = connect(db="test", host="mongomock://localhost")



  class Portfolio(Document):
  	nav = PandasField()
  	weights = PandasField()
  	prices = PandasField()
  ```

  The portfolio objects works exactly the way you think it works

  ```python

  p = Portfolio()
  p.nav = pd.Series(...).to_frame(name="nav")
  p.prices = pd.DataFrame(...)
  p.save()

  print(p.nav["nav"])
  print(p.prices)
  ```

  Behind the scenes we convert the Frame objects into parquet bytestreams and
  store them in a MongoDB database.

  The format should also be readable by R.



  In most cases we have copies of very similar documents, e.g. we store Portfolios and Symbols rather than just a Portfolio or a Symbol.
  For this purpose we have developed the abstract `XDocument` class relying on the Document class of MongoEngine.
  It provides some convenient tools to simplify looping over all or a subset of Documents of the same type, e.g.

  ```python
  from antarctic.document import XDocument
  from antarctic.pandas_field import PandasField

  client = connect(db="test", host="mongodb://localhost")


  class Symbol(XDocument):
  	price = PandasField()
  ```
  We define a bunch of symbols and assign a price for each (or some of it):

  ```python
  s1 = Symbol(name="A", price=pd.Series(...).to_frame(name="price")).save()
  s2 = Symbol(name="B", price=pd.Series(...).to_frame(name="price")).save()


  for symbol in Symbol.subset(names=["B"]):
  	print(symbol)


  Symbol.to_dict(objects=[s1, s2])


  s1.reference["MyProp1"] = "ABC"
  s2.reference["MyProp2"] = "BCD"


  print(Symbol.reference_frame(objects=[s1, s2]))
  print(Symbol.frame(series="price", key="price"))
  print(Symbol.apply(func=lambda x: x.price["price"].mean(), default=np.nan))
  ```

  The XDocument class is exposing DataFrames both for reference and time series data.
  There is an `apply` method for using a function on (subset) of documents.





  Storing json or bytestream representations of Pandas objects is not exactly a database. Appending is rather expensive as one would have
  to extract the original Pandas object, append to it and convert the new object back into a json or bytestream representation.
  Clever sharding can mitigate such effects but at the end of the day you shouldn't update such objects too often. Often practitioners
  use a small database for recording (e.g. over the last 24h) and update the MongoDB database once a day. It's extremely fast to read the Pandas objects
  out of such a construction.

  Often such concepts are called DataStores.


pkgId: 0182bf4cba51e0e47af483630def5865afb9a16f0de5beddd7fd37e6d857a070
name: python-antarctic-plots
arch: src
version: 0.1.2
epoch: 0
release: 1
summary: antarctic_plots is now polartoolkit
url: https://pypi.org/project/antarctic-plots/
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antarctic-plots-0.1.2-1.src.rpm
checksum_type: sha256
description:
  This package has been renamed. Use `pip install polartoolkit` instead.

  Please rename all imports from `import antarctic_plots` to `import polartoolkit`.

  New package: https://pypi.org/project/polartoolkit/

rpm_license:
  The MIT License (MIT)  Copyright (c) 2022 Matt Tankersley  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


pkgId: 202fbf6af9747e85b82f84c00bc1f89b576816753a9303da1d45eb26cb4a29b1
name: python-antares-client
arch: src
version: 1.8.0
epoch: 0
release: 1
summary: A light-weight client for receiving alerts from ANTARES.
url: https://gitlab.com/nsf-noirlab/csdc/antares/client/
rpm_license: BSD License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antares-client-1.8.0-1.src.rpm
checksum_type: sha256
description:
  A light-weight client for receiving alerts from
  [ANTARES](http://antares.noirlab.edu).

  ANTARES is an Alert Broker developed by the [NOIRLab](http://noirlab.edu) for ZTF and
  LSST.

  The client is available for use as a Python library and as a command line tool.
  Directions for both use cases follow in the [Usage](#usage) section.

  Table of Contents:
  * [Installation](#installation)
  * [Documentation](#documentation)
  * [Upgrading](#upgrading)
  * [Troubleshooting](#troubleshooting)



  The ANTARES client supports Python versions 3.6 and up.

  To install:

  ```bash
  $ pip install antares-client
  ```

  Verify the client installed correctly:

  ```bash
  $ antares --version
  antares, version v1.1.0
  ```



  Visit the [full documentation](https://nsf-noirlab.gitlab.io/csdc/antares/client) for usage
  guides, API reference docs, and more.



  Issues? See the
  [documentation](https://nsf-noirlab.gitlab.io/csdc/antares/client/troubleshooting) for
  common gotchas and, if you can't find a solution there, please open an issue.


pkgId: 8cb128918cee7abe473780020ba43fc00c6106c87b385a9b22211151a28a4c69
name: python-antares-craft
arch: src
version: 0.1.1
epoch: 0
release: 1
url: https://pypi.org/project/antares-craft/
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antares-craft-0.1.1-1.src.rpm
checksum_type: sha256
summary:
  Antares Craft python library under construction. It will allow to create, update and read antares studies.

description:
  [![github ci](https://github.com/AntaresSimulatorTeam/antares_craft/actions/workflows/ci.yml/badge.svg)](https://github.com/AntaresSimulatorTeam/antares_craft/actions/workflows/ci.yml)



  Antares Craft python library is currently under construction. When completed it will allow to create, update and read
  antares studies.

  This project only supports antares studies with a version v8.8 or higher.

  **Table of Contents**

  - [usage](docs/usage.md)
  - [development](docs/developer.md)
  - [Changelog](docs/CHANGELOG.md)

rpm_license:
  Mozilla Public License Version 2.0 ==================================  1. Definitions --------------  1.1. "Contributor" means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software.  1.2. "Contributor Version" means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor's Contribution.  1.3. "Contribution" means Covered Software of a particular Contributor.  1.4. "Covered Software" means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof.  1.5. "Incompatible With Secondary Licenses" means  (a) that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or  (b) that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License.  1.6. "Executable Form" means any form of the work other than Source Code Form.  1.7. "Larger Work" means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software.  1.8. "License" means this document.  1.9. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License.  1.10. "Modifications" means any of the following:  (a) any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or  (b) any new file in Source Code Form that contains any Covered Software.  1.11. "Patent Claims" of a Contributor means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version.  1.12. "Secondary License" means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses.  1.13. "Source Code Form" means the form of the work preferred for making modifications.  1.14. "You" (or "Your") means an individual or a legal entity exercising rights under this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.  2. License Grants and Conditions --------------------------------  2.1. Grants  Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:  (a) under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and  (b) under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version.  2.2. Effective Date  The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution.  2.3. Limitations on Grant Scope  The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor:  (a) for any code that a Contributor has removed from Covered Software; or  (b) for infringements caused by: (i) Your and any other third party's modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or  (c) under Patent Claims infringed by Covered Software in the absence of its Contributions.  This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4).  2.4. Subsequent Licenses  No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3).  2.5. Representation  Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License.  2.6. Fair Use  This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents.  2.7. Conditions  Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1.  3. Responsibilities -------------------  3.1. Distribution of Source Form  All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients' rights in the Source Code Form.  3.2. Distribution of Executable Form  If You distribute Covered Software in Executable Form then:  (a) such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and  (b) You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients' rights in the Source Code Form under this License.  3.3. Distribution of a Larger Work  You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s).  3.4. Notices  You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies.  3.5. Application of Additional Terms  You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction.  4. Inability to Comply Due to Statute or Regulation ---------------------------------------------------  If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.  5. Termination --------------  5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice.  5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate.  5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination.  ************************************************************************ *                                                                      * *  6. Disclaimer of Warranty                                           * *  -------------------------                                           * *                                                                      * *  Covered Software is provided under this License on an "as is"       * *  basis, without warranty of any kind, either expressed, implied, or  * *  statutory, including, without limitation, warranties that the       * *  Covered Software is free of defects, merchantable, fit for a        * *  particular purpose or non-infringing. The entire risk as to the     * *  quality and performance of the Covered Software is with You.        * *  Should any Covered Software prove defective in any respect, You     * *  (not any Contributor) assume the cost of any necessary servicing,   * *  repair, or correction. This disclaimer of warranty constitutes an   * *  essential part of this License. No use of any Covered Software is   * *  authorized under this License except under this disclaimer.         * *                                                                      * ************************************************************************  ************************************************************************ *                                                                      * *  7. Limitation of Liability                                          * *  --------------------------                                          * *                                                                      * *  Under no circumstances and under no legal theory, whether tort      * *  (including negligence), contract, or otherwise, shall any           * *  Contributor, or anyone who distributes Covered Software as          * *  permitted above, be liable to You for any direct, indirect,         * *  special, incidental, or consequential damages of any character      * *  including, without limitation, damages for lost profits, loss of    * *  goodwill, work stoppage, computer failure or malfunction, or any    * *  and all other commercial damages or losses, even if such party      * *  shall have been informed of the possibility of such damages. This   * *  limitation of liability shall not apply to liability for death or   * *  personal injury resulting from such party's negligence to the       * *  extent applicable law prohibits such limitation. Some               * *  jurisdictions do not allow the exclusion or limitation of           * *  incidental or consequential damages, so this exclusion and          * *  limitation may not apply to You.                                    * *                                                                      * ************************************************************************  8. Litigation -------------  Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party's ability to bring cross-claims or counter-claims.  9. Miscellaneous ----------------  This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor.  10. Versions of the License ---------------------------  10.1. New Versions  Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number.  10.2. Effect of New Versions  You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward.  10.3. Modified Versions  If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License).  10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses  If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached.  Exhibit A - Source Code Form License Notice -------------------------------------------  This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.  If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice.  You may add additional accurate notices of copyright ownership.  Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------  This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0.


pkgId: 75328bca412417b65eef1105cd848b1898911d9b38edf3558c8e75145524b8ef
name: python-antares-timeseries-generation
arch: src
version: 0.1.7
epoch: 0
release: 1
summary: Timeseries generation library aiming at creating input data for Antares simulator studies.
url: https://pypi.org/project/antares-timeseries-generation/
rpm_license: MPL-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antares-timeseries-generation-0.1.7-1.src.rpm
checksum_type: sha256
description:
  Timeseries generation library aiming at creating input data
  for Antares simulator studies.



  ```bash
  pip install antares-timeseries-generation
  ```
  Necessity to say that pandas~=2.2.3 requires python version 3.9 or newer versions



  The generation requires to define a few input data in a `ThermalCluster` object:

  ```python
  import numpy as np

  days = 365
  generation_params = OutageGenerationParameters(
      unit_count=10,
      fo_law=ProbabilityLaw.UNIFORM,
      fo_volatility=0,
      po_law=ProbabilityLaw.UNIFORM,
      po_volatility=0,
      fo_duration=10 * np.ones(dtype=int, shape=days),
      fo_rate=0.2 * np.ones(dtype=float, shape=days),
      po_duration=10 * np.ones(dtype=int, shape=days),
      po_rate=np.zeros(dtype=float, shape=days),
      npo_min=np.zeros(dtype=int, shape=days),
      npo_max=10 * np.ones(dtype=int, shape=days)
  )
  cluster = ThermalCluster(
      outage_gen_params=generation_params,
      nominal_power=100,
      modulation=np.ones(dtype=float, shape=24),
  )
  ```

  You then need to provide a random number generator: we provide `MersenneTwisterRNG`
  to ensure the same generation as in `antares-solver` tool.
  ```python
  rng = MersenneTwisterRNG()
  ```

  Then perform the timeseries generation:

  ```python
  generator = TimeSeriesGenerator(rng=rng, days=days)
  results = generator.generate_time_series_for_clusters(cluster, 1)
  ```

  The actual timeseries for the total available power of the cluster are available in
  the results object as a numpy 2D-array:
  ```python
  print(results.available_power)
  ```


pkgId: 52a33f40e01730dcfd3f642114ef894895f37b520190b260bc828835fb6529e4
name: python-antchain-acopm
arch: src
version: 1.3.39
epoch: 0
release: 1
summary: Ant Chain ACOPM SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-acopm-1.3.39-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-acopm
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 70f8c18d05eba081406c7369f0ada80bcdb8b7254e43e3fb8ebc31089027dfd4
name: python-antchain-aitechguard
arch: src
version: 1.0.19
epoch: 0
release: 1
summary: Ant Chain AITECHGUARD SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-aitechguard-1.0.19-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-aitechguard
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 8518e3905c81b25431f0bde20514851930b2cfa72f8d45a24f8f0b0c3920c2b6
name: python-antchain-ak-195dff03d395462ea294bafdba69df3f
arch: src
version: 1.3.7
epoch: 0
release: 1
summary: Ant Chain Ak_195dff03d395462ea294bafdba69df3f SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-ak-195dff03d395462ea294bafdba69df3f-1.3.7-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-ak_195dff03d395462ea294bafdba69df3f
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: bcbbb7e78094ba52641915aa580c24951c6937087215e143310ae0cf81bf595b
name: python-antchain-ak-320bc483f2434f39a3af9ec9f04d3cc0
arch: src
version: 2.2.0
epoch: 0
release: 1
summary: Ant Chain Ak_320bc483f2434f39a3af9ec9f04d3cc0 SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-ak-320bc483f2434f39a3af9ec9f04d3cc0-2.2.0-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-ak_320bc483f2434f39a3af9ec9f04d3cc0
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 5c2699c8cb5d76b064e6c84dc69262a00f618b0e2b8f739fb2c732d40f816070
name: python-antchain-ak-5bb1b66c4aab4cc998c05a36078e45c1
arch: src
version: 1.0.13
epoch: 0
release: 1
summary: Ant Chain Ak_5bb1b66c4aab4cc998c05a36078e45c1 SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-ak-5bb1b66c4aab4cc998c05a36078e45c1-1.0.13-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-ak_5bb1b66c4aab4cc998c05a36078e45c1
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 348f6de70de4262df6c2461e456562420ca1f5e009c39263ea8c6ce96f3047ac
name: python-antchain-ak-63625f64df2048aca9ff5bea9e227854
arch: src
version: 1.0.2
epoch: 0
release: 1
summary: Ant Chain Ak_63625f64df2048aca9ff5bea9e227854 SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-ak-63625f64df2048aca9ff5bea9e227854-1.0.2-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-ak_63625f64df2048aca9ff5bea9e227854
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: fffd00771983b8ccfcbfa837812020fb8784501b5013dc085b92df830e8daa2d
name: python-antchain-ak-68b3ee3230284cddaa19740dcaf251d8
arch: src
version: 1.0.12
epoch: 0
release: 1
summary: Ant Chain Ak_68b3ee3230284cddaa19740dcaf251d8 SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-ak-68b3ee3230284cddaa19740dcaf251d8-1.0.12-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-ak_68b3ee3230284cddaa19740dcaf251d8
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 1cfae9ac8f627aa08c85cfaac55ed65ac00fc0b484f8473a167de140de66b236
name: python-antchain-ak-c3cc551641bc4a1e948f7b80bb2180f4
arch: src
version: 1.0.12
epoch: 0
release: 1
summary: Ant Chain Ak_c3cc551641bc4a1e948f7b80bb2180f4 SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-ak-c3cc551641bc4a1e948f7b80bb2180f4-1.0.12-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-ak_c3cc551641bc4a1e948f7b80bb2180f4
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 766e985b4ef62252b8489f9b47182f5146946abb2b178ae2945d9a118cbe138b
name: python-antchain-ak-f9cb6523d99f4d089e97d549f141e6e4
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: Ant Chain Ak_f9cb6523d99f4d089e97d549f141e6e4 SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-ak-f9cb6523d99f4d089e97d549f141e6e4-1.0.0-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-ak_f9cb6523d99f4d089e97d549f141e6e4
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 200c0f154bf571983a756b3fea0883e4d7bc3245cd1155b247c024e5ab1c4b93
name: python-antchain-antdigital-demosdk
arch: src
version: 1.2.0
epoch: 0
release: 1
summary: Ant Chain Antdigital_DEMOSDK SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-antdigital-demosdk-1.2.0-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-antdigital_demosdk
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: da83f109aa66a9ea2fcace73f45919857cd37dee5ae44291822803944e018ba2
name: python-antchain-asset
arch: src
version: 1.0.12
epoch: 0
release: 1
summary: Ant Chain ASSET SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-asset-1.0.12-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-asset
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 6107dd032bd78ab99be86c8f0b815b0a1acefe29274112b5779d316364729783
name: python-antchain-ato
arch: src
version: 1.10.24
epoch: 0
release: 1
summary: Ant Chain ATO SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-ato-1.10.24-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-ato
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 36cfabb736e8fdc67a6217ada90e1d4233aec954b0551bd765954935209ae8d9
name: python-antchain-baasplus
arch: src
version: 1.2.8
epoch: 0
release: 1
summary: Ant Chain BAASPLUS SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-baasplus-1.2.8-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-baasplus
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: bf3d59c1bf42979ac8a6a5fe7516adcc713f47ced5f801f119c64d27a851b48f
name: python-antchain-bccr
arch: src
version: 1.19.16
epoch: 0
release: 1
summary: Ant Chain BCCR SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-bccr-1.19.16-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-bccr
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: e60e0ef017993428d406e4b7ee5474752da1e9764bca3c75312353c2977ab009
name: python-antchain-blockchain
arch: src
version: 1.28.34
epoch: 0
release: 1
summary: Ant Chain BLOCKCHAIN SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-blockchain-1.28.34-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-blockchain
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 481466672d8e0652d2bfd0b4262edf7151bd8b1cc454f2c63a0923c04ecd5b77
name: python-antchain-bot
arch: src
version: 1.11.55
epoch: 0
release: 1
summary: Ant Chain BOT SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-bot-1.11.55-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-bot
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: a6874a931c9380e69cfb066ffcbccca9b0a2a6c6f7ffae681200fa935f374f6c
name: python-antchain-caasplatform
arch: src
version: 1.5.1
epoch: 0
release: 1
summary: Ant Chain CAASPLATFORM SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-caasplatform-1.5.1-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-caasplatform
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 7b432b0e80343ebe881775d597bf9223bf4a7daca0c285276b32737ae91f868d
name: python-antchain-corlab
arch: src
version: 1.0.1
epoch: 0
release: 1
summary: Ant Chain CORLAB SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-corlab-1.0.1-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-corlab
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 52fc0559e81e7e522c640ee95bfb3b102aecdd2696f2b25670e353caeaef4421
name: python-antchain-defincashier
arch: src
version: 1.1.8
epoch: 0
release: 1
summary: Ant Chain DEFINCASHIER SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-defincashier-1.1.8-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-defincashier
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: da672adfb95977076c61dd036fab5b81bcc82184a548aab9199aa51a5b97ef00
name: python-antchain-insurance-saas
arch: src
version: 1.7.10
epoch: 0
release: 1
summary: Ant Chain INSURANCE_SAAS SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-insurance-saas-1.7.10-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-insurance_saas
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 5523bc8e97c9bb3e953811200fd2966bafb7325ef5c8cb6956ba9b3a05afbc4b
name: python-antchain-jzqproductg
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: Ant Chain JZQPRODUCTG SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-jzqproductg-1.0.0-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-jzqproductg
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 38aa48b03fded150db11cc3e82be7d6682985c40be71107722e2123321f8584d
name: python-antchain-mpaasfaceverify
arch: src
version: 1.2.10
epoch: 0
release: 1
summary: Ant Chain MPAASFACEVERIFY SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-mpaasfaceverify-1.2.10-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-mpaasfaceverify
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 9061fe24bd0815ad473816a7f36bb5d0a965c6dba530fb4b9da6ff59626cae50
name: python-antchain-mycharity
arch: src
version: 1.0.24
epoch: 0
release: 1
summary: Ant Chain MYCHARITY SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-mycharity-1.0.24-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-mycharity
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 1baba7f0f58b6cc4886da73b438044325b23afc1071c1cc2a92183850025d515
name: python-antchain-mytc
arch: src
version: 1.6.4
epoch: 0
release: 1
summary: Ant Chain MYTC SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-mytc-1.6.4-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-mytc
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 8bb1e3909dbce981c94e45da510bdd86600ac8eb3b585c5957715294da40f86c
name: python-antchain-nftc
arch: src
version: 1.0.24
epoch: 0
release: 1
summary: Ant Chain NFTC SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-nftc-1.0.24-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-nftc
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 5d463dfe2f757e7d6aa4a33673642690c3d7ee32169d1c5947ea2a7b9ba00e52
name: python-antchain-nftx
arch: src
version: 1.9.4
epoch: 0
release: 1
summary: Ant Chain NFTX SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-nftx-1.9.4-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-nftx
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 52a482da5c78e02ad883ac0be7ba6edf5ea0086bdc2ca0c73c96cd709627b544
name: python-antchain-realperson
arch: src
version: 1.15.27
epoch: 0
release: 1
summary: Ant Chain REALPERSON SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-realperson-1.15.27-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-realperson
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 425ce3f30e56bd9e6f2acf25955a4e51160ba4aa9a7b733a589c04188b41b263
name: python-antchain-riskplus
arch: src
version: 1.21.0
epoch: 0
release: 1
summary: Ant Chain RISKPLUS SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-riskplus-1.21.0-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-riskplus
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: a38bb7bd7050daf7231aaa5bf4f368e07f4faf61bdc76f358ec86b5e6712ecec
name: python-antchain-securitytech
arch: src
version: 1.3.9
epoch: 0
release: 1
summary: Ant Chain SECURITYTECH SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-securitytech-1.3.9-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-securitytech
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: 387b412ecdc6e1982c6dfb7ecb9d76207e53cfe0c4548a8e246d4fc41f6bdeec
name: python-antchain-stlr
arch: src
version: 2.9.2
epoch: 0
release: 1
summary: Ant Chain STLR SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-stlr-2.9.2-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-stlr
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: ea97ad5c7f13d0ba7675273bbf50146a0a936494814d71b1b4c9976b7751a732
name: python-antchain-twc
arch: src
version: 1.13.1
epoch: 0
release: 1
summary: Ant Chain TWC SDK Library for Python
url: https://github.com/alipay/antchain-openapi-prod-sdk
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antchain-twc-1.13.1-1.src.rpm
checksum_type: sha256
description:
  English | [简体中文](README-CN.md)





  - Python >= 3.6



  - **Install with pip**

  Python SDK uses a common package management tool named `pip`. If pip is not installed, see the [pip user guide](https://pip.pypa.io/en/stable/installing/ "pip User Guide") to install pip.

  ```bash

  pip install antchain-twc
  ```



  [Opening an Issue](https://github.com/alipay/antchain-openapi-prod-sdk/issues/new), Issues not conforming to the guidelines may be closed immediately.



  [Quick Examples](https://github.com/alipay/antchain-openapi-prod-sdk)



  Detailed changes for each release are documented in the [release notes](./ChangeLog.md).



  - [Latest Release](https://github.com/alipay/antchain-openapi-prod-sdk/tree/master/python)



  [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)

  Copyright (c) 2009-present, Alibaba Cloud All rights reserved.


pkgId: b197c7bd833d944c5f4bd5eba8e8b53e723638e27294d35a7493a13a5a08c46f
name: python-anteater
arch: src
version: 0.23
epoch: 0
release: 1
summary: Anteater - CI Validation Framework
url: https://github.com/anteater/anteater
rpm_license: Apache Software License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-anteater-0.23-1.src.rpm
checksum_type: sha256
description:
  Anteater is an open framework to prevent the unwanted merging of nominated strings,
  filenames, binaries, depreciated functions, staging enviroment code / credentials
  etc. Anything that can be specified with regular expression syntax, can be
  sniffed out by anteater.
  You tell anteater exactly what you don't want to get merged, and anteater looks
  after the rest.
  If anteater finds something, it exits with a non-zero code which in turn fails
  the build of your CI tool, with the idea that it would prevent a pull request
  merging. Any false positives are easily negated by using the
  same RegExp framework to cancel out the false match.
  Entire projects may also be scanned also, using a recursive directory walk.
  With a few simple steps it can be easily implemented into a CI / CD workflow
  with tooling such as [Travis CI](https://travis-ci.org/), [CircleCI](https://circleci.com/), [Gitlab CI/CD](https://about.gitlab.com/features/gitlab-ci-cd/) and [Jenkins](https://jenkins.io/).
  It is currently used in the Linux Foundations project ['OPNFV'](https://opnfv.org)
  as means to provide automated security checks at gate, but as shown in the
  examples below, it can be used for other scenarios.
  Anteater also provides integrates with the Virus Total API, so any binaries,
  public IP addresses or URL's found by anteater, will be sent to the Virus Total
  API and a report will be returned. If any object is reported as malicous,
  it will fail the CI build job.
  Example content is provided for those unsure of what to start with and its
  encouraged and welcomed to share any Anteater filter strings you find useful.


pkgId: e6d679cc22558c5a428e82fffcfea412a3400fe9070366c4af739928b64e36e8
name: python-antelope-background
arch: src
version: 0.2.7
epoch: 0
release: 1
summary: please add a summary manually as the author left a blank one
url: https://github.com/AntelopeLCA/background
rpm_license: BSD 3-clause
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antelope-background-0.2.7-1.src.rpm
checksum_type: sha256
description:
  Background LCI implementation including Tarjan Ordering.

  This is kept as a separate repo because it is the only place `numpy/scipy` is required.  The
  idea is to enable people to run LCI/A computations without having the background data on their
  machine or having to perform matrix construction and inversion (i.e. only using foreground
  computations, like GaBi does).


  The default implementation performs an ordering of the LCI database using Tarjan's algorithm
  for detecting strongly-connected components (see [Partial Ordering of Life Cycle Inventory
  Databases](https://doi.org/10.1007/s11367-015-0972-x))

  It performs the ordering, and then builds and stores a static LCI database (A and B matrices).
  This code is a bit convoluted, but it works.



  No, it isn't tested. Tests have been performed (and passed).



  I know. I'm sorry.



  Installation should be straightforward-- `lxml` is required here to access a local copy of ecoinvent.

      user@host$ pip install antelope_background lxml



      >>> from antelope_core import LcCatalog
      >>> from antelope_core.data_sources.ecoinvent import EcoinventConfig
      >>> cat = LcCatalog('/home/user/my_catalog')
      Loading JSON data from /home/b/my_catalog/reference-quantities.json:
      local.qdb: /home/b/my_catalog/reference-quantities.json
      local.qdb: /data/GitHub/lca-tools/lcatools/qdb/data/elcd_reference_quantities.json
      25 new quantity entities added (25 total)
      6 new flow entities added (6 total)

      >>> ec = EcoinventConfig('/path/to/ecoinvent')
      >>> for res in ec.make_resources('local.ecoinvent.3.7.1.cutoff'):
              cat.add_resource(res)

      >>> cat.show_interfaces()
      local.ecoinvent.3.7.1.cutoff [basic, exchange]
      local.qdb [basic, index, quantity]

      >>>

  When the background is installed, new interface methods are available for catalog queries. In
  order to access them, the background matrix must be constructed, which is done through
  traversal of the LCI network using Tarjan's algorithm.  This is triggered automatically
  any time you request a background interface method.  But it can also be triggered explicitly:


      >>> q = cat.query('local.ecoinvent.3.7.1.cutoff')
      >>> q.check_bg()
      ... # several minutes pass
       Loaded 17400 processes (t=158.06 s)
       Loaded 17495 processes (t=158.69 s)
      20 new quantity entities added (20 total)
      5333 new flow entities added (5333 total)
      17495 new process entities added (17495 total)
      ...
      Creating flat background
      ...
       True

      >>> cat.show_interfaces()
      local.ecoinvent.3.7.1.cutoff [basic, exchange]
      local.ecoinvent.3.7.1.cutoff.index.20210205 [background, basic, index]
      local.qdb [basic, index, quantity]

      >>>

  The `check_bg()` route is slow because it requires indexing the database and traversing all exchanges,
  both of which require loading all XML files.  Fortunately, if the two steps are done during
  the same python session, then the inventory remains in memory and each file only has to be
  loaded once.

  Once the background matrix and index are created, the XML files do not need to be individually
  loaded except to access details about a specific process.

  Now that the background interface exists, background queries can be conducted.



  Please do!


pkgId: 52dba8f46c9bf45b692d473758372552009b03d584639ab65e248fb528595e36
name: python-antelope-core
arch: src
version: 0.3.4.4
epoch: 0
release: 1
summary: please add a summary manually as the author left a blank one
url: https://github.com/AntelopeLCA/core
rpm_license: BSD 3-Clause
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antelope-core-0.3.4.4-1.src.rpm
checksum_type: sha256
description:
      [local.uslci.olca] Polyethylene, low density, resin, at plant, CTR [RNA]:
         1.14e-05 =       0.05  x   0.000228 [GLO] local.lcia.traci.2.1/chemical oxygen demand, water, unspecified
         5.89e-06 =      0.779  x   7.55e-06 [GLO] local.lcia.traci.2.1/ammonia, water, unspecified
         2.85e-06 =       0.05  x    5.7e-05 [GLO] local.lcia.traci.2.1/biological oxygen demand, water, unspecified
         7.29e-07 =       7.29  x      1e-07 [GLO] local.lcia.traci.2.1/phosphorus, water, unspecified
         7.62e-08 =      0.986  x   7.73e-08 [GLO] local.lcia.traci.2.1/nitrogen, water, unspecified
         2.42e-08 =      0.779  x    3.1e-08 [GLO] local.lcia.traci.2.1/ammonium, water, unspecified
         2.1e-05 [local.lcia.traci.2.1] Eutrophication Water [kg N eq] [LCIA]
      >>>
  Search requires an index to be created:
      >>> q = cat.query('local.uslci.olca')


pkgId: 3afb686c038df5defa1474f9e742ea25d6e706ae46255dafd325525eeee61846
name: python-antelope-foreground
arch: src
version: 0.3.4.1
epoch: 0
release: 1
summary: please add a summary manually as the author left a blank one
url: https://github.com/AntelopeLCA/foreground
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antelope-foreground-0.3.4.1-1.src.rpm
checksum_type: sha256
description:
  ![](https://travis-ci.com/AntelopeLCA/foreground.svg?branch=master) ![](https://coveralls.io/repos/github/AntelopeLCA/foreground/badge.svg?branch=master)


  An interface and implementation for building and analyzing foreground models


pkgId: e69eb872fb12de662724618be594948868fd5f4d33874927599b09f5226a4185
name: python-antgen
arch: src
version: 0.4.1
epoch: 0
release: 1
url: https://gitlab.com/nunovelosa/antgen
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antgen-0.4.1-1.src.rpm
checksum_type: sha256
summary:
  This tool generates synthetic macroscopic load signatures for their use in conjunction with NILM (load disaggregation) tools.

description:
  This tool generates synthetic macroscopic load signatures for their use in conjunction
  with NILM (load disaggregation) tools. By default, it runs in scripted mode (i.e., with
  no graphical user interface) and processes an input configuration file into a set of CSV
  output files containing power consumption values and the timestamps of their occurrence,
  as well as a file summarizing the events that have occurred during the simulation).

  If you find this tool useful and use it (or parts of it), we ask you to cite the following work in your publications:
  ```bibtex
  @inproceedings{reinhardt20benchmarking,
    author = {Andreas Reinhardt and Christoph Klemenjak},
    title = {How does Load Disaggregation Performance Depend on Data Characteristics? Insights from a Benchmarking Study},
    booktitle = {Proceedings of the 11th ACM International Conference on Future Energy Systems (e-Energy)},
    year = {2020}
  }
  ```



  ANTgen relies on a small number of Python libraries to fully function. Install them by typing:

  ```bash
  pip3 install -r requirements.txt
  ```

  Note: On Windows systems without a C/C++ compiler suite installed, the installation of package requirements may fail,
  reporting that the "Microsoft Visual C++ Build Tools" are missing. To continue, [download and install
  them](https://visualstudio.microsoft.com/visual-cpp-build-tools/), then re-run the above command.

  ANTgen can show an overview plot of its generated data if `matplotlib` is installed.
  So unless you plan to use ANTgen to create data on a headless server, we recommend the installation
  of this library as well.

  ```bash
  pip3 install matplotlib    # (optional, install only if you want to see your data plotted)
  ```



  ```bash
  python3 antgen.py [-o DESTINATION] [-w] [-s SEED] [-a] [-m MAPFILE]
                    [-d DAYS] [-n NOISECONFIG] [-v] [-p] configfile
  ```

  Mandatory argument:

  * `configfile`: The configuration file to process (see next section for format)

  Optional arguments:

  * `-o <dir>` specifies the folder in which the output files shall be saved (`output/` by default)
  * `-w` overwrite output files if they already exist
  * `-s <123123123>` define the seed value for the random number generator
  * `-a` randomly pick an appliance model each time the appliance is being operated (if unset, all operations of appliances of the same type will be exact replicas of each other)
  * `-m <mapping.conf>` defines the mappings between appliances types and their AMBAL models (can be overwritten individually in the `[devices]` section of the configuration file)
  * `-n <C123>` defines if noise shall be added to the aggregate signal. One letter (`C`=constant, `G`=Gaussian) followed by the amplitude in Watt
  * `-d <123>` overrides the number of days for which to generate data (can also be given in the `[GENERAL]` section of the configuration file)
  * `-p` opens a graphical interface to plot the resulting traces after their generation (requires `matplotlib`)
  * `-v` makes ANTgen verbose and outputs more status information



  All ANTgen configuration files are expected to be present in TOML format.
  The core configuration file must feature at least the sections `[GENERAL]` and `[users]`.
  Optionally, specific appliance models to be used can be placed in the `[devices]` section.
  If `[devices]` is not part of the configuration file, a fallback mapping between
  appliance names and the corresponding model dictionary must be provided by means
  of the `-m` option, such as `-m mapping.conf`. This mapping file must contain a section
  named `[devices]` to be processed correctly.

  * In the `[GENERAL]` section, the configuration needs to be provided with a `name` and
  the number of `days` for which data shall be generated. Optionally, the `seed`
  value for the random number generator can be specified to ensure a repeatable
  trace generation. When no seed is provided, the random number generator will
  initialize itself based on the current system time. If the number of days is neither
  specified here nor on the command line (using `-d`), ANTgen will generate one day
  worth of data only.

  * The `[users]` section contains key-value pairs of user handles (only used for debugging)
  and the corresponding user models (see next section for details). In order to allow
  household base loads (refrigerator, etc) to run unattended, they should be added
  as another (virtual) user, e.g., `Home`.

  * An (optional) `[devices]` section can be added to list the appliance model *directories* to
  consider, indexed by the **capitalized** appliance type. It is crucial to keep
  the structure of the path intact, i.e., use exactly two levels of hierarchy, with
  the first-level subdirectory indicating the type of modeled appliance, and
  the second-level subdirectory referring to the individual handle from which
  the data was extracted. The keys for each entry must be upper-case and reflect
  the type of appliance that is being referred to. All AMBAL models must be located
  in the `appliances/` subdirectory.

  An example configuration is shown as follows:
  ```
  [GENERAL]
  name = Sample configuration
  days = 4
  seed = 12345

  [users]
  Home = baseload.conf
  Jack = STUDENT/student_simple.conf

  [devices]
  COOKINGSTOVE = COOKINGSTOVE/dev_D33097
  TV = TV/dev_B80E51
  ```

  This configuration file will create synthetic load signature data for four days, seeding
  the random number generator with the value 12345. There are two users in the generated data,
  one going by the handle "Jack" and following the daily routines specified in `users/STUDENT/student_simple.conf`.
  The second "user" is present to model the household base load, as defined in `users/baseload.conf`.



  To create realistic models, ANTgen relies on user models. All user models are stored in
  the `users/` subdirectory, or subdirectories thereof. User models are stored in TOML
  format, and must feature the `[GENERAL]` and `[presence]` sections, as well as one section
  for each user activity that should be modeled (these ones must start with the string
  `activity_`).

  * In the `[GENERAL]` section, the user model must be provided with a `name`, which is
  also reflected in the graphical user interface and the per-user power consumption output
  file.

  * The `[presence]` section contains key-value pairs of weekdays ("monday" through "sunday";
  all in lower-case) and and the corresponding presence times. Times are specified in
  24hr notation (from 00:00-24:00); multiple time ranges can be concatenated using commas.
  These time frames indicate when a user can start/perform an activity.

  * All activity sections must start with the `activity_` tag, followed by a unique
  identifier (hint: this makes it easy to remove an activity temporarily by making it an
  `inactivity_`). User activities are modeled separately (see below); the link between is
  created by specifying the file name of the activity configuration using the `model` entry.
  The `daily_runs` value states the average number of repetitions of this activity
  throughout each day. There is no guarantee the activity will be scheduled *exactly* this
  often during each simulated day. Lastly, activity occurrences can be time-limited by
  specifying the hours during which the activity can take place for each day of the week,
  using the same notation as for the `presence` tag above.

  An example user model is shown as follows:

  ```
  [GENERAL]
  name = Lucas Lazybone

  [presence]
  monday   = 00:00-08:30, 14:00-24:00
  sunday   = 00:00-24:00

  [activity_breakfast]
  model      = KITCHEN/cooking_quick.conf
  daily_runs = 1
  monday     = 07:30-08:15
  sunday     = 08:30-09:15
  ```

  This configuration models a user who is only at home on mondays and sundays, and cooks
  breakfast once on both days at some (randomly determined) time in the specified time intervals.



  Activities are modeled as state machines, to be executed by the users. All activity
  models must be stored in the `activities/ ` subdirectory, or subdirectories thereof.
  Activity models also use the TOML format.

  As follows, find some notes on the used nomenclature and some general guidelines
  for activity definitions:

  1. The only entry the `[GENERAL]` section of each activity model must contain is the
  `name` field. Enter a descriptive name of the activity, which will also constitute
  the corresponding file name for the power data when written to an output file.

  2. Specify the types of appliances the activity requires in the `[devices]` section. The tool
  will try to find matches for all entries listed there, so any unused leftover entries
  can make the synthesis fail. Use unique numeric keys for listing the devices required. They
  will be later referred to in the state machine (see below).

  3. Activities are modeled in the form of state machines. Each operational state is
  specified in the `[sequence]` table.
  All states must be assigned a numeric identifier (the state machine starts in state `0`) and
  require the specification of the following fields, which are entered in the
  form of a comma-separated list:
      - A short name (primarily for debugging purposes)
      - The minimum and maximum duration (use '0' to fall back to the underlying appliance
      model's default value). If a value greater than 0 is provided, the underlying appliance's activity
      will be scaled linearly in time, i.e., the durations of all its elements will be
      stretched/compressed to meet the requested overall duration.
      - A flag whether the user must be present for a particular state to take place. This
      ensures that an activity is only scheduled when the user is actually at home when needed.
      - A flag whether the state must run to completion before the state machine will progress
      to the next step. If this value is set to 'false', a delay of just 5-10 seconds is introduced
      before moving on to the next state, and the appliance continues to operate in the background.
      - The ID of the device to operate in this state (as per the key specified in the
      `[devices]` section of the activity configuration file).
      - The next state(s) into which the appliance operation can move, as well as the probability
      of the transition there. The state machine will advance into state A with the probability
      specified, and into the state B with the converse probability. Using the same value for states A
      and B, or a probability of 1.0 effectively makes this a linear flow with no variation possible.
      Referring to an undefined state in the state machine will terminate the state machine's flow.

  The state model representation also allows for unattended operation of devices (simply set
  the flag whether it involves the user to false). Similarly, states that involve the user but no appliance (e.g.
  eating) can be modeled by setting the appliance ID to an undefined value (e.g., 0), but specifing a non-zero duration.

  There is no need to add a "start" state, yet an initial state with a duration of 0 seconds
  can be added for the sake of better readability. Likewise, a state relying on an undefined
  appliance (e.g., '0') with non-zero duration can act as a delay in-between states.

  An example activity model for vacuuming the apartment is shown as follows. It assigns ID 1 to the
  VACUUMCLEANER appliance, and runs this appliance as long (or short) as stored in the appliance model.
  The user must be present both during the start of the activity (`involves_user`) as well as throughout
  its operation (`run_to_completion`). After one room has been vaccumed, the user rests for 5-10 minutes,
  before vacuuming another room (at 20% probability) or stopping the activity (at 80% probability).

  ```
  [GENERAL]
  name = vacuuming

  [devices]
  1=VACUUMCLEANER

  [sequence]

  0=vacuum,         0,       0,          true,              true,   1,        1.0,       1,       1
  1=rest,         300,     600,          true,              true,   0,        0.2,       0,       2
  ```


  ANTgen uses the AMBAL format for its appliance models (i.e., XML files). A sample set
  of models is provided in the `appliances/` subdirectory of this repository.
  Newly extracted models can simply be copied into this directory.



  When executed with the `-p` option, a graphical user interface is brought up after the
  trace generation has completed. The user interface shows traces for total power demand
  as well as the demand of power per user, power per activity, and power per appliance.
  To use this feature, the `matplotlib` library must be installed.

  By clicking on the colored lines in the legend boxes (*not* their textual labels),
  the visibility of individual traces can be toggled from the view.



  The distribution of ANTgen ships with a few user, activity, and appliance models.
  Run the following command to create a synthetic trace for one user and a constantly
  running refrigerator, for the duration of 10 days.

  ```bash
  python3 antgen.py -m mapping.conf default.conf
  ```

  During its execution, ANTgen will output some logging information, an excerpt
  of which is shown as follows. Most of it should be self-explanatory.

  ```
             root [I] ANTgen started using 'default.conf' on 14-05-2020 at 14:16:25
             root [I] Output files will be stored in ./output
                  ...
        UserModel [I] User model successfully created for 'Household base load' (1 activity)
        UserModel [I] User model successfully created for 'Grumpy Grandma' (5 activities)
             root [I] ********************************************************************************
                  ...
        UserModel [I] First weekdaynature(s) for activity 1/1 (fridge) for 10 days...
    ActivityModel [I] Synthesis of 'fridge operation' done: 241 scheduled, 5 didn't fit
        UserModel [I] Generating load signature(s) for activity 1/5 (vacuum) for 10 days...
    ActivityModel [I] Synthesis of 'vacuuming' done: 8 runs scheduled
        UserModel [I] Generating load signature(s) for activity 2/5 (dishwashing) for 10 days...
    ActivityModel [I] Synthesis of 'dishwasher operation' done: 1 runs scheduled
        UserModel [I] Generating load signature(s) for activity 3/5 (tv) for 10 days...
    ActivityModel [I] Synthesis of 'watching TV' done: 13 runs scheduled
        UserModel [I] Generating load signature(s) for activity 4/5 (ironing) for 10 days...
    ActivityModel [I] Synthesis of 'ironing clothes' done: 4 runs scheduled
        UserModel [I] Generating load signature(s) for activity 5/5 (laundry) for 10 days...
    ActivityModel [I] Synthesis of 'washing a load of laundry' done: 3 runs scheduled
             root [I] Synthesis completed in 30.926 seconds
                  ...
             root [I] ********************************************************************************
             root [I] Trace duration (days)  :             10
             root [I] First weekday          :         friday
             root [I] # active devices       :             12
             root [I] # appliance operations :            553
             root [I] ---------------------------------------
             root [I]    VACUUMCLEANER #runs :              8
             root [I]   WASHINGMACHINE #runs :              3
             root [I]             IRON #runs :              4
             root [I]     REFRIGERATOR #runs :            241
             root [I]       DISHWASHER #runs :              1
             root [I]               TV #runs :             26
             root [I] ---------------------------------------
             root [I] Max. appl. concurrency :              2
             root [I] Random seed            :     1234567890
             root [I] Added noise            :           none
  ```

  If you have `matplotlib` installed, ANTgen can also provide a plot of the synthesis results.
  Simply invoke it with `-p` on the command line:

  ```bash
  python3 antgen.py -m mapping.conf -p default.conf
  ```

  ![Visualization when synthesizing default.conf](example1.png)

  ANTgen features two ways to make the output data a little harder to disaggregate.
  First, adding noise to the aggregate signal is possible by invoking ANTgen with the
  `-n` option. For example, `-n G200` will add 200 Watts of Gaussian noise (with
  a standard deviation of one tenth of the amplitude, i.e., 20W) to the aggregate signal.
  Second, you can use the `-a` switch to alternate the used appliance model for each activity.
  While all refrigerator cycles followed the exact same power consumption pattern in above
  diagram, a random model for the given appliance will be selected in this case (from the directory
  `appliances/REFRIGERATOR/dev20111228/`) for each operation of the refrigerator.


  ```bash
  python3 antgen.py -m mapping.conf -n G200 -a -d5 -p default.conf
  ```

  ![Visualization when synthesizing default.conf with extended options](example2.png)

  Other configuration files (including the ones that were used to create the synthetic data for
  the aforementioned ACM e-Energy 2020 publication) are located in the `testcases/` directory.



  Copyright (C) 2019-2020  Andreas Reinhardt <reinhardt@ieee.org>, TU Clausthal

  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  SOFTWARE.


pkgId: 2f91f746c0c8cfcc543b736c74a80e7d09f0b1afa6c607ab86c3e66e36519998
name: python-anthemav
arch: src
version: 1.4.2
epoch: 0
release: 1
summary: Python API for controlling Anthem Receivers
url: https://github.com/nugget/python-anthemav
rpm_license: LICENSE
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-anthemav-1.4.2-1.src.rpm
checksum_type: sha256
description:
  |Build Status| |GitHub release| |PyPI|
  This is a Python package to interface with
  `Anthem <http://www.anthemav.com>`__ AVM and MRX receivers and
  processors. It uses the asyncio library to maintain an object-based
  connection to the network port of the receiver with supporting methods
  and properties to poll and adjust the receiver settings.
  This package was created primarily to support an anthemav media_player
  platform for the `Home Assistant <https://home-assistant.io/>`__
  automation platform but it is structured to be general-purpose and
  should be usable for other applications as well.
  Important
  ~~~~~~~~~
  This package will maintain a persistant connection to the network
  control port which will prevent any other application from communicating
  with the receiver. This includes the Anthem iOS and Android remote
  control app as well as the ARC-2 room calibration software. You will
  need to disable any application that is using the library in order to
  run those other applications.


pkgId: dd9d592c802a215fa6ab8a86f33e3c64f0c345926290af840a50b1c6ba4e4a4a
name: python-anthropic
arch: src
version: 0.40.0
epoch: 0
release: 1
summary: The official Python library for the anthropic API
url: https://github.com/anthropics/anthropic-sdk-python
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-anthropic-0.40.0-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://img.shields.io/pypi/v/anthropic.svg)](https://pypi.org/project/anthropic/)

  The Anthropic Python library provides convenient access to the Anthropic REST API from any Python 3.8+
  application. It includes type definitions for all request params and response fields,
  and offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).



  The REST API documentation can be found on [docs.anthropic.com](https://docs.anthropic.com/claude/reference/). The full API of this library can be found in [api.md](https://github.com/anthropics/anthropic-sdk-python/tree/main/api.md).



  ```sh

  pip install anthropic
  ```



  The full API of this library can be found in [api.md](https://github.com/anthropics/anthropic-sdk-python/tree/main/api.md).

  ```python
  import os
  from anthropic import Anthropic

  client = Anthropic(
      api_key=os.environ.get("ANTHROPIC_API_KEY"),  # This is the default and can be omitted
  )

  message = client.messages.create(
      max_tokens=1024,
      messages=[
          {
              "role": "user",
              "content": "Hello, Claude",
          }
      ],
      model="claude-3-opus-20240229",
  )
  print(message.content)
  ```

  While you can provide an `api_key` keyword argument,
  we recommend using [python-dotenv](https://pypi.org/project/python-dotenv/)
  to add `ANTHROPIC_API_KEY="my-anthropic-api-key"` to your `.env` file
  so that your API Key is not stored in source control.



  Simply import `AsyncAnthropic` instead of `Anthropic` and use `await` with each API call:

  ```python
  import os
  import asyncio
  from anthropic import AsyncAnthropic

  client = AsyncAnthropic(
      api_key=os.environ.get("ANTHROPIC_API_KEY"),  # This is the default and can be omitted
  )


  async def main() -> None:
      message = await client.messages.create(
          max_tokens=1024,
          messages=[
              {
                  "role": "user",
                  "content": "Hello, Claude",
              }
          ],
          model="claude-3-opus-20240229",
      )
      print(message.content)


  asyncio.run(main())
  ```

  Functionality between the synchronous and asynchronous clients is otherwise identical.



  We provide support for streaming responses using Server Side Events (SSE).

  ```python
  from anthropic import Anthropic

  client = Anthropic()

  stream = client.messages.create(
      max_tokens=1024,
      messages=[
          {
              "role": "user",
              "content": "Hello, Claude",
          }
      ],
      model="claude-3-opus-20240229",
      stream=True,
  )
  for event in stream:
      print(event.type)
  ```

  The async client uses the exact same interface.

  ```python
  from anthropic import AsyncAnthropic

  client = AsyncAnthropic()

  stream = await client.messages.create(
      max_tokens=1024,
      messages=[
          {
              "role": "user",
              "content": "Hello, Claude",
          }
      ],
      model="claude-3-opus-20240229",
      stream=True,
  )
  async for event in stream:
      print(event.type)
  ```



  This library provides several conveniences for streaming messages, for example:

  ```py
  import asyncio
  from anthropic import AsyncAnthropic

  client = AsyncAnthropic()

  async def main() -> None:
      async with client.messages.stream(
          max_tokens=1024,
          messages=[
              {
                  "role": "user",
                  "content": "Say hello there!",
              }
          ],
          model="claude-3-opus-20240229",
      ) as stream:
          async for text in stream.text_stream:
              print(text, end="", flush=True)
          print()

      message = await stream.get_final_message()
      print(message.to_json())

  asyncio.run(main())
  ```

  Streaming with `client.messages.stream(...)` exposes [various helpers for your convenience](https://github.com/anthropics/anthropic-sdk-python/tree/main/helpers.md) including accumulation & SDK-specific events.

  Alternatively, you can use `client.messages.create(..., stream=True)` which only returns an async iterable of the events in the stream and thus uses less memory (it does not build up a final message object for you).



  To get the token count for a message without creating it you can use the `client.beta.messages.count_tokens()` method. This takes the same `messages` list as the `.create()` method.

  ```py
  count = client.beta.messages.count_tokens(
      model="claude-3-5-sonnet-20241022",
      messages=[
          {"role": "user", "content": "Hello, world"}
      ]
  )
  count.input_tokens  # 10
  ```

  You can also see the exact usage for a given request through the `usage` response property, e.g.

  ```py
  message = client.messages.create(...)
  message.usage

  ```



  This SDK provides beta support for the [Message Batches API](https://docs.anthropic.com/en/docs/build-with-claude/message-batches) under the `client.beta.messages.batches` namespace.




  Message Batches take the exact same request params as the standard Messages API:

  ```python
  await client.beta.messages.batches.create(
      requests=[
          {
              "custom_id": "my-first-request",
              "params": {
                  "model": "claude-3-5-sonnet-20240620",
                  "max_tokens": 1024,
                  "messages": [{"role": "user", "content": "Hello, world"}],
              },
          },
          {
              "custom_id": "my-second-request",
              "params": {
                  "model": "claude-3-5-sonnet-20240620",
                  "max_tokens": 1024,
                  "messages": [{"role": "user", "content": "Hi again, friend"}],
              },
          },
      ]
  )
  ```




  Once a Message Batch has been processed, indicated by `.processing_status === 'ended'`, you can access the results with `.batches.results()`

  ```python
  result_stream = await client.beta.messages.batches.results(batch_id)
  async for entry in result_stream:
      if entry.result.type == "succeeded":
          print(entry.result.message.content)
  ```



  This SDK provides support for tool use, aka function calling. More details can be found in [the documentation](https://docs.anthropic.com/claude/docs/tool-use).



  This library also provides support for the [Anthropic Bedrock API](https://aws.amazon.com/bedrock/claude/) if you install this library with the `bedrock` extra, e.g. `pip install -U anthropic[bedrock]`.

  You can then import and instantiate a separate `AnthropicBedrock` class, the rest of the API is the same.

  ```py
  from anthropic import AnthropicBedrock

  client = AnthropicBedrock()

  message = client.messages.create(
      max_tokens=1024,
      messages=[
          {
              "role": "user",
              "content": "Hello!",
          }
      ],
      model="anthropic.claude-3-sonnet-20240229-v1:0",
  )
  print(message)
  ```

  The bedrock client supports the following arguments for authentication

  ```py
  AnthropicBedrock(
    aws_profile='...',
    aws_region='us-east'
    aws_secret_key='...',
    aws_access_key='...',
    aws_session_token='...',
  )
  ```

  For a more fully fledged example see [`examples/bedrock.py`](https://github.com/anthropics/anthropic-sdk-python/blob/main/examples/bedrock.py).



  This library also provides support for the [Anthropic Vertex API](https://cloud.google.com/vertex-ai?hl=en) if you install this library with the `vertex` extra, e.g. `pip install -U anthropic[vertex]`.

  You can then import and instantiate a separate `AnthropicVertex`/`AsyncAnthropicVertex` class, which has the same API as the base `Anthropic`/`AsyncAnthropic` class.

  ```py
  from anthropic import AnthropicVertex

  client = AnthropicVertex()

  message = client.messages.create(
      model="claude-3-sonnet@20240229",
      max_tokens=100,
      messages=[
          {
              "role": "user",
              "content": "Hello!",
          }
      ],
  )
  print(message)
  ```

  For a more complete example see [`examples/vertex.py`](https://github.com/anthropics/anthropic-sdk-python/blob/main/examples/vertex.py).



  Nested request parameters are [TypedDicts](https://docs.python.org/3/library/typing.html#typing.TypedDict). Responses are [Pydantic models](https://docs.pydantic.dev) which also provide helper methods for things like:

  - Serializing back into JSON, `model.to_json()`
  - Converting to a dictionary, `model.to_dict()`

  Typed requests and responses provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `basic`.



  List methods in the Anthropic API are paginated.

  This library provides auto-paginating iterators with each list response, so you do not have to request successive pages manually:

  ```python
  from anthropic import Anthropic

  client = Anthropic()

  all_batches = []

  for batch in client.beta.messages.batches.list(
      limit=20,
  ):
      
      all_batches.append(batch)
  print(all_batches)
  ```

  Or, asynchronously:

  ```python
  import asyncio
  from anthropic import AsyncAnthropic

  client = AsyncAnthropic()


  async def main() -> None:
      all_batches = []
      
      async for batch in client.beta.messages.batches.list(
          limit=20,
      ):
          all_batches.append(batch)
      print(all_batches)


  asyncio.run(main())
  ```

  Alternatively, you can use the `.has_next_page()`, `.next_page_info()`, or `.get_next_page()` methods for more granular control working with pages:

  ```python
  first_page = await client.beta.messages.batches.list(
      limit=20,
  )
  if first_page.has_next_page():
      print(f"will fetch next page using these details: {first_page.next_page_info()}")
      next_page = await first_page.get_next_page()
      print(f"number of items we just fetched: {len(next_page.data)}")


  ```

  Or just work directly with the returned data:

  ```python
  first_page = await client.beta.messages.batches.list(
      limit=20,
  )

  print(f"next page cursor: {first_page.last_id}")  # => "next page cursor: ..."
  for batch in first_page.data:
      print(batch.id)


  ```



  When the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `anthropic.APIConnectionError` is raised.

  When the API returns a non-success status code (that is, 4xx or 5xx
  response), a subclass of `anthropic.APIStatusError` is raised, containing `status_code` and `response` properties.

  All errors inherit from `anthropic.APIError`.

  ```python
  import anthropic
  from anthropic import Anthropic

  client = Anthropic()

  try:
      client.messages.create(
          max_tokens=1024,
          messages=[
              {
                  "role": "user",
                  "content": "Hello, Claude",
              }
          ],
          model="claude-3-opus-20240229",
      )
  except anthropic.APIConnectionError as e:
      print("The server could not be reached")
      print(e.__cause__)  # an underlying Exception, likely raised within httpx.
  except anthropic.RateLimitError as e:
      print("A 429 status code was received; we should back off a bit.")
  except anthropic.APIStatusError as e:
      print("Another non-200-range status code was received")
      print(e.status_code)
      print(e.response)
  ```

  Error codes are as followed:

  | Status Code | Error Type                 |
  | ----------- | -------------------------- |
  | 400         | `BadRequestError`          |
  | 401         | `AuthenticationError`      |
  | 403         | `PermissionDeniedError`    |
  | 404         | `NotFoundError`            |
  | 422         | `UnprocessableEntityError` |
  | 429         | `RateLimitError`           |
  | >=500       | `InternalServerError`      |
  | N/A         | `APIConnectionError`       |



  > For more information on debugging requests, see [these docs](https://docs.anthropic.com/en/api/errors#request-id)

  All object responses in the SDK provide a `_request_id` property which is added from the `request-id` response header so that you can quickly log failing requests and report them back to Anthropic.

  ```python
  message = client.messages.create(
      max_tokens=1024,
      messages=[
          {
              "role": "user",
              "content": "Hello, Claude",
          }
      ],
      model="claude-3-opus-20240229",
  )
  print(message._request_id)  # req_018EeWyXxfu5pfWkrYcMdjWG
  ```

  Note that unlike other properties that use an `_` prefix, the `_request_id` property
  *is* public. Unless documented otherwise, *all* other `_` prefix properties,
  methods and modules are *private*.



  Certain errors are automatically retried 2 times by default, with a short exponential backoff.
  Connection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,
  429 Rate Limit, and >=500 Internal errors are all retried by default.

  You can use the `max_retries` option to configure or disable retry settings:

  ```python
  from anthropic import Anthropic


  client = Anthropic(
      
      max_retries=0,
  )


  client.with_options(max_retries=5).messages.create(
      max_tokens=1024,
      messages=[
          {
              "role": "user",
              "content": "Hello, Claude",
          }
      ],
      model="claude-3-opus-20240229",
  )
  ```



  By default requests time out after 10 minutes. You can configure this with a `timeout` option,
  which accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/#fine-tuning-the-configuration) object:

  ```python
  from anthropic import Anthropic


  client = Anthropic(
      
      timeout=20.0,
  )


  client = Anthropic(
      timeout=httpx.Timeout(60.0, read=5.0, write=10.0, connect=2.0),
  )


  client.with_options(timeout=5.0).messages.create(
      max_tokens=1024,
      messages=[
          {
              "role": "user",
              "content": "Hello, Claude",
          }
      ],
      model="claude-3-opus-20240229",
  )
  ```

  On timeout, an `APITimeoutError` is thrown.

  Note that requests that time out are [retried twice by default](https://github.com/anthropics/anthropic-sdk-python/tree/main/#retries).



  We automatically send the `anthropic-version` header set to `2023-06-01`.

  If you need to, you can override it by setting default headers per-request or on the client object.

  Be aware that doing so may result in incorrect types and other unexpected or undefined behavior in the SDK.

  ```python
  from anthropic import Anthropic

  client = Anthropic(
      default_headers={"anthropic-version": "My-Custom-Value"},
  )
  ```





  We use the standard library [`logging`](https://docs.python.org/3/library/logging.html) module.

  You can enable logging by setting the environment variable `ANTHROPIC_LOG` to `info`.

  ```shell
  $ export ANTHROPIC_LOG=info
  ```

  Or to `debug` for more verbose logging.



  In an API response, a field may be explicitly `null`, or missing entirely; in either case, its value is `None` in this library. You can differentiate the two cases with `.model_fields_set`:

  ```py
  if response.my_field is None:
    if 'my_field' not in response.model_fields_set:
      print('Got json like {}, without a "my_field" key present at all.')
    else:
      print('Got json like {"my_field": null}.')
  ```



  The "raw" Response object can be accessed by prefixing `.with_raw_response.` to any HTTP method call, e.g.,

  ```py
  from anthropic import Anthropic

  client = Anthropic()
  response = client.messages.with_raw_response.create(
      max_tokens=1024,
      messages=[{
          "role": "user",
          "content": "Hello, Claude",
      }],
      model="claude-3-opus-20240229",
  )
  print(response.headers.get('X-My-Header'))

  message = response.parse()  # get the object that `messages.create()` would have returned
  print(message.content)
  ```

  These methods return an [`LegacyAPIResponse`](https://github.com/anthropics/anthropic-sdk-python/tree/main/src/anthropic/_legacy_response.py) object. This is a legacy class as we're changing it slightly in the next major version.

  For the sync client this will mostly be the same with the exception
  of `content` & `text` will be methods instead of properties. In the
  async client, all methods will be async.

  A migration script will be provided & the migration in general should
  be smooth.



  The above interface eagerly reads the full response body when you make the request, which may not always be what you want.

  To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.

  As such, `.with_streaming_response` methods return a different [`APIResponse`](https://github.com/anthropics/anthropic-sdk-python/tree/main/src/anthropic/_response.py) object, and the async client returns an [`AsyncAPIResponse`](https://github.com/anthropics/anthropic-sdk-python/tree/main/src/anthropic/_response.py) object.

  ```python
  with client.messages.with_streaming_response.create(
      max_tokens=1024,
      messages=[
          {
              "role": "user",
              "content": "Hello, Claude",
          }
      ],
      model="claude-3-opus-20240229",
  ) as response:
      print(response.headers.get("X-My-Header"))

      for line in response.iter_lines():
          print(line)
  ```

  The context manager is required so that the response will reliably be closed.



  This library is typed for convenient access to the documented API.

  If you need to access undocumented endpoints, params, or response properties, the library can still be used.



  To make requests to undocumented endpoints, you can make requests using `client.get`, `client.post`, and other
  http verbs. Options on the client will be respected (such as retries) when making this
  request.

  ```py
  import httpx

  response = client.post(
      "/foo",
      cast_to=httpx.Response,
      body={"my_param": True},
  )

  print(response.headers.get("x-foo"))
  ```



  If you want to explicitly send an extra param, you can do so with the `extra_query`, `extra_body`, and `extra_headers` request
  options.



  To access undocumented response properties, you can access the extra fields like `response.unknown_prop`. You
  can also get all the extra fields on the Pydantic model as a dict with
  [`response.model_extra`](https://docs.pydantic.dev/latest/api/base_model/#pydantic.BaseModel.model_extra).



  You can directly override the [httpx client](https://www.python-httpx.org/api/#client) to customize it for your use case, including:

  - Support for proxies
  - Custom transports
  - Additional [advanced](https://www.python-httpx.org/advanced/clients/) functionality

  ```python
  from anthropic import Anthropic, DefaultHttpxClient

  client = Anthropic(
      
      base_url="http://my.test.server.example.com:8083",
      http_client=DefaultHttpxClient(
          proxies="http://my.test.proxy.example.com",
          transport=httpx.HTTPTransport(local_address="0.0.0.0"),
      ),
  )
  ```

  You can also customize the client on a per-request basis by using `with_options()`:

  ```python
  client.with_options(http_client=DefaultHttpxClient(...))
  ```



  By default the library closes underlying HTTP connections whenever the client is [garbage collected](https://docs.python.org/3/reference/datamodel.html#object.__del__). You can manually close the client using the `.close()` method if desired, or with a context manager that closes when exiting.



  This package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:

  1. Changes that only affect static types, without breaking runtime behavior.
  2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals)_.
  3. Changes that we do not expect to impact the vast majority of users in practice.

  We take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.

  We are keen for your feedback; please open an [issue](https://www.github.com/anthropics/anthropic-sdk-python/issues) with questions, bugs, or suggestions.



  If you've upgraded to the latest version but aren't seeing any new features you were expecting then your python environment is likely still using an older version.

  You can determine the version that is being used at runtime with:

  ```py
  import anthropic
  print(anthropic.__version__)
  ```



  Python 3.8 or higher.



  See [the contributing documentation](https://github.com/anthropics/anthropic-sdk-python/tree/main/./CONTRIBUTING.md).


pkgId: 92f52307b42af60be1faf1e1879fa58dd55119fb40fd9983901fe50046399869
name: python-anthropic-bedrock
arch: src
version: 0.8.0
epoch: 0
release: 1
summary: The official Python library for the anthropic-bedrock API
url: https://github.com/anthropics/anthropic-bedrock-python
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-anthropic-bedrock-0.8.0-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://img.shields.io/pypi/v/anthropic-bedrock.svg)](https://pypi.org/project/anthropic-bedrock/)

  The Anthropic Bedrock Python library provides convenient access to the [Anthropic Bedrock](https://docs.anthropic.com/claude/docs/claude-on-amazon-bedrock) REST API from any Python 3.7+
  application. It includes type definitions for all request params and response fields,
  and offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).

  For the non-Bedrock Anthropic API at api.anthropic.com, see [`anthropic-python`](https://github.com/anthropics/anthropic-sdk-python).



  The REST API documentation can be found [on docs.anthropic.com](https://docs.anthropic.com/claude/reference/). The full API of this library can be found in [api.md](https://www.github.com/anthropics/anthropic-bedrock-python/blob/main/api.md).



  ```sh
  pip install anthropic-bedrock
  ```



  The full API of this library can be found in [api.md](https://www.github.com/anthropics/anthropic-bedrock-python/blob/main/api.md).

  ```python
  import anthropic_bedrock
  from anthropic_bedrock import AnthropicBedrock

  client = AnthropicBedrock(
      
      
      aws_access_key="<access key>",
      aws_secret_key="<secret key>",
      
      
      aws_session_token="<session_token>",
      
      
      aws_region="us-east-2",
  )

  completion = client.completions.create(
      model="anthropic.claude-v2:1",
      max_tokens_to_sample=256,
      prompt=f"{anthropic_bedrock.HUMAN_PROMPT} how does a court case get to the Supreme Court? {anthropic_bedrock.AI_PROMPT}",
  )
  print(completion.completion)
  ```

  > This library uses [botocore](https://github.com/boto/botocore) internally for authentication; you can read more about the default providers [here](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html).



  Simply import `AsyncAnthropicBedrock` instead of `AnthropicBedrock` and use `await` with each API call:

  ```python
  import anthropic_bedrock
  from anthropic_bedrock import AsyncAnthropicBedrock

  client = AsyncAnthropicBedrock()


  async def main():
      completion = await client.completions.create(
          model="anthropic.claude-v2:1",
          max_tokens_to_sample=256,
          prompt=f"{anthropic_bedrock.HUMAN_PROMPT} how does a court case get to the Supreme Court? {anthropic_bedrock.AI_PROMPT}",
      )
      print(completion.completion)


  asyncio.run(main())
  ```

  Functionality between the synchronous and asynchronous clients is otherwise identical.



  We provide support for streaming responses using Server Side Events (SSE).

  ```python
  from anthropic_bedrock import AnthropicBedrock, HUMAN_PROMPT, AI_PROMPT

  client = AnthropicBedrock()

  stream = client.completions.create(
      prompt=f"{HUMAN_PROMPT} Your prompt here{AI_PROMPT}",
      max_tokens_to_sample=300,
      model="anthropic.claude-v2:1",
      stream=True,
  )
  for completion in stream:
      print(completion.completion, end="", flush=True)
  ```

  The async client uses the exact same interface.

  ```python
  from anthropic_bedrock import AsyncAnthropicBedrock, HUMAN_PROMPT, AI_PROMPT

  client = AsyncAnthropicBedrock()

  stream = await client.completions.create(
      prompt=f"{HUMAN_PROMPT} Your prompt here{AI_PROMPT}",
      max_tokens_to_sample=300,
      model="anthropic.claude-v2:1",
      stream=True,
  )
  async for completion in stream:
      print(completion.completion, end="", flush=True)
  ```



  Nested request parameters are [TypedDicts](https://docs.python.org/3/library/typing.html#typing.TypedDict). Responses are [Pydantic models](https://docs.pydantic.dev), which provide helper methods for things like:

  - Serializing back into JSON, `model.model_dump_json(indent=2, exclude_unset=True)`
  - Converting to a dictionary, `model.model_dump(exclude_unset=True)`

  Typed requests and responses provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `basic`.



  You can estimate billing for a given request with the `client.count_tokens()` method, eg:

  ```py
  client = AnthropicBedrock()
  client.count_tokens('Hello world!')  # 3
  ```



  When the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `anthropic_bedrock.APIConnectionError` is raised.

  When the API returns a non-success status code (that is, 4xx or 5xx
  response), a subclass of `anthropic_bedrock.APIStatusError` is raised, containing `status_code` and `response` properties.

  All errors inherit from `anthropic_bedrock.APIError`.

  ```python
  import anthropic_bedrock
  from anthropic_bedrock import AnthropicBedrock

  client = AnthropicBedrock()

  try:
      client.completions.create(
          prompt=f"{anthropic_bedrock.HUMAN_PROMPT} Your prompt here {anthropic_bedrock.AI_PROMPT}",
          max_tokens_to_sample=256,
          model="anthropic.claude-v2:1",
      )
  except anthropic_bedrock.APIConnectionError as e:
      print("The server could not be reached")
      print(e.__cause__)  # an underlying Exception, likely raised within httpx.
  except anthropic_bedrock.RateLimitError as e:
      print("A 429 status code was received; we should back off a bit.")
  except anthropic_bedrock.APIStatusError as e:
      print("Another non-200-range status code was received")
      print(e.status_code)
      print(e.response)
  ```

  Error codes are as followed:

  | Status Code | Error Type                 |
  | ----------- | -------------------------- |
  | 400         | `BadRequestError`          |
  | 401         | `AuthenticationError`      |
  | 403         | `PermissionDeniedError`    |
  | 404         | `NotFoundError`            |
  | 422         | `UnprocessableEntityError` |
  | 429         | `RateLimitError`           |
  | >=500       | `InternalServerError`      |
  | N/A         | `APIConnectionError`       |



  Certain errors are automatically retried 2 times by default, with a short exponential backoff.
  Connection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,
  429 Rate Limit, and >=500 Internal errors are all retried by default.

  You can use the `max_retries` option to configure or disable retry settings:

  ```python
  from anthropic_bedrock import AnthropicBedrock, HUMAN_PROMPT, AI_PROMPT


  client = AnthropicBedrock(
      
      max_retries=0,
  )


  client.with_options(max_retries=5).completions.create(
      prompt=f"{HUMAN_PROMPT} Can you help me effectively ask for a raise at work?{AI_PROMPT}",
      max_tokens_to_sample=300,
      model="anthropic.claude-v2:1",
  )
  ```



  By default requests time out after 10 minutes. You can configure this with a `timeout` option,
  which accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/#fine-tuning-the-configuration) object:

  ```python
  from anthropic_bedrock import AnthropicBedrock, HUMAN_PROMPT, AI_PROMPT


  client = AnthropicBedrock(
      
      timeout=20.0,
  )


  client = AnthropicBedrock(
      timeout=httpx.Timeout(60.0, read=5.0, write=10.0, connect=2.0),
  )


  client.with_options(timeout=5 * 1000).completions.create(
      prompt=f"{HUMAN_PROMPT} Where can I get a good coffee in my neighbourhood?{AI_PROMPT}",
      max_tokens_to_sample=300,
      model="anthropic.claude-v2:1",
  )
  ```

  On timeout, an `APITimeoutError` is thrown.

  Note that requests that time out are [retried twice by default](#retries).





  We use the standard library [`logging`](https://docs.python.org/3/library/logging.html) module.

  You can enable logging by setting the environment variable `ANTHROPIC_BEDROCK_LOG` to `debug`.

  ```shell
  $ export ANTHROPIC_BEDROCK_LOG=debug
  ```



  In an API response, a field may be explicitly `null`, or missing entirely; in either case, its value is `None` in this library. You can differentiate the two cases with `.model_fields_set`:

  ```py
  if response.my_field is None:
    if 'my_field' not in response.model_fields_set:
      print('Got json like {}, without a "my_field" key present at all.')
    else:
      print('Got json like {"my_field": null}.')
  ```



  The "raw" Response object can be accessed by prefixing `.with_raw_response.` to any HTTP method call, e.g.,

  ```py
  from anthropic_bedrock import AnthropicBedrock, HUMAN_PROMPT, AI_PROMPT

  client = AnthropicBedrock()

  response = client.completions.with_raw_response.create(
      prompt=f"{HUMAN_PROMPT} Your prompt here{AI_PROMPT}",
      max_tokens_to_sample=300,
      model="anthropic.claude-v2:1",
  )
  print(response.headers.get('X-My-Header'))

  completion = response.parse()  # get the object that `completions.create()` would have returned
  print(completion.completion)
  ```

  These methods return an [`LegacyAPIResponse`](https://github.com/anthropics/anthropic-bedrock-python/tree/main/src/anthropic_bedrock/_legacy_response.py) object. This is a legacy class as we're changing it slightly in the next major version.

  For the sync client this will mostly be the same with the exception
  of `content` & `text` will be methods instead of properties. In the
  async client, all methods will be async.

  A migration script will be provided & the migration in general should
  be smooth.



  The above interface eagerly reads the full response body when you make the request, which may not always be what you want.

  To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.

  As such, `.with_streaming_response` methods return a different [`APIResponse`](https://github.com/anthropics/anthropic-bedrock-python/tree/main/src/anthropic_bedrock/_response.py) object, and the async client returns an [`AsyncAPIResponse`](https://github.com/anthropics/anthropic-bedrock-python/tree/main/src/anthropic_bedrock/_response.py) object.

  ```python
  with client.completions.with_streaming_response.create(
      max_tokens_to_sample=300,
      model="claude-2.1",
      prompt=f"{HUMAN_PROMPT} Where can I get a good coffee in my neighbourhood?{AI_PROMPT}",
  ) as response:
      print(response.headers.get("X-My-Header"))

      for line in response.iter_lines():
          print(line)
  ```

  The context manager is required so that the response will reliably be closed.



  You can directly override the [httpx client](https://www.python-httpx.org/api/#client) to customize it for your use case, including:

  - Support for proxies
  - Custom transports
  - Additional [advanced](https://www.python-httpx.org/advanced/#client-instances) functionality

  ```python
  import httpx
  from anthropic_bedrock import AnthropicBedrock

  client = AnthropicBedrock(
      
      base_url="http://my.test.server.example.com:8083",
      http_client=httpx.Client(
          proxies="http://my.test.proxy.example.com",
          transport=httpx.HTTPTransport(local_address="0.0.0.0"),
      ),
      aws_secret_key="<secret key>",
      aws_access_key="<access key>",
      aws_region="us-east-2",
  )
  ```



  By default the library closes underlying HTTP connections whenever the client is [garbage collected](https://docs.python.org/3/reference/datamodel.html#object.__del__). You can manually close the client using the `.close()` method if desired, or with a context manager that closes when exiting.



  This package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:

  1. Changes that only affect static types, without breaking runtime behavior.
  2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals)_.
  3. Changes that we do not expect to impact the vast majority of users in practice.

  We take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.

  We are keen for your feedback; please open an [issue](https://www.github.com/anthropics/anthropic-bedrock-python/issues) with questions, bugs, or suggestions.



  Python 3.7 or higher.


pkgId: 65a150fce8e4324567553560457823a0f1c2bcbd55b3eb72456bcfe024da0cf2
name: python-anthropic-haystack
arch: src
version: 1.1.0
epoch: 0
release: 1
summary: An integration of Anthropic Claude models into the Haystack framework.
url: https://pypi.org/project/anthropic-haystack/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-anthropic-haystack-1.1.0-1.src.rpm
checksum_type: sha256
description:
  **Table of Contents**
  - [Installation](#installation)
  - [Contributing](#contributing)
  - [Examples](#examples)
  - [License](#license)

  ```console
  pip install anthropic-haystack
  ```

  `hatch` is the best way to interact with this project, to install it:
  ```sh
  pip install hatch
  ```
  With `hatch` installed, to run all the tests:
  ```
  hatch run test
  ```
  > Note: there are no integration tests for this project.
  To run the linters `ruff` and `mypy`:
  ```
  hatch run lint:all
  ```

  You can find an example of how to do a simple RAG with Claude using online documentation in the `example/` folder of this repo.

  `anthropic-haystack` is distributed under the terms of the [Apache-2.0](https://spdx.org/licenses/Apache-2.0.html) license.


pkgId: 1895ec2d3ced05a538b97408ab51b5a55733d779a4b5eaac1a4f442ea373c00f
name: python-anthunder
arch: src
version: 0.8.1
epoch: 0
release: 1
summary: an(t)thunder is a sofa-bolt protocol lib.
url: https://github.com/alipay/sofa-bolt-python
rpm_license: Apache License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-anthunder-0.8.1-1.src.rpm
checksum_type: sha256
description:
  anthunder(ant thunder) is a sofa-bolt library written in python.
  It supports RPC calling via 'sofa-bolt + protobuf' protocol.



  - python3 >= 3.5 (aio classes needs asyncio support)
  - python2.7 (limited support, needs extra 3rd party libraries)
  - mosn >= 1.3 (to use with version >= 0.6)
  - mosn < 1.3 (to use with version < 0.6)



  - [x] bolt client(protobuf serialization)
  - [x] service discover via mosn (sofa servicemesh sidecar)
  - [x] bolt server(protobuf serialization)
  - [ ] hessian2 serialization support




  0. Acquire `.proto` file
  1. Execute `protoc --python_out=. *.proto` to compile protobuf file, and get `_pb2.py` file.
  2. Import protobuf classes (postfixed with `_pb2`)

  ```python
  from SampleServicePbResult_pb2 import SampleServicePbResult
  from SampleServicePbRequest_pb2 import SampleServicePbRequest

  from anthunder import AioClient


  spanctx = SpanContext()         # generate a new context, an object of mytracer.SpanContext, stores rpc_trace_context.

  client = AioClient(my_app_name) # my_app_name will be send to sidecar as caller name.
                                  

  interface = 'com.alipay.rpc.common.service.facade.pb.SampleServicePb:1.0'


  client.subscribe(interface)


  content = client.invoke_sync(interface, "hello",
                               SampleServicePbRequest(name=some_name).SerializeToString(),
                               timeout_ms=500, spanctx=spanctx)
  result = SampleServicePbResult()
  result.ParseFromString(content)



  def client_callback(resp):
      
      
      result = SampleServicePbResult()
      result.ParseFromString(content)
      

  future = client.invoke_async(interface, "hello",
                               SampleServicePbRequest(name=some_name).SerializeToString(),
                               spanctx=spanctx, callback=client_callback)
  )

  ```

  See project's unittest for runnable demo



  ```python
  from anthunder.listener import aio_listener

  class SampleService(object):
      def __init__(self, ctx):
          
          self.ctx = ctx

      def hello(self, bs: bytes):
          obj = SampleServicePbRequest()
          obj.ParseFromString(bs)
          print("Processing Request", obj)
          return SampleServicePbResult(result=obj.name).SerializeToString()


  listener = aio_listener.AioListener(('127.0.0.1', 12200), "test_app")

  listener.handler.register_interface("com.alipay.rpc.common.service.facade.pb.SampleServicePb:1.0",
                                      SampleService)

  listener.run_threading()

  listener.run_forever()


  listener.publish()


  listener.shutdown()

  ```



  Copyright (c) 2018-present, Ant Financial Service Group

  Apache License 2.0

  See LICENSE file.



  Part of the mysockpool package uses codes from [urllib3](https://github.com/urllib3/urllib3) project
  under the term of MIT License. See origin-license.txt under the mysockpool package.






   - fix a infinite loop bug when parsing protocol



   - fix server errors under python2.7



   - support antsharecloud parameters.



   - fix various errors under python2.7



   - sofa trace rpc id may contains str.


pkgId: cd0eca2b18835a788fb43297866c32b4d4625ed52dc20c93fba9a523f6eb35c6
name: python-antialiased-cnns
arch: src
version: 0.3
epoch: 0
release: 1
summary: Antialiased models and pooling layer from Zhang. Making Convnets Shift-Invariant Again. ICML 2019.
url: https://github.com/adobe/antialiased-cnns
rpm_license: Other/Proprietary License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antialiased-cnns-0.3-1.src.rpm
checksum_type: sha256
description:
  <img src='https://richzhang.github.io/antialiased-cnns/resources/gifs2/video_00810.gif' align="right" width=300>

  **Making Convolutional Networks Shift-Invariant Again** <br>
  [Richard Zhang](https://richzhang.github.io/). In [ICML, 2019](https://arxiv.org/abs/1904.11486).



  Run `pip install antialiased-cnns`

  ```python
  import antialiased_cnns
  model = antialiased_cnns.resnet50(pretrained=True)
  ```
  <!-- model.load_state_dict(torch.load('resnet50_lpf4-994b528f.pth.tar')['state_dict']) # load weights; download it beforehand from https://www.dropbox.com/s/zqsudi0oz5ym8w8/resnet50_lpf4-994b528f.pth.tar?dl=0 -->

  <!-- Now you are antialiased! -->

  If you have a model already and want to antialias and continue training, copy your old weights over:

  ``` python
  import torchvision.models as models
  old_model = models.resnet50(pretrained=True) # old (aliased) model
  antialiased_cnns.copy_params_buffers(old_model, model) # copy the weights over
  ```

  If you want to modify your own model, use the BlurPool layer. More information about our provided models and how to use BlurPool is below.

  ```python
  C = 10 # example feature channel size
  blurpool = antialiased_cnns.BlurPool(C, stride=2) # BlurPool layer; use to downsample a feature map
  ex_tens = torch.Tensor(1,C,128,128)
  print(blurpool(ex_tens).shape) # 1xCx64x64 tensor
  ```

  **Updates**
  * **(Oct 2020) Finetune** I initialize the antialiased model with weights from baseline model, and finetune. Before, I was training from scratch. The results are better.
  * **(Oct 2020) Additional models** We now have 23 total model variants. I added variants of vgg, densenet, resnext, wide resnet varieties! The same conclusions hold.
  * **(Sept 2020) Pip install** You can also now `pip install antialiased-cnns` and load models with the `pretrained=True` flag.
  * **(Sept 2020) Kernel 4** I have added kernel size 4 experiments. When downsampling an even sized feature map (e.g., a 128x128-->64x64), this is actually the correct size to use to keep the indices from drifting.



  1. [More information about antialiased models](#1-more-information-loading-an-antialiased-model)<br>
  2. [Instructions for antialiasing your own model](#2-more-information-how-to-antialias-your-own-architecture), using the [`BlurPool`](antialiased_cnns/__init__.py) layer<br>
  3. [ImageNet training and evaluation code](README_IMAGENET.md). Achieving better consistency, while maintaining or improving accuracy, is an open problem. Help improve the results!



  Pip install this package

  - `pip install antialiased-cnns`

  Or clone this repository and install requirements (notably, PyTorch)

  ```bash

  https://github.com/adobe/antialiased-cnns.git
  cd antialiased-cnns
  pip install -r requirements.txt
  ```




  The following loads a pretrained antialiased model, perhaps as a backbone for your application.

  ```python
  import antialiased_cnns
  model = antialiased_cnns.resnet50(pretrained=True, filter_size=4)
  ```

  We also provide weights for antialiased `AlexNet`, `VGG16(bn)`, `Resnet18,34,50,101`, `Densenet121`, and `MobileNetv2` (see [example_usage.py](example_usage.py)).



  The `antialiased_cnns` module contains the `BlurPool` [class](antialiased_cnns/downsample.py), which does blur+subsampling. Run `pip install antialiased-cnns` or copy the `antialiased_cnns` subdirectory.

  **Methodology** The methodology is simple -- first evaluate with stride 1, and then use our `BlurPool` layer to do antialiased downsampling. Make the following architectural changes.

  ```python
  import antialiased_cnns


  baseline = nn.MaxPool2d(kernel_size=2, stride=2)
  antialiased = [nn.MaxPool2d(kernel_size=2, stride=1),
      antialiased_cnns.BlurPool(C, stride=2)]


  baseline = [nn.Conv2d(Cin, C, kernel_size=3, stride=2, padding=1),
      nn.ReLU(inplace=True)]
  antialiased = [nn.Conv2d(Cin, C, kernel_size=3, stride=1, padding=1),
      nn.ReLU(inplace=True),
      antialiased_cnns.BlurPool(C, stride=2)]


  baseline = nn.AvgPool2d(kernel_size=2, stride=2)
  antialiased = antialiased_cnns.BlurPool(C, stride=2)
  ```

  We assume incoming tensor has `C` channels. Computing a layer at stride 1 instead of stride 2 adds memory and run-time. As such, we typically skip antialiasing at the highest-resolution (early in the network), to prevent large increases.

  **Add antialiasing and then continue training** If you already trained a model, and then add antialiasing, you can fine-tune from that old model:

  ``` python
  antialiased_cnns.copy_params_buffers(old_model, antialiased_model)
  ```

  If this doesn't work, you can just copy the parameters (and not buffers). Adding antialiasing doesn't add any parameters, so the parameter lists are identical. (It does add buffers, so some heuristic is used to match the buffers, which may throw an error.)

  ``` python
  antialiased_cnns.copy_params(old_model, antialiased_model)
  ```

  <img src='https://richzhang.github.io/antialiased-cnns/resources/antialias_mod.jpg' width=800><br>



  We observe improvements in both **accuracy** (how often the image is classified correctly) and **consistency** (how often two shifts of the same image are classified the same).

  <img src='plots/plots2_acc.png' align="left" width=750>

  <img src='plots/plots2_con.png' align="left" width=750>

  | ACCURACY | Baseline | Antialiased | Delta |
  | :------: | :------: | :-------: | :-------: |
  | alexnet | 56.55 | 56.94 | +0.39 |
  | vgg11 | 69.02 | 70.51 | +1.49 |
  | vgg13 | 69.93 | 71.52 | +1.59 |
  | vgg16 | 71.59 | 72.96 | +1.37 |
  | vgg19 | 72.38 | 73.54 | +1.16 |
  | vgg11_bn | 70.38 | 72.63 | +2.25 |
  | vgg13_bn | 71.55 | 73.61 | +2.06 |
  | vgg16_bn | 73.36 | 75.13 | +1.77 |
  | vgg19_bn | 74.24 | 75.68 | +1.44 |
  | resnet18 | 69.74 | 71.67 | +1.93 |
  | resnet34 | 73.30 | 74.60 | +1.30 |
  | resnet50 | 76.16 | 77.41 | +1.25 |
  | resnet101 | 77.37 | 78.38 | +1.01 |
  | resnet152 | 78.31 | 79.07 | +0.76 |
  | resnext50_32x4d | 77.62 | 77.93 | +0.31 |
  | resnext101_32x8d | 79.31 | 79.33 | +0.02 |
  | wide_resnet50_2 | 78.47 | 78.70 | +0.23 |
  | wide_resnet101_2 | 78.85 | 78.99 | +0.14 |
  | densenet121 | 74.43 | 75.79 | +1.36 |
  | densenet169 | 75.60 | 76.73 | +1.13 |
  | densenet201 | 76.90 | 77.31 | +0.41 |
  | densenet161 | 77.14 | 77.88 | +0.74 |
  | mobilenet_v2 | 71.88 | 72.72 | +0.84 |

  | CONSISTENCY | Baseline | Antialiased | Delta |
  | :------: | :------: | :-------: | :-------: |
  | alexnet | 78.18 | 83.31 | +5.13 |
  | vgg11 | 86.58 | 90.09 | +3.51 |
  | vgg13 | 86.92 | 90.31 | +3.39 |
  | vgg16 | 88.52 | 90.91 | +2.39 |
  | vgg19 | 89.17 | 91.08 | +1.91 |
  | vgg11_bn | 87.16 | 90.67 | +3.51 |
  | vgg13_bn | 88.03 | 91.09 | +3.06 |
  | vgg16_bn | 89.24 | 91.58 | +2.34 |
  | vgg19_bn | 89.59 | 91.60 | +2.01 |
  | resnet18 | 85.11 | 88.36 | +3.25 |
  | resnet34 | 87.56 | 89.77 | +2.21 |
  | resnet50 | 89.20 | 91.32 | +2.12 |
  | resnet101 | 89.81 | 91.97 | +2.16 |
  | resnet152 | 90.92 | 92.42 | +1.50 |
  | resnext50_32x4d | 90.17 | 91.48 | +1.31 |
  | resnext101_32x8d | 91.33 | 92.67 | +1.34 |
  | wide_resnet50_2 | 90.77 | 92.46 | +1.69 |
  | wide_resnet101_2 | 90.93 | 92.10 | +1.17 |
  | densenet121 | 88.81 | 90.35 | +1.54 |
  | densenet169 | 89.68 | 90.61 | +0.93 |
  | densenet201 | 90.36 | 91.32 | +0.96 |
  | densenet161 | 90.82 | 91.66 | +0.84 |
  | mobilenet_v2 | 86.50 | 87.73 | +1.23 |

  To reduce clutter, extended results (different filter sizes) are [here](README_IMAGENET.md). Help improve the results!



  <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/80x15.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.

  All material is made available under [Creative Commons BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode) license by Adobe Inc. You can **use, redistribute, and adapt** the material for **non-commercial purposes**, as long as you give appropriate credit by **citing our paper** and **indicating any changes** that you've made.

  The repository builds off the PyTorch [examples repository](https://github.com/pytorch/examples) and torchvision [models repository](https://github.com/pytorch/vision/tree/master/torchvision/models). These are [BSD-style licensed](https://github.com/pytorch/examples/blob/master/LICENSE).



  If you find this useful for your research, please consider citing this [bibtex](https://richzhang.github.io/index_files/bibtex_icml2019.txt). Please contact Richard Zhang \<rizhang at adobe dot com\> with any comments or feedback.


pkgId: 02c02a65c711ebb2803b141547b70d535fed05b3d9ce610ef3bf274ad24b17d0
name: python-antibacterial-model
arch: src
version: 1.0.8
epoch: 0
release: 1
summary: A model for predicting antibacterial activity from SMILES strings
url: https://pypi.org/project/antibacterial-model/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antibacterial-model-1.0.8-1.src.rpm
checksum_type: sha256
description:
  A python package developed from a machine learning model for identifying antibacterial compounds from the SMILES format.



  These instructions will inform you how to use and run our developed package on your local machine for development and testing purposes. Read below on how to deploy the project on a live system.


  You can install the package using pip:

  ```bash
  pip install antibacterial-model
  ```

  How to use the prediction package is as follows:
  1. Import Antibacterial model package.
  2. Create an instance of Antibacterial model.
  3. Use the model to predict antibacterial activity from a text file containing SMILES structures.

  ```python

  from antibacterial_model import AntibacterialModel


  model = AntibacterialModel()


  model.predict('Your_SMILES_file.txt', 'Your_Prediction_output.txt')
  ```
  Finally, the output will be saved as a text file after prediction using the model.



  The **input file** must be a text file containing isomeric SMILES structures as shown in the example below:

  ```bash

  C1=CC=C(C(=C1)C(=O)O)O
  C1CCNC(C1)C2COC(O2)(C3=CC=CC=C3)C4=CC=CC=C4
  C(C(C(C(C(CO)O)O)O)O)O
  C1CC(CNC1)C(=O)NNC(=O)C2CCC3CN2C(=O)N3OS(=O)(=O)O
  C1=CN=CC=C1N
  ```
  The **output file** will be a text file containing SMILES structures and the prediction results as shown in the example:

  ```bash

  C1=CC=C(C(=C1)C(=O)O)O - Prediction : Active
  C1CCNC(C1)C2COC(O2)(C3=CC=CC=C3)C4=CC=CC=C4 - Prediction : Inactive
  C(C(C(C(C(CO)O)O)O)O)O - Prediction : Active
  C1CC(CNC1)C(=O)NNC(=O)C2CCC3CN2C(=O)N3OS(=O)(=O)O - Prediction : Inactive
  C1=CN=CC=C1N - Prediction : Inactive
  ```

  The prediction output consists of 2 values:
  - **Active:** a substance **with** antibacterial properties
  - **Inactive:** a substance **without** antibacterial properties


  The developed model is suitable only for Python language and must install libraries to match the version used by the researchers to run the code through the model for prediction results


  - Author: Chonthicha Arbsuwan, Jiratchaya  Nakbang
  - Email: chon7599@gmail.com, jiratchaya2356@gmail.com
  - Project URL: [GitHub](https://github.com/Chon26/Antibacterial-model)


pkgId: a5264303d3fabe706e8898e3c68223578beafead062edd0436312f727553ef0a
name: python-antiberty
arch: src
version: 0.1.3
epoch: 0
release: 1
summary: please add a summary manually as the author left a blank one
url: https://pypi.org/project/antiberty/
rpm_license: UNKNOWN
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-antiberty-0.1.3-1.src.rpm
checksum_type: sha256
description:
  Official repository for AntiBERTy, an antibody-specific transformer language model pre-trained on 558M natural antibody sequences, as described in [Deciphering antibody affinity maturation with language models and weakly supervised learning](https://arxiv.org/abs/2112.07782).



  To use AntiBERTy, install via pip:
  ```bash
  pip install antiberty
  ```

  Alternatively, you can clone this repository and install the package locally:
  ```bash
  $ git clone git@github.com:jeffreyruffolo/AntiBERTy.git
  $ pip install AntiBERTy
  ```





  To use AntiBERTy to generate sequence embeddings, use the `embed` function. The output is a list of embedding tensors, where each tensor is the embedding for the corresponding sequence. Each embedding has dimension `[(Length + 2) x 512]`.

  ```python
  from antiberty import AntiBERTyRunner

  antiberty = AntiBERTyRunner()

  sequences = [
      "EVQLVQSGPEVKKPGTSVKVSCKASGFTFMSSAVQWVRQARGQRLEWIGWIVIGSGNTNYAQKFQERVTITRDMSTSTAYMELSSLRSEDTAVYYCAAPYCSSISCNDGFDIWGQGTMVTVS",
      "DVVMTQTPFSLPVSLGDQASISCRSSQSLVHSNGNTYLHWYLQKPGQSPKLLIYKVSNRFSGVPDRFSGSGSGTDFTLKISRVEAEDLGVYFCSQSTHVPYTFGGGTKLEIK",
  ]
  embeddings = antiberty.embed(sequences)
  ```

  To access the attention matrices, pass the `return_attention` flag to the `embed` function. The output is a list of attention matrices, where each matrix is the attention matrix for the corresponding sequence. Each attention matrix has dimension `[Layer x Heads x (Length + 2) x (Length + 2)]`.

  ```python
  from antiberty import AntiBERTyRunner

  antiberty = AntiBERTyRunner()

  sequences = [
      "EVQLVQSGPEVKKPGTSVKVSCKASGFTFMSSAVQWVRQARGQRLEWIGWIVIGSGNTNYAQKFQERVTITRDMSTSTAYMELSSLRSEDTAVYYCAAPYCSSISCNDGFDIWGQGTMVTVS",
      "DVVMTQTPFSLPVSLGDQASISCRSSQSLVHSNGNTYLHWYLQKPGQSPKLLIYKVSNRFSGVPDRFSGSGSGTDFTLKISRVEAEDLGVYFCSQSTHVPYTFGGGTKLEIK",
  ]
  embeddings, attentions = antiberty.embed(sequences, return_attention=True)
  ```

  The `embed` function can also be used with masked sequences. Masked residues should be indicated with underscores.


  To use AntiBERTy to predict the species and chain type of sequences, use the `classify` function. The output is two lists of classifications for each sequences.

  ```python
  from antiberty import AntiBERTyRunner

  antiberty = AntiBERTyRunner()

  sequences = [
      "EVQLVQSGPEVKKPGTSVKVSCKASGFTFMSSAVQWVRQARGQRLEWIGWIVIGSGNTNYAQKFQERVTITRDMSTSTAYMELSSLRSEDTAVYYCAAPYCSSISCNDGFDIWGQGTMVTVS",
      "DVVMTQTPFSLPVSLGDQASISCRSSQSLVHSNGNTYLHWYLQKPGQSPKLLIYKVSNRFSGVPDRFSGSGSGTDFTLKISRVEAEDLGVYFCSQSTHVPYTFGGGTKLEIK",
  ]
  species_preds, chain_preds = antiberty.classify(sequences)
  ```

  The `classify` function can also be used with masked sequences. Masked residues should be indicated with underscores.


  To use AntiBERTy to predict the identity of masked residues, use the `fill_masks` function. Masked residues should be indicated with underscores. The output is a list of filled sequences, corresponding to the input masked sequences.

  ```python
  from antiberty import AntiBERTyRunner

  antiberty = AntiBERTyRunner()

  sequences = [
      "____VQSGPEVKKPGTSVKVSCKASGFTFMSSAVQWVRQARGQRLEWIGWIVIGSGN_NYAQKFQERVTITRDM__STAYMELSSLRSEDTAVYYCAAPYCSSISCNDGFD____GTMVTVS",
      "DVVMTQTPFSLPV__GDQASISCRSSQSLVHSNGNTY_HWYLQKPGQSPKLLIYKVSNRFSGVPDRFSG_GSGTDFTLKISRVEAEDLGVYFCSQSTHVPYTFGG__KLEIK",
  ]
  filled_sequences = antiberty.fill_masks(sequences)
  ```


  To use AntiBERTy to calculate the pseudo log-likelihood of a sequence, use the `pseudo_log_likelihood` function. The pseudo log-likelihood of a sequence is calculated as the average of per-residue masked log-likelihoods. The output is a list of pseudo log-likelihoods, corresponding to the input sequences.

  ```python
  from antiberty import AntiBERTyRunner

  antiberty = AntiBERTyRunner()

  sequences = [
      "EVQLVQSGPEVKKPGTSVKVSCKASGFTFMSSAVQWVRQARGQRLEWIGWIVIGSGNTNYAQKFQERVTITRDMSTSTAYMELSSLRSEDTAVYYCAAPYCSSISCNDGFDIWGQGTMVTVS",
      "DVVMTQSSTPFSLPVSLGDQASISCRSSQSLVHSNGNTYLHWYLQKPGQSPKLLIYKVSNRFSGVPDRFSGSGSGTDFTLKISRVEAEDLGVYFCSQSTHVPYTFGGGTKLEIK",
  ]

  pll = antiberty.pseudo_log_likelihood(sequences, batch_size=16)
  ```



  ```bibtex
  @article{ruffolo2021deciphering,
      title = {Deciphering antibody affinity maturation with language models and weakly supervised learning},
      author = {Ruffolo, Jeffrey A and Gray, Jeffrey J and Sulam, Jeremias},
      journal = {arXiv preprint arXiv:2112.07782},
      year= {2021}
  }
  ```


