# packages

pkgId: a6f963826b21ff2814bfb10dada3140e116098437571782dbc0bf44a92206546
name: python-pyhelper-utils-help
arch: noarch
version: 1.0.3
epoch: 0
release: 1
summary: Development documents and examples for pyhelper-utils
url: https://github.com/RedHatQE/pyhelper-utils
rpm_license: Apache-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyhelper-utils-1.0.3-1.src.rpm
location_href: Packages/python-pyhelper-utils-help-1.0.3-1.noarch.rpm
checksum_type: sha256
description:
  Repository for various python utilities



  ```bash
  python3 -m pip install pyhelper-utils
  ```





  - Export GitHub token

  ```bash
  export GITHUB_TOKEN=<your_github_token>
  ```

  - [release-it](https://github.com/release-it/release-it)

  - Run the following once (execute outside repository dir for example `~/`):

  ```bash
  sudo npm install --global release-it
  npm install --save-dev @j-ulrich/release-it-regex-bumper
  rm -f package.json package-lock.json
  ```



  - Create a release, run from the relevant branch.
    To create a new release, run:

  ```bash
  git checkout main
  git pull
  release-it # Follow the instructions
  ```



  Enables running a command against a remote server over SSH. It expects a host object, created using [python-rrmngmnt](https://github.com/rhevm-qe-automation/python-rrmngmnt).



  ```bash
  from rrmngmnt import Host, UserWithPKey
  host = Host("1.1.1.1")
  user = UserWithPKey('user', '/path/to/pkey'))
  host.executor_user =  user
  run_ssh_command(host=host, commands=shlex.split("ls -l"))
  ```


pkgId: 69344622ce7221864fac712faef706ed4b5c719effe3c99762e3f73c7bef63cf
name: python-pyhrp-help
arch: noarch
version: 1.1.0
epoch: 0
release: 1
summary: Development documents and examples for pyhrp
url: https://pypi.org/project/pyhrp/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyhrp-1.1.0-1.src.rpm
location_href: Packages/python-pyhrp-help-1.1.0-1.noarch.rpm
checksum_type: sha256
description:
  [![PyPI version](https://badge.fury.io/py/pyhrp.svg)](https://badge.fury.io/py/pyhrp)
  [![Apache 2.0 License](https://img.shields.io/badge/License-APACHEv2-brightgreen.svg)](https://github.com/tschm/pyhrp/blob/main/LICENSE)
  [![Downloads](https://static.pepy.tech/personalized-badge/pyhrp?period=month&units=international_system&left_color=black&right_color=orange&left_text=PyPI%20downloads%20per%20month)](https://pepy.tech/project/pyhrp)
  [![Coverage Status](https://coveralls.io/repos/github/tschm/pyhrp/badge.png?branch=main)](https://coveralls.io/github/tschm/pyhrp?branch=main)
  [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/tschm/pyhrp/main.svg)](https://results.pre-commit.ci/latest/github/tschm/pyhrp/main)

  A recursive implementation of the Hierarchical Risk Parity (hrp) approach
  by Marcos Lopez de Prado.
  We take heavily advantage of the scipy.cluster.hierarchy package.

  Here's a simple example

  ```python
  import pandas as pd
  from pyhrp.hrp import dist, linkage, tree, _hrp

  prices = pd.read_csv("test/resources/stock_prices.csv", index_col=0, parse_dates=True)

  returns = prices.pct_change().dropna(axis=0, how="all")
  cov, cor = returns.cov(), returns.corr()
  links = linkage(dist(cor.values), method='ward')
  node = tree(links)

  rootcluster = _hrp(node, cov)

  ax = dendrogram(links, orientation="left")
  ax.get_figure().savefig("dendrogram.png")
  ```

  For your convenience you can bypass the construction of the covariance and
  correlation matrix, the links and the node, e.g. the root of the tree (dendrogram).

  ```python
  import pandas as pd
  from pyhrp.hrp import hrp

  prices = pd.read_csv("test/resources/stock_prices.csv", index_col=0, parse_dates=True)
  root = hrp(prices=prices)
  ```

  You may expect a weight series here but instead the `hrp` function returns a
  `Cluster` object. The `Cluster` simplifies all further post-analysis.

  ```python
  print(cluster.weights)
  print(cluster.variance)

  print(cluster.left)
  print(cluster.right)



  We assume you share already the love for [Poetry](https://python-poetry.org).
  Once you have installed poetry you can perform

  ```bash
  make install
  ```

  to replicate the virtual environment we have defined in [pyproject.toml](pyproject.toml)
  and locked in [poetry.lock](poetry.lock).



  We install [JupyterLab](https://jupyter.org) on fly within the aforementioned
  virtual environment. Executing

  ```bash
  make jupyter
  ```

  will install and start the jupyter lab.


pkgId: 3b5241c19499d2b844234382e08c1a114bee817bf418eeac55b6f4db71c76792
name: python-pyht-help
arch: noarch
version: 0.1.9
epoch: 0
release: 1
summary: Development documents and examples for pyht
url: https://github.com/playht/pyht
rpm_license: Apache-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyht-0.1.9-1.src.rpm
location_href: Packages/python-pyht-help-0.1.9-1.noarch.rpm
checksum_type: sha256
description:
  **pyht** is a Python SDK for [Play's AI Text-to-Speech API](https://play.ht/text-to-speech-api/). Play builds conversational voice AI models for realtime use cases. With **pyht**, you can easily convert text into high-quality audio streams with humanlike voices.

  Currently the library supports only streaming and non-streaming text-to-speech. For the full set of functionalities provided by the Play API such as [Voice Cloning](https://docs.play.ht/reference/api-create-instant-voice-clone), see the [Play docs](https://docs.play.ht/reference/api-getting-started)



  - Stream text-to-speech in real-time, synchronous or asynchronous.
  - Generate non-streaming text-to-speech, synchronous or asynchronous.
  - Use Play's pre-built voices or your own custom voice clones.
  - Stream text from LLM, and generate audio stream in real-time.
  - Supports WAV, MP3, Mulaw, FLAC, and OGG audio formats as well as raw audio.
  - Supports 8KHz, 16KHz, 24KHz, 44.1KHz and 48KHz sample rates.



  - Python 3.8+
  - `aiohttp`
  - `filelock`
  - `grpc`
  - `requests`
  - `websockets`



  You can install the **pyht** SDK using pip:

  ```shell
  pip install pyht
  ```



  You can use the **pyht** SDK by creating a `Client` instance and calling its `tts` method. Here's a simple example:

  ```python
  from pyht import Client
  from dotenv import load_dotenv
  from pyht.client import TTSOptions
  import os
  load_dotenv()

  client = Client(
      user_id=os.getenv("PLAY_HT_USER_ID"),
      api_key=os.getenv("PLAY_HT_API_KEY"),
  )
  options = TTSOptions(voice="s3://voice-cloning-zero-shot/775ae416-49bb-4fb6-bd45-740f205d20a1/jennifersaad/manifest.json")
  for chunk in client.tts("Hi, I'm Jennifer from Play. How can I help you today?", options):
      
      print(type(chunk))
  ```

  It is also possible to stream text instead of submitting it as a string all at once:

  ```python
  for chunk in client.stream_tts_input(some_iterable_text_stream, options):
      
      print(type(chunk))
  ```

  An asyncio version of the client is also available:

  ```python
  from pyht import AsyncClient

  client = AsyncClient(
      user_id=os.getenv("PLAY_HT_USER_ID"),
      api_key=os.getenv("PLAY_HT_API_KEY"),
  )
  options = TTSOptions(voice="s3://voice-cloning-zero-shot/775ae416-49bb-4fb6-bd45-740f205d20a1/jennifersaad/manifest.json")
  async for chunk in client.tts("Hi, I'm Jennifer from Play. How can I help you today?", options):
      
      print(type(chunk))
  ```

  The `tts` method takes the following arguments:

  - `text`: The text to be converted to speech; a string or list of strings.
  - `options`: The options to use for the TTS request; a `TTSOptions` object [(see below)](#ttsoptions).
  - `voice_engine`: The voice engine to use for the TTS request; a string (default `Play3.0-mini-http`).
      - `PlayDialog-*`: Our large, expressive English model, which also supports multi-turn two-speaker dialogues.
          - `PlayDialog-http`: Streaming and non-streaming audio over HTTP.
          - `PlayDialog-ws`: Streaming audio over WebSockets.
      - `PlayDialogMultilingual-*`: Our large, expressive multilingual model, which also supports multi-turn two-speaker dialogues.
          - `PlayDialogMultilingual-http`: Streaming and non-streaming audio over HTTP.
          - `PlayDialogMultilingual-ws`: Streaming audio over WebSockets.
      - `Play3.0-mini-*`: Our small, fast multilingual model.
          - `Play3.0-mini-http`: Streaming and non-streaming audio over HTTP.
          - `Play3.0-mini-ws`: Streaming audio over WebSockets.
          - `Play3.0-mini-grpc`: Streaming audio over gRPC. NOTE: This voice engine is ONLY available for Play On-Prem customers.
      - `PlayHT2.0-turbo`: Our legacy English-only model, streaming audio over gRPC.
  - `streaming`: Whether or not to stream the audio in chunks (default True); non-streaming is only enabled for HTTP endpoints.



  The `TTSOptions` class is used to specify the options for the TTS request. It has the following members, with these supported values:

  - `voice`: The voice to use for the TTS request; a string.
      - A URL pointing to a Play voice manifest file.
  - `format`: The format of the audio to be returned; a `Format` enum value.
      - `FORMAT_MP3` (default)
      - `FORMAT_WAV`
      - `FORMAT_MULAW`
      - `FORMAT_FLAC`
      - `FORMAT_OGG`
      - `FORMAT_RAW`
  - `sample_rate`: The sample rate of the audio to be returned; an integer or `None` (Play backend will choose by default).
      - 8000
      - 16000
      - 24000
      - 44100
      - 48000
  - `quality`: DEPRECATED (use sample rate to adjust audio quality)
  - `speed`: The speed of the audio to be returned, a float (default `1.0`).
  - `seed`: Random seed to use for audio generation, an integer (default `None`, will be randomly generated).
  - The following options are inference-time hyperparameters of the text-to-speech model; if unset, the model will use default values chosen by Play.
      - `temperature` (all models): The temperature of the model, a float.
      - `top_p` (all models): The top_p of the model, a float.
      - `text_guidance` (`Play3.0-mini-*` and `PlayHT2.0-turbo` only): The text_guidance of the model, a float.
      - `voice_guidance` (`Play3.0-mini-*` and `PlayHT2.0-turbo` only): The voice_guidance of the model, a float.
      - `style_guidance` (`Play3.0-mini-*` only): The style_guidance of the model, a float.
      - `repetition_penalty` (`Play3.0-mini-*` and `PlayHT2.0-turbo` only): The repetition_penalty of the model, a float.
  - `disable_stabilization` (`PlayHT2.0-turbo` only): Disable the audio stabilization process, a boolean (default `False`).
  - `language` (`Play3.0-*` and `PlayDialogMultilingual-*` only): The language of the text to be spoken, a `Language` enum value or `None` (default `ENGLISH`).
      - `AFRIKAANS`
      - `ALBANIAN`
      - `AMHARIC`
      - `ARABIC`
      - `BENGALI`
      - `BULGARIAN`
      - `CATALAN`
      - `CROATIAN`
      - `CZECH`
      - `DANISH`
      - `DUTCH`
      - `ENGLISH`
      - `FRENCH`
      - `GALICIAN`
      - `GERMAN`
      - `GREEK`
      - `HEBREW`
      - `HINDI`
      - `HUNGARIAN`
      - `INDONESIAN`
      - `ITALIAN`
      - `JAPANESE`
      - `KOREAN`
      - `MALAY`
      - `MANDARIN`
      - `POLISH`
      - `PORTUGUESE`
      - `RUSSIAN`
      - `SERBIAN`
      - `SPANISH`
      - `SWEDISH`
      - `TAGALOG`
      - `THAI`
      - `TURKISH`
      - `UKRAINIAN`
      - `URDU`
      - `XHOSA`
  - The following options are additional inference-time hyperparameters which only apply to the `PlayDialog-*` and `PlayDialogMultilingual-*` models; if unset, the model will use default values chosen by Play.
      - `voice_2` (multi-turn dialogue only): The second voice to use for a multi-turn TTS request; a string.
          - A URL pointing to a Play voice manifest file.
      - `turn_prefix` (multi-turn dialogue only): The prefix for the first speaker's turns in a multi-turn TTS request; a string.
      - `turn_prefix_2` (multi-turn dialogue only): The prefix for the second speaker's turns in a multi-turn TTS request; a string.
      - `voice_conditioning_seconds`: How much of the voice's reference audio to pass to the model as a guide; an integer.
      - `voice_conditioning_seconds_2` (multi-turn dialogue only): How much of the second voice's reference audio to pass to the model as a guide; an integer.
      - `scene_description`: A description of the overall scene (single- or multi-turn) to guide the model; a string (NOTE: currently not recommended).
      - `turn_clip_description` (multi-turn dialogue only): A description of each turn (with turn prefixes) to guide the model; a string (NOTE: currently not recommended).
      - `num_candidates`: How many candidates to rank to choose the best one; an integer.
      - `candidate_ranking_method`: The method for the model to use to rank candidates; a `CandidateRankingMethod` enum value or `None` (let Play choose the method by default).
          - Methods valid for streaming and non-streaming requests:
              - `MeanProbRank`: Rank candidates based on mean probability of the output sequence.
          - Methods valid for streaming requests only:
              - `EndProbRank`: Rank candidates based on probability of end of sequence.
              - `MeanProbWithEndProbRank`: Combination of `MeanProbRank` and `EndProbRank`.
          - Methods valid for non-streaming requests only:
              - `DescriptionRank`: Rank candidates based on adherence to description.
              - `ASRRank`: Rank candidates based on comparison of ASR transcription with the ground-truth text.
              - `DescriptionASRRank`: Combination of `DescriptionRank` and `ASRRank`.
              - `ASRWithMeanProbRank`: Combination of `ASRRank` and `MeanProbRank`.
              - `DescriptionASRWithMeanProbRank`: Combination of `DescriptionASRRank` and `MeanProbRank`.




  You can run the provided [demo](https://github.com/playht/pyht/tree/master/demo/) from the command line.

  **Note:** This demo depends on the following packages:

  ```shell
  pip install numpy soundfile
  ```

  ```shell
  python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text "Hello from Play!"
  ```

  To run with the asyncio client, use the `--async` flag:

  ```shell
  python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text "Hello from Play!" --async
  ```

  To run with the HTTP API, which uses our latest Play3.0-mini model, use the `--http` flag:

  ```shell
  python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text "Hello from Play!" --http
  ```

  To run with the WebSockets API, which also uses our latest Play3.0-mini model, use the `--ws` flag:

  ```shell
  python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text "Hello from Play!" --ws
  ```

  The HTTP and WebSockets APIs can also be used with the async client:

  ```shell
  python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text "Hello from Play!" --http --async
  python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text "Hello from Play!" --ws --async
  ```

  Alternatively, you can run the demo in interactive mode:

  ```shell
  python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --interactive
  ```

  In interactive mode, you can input text lines to generate and play audio on-the-fly. An empty line will exit the interactive session.



  To get started with the **pyht** SDK, you'll need your API Secret Key and User ID. Follow these steps to obtain them:

  1. **Access the API Page**:
     Navigate to the [API Access page](https://play.ht/studio/api-access).

  2. **Generate Your API Secret Key**:

     - Click the "Generate Secret Key" button under the "Secret Key" section.
     - Your API Secret Key will be displayed. Ensure you copy it and store it securely.

  3. **Locate Your User ID**:
     Find and copy your User ID, which can be found on the same page under the "User ID" section.

  _**Keep your API Secret Key confidential**. It's crucial not to share it with anyone or include it in publicly accessible code repositories._


pkgId: bd6cab2a4837e23b9c3fac8dbd9933802dbc0abbd1dce8d29dc8bae175b22dd9
name: python-pyinim-help
arch: noarch
version: 0.0.19
epoch: 0
release: 1
summary: Development documents and examples for pyinim
url: https://github.com/nidble/pyinim
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyinim-0.0.19-1.src.rpm
location_href: Packages/python-pyinim-help-0.0.19-1.noarch.rpm
checksum_type: sha256
description:
  Simple API that provides "easy" access to INIM web services



  ```sh
  python3 -m venv venv
  source venv/bin/activate.fish
  python3 -m pip install aiohttp==3.9.5






  python3 -m pip install pyinim==0.0.x
  python3 -m pip uninstall pyinim
  ```




  ```sh
  python3 -m pip install pipenv
  pipenv install --dev #this generate Pipfile.lock
  ```


  ```sh
  export PYTHONPATH="${PYTHONPATH}:$PWD" # or set --export PYTHONPATH ./src
  pipenv run python src/pyinim/examples/poc.py
  ```


  ```sh
  pipenv install python-dotenv
  ```




  ```sh
  pip3 install --upgrade setuptools


  pip install --upgrade build

  python3 -m pip install build # see https://stackoverflow.com/questions/73987135/python3-m-build-gives-modulenotfounderror-no-module-named-pathlib2
  ```


  ```sh
  pipenv run pip install --upgrade build
  pipenv run python -m build --wheel
  ```


  ```sh
  pip install --upgrade build
  python -m build --wheel # for only wheel (this not produce tarball)
  python3 -m build # for wheel and tarball
  ```


  [ref](https://packaging.python.org/en/latest/tutorials/packaging-projects/)

  ```sh
  python3 -m pip install --upgrade twine
  python3 -m twine upload --repository testpypi dist/*
  ```


  ```sh
  rm -rf ./dist && python3 -m build && python3 -m twine upload --repository testpypi dist/*
  ```




  - [tutorial](https://community.home-assistant.io/t/tutorial-for-creating-a-custom-component/204793)
  - [practical guide to setuptools and pyproject.toml](https://xebia.com/blog/a-practical-guide-to-setuptools-and-pyproject-toml/)
  - [pipenv-pyenv](https://www.rootstrap.com/blog/how-to-manage-your-python-projects-with-pipenv-pyenv)
  - [hass thread](https://community.home-assistant.io/t/inim-alarm/60354/56)
  - [INIM_API_notes](https://www.dropbox.com/s/sf0hze5n33hjie3/HomeAssistant_INIM_API_notes_public-v5.pdf?dl=0)
  <!-- https://github.com/gidgethub/gidgethub/tree/main/gidgethub -->


  Pyinim is an unofficial module for achieving interoperability with Inim RESTful API.

  Author is in no way affiliated with Inim.

  All the api requests used within the library are available and published on the internet (examples linked above) and this module is purely just a wrapper around those https requests.

  Author does not guarantee functionality of this library and is not responsible for any damage.

  All product names, trademarks and registered trademarks in this repository, are property of their respective owners.




  You can use this small script to interact with your InimAlarm and list various components.



  ```sh
  git clone https://github.com/nidble/pyinim
  cd pyinim
  python3 -m pip install pipenv
  pipenv install --dev
  export PYTHONPATH="${PYTHONPATH}:$PWD/src" # or set --export PYTHONPATH ./src
  pipenv run python tools/inim_cli.py
  ```


  ```txt
  ❯ pipenv run python tools/inim_cli.py --help
  usage: inim_cli.py [-h] [--username USERNAME] [--password PASSWORD] [--client_id CLIENT_ID] --list {deviceid,areas,scenarios} [--deviceid DEVICEID] [--dump filename]

  options:
    -h, --help            show this help message and exit
    --username USERNAME   Inim User Name
    --password PASSWORD   Inim Password
    --client_id CLIENT_ID
                          Inim Client ID
    --list {deviceid,areas,scenarios}
                          Specify whether to list 'deviceid', 'areas', or 'scenarios'
    --deviceid DEVICEID   Optional device ID to filter results for 'areas' and 'scenarios'
    --dump filename       Dump the raw JSON response to the specified file
  ```


  ```sh
  pipenv run python tools/inim_cli.py --username <YOUR_INIM_USERNAME> --password <YOUR_INIM_PASSWORD> --list deviceid
  ```


  ```sh
  pipenv run python tools/inim_cli.py --username <YOUR_INIM_USERNAME> --password <YOUR_INIM_PASSWORD> --list areas
  ```


  ```sh
  pipenv run python tools/inim_cli.py --username <YOUR_INIM_USERNAME> --password <YOUR_INIM_PASSWORD> --list scenarios
  ```



  To debug your Alarm you can dump the status via --dump
  ```sh
  pipenv run python tools/inim_cli.py --username <YOUR_INIM_USERNAME> --password <YOUR_INIM_PASSWORD> --dump=debug.json
  ```


pkgId: 89686b96d26cb9aa990addc1f2fe04ac296ad8c61b06dcad4f4fe21e57703c6a
name: python-pyinn-help
arch: noarch
version: 0.1.2
epoch: 0
release: 1
summary: Development documents and examples for pyinn
url: https://pypi.org/project/pyinn/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyinn-0.1.2-1.src.rpm
location_href: Packages/python-pyinn-help-0.1.2-1.noarch.rpm
checksum_type: sha256
description:
  ![INN](/Figure1.png)




  This is the github repo for the paper ["Interpolating neural network (INN): A novel unification of machine learning and interpolation theory"](https://arxiv.org/abs/2404.10296).

  INN is a lightweight yet precise network architecture that can replace MLPs for data training, partial differential equation (PDE) solving, and parameter calibration. The key features of INNs are:

  * Less trainable parameters than MLP without sacrificing accuracy
  * Faster and proven convergent behavior
  * Fully differntiable and GPU-optimized





  Clone the repository:

  ```bash
  git clone https://github.com/hachanook/pyinn.git
  cd pyinn
  ```

  Create a conda environment:

  ```bash
  conda clean --all # [optional] to clear cache files in the base conda environment
  conda env create -f environment.yaml
  or
  conda install -n base -c conda-forge mamba # [optional] install mamba in the base conda environment
  mamba env create -f environment.yaml # this makes installation faster

  conda activate pyinn-env
  ```

  Install JAX
  - See jax installation [instructions](https://github.com/jax-ml/jax?tab=readme-ov-file#installation). Depending on your hardware, you may install the CPU or GPU version of JAX. Both will work, while GPU version usually gives better performance.
  - For CPU only (Linux/macOS/Windows), one can simply install JAX using:
  ```bash
  pip install -U jax
  ```
  - For GPU (NVIDIA, CUDA 12)
  ```bash
  pip install -U "jax[cuda12]"
  ```
  - For TPU (Google Cloud TPU VM)
  ```bash
  pip install -U "jax[tpu]" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html
  ```

  Install Optax (optimization library of JAX)
  ```bash
  pip install optax
  ```


  Then there are two options to continue:



  Install the package locally:

  ```bash

  pip install -e .
  ```



  Install the package from the [PyPI release](https://pypi.org/project/pyinn/0.1.0/) directly:

  ```bash
  pip install pyinn
  ```



  ```bash
  python ./pyinn/main.py
  ```


  This project is licensed under the GNU General Public License v3 - see the [LICENSE](https://www.gnu.org/licenses/) for details.


  If you found this library useful in academic or industry work, we appreciate your support if you consider 1) starring the project on Github, and 2) citing relevant papers:

  ```bibtex
  @article{park2024engineering,
    title={Engineering software 2.0 by interpolating neural networks: unifying training, solving, and calibration},
    author={Park, Chanwook and Saha, Sourav and Guo, Jiachen and Zhang, Hantao and Xie, Xiaoyu and Bessa, Miguel A and Qian, Dong and Chen, Wei and Wagner, Gregory J and Cao, Jian and others},
    journal={arXiv preprint arXiv:2404.10296},
    year={2024}
  }
  ```


pkgId: 2418ec973f60e5614a2f57a3fbcb043b49b0a193a9bad3b254061af04644327f
name: python-pyit2fls-help
arch: noarch
version: 0.8.1
epoch: 0
release: 1
summary: Development documents and examples for pyit2fls
url: https://github.com/Haghrah/PyIT2FLS
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyit2fls-0.8.1-1.src.rpm
location_href: Packages/python-pyit2fls-help-0.8.1-1.noarch.rpm
checksum_type: sha256
description:
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/PyIT2FLS_icon.png" width="384"/></p>
  NumPy and SciPy based toolkit for Type 1 and Interval Type 2 Fuzzy Logic Systems.

  PyIT2FLS is published under MIT license. If you are using the developed toolkit, please cite preprint of our paper [PyIT2FLS: A New Python Toolkit for Interval Type 2 Fuzzy Logic Systems](https://arxiv.org/abs/1909.10051).
  BibTeX:
      @misc{haghrah2019pyit2fls,
          title={PyIT2FLS: A New Python Toolkit for Interval Type 2 Fuzzy Logic Systems},
          author={Amir Arslan Haghrah and Sehraneh Ghaemi},
          year={2019},
          eprint={1909.10051},
          archivePrefix={arXiv},
          primaryClass={eess.SY}
      }
  MLA:
      Haghrah, Amir Arslan, and Sehraneh Ghaemi. "PyIT2FLS: A New Python Toolkit for Interval Type 2 Fuzzy Logic Systems." arXiv preprint arXiv:1909.10051 (2019).

  PyIT2FLS can be installed by unzipping the source code in a directory and using this command inside the PyIT2FLS folder:
      pip3 install .
  Or you can install from PyPI:
      pip3 install --upgrade pyit2fls

  If you find this Python library useful and would like to support its development, donations are greatly appreciated. To donate USDT, please send to the following wallet address: 0x2c0fb11b56b10b5ddda6a8c9c1f6d0b559153de2. Ensure you select the Avalanche C-Chain network when making the transaction. Using the wrong network, such as Ethereum, may result in lost funds.
  Thank you for your contribution, which helps maintain and improve this project!


  - Supporting Generalized Type 2 Fuzzy Sets and Systems.
  - Supporting FCL.
  - Introduction of a GUI for facilitating system design.

  - Just some minor edits ...

  - Starting initial support of machine learning models based on fuzzy systems. Based on optimization for execution time or linguistic interpretability of the results, these models may have different computational efficiencies.
      - Type 1 TSK Model
      - Type 1 Mamdani Model
      - Interval Type 2 TSK Model
      - Interval Type 2 Mamdani Model
  - Starting initial support of Takagi-Sugeno models, widely used in dynamic systems control:
      - Type 1 Takagi-Sugeno System
      - Interval Type 2 Takagi-Sugeno System
  - Documentations have been enhanced and published over [readthedocs](https://pyit2fls.readthedocs.io/en/latest/). More enhancements are on the way with more tutorials and examples.
  - Some functions were deprecated in SciPy, NumPy, and Matplotlib. There are updates concerning this issue.
  - More exception handling have been done in the new version of the PyIT2FLS, but not completed, yet.
  - Minor enhancements have been made in plotting functions.
  While we strive for quality and reliability, no software is perfect. If you encounter any issues or have suggestions, we warmly welcome your feedback. Your input is invaluable and helps us continue improving PyIT2FLS for the community. Please report any bugs or share your thoughts via opening a new issue. Thank you for your support and for being part of our journey to make PyIT2FLS even better!

  - Some bugs (concerning EIASC algorithm) have been fixed in this version.

  - Some bugs have been fixed in this version.

  - Supporting fuzzy matrices and related operators.
  - Faster IT2 FLS evaluation (Please visit [typereduction](https://github.com/Haghrah/PyIT2FLS/tree/master/typereduction) package).
  - Introduction of emphasize function for both type 1 and interval type 2 fuzzy sets (See [16th](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_16.py) example).
  - New options while calling plot functions (**_T1FS.plot_**, **_IT2FS.plot_**, **_T1FS_plot_**, **_IT2FS_plot_**, and **_TR_plot_**) have been added.
  	- Users can specify the output file format (png, eps, pdf, etc.) while calling the plot function by setting the **_ext_** input parameter (with **_pdf_** default value).
  	- Users can edit the status of the grid in the output plot by setting the **_grid_** input parameter (with **_True_** default value).
  	- Users can edit the x and y-labels by setting the input parameters **_xlabel_** and **_ylabel_**, respectively. The default value of the **_xlabel_** is **_Domain_**, and the default value of the **_ylabel_** is **_Membership degree_**.
  - There are some deprecated functions and classes. After releasing version 1.0.0, deprecated functions and classes will no longer be supported. So:
  	- Please use the function **_IT2FS_LGaussian_UncertStd_** instead of **_L_IT2FS_Gaussian_UncertStd_**.
  	- Please use the function **_IT2FS_RGaussian_UncertStd_** instead of **_R_IT2FS_Gaussian_UncertStd_**.
  	- Please use the class **_IT2Mamdani_** instead of **_IT2FLS_**.
  	- Please use the class **_IT2Mamdani_** instead of **_Mamdani_**.
  	- Please use the class **_IT2TSK_** instead of **_TSK_**.

  - Some bugs have been fixed in this version.

  - Supporting Type 1 Fuzzy Sets and Systems.
  - Supporting elliptic and semi-elliptic membership functions.
  - Supporting generalized bell shaped membership function.
  - Supporting many new t-norms and s-norms.
  - Some bugs have been fixed in this version.

  - Supporting both Mamdani and TSK systems.
  - Some bugs have been fixed in this vesion. Now, it is possible to use different domains for FLS inputs and outputs.

  - Some bugs have been fixed in this version especially in type reduction algorithms. I would like to say thanks to Dr. K.B Badri Narayanan for reporting the errors.
  - Some new IT2FSs have been added to the toolkit.
  - In previous versions, the height of the IT2FS_Gaussian_UncertStd and IT2FS_Gaussian_UncertMean IT2FSs was fixed to 1, by default. But in the new version, user must give the height value in the parameters list as the last element.

  Some initial examples of using PyIT2FLS are provided below. All the examples are tested
  with just the latest version of the PyIT2FLS and they may be incompatible with older versions.
  So, please update your PyIT2FLS to the latest version.
  * [Ex1](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_1.py): Defining an Interval Type 2 Fuzzy Set (IT2FS).
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/1_1.png" width="200"></p>
  * [Ex2](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_2.py): Using join and meet operators and plotting the outputs.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/2_1.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/2_2.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/2_3.png" width="200"></p>
  * [Ex3](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_3.py): Defining a simple (MIMO) IT2Mamdani.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/3_1.png" width="200"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/3_2.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/3_3.png" width="200"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/3_4.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/3_5.png" width="200"></p>
  * [Ex4](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_4.py): Prediction of the Mackey-Glass chaotic time series with PSO-based parameter tuning.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/4_2.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/4_4.png" width="200"></p>
  * [Ex5](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_5.py): Designing Interval Type 2 Fuzzy PID (IT2FPID) controller for a time-delay linear system.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/5_1.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/5_2.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/5_3.png" width="200"></p>
  * [Ex6](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_6.py): Creating and plotting some different types of interval type two fuzzy sets.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/6_1.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/6_2.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/6_3.png" width="200"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/6_4.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/6_5.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/6_6.png" width="200"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/6_7.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/6_8.png" width="200"></p>
  * [Ex7](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_7.py): Defining a simple multi-input multi-output IT2 TSK FLS.
  * [Ex8](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_8.py): Defining a multi-input multi-output IT2 TSK FLS and plotting the resulting 3D output planes.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/8_1.png" width="600"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/8_2.png" width="600"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/8_3.png" width="300"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/8_4.png" width="300"></p>
  * [Ex9](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_9.py): Defining a multi-input multi-output IT2FLS with different domains for each of input and output variables, and plotting the output surfaces of the system.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/9_1.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/9_2.png" width="200"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/9_3.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/9_4.png" width="200"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/9_5.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/9_6.png" width="200"></p>
  * [Ex10](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_10.py): Generating random rule-bases.
  * [Ex11](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_11.py): Using six different t-norms with meet operator.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/11_1.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/11_2.png" width="200"></p>
  * [Ex12](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_12.py): Using six different s-norms with join operator.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/12_1.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/12_2.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/12_3.png" width="200"></p>
  * [Ex13](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_13.py): MIMO Type 1 Mamdani Fuzzy Logic System.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/13_1.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/13_2.png" width="200"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/13_3.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/13_4.png" width="200"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/13_5.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/13_6.png" width="200"></p>
  * [Ex14](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_14.py): MIMO Type 1 TSK Fuzzy Logic System.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/14_1.png" width="600"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/14_2.png" width="600"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/14_3.png" width="300"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/14_4.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/14_5.png" width="200"></p>
  * [Ex15](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_15.py): Using emphasize function for type 1 and interval type 2 fuzzy sets.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/15_1.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/15_2.png" width="200"></p>
  * [Ex16](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_16.py): Example concerning fuzzy matrices.
  * [Ex17](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_17.py): Defining random rules and random sets for IT2F classifier with three inputs and one output (Based on the request of one of the users).
  * [Ex18](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_18.py): Fitting a 3D surface using type 1 TSK model and PSO algorithm.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/18_1.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/18_2.png" width="200"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/18_3.png" width="400"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/18_4.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/18_5.png" width="200"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/18_6.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/18_7.png" width="200"></p>
  * [Ex19](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_19.py): Fitting a 3D surface using type 1 Mamdani model and GA algorithm.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/19_1.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/19_2.png" width="200"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/19_3.png" width="400"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/19_4.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/19_5.png" width="200"></p>
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/19_6.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/19_7.png" width="200"></p>
  * [Ex20](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_20.py): Fitting a 3D surface using interval type 2 TSK model and GA algorithm.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/20_3.png" width="400"></p>
  * [Ex21](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_21.py): Fitting a 3D surface using interval type 2 Mamdani model and PSO algorithm.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/21_3.png" width="400"></p>
  * [Ex22](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_22.py): Using type 1 Takagi-Sugeno model for approximating a nonlinear system.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/22_1.png" width="200"></p>
  * [Ex23](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_23.py): Using interval type 2 Takagi-Sugeno model for approximating a nonlinear system.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/23_1.png" width="200"></p>
  * [Ex24](https://github.com/Haghrah/PyIT2FLS/blob/master/examples/ex_24.py): Example for new *MEET* and *JOIN* functions accepting many *IT2FS* s as input.
  <p align="center"><img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/24_1.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/24_2.png" width="200"> <img src="https://raw.githubusercontent.com/Haghrah/PyIT2FLS/master/examples/images/24_3.png" width="200"></p>


pkgId: 5aaf6fe9f59cbd96752154b8cce2d957db41f775626d607f0f8000309c8e4f40
name: python-pyjacker-help
arch: noarch
version: 1.1.2
epoch: 0
release: 1
summary: Development documents and examples for pyjacker
url: https://github.com/CompEpigen/pyjacker
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyjacker-1.1.2-1.src.rpm
location_href: Packages/python-pyjacker-help-1.1.2-1.noarch.rpm
checksum_type: sha256
description:
  [![DOI](https://zenodo.org/badge/641412900.svg)](https://doi.org/10.5281/zenodo.14227955)

  This is a tool to detect enhancer hijacking events in a cohort of at least 10 samples profiled with WGS and RNA-seq. It does not require matched normals and can detect enhancer hijacking events occurring in only a single sample. Briefly, it looks for outlier high and monoallelic expression of a gene in a sample which has a breakpoint close to the gene.


  In an environment with python>=3.7:
  ```
  pip install pyjacker
  pyjacker config.yaml
  ```
  The config file indicates all the parameters, including paths to the input files (see config_AML.yaml as an example). Alternatively, we provide a nextflow workflow that generates pyjacker's inputs from bam files, and run pyjacker: https://github.com/CompEpigen/wf_WGS.


  Alternatively, pyjacker can be run using a docker image.
  ```
  docker run -t -w `pwd` -v `pwd`:`pwd` esollier/pyjacker:latest pyjacker config.yaml
  ```



  Rows are genes (ensembl IDs) and columns are samples. The expression data must be provided in TPM. See data/TPM_ckAML.tsv for an example.


  tsv file with columns: sample, chr1, pos1, chr2, pos2.
  The fields chr2 and pos2 are optional (for example if you only have copy number data). See data/breakpoints.tsv for an example.


  gtf file containing gene coordinates for your reference genome (see [data/Homo_sapiens.GRCh37.75.gtf.gz](https://github.com/CompEpigen/pyjacker/blob/main/data/Homo_sapiens.GRCh37.75.gtf.gz) or [data/Homo_sapiens.GRCh38.113.gtf.gz](https://github.com/CompEpigen/pyjacker/blob/main/data/Homo_sapiens.GRCh38.113.gtf.gz), and tsv file containing cytobands (see [data/cytobands_hg19](https://github.com/CompEpigen/pyjacker/blob/main/data/cytobands_hg19.tsv) or [data/cytobands_hg38](https://github.com/CompEpigen/pyjacker/blob/main/data/cytobands_hg38.tsv)).


  A bed file of topologically-associating domains can be used, in which case only the breakpoints in the same TAD as a gene are considered in the search for enhancer hijacking events. See  [data/TADs_Dixon_IMR90_hg19.bed](https://github.com/CompEpigen/pyjacker/blob/main/data/TADs_Dixon_IMR90_hg19.bed) or [data/TADs_Dixon_IMR90_hg38.bed](https://github.com/CompEpigen/pyjacker/blob/main/data/TADs_Dixon_IMR90_hg38.bed) for TADs derived from the data of [Dixon et al.](https://www.nature.com/articles/nature14222) or [data/TADs_HSPC_hg19.bed](https://github.com/CompEpigen/pyjacker/blob/main/data/TADs_HSPC_hg19.bed) for TADs derived from [HSPCs](https://doi.org/10.1182/bloodadvances.2023012161). If not TAD file is provided, pyjacker will instead look for breakpoints within a fixed distance to the gene (1.5Mb by default).


  This is used to detect monoallelic expression. This requires files generated by [fast_ase](https://github.com/e-sollier/fast_ase) or [GATK ASEReadCounter](https://gatk.broadinstitute.org/hc/en-us/articles/360037428291-ASEReadCounter). See [data/ASE_ckAML](https://github.com/CompEpigen/pyjacker/tree/main/data/ASE_ckAML) for example files.


  tsv file with the following columns: sample, chr, start, end, cn. See [data/CNAs_ckAML.tsv](https://github.com/CompEpigen/pyjacker/blob/main/data/CNAs_ckAML.tsv) for an example.
  If provided, this will be used to:
  - correct gene expression based on copy number (so high expression because of amplification will not be reported)
  - filter out SNPs within deletions from the monoallelic expression detection


  A file of scored enhancers, generated by ROSE. See [data/enhancers_myeloid_hg19.tsv](https://github.com/CompEpigen/pyjacker/blob/main/data/enhancers_myeloid_hg19.tsv) for an example.



  Fusion transcripts can also lead to aberrant high and monoallelic expression of a gene. If a list of fusion transcripts detected from RNAseq is provided, they will be used to annotate candidate enhancer hijacking events which are actually due to a fusion. See [data/fusions_ckAML.tsv](https://github.com/CompEpigen/pyjacker/blob/main/data/fusions_ckAML.tsv) for an example file.


  Pyjacker takes approximately 5h to run on the ckAML dataset (39 samples) with default settings and 6 cores. The runtime is essentially proportional to the number of samples in the dataset and to the number of iterations used when estimating the null distribution of scores (used to compute the false discovery rate). This number of iterations is 50 by default, which ensures that accurate p-values are computed, but this can easily be reduced to 5-10 to reduce the runtime, without drastically altering the results.



  If you use pyjacker in your research, please consider citing:

  Sollier E, Riedel A, Toprak UH, Wierzbinska JA, Weichenhan D, Schmid JP, Hakobyan M, Touzart A, Jahn E, Vick B, Brown-Burke F. Pyjacker identifies enhancer hijacking events in acute myeloid leukemia including MNX1 activation via deletion 7q. bioRxiv. 2024:2024-09. https://doi.org/10.1101/2024.09.11.611224


pkgId: 0f4414d04f0430dd58cf2bda8af7f2336545084a17ab683b54679df6dc740888
name: python-pyjson2dataclass-help
arch: noarch
version: 1.1
epoch: 0
release: 1
summary: Development documents and examples for pyjson2dataclass
url: https://github.com/verssionhack
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyjson2dataclass-1.1-1.src.rpm
location_href: Packages/python-pyjson2dataclass-help-1.1-1.noarch.rpm
checksum_type: sha256
description:
  ```sh
  ./__main__.py <json file1> <json file2> ...
  ```
  ```sh
  python -m pyjson2dataclass <json file1> <json file2> ...
  ```

  ```python
  from pyjson2dataclass import parse
  import json


  filepath = 'json/example1.json'

  parse_text = parse('Example', json.load(open(filepath)))
  open('example.py', 'w').write(parse_text)
  ```




  ```json
  {
      "pascalName1": {
          "pascalName2": [
              1,
              2
          ]
      },
      "pascalName3": [
          {
              "pascalName4": [
                  {
                      "pascalName5": {
                          "data": 1
                      }
                  }
              ]
          }
      ]
  }
  ```

  ```python
  from typing import Dict, List, Any, Optional
  from dataclasses import dataclass


  @dataclass
  class PascalName5:
      data: int

      def __init__(self, data: dict | None):
          if not data:
              return None
          self.data = data["data"]


  @dataclass
  class PascalName4Item:
      pascal_name5: PascalName5

      def __init__(self, data: dict | None):
          if not data:
              return None
          self.pascal_name5 = PascalName5(data["pascalName5"])


  @dataclass
  class PascalName1:
      pascal_name2: List[int]

      def __init__(self, data: dict | None):
          if not data:
              return None
          self.pascal_name2 = []
          if data.get("pascalName2"):
              for i in data["pascalName2"]:
                  self.pascal_name2.append(i)


  @dataclass
  class PascalName3Item:
      pascal_name4: List[PascalName4Item]

      def __init__(self, data: dict | None):
          if not data:
              return None
          self.pascal_name4 = []
          if data.get("pascalName4"):
              for i in data["pascalName4"]:
                  self.pascal_name4.append(PascalName4Item(i))


  @dataclass
  class Example:
      pascal_name1: PascalName1
      pascal_name3: List[PascalName3Item]

      def __init__(self, data: dict | None):
          if not data:
              return None
          self.pascal_name1 = PascalName1(data["pascalName1"])
          self.pascal_name3 = []
          if data.get("pascalName3"):
              for i in data["pascalName3"]:
                  self.pascal_name3.append(PascalName3Item(i))



  ```



  ```python
  from example import Example
  import json

  filepath = 'json/example1.json'

  example = Example(json.load(open(filepath)))
  print(example)
  print(example.pascal_name1)
  print(example.pascal_name3)
  ```

  ```txt
  Example(pascal_name1=PascalName1(pascal_name2=[1, 2]), pascal_name3=[PascalName3Item(pascal_name4=[PascalName4Item(pascal_name5=PascalName5(data=1))])])
  PascalName1(pascal_name2=[1, 2])
  [PascalName3Item(pascal_name4=[PascalName4Item(pascal_name5=PascalName5(data=1))])]
  ```


pkgId: 14d788439a7efedec4b595196c13552012a90afa1e3051f087bc93fab24f5a74
name: python-pyjsonpatch-help
arch: noarch
version: 0.1.2
epoch: 0
release: 1
summary: Development documents and examples for pyjsonpatch
url: https://pypi.org/project/pyjsonpatch/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyjsonpatch-0.1.2-1.src.rpm
location_href: Packages/python-pyjsonpatch-help-0.1.2-1.noarch.rpm
checksum_type: sha256
description:
  ![Unit Tests CI](https://github.com/deephaven/pyjsonpatch/actions/workflows/unit-tests.yml/badge.svg)
  ![Publish CI](https://github.com/deephaven/pyjsonpatch/actions/workflows/publish.yml/badge.svg)
  ![GitHub License](https://img.shields.io/github/license/deephaven/pyjsonpatch?color=901414)
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pyjsonpatch)



  A Python implementation of JSON Pointer ([RFC 6902](https://datatracker.ietf.org/doc/html/rfc6901)) and JSON Patch ([RFC 6902](https://datatracker.ietf.org/doc/html/rfc6902)). Primarily, the package can do the following to Python object(s) representing JSON(s):
  - `apply_patch` to modify an object with a JSON patch
  - `generate_patch` to generate a JSON Patch from two objects
  - `get_by_ptr` to retrieve a value from object using a JSON pointer



  - [About](#about)
  - [Table of Contents](#table-of-contents)
  - [Installation](#installation)
  - [Development](#development)
    - [Linting and Formatting](#linting-and-formatting)
    - [Building and Releasing](#building-and-releasing)
  - [Examples](#examples)
    - [`get_by_ptr`](#get_by_ptr)
    - [`apply_patch`](#apply_patch)
    - [`generate_patch`](#generate_patch)




  Python 3.8 or higher is required. You can install the library with:
  ```sh

  python3 -m pip install -U pyjsonpatch


  py -3 -m pip install -U pyjsonpatch
  ```



  Install the dev requirements with:
  ```sh

  python3 -m pip install -r requirements-dev.txt


  py -3 -m pip install -r requirements-dev.txt
  ```



  Run the [Ruff linter and formatter](https://docs.astral.sh/ruff/) with:
  ```sh

  ruff check --fix


  ruff format
  ```



  Run tests with:
  ```sh

  python3 -m unittest discover tests


  py -3 -m unittest discover tests
  ```



  Build with:
  ```sh

  python3 -m build


  py -3 -m build
  ```

  Commit messages should follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) and version numbers follow [Semantic Versioning](https://semver.org/). Releases require a version bump in [`pyproject.toml`](./pyproject.toml) alongside a push to main with that version as a tag.





  ```python
  from pyjsonpatch import get_by_ptr


  source = {"": 1, "foo": [2, 3]}

  print(get_by_ptr(source, "").obj)

  print(get_by_ptr(source, "/").obj)

  print(get_by_ptr(source, "/foo").obj)

  print(get_by_ptr(source, "/foo/0").obj)

  ```



  ```python
  from pyjsonpatch import apply_patch


  source = {"": 1, "foo": [2, 3]}
  patch = [
    {"op": "add", "path": "/hello", "value": "world"},
    {"op": "add", "path": "/foo/1", "value": 4},
    {"op": "add", "path": "/foo/-", "value": 5},
    {"op": "remove", "path": "/"},
  ]
  res = apply_patch(source, patch)

  print(res.obj)

  print(res.obj is source)


  print(res.removed)


  ```



  ```python
  from pyjsonpatch import generate_patch


  source = {"": 1, "foo": [2, 3]}
  target = {"foo": [2, 4], "hello": "world"}
  print(generate_patch(source, target))





  ```

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


pkgId: f0dda6d82c2fedb6b1c3bcf59f1fc45d8e699a20c35e833bec43961f2e4b289e
name: python-pyksvd-help
arch: noarch
version: 0.1.0
epoch: 0
release: 1
summary: Development documents and examples for pyksvd
url: https://github.com/mathias-grau/PyKSVD
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyksvd-0.1.0-1.src.rpm
location_href: Packages/python-pyksvd-help-0.1.0-1.noarch.rpm
checksum_type: sha256
description:
  PyKSVD is a Python implementation of the K-SVD algorithm based on paper *K-SVD: An Algorithm for Designing Overcomplete Dictionaries for Sparse Representation* (2006) by Michal Aharon, Michael Elad, and Alfred Bruckstein.




  Notebook are present in folder `notebook`
  - `notebooks/ksvd_theory.ipynb`is used to understand theory behind K-SVD
  - `notebooks/ksvd_synthetic.ipynb`is used to reproduce synthetic results with noising
  - `notebooks/ksvd_images.ipynb`is used to reproduce image denoising and pixel update (black and white only, run example in `example_corrupted_image.py` for colored reconstructions)




  - Signal Processing : Fit a dictionay based on input signals and then transform new signals with high level sparsity.
  ![Dictionary Learning](images/paper/ksvd_paper_reconstruction.png)

  - Image processing : Denoise or complete a corrupted image with missing pixels with patches.
  ![Image Reconstruction with 70% missing pixels](images/example_corrupted_image_70.png)



  ```bash
  pip install pyksvd
  ```



  For signals : (example in `example.py`)

  ```python
  from ksvd.ksvd import KSVD
  import numpy as np


  N = 1500 # number of training signals
  n = 20 # size of each signal
  K = 50 # number of atoms in dict
  T0 = 3 # number of non zero coefficients

  Y = np.random.rand(n, N)

  KSVD_model = KSVD(K=K, T0=T0)
  KSVD_model.fit(Y, verbose=True)
  X, D = KSVD_model.X, KSVD_model.D
  ```

  For images : (example in `example_corrupted_image.py`)

  ```python
  import numpy as np
  from PIL import Image
  import matplotlib.pyplot as plt
  from pyksvd.functions import train_ksvd_models, corrupt_image, reconstruct_image


  patch_size = 8
  image_size = 256
  K = 441  # number of atoms in dict
  T0 = 10  # number of non zero coefficients
  REMOVE_PIXELS_RATIO = 0.7


  train_dir = 'data/train/impressionism/'
  test_image_path = 'data/test/impressionism/134.jpg'


  ksvd_models = train_ksvd_models(train_dir, patch_size, K, T0)


  test_image = Image.open(test_image_path)
  test_image = test_image.resize((image_size, image_size))
  test_image_array = np.array(test_image, dtype=np.float32) / 255.0


  corrupted_image, mask = corrupt_image(test_image_array, REMOVE_PIXELS_RATIO)


  reconstructed_image = reconstruct_image(corrupted_image, ksvd_models, patch_size)
  ```



  ```bibtex
  @article{Aharon2006KSVD,
    title = {K-SVD: An Algorithm for Designing Overcomplete Dictionaries for Sparse Representation},
    author = {Aharon, Michal and Elad, Michael and Bruckstein, Alfred},
    year = {2006},
    journal = {IEEE Transactions on Signal Processing},
  }
  ```


pkgId: c805dc6cee2b8cc570458d97aeff446dbb36f9d9d32a4d8e2c11ce9a17c9acc0
name: python-pylembic-help
arch: noarch
version: 0.2.0
epoch: 0
release: 1
summary: Development documents and examples for pylembic
url: https://pypi.org/project/pylembic/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pylembic-0.2.0-1.src.rpm
location_href: Packages/python-pylembic-help-0.2.0-1.noarch.rpm
checksum_type: sha256
description:
  <!-- Shields -->
  <p align="center">
  <a href="https://github.com/maekind/pylembic"><img src="https://img.shields.io/github/actions/workflow/status/maekind/pylembic/.github%2Fworkflows%2Ftesting.yml?label=tests&color=green" hspace="5"></a>
  <a href="https://codecov.io/gh/maekind/pylembic"><img src="https://codecov.io/gh/maekind/pylembic/graph/badge.svg?token=JcGna50uJL" hspace="5"/>
   </a>
  <a href="https://github.com/maekind/pylembic/releases"><img src="https://img.shields.io/github/actions/workflow/status/maekind/pylembic/.github%2Fworkflows%2Frelease.yml?label=package&color=green" hspace="5"></a>
  <a href="https://pypi.org/project/pylembic"><img src="https://img.shields.io/github/v/release/maekind/pylembic?color=blue&label=pypi latest" hspace="5"></a>
  <br>
  <a href="https://github.com/maekind/kairo/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-orange.svg" hspace="5"></a>
  <a href="https://github.com/maekind/kairo"><img src="https://img.shields.io/github/repo-size/maekind/pylembic?color=red" hspace="5"></a>
  <a href="https://github.com/maekind/pylembic"><img src="https://img.shields.io/github/last-commit/maekind/pylembic?color=black" hspace="5"></a>
  <a href="https://www.python.org/downloads/"><img src="https://img.shields.io/github/languages/top/maekind/pylembic?color=darkgreen" hspace="5"></a>
  <a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python%20version-%3E3.11-lightblue" hspace="5"></a>
  </p>





  This package provides validation of Alembic migrations for Python projects.

  It will check:

  - Linearity: Ensures a clean and predictable migration chain.
  - Circular dependencies: Prevents migration failures due to loops in the
  dependency chain.
  - Orphan migrations: Identifies migrations improperly created without linking
  to any other migration.
  - Multiple bases/heads: Identifies multiple bases or heads in the migration graph.
  - Graph visualization: Provides a visual way to catch anomalies and understand the
  migration flow.



  You can install this package using pip:

  ```bash
  pip install pylembic
  ```





  You can use this module with your preferred testing framework as follows:

  ```python
  from os import path

  from pytest import fixture

  from pylembic.migrations import Validator


  @fixture
  def with_alembic_config_path():
      
      
      
      return path.abspath(
          path.join(path.dirname(path.dirname(__file__)), "migrations")
      )


  def test_migrations(with_alembic_config_path):
      migration_validator = Validator(with_alembic_config_path)
      assert migration_validator.validate()
  ```



  You can show the migrations graph by calling the method `show_graph`:

  ```python

  from os import path

  from pylembic.migrations import Validator

  alembic_config_path = path.abspath(path.join("your path", "migrations"))

  migration_validator = Validator(alembic_config_path)

  migration_validator.show_graph()
  ```



  You can also use the command line for:

  - Validating migrations:

      ```bash
      pylembic ./path/to/migrations --validate
      ```

  - Visualizing the migration graph:

      ```bash
      pylembic ./path/to/migrations --show-graph
      ```

  (c) 2024, <a href="mailto:marco@marcoespinosa.com">Marco Espinosa</a>

rpm_license:
  MIT License  Copyright (c) 2024 Marco Espinosa  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: 0573bbd1e9f55decfdb1b12f0931dbf72dc58ccd85411ab2c672ed07811988e9
name: python-pylinac-help
arch: noarch
version: 3.30.0
epoch: 0
release: 1
summary: Development documents and examples for pylinac
url: https://pypi.org/project/pylinac/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pylinac-3.30.0-1.src.rpm
location_href: Packages/python-pylinac-help-3.30.0-1.noarch.rpm
checksum_type: sha256
description:
  Pylinac provides TG-142 quality assurance (QA) tools to Python programmers in the field of
  therapy and diagnostic medical physics.
  Pylinac contains high-level modules for automatically analyzing images and data generated by linear accelerators, CT simulators, and other radiation oncology equipment.
  Most scripts can be utilized with less than 10 lines of code.
  The library also contains lower-level `modules & tools <http://pylinac.readthedocs.org/en/latest/core_modules.html>`_
  for creating your own image analysis algorithms.
  The major attributes of the package are:
  * Simple, concise image analysis API
  * Automatic analysis of imaging and performance metrics like MTF, Contrast, ROIs, etc.
  * PDF report generation for solid documentation
  * Automatic phantom registration even if you don't set up your phantom perfect
  * Image loading from file, ZIP archives, or URLs


pkgId: 96cd6ee514457e950283082af410d53d7289375970f820072675141577e9ac0c
name: python-pylint-odoo-help
arch: noarch
version: 9.1.4
epoch: 0
release: 1
summary: Development documents and examples for pylint-odoo
url: https://github.com/OCA/pylint-odoo
rpm_license: APGL3
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pylint-odoo-9.1.4-1.src.rpm
location_href: Packages/python-pylint-odoo-help-9.1.4-1.noarch.rpm
checksum_type: sha256
description:
  attribute-deprecated | attribute "%s" deprecated | W8105
  attribute-string-redundant | The attribute string is redundant. String parameter equal to name of variable | W8113
  bad-builtin-groupby | Used builtin function `itertools.groupby`. Prefer `odoo.tools.groupby` instead. More info about https://github.com/odoo/odoo/issues/105376 | W8155
  category-allowed | Category "%s" not allowed in manifest file. | C8114
  consider-merging-classes-inherited | Consider merging classes inherited to "%s" from %s. | R8180
  context-overridden | Context overridden using dict. Better using kwargs `with_context(**%s)` or `with_context(key=value)` | W8121
  deprecated-odoo-model-method | %s has been deprecated by Odoo. Please look for alternatives. | W8160
  development-status-allowed | Manifest key development_status "%s" not allowed. Use one of: %s. | C8111
  except-pass | pass into block except. If you really need to use the pass consider logging that exception | W8138
  external-request-timeout | Use of external request method `%s` without timeout. It could wait for a long time | E8106
  invalid-commit | Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction | E8102
  license-allowed | License "%s" not allowed in manifest file. | C8105
  manifest-author-string | The author key in the manifest file must be a string (with comma separated values) | E8101
  manifest-behind-migrations | Manifest version (%s) is lower than migration scripts (%s) | E8145
  manifest-data-duplicated | The file "%s" is duplicated in lines %s from manifest key "%s" | W8125
  manifest-deprecated-key | Deprecated key "%s" in manifest file | C8103
  manifest-maintainers-list | The maintainers key in the manifest file must be a list of strings | E8104
  manifest-required-author | One of the following authors must be present in manifest: %s | C8101
  manifest-required-key | Missing required key "%s" in manifest file | C8102
  manifest-version-format | Wrong Version Format "%s" in manifest file. Regex to match: "%s" | C8106
  method-compute | Name of compute method should start with "_compute_" | C8108
  method-inverse | Name of inverse method should start with "_inverse_" | C8110
  method-required-super | Missing `super` call in "%s" method. | W8106
  method-search | Name of search method should start with "_search_" | C8109
  missing-readme | Missing ./README.rst file. Template here: %s | C8112
  missing-return | Missing `return` (`super` is used) in method %s. | W8110
  no-raise-unlink | No exceptions should be raised inside unlink() functions | E8140
  no-wizard-in-models | No wizard class for model directory. See the complete structure https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#complete-structure | C8113
  no-write-in-compute | Compute method calling `write`. Use `update` instead. | E8135
  odoo-addons-relative-import | Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.%s" | W8150
  odoo-exception-warning | `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError` | R8101
  print-used | Print used. Use `logger` instead. | W8116
  prohibited-method-override | Prohibited override of "%s" method. | W8107
  renamed-field-parameter | Field parameter "%s" is no longer supported. Use "%s" instead. | W8111
  resource-not-exist | File "%s": "%s" not found. | F8101
  sql-injection | SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection | E8103
  test-folder-imported | Test folder imported in module %s | E8130
  translation-contains-variable | Translatable term in "%s" contains variables. Use %s instead | W8115
  translation-field | Translation method _("string") in fields is not necessary. | W8103
  translation-format-interpolation | Use %s formatting in odoo._ functions | W8302
  translation-format-truncated | Logging format string ends in middle of conversion specifier | E8301
  translation-fstring-interpolation | Use %s formatting in odoo._ functions | W8303
  translation-not-lazy | Use %s formatting in odoo._ functions | W8301
  translation-positional-used | Translation method _(%s) is using positional string printf formatting with multiple arguments. Use named placeholder `_("%(placeholder)s")` instead. | W8120
  translation-required | String parameter on "%s" requires translation. Use %s_(%s) | C8107
  translation-too-few-args | Not enough arguments for odoo._ format string | E8306
  translation-too-many-args | Too many arguments for odoo._ format string | E8305
  translation-unsupported-format | Unsupported odoo._ format character %r (%#02x) at index %d | E8300
  use-vim-comment | Use of vim comment | W8202
  website-manifest-key-not-valid-uri | Website "%s" in manifest key is not a valid URI | W8114
  [//]: # (end-checks)

  You do not need to install manually if you use pre-commit-config
  But if you even need to install it
      pip install pylint-odoo

  Add to your ".pre-commit-config.yaml" configuration file the following input
  ```yaml
      - repo: https://github.com/OCA/pylint-odoo
          rev: v9.1.4 # may be a tag or commit hash
          hooks:
          
          
          
          - id: pylint_odoo
  ```

      pylint --load-plugins=pylint_odoo -e odoolint path/to/test
  or use configuration file you can generate the OCA one using the following template repository:
      https://github.com/OCA/oca-addons-repo-template
  Then running
      pylint --rcfile=.pylintrc path/to/test
  Example to test only pylint_odoo checks:
      pylint --load-plugins=pylint_odoo -d all -e odoolint {ADDONS-PATH}/*
  There are checks only valid for a particular Odoo version
  To know what version of odoo are you running pylint needs the parameter
      pylint --load-plugins=pylint_odoo --valid-odoo-versions={YOUR_ODOO_VERSION}
  with particular odoo version e.g. `"16.0"`
  Checks valid only for odoo >= 14.0
      translation-format-interpolation
      translation-format-truncated
      translation-fstring-interpolation
      translation-not-lazy
      translation-too-few-args
      translation-too-many-args
      translation-unsupported-format
  Checks valid only for odoo <= 13.0
      translation-contains-variable
  [//]: # (start-example)

   * attribute-deprecated
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L105 attribute "_columns" deprecated
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L106 attribute "_defaults" deprecated
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L107 attribute "length" deprecated
   * attribute-string-redundant
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L161 The attribute string is redundant. String parameter equal to name of variable
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L209 The attribute string is redundant. String parameter equal to name of variable
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L219 The attribute string is redundant. String parameter equal to name of variable
   * bad-builtin-groupby
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L110 Used builtin function `itertools.groupby`. Prefer `odoo.tools.groupby` instead. More info about https://github.com/odoo/odoo/issues/105376
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L111 Used builtin function `itertools.groupby`. Prefer `odoo.tools.groupby` instead. More info about https://github.com/odoo/odoo/issues/105376
   * consider-merging-classes-inherited
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/model_inhe2.py#L11 Consider merging classes inherited to "res.company" from testing/resources/test_repo/broken_module/models/model_inhe1.py:8:4, testing/resources/test_repo/broken_module/models/model_inhe2.py:7:4.
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/model_inhe2.py#L19 Consider merging classes inherited to "res.partner" from testing/resources/test_repo/broken_module/models/model_inhe2.py:15:4.
   * context-overridden
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L192 Context overridden using dict. Better using kwargs `with_context(**{'overwrite_context': True})` or `with_context(key=value)`
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L194 Context overridden using dict. Better using kwargs `with_context(**ctx)` or `with_context(key=value)`
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L196 Context overridden using dict. Better using kwargs `with_context(**ctx2)` or `with_context(key=value)`
   * deprecated-odoo-model-method
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L91 fields_view_get has been deprecated by Odoo. Please look for alternatives.
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/eleven_module/models.py#L17 fields_view_get has been deprecated by Odoo. Please look for alternatives.
   * development-status-allowed
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module2/__openerp__.py#L6 Manifest key development_status "InvalidDevStatus" not allowed. Use one of: Alpha, Beta, Mature, Production/Stable.
   * except-pass
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/test_module/except_pass.py#L11 pass into block except. If you really need to use the pass consider logging that exception
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/test_module/except_pass.py#L53 pass into block except. If you really need to use the pass consider logging that exception
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/test_module/except_pass.py#L62 pass into block except. If you really need to use the pass consider logging that exception
   * external-request-timeout
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L685 Use of external request method `requests.delete` without timeout. It could wait for a long time
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L686 Use of external request method `requests.get` without timeout. It could wait for a long time
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L687 Use of external request method `requests.head` without timeout. It could wait for a long time
   * invalid-commit
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L404 Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L405 Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L406 Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction
   * license-allowed
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module2/__openerp__.py#L4 License "unknow license" not allowed in manifest file.
   * manifest-author-string
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module3/__openerp__.py#L5 The author key in the manifest file must be a string (with comma separated values)
   * manifest-behind-migrations
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module2/__openerp__.py#L2 Manifest version (1.0) is lower than migration scripts (2.0)
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/eleven_module/__manifest__.py#L1 Manifest version (11.0.1.0.0) is lower than migration scripts (11.0.1.0.1)
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/test_module/__openerp__.py#L2 Manifest version (10.0.1.0.0) is lower than migration scripts (11.0.1.0.0)
   * manifest-data-duplicated
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/__openerp__.py#L18 The file "duplicated.xml" is duplicated in lines 19 from manifest key "data"
   * manifest-deprecated-key
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/__openerp__.py#L7 Deprecated key "description" in manifest file
   * manifest-maintainers-list
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module3/__openerp__.py#L6 The maintainers key in the manifest file must be a list of strings
   * manifest-required-author
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/__openerp__.py#L5 One of the following authors must be present in manifest: 'Odoo Community Association (OCA)'
   * manifest-required-key
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/__openerp__.py#L2 Missing required key "license" in manifest file
   * manifest-version-format
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/__openerp__.py#L8 Wrong Version Format "8_0.1.0.0" in manifest file. Regex to match: "(4\.2|5\.0|6\.0|6\.1|7\.0|8\.0|9\.0|10\.0|11\.0|12\.0|13\.0|14\.0|15\.0|16\.0|17\.0|18\.0)\.\d+\.\d+\.\d+$"
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module2/__openerp__.py#L8 Wrong Version Format "1.0" in manifest file. Regex to match: "(4\.2|5\.0|6\.0|6\.1|7\.0|8\.0|9\.0|10\.0|11\.0|12\.0|13\.0|14\.0|15\.0|16\.0|17\.0|18\.0)\.\d+\.\d+\.\d+$"
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module3/__openerp__.py#L8 Wrong Version Format "8.0.1.0.0foo" in manifest file. Regex to match: "(4\.2|5\.0|6\.0|6\.1|7\.0|8\.0|9\.0|10\.0|11\.0|12\.0|13\.0|14\.0|15\.0|16\.0|17\.0|18\.0)\.\d+\.\d+\.\d+$"
   * method-compute
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L155 Name of compute method should start with "_compute_"
   * method-inverse
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L157 Name of inverse method should start with "_inverse_"
   * method-required-super
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L40 Missing `super` call in "copy" method.
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L44 Missing `super` call in "create" method.
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L48 Missing `super` call in "write" method.
   * method-search
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L156 Name of search method should start with "_search_"
   * missing-readme
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/__openerp__.py#L2 Missing ./README.rst file. Template here: https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst
   * missing-return
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L24 Missing `return` (`super` is used) in method inherited_method.
   * no-raise-unlink
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/test_module/res_partner_unlink.py#L9 No exceptions should be raised inside unlink() functions
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/test_module/sale_order_unlink.py#L14 No exceptions should be raised inside unlink() functions
   * no-wizard-in-models
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L824 No wizard class for model directory. See the complete structure https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#complete-structure
   * no-write-in-compute
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L114 Compute method calling `write`. Use `update` instead.
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L116 Compute method calling `write`. Use `update` instead.
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L119 Compute method calling `write`. Use `update` instead.
   * odoo-addons-relative-import
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L49 Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.broken_module"
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L50 Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.broken_module"
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L51 Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.broken_module"
   * odoo-exception-warning
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L10 `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError`
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L11 `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError`
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L8 `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError`
   * print-used
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/test_module/except_pass.py#L20 Print used. Use `logger` instead.
   * renamed-field-parameter
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L209 Field parameter "digits_compute" is no longer supported. Use "digits" instead.
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L209 Field parameter "select" is no longer supported. Use "index" instead.
   * resource-not-exist
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/__openerp__.py#L14 File "data": "file_no_exist.xml" not found.
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/__openerp__.py#L18 File "data": "duplicated.xml" not found.
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/__openerp__.py#L23 File "demo": "file_no_exist.xml" not found.
   * sql-injection
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L571 SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L573 SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L575 SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection
   * test-folder-imported
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/__init__.py#L5 Test folder imported in module broken_module
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module2/__init__.py#L3 Test folder imported in module broken_module2
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/eleven_module/__init__.py#L3 Test folder imported in module eleven_module
   * translation-contains-variable
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L371 Translatable term in "'Variable not translatable: %s' % variable1" contains variables. Use _('Variable not translatable: %s') % variable1 instead
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L372 Translatable term in "'Variables not translatable: %s, %s' % (variable1, variable2)" contains variables. Use _('Variables not translatable: %s, %s') % (variable1, variable2) instead
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L374 Translatable term in "'Variable not translatable: %s' % variable1" contains variables. Use _('Variable not translatable: %s') % variable1 instead
   * translation-field
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L143 Translation method _("string") in fields is not necessary.
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L153 Translation method _("string") in fields is not necessary.
   * translation-format-interpolation
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L380 Use lazy % or .format() or % formatting in odoo._ functions
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L381 Use lazy % or .format() or % formatting in odoo._ functions
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L468 Use lazy % or .format() or % formatting in odoo._ functions
   * translation-format-truncated
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L479 Logging format string ends in middle of conversion specifier
   * translation-fstring-interpolation
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L477 Use lazy % or .format() or % formatting in odoo._ functions
   * translation-not-lazy
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L345 Use lazy % or .format() or % formatting in odoo._ functions
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L346 Use lazy % or .format() or % formatting in odoo._ functions
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L348 Use lazy % or .format() or % formatting in odoo._ functions
   * translation-positional-used
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L372 Translation method _('Variables not translatable: %s, %s' % (variable1, variable2)) is using positional string printf formatting with multiple arguments. Use named placeholder `_("s")` instead.
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L375 Translation method _('Variables not translatable: %s %s' % (variable1, variable2)) is using positional string printf formatting with multiple arguments. Use named placeholder `_("s")` instead.
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L378 Translation method _('Variables not translatable: %s, %s' % (variable1, variable2)) is using positional string printf formatting with multiple arguments. Use named placeholder `_("s")` instead.
   * translation-required
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L322 String parameter on "message_post" requires translation. Use body=_('Body not translatable %s')
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L322 String parameter on "message_post" requires translation. Use subject=_('Subject not translatable')
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L324 String parameter on "message_post" requires translation. Use body=_('Body not translatable {}')
   * translation-too-few-args
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L475 Not enough arguments for odoo._ format string
   * translation-too-many-args
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L480 Too many arguments for odoo._ format string
   * translation-unsupported-format
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/models/broken_model.py#L478 Unsupported odoo._ format character 'y' (0x79) at index 30
   * use-vim-comment
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L108 Use of vim comment
   * website-manifest-key-not-valid-uri
      - https://github.com/OCA/pylint-odoo/blob/v9.1.4/testing/resources/test_repo/broken_module3/__openerp__.py#L7 Website "htt://odoo-community.com" in manifest key is not a valid URI
  [//]: # (end-example)

  To run all the tests run:
      tox
  Use extra parameters to change the test behaviour
  e.g. particular python version
      tox -e py310
  e.g. particular unittest method
      tox -e py310 -- -k test_20_expected_errors
  e.g. all the tests at the same time in parallel
      tox -p auto


pkgId: 0b87e6101ba2f7679a87c170b4f0b388cdbc710c9302dbe4be76332d87c1b3b9
name: python-pylint-odoo-help
arch: noarch
version: 9.2.0
epoch: 0
release: 1
summary: Development documents and examples for pylint-odoo
url: https://github.com/OCA/pylint-odoo
rpm_license: APGL3
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pylint-odoo-9.2.0-1.src.rpm
location_href: Packages/python-pylint-odoo-help-9.2.0-1.noarch.rpm
checksum_type: sha256
description:
  attribute-deprecated | attribute "%s" deprecated | W8105
  attribute-string-redundant | The attribute string is redundant. String parameter equal to name of variable | W8113
  bad-builtin-groupby | Used builtin function `itertools.groupby`. Prefer `odoo.tools.groupby` instead. More info about https://github.com/odoo/odoo/issues/105376 | W8155
  category-allowed | Category "%s" not allowed in manifest file. | C8114
  consider-merging-classes-inherited | Consider merging classes inherited to "%s" from %s. | R8180
  context-overridden | Context overridden using dict. Better using kwargs `with_context(**%s)` or `with_context(key=value)` | W8121
  deprecated-odoo-model-method | %s has been deprecated by Odoo. Please look for alternatives. | W8160
  development-status-allowed | Manifest key development_status "%s" not allowed. Use one of: %s. | C8111
  except-pass | pass into block except. If you really need to use the pass consider logging that exception | W8138
  external-request-timeout | Use of external request method `%s` without timeout. It could wait for a long time | E8106
  invalid-commit | Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction | E8102
  license-allowed | License "%s" not allowed in manifest file. | C8105
  manifest-author-string | The author key in the manifest file must be a string (with comma separated values) | E8101
  manifest-behind-migrations | Manifest version (%s) is lower than migration scripts (%s) | E8145
  manifest-data-duplicated | The file "%s" is duplicated in lines %s from manifest key "%s" | W8125
  manifest-deprecated-key | Deprecated key "%s" in manifest file | C8103
  manifest-maintainers-list | The maintainers key in the manifest file must be a list of strings | E8104
  manifest-required-author | One of the following authors must be present in manifest: %s | C8101
  manifest-required-key | Missing required key "%s" in manifest file | C8102
  manifest-version-format | Wrong Version Format "%s" in manifest file. Regex to match: "%s" | C8106
  method-compute | Name of compute method should start with "_compute_" | C8108
  method-inverse | Name of inverse method should start with "_inverse_" | C8110
  method-required-super | Missing `super` call in "%s" method. | W8106
  method-search | Name of search method should start with "_search_" | C8109
  missing-readme | Missing ./README.rst file. Template here: %s | C8112
  missing-return | Missing `return` (`super` is used) in method %s. | W8110
  no-raise-unlink | No exceptions should be raised inside unlink() functions | E8140
  no-wizard-in-models | No wizard class for model directory. See the complete structure https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#complete-structure | C8113
  no-write-in-compute | Compute method calling `write`. Use `update` instead. | E8135
  odoo-addons-relative-import | Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.%s" | W8150
  odoo-exception-warning | `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError` | R8101
  print-used | Print used. Use `logger` instead. | W8116
  prohibited-method-override | Prohibited override of "%s" method. | W8107
  renamed-field-parameter | Field parameter "%s" is no longer supported. Use "%s" instead. | W8111
  resource-not-exist | File "%s": "%s" not found. | F8101
  sql-injection | SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection | E8103
  test-folder-imported | Test folder imported in module %s | E8130
  translation-contains-variable | Translatable term in "%s" contains variables. Use %s instead | W8115
  translation-field | Translation method _("string") in fields is not necessary. | W8103
  translation-format-interpolation | Use %s formatting in odoo._ functions | W8302
  translation-format-truncated | Logging format string ends in middle of conversion specifier | E8301
  translation-fstring-interpolation | Use %s formatting in odoo._ functions | W8303
  translation-not-lazy | Use %s formatting in odoo._ functions | W8301
  translation-positional-used | Translation method _(%s) is using positional string printf formatting with multiple arguments. Use named placeholder `_("%(placeholder)s")` instead. | W8120
  translation-required | String parameter on "%s" requires translation. Use %s_(%s) | C8107
  translation-too-few-args | Not enough arguments for odoo._ format string | E8306
  translation-too-many-args | Too many arguments for odoo._ format string | E8305
  translation-unsupported-format | Unsupported odoo._ format character %r (%#02x) at index %d | E8300
  use-vim-comment | Use of vim comment | W8202
  website-manifest-key-not-valid-uri | Website "%s" in manifest key is not a valid URI | W8114
  [//]: # (end-checks)

  You do not need to install manually if you use pre-commit-config
  But if you even need to install it
      pip install pylint-odoo

  Add to your ".pre-commit-config.yaml" configuration file the following input
  ```yaml
      - repo: https://github.com/OCA/pylint-odoo
          rev: v9.2.0 # may be a tag or commit hash
          hooks:
          
          
          
          - id: pylint_odoo
  ```

      pylint --load-plugins=pylint_odoo -e odoolint path/to/test
  or use configuration file you can generate the OCA one using the following template repository:
      https://github.com/OCA/oca-addons-repo-template
  Then running
      pylint --rcfile=.pylintrc path/to/test
  Example to test only pylint_odoo checks:
      pylint --load-plugins=pylint_odoo -d all -e odoolint {ADDONS-PATH}/*
  There are checks only valid for a particular Odoo version
  To know what version of odoo are you running pylint needs the parameter
      pylint --load-plugins=pylint_odoo --valid-odoo-versions={YOUR_ODOO_VERSION}
  with particular odoo version e.g. `"16.0"`
  Checks valid only for odoo >= 14.0
      translation-format-interpolation
      translation-format-truncated
      translation-fstring-interpolation
      translation-not-lazy
      translation-too-few-args
      translation-too-many-args
      translation-unsupported-format
  Checks valid only for odoo <= 13.0
      translation-contains-variable
  [//]: # (start-example)

   * attribute-deprecated
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L105 attribute "_columns" deprecated
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L106 attribute "_defaults" deprecated
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L107 attribute "length" deprecated
   * attribute-string-redundant
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L161 The attribute string is redundant. String parameter equal to name of variable
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L209 The attribute string is redundant. String parameter equal to name of variable
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L219 The attribute string is redundant. String parameter equal to name of variable
   * bad-builtin-groupby
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L110 Used builtin function `itertools.groupby`. Prefer `odoo.tools.groupby` instead. More info about https://github.com/odoo/odoo/issues/105376
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L111 Used builtin function `itertools.groupby`. Prefer `odoo.tools.groupby` instead. More info about https://github.com/odoo/odoo/issues/105376
   * consider-merging-classes-inherited
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/model_inhe2.py#L11 Consider merging classes inherited to "res.company" from testing/resources/test_repo/broken_module/models/model_inhe1.py:8:4, testing/resources/test_repo/broken_module/models/model_inhe2.py:7:4.
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/model_inhe2.py#L19 Consider merging classes inherited to "res.partner" from testing/resources/test_repo/broken_module/models/model_inhe2.py:15:4.
   * context-overridden
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L192 Context overridden using dict. Better using kwargs `with_context(**{'overwrite_context': True})` or `with_context(key=value)`
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L194 Context overridden using dict. Better using kwargs `with_context(**ctx)` or `with_context(key=value)`
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L196 Context overridden using dict. Better using kwargs `with_context(**ctx2)` or `with_context(key=value)`
   * deprecated-odoo-model-method
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L91 fields_view_get has been deprecated by Odoo. Please look for alternatives.
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/eleven_module/models.py#L17 fields_view_get has been deprecated by Odoo. Please look for alternatives.
   * development-status-allowed
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module2/__openerp__.py#L6 Manifest key development_status "InvalidDevStatus" not allowed. Use one of: Alpha, Beta, Mature, Production/Stable.
   * except-pass
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/test_module/except_pass.py#L11 pass into block except. If you really need to use the pass consider logging that exception
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/test_module/except_pass.py#L53 pass into block except. If you really need to use the pass consider logging that exception
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/test_module/except_pass.py#L62 pass into block except. If you really need to use the pass consider logging that exception
   * external-request-timeout
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L690 Use of external request method `requests.delete` without timeout. It could wait for a long time
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L691 Use of external request method `requests.get` without timeout. It could wait for a long time
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L692 Use of external request method `requests.head` without timeout. It could wait for a long time
   * invalid-commit
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L409 Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L410 Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L411 Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction
   * license-allowed
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module2/__openerp__.py#L4 License "unknow license" not allowed in manifest file.
   * manifest-author-string
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module3/__openerp__.py#L5 The author key in the manifest file must be a string (with comma separated values)
   * manifest-behind-migrations
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module2/__openerp__.py#L2 Manifest version (1.0) is lower than migration scripts (2.0)
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/eleven_module/__manifest__.py#L1 Manifest version (11.0.1.0.0) is lower than migration scripts (11.0.1.0.1)
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/test_module/__openerp__.py#L2 Manifest version (10.0.1.0.0) is lower than migration scripts (11.0.1.0.0)
   * manifest-data-duplicated
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/__openerp__.py#L18 The file "duplicated.xml" is duplicated in lines 19 from manifest key "data"
   * manifest-deprecated-key
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/__openerp__.py#L7 Deprecated key "description" in manifest file
   * manifest-maintainers-list
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module3/__openerp__.py#L6 The maintainers key in the manifest file must be a list of strings
   * manifest-required-author
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/__openerp__.py#L5 One of the following authors must be present in manifest: 'Odoo Community Association (OCA)'
   * manifest-required-key
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/__openerp__.py#L2 Missing required key "license" in manifest file
   * manifest-version-format
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/__openerp__.py#L8 Wrong Version Format "8_0.1.0.0" in manifest file. Regex to match: "(4\.2|5\.0|6\.0|6\.1|7\.0|8\.0|9\.0|10\.0|11\.0|12\.0|13\.0|14\.0|15\.0|16\.0|17\.0|18\.0)\.\d+\.\d+\.\d+$"
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module2/__openerp__.py#L8 Wrong Version Format "1.0" in manifest file. Regex to match: "(4\.2|5\.0|6\.0|6\.1|7\.0|8\.0|9\.0|10\.0|11\.0|12\.0|13\.0|14\.0|15\.0|16\.0|17\.0|18\.0)\.\d+\.\d+\.\d+$"
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module3/__openerp__.py#L8 Wrong Version Format "8.0.1.0.0foo" in manifest file. Regex to match: "(4\.2|5\.0|6\.0|6\.1|7\.0|8\.0|9\.0|10\.0|11\.0|12\.0|13\.0|14\.0|15\.0|16\.0|17\.0|18\.0)\.\d+\.\d+\.\d+$"
   * method-compute
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L155 Name of compute method should start with "_compute_"
   * method-inverse
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L157 Name of inverse method should start with "_inverse_"
   * method-required-super
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L40 Missing `super` call in "copy" method.
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L44 Missing `super` call in "create" method.
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L48 Missing `super` call in "write" method.
   * method-search
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L156 Name of search method should start with "_search_"
   * missing-readme
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/__openerp__.py#L2 Missing ./README.rst file. Template here: https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst
   * missing-return
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L24 Missing `return` (`super` is used) in method inherited_method.
   * no-raise-unlink
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/test_module/res_partner_unlink.py#L9 No exceptions should be raised inside unlink() functions
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/test_module/sale_order_unlink.py#L14 No exceptions should be raised inside unlink() functions
   * no-wizard-in-models
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L829 No wizard class for model directory. See the complete structure https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#complete-structure
   * no-write-in-compute
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L114 Compute method calling `write`. Use `update` instead.
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L116 Compute method calling `write`. Use `update` instead.
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L119 Compute method calling `write`. Use `update` instead.
   * odoo-addons-relative-import
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L49 Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.broken_module"
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L50 Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.broken_module"
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L51 Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.broken_module"
   * odoo-exception-warning
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L10 `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError`
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L11 `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError`
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L8 `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError`
   * print-used
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/test_module/except_pass.py#L20 Print used. Use `logger` instead.
   * renamed-field-parameter
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L209 Field parameter "digits_compute" is no longer supported. Use "digits" instead.
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L209 Field parameter "select" is no longer supported. Use "index" instead.
   * resource-not-exist
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/__openerp__.py#L14 File "data": "file_no_exist.xml" not found.
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/__openerp__.py#L18 File "data": "duplicated.xml" not found.
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/__openerp__.py#L23 File "demo": "file_no_exist.xml" not found.
   * sql-injection
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L576 SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L578 SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L580 SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection
   * test-folder-imported
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/__init__.py#L5 Test folder imported in module broken_module
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module2/__init__.py#L3 Test folder imported in module broken_module2
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/eleven_module/__init__.py#L3 Test folder imported in module eleven_module
   * translation-contains-variable
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L371 Translatable term in "'Variable not translatable: %s' % variable1" contains variables. Use _('Variable not translatable: %s') % variable1 instead
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L372 Translatable term in "'Variables not translatable: %s, %s' % (variable1, variable2)" contains variables. Use _('Variables not translatable: %s, %s') % (variable1, variable2) instead
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L374 Translatable term in "'Variable not translatable: %s' % variable1" contains variables. Use _('Variable not translatable: %s') % variable1 instead
   * translation-field
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L143 Translation method _("string") in fields is not necessary.
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L153 Translation method _("string") in fields is not necessary.
   * translation-format-interpolation
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L380 Use lazy % or .format() or % formatting in odoo._ functions
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L381 Use lazy % or .format() or % formatting in odoo._ functions
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L473 Use lazy % or .format() or % formatting in odoo._ functions
   * translation-format-truncated
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L484 Logging format string ends in middle of conversion specifier
   * translation-fstring-interpolation
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L482 Use lazy % or .format() or % formatting in odoo._ functions
   * translation-not-lazy
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L345 Use lazy % or .format() or % formatting in odoo._ functions
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L346 Use lazy % or .format() or % formatting in odoo._ functions
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L348 Use lazy % or .format() or % formatting in odoo._ functions
   * translation-positional-used
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L372 Translation method _('Variables not translatable: %s, %s' % (variable1, variable2)) is using positional string printf formatting with multiple arguments. Use named placeholder `_("s")` instead.
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L375 Translation method _('Variables not translatable: %s %s' % (variable1, variable2)) is using positional string printf formatting with multiple arguments. Use named placeholder `_("s")` instead.
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L378 Translation method _('Variables not translatable: %s, %s' % (variable1, variable2)) is using positional string printf formatting with multiple arguments. Use named placeholder `_("s")` instead.
   * translation-required
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L322 String parameter on "message_post" requires translation. Use body=_('Body not translatable %s')
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L322 String parameter on "message_post" requires translation. Use subject=_('Subject not translatable')
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L324 String parameter on "message_post" requires translation. Use body=_('Body not translatable {}')
   * translation-too-few-args
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L480 Not enough arguments for odoo._ format string
   * translation-too-many-args
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L485 Too many arguments for odoo._ format string
   * translation-unsupported-format
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/models/broken_model.py#L483 Unsupported odoo._ format character 'y' (0x79) at index 30
   * use-vim-comment
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L108 Use of vim comment
   * website-manifest-key-not-valid-uri
      - https://github.com/OCA/pylint-odoo/blob/v9.2.0/testing/resources/test_repo/broken_module3/__openerp__.py#L7 Website "htt://odoo-community.com" in manifest key is not a valid URI
  [//]: # (end-example)

  To run all the tests run:
      tox
  Use extra parameters to change the test behaviour
  e.g. particular python version
      tox -e py310
  e.g. particular unittest method
      tox -e py310 -- -k test_20_expected_errors
  e.g. all the tests at the same time in parallel
      tox -p auto


pkgId: 09ee73c24b826a9cd5f8bd8f6567eafe86cb3039a7dd762e06b8510114942f8f
name: python-pylint-report-help
arch: noarch
version: 2.4.1
epoch: 0
release: 1
summary: Development documents and examples for pylint-report
url: https://pypi.org/project/pylint-report/
rpm_license: Apache 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pylint-report-2.4.1-1.src.rpm
location_href: Packages/python-pylint-report-help-2.4.1-1.noarch.rpm
checksum_type: sha256
description:
  Generates an HTML report summarizing the results of `pylint <https://www.pylint.org/>`_
  (see `documentation <https://drdv.github.io/pylint-report>`_).


pkgId: 50de1c9e15779119d83b225805c00e8af9cf8fbbff3bf1c284dfcc7295351eb9
name: python-pylinuxauto-help
arch: noarch
version: 2024.12.16
epoch: 0
release: 1
summary: Development documents and examples for pylinuxauto
url: https://pypi.org/project/pylinuxauto/
rpm_license: GPL2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pylinuxauto-2024.12.16-1.src.rpm
location_href: Packages/python-pylinuxauto-help-2024.12.16-1.noarch.rpm
checksum_type: sha256
description:
  <p align="center">
    <a href="https://github.com/linuxdeepin-QAeggs/pylinuxauto">
      <img src="./assets/logo.png" width="100" alt="PyLinuxAuto">
    </a>
  </p>
  <h1 align="center">PyLinuxAuto</h1>
  <p align="center">
      <em>Linux GUI Automation with Python.</em>
  </p>

  ![Python](https://img.shields.io/badge/Python-007CFF?style=for-the-badge&logo=Python&logoColor=white)
  ![Linux](https://img.shields.io/badge/Linux-007CFF?style=for-the-badge&logo=linux&logoColor=white)

  ![PyPI](https://img.shields.io/pypi/v/pylinuxauto?style=flat&logo=github&link=https%3A%2F%2Fpypi.org%2Fproject%2Fpylinuxauto%2F&color=%23F79431)
  ![Downloads](https://static.pepy.tech/badge/pylinuxauto)

  **PyLinuxAuto** 是一个用于 Linux 桌面 GUI 自动化测试的 Python 模块，支持多种元素定位方法和键鼠操作。

  文档：https://youqu.uniontech.com/



  ```bash
  pip3 install pylinuxauto
  ```





  ```python
  import pylinuxauto

  pylinuxauto.click()
  pylinuxauto.double_click()
  ```



  通过 Accessibility 路径查找并操作元素，路径名称可以通过 sniff 命令查看。

  ```python
  import pylinuxauto

  pylinuxauto.find_element_by_attr_path("/dde-doc/Btn_文件管理器").click()
  ```



  传入一张目标图片的路径，自动在当前屏幕中查找目标图片。

  ```python
  import pylinuxauto
  from pylinuxauto.config import config

  config.IMAGE_SERVER_IP = "192.168.0.1"
  pylinuxauto.find_element_by_image("~/Desktop/template.png").click()
  ```



  使用传入需要识别的文本字符，使用 OCR 在当前屏幕中识别。

  ```python
  import pylinuxauto
  from pylinuxauto.config import config

  config.OCR_SERVER_IP = "192.168.0.1"
  pylinuxauto.find_element_by_ocr("中国").click()
  ```



  通过将目标按钮相对于应用窗口的位置信息，然后动态获取应用窗口在当前屏幕中的信息，最后计算出目标按钮在当前屏幕中的位置。

  ```python
  import pylinuxauto
  from pylinuxauto import Ele, Ref

  close_btn = Ele(xy=(25, 25), ref=Ref.RIGHT_TOP, appname="dde-file-manager", alias="关闭按钮")

  pylinuxauto.find_element_by_ref(close_btn).click()
  pylinuxauto.find_element_by_ref(close_btn).right_click()
  ```



  PyLinuxAuto 在 GPL-2.0 下发布。


pkgId: a65b9c31574550c33d9b8ff6cb0f6f1762409c48c6157442185d772d587083fa
name: python-pyllms-help
arch: noarch
version: 0.7.0
epoch: 0
release: 1
summary: Development documents and examples for pyllms
url: https://pypi.org/project/pyllms/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyllms-0.7.0-1.src.rpm
location_href: Packages/python-pyllms-help-0.7.0-1.noarch.rpm
checksum_type: sha256
description:
  [![PyPI version](https://badge.fury.io/py/pyllms.svg)](https://badge.fury.io/py/pyllms)
  [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/license/mit/)
  [![](https://dcbadge.vercel.app/api/server/aDNg6E9szy?compact=true&style=flat)](https://discord.gg/aDNg6E9szy)
  [![Twitter](https://img.shields.io/twitter/follow/KagiHQ?style=social)](https://twitter.com/KagiHQ)

  PyLLMs is a minimal Python library to connect to various Language Models (LLMs) with a built-in model performance benchmark.



  - [Features](#features)
  - [Installation](#installation)
  - [Quick Start](#quick-start)
  - [Usage](#usage)
    - [Basic Usage](#basic-usage)
    - [Multi-model Usage](#multi-model-usage)
    - [Async Support](#async-support)
    - [Streaming Support](#streaming-support)
    - [Chat History and System Message](#chat-history-and-system-message)
    - [Other Methods](#other-methods)
  - [Configuration](#configuration)
  - [Model Benchmarks](#model-benchmarks)
  - [Supported Models](#supported-models)
  - [Advanced Usage](#advanced-usage)
    - [Using OpenAI API on Azure](#using-openai-api-on-azure)
    - [Using Google Vertex LLM models](#using-google-vertex-llm-models)
    - [Using Local Ollama LLM models](#using-local-ollama-llm-models)
  - [Contributing](#contributing)
  - [License](#license)



  - Connect to top LLMs in a few lines of code
  - Response meta includes tokens processed, cost, and latency standardized across models
  - Multi-model support: Get completions from different models simultaneously
  - LLM benchmark: Evaluate models on quality, speed, and cost
  -  Async and streaming support for compatible models



  Install the package using pip:

  ```bash
  pip install pyllms
  ```



  ```python
  import llms

  model = llms.init('gpt-4o')
  result = model.complete("What is 5+5?")

  print(result.text)
  ```





  ```python
  import llms

  model = llms.init('gpt-4o')
  result = model.complete(
      "What is the capital of the country where Mozart was born?",
      temperature=0.1,
      max_tokens=200
  )

  print(result.text)
  print(result.meta)
  ```



  ```python
  models = llms.init(model=['gpt-3.5-turbo', 'claude-instant-v1'])
  result = models.complete('What is the capital of the country where Mozart was born?')

  print(result.text)
  print(result.meta)
  ```



  ```python
  result = await model.acomplete("What is the capital of the country where Mozart was born?")
  ```



  ```python
  model = llms.init('claude-v1')
  result = model.complete_stream("Write an essay on the Civil War")
  for chunk in result.stream:
     if chunk is not None:
        print(chunk, end='')
  ```



  ```python
  history = []
  history.append({"role": "user", "content": user_input})
  history.append({"role": "assistant", "content": result.text})

  model.complete(prompt=prompt, history=history)


  model.complete(prompt=prompt, system_message=system, history=history)
  ```



  ```python
  count = model.count_tokens('The quick brown fox jumped over the lazy dog')
  ```



  PyLLMs will attempt to read API keys and the default model from environment variables. You can set them like this:

  ```bash
  export OPENAI_API_KEY="your_api_key_here"
  export ANTHROPIC_API_KEY="your_api_key_here"
  export AI21_API_KEY="your_api_key_here"
  export COHERE_API_KEY="your_api_key_here"
  export ALEPHALPHA_API_KEY="your_api_key_here"
  export HUGGINFACEHUB_API_KEY="your_api_key_here"
  export GOOGLE_API_KEY="your_api_key_here"
  export MISTRAL_API_KEY="your_api_key_here"
  export REKA_API_KEY="your_api_key_here"
  export TOGETHER_API_KEY="your_api_key_here"
  export GROQ_API_KEY="your_api_key_here"
  export DEEPSEEK_API_KEY="your_api_key_here"

  export LLMS_DEFAULT_MODEL="gpt-3.5-turbo"
  ```

  Alternatively, you can pass initialization values to the `init()` method:

  ```python
  model = llms.init(openai_api_key='your_api_key_here', model='gpt-4')
  ```



  PyLLMs includes an automated benchmark system. The quality of models is evaluated using a powerful model (e.g., GPT-4) on a range of predefined questions, or you can supply your own.

  ```python
  model = llms.init(model=['claude-3-haiku-20240307', 'gpt-4o-mini', 'claude-3-5-sonnet-20240620', 'gpt-4o', 'mistral-large-latest', 'open-mistral-nemo', 'gpt-4', 'gpt-3.5-turbo', 'deepseek-coder', 'deepseek-chat', 'llama-3.1-8b-instant', 'llama-3.1-70b-versatile'])

  gpt4 = llms.init('gpt-4o')

  models.benchmark(evaluator=gpt4)
  ```

  Check [Kagi LLM Benchmarking Project](https://help.kagi.com/kagi/ai/llm-benchmark.html) for the latest benchmarks!

  To evaluate models on your own prompts:

  ```python
  models.benchmark(prompts=[("What is the capital of Finland?", "Helsinki")], evaluator=gpt4)
  ```



  To get a full list of supported models:

  ```python
  model = llms.init()
  model.list() # list all models

  model.list("gpt")  # lists only models with 'gpt' in name/provider name
  ```
  Currently supported models (may be outdated):

  | **Provider**              | **Models**                                                                                               |
  |---------------------------|---------------------------------------------------------------------------------------------------------|
  | OpenAIProvider            | gpt-3.5-turbo, gpt-3.5-turbo-1106, gpt-3.5-turbo-instruct, gpt-4, gpt-4-1106-preview, gpt-4-turbo-preview, gpt-4-turbo, gpt-4o, gpt-4o-mini, gpt-4o-2024-08-06, o1-preview, o1-mini, o1 |
  | AnthropicProvider         | claude-instant-v1.1, claude-instant-v1, claude-v1, claude-v1-100k, claude-instant-1, claude-instant-1.2, claude-2.1, claude-3-haiku-20240307, claude-3-sonnet-20240229, claude-3-opus-20240229, claude-3-5-sonnet-20240620, claude-3-5-sonnet-20241022 |
  | BedrockAnthropicProvider  | anthropic.claude-instant-v1, anthropic.claude-v1, anthropic.claude-v2, anthropic.claude-3-haiku-20240307-v1:0, anthropic.claude-3-sonnet-20240229-v1:0, anthropic.claude-3-5-sonnet-20240620-v1:0 |
  | AI21Provider              | j2-grande-instruct, j2-jumbo-instruct |
  | CohereProvider            | command, command-nightly |
  | AlephAlphaProvider        | luminous-base, luminous-extended, luminous-supreme, luminous-supreme-control |
  | HuggingfaceHubProvider    | hf_pythia, hf_falcon40b, hf_falcon7b, hf_mptinstruct, hf_mptchat, hf_llava, hf_dolly, hf_vicuna |
  | GoogleGenAIProvider       | chat-bison-genai, text-bison-genai, gemini-1.5-pro, gemini-1.5-pro-latest, gemini-1.5-flash, gemini-1.5-flash-latest, gemini-1.5-pro-exp-0801 |
  | GoogleProvider            | chat-bison, text-bison, text-bison-32k, code-bison, code-bison-32k, codechat-bison, codechat-bison-32k, gemini-pro, gemini-1.5-pro-preview-0514, gemini-1.5-flash-preview-0514 |
  | OllamaProvider            | vanilj/Phi-4:latest, falcon3:10b, smollm2:latest, llama3.2:3b-instruct-q8_0, qwen2:1.5b, mistral:7b-instruct-v0.2-q4_K_S, phi3:latest, phi3:3.8b, phi:latest, tinyllama:latest, magicoder:latest, deepseek-coder:6.7b, deepseek-coder:latest, dolphin-phi:latest, stablelm-zephyr:latest |
  | DeepSeekProvider          | deepseek-chat, deepseek-coder |
  | GroqProvider              | llama-3.1-405b-reasoning, llama-3.1-70b-versatile, llama-3.1-8b-instant, gemma2-9b-it |
  | RekaProvider              | reka-edge, reka-flash, reka-core |
  | TogetherProvider          | meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo |
  | OpenRouterProvider        | nvidia/llama-3.1-nemotron-70b-instruct, x-ai/grok-2, nousresearch/hermes-3-llama-3.1-405b:free, google/gemini-flash-1.5-exp, liquid/lfm-40b, mistralai/ministral-8b, qwen/qwen-2.5-72b-instruct |
  | MistralProvider           | mistral-tiny, open-mistral-7b, mistral-small, open-mixtral-8x7b, mistral-small-latest, mistral-medium-latest, mistral-large-latest, open-mistral-nemo |







  ```python
  import llms
  AZURE_API_BASE = "{insert here}"
  AZURE_API_KEY = "{insert here}"

  model = llms.init('gpt-4')

  azure_args = {
      "engine": "gpt-4",  # Azure deployment_id
      "api_base": AZURE_API_BASE,
      "api_type": "azure",
      "api_version": "2023-05-15",
      "api_key": AZURE_API_KEY,
  }

  azure_result = model.complete("What is 5+5?", **azure_args)
  ```



  1. Set up a GCP account and create a project
  2. Enable Vertex AI APIs in your GCP project
  3. Install gcloud CLI tool
  4. Set up Application Default Credentials

  Then:

  ```python
  model = llms.init('chat-bison')
  result = model.complete("Hello!")
  ```



  1. Ensure Ollama is running and you've pulled the desired model
  2. Get the name of the LLM you want to use
  3. Initialize PyLLMs:

  ```python
  model = llms.init("tinyllama:latest")
  result = model.complete("Hello!")
  ```



  Contributions are welcome! Please feel free to submit a Pull Request.



  This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.


pkgId: d8a2cfdf2e5efc8483a88cc05a15303ae5e2226e37423660b03a77f91f14ed63
name: python-pyln-client-help
arch: noarch
version: 24.11.1
epoch: 0
release: 1
summary: Development documents and examples for pyln-client
url: https://pypi.org/project/pyln-client/
rpm_license: BSD-MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyln-client-24.11.1-1.src.rpm
location_href: Packages/python-pyln-client-help-24.11.1-1.noarch.rpm
checksum_type: sha256
description:
  This package implements the Unix socket based JSON-RPC protocol that
  `lightningd` exposes to the rest of the world. It can be used to call
  arbitrary functions on the RPC interface, and serves as a basis for plugins
  written in python.




  `pyln-client` is available on `pip`:

  ```
  pip install pyln-client
  ```

  Alternatively you can also install the development version to get access to
  currently unreleased features by checking out the Core Lightning source code and
  installing into your python3 environment:

  ```bash
  git clone https://github.com/ElementsProject/lightning.git
  cd lightning/contrib/pyln-client
  poetry install
  ```

  This will add links to the library into your environment so changing the
  checked out source code will also result in the environment picking up these
  changes. Notice however that unreleased versions may change API without
  warning, so test thoroughly with the released version.





  ```py
  """
  Generate invoice on one daemon and pay it on the other
  """
  from pyln.client import LightningRpc
  import random


  l1 = LightningRpc("/tmp/lightning1/lightning-rpc")
  l5 = LightningRpc("/tmp/lightning5/lightning-rpc")

  info5 = l5.getinfo()
  print(info5)


  invoice = l5.invoice(100, "lbl{}".format(random.random()), "testpayment")
  print(invoice)


  route = l1.getroute(info5['id'], 100, 1)
  print(route)


  print(l1.sendpay(route['route'], invoice['payment_hash']))
  ```



  Plugins are programs that `lightningd` can be configured to execute alongside
  the main daemon. They allow advanced interactions with and customizations to
  the daemon.

  ```python

  from pyln.client import Plugin

  plugin = Plugin()

  @plugin.method("hello")
  def hello(plugin, name="world"):
      """This is the documentation string for the hello-function.

      It gets reported as the description when registering the function
      as a method with `lightningd`.

      If this returns (a dict), that's the JSON "result" returned.  If
      it raises an exception, that causes a JSON "error" return (raising
      pyln.client.RpcException allows finer control over the return).
      """
      greeting = plugin.get_option('greeting')
      s = '{} {}'.format(greeting, name)
      plugin.log(s)
      return s


  @plugin.init()
  def init(options, configuration, plugin):
      plugin.log("Plugin helloworld.py initialized")
      
  	


  @plugin.subscribe("connect")
  def on_connect(plugin, connect, **kwargs):
      plugin.log("Received connect event for peer {}".format(connect))


  plugin.add_option('greeting', 'Hello', 'The greeting I should use.')
  plugin.run()

  ```


pkgId: b84cb180b16e987d4734d54e9279e1ff9f5e1f8fe0000ce2eefe3904b25a0028
name: python-pyln-proto-help
arch: noarch
version: 24.11.1
epoch: 0
release: 1
summary: Development documents and examples for pyln-proto
url: https://pypi.org/project/pyln-proto/
rpm_license: BSD-MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyln-proto-24.11.1-1.src.rpm
location_href: Packages/python-pyln-proto-help-24.11.1-1.noarch.rpm
checksum_type: sha256
description:
  This package implements some of the Lightning Network protocol in pure
  python. It is intended for protocol testing and some minor tooling only. It is
  not deemed secure enough to handle any amount of real funds (you have been
  warned!).




  `pyln-proto` is available on `pip`:

  ```
  pip install pyln-proto
  ```

  Alternatively you can also install the development version to get access to
  currently unreleased features by checking out the Core Lightning source code and
  installing into your python3 environment:

  ```bash
  git clone https://github.com/ElementsProject/lightning.git
  cd lightning/contrib/pyln-proto
  poetry install
  ```

  This will add links to the library into your environment so changing the
  checked out source code will also result in the environment picking up these
  changes. Notice however that unreleased versions may change API without
  warning, so test thoroughly with the released version.


pkgId: 4edb2c1af0902205b4c11853ef81e6456b55614a70f82133ab6c73f4b22b408a
name: python-pylops-mpi-help
arch: noarch
version: 0.2.0
epoch: 0
release: 1
summary: Development documents and examples for pylops-mpi
url: https://pypi.org/project/pylops-mpi/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pylops-mpi-0.2.0-1.src.rpm
location_href: Packages/python-pylops-mpi-help-0.2.0-1.noarch.rpm
checksum_type: sha256
description:
  ![PyLops-MPI](https://github.com/PyLops/pylops-mpi/blob/main/docs/source/_static/pylopsmpi_b.png)

  [![PyPI version](https://badge.fury.io/py/pylops-mpi.svg)](https://badge.fury.io/py/pylops-mpi)
  [![Build status](https://github.com/PyLops/pylops-mpi/actions/workflows/build.yml/badge.svg)](https://github.com/PyLops/pylops-mpi/actions/workflows/build.yml)
  [![Documentation status](https://github.com/PyLops/pylops-mpi/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/PyLops/pylops-mpi/actions/workflows/pages/pages-build-deployment)
  ![OS-support](https://img.shields.io/badge/OS-linux,osx-850A8B.svg)
  [![Slack Status](https://img.shields.io/badge/chat-slack-green.svg)](https://pylops.slack.com)


  pylops-mpi is a Python library built on top of [PyLops](https://pylops.readthedocs.io/en/stable/), designed to enable distributed and parallel processing of
  large-scale linear algebra operations and computations.


  To install pylops-mpi, you need to have MPI (Message Passing Interface) installed on your system.
  1. **Download and Install MPI**: Visit the official MPI website to download an appropriate MPI implementation for your system.
  Follow the installation instructions provided by the MPI vendor.
     - [Open MPI](https://www.open-mpi.org/software/ompi/v1.10/)
     - [MPICH](https://www.mpich.org/downloads/)
     - [Intel MPI](https://www.intel.com/content/www/us/en/developer/tools/oneapi/mpi-library.html#gs.10j8fx)
  2. **Verify MPI Installation**: After installing MPI, verify its installation by opening a terminal or command prompt
  and running the following command:
      ```
      mpiexec --version
     ```
   3. **Install pylops-mpi**: Once MPI is installed and verified, you can proceed to install `pylops-mpi`.

        You can install with `pip`:
        ```
        pip install pylops-mpi
        ```

        You can install with `make` and `conda`:
        ```
        make install_conda
        ```


  Once you have installed the prerequisites and pylops-mpi, you can run pylops-mpi using the `mpiexec` command.
  Here's an example on how to run the command:
  ```
  mpiexec -n <NUM_PROCESSES> python <script_name>.py
  ```


  The DistributedArray can be used to either broadcast or scatter the NumPy array across different
  ranks or processes.
  ```python
  from pylops_mpi import DistributedArray, Partition

  global_shape = (10, 5)


  dist_array_broadcast = DistributedArray(global_shape=global_shape,
                                          partition=Partition.BROADCAST)


  dist_array_scatter = DistributedArray(global_shape=global_shape,
                                        partition=Partition.SCATTER)
  ```

  Additionally, the DistributedArray can be used to scatter the array along any
  specified axis.

  ```python

  dist_array_0 = DistributedArray(global_shape=global_shape,
                                  partition=Partition.SCATTER, axis=0)


  dist_array_1 = DistributedArray(global_shape=global_shape,
                                  partition=Partition.SCATTER, axis=1)
  ```

  The DistributedArray class provides a `to_dist` class method that accepts a NumPy array as input and converts it into an
  instance of the `DistributedArray` class. This method is used to transform a regular NumPy array into a DistributedArray that can be distributed
  and processed across multiple nodes or processes.

  ```python
  import numpy as np
  np.random.seed(42)

  dist_arr = DistributedArray.to_dist(x=np.random.normal(100, 100, global_shape),
                                      partition=Partition.SCATTER, axis=0)
  ```
  The DistributedArray also provides fundamental mathematical operations, like element-wise addition, subtraction, and multiplication,
  as well as dot product and the [`np.linalg.norm`](https://numpy.org/doc/stable/reference/generated/numpy.linalg.norm.html) function in a distributed fashion,
  thus utilizing the efficiency of the MPI protocol. This enables efficient computation and processing of large-scale distributed arrays.


  The test scripts are located in the tests folder.
  Use the following command to run the tests:
  ```
  mpiexec -n <NUM_PROCESSES> pytest --with-mpi
  ```
  The `--with-mpi` option tells pytest to enable the `pytest-mpi` plugin,
  allowing the tests to utilize the MPI functionality.


  The official documentation of Pylops-MPI is available [here](https://pylops.github.io/pylops-mpi/).
  Visit the official docs to learn more about pylops-mpi.


  * Rohan Babbar, rohanbabbar04
  * Matteo Ravasi, mrava87

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


pkgId: 1c6d51d03be18a267504303f123f33e1b823c011771b68418b208c044cc34e4f
name: python-pylywsdxx-help
arch: noarch
version: 2.4.3
epoch: 0
release: 1
summary: Development documents and examples for pylywsdxx
url: https://github.com/Mausy5043/pylywsdxx
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pylywsdxx-2.4.3-1.src.rpm
location_href: Packages/python-pylywsdxx-help-2.4.3-1.noarch.rpm
checksum_type: sha256
description:
  [![License](https://img.shields.io/github/license/mausy5043/pylywsdxx)](LICENSE)
  [![PyPI version](https://img.shields.io/pypi/v/pylywsdxx.svg?logo=pypi&logoColor=FFE873)](https://pypi.org/project/pylywsdxx)
  [![Supported Python versions](https://img.shields.io/pypi/pyversions/pylywsdxx.svg?logo=python&logoColor=FFE873)](https://pypi.org/project/pylywsdxx)
  [![PyPI downloads](https://img.shields.io/pypi/dm/pylywsdxx.svg)](https://pypistats.org/packages/pylywsdxx)
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
  [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/Mausy5043/pylywsdxx/devel.svg)](https://results.pre-commit.ci/latest/github/Mausy5043/pylywsdxx/devel)



  This is a Python3 library to allow interrogation of Xiaomi Mijia LYWSD* sensors via Bluetooth Low Energy (BLE).

  **Note**: This is an unofficial project, and is in no way supported or endorsed by Xiaomi.



  This module requires [`bluepy3`](https://pypi.org/project/bluepy3/) which should be installed automagically when using the installation instructions below.

  Development of this package is done in Python 3.11. The package is considered forwards compatible at least upto Python 3.12 and probably also beyond. Backwards compatibility is not guaranteed; if it works on Python 3.9 or before consider yourself lucky. [Python versions that are end-of-life](https://devguide.python.org/versions/) are not supported.

  The package has been extensively tested on a Raspberry Pi 3 Model B+ (aarch64) with Debian GNU Linux 12 /w Python 3.11.*.




  ```
  pip install pylywsdxx
  ```



  ```
  import pylywsdxx as pyly

  mac = "A4:C1:38:0D:EA:D0"

  device2 = pyly.Lywsd02(mac)
  data2 = device2.data
  print(f"Temperature: {data2.temperature}˚C")

  device3 = pyly.Lywsd03(mac)
  data3 = device3.data
  print(f"Temperature: {data3.temperature}˚C")
  ```

  Please note that this module has completely and intentionally broken backwards compatibility with previous
  and existing versions of `lywsd02` and `lywsd03mmc` and with v1.* versions of itself.



  Based on previous work stolen from Mikhail Baranov (`h4`) : [lywsd02](https://github.com/h4/lywsd02)
  and Duncan Barclay (`uduncanu`) : [lywsd03mmc](https://github.com/uduncanu/lywsd03mmc)



  As of September 2024 `pylywsdxx` is distributed under [AGPL-3.0-or-later](LICENSE).


pkgId: 14a67d27587b0d3834f8b1e235df62c1788cc0683c25eadff824ba75a81f6783
name: python-pymbolic-help
arch: noarch
version: 2024.2.2
epoch: 0
release: 1
summary: Development documents and examples for pymbolic
url: https://github.com/inducer/pymbolic
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pymbolic-2024.2.2-1.src.rpm
location_href: Packages/python-pymbolic-help-2024.2.2-1.noarch.rpm
checksum_type: sha256
description:
  Pymbolic is a small expression tree and symbolic manipulation library. Two
  things set it apart from other libraries of its kind:
  * Users can easily write their own symbolic operations, simply by deriving
    from the builtin visitor classes.
  * Users can easily add their own symbolic entities to do calculations
    with.
  Pymbolic currently understands regular arithmetic expressions, derivatives,
  sparse polynomials, fractions, term substitution, expansion. It automatically
  performs constant folding, and it can compile its expressions into Python
  bytecode for fast(er) execution.
  If you are looking for a full-blown Computer Algebra System, look at
  `sympy <https://pypi.org/project/sympy/>`__ or
  `PyGinac <https://pyginac.sourceforge.net/>`__. If you are looking for a
  basic, small and extensible set of symbolic operations, pymbolic may
  well be for you.
  Resources:
  * `PyPI package <https://pypi.org/project/pymbolic/>`__
  * `Documentation <https://documen.tician.de/pymbolic/>`__
  * `Source code (GitHub) <https://github.com/inducer/pymbolic>`__


pkgId: 81fa74f7cd7a97449ae3e5174c262e04c7eedc2b6f4eeddfa881a8d23b7e0e38
name: python-pymc-bart-help
arch: noarch
version: 0.8.0
epoch: 0
release: 1
summary: Development documents and examples for pymc-bart
url: http://github.com/pymc-devs/pymc-bart
rpm_license: Apache License, Version 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pymc-bart-0.8.0-1.src.rpm
location_href: Packages/python-pymc-bart-help-0.8.0-1.noarch.rpm
checksum_type: sha256
description:
  ![pymc-bart logo](docs/logos/pymc_bart.png)

  PyMC-BART extends [PyMC](https://github.com/pymc-devs/pymc) probabilistic programming framework to be able to define and solve models including a BART random variable. PyMC-BART also includes a few helpers function to aid with the interpretation of those models and perform variable selection.



  - [Installation](#installation)
  - [Usage](#usage)
  - [Contributions](#contributions)
  - [Code of Conduct](#code-of-conduct)
  - [Citation](#citation)
  - [License](#license)
  - [Donations](#donations)
  - [Sponsors](#sponsors)




  PyMC-BART is available on Conda-Forge. If you magange your Python dependencies and environments with Conda, this is your best option. You may also perfer to install this way if you want an easy-to-use, isolated setup in a seperate environment. This helps avoid interfering with other projects or system-wide Python installations. To set up a suitable Conda environment, run:

  ```bash
  conda create --name=pymc-bart --channel=conda-forge pymc-bart
  conda activate pymc-bart
  ```

  Alternatively, you can use pip installation. This installation is generally perfered by users who use pip, Python's package installer. This is the best choice for users who are not using Conda or for those who want to install PyMC-BART into a virtual environment managed by venv or virtualenv. In this case, run:

  ```bash
  pip install pymc-bart
  ```

  In case you want to upgrade to the bleeding edge version of the package you can install from GitHub:

  ```bash
  pip install git+https://github.com/pymc-devs/pymc-bart.git
  ```



  Get started by using PyMC-BART to set up a BART model:

  ```python
  import pymc as pm
  import pymc_bart as pmb

  X, y = ... # Your data replaces "..."
  with pm.Model() as model:
      bart = pmb.BART('bart', X, y)
      ...
      idata = pm.sample()
  ```


  PyMC-BART is a community project and welcomes contributions.
  Additional information can be found in the [Contributing Readme](https://github.com/pymc-devs/pymc-bart/blob/main/CONTRIBUTING.md)


  PyMC-BART wishes to maintain a positive community. Additional details
  can be found in the [Code of Conduct](https://github.com/pymc-devs/pymc-bart/blob/main/CODE_OF_CONDUCT.md)


  If you use PyMC-BART and want to cite it please use [![arXiv](https://img.shields.io/badge/arXiv-2206.03619-b31b1b.svg)](https://arxiv.org/abs/2206.03619)

  Here is the citation in BibTeX format

  ```
  @misc{quiroga2023bayesian,
  title={Bayesian additive regression trees for probabilistic programming},
  author={Quiroga, Miriana and Garay, Pablo G and Alonso, Juan M. and Loyola, Juan Martin and Martin, Osvaldo A},
  year={2023},
  doi={10.48550/ARXIV.2206.03619},
  archivePrefix={arXiv},
  primaryClass={stat.CO}
  }
  ```



  [Apache License, Version 2.0](https://github.com/pymc-devs/pymc-bart/blob/main/LICENSE)


  PyMC-BART , as other pymc-devs projects, is a non-profit project under the NumFOCUS umbrella. If you want to support PyMC-BART financially, you can donate [here](https://numfocus.org/donate-to-pymc).


  [![NumFOCUS](https://www.numfocus.org/wp-content/uploads/2017/07/NumFocus_LRG.png)](https://numfocus.org)


pkgId: 1620e74dfd3606266eeab6b07714ac85b53f13cdaadc0ef1e3a8f7a456046a26
name: python-pymc-extras-help
arch: noarch
version: 0.2.0
epoch: 0
release: 1
summary: Development documents and examples for pymc-extras
url: http://github.com/pymc-devs/pymc-extras
rpm_license: Apache License, Version 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pymc-extras-0.2.0-1.src.rpm
location_href: Packages/python-pymc-extras-help-0.2.0-1.noarch.rpm
checksum_type: sha256
description:
  <a href="https://gitpod.io/#https://github.com/pymc-devs/pymc-extras">
    <img
      src="https://img.shields.io/badge/Contribute%20with-Gitpod-908a85?logo=gitpod"
      alt="Contribute with Gitpod"
    />
  </a>
  <img
    src="https://codecov.io/gh/pymc-devs/pymc-extras/branch/main/graph/badge.svg"
    alt="Codecov Badge"
  />

  As PyMC continues to mature and expand its functionality to accommodate more domains of application, we increasingly see cutting-edge methodologies, highly specialized statistical distributions, and complex models appear.
  While this adds to the functionality and relevance of the project, it can also introduce instability and impose a burden on testing and quality control.
  To reduce the burden on the main `pymc` repository, this `pymc-extras` repository can become the aggregator and testing ground for new additions to PyMC.
  This may include unusual probability distributions, advanced model fitting algorithms, innovative yet not fully tested methods, or niche functionality that might not fit in the main PyMC repository, but still may be of interest to users.

  The `pymc-extras` repository can be understood as the first step in the PyMC development pipeline, where all novel code is introduced until it is obvious that it belongs in the main repository.
  We hope that this organization improves the stability and streamlines the testing overhead of the `pymc` repository, while allowing users and developers to test and evaluate cutting-edge methods and not yet fully mature features.

  `pymc-extras` would be designed to mirror the namespaces in `pymc` to make usage and migration as easy as possible.
  For example, a `ParabolicFractal` distribution could be used analogously to those in `pymc`:

  ```python
  import pymc as pm
  import pymc_extras as pmx

  with pm.Model():

      alpha = pmx.ParabolicFractal('alpha', b=1, c=1)

      ...

  ```





  - newly-implemented statistical methods, for example step methods or model construction helpers
  - distributions that are tricky to sample from or test
  - infrequently-used fitting methods or distributions
  - any code that requires additional optimization before it can be used in practice



  - Case studies
  - Implementations that cannot be applied generically, for example because they are tied to variables from a toy example




  Since there is a lot of code that we may not want in the main repository, does it make sense to have more than one additional repository?
  For example, `pymc-extras` may just include methods that are not fully developed, tested and trusted, while code that is known to work well and has adequate test coverage, but is still too specialized to become part of `pymc` could reside in a `pymc-extras` (or similar) repository.



  This project is still young and many things have not been answered or implemented.
  Please get involved!

  * What are guidelines for organizing submodules?
    * Proposal: No default imports of WIP/unstable submodules. By importing manually we can avoid breaking the package if a submodule breaks, for example because of an updated dependency.


pkgId: 45c7232ac40214f33b2a48ff8e4b23f92b995fe73f7ae39c386af51b7d7cc353
name: python-pymindbot-help
arch: noarch
version: 0.1
epoch: 0
release: 1
summary: Development documents and examples for pymindbot
url: https://github.com/yourusername/pymindbot
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pymindbot-0.1-1.src.rpm
location_href: Packages/python-pymindbot-help-0.1-1.noarch.rpm
checksum_type: sha256
description:
  MindBot is a Python library that integrates AI models, OCR functionality, and image background removal.


  - **MindBot 1.3**: Interact with Google’s generative AI for conversational tasks.
  - **MindOCR 1.2**: Extract text from images using Tesseract OCR.
  - **MindBg**: Remove the background from images using the Remove.bg API.



  To install MindBot, use `pip`:


pkgId: e244868712145158f5d1c541482983ac2242a5874647a723287dc44b5878afef
name: python-pymisp-help
arch: noarch
version: 2.5.3
epoch: 0
release: 1
summary: Development documents and examples for pymisp
url: https://github.com/MISP/PyMISP
rpm_license: BSD-2-Clause
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pymisp-2.5.3-1.src.rpm
location_href: Packages/python-pymisp-help-2.5.3-1.noarch.rpm
checksum_type: sha256
description:
  **IMPORTANT NOTE**: This library will require **at least** Python 3.10 starting the 1st of January 2024. If you have legacy versions of python, please use the latest PyMISP version that will be released in December 2023, and consider updating your system(s). Anything released within the last 2 years will do, starting with Ubuntu 22.04.



  [![Documentation Status](https://readthedocs.org/projects/pymisp/badge/?version=latest)](http://pymisp.readthedocs.io/?badge=latest)
  [![Coverage Status](https://coveralls.io/repos/github/MISP/PyMISP/badge.svg?branch=main)](https://coveralls.io/github/MISP/PyMISP?branch=main)
  [![Python 3.8](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/release/python-380/)
  [![PyPi version](https://img.shields.io/pypi/v/pymisp.svg)](https://pypi.python.org/pypi/pymisp/)
  [![Number of PyPI downloads](https://img.shields.io/pypi/dm/pymisp.svg)](https://pypi.python.org/pypi/pymisp/)

  PyMISP is a Python library to access [MISP](https://github.com/MISP/MISP) platforms via their REST API.

  PyMISP allows you to fetch events, add or update events/attributes, add or update samples or search for attributes.



  **It is strongly recommended to use a virtual environment**

  If you want to know more about virtual environments, [python has you covered](https://docs.python.org/3/tutorial/venv.html)

  Only basic dependencies:
  ```
  pip3 install pymisp
  ```

  And there are a few optional dependencies:
  * fileobjects: to create PE/ELF/Mach-o objects
  * openioc: to import files in OpenIOC format (not really maintained)
  * virustotal: to query VirusTotal and generate the appropriate objects
  * docs: to generate te documentation
  * pdfexport: to generate PDF reports out of MISP events
  * url: to generate URL objects out of URLs with Pyfaup
  * email: to generate MISP Email objects
  * brotli: to use the brotli compression when interacting with a MISP instance

  Example:

  ```
  pip3 install pymisp[virustotal,email]
  ```



  **Note**: poetry is required; e.g., "pip3 install poetry"

  ```
  git clone https://github.com/MISP/PyMISP.git && cd PyMISP
  git submodule update --init
  poetry install -E fileobjects -E openioc -E virustotal -E docs -E pdfexport -E email
  ```



  ```bash
  poetry run pytest --cov=pymisp tests/test_*.py
  ```

  If you have a MISP instance to test against, you can also run the live ones:

  **Note**: You need to update the key in `tests/testlive_comprehensive.py` to the automation key of your admin account.

  ```bash
  poetry run pytest --cov=pymisp tests/testlive_comprehensive.py
  ```



  Various examples and samples scripts are in the [examples/](examples/) directory.

  In the examples directory, you will need to change the keys.py.sample to enter your MISP url and API key.

  ```
  cd examples
  cp keys.py.sample keys.py
  vim keys.py
  ```

  The API key of MISP is available in the Automation section of the MISP web interface.

  To test if your URL and API keys are correct, you can test with examples/last.py to
  fetch the events published in the last x amount of time (supported time indicators: days (d), hours (h) and minutes (m)).
  last.py
  ```
  cd examples
  python3 last.py -l 10h # 10 hours
  python3 last.py -l 5d  #  5 days
  python3 last.py -l 45m # 45 minutes
  ```




  You have two options here:

  1. Pass `debug=True` to `PyMISP` and it will enable logging.DEBUG to stderr on the whole module

  2. Use the python logging module directly:

  ```python

  import logging
  logger = logging.getLogger('pymisp')


  logger.setLevel(logging.DEBUG)
  ```

  Or if you want to write the debug output to a file instead of stderr:

  ```python
  import pymisp
  import logging

  logger = logging.getLogger('pymisp')
  logging.basicConfig(level=logging.DEBUG, filename="debug.log", filemode='w', format=pymisp.FORMAT)
  ```



  1. The content of `mispevent.py` is tested on every commit
  2. The test cases that require a running MISP instance can be run the following way:


  ```bash


  pytest --cov=pymisp tests/test_*.py tests/testlive_comprehensive.py:TestComprehensive.[test_name]
  ```



  The documentation is available [here](https://pymisp.readthedocs.io/en/latest/).



  A series of [Jupyter notebooks for PyMISP tutorial](https://github.com/MISP/PyMISP/tree/main/docs/tutorial) are available in the repository.



  ... or at least everything that can be imported/exported from/to a json blob

  `AbstractMISP` is the master class, and inherits from `collections.MutableMapping` which means
  the class can be represented as a python dictionary.

  The abstraction assumes every property that should not be seen in the dictionary is prepended with a `_`,
  or its name is added to the private list `__not_jsonable` (accessible through `update_not_jsonable` and `set_not_jsonable`.

  This master class has helpers that make it easy to load, and export to, and from, a json string.

  `MISPEvent`, `MISPAttribute`, `MISPObjectReference`, `MISPObjectAttribute`, and `MISPObject`
  are subclasses of AbstractMISP, which mean that they can be handled as python dictionaries.



  Creating a new MISP object generator should be done using a pre-defined template and inherit `AbstractMISPObjectGenerator`.

  Your new MISPObject generator must generate attributes and add them as class properties using `add_attribute`.

  When the object is sent to MISP, all the class properties will be exported to the JSON export.



  This is done using poetry and you need to have this repository cloned on your machine.
  The commands below have to be run from inside the cloned directory.


  1. From a machine with access to the internet, get the dependencies:

  ```bash
  mkdir offline
  poetry export --all-extras  > offline/requirements.txt
  poetry run pip download -r offline/requirements.txt -d offline/packages/
  ```

  2. Prepare the PyMISP Package

  ```bash
  poetry build
  mv dist/*.whl offline/packages/
  ```

  3. Copy the content of `offline/packages/` to the machine with no internet access.

  4. Install the packages:

  ```bash
  python -m pip install --no-index --no-deps packages/*.whl
  ```



  PyMISP is distributed under an [open source license](./LICENSE). A simplified 2-BSD license.


pkgId: db717993c1892ea60b84d7b82450fac29acd05b34a387a56a33280d7e43ffcde
name: python-pymobiledevice3-help
arch: noarch
version: 4.16.5
epoch: 0
release: 1
summary: Development documents and examples for pymobiledevice3
url: https://github.com/doronz88/pymobiledevice3
rpm_license: GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pymobiledevice3-4.16.5-1.src.rpm
location_href: Packages/python-pymobiledevice3-help-4.16.5-1.noarch.rpm
checksum_type: sha256
description:
  <!-- markdownlint-disable MD013 -->
  [![Python application](https://github.com/doronz88/pymobiledevice3/workflows/Python%20application/badge.svg)](https://github.com/doronz88/pymobiledevice3/actions/workflows/python-app.yml "Python application action")
  [![Pypi version](https://img.shields.io/pypi/v/pymobiledevice3.svg)](https://pypi.org/project/pymobiledevice3/ "PyPi package")
  [![Downloads](https://static.pepy.tech/personalized-badge/pymobiledevice3?period=total&units=none&left_color=grey&right_color=blue&left_text=Downloads)](https://pepy.tech/project/pymobiledevice3)
  [![Discord](https://img.shields.io/discord/1133265168051208214?logo=Discord&label=Discord)](https://discord.gg/52mZGC3JXJ)
  <!-- markdownlint-enable MD013 -->

  - [PyMobileDevice3](#pymobiledevice3)
    - [Overview](#overview)
    - [Installation](#installation)
      - [OpenSSL libraries](#openssl-libraries)
      - [libusb dependency](#libusb-dependency)
    - [Usage](#usage)
      - [Working with developer tools (iOS \>= 17.0)](#working-with-developer-tools-ios--170)
      - [Commonly used actions](#commonly-used-actions)
    - [The bits and bytes (Python API)](#the-bits-and-bytes-python-api)
    - [Contributing](#contributing)
    - [Useful info](#useful-info)
    - [Copyright notice](#copyright-notice)



  `pymobiledevice3` is a pure python3 implementation for working with iDevices (iPhone, etc...). This means this tool is
  both architecture and platform generic and is supported and tested on:

  - Windows
  - Linux
  - macOS

  Main features include:

  - Device discovery over bonjour
  - TCP port forwarding
  - Viewing syslog lines (including debug)
  - Profile management
  - Application management
  - File system management (AFC)
  - Crash reports management
  - Network sniffing (PCAP)
  - Firmware update
  - Mounting images
  - Notification listening and triggering (`notify_post()` api)
  - Querying and setting SpringBoard options
  - Automating WebInspector features
  - DeveloperDiskImage features:
    - Taking screenshots
    - Simulate locations
    - Process management
    - Sniffing KDebug messages (**strace** capabilities++)
    - Process monitoring (`top` like)
    - Accessibility features
    - Sniffing oslog which includes both syslog and signposts
  - Backup



  You can install from PyPi:

  ```shell
  python3 -m pip install -U pymobiledevice3
  ```

  Or install the latest version directly from sources:

  ```shell
  git clone git@github.com:doronz88/pymobiledevice3.git
  cd pymobiledevice3
  python3 -m pip install -U -e .
  ```

  You can also install auto-completion for all available sub-commands by adding the following into your `~/.zshrc`:

  ```shell

  eval "$(_PYMOBILEDEVICE3_COMPLETE=source_zsh pymobiledevice3)"

  eval "$(_PYMOBILEDEVICE3_COMPLETE=zsh_source pymobiledevice3)"
  ```

  If you're not a macOS user:

  - If you're using a Windows workstation, you'll need to install and run
    execute [iTunes](https://apps.microsoft.com/detail/9pb2mz1zmb1s?hl=en-US&gl=US).

  - If you're using a Linux workstation, install [`usbmuxd`](https://github.com/libimobiledevice/usbmuxd) (Available on
    Ubuntu via `apt`)



  Currently, openssl is explicitly required if using on older iOS version (<13).

  On macOS:

  ```shell
  brew install openssl
  ```

  On Linux:

  ```shell
  sudo apt install openssl
  ```



  Interacting with the device in Recovery or DFU modes requires `libusb` to be installed (necessary for handling the `restore` subcommands).

  The installation steps differentiate depending on your exact platform:

  On macOS:

  ```shell

  brew install libusb


  sudo port install libusb
  ```

  On Linux:

  ```shell

  sudo apt-get install libusb-1.0-0-dev


  sudo dnf install libusb-devel


  sudo pacman -S libusb
  ```

  On windows:

  Following libusb website to download latest release binaries:

  <https://libusb.info/>



  The CLI subcommands are divided roughly by the protocol layer used for interacting in the device. For example, all
  features derived from the DeveloperDiskImage will be accessible from the `developer`
  subcommand. This also means that every feature which isn't there won't require it.

  This is the main CLI usage:

  ```
  Usage: pymobiledevice3 [OPTIONS] COMMAND [ARGS]...

    Interact with a connected iDevice (iPhone, iPad, ...)
    For more information please look at:
        https://github.com/doronz88/pymobiledevice3

  Options:
    -h, --help  Show this message and exit.

  Commands:
    activation       Perform iCloud activation/deactivation or query the current state
    afc              Manage device multimedia files
    amfi             Enable/Disable developer-mode or query its state
    apps             Manage installed applications
    backup2          Backup/Restore options
    bonjour          Browse devices over bonjour
    companion        List paired "companion" devices
    crash            Manage crash reports
    developer        Perform developer operations (Requires enable of Developer-Mode)
    diagnostics      Reboot/Shutdown device or access other diagnostics services
    lockdown         Pair/Unpair device or access other lockdown services
    mounter          Mount/Umount DeveloperDiskImage or query related info
    notification     Post/Observe notifications
    pcap             Sniff device traffic
    power-assertion  Create a power assertion
    processes        View process list using diagnosticsd API
    profile          Managed installed profiles or install SSL certificates
    provision        Manage installed provision profiles
    remote           Create RemoteXPC tunnels
    restore          Restore an IPSW or access device in recovery mode
    springboard      Access device UI
    syslog           Watch syslog messages
    usbmux           List devices or forward a TCP port
    webinspector     Access webinspector services
    version          Query pymobiledevice3 version
  ```



  > **NOTE:** Currently, this is only officially supported on macOS & Windows (up to iOS 17.3.1), but fully supported on
  > all platforms starting at iOS 17.4 using the new lockdown tunnel. For windows interaction with iOS 17.0-17.3.1, you'll
  > need to install the additional drivers (we don't provide them)

  Starting at iOS 17.0, Apple introduced the new CoreDevice framework to work with iOS devices. This framework relies on
  the [RemoteXPC](https://github.com/doronz88/pymobiledevice3/blob/master/misc/RemoteXPC.md) protocol. In order to
  communicate with the developer services you'll be required to first
  create [trusted tunnel](https://github.com/doronz88/pymobiledevice3/blob/master/misc/RemoteXPC.md#trusted-tunnel) in one
  of the two forms:

  - Launch a tunnel-server named `tunneld` to automatically detect devices and establish connections
    - Execute the following:

      ```shell
      
      
      
      python3 -m pymobiledevice3 remote pair

      
      sudo python3 -m pymobiledevice3 remote tunneld
      ```

  - Create tunnel manually using `start-tunnel`
    - Execute the following:

      ```shell
      
      
      
      python3 -m pymobiledevice3 remote pair

      

      
      sudo python3 -m pymobiledevice3 lockdown start-tunnel

      
      python3 -m pymobiledevice3 lockdown wifi-connections on

      
      
      sudo python3 -m pymobiledevice3 remote start-tunnel
      ```

      You will be printed with the following output providing you with the required connection details:

      ```
      Interface: utun6
      RSD Address: fd7b:e5b:6f53::1
      RSD Port: 64337
      Use the follow connection option:
      --rsd fd7b:e5b:6f53::1 64337
      ```

  _Ths command must be run with high privileges since it creates a new TUN/TAP device which is a high
  privilege operation._

  Now, (almost) all of pymobiledevice3 accept an additional `--rsd`/`--tunnel` option for connecting to the service over
  the tunnel. The `--tunnel` option specifically, is always attempted implicitly upon an `InvalidServiceError` error to
  simplify the work with developer services. You can now try to execute any of them as follows:

  ```shell



  python3 -m pymobiledevice3 developer dvt ls / --tunnel ''


  python3 -m pymobiledevice3 developer dvt ls /


  python3 -m pymobiledevice3 developer dvt ls / --rsd fd7b:e5b:6f53::1 64337


  python3 -m pymobiledevice3 syslog live --tunnel ''
  ```



  There is A LOT you may do on the device using `pymobiledevice3`. This is just a TL;DR of some common operations:

  ```shell

  pymobiledevice3 usbmux list


  pymobiledevice3 bonjour rsd


  pymobiledevice3 syslog live


  pymobiledevice3 syslog live -m SpringBoard


  pymobiledevice3 diagnostics restart


  pymobiledevice3 crash pull /path/to/crashes


  pymobiledevice3 afc shell


  pymobiledevice3 apps list


  pymobiledevice3 apps query BUNDLE_ID1 BUNDLE_ID2


  pymobiledevice3 usbmux forward HOST_PORT DEVICE_PORT


  pymobiledevice3 backup2 backup --full DIRECTORY


  pymobiledevice3 backup2 restore DIRECTORY


  pymobiledevice3 restore update -i /path/to/ipsw | url




  pymobiledevice3 webinspector js-shell


  pymobiledevice3 webinspector opened-tabs




  pymobiledevice3 webinspector js-shell --automation


  pymobiledevice3 webinspector launch URL


  pymobiledevice3 webinspector shell


  pymobiledevice3 amfi enable-developer-mode


  pymobiledevice3 mounter auto-mount




  pymobiledevice3 developer simulate-location set -- lat long


  pymobiledevice3 developer dvt simulate-location set -- lat long


  pymobiledevice3 developer dvt simulate-location play route.gpx


  pymobiledevice3 developer dvt simulate-location play route.gpx 500


  pymobiledevice3 developer dvt simulate-location clear


  pymobiledevice3 developer dvt screenshot /path/to/screen.png


  pymobiledevice3 developer dvt sysmon process single


  pymobiledevice3 developer dvt oslog


  pymobiledevice3 developer dvt kill PID


  pymobiledevice3 developer dvt ls PATH


  pymobiledevice3 developer dvt launch com.apple.mobilesafari


  pymobiledevice3 developer dvt core-profile-session parse-live


  pymobiledevice3 developer dvt core-profile-session save FILENAME


  pymobiledevice3 developer dvt device-information


  pymobiledevice3 developer dvt energy PID1 PID2 ...
  ```



  To understand the bits and bytes of the communication with `lockdownd`, or if are willing to learn the python API, you
  are advised to take a look at this article:

  [Understanding iDevice protocol layers](https://github.com/doronz88/pymobiledevice3/blob/master/misc/understanding_idevice_protocol_layers.md)



  See [CONTRIBUTING](https://github.com/doronz88/pymobiledevice3/blob/master/CONTRIBUTING.md).



  Please see [misc](https://github.com/doronz88/pymobiledevice3/blob/master/misc)

  Library uses WindowsSelectorEventLoopPolicy for asyncio on Windows platform. Please see discussion [misc](https://github.com/doronz88/pymobiledevice3/issues/1217)



  This work is licensed under GPL 3.0, and as, credited to several major contributors:

  - Hector Martin "marcan" <hector@marcansoft.com>
  - Mathieu Renard
  - [doronz](https://github.com/doronz88) <doron88@gmail.com>
  - [matan1008](https://github.com/matan1008) <matan1008@gmail.com>
  - [Guy Salton](https://github.com/guysalt)
  - [netanelc305](https://github.com/netanelc305) <netanelc305@protonmail.com>


pkgId: dddab80bf9360959830f5aae5918ff66ff382f4fde6137c321018d5f48089c6d
name: python-pymodbus-help
arch: noarch
version: 3.8.1
epoch: 0
release: 1
summary: Development documents and examples for pymodbus
url: https://github.com/pymodbus-dev/pymodbus/
rpm_license: BSD-3-Clause
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pymodbus-3.8.1-1.src.rpm
location_href: Packages/python-pymodbus-help-3.8.1-1.noarch.rpm
checksum_type: sha256
description:
  Pymodbus is a full Modbus protocol implementation offering client/server with synchronous/asynchronous API and simulators.
  Our releases is defined as X.Y.Z, and we have strict rules what to release when:
  - **Z**, No API changes! bug fixes and smaller enhancements.
  - **Y**, API changes, bug fixes and bigger enhancements.
  - **X**, Major changes in API and/or method to use pymodbus
  Upgrade examples:
  - 3.6.1 -> 3.6.9: just plugin the new version, no changes needed.
  - 3.6.1 -> 3.7.0: Smaller changes to the pymodbus calls might be needed
  - 2.5.4 -> 3.0.0: Major changes in the application might be needed
  Current release is `3.8.1 <https://github.com/pymodbus-dev/pymodbus/releases/tag/v3.8.1>`_.
  Bleeding edge (not released) is `dev <https://github.com/pymodbus-dev/pymodbus/tree/dev>`_.
  Waiting for v3.9.0 (not released) is `wait_next_api <https://github.com/pymodbus-dev/pymodbus/tree/wait_next_api>`_. This contains
  dev + merged pull requests that have API changes, and thus have to wait.
  All changes are described in `release notes <https://pymodbus.readthedocs.io/en/latest/source/changelog.html>`_
  and all API changes are `documented <https://pymodbus.readthedocs.io/en/latest/source/api_changes.html>`_
  A big thanks to all the `volunteers <https://pymodbus.readthedocs.io/en/latest/source/authors.html>`_ that helps make pymodbus a great project.
  Source code on `github <https://github.com/pymodbus-dev/pymodbus>`_
  Full documentation for newest releases as well as the bleeding edge (dev) `readthedocs <https://pymodbus.readthedocs.io>`_


pkgId: 4afe23e85127f27f01125758f9523fdd78fb121bc72c49dd3e9ddbb609d44a05
name: python-pymrs-help
arch: noarch
version: 0.1.1
epoch: 0
release: 1
summary: Development documents and examples for pymrs
url: http://10.9.0.162:3000/Memoza_5/pywrs
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pymrs-0.1.1-1.src.rpm
location_href: Packages/python-pymrs-help-0.1.1-1.noarch.rpm
checksum_type: sha256
rpm_license:
  BSD Zero Clause License  Copyright (c) 2024 Search Centric LLC  Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.


pkgId: 7ff76aa1ceba153e34a48ce32453cbdb4e10ec89b7381f4229cc0ab87b716cd5
name: python-pymsteams-workflow-help
arch: noarch
version: 1.0.5
epoch: 0
release: 1
summary: Development documents and examples for pymsteams-workflow
url: https://github.com/mroussamamessabih-1337/pymsteams/
rpm_license: Apache
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pymsteams-workflow-1.0.5-1.src.rpm
location_href: Packages/python-pymsteams-workflow-help-1.0.5-1.noarch.rpm
checksum_type: sha256
description:
  Python Wrapper Library to send requests to Microsoft Teams via Microsoft Power Automate workflows.

  I have created this library because the Microsoft Teams Webhook is being retired. [Retirement of Office 365 connectors within Microsoft Teams](https://devblogs.microsoft.com/microsoft365dev/retirement-of-office-365-connectors-within-microsoft-teams/)



  This library allows sending messages with rich formatting to Microsoft Teams by utilizing Power Automate workflows. Messages can include simple text, titles, link buttons, and more. You can also use asynchronous operations to send messages in parallel.



  Install with pip:

  ```bash
  pip install pymsteams-workflow
  ```





  Below is a basic example demonstrating how to send a message using a Power Automate workflow URL:

  ```python
  from pymsteams import connectorcard


  myTeamsMessage = connectorcard("<Power Automate URL>")


  myTeamsMessage.text("This is my text")


  myTeamsMessage.send()
  ```



  You can send messages asynchronously using `async_connectorcard`. This is useful when sending multiple messages or performing other asynchronous tasks.

  ```python
  import asyncio
  from pymsteams import async_connectorcard

  loop = asyncio.get_event_loop()


  myTeamsMessage = async_connectorcard("<Power Automate URL>")


  myTeamsMessage.text("This is my async message")


  loop.run_until_complete(myTeamsMessage.send())
  ```





  You can add a title to the message, which will be displayed prominently:

  ```python
  myTeamsMessage.title("This is my message title")
  ```



  Add a link button to your message to redirect users to a specific URL:

  ```python
  myTeamsMessage.addLinkButton("This is the button Text", "https://example.com")
  ```



  Here's a complete example of sending a message with both a title and a link button:

  ```python
  from your_module import connectorcard  # Replace 'your_module' with your module name

  webhook_url = "<Power Automate URL>"


  card = connectorcard(webhook_url)
  card.title("Important Notification")
  card.text("Please review the latest updates.")
  card.addLinkButton("Review Updates", "https://example.com/updates")


  card.send()
  ```



  If the call to the Power Automate service fails, a `TeamsWebhookException` will be thrown. Ensure you handle this exception in your code:

  ```python
  try:
      card.send()
  except TeamsWebhookException as e:
      print(f"Failed to send message: {e}")
  ```



  In order to test in your environment with `pytest`, set the environment variable `MS_TEAMS_WORKFLOW` to the Power Automate workflow URL you would like to use.

  Then, from the root of the repo, install the requirements and run pytest.

  ```bash
  pip install -r dev-requirements.txt
  MS_TEAMS_WORKFLOW=<PowerAutomateURL>
  export MS_TEAMS_WORKFLOW
  pytest --cov=./your_module --cov-report=term-missing --cov-branch  # Replace 'your_module' with your module name
  ```



  - [Send a message in Teams using Power Automate](https://learn.microsoft.com/en-us/power-automate/teams/send-a-message-in-teams)
  - [apprise Notify_workflows](https://github.com/caronc/apprise/wiki/Notify_workflows)
  - [Retirement of Office 365 connectors within Microsoft Teams](https://devblogs.microsoft.com/microsoft365dev/retirement-of-office-365-connectors-within-microsoft-teams/)


pkgId: ba2935f491ac4c6aeae452dbe684c5eac0d64dd888fc9a85845b80b9cff6be8d
name: python-pynbntnmodem-help
arch: noarch
version: 0.2.9
epoch: 0
release: 1
summary: Development documents and examples for pynbntnmodem
url: https://pypi.org/project/pynbntnmodem/
rpm_license: Apache2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pynbntnmodem-0.2.9-1.src.rpm
location_href: Packages/python-pynbntnmodem-help-0.2.9-1.noarch.rpm
checksum_type: sha256
description:
  A generic model for interfacing to a NB-IoT modem compatible with 3GPP R17
  Non-Terrestrial Network.

  Provides a generic class **`NbntnModem`** that abstracts specific AT commands to
  common functional operations used for communicating using NB-IoT over satellite.
  The class is intended to be subclassed and extended for specific modem variants
  from various manufacturers.



  Since modem implementations differ across make/model, this library is intended
  to be used to create `NbntnModem` subclasses with specific AT commands and
  responses.



  The `ntninit` submodule describes the format and an example template for the
  AT command sequence required by a particular modem variant.

  The `ntn_init` list of dictionaries may be customized and included at the top of
  a specific modem subclass.



  To allow for automatic selection between different subclassed modems, use the
  `MODEM_SUBCLASS` declaration at the bottom of your subclass template.



  * **`connect()`** using either `.env` variables, default or programmatic values
  for `SERIAL_PORT`/`port` and `SERIAL_BAUDRATE`/`baudrate`.
  * **`initialize_ntn()`** to run the modem-specific configuration sequence
  * Run a loop that continually runs `check_urc()`, queues and then processes
  each `get_urc_type()`


pkgId: 3d0ef9bce0aee9e2a807c27854bb7cf5cf29b0e98ef394a4f7ad19ab44834a8c
name: python-pynest-api-help
arch: noarch
version: 0.3.2
epoch: 0
release: 1
summary: Development documents and examples for pynest-api
url: https://github.com/PythonNest/PyNest
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pynest-api-0.3.2-1.src.rpm
location_href: Packages/python-pynest-api-help-0.3.2-1.noarch.rpm
checksum_type: sha256
description:
  <p align="center">
    <img src="docs/imgs/pynest-logo.png" title="pynest logo" width="300">
  </p>
  <p align="center">
      <em>PyNest is a Python framework built on top of FastAPI that follows the modular architecture of NestJS</em>
  </p>
  <p align="center">
      <a href="https://pypi.org/project/pynest-api">
          <img src="https://img.shields.io/pypi/v/pynest-api?color=%2334D058&label=pypi%20package" alt="Version">
      </a>
      <a href="https://pypi.org/project/pynest-api">
          <img src="https://img.shields.io/pypi/pyversions/pynest-api.svg?color=%2334D058" alt="Python">
      </a>
      <a href="https://pepy.tech/project/pynest-api">
          <img src="https://static.pepy.tech/personalized-badge/pynest-api?period=total&units=international_system&left_color=grey&right_color=brightgreen&left_text=Downloads" alt="Downloads">
      </a>
      <a href="https://github.com/PythonNest/PyNest/blob/main/LICENSE">
          <img src="https://img.shields.io/github/license/PythonNest/Pynest" alt="License">
      </a>
  </p>



  PyNest is designed to help structure your APIs in an intuitive, easy to understand, and enjoyable way.

  With PyNest, you can build scalable and maintainable APIs with ease. The framework supports dependency injection, type
  annotations, decorators, and code generation, making it easy to write clean and testable code.

  This framework is not a direct port of NestJS to Python but rather a re-imagining of the framework specifically for
  Python developers, including backend engineers and ML engineers. It aims to assist them in building better and faster
  APIs for their data applications.



  To get started with PyNest, you'll need to install it using pip:

  ```bash
  pip install pynest-api
  ```



  ```bash
  pynest generate appplication -n my_app_name
  ```

  this command will create a new project with the following structure:

  ```text
  ├── app.py
  ├── main.py
  ├── requirements.txt
  ├── .gitignore
  ├── README.md
  ├── src
  │    ├── __init__.py
  ```

  once you have created your app, get into the folder and run the following command:

  ```bash
  cd my_app_name
  ```

  run the server with the following command:

  ```bash
  uvicorn "app:app" --host "0.0.0.0" --port "8000" --reload
  ```

  Now you can visit [OpenAPI](http://localhost:8000/docs) in your browser to see the default API documentation.



  To add a new module to your application, you can use the pynest generate module command:

  ```bash
  pynest generate resource -n users
  ```

  This will create a new resource called ```users``` in your application with the following structure under the ```src```
  folder:

  ```text
  ├── users
  │    ├── __init__.py
  │    ├── users_controller.py
  │    ├── users_service.py
  │    ├── users_model.py
  │    ├── users_entity.py
  │    ├── users_module.py
  ```

  The users module will immediately register itself with the application and will be available for use.

  You can then start defining routes and other application components using decorators and other PyNest constructs.

  For more information on how to use PyNest, check out the official documentation at https://pythonnest.github.io/PyNest/.



  This document provides a guide on how to use the PyNest Command Line Interface (CLI). Below are the available commands
  and their descriptions:



  - **Description**: The main command group for PyNest CLI.



  - **Description**: Create a new nest app.
  - **Options**:
      - `--app-name`/`-n`: The name of the nest app (required).
      - `--db-type`/`-db`: The type of the database (optional). You can specify PostgreSQL, MySQL, SQLite, or MongoDB.
      - `--is-async`: Whether the project should be asynchronous (optional, default is False).



  - **Description**: Group command for generating boilerplate code.



  - **Description**: Generate a new module (controller, service, entity, model, module).
  - **Options**:
      - `--name`/`-n`: The name of the module (required).



  * create a blank nest application -
    `pynest generate application -n my_app_name`

  * create a nest application with postgres database and async connection -
    `pynest generate application -n my_app_name -db postgresql --is-async`

  * create new module -
    `pynest generate resource -n users`





  PyNest follows the modular architecture of NestJS, which allows for easy separation of concerns and code organization.
  Each module contains a collection of related controllers, services, and providers.



  PyNest supports dependency injection, which makes it easy to manage dependencies and write testable code. You can easily
  inject services and providers into your controllers using decorators.



  PyNest makes extensive use of decorators to define routes, middleware, and other application components. This helps keep
  the code concise and easy to read.



  PyNest leverages Python's type annotations to provide better tooling and help prevent errors. You can annotate your
  controllers, services, and providers with types to make your code more robust.



  PyNest includes a code generation tool that can create boilerplate code for modules, controllers, and other components.
  This saves you time and helps you focus on writing the code that matters.



  - [ ] Create plugins Marketplace for modules where developers can share their modules and download modules created by
    others.
  - [ ] Implement IOC mechanism and introduce Module decorator
  - [ ] Add support for new databases
  - [ ] Create out-of-the-box authentication module that can be easily integrated into any application.
  - [ ] Add support for other testing frameworks and create testing templates.
  - [ ] Add support for other web frameworks (Litestar, blackship, etc.) - Same Architecture, different engine.



  Contributions are welcome! Please feel free to grab one of the open issues,
  or open a new one if you have an idea for a new feature or improvement.

  This would bring a huge impact to the project and the community.



  PyNest is [MIT licensed](LICENSE).



  PyNest is inspired by [NestJS](https://nestjs.com/).


pkgId: c7415d9ee2b1eba7db2a429db8db1542e3ca247f43222db39732f5d26761aed2
name: python-pyneuphonic-help
arch: noarch
version: 1.4.1
epoch: 0
release: 1
summary: Development documents and examples for pyneuphonic
url: https://pypi.org/project/pyneuphonic/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyneuphonic-1.4.1-1.src.rpm
location_href: Packages/python-pyneuphonic-help-1.4.1-1.noarch.rpm
checksum_type: sha256
description:
  The official Neuphonic Python library providing simple, convenient access to the Neuphonic text-to-speech websocket
  API from any Python 3.9+ application.

  For support or to get involved, join our [Discord](https://discord.gg/G258vva7gZ)!

  - [PyNeuphonic](#pyneuphonic)
    - [Documentation](#documentation)
      - [Installation](#installation)
        - [API Key](#api-key)
      - [Voices](#voices)
        - [Get Voices](#get-voices)
      - [Audio Generation](#audio-generation)
        - [SSE (Server Side Events)](#sse-server-side-events)
        - [Asynchronous SSE](#asynchronous-sse)
        - [Asynchronous Websocket](#asynchronous-websocket)
      - [Saving Audio](#saving-audio)
      - [Agents](#agents)
    - [Example Applications](#example-applications)


  See [https://docs.neuphonic.com](https://docs.neuphonic.com) for the complete API documentation.


  Install this package into your environment using your chosen package manager:

  ```bash
  pip install pyneuphonic
  ```

  In most cases, you will be playing the audio returned from our servers directly on your device.
  We offer utilities to play audio through your device's speakers using `pyaudio`.
  To use these utilities, please also `pip install pyaudio`.

  > :warning: Mac users encountering a `'portaudio.h' file not found` error can resolve it by running
  > `brew install portaudio`.


  Get your API key from the [Neuphonic website](https://beta.neuphonic.com) and set it in your
  environment, for example:
  ```bash
  export NEUPHONIC_API_TOKEN=<YOUR API KEY HERE>
  ```



  To get all available voices you can run the following snippet.
  ```python
  from pyneuphonic import Neuphonic
  import os

  client = Neuphonic(api_key=os.environ.get('NEUPHONIC_API_TOKEN'))
  voices = client.voices.get()  # get's all available voices

  for voice in voices:
      print(voice)
  ```



  To clone a voice based on a audio file, you can run the following snippet.

  ```python
  from pyneuphonic import Neuphonic
  import os

  client = Neuphonic(api_key=os.environ.get('NEUPHONIC_API_TOKEN'))

  voice_file_path = 'XXX.wav'

  result = client.voices.clone(voice_name='NewNeuphonic', voice_tags=['tag1', 'tag2'], voice_file_path = voice_file_path)

  print(result['data']['message'])

  ```

  If you have successfully cloned a voice, the following message will be displayed: "Voice has successfully been cloned with ID XXXXXXX." Once cloned, you can use this voice just like any of the standard voices when calling the TTS (Text-to-Speech) service.

  To view a list of all available voices (including the voices you have cloned), simply call the `client.voices.get(api_key="")` endpoint.

  **Note:** Your voice reference clip must meet the following criteria: it should be at least 6 seconds long, in .mp3 or .wav format, and no larger than 10 MB in size.



  To update a voice which already exists, i.e. update the reference clip for a voice name you already have provided you can do as follows.

  Update based on the new clip and the old name:

  ```python

  voice_file_path = 'XXX.wav'

  result = client.voices.update(voice_file_path = voice_file_path,
  voice_name='NewNeuphonic')

  print(result)
  ```


  Alternatively, if you wanna provide the voice id:
  ```python
  result = client.voices.update(voice_file_path = voice_file_path,
  voice_id=XXX)

  print(result)
  ```
  **Note:** Your voice reference clip must meet the following criteria: it should be at least 6 seconds long, in .mp3 or .wav format, and no larger than 10 MB in size.



  To delete a voice which already exists.

  ```python

  voice_file_path = 'XXX.wav'

  result = client.voices.update(voice_name='NewNeuphonic')

  print(result)
  ```

  Alternatively, if you wanna provide the voice id:

  ```python
  result = client.voices.update(voice_id=XXX)

  print(result)
  ```



  ```python
  from pyneuphonic import Neuphonic, TTSConfig
  from pyneuphonic.player import AudioPlayer
  import os

  client = Neuphonic(api_key=os.environ.get('NEUPHONIC_API_TOKEN'))

  sse = client.tts.SSEClient()


  tts_config = TTSConfig(
      model='neu_hq',
      speed=1.05,
      voice='e564ba7e-aa8d-46a2-96a8-8dffedade48f'  # use client.voices.get() to view all voice ids
  )


  with AudioPlayer() as player:
      response = sse.send('Hello, world!', tts_config=tts_config)
      player.play(response)

      player.save_audio('output.wav')  # save the audio to a .wav file
  ```


  ```python
  from pyneuphonic import Neuphonic, TTSConfig
  from pyneuphonic.player import AsyncAudioPlayer
  import os
  import asyncio

  async def main():
      client = Neuphonic(api_key=os.environ.get('NEUPHONIC_API_TOKEN'))

      sse = client.tts.AsyncSSEClient()

      
      tts_config = TTSConfig(speed=1.05, voice='ebf2c88e-e69d-4eeb-9b9b-9f3a648787a5')

      async with AsyncAudioPlayer() as player:
          response = sse.send('Hello, world!', tts_config=tts_config)
          await player.play(response)

          player.save_audio('output.wav')  # save the audio to a .wav file

  asyncio.run(main())
  ```


  ```python
  from pyneuphonic import Neuphonic, TTSConfig, WebsocketEvents
  from pyneuphonic.models import APIResponse, TTSResponse
  from pyneuphonic.player import AsyncAudioPlayer
  import os
  import asyncio

  async def main():
      client = Neuphonic(api_key=os.environ.get('NEUPHONIC_API_TOKEN'))

      ws = client.tts.AsyncWebsocketClient()

      
      tts_config = TTSConfig(voice='ebf2c88e-e69d-4eeb-9b9b-9f3a648787a5')

      player = AsyncAudioPlayer()
      await player.open()

      
      async def on_message(message: APIResponse[TTSResponse]):
          await player.play(message.data.audio)

      async def on_close():
          await player.close()

      ws.on(WebsocketEvents.MESSAGE, on_message)
      ws.on(WebsocketEvents.CLOSE, on_close)

      await ws.open(tts_config=tts_config)

      
      
      await ws.send('Hello, world!', autocomplete=True)
      await ws.send('Hello, world! <STOP>')  # Both the above line, and this line, are equivalent

      await asyncio.sleep(3)  # let the audio play
      player.save_audio('output.wav')  # save the audio to a .wav file
      await ws.close()  # close the websocket and terminate the audio resources

  asyncio.run(main())
  ```


  As per the examples above, you can use the `AudioPlayer` object to save audio.
  ```python
  player.save_audio('output.wav')
  ```
  However, if you do not want to play audio and simply want to save it, check out the examples
  in [snippets/sse/save_audio.py](./snippets/sse/save_audio.py) and
  [snippets/websocket/save_audio.py](./snippets/websocket/save_audio.py) for examples on how to
  do this.



  Speech restoration involves enhancing and repairing degraded audio to improve its clarity, intelligibility, and overall quality, all while preserving the original content. Follow these simple steps to restore your audio clips:

  **Note:** Your audio clip must meet the following criteria: it should be in .mp3 or .wav format, and no larger than 10 MB in size.


  To restore an audio clip without additional input, use the following code:

  ```python
  voice_file_path = 'example.wav'
  response = client.restorations.restore(voice_file_path)

  print(response) # A dictionary containing the job_id

  job_id = response['job_id']
  status = client.restorations.get(response['job_id'])
  ```
  If the job is completed, the status will include the URL where you can access the results (file_url). If the status is 'Not Finished,' please wait a moment before rerunning restorations.get(). Once the status changes to 'Finished,' you will be able to retrieve the results.


  Once you queue a job for restoration using the `.restore()` method you will receive an associated job id (uuid) as a member of the response.
  To get the status and the link to receive the results of your job you call the `.get()` method as following.

  ```python
  status = client.restorations.get(job_id = job_id)
  print(status) # Dictionary with the status of the job and the url where you can retrieve the results.
  ```



  To list all your active and previous jobs you can run the `.jobs()` function.

  ```python
  jobs = client.restorations.jobs()
  print(jobs)
  ```



  For better restoration quality, you can provide a transcript of the audio and specify a language code (default is English). Here's how:

  ```python
  voice_file_path = 'example.wav'
  transcript = 'Example Transcript' # Specify Transcript
  lang_code = 'eng-us'  # Specify language code
  is_transcript_file = False # Transcript is string
  response = client.restorations.restore(voice_file_path, transcript, lang_code)
  ```


  If you have the transcript stored in a file, you can use it instead of a transcript string:

  ```python
  voice_file_path = 'example.wav'
  transcript = 'example.txt'
  lang_code = 'eng-us'
  is_transcript_file = True # Switch this to true to feed in a file as transcript.
  response = client.restorations.restore(voice_file_path, transcript, lang_code)
  ```
  **Note:** You have to set is_transcript_file to true for the program to read this as a file rather than a string.

  **Note:** Providing a transcript significantly improves the restoration quality of your audio clip. If no transcript is provided, the output may not be as refined.




  🚀 New Feature Alert! 🚀

  With Agents, you'll be able to create, manage, and interact with intelligent AI assistants. You can create an agent
  easily using the example here:

  ```python
  import os
  import asyncio

  from pyneuphonic import Neuphonic, Agent, AgentConfig


  async def main():
      client = Neuphonic(api_key=os.environ.get('NEUPHONIC_API_TOKEN'))

      agent_id = client.agents.create(
          name='Agent 1',
          prompt='You are a helpful agent. Answer in 10 words or less.',
          greeting='Hi, how can I help you today?'
      )['data']['id']

      agent = Agent(client, agent_id=agent_id, tts_model='neu_hq')

      await agent.start()

  asyncio.run(main())
  ```


  Check out the [snippets](./snippets/) folder for some example applications.


pkgId: de2e9cd76b0298e80f009d7032e7217f55ae5042e63074d06015c49be1b72afa
name: python-pyngrok-help
arch: noarch
version: 7.2.2
epoch: 0
release: 1
summary: Development documents and examples for pyngrok
url: https://pypi.org/project/pyngrok/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyngrok-7.2.2-1.src.rpm
location_href: Packages/python-pyngrok-help-7.2.2-1.noarch.rpm
checksum_type: sha256
description:
  <p align="center"><img alt="pyngrok - a Python wrapper for ngrok" src="https://pyngrok.readthedocs.io/en/latest/_images/logo.png" /></p>

  [![Version](https://img.shields.io/pypi/v/pyngrok)](https://pypi.org/project/pyngrok)
  [![Python Versions](https://img.shields.io/pypi/pyversions/pyngrok.svg)](https://pypi.org/project/pyngrok)
  [![Coverage](https://img.shields.io/codecov/c/github/alexdlaird/pyngrok)](https://codecov.io/gh/alexdlaird/pyngrok)
  [![Build](https://img.shields.io/github/actions/workflow/status/alexdlaird/pyngrok/build.yml)](https://github.com/alexdlaird/pyngrok/actions/workflows/build.yml)
  [![Docs](https://img.shields.io/readthedocs/pyngrok)](https://pyngrok.readthedocs.io/en/latest)
  [![GitHub License](https://img.shields.io/github/license/alexdlaird/pyngrok)](https://github.com/alexdlaird/pyngrok/blob/main/LICENSE)

  `pyngrok` is a Python wrapper for `ngrok` that manages its own binary, making `ngrok` available via a convenient Python
  API.

  [`ngrok`](https://ngrok.com) is a reverse proxy tool that opens secure tunnels from public URLs to localhost, perfect
  for exposing local web servers, building webhook integrations, enabling SSH access, testing chatbots, demoing from
  your own machine, and more, and its made even more powerful with native Python integration through `pyngrok`.



  `pyngrok` is available on [PyPI](https://pypi.org/project/pyngrok/) and can be installed
  using `pip`:

  ```sh
  pip install pyngrok
  ```

  or `conda`:

  ```sh
  conda install -c conda-forge pyngrok
  ```

  That's it! `pyngrok` is now available as a package to our Python projects, and `ngrok` is now available from
  the command line.





  To open a tunnel, use the [`connect`](https://pyngrok.readthedocs.io/en/latest/api.html#pyngrok.ngrok.connect) method,
  which returns a `NgrokTunnel`, and this returned object has a reference to the public URL generated by `ngrok` in its
  `public_url` attribute.

  ```python
  from pyngrok import ngrok



  http_tunnel = ngrok.connect(3)



  ssh_tunnel = ngrok.connect("22", "tcp")


  named_tunnel = ngrok.connect(name="my_tunnel_name")
  ```

  The [`connect`](https://pyngrok.readthedocs.io/en/latest/api.html#pyngrok.ngrok.connect) method takes `kwargs` as
  well, which allows us to pass
  additional tunnel configurations that are supported by ngrok,
  [as documented here](https://pyngrok.readthedocs.io/en/latest/#tunnel-configurations).



  To use [`ngrok`'s Edges](https://ngrok.com/docs/network-edge/edges/) with `pyngrok`, first [configure an Edge on
  `ngrok`'s dashboard](https://dashboard.ngrok.com/edges) (with at least one Endpoint mapped to the Edge), and define a
  labeled tunnel in [the `ngrok` config file](https://ngrok.com/docs/agent/config/v2/#define-two-labeled-tunnels)
  that points to the Edge.

  ```yaml
  tunnels:
    some-edge-tunnel:
      labels:
        - edge=my_edge_id
      addr: http://localhost:80
  ```

  To start a labeled tunnel in `pyngrok`, pass its `name`
  to [connect](https://pyngrok.readthedocs.io/en/develop/api.html#pyngrok.ngrok.connect).

  ```python
  from pyngrok import ngrok


  named_tunnel = ngrok.connect(name="some-edge-tunnel")
  ```

  Once an Edge tunnel is started, it can be managed through [`ngrok`'s dashboard](https://dashboard.ngrok.com/edges).



  This package puts the default `ngrok` binary on our path, so all features of `ngrok` are
  available on the command line.

  ```sh
  ngrok http 80
  ```

  For details on how to fully leverage `ngrok` from the command line,
  see [`ngrok`'s official documentation](https://ngrok.com/docs/agent/cli/).



  For more advanced usage, `pyngrok`'s official documentation is available
  at [http://pyngrok.readthedocs.io](http://pyngrok.readthedocs.io).



  `pyngrok` is compatible with `ngrok` v2 and v3, but by default it will install v3. To install v2 instead,
  [set `ngrok_version` to "v2" in
  `PyngrokConfig`](https://pyngrok.readthedocs.io/en/latest/index.html#ngrok-version-compatibility).



  If you would like to get involved, be sure to review
  the [Contribution Guide](https://github.com/alexdlaird/pyngrok/blob/main/CONTRIBUTING.rst).

  Want to contribute financially? If you've found `pyngrok` useful, [sponsorship](https://github.com/sponsors/alexdlaird)
  would also be greatly appreciated!

rpm_license:
  MIT License  Copyright (c) 2018-2024 Alex Laird  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: 2ddd884ad06d62998348b3f9663cd43a312093766740821a330dc8f8d43aef49
name: python-pynitrokey-help
arch: noarch
version: 0.7.1
epoch: 0
release: 1
summary: Development documents and examples for pynitrokey
url: https://pypi.org/project/pynitrokey/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pynitrokey-0.7.1-1.src.rpm
location_href: Packages/python-pynitrokey-help-0.7.1-1.noarch.rpm
checksum_type: sha256
description:
  A command line interface for the Nitrokey FIDO2, Nitrokey Start, Nitrokey 3 and NetHSM.



  ```
  $ pipx install pynitrokey
  $ nitropy --help
  ```



  The user documentation for the `nitropy` CLI is available on [docs.nitrokey.com](https://docs.nitrokey.com/software/nitropy/index.html). See also the product documentation for more information on the available commands:
  - [Nitrokey 3](https://docs.nitrokey.com/nitrokey3/index.html)
  - [Nitrokey FIDO2](https://docs.nitrokey.com/fido2/index.html)
  - [Nitrokey Start](https://docs.nitrokey.com/start/index.html)
  - [NetHSM](https://docs.nitrokey.com/nethsm/index.html)





  <details>

  `pynitrokey` installation is not always possible, hence describing below alternative method to change the Identity on the Nitrokey Start. It suffices to have any CCID application installed, and send the following APDU `00 85 00 {ID}` (hex), where `ID` is in range `[0;2]`. After receiving this command Nitrokey Start will reboot with the selected identity.

  Here is how to do it using GnuPG:
  ```text

  $ gpg-connect-agent --hex "scd apdu  00 85 00 02" /bye
  ERR 65539 Unknown version in packet <Unspecified source>


  ERR 65572 Bad certificate <Unspecified source>
  ```

  The error message here is expected due to immediate reboot of the device, and with losing the connection.

  When the ID change is attempted to be done immediately, the following response could be received:
  ```
  ERR 100663406 Card removed <SCD>
  ```
  To restore the communication, either kill the `gpg-agent` or run `gpg --card-status` again.

  Tip: alternative `gpg-connect-agent reloadagent /bye` is not sufficient.
  </details>



  `nitropy` requires Python 3.9 or later.



  Information for developers and contributors can be found in the [Developer Guide](./docs/developer-guide.rst).



  `pynitrokey` development has been supported by these contributors:
  - [@Laborratte5](https://github.com/Laborratte5)
  - [@runcom](https://github.com/runcom)



  Current maintainers can be found in [MAINTAINERS.md](MAINTAINERS.md) file.



  Licensed similarly to upstream, under either of

  - Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or
    http://www.apache.org/licenses/LICENSE-2.0)
  - MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)

  at your option.


pkgId: 945df4a01ee82a0d89f65e9f3a7c9fb09aac488a7c346ae47feb47d65d9e8e16
name: python-pynordpool-help
arch: noarch
version: 0.2.3
epoch: 0
release: 1
summary: Development documents and examples for pynordpool
url: https://github.com/gjohansson-ST/pynordpool
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pynordpool-0.2.3-1.src.rpm
location_href: Packages/python-pynordpool-help-0.2.3-1.noarch.rpm
checksum_type: sha256
description:
  python module for communicating with [Nord Pool](https://data.nordpoolgroup.com/auction/day-ahead/prices)





  Hourly rates from provided date

  ```python
  from pynordpool import NordPoolClient, Currency

  async with aiohttp.ClientSession(loop=loop) as session:
      client = NordPoolClient(session)
      output = await client.async_get_delivery_period(
          datetime.datetime.now(), Currency.EUR, ["SE3"]
      )
      print(output)
  ```


pkgId: 2abaf61967b4560f0d375f137d51d4b33b42bd69bdc8818e4702e3e9d13ab22b
name: python-pynpdc-help
arch: noarch
version: 0.19.2
epoch: 0
release: 1
summary: Development documents and examples for pynpdc
url: https://pypi.org/project/pynpdc/
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pynpdc-0.19.2-1.src.rpm
location_href: Packages/python-pynpdc-help-0.19.2-1.noarch.rpm
checksum_type: sha256
description:
  `pynpdc` is a library for accessing the
  [Norwegian Polar Data Centre](https://data.npolar.no/) using Python3. It
  provides clients with simple methods for logging in and out as well as fetching
  and manipulating datasets and attachments.

  It is based on the following REST APIs:

  - [NPDC Auth API (Komainu)](https://beta.data.npolar.no/-/docs/auth)
  - [NPDC Dataset API (Kinko)](https://beta.data.npolar.no/-/docs/dataset/)



  Use

  ```
  pip3 install pynpdc
  ```

  to install `pynpdc` into your project.





  ```py
  from pynpdc import DatasetClient, DATASET_LIFE_ENTRYPOINT

  client = DatasetClient(DATASET_LIFE_ENTRYPOINT)

  query = "fimbulisen"
  for dataset in client.get_datasets(q=query):
      print(dataset.id, dataset.content["title"])
  ```



  ```py
  from getpass import getpass
  from pynpdc import (
      AUTH_LIFE_ENTRYPOINT,
      DATASET_LIFE_ENTRYPOINT,
      APIException,
      AuthClient,
      DatasetClient,
      DatasetType,
  )

  auth_client = AuthClient(AUTH_LIFE_ENTRYPOINT)

  print("Email: ", end="")
  user = input()
  password = getpass()

  try:
      account = auth_client.login(user, password)
  except APIException:
      print("Login failed")
      exit()

  client = DatasetClient(DATASET_LIFE_ENTRYPOINT, auth=account)
  for dataset in client.get_datasets(type=DatasetType.DRAFT):
      print(dataset.id, dataset.content["title"])
  ```



  ```py
  import json
  from pynpdc import DATASET_LIFE_ENTRYPOINT, DatasetClient

  client = DatasetClient(DATASET_LIFE_ENTRYPOINT)

  ID = "fdd9eaf1-b426-41af-835d-80b8d55f54db"
  dataset = client.get_dataset(ID)
  if dataset is None:
      print("dataset not found")
  else:
      print(json.dumps(dataset.content, indent=2))
  ```





  ```py
  from pynpdc import DatasetClient, DATASET_LIFE_ENTRYPOINT

  client = DatasetClient(DATASET_LIFE_ENTRYPOINT)

  ID = "19e96642-8b66-48c7-a66f-50dd05cc6eee"
  attachments = client.get_attachments(ID)
  for attachment in attachments:
      print(f"{attachment.filename} ({attachment.byte_size} bytes)")
  ```



  _The zip file will be downloaded to the same folder as the script_

  ```py
  from os import path
  from pynpdc import DATASET_LIFE_ENTRYPOINT, DatasetClient

  client = DatasetClient(DATASET_LIFE_ENTRYPOINT)

  target_directory = path.dirname(__file__)
  ID = "19e96642-8b66-48c7-a66f-50dd05cc6eee"
  filepath = client.download_attachments_as_zip(ID, target_directory)
  print(filepath)
  ```



  **:warning: Never use the live endpoints for testing your code because it will
  add a lot of noise. Even though it is not possible to publish datasets with
  `pytest` this noise should be avoided.**

  `urllib3` helps to get rid of the InsecureRequestWarning when you deal with
  staging entrypoints. If you get the error

  ```
  ModuleNotFoundError: No module named 'urllib3'
  ```

  install the module with:

  ```sh
  pip3 install urllib3
  ```



  ```py
  import urllib3

  from pynpdc import (
      AUTH_STAGING_ENTRYPOINT,
      DATASET_STAGING_ENTRYPOINT,
      APIException,
      AuthClient,
      DatasetClient,
  )

  urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)



  auth_client = AuthClient(AUTH_STAGING_ENTRYPOINT, verify_ssl=False)
  user = "foo@example.org"
  password = "1234123412341234"

  try:
      account = auth_client.login(user, password)
  except APIException as e:
      print("Login failed", e.status_code)
      exit()



  dataset_client = DatasetClient(
      DATASET_STAGING_ENTRYPOINT, auth=account, verify_ssl=False
  )



  content = {"title": "pynpdc example from readme"}
  dataset = dataset_client.create_dataset(content)
  ID = dataset.id



  dataset = dataset_client.get_dataset(ID)
  print(dataset.content["title"])



  content["title"] = "updated pytest example from readme"
  dataset_client.update_dataset(ID, content)



  dataset = dataset_client.get_dataset(ID)
  print(dataset.content["title"])



  dataset_client.delete_dataset(ID)



  dataset = dataset_client.get_dataset(ID)
  print(dataset, "is None")
  ```



  ```py
  import urllib3

  from pynpdc import (
      AUTH_STAGING_ENTRYPOINT,
      DATASET_STAGING_ENTRYPOINT,
      APIException,
      AuthClient,
      DatasetClient,
  )

  urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)



  auth_client = AuthClient(AUTH_STAGING_ENTRYPOINT, verify_ssl=False)
  user = "foo@example.org"
  password = "1234123412341234"

  try:
      account = auth_client.login(user, password)
  except APIException as e:
      print("Login failed", e.status_code, e.response.request.url)
      exit()



  dataset_client = DatasetClient(
      DATASET_STAGING_ENTRYPOINT, auth=account, verify_ssl=False
  )



  content = {"title": "pynpdc example from readme"}
  dataset = dataset_client.create_dataset(content)



  attachment = dataset_client.upload_attachment(
      dataset.id,
      __file__,  # path of this Python script
      title="Optional title",
      description="Optional description",
  )



  attachment = dataset_client.get_attachment(dataset.id, attachment.id)
  print(f"{attachment.title} ({attachment.filename})")



  updated_meta = {
      "description": attachment.description,
      "filename": attachment.filename,
      "prefix": "/",
      "title": "Updated title",
  }
  attachment = dataset_client.update_attachment(dataset.id, attachment.id, **updated_meta)



  attachment = dataset_client.get_attachment(dataset.id, attachment.id)
  print(f"{attachment.title} ({attachment.filename})")



  dataset_client.delete_attachment(dataset.id, attachment.id)



  attachment = dataset_client.get_attachment(dataset.id, attachment.id)
  print(attachment, "is None")



  dataset_client.delete_dataset(dataset.id)
  ```


pkgId: 4dfa748da02570813012ad7fa0b913bf4275c39772ca1b6f445d97ce033c7ccf
name: python-pynxtools-spm-help
arch: noarch
version: 0.0.6
epoch: 0
release: 1
summary: Development documents and examples for pynxtools-spm
url: https://github.com/FAIRmat-NFDI/pynxtools-spm
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pynxtools-spm-0.0.6-1.src.rpm
location_href: Packages/python-pynxtools-spm-help-0.0.6-1.noarch.rpm
checksum_type: sha256
description:
  [![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)
  ![](https://github.com/FAIRmat-NFDI/pynxtools-spm/actions/workflows/pytest.yml/badge.svg)
  ![](https://github.com/FAIRmat-NFDI/pynxtools-spm/actions/workflows/pylint.yml/badge.svg)
  ![](https://github.com/FAIRmat-NFDI/pynxtools-spm/actions/workflows/publish.yml/badge.svg)
  ![](https://img.shields.io/pypi/pyversions/pynxtools-spm)
  ![](https://img.shields.io/pypi/l/pynxtools-spm)
  ![](https://img.shields.io/pypi/v/pynxtools-spm)
  ![](https://coveralls.io/repos/github/FAIRmat-NFDI/pynxtools_spm/badge.svg?branch=master)

   
   For proper docs please follow the link in [GitHub documentation page](https://FAIRmat-NFDI.github.io/pynxtools-spm/)

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


pkgId: b299eb1a42780d3fc47364673217e619023e51594040f2f50c7de47dc0d1ddbb
name: python-pynxtools-xps-help
arch: noarch
version: 0.4.9
epoch: 0
release: 1
summary: Development documents and examples for pynxtools-xps
url: https://github.com/FAIRmat-NFDI/pynxtools-xps
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pynxtools-xps-0.4.9-1.src.rpm
location_href: Packages/python-pynxtools-xps-help-0.4.9-1.noarch.rpm
checksum_type: sha256
description:
  [![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)
  ![](https://github.com/FAIRmat-NFDI/pynxtools-xps/actions/workflows/pytest.yml/badge.svg)
  ![](https://github.com/FAIRmat-NFDI/pynxtools-xps/actions/workflows/pylint.yml/badge.svg)
  ![](https://github.com/FAIRmat-NFDI/pynxtools-xps/actions/workflows/publish.yml/badge.svg)
  ![](https://img.shields.io/pypi/pyversions/pynxtools-xps)
  ![](https://img.shields.io/pypi/l/pynxtools-xps)
  ![](https://img.shields.io/pypi/v/pynxtools-xps)
  ![](https://coveralls.io/repos/github/FAIRmat-NFDI/pynxtools-xps/badge.svg?branch=main)
  <!-- [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1323437.svg)]() -->





  It is recommended to use python 3.11 with a dedicated virtual environment for this package.
  Learn how to manage [python versions](https://github.com/pyenv/pyenv) and
  [virtual environments](https://realpython.com/python-virtual-environments-a-primer/).

  This package is a reader plugin for [`pynxtools`](https://github.com/FAIRmat-NFDI/pynxtools) and thus should be installed together with `pynxtools`:


  ```shell
  pip install pynxtools[xps]
  ```

  for the latest development version.


  This reader plugin for [`pynxtools`](https://github.com/FAIRmat-NFDI/pynxtools) is used to translate diverse file formats from the scientific community and technology partners
  within the field of X-ray photoelectron spectroscopy into a standardized representation using the
  [NeXus](https://www.nexusformat.org/) application definition [NXxps](https://fairmat-nfdi.github.io/nexus_definitions/classes/contributed_definitions/NXxps.html#nxxps).


  Extensive documentation of this pynxtools plugin is available [here](https://fairmat-nfdi.github.io/pynxtools-xps/). You can find information about getting started, how-to guides, the supported file formats, how to get involved, and much more there.


  Lukas Pielsticker

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


pkgId: 41a6c11f716f24c7478e2e13c91102cdd9e8017e9f6db2c924605c1779acc278
name: python-pyobjson-help
arch: noarch
version: 4.3.1
epoch: 0
release: 1
summary: Development documents and examples for pyobjson
url: https://github.com/wrencode/pyobjson
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyobjson-4.3.1-1.src.rpm
location_href: Packages/python-pyobjson-help-4.3.1-1.noarch.rpm
checksum_type: sha256
description:
  <sub>***Do you like the Python Object JSON Tool? Star the repository on GitHub and please consider helping support its ongoing development:***</sub>
  [<img src="https://raw.githubusercontent.com/wrencode/pyobjson/refs/heads/main/docs/wrencode-donation-venmo-qr-code.jpg" width="300"/>](https://venmo.com/wrencode?txn=pay)


pkgId: 9c7eb2198d514ee7dd120ad83d634293fd558ba9931187b35f26612715b01fb8
name: python-pyobo-help
arch: noarch
version: 0.11.2
epoch: 0
release: 1
summary: Development documents and examples for pyobo
url: https://github.com/biopragmatics/pyobo
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyobo-0.11.2-1.src.rpm
location_href: Packages/python-pyobo-help-0.11.2-1.noarch.rpm
checksum_type: sha256
description:
  <!--
  <p align="center">
    <img src="https://github.com/biopragmatics/pyobo/raw/main/docs/source/logo.png" height="150">
  </p>
  -->

  <h1 align="center">
    PyOBO
  </h1>

  <p align="center">
      <a href="https://github.com/biopragmatics/pyobo/actions/workflows/tests.yml">
          <img alt="Tests" src="https://github.com/biopragmatics/pyobo/actions/workflows/tests.yml/badge.svg" /></a>
      <a href="https://pypi.org/project/pyobo">
          <img alt="PyPI" src="https://img.shields.io/pypi/v/pyobo" /></a>
      <a href="https://pypi.org/project/pyobo">
          <img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/pyobo" /></a>
      <a href="https://github.com/biopragmatics/pyobo/blob/main/LICENSE">
          <img alt="PyPI - License" src="https://img.shields.io/pypi/l/pyobo" /></a>
      <a href='https://pyobo.readthedocs.io/en/latest/?badge=latest'>
          <img src='https://readthedocs.org/projects/pyobo/badge/?version=latest' alt='Documentation Status' /></a>
      <a href="https://codecov.io/gh/biopragmatics/pyobo/branch/main">
          <img src="https://codecov.io/gh/biopragmatics/pyobo/branch/main/graph/badge.svg" alt="Codecov status" /></a>
      <a href="https://github.com/cthoyt/cookiecutter-python-package">
          <img alt="Cookiecutter template from @cthoyt" src="https://img.shields.io/badge/Cookiecutter-snekpack-blue" /></a>
      <a href="https://github.com/astral-sh/ruff">
          <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" alt="Ruff" style="max-width:100%;"></a>
      <a href="https://github.com/biopragmatics/pyobo/blob/main/.github/CODE_OF_CONDUCT.md">
          <img src="https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg" alt="Contributor Covenant"/></a>
      <a href="https://doi.org/10.5281/zenodo.3381961">
          <img src="https://zenodo.org/badge/DOI/10.5281/zenodo.3381961.svg" alt="DOI"></a>
  </p>

  Tools for biological identifiers, names, synonyms, xrefs, hierarchies, relations, and properties through the
  perspective of OBO.



  Note! PyOBO is no-nonsense. This means that there's no repetitive
  prefixes in identifiers. It also means all identifiers are strings,
  no exceptions.

  Note! The first time you run these, they have to download and cache
  all resources. We're not in the business of redistributing data,
  so all scripts should be completely reproducible. There's some
  AWS tools for hosting/downloading pre-compiled versions in
  `pyobo.aws` if you don't have time for that.

  Note! PyOBO can perform grounding in a limited number of cases, but
  it is *not* a general solution for named entity recognition (NER) or grounding.
  It's suggested to check `Gilda <https://github.com/indralab/gilda>`_
  for a no-nonsense solution.



  Get mapping of ChEBI identifiers to names:

  ```python
  import pyobo

  chebi_id_to_name = pyobo.get_id_name_mapping('chebi')

  name = chebi_id_to_name['132964']
  assert name == 'fluazifop-P-butyl'
  ```

  Or, you don't have time for two lines:

  ```python
  import pyobo

  name = pyobo.get_name('chebi', '132964')
  assert name == 'fluazifop-P-butyl'
  ```

  Get reverse mapping of ChEBI names to identifiers:

  ```python
  import pyobo

  chebi_name_to_id = pyobo.get_name_id_mapping('chebi')

  identifier = chebi_name_to_id['fluazifop-P-butyl']
  assert identifier == '132964'
  ```

  Maybe you live in CURIE world and just want to normalize something like
  `CHEBI:132964`:

  ```python
  import pyobo

  name = pyobo.get_name_by_curie('CHEBI:132964')
  assert name == 'fluazifop-P-butyl'
  ```

  Sometimes you accidentally got an old CURIE. It can be mapped to the more recent
  one using alternative identifiers listed in the underlying OBO with:

  ```python
  import pyobo



  primary_curie = pyobo.get_primary_curie('go:0001071')
  assert primary_curie == 'go:0003700'


  assert 'go:0003700' == pyobo.get_priority_curie('go:0003700')
  ```



  Some resources have species information for their term. Get a mapping of WikiPathway identifiers
  to species (as NCBI taxonomy identifiers):

  ```python
  import pyobo

  wikipathways_id_to_species = pyobo.get_id_species_mapping('wikipathways')


  taxonomy_id = wikipathways_id_to_species['WP254']
  assert taxonomy_id == '9606'
  ```

  Or, you don't have time for two lines:

  ```python
  import pyobo


  taxonomy_id = pyobo.get_species('wikipathways', 'WP254')
  assert taxonomy_id == '9606'
  ```



  Maybe you've got names/synonyms you want to try and map back to ChEBI synonyms.
  Given the brand name `Fusilade II` of `CHEBI:132964`, it should be able to look
  it up and its preferred label.

  ```python
  import pyobo

  prefix, identifier, name = pyobo.ground('chebi', 'Fusilade II')
  assert prefix == 'chebi'
  assert identifier == '132964'
  assert name == 'fluazifop-P-butyl'


  prefix, identifier, name = pyobo.ground('chebi', 'Definitely not a real name')
  assert prefix is None
  assert identifier is None
  assert name is None
  ```

  If you're not really sure which namespace a name might belong to, you
  can try a few in a row (prioritize by ones that cover the appropriate
  entity type to avoid false positives in case of conflicts):

  ```python
  import pyobo


  prefix, identifier, name = pyobo.ground(['efo', 'go'], 'ERAD')
  assert prefix == 'go'
  assert identifier == '0030433'
  assert name == 'ubiquitin-dependent ERAD pathway'
  ```



  Get xrefs from ChEBI to PubChem:

  ```python
  import pyobo

  chebi_id_to_pubchem_compound_id = pyobo.get_filtered_xrefs('chebi', 'pubchem.compound')

  pubchem_compound_id = chebi_id_to_pubchem_compound_id['132964']
  assert pubchem_compound_id == '3033674'
  ```

  If you don't have time for two lines:

  ```python
  import pyobo

  pubchem_compound_id = pyobo.get_xref('chebi', '132964', 'pubchem.compound')
  assert pubchem_compound_id == '3033674'
  ```

  Get xrefs from Entrez to HGNC, but they're only available through HGNC,
  so you need to flip them:

  ```python
  import pyobo

  hgnc_id_to_ncbigene_id = pyobo.get_filtered_xrefs('hgnc', 'ncbigene')
  ncbigene_id_to_hgnc_id = {
    ncbigene_id: hgnc_id
    for hgnc_id, ncbigene_id in hgnc_id_to_ncbigene_id.items()
  }
  mapt_hgnc = ncbigene_id_to_hgnc_id['4137']
  assert mapt_hgnc == '6893'
  ```

  Since this is a common pattern, there's a keyword argument `flip`
  that does this for you:

  ```python
  import pyobo

  ncbigene_id_to_hgnc_id = pyobo.get_filtered_xrefs('hgnc', 'ncbigene', flip=True)
  mapt_hgnc_id = ncbigene_id_to_hgnc_id['4137']
  assert mapt_hgnc_id == '6893'
  ```

  If you don't have time for two lines (I admit this one is a bit confusing) and
  need to flip it:

  ```python
  import pyobo

  hgnc_id = pyobo.get_xref('hgnc', '4137', 'ncbigene', flip=True)
  assert hgnc_id == '6893'
  ```

  Remap a CURIE based on pre-defined priority list and [Inspector Javert's Xref
  Database](https://cthoyt.com/2020/04/19/inspector-javerts-xref-database.html):

  ```python

  import pyobo


  mapt_ncbigene = pyobo.get_priority_curie('hgnc:6893')
  assert mapt_ncbigene == 'ncbigene:4137'


  assert 'ncbigene:4137' == pyobo.get_priority_curie('ncbigene:4137')
  ```

  Find all CURIEs mapped to a given one using Inspector Javert's Xref Database:

  ```python
  import pyobo


  mapt_curies = pyobo.get_equivalent('hgnc:6893')
  assert 'ncbigene:4137' in mapt_curies
  assert 'ensembl:ENSG00000186868' in mapt_curies
  ```

  If you don't want to wait to build the database locally for the `pyobo.get_priority_curie` and
  `pyobo.get_equivalent`, you can use the following code to download a release from
  [Zenodo](https://zenodo.org/record/3757266):

  ```python
  import pyobo.resource_utils

  pyobo.resource_utils.ensure_inspector_javert()
  ```



  Get properties, like SMILES. The semantics of these are defined on an OBO-OBO basis.

  ```python
  import pyobo


  chebi_smiles_property = 'http://purl.obolibrary.org/obo/chebi/smiles'
  chebi_id_to_smiles = pyobo.get_filtered_properties_mapping('chebi', chebi_smiles_property)

  smiles = chebi_id_to_smiles['132964']
  assert smiles == 'C1(=CC=C(N=C1)OC2=CC=C(C=C2)O[C@@H](C(OCCCC)=O)C)C(F)(F)F'
  ```

  If you don't have time for two lines:

  ```python
  import pyobo

  smiles = pyobo.get_property('chebi', '132964', 'http://purl.obolibrary.org/obo/chebi/smiles')
  assert smiles == 'C1(=CC=C(N=C1)OC2=CC=C(C=C2)O[C@@H](C(OCCCC)=O)C)C(F)(F)F'
  ```



  Check if an entity is in the hierarchy:

  ```python
  import networkx as nx
  import pyobo


  assert 'go:0008219' in pyobo.get_ancestors('go', '0006915')



  apopototic_process_descendants = pyobo.get_descendants('go', '0006915')
  assert 'go:0070246' in apopototic_process_descendants
  ```

  Get the sub-hierarchy below a given node:

  ```python
  import pyobo


  apopototic_process_subhierarchy = pyobo.get_subhierarchy('go', '0006915')



  assert 'go:0070246' in apopototic_process_subhierarchy
  ```

  Get a hierarchy with properties preloaded in the node data dictionaries:

  ```python
  import pyobo

  prop = 'http://purl.obolibrary.org/obo/chebi/smiles'
  chebi_hierarchy = pyobo.get_hierarchy('chebi', properties=[prop])

  assert 'chebi:132964' in chebi_hierarchy
  assert prop in chebi_hierarchy.nodes['chebi:132964']
  assert chebi_hierarchy.nodes['chebi:132964'][prop] == 'C1(=CC=C(N=C1)OC2=CC=C(C=C2)O[C@@H](C(OCCCC)=O)C)C(F)(F)F'
  ```



  Get all orthologies (`ro:HOM0000017`) between HGNC and MGI (note: this is one way)

  ```python
  >>> import pyobo
  >>> human_mapt_hgnc_id = '6893'
  >>> mouse_mapt_mgi_id = '97180'
  >>> hgnc_mgi_orthology_mapping = pyobo.get_relation_mapping('hgnc', 'ro:HOM0000017', 'mgi')
  >>> assert mouse_mapt_mgi_id == hgnc_mgi_orthology_mapping[human_mapt_hgnc_id]
  ```

  If you want to do it in one line, use:

  ```python

  >>> import pyobo
  >>> human_mapt_hgnc_id = '6893'
  >>> mouse_mapt_mgi_id = '97180'
  >>> assert mouse_mapt_mgi_id == pyobo.get_relation('hgnc', 'ro:HOM0000017', 'mgi', human_mapt_hgnc_id)
  ```



  If you're writing your own code that relies on PyOBO, and unit
  testing it (as you should) in a continuous integration setting,
  you've probably realized that loading all of the resources on each
  build is not so fast. In those scenarios, you can use some of the
  pre-build patches like in the following:

  ```python
  import unittest
  import pyobo
  from pyobo.mocks import get_mock_id_name_mapping

  mock_id_name_mapping = get_mock_id_name_mapping({
    'chebi': {
        '132964': 'fluazifop-P-butyl',
    },
  })

  class MyTestCase(unittest.TestCase):
    def my_test(self):
        with mock_id_name_mapping:
            
            pyobo.get_name('chebi', '1234')
  ```




  In order to normalize references and identify resources, PyOBO uses the
  [Bioregistry](https://github.com/bioregistry/bioregistry). It used to be a part of PyOBO, but has since
  been externalized for more general reuse.

  At [src/pyobo/registries/metaregistry.json](https://github.com/pyobo/pyobo/blob/master/src/pyobo/registries/metaregistry.json)
  is the curated "metaregistry". This is a source of information that contains
  all sorts of fixes for missing/wrong information in MIRIAM, OLS, and OBO Foundry; entries that don't appear in
  any of them; additional synonym information for each namespace/prefix; rules for normalizing xrefs and CURIEs, etc.

  Other entries in the metaregistry:

  - The `"remappings"->"full"` entry is a dictionary from strings that might follow `xref:`
    in a given OBO file that need to be completely replaced, due to incorrect formatting
  - The `"remappings"->"prefix"` entry contains a dictionary of prefixes for xrefs that need
    to be remapped. Several rules, for example, remove superfluous spaces that occur inside
    CURIEs or and others address instances of the GOGO issue.
  - The `"blacklists"` entry contains rules for throwing out malformed xrefs based on
    full string, just prefix, or just suffix.



  The OBO Foundry seems to be pretty unstable with respect to the URLs to OBO resources. If you get an error like:

  ```
  pyobo.getters.MissingOboBuild: OBO Foundry is missing a build for: mondo
  ```

  Then you should check the corresponding page on the OBO Foundry (in this case, http://www.obofoundry.org/ontology/mondo.html)
  and make update to the `url` entry for that namespace in the Bioregistry.



  The most recent release can be installed from
  [PyPI](https://pypi.org/project/pyobo/) with:

  ```console
  python3 -m pip install pyobo
  ```

  The most recent code and data can be installed directly from GitHub with:

  ```console
  python3 -m pip install git+https://github.com/biopragmatics/pyobo.git
  ```



  Contributions, whether filing an issue, making a pull request, or forking, are appreciated. See
  [CONTRIBUTING.md](https://github.com/biopragmatics/pyobo/blob/master/.github/CONTRIBUTING.md)
  for more information on getting involved.





  The code in this package is licensed under the MIT License.

  <!--


  Citation goes here!
  -->

  <!--


  This project has been supported by the following organizations (in alphabetical order):

  - [Biopragmatics Lab](https://biopragmatics.github.io)

  -->

  <!--


  This project has been supported by the following grants:

  | Funding Body  | Program                                                      | Grant Number |
  |---------------|--------------------------------------------------------------|--------------|
  | Funder        | [Grant Name (GRANT-ACRONYM)](https://example.com/grant-link) | ABCXYZ       |
  -->



  This package was created with [@audreyfeldroy](https://github.com/audreyfeldroy)'s
  [cookiecutter](https://github.com/cookiecutter/cookiecutter) package using [@cthoyt](https://github.com/cthoyt)'s
  [cookiecutter-snekpack](https://github.com/cthoyt/cookiecutter-snekpack) template.



  <details>
    <summary>See developer instructions</summary>

  The final section of the README is for if you want to get involved by making a code contribution.



  To install in development mode, use the following:

  ```console
  git clone git+https://github.com/biopragmatics/pyobo.git
  cd pyobo
  python3 -m pip install -e .
  ```



  This project uses `cruft` to keep boilerplate (i.e., configuration, contribution guidelines, documentation
  configuration)
  up-to-date with the upstream cookiecutter package. Update with the following:

  ```console
  python3 -m pip install cruft
  cruft update
  ```

  More info on Cruft's update command is
  available [here](https://github.com/cruft/cruft?tab=readme-ov-file#updating-a-project).



  After cloning the repository and installing `tox` with
  `python3 -m pip install tox tox-uv`,
  the unit tests in the `tests/` folder can be run reproducibly with:

  ```console
  tox -e py
  ```

  Additionally, these tests are automatically re-run with each commit in a
  [GitHub Action](https://github.com/biopragmatics/pyobo/actions?query=workflow%3ATests).



  The documentation can be built locally using the following:

  ```console
  git clone git+https://github.com/biopragmatics/pyobo.git
  cd pyobo
  tox -e docs
  open docs/build/html/index.html
  ```

  The documentation automatically installs the package as well as the `docs`
  extra specified in the [`pyproject.toml`](../../Desktop/pyobo/pyproject.toml). `sphinx` plugins
  like `texext` can be added there. Additionally, they need to be added to the
  `extensions` list in [`docs/source/conf.py`](../../Desktop/pyobo/docs/source/conf.py).

  The documentation can be deployed to [ReadTheDocs](https://readthedocs.io) using
  [this guide](https://docs.readthedocs.io/en/stable/intro/import-guide.html).
  The [`.readthedocs.yml`](../../Desktop/pyobo/.readthedocs.yml) YAML file contains all the configuration you'll need.
  You can also set up continuous integration on GitHub to check not only that
  Sphinx can build the documentation in an isolated environment (i.e., with `tox -e docs-test`)
  but also that [ReadTheDocs can build it too](https://docs.readthedocs.io/en/stable/pull-requests.html).



  1. Log in to ReadTheDocs with your GitHub account to install the integration
     at https://readthedocs.org/accounts/login/?next=/dashboard/
  2. Import your project by navigating to https://readthedocs.org/dashboard/import then clicking the plus icon next to
     your repository
  3. You can rename the repository on the next screen using a more stylized name (i.e., with spaces and capital letters)
  4. Click next, and you're good to go!





  [Zenodo](https://zenodo.org) is a long-term archival system that assigns a DOI to each release of your package.

  1. Log in to Zenodo via GitHub with this link: https://zenodo.org/oauth/login/github/?next=%2F. This brings you to a
     page that lists all of your organizations and asks you to approve installing the Zenodo app on GitHub. Click "grant"
     next to any organizations you want to enable the integration for, then click the big green "approve" button. This
     step only needs to be done once.
  2. Navigate to https://zenodo.org/account/settings/github/, which lists all of your GitHub repositories (both in your
     username and any organizations you enabled). Click the on/off toggle for any relevant repositories. When you make
     a new repository, you'll have to come back to this

  After these steps, you're ready to go! After you make "release" on GitHub (steps for this are below), you can navigate
  to https://zenodo.org/account/settings/github/repository/biopragmatics/pyobo
  to see the DOI for the release and link to the Zenodo record for it.



  You only have to do the following steps once.

  1. Register for an account on the [Python Package Index (PyPI)](https://pypi.org/account/register)
  2. Navigate to https://pypi.org/manage/account and make sure you have verified your email address. A verification email
     might not have been sent by default, so you might have to click the "options" dropdown next to your address to get to
     the "re-send verification email" button
  3. 2-Factor authentication is required for PyPI since the end of 2023 (see
     this [blog post from PyPI](https://blog.pypi.org/posts/2023-05-25-securing-pypi-with-2fa/)). This means
     you have to first issue account recovery codes, then set up 2-factor authentication
  4. Issue an API token from https://pypi.org/manage/account/token



  You have to do the following steps once per machine.

  ```console
  $ uv tool install keyring
  $ keyring set https://upload.pypi.org/legacy/ __token__
  $ keyring set https://test.pypi.org/legacy/ __token__
  ```

  Note that this deprecates previous workflows using `.pypirc`.



  After installing the package in development mode and installing
  `tox` with `python3 -m pip install tox tox-uv`,
  run the following from the console:

  ```console
  tox -e finish
  ```

  This script does the following:

  1. Uses [bump-my-version](https://github.com/callowayproject/bump-my-version) to switch the version number in
     the `pyproject.toml`, `CITATION.cff`, `src/pyobo/version.py`,
     and [`docs/source/conf.py`](../../Desktop/pyobo/docs/source/conf.py) to not have the `-dev` suffix
  2. Packages the code in both a tar archive and a wheel using
     [`uv build`](https://docs.astral.sh/uv/guides/publish/#building-your-package)
  3. Uploads to PyPI using [`uv publish`](https://docs.astral.sh/uv/guides/publish/#publishing-your-package).
  4. Push to GitHub. You'll need to make a release going with the commit where the version was bumped.
  5. Bump the version to the next patch. If you made big changes and want to bump the version by minor, you can
     use `tox -e bumpversion -- minor` after.



  1. Navigate
     to https://github.com/biopragmatics/pyobo/releases/new
     to draft a new release
  2. Click the "Choose a Tag" dropdown and select the tag corresponding to the release you just made
  3. Click the "Generate Release Notes" button to get a quick outline of recent changes. Modify the title and description
     as you see fit
  4. Click the big green "Publish Release" button

  This will trigger Zenodo to assign a DOI to your release as well.

  </details>

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


pkgId: 29bfb9d22282617dc6e9ce8f179984e5886d1a81b428db276819a045cc5ed927
name: python-pyodide-mkdocs-theme-help
arch: noarch
version: 4.0.4
epoch: 0
release: 1
summary: Development documents and examples for pyodide-mkdocs-theme
url: http://frederic-zinelli.gitlab.io/pyodide-mkdocs-theme/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyodide-mkdocs-theme-4.0.4-1.src.rpm
location_href: Packages/python-pyodide-mkdocs-theme-help-4.0.4-1.noarch.rpm
checksum_type: sha256
description:
  Pyodide-MkDocs-Theme is a MkDocs theme allowing to build static websites integrating, on the client side:

  - IDEs (code editor),
  - Interactive Python consoles (terminals),
  - An online judge for testing user-written functions, associated with solutions and remarks,
  - And a lot of other features (auto-corrected MCQs, matplotlib, mermaid, mathjax, p5.js, ...).




  * [Online documentation](http://frederic-zinelli.gitlab.io/pyodide-mkdocs-theme/) (french only)
  * [GitLab repository](https://gitlab.com/frederic-zinelli/pyodide-mkdocs-theme)




      - No cookies
      - No registration
      - Created by teachers for teachers

  This project is a redesign of the prototype [`pyodide-mkdocs`](https://bouillotvincent.gitlab.io/pyodide-mkdocs/) initially created by [Vincent Bouillot](https://gitlab.com/bouillotvincent/).



  The technology enabling this feat is called [Pyodide](https://pyodide.org/en/stable/). It is associated with JavaScript elements, such as [jquery.terminal](https://terminal.jcubic.pl/api_reference.php) and [ACE Editor](https://ace.c9.io/).

  Pyodide uses WebAssembly to bridge between Python and JavaScript and provide an environment for manipulating the JavaScript DOM with Python, or vice versa for manipulating Python from JavaScript.




  Pyodide-MkDocs-Theme is highly configurable on many aspects:

  * Theme configuration,
  * Add your own macros to the theme,
  * Add custom logic here or there,
  * And many more...

  ![IDE capture example](http://frederic-zinelli.gitlab.io/pyodide-mkdocs-theme/assets/pyodide-mkdocs-theme-ex.png)


pkgId: 5257c08984a19de7aa656795f0e091b34584af814115f22c42029dfa6c967b06
name: python-pyodide-mkdocs-theme-help
arch: noarch
version: 4.1.0
epoch: 0
release: 1
summary: Development documents and examples for pyodide-mkdocs-theme
url: http://frederic-zinelli.gitlab.io/pyodide-mkdocs-theme/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyodide-mkdocs-theme-4.1.0-1.src.rpm
location_href: Packages/python-pyodide-mkdocs-theme-help-4.1.0-1.noarch.rpm
checksum_type: sha256
description:
  Pyodide-MkDocs-Theme is a MkDocs theme allowing to build static websites integrating, on the client side:

  - IDEs (code editor),
  - Interactive Python consoles (terminals),
  - An online judge for testing user-written functions, associated with solutions and remarks,

  And a lot of other features:

  - auto-corrected MCQs,
  - compatibility to use from pyodide:
      - [p5.js animations](https://frederic-zinelli.gitlab.io/pyodide-mkdocs-theme/p5_processing/how_to/#p5-simple-example)
      - dynamic [matplotlib](https://frederic-zinelli.gitlab.io/pyodide-mkdocs-theme/custom/matplotlib/#exemple-simple) drawings
      - PIL
      - [dynamic mermaid graphs](https://frederic-zinelli.gitlab.io/pyodide-mkdocs-theme/custom/mermaid/#mermaid-simple-example)
      - mathjax
  - ...




  * [Online documentation](http://frederic-zinelli.gitlab.io/pyodide-mkdocs-theme/) (french only)
  * [GitLab repository](https://gitlab.com/frederic-zinelli/pyodide-mkdocs-theme)




  Pyodide-MkDocs-Theme is highly configurable on many aspects:

  * Theme configuration,
  * Add your own macros to the theme,
  * Add custom logic here or there,
  * And many more...

  ![IDE capture example](http://frederic-zinelli.gitlab.io/pyodide-mkdocs-theme/assets/pyodide-mkdocs-theme-ex.png)




      - No cookies
      - No registration
      - Created by teachers for teachers

  This project is a complete redesign of the prototype [`pyodide-mkdocs`](https://bouillotvincent.gitlab.io/pyodide-mkdocs/) from [Vincent Bouillot](https://gitlab.com/bouillotvincent/).




  The technology enabling this feat is called [Pyodide](https://pyodide.org/en/stable/). It is associated with JavaScript elements, such as [jquery.terminal](https://terminal.jcubic.pl/api_reference.php) and [ACE Editor](https://ace.c9.io/).

  Pyodide uses WebAssembly to bridge between Python and JavaScript and provide an environment for manipulating the JavaScript DOM with Python, or vice versa for manipulating Python from JavaScript.


pkgId: d41369eb4f5f3b4e44d8f1eca06190e73975d306971b71bf110e9375ac5cbd09
name: python-pyone-help
arch: noarch
version: 6.10.2
epoch: 0
release: 1
summary: Development documents and examples for pyone
url: http://opennebula.io
rpm_license: http://www.apache.org/licenses/LICENSE-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyone-6.10.2-1.src.rpm
location_href: Packages/python-pyone-help-6.10.2-1.noarch.rpm
checksum_type: sha256
description:
  PyOne is an implementation of OpenNebula XML-RPC
          bindings in Python. It works as a proxy over the XML-RPC api and
          utilizes generateDS (https://www.davekuhlman.org/generateDS.html)
          to ecapsulate the xml response to Python objects.


pkgId: 9f1e13aa2ba1a3d8fe81df5076e37cbd8a776fe1a0097d9f693190402934c892
name: python-pyoneai-help
arch: noarch
version: 0.2
epoch: 0
release: 1
summary: Development documents and examples for pyoneai
url: https://pypi.org/project/pyoneai/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyoneai-0.2-1.src.rpm
location_href: Packages/python-pyoneai-help-0.2-1.noarch.rpm
checksum_type: sha256
description:
  **pyoneai** package is part of *OpenNebula AIOps framework*.

  [OpenNebula AIOps](https://github.com/OpenNebula/one-AIOps) is an AI-driven component for enabling intelligent operation of [OpenNebula](https://opennebula.io/) cloud deployments. Its main goal is to leverage AI and ML technologies to improve management, monitoring, automation and IT operations of physical/virtual resources and virtualized applications.
  When integrated in an OpenNebula deployment, OneAIOps offers smart resource and application management, including capabilities for enhanced observability, predictive analytics and anomaly detection. It integrates seamlessly with the Opennebula platform, and can be configured by user-friendly, interoperable APIs: a Python SDK, a CLI interface, and a REST API. These allow for simple but precise configuration and management of AI-driven insights, smart scheduling of virtual machines and proactive workload optimization.

  * [Source code](https://github.com/OpenNebula/one-aiops)
  * [Documentation](https://github.com/OpenNebula/one-aiops/wiki)
  * [Bug Tracker](https://github.com/OpenNebula/one-aiops/issues)

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


pkgId: 173392af7e3ad5df11a1c8d73efe0c3182b7b2515c23d0e1da5f11ed2feafaf0
name: python-pyopenrivercam-help
arch: noarch
version: 0.7.1
epoch: 0
release: 1
summary: Development documents and examples for pyopenrivercam
url: https://pypi.org/project/pyopenrivercam/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyopenrivercam-0.7.1-1.src.rpm
location_href: Packages/python-pyopenrivercam-help-0.7.1-1.noarch.rpm
checksum_type: sha256
description:
      .
      ├── CHANGELOG.md        <- Version-based changelog documentation
      ├── README.md           <- This file
      ├── LICENSE             <- License file containing AGPLv3.0 license terms
      ├── TRADEMARK.md        <- Trademark guidelines
      ├── pyproject.toml      <- setup pipeline compatible with pip
      ├── environment.yml     <- YML-file for setting up a conda environment with dependencies
      ├── docs                <- Sphinx documentation source code
          ├── ...             <- Sphinx source code files
      ├── examples            <- Jupyter notebooks with examples how to use the API
          ├── ...             <- individual notebooks and folder with example data files
      ├── pyorc               <- pyorc library
          ├── ...             <- pyorc functions and API files
      ├── tests               <- pytest suite
          ├── ...             <- pytest functions on API level


pkgId: c86dd6f51a452d494527550984bd736510fb380aa2df3f3588329ee8dd90400b
name: python-pyoptimum-help
arch: noarch
version: 0.11.0
epoch: 0
release: 1
summary: Development documents and examples for pyoptimum
url: https://github.com/mcdeoliveira/pyoptimum
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyoptimum-0.11.0-1.src.rpm
location_href: Packages/python-pyoptimum-help-0.11.0-1.noarch.rpm
checksum_type: sha256
description:
  This is a library to facilitate access to the
  [Optimize API](https://optimize.vicbee.net/optimize/api/ui) and [Models API](https://optimize.vicbee.net/models/api/ui) in Python.



  Install with pip by typing:

      pip install pyoptimum



  Documentation is available at [read the docs](https://pyoptimum.readthedocs.io).

  See [VICBee](https://vicbee.net) for more details.

rpm_license:
  MIT License  Copyright (c) 2019 Mauricio de Oliveira  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: a10783be8c077962a955ec74ac575868cca96cb48cf30b0beb54a4d1981e6d7d
name: python-pyoverkiz-help
arch: noarch
version: 1.15.3
epoch: 0
release: 1
summary: Development documents and examples for pyoverkiz
url: https://github.com/iMicknl/python-overkiz-api
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyoverkiz-1.15.3-1.src.rpm
location_href: Packages/python-pyoverkiz-help-1.15.3-1.noarch.rpm
checksum_type: sha256
description:
  <p align=left>
      <a href="https://github.com/iMicknl/python-overkiz-api/actions"><img src="https://github.com/iMicknl/python-overkiz-api/workflows/CI/badge.svg"/></a>
      <a href="https://github.com/psf/black"><img src="https://img.shields.io/badge/code%20style-black-000000.svg" /></a>
  </p>

  A fully async and easy to use API client for the (internal) OverKiz API. You can use this client to interact with smart devices connected to the OverKiz platform, used by various vendors like Somfy TaHoma and Atlantic Cozytouch.

  This package is mainly used by Home Assistant Core, to offer the Overkiz integration. If you want to use this package in your own project, you can use the [following examples](#getting-started) to get started, or look at the [Home Assistant Code](https://github.com/home-assistant/core/tree/dev/homeassistant/components/overkiz) for more examples.



  - Atlantic Cozytouch
  - Bouygues Flexom
  - Brandt Smart Control **\***
  - Hitachi Hi Kumo
  - Nexity Eugénie
  - Rexel Energeasy Connect **\***
  - Sauter Cozytouch
  - Simu (LiveIn2)
  - Somfy Connexoon IO
  - Somfy Connexoon RTS
  - Somfy TaHoma
  - Somfy TaHoma Switch
  - Thermor Cozytouch

  \[*] _These servers utilize an authentication method that is currently not supported by this library. To use this library with these servers, you will need to obtain an access token (by sniffing the original app) and create a local user on the Overkiz API platform._



  ```bash
  pip install pyoverkiz
  ```






  ```python
  import asyncio
  import time

  from pyoverkiz.const import SUPPORTED_SERVERS
  from pyoverkiz.client import OverkizClient
  from pyoverkiz.enums import Server

  USERNAME = ""
  PASSWORD = ""

  async def main() -> None:
      async with OverkizClient(USERNAME, PASSWORD, server=SUPPORTED_SERVERS[Server.SOMFY_EUROPE]) as client:
          try:
              await client.login()
          except Exception as exception:  # pylint: disable=broad-except
              print(exception)
              return

          devices = await client.get_devices()

          for device in devices:
              print(f"{device.label} ({device.id}) - {device.controllable_name}")
              print(f"{device.widget} - {device.ui_class}")

          while True:
              events = await client.fetch_events()
              print(events)

              time.sleep(2)

  asyncio.run(main())
  ```



  ```python
  import asyncio
  import time
  import aiohttp

  from pyoverkiz.client import OverkizClient
  from pyoverkiz.const import SUPPORTED_SERVERS, OverkizServer
  from pyoverkiz.enums import Server

  USERNAME = ""
  PASSWORD = ""
  LOCAL_GATEWAY = "gateway-xxxx-xxxx-xxxx.local" # or use the IP address of your gateway
  VERIFY_SSL = True # set verify_ssl to False if you don't use the .local hostname

  async def main() -> None:
      token = "" # you can set the token here for testing purposes, to re-use an earlier generated token

      if not token:
          
          async with OverkizClient(
              username=USERNAME, password=PASSWORD, server=SUPPORTED_SERVERS[Server.SOMFY_EUROPE]
          ) as client:

              await client.login()
              gateways = await client.get_gateways()

              for gateway in gateways:
                  token = await client.generate_local_token(gateway.id)
                  await client.activate_local_token(gateway_id=gateway.id, token=token, label="Home Assistant/local-dev")
                  print(f"Token for {gateway.label} ({gateway.id}):")
                  print(token)  # save this token for future use

      
      session = aiohttp.ClientSession(
          connector=aiohttp.TCPConnector(verify_ssl=VERIFY_SSL))

      async with OverkizClient(
          username="", password="", token=token, session=session, verify_ssl=VERIFY_SSL, server=OverkizServer(
              name="Somfy TaHoma (local)",
              endpoint=f"https://{LOCAL_GATEWAY}:8443/enduser-mobile-web/1/enduserAPI/",
              manufacturer="Somfy",
              configuration_url=None,
          )
      ) as client:
          await client.login()

          print("Local API connection succesfull!")

          print(await client.get_api_version())

          setup = await client.get_setup()
          print(setup)

          devices = await client.get_devices()
          print(devices)

          for device in devices:
              print(f"{device.label} ({device.id}) - {device.controllable_name}")
              print(f"{device.widget} - {device.ui_class}")

          while True:
              events = await client.fetch_events()
              print(events)

              time.sleep(2)

  asyncio.run(main())
  ```





  If you use Visual Studio Code with Docker or GitHub CodeSpaces, you can leverage the available devcontainer. This will install all required dependencies and tools and has the right Python version available. Easy!


  - Install Python 3.12
  - Install [poetry](https://python-poetry.org): `curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python`
  - Clone this repository
  - `cd python-overkiz-api`
  - Init the project: `poetry install`
  - Run `poetry run pre-commit install`


pkgId: c71d1bf031f400b9fe515f2ebefeb5165a70e6a6b5141dd7927b00a3965f2661
name: python-pypaimon-help
arch: noarch
version: 0.2.0
epoch: 0
release: 1
summary: Development documents and examples for pypaimon
url: https://paimon.apache.org
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pypaimon-0.2.0-1.src.rpm
location_href: Packages/python-pypaimon-help-0.2.0-1.noarch.rpm
checksum_type: sha256
description:
  See Apache Paimon Python API [Doc](https://paimon.apache.org/docs/master/program-api/python-api/) for usage.


pkgId: d7ea07c8b6658203f5a97e1e4c8ced173fed0b3a6b87adf4ebe930f79b34153e
name: python-pypalazzetti-help
arch: noarch
version: 0.1.15
epoch: 0
release: 1
summary: Development documents and examples for pypalazzetti
url: https://github.com/dotvav/py-palazzetti-api
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pypalazzetti-0.1.15-1.src.rpm
location_href: Packages/python-pypalazzetti-help-0.1.15-1.noarch.rpm
checksum_type: sha256
description:
  An async Python library to access and control a Palazzetti stove through a Palazzetti Connection Box.


  ```python
  import asyncio

  from pypalazzetti.client import PalazzettiClient


  async def main():
      client = PalazzettiClient("192.168.1.73")
      print(f"Connection: {await client.connect()}")
      print(f"Check if online: {await client.is_online()}")
      print(f"Update: {await client.update_state()}")
      print(f"MAC address: {client.mac}")
      print(f"Name: {client.name}")
      print(f"Room temperature: {client.room_temperature}")
      print(f"Target temperature: {client.target_temperature}")
      print(f"Status: {client.status}")
      print(f"Set target temperature: {await client.set_target_temperature(22)}")
      print(f"Target temperature: {client.target_temperature}")
      print(f"Min fan speed: {client.fan_speed_min}")
      print(f"Max fan speed: {client.fan_speed_max}")
      print(f"Set fan speed: {await client.set_fan_auto()}")
      print(f"Fan speed: {client.fan_speed}")
      print("---")
      for temp in client.list_temperatures():
          print(f"{temp.description_key}={temp.value}")
      print("---")
      print(client.to_json())



  asyncio.new_event_loop().run_until_complete(main())
  ```


pkgId: 3d09503d14cad74edca676ffbebf3ae3fdcbb9b1ab0ac6616633275ce83b8f24
name: python-pypeec-help
arch: noarch
version: 5.3.2
epoch: 0
release: 1
summary: Development documents and examples for pypeec
url: https://pypeec.otvam.ch
rpm_license: MPL-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pypeec-5.3.2-1.src.rpm
location_href: Packages/python-pypeec-help-5.3.2-1.noarch.rpm
checksum_type: sha256
description:
  * **Website: [pypeec.otvam.ch](https://pypeec.otvam.ch)**
  * **Repository: [github.com/otvam/pypeec](https://github.com/otvam/pypeec)**
  * **Conda: [anaconda.org/conda-forge/pypeec](https://anaconda.org/conda-forge/pypeec)**


pkgId: 045104f91f7aeb16166a182cd5e091d077bbf46379e728dca5962d5debab6d31
name: python-pypeline-runner-help
arch: noarch
version: 1.3.0
epoch: 0
release: 1
summary: Development documents and examples for pypeline-runner
url: https://github.com/cuinixam/pypeline
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pypeline-runner-1.3.0-1.src.rpm
location_href: Packages/python-pypeline-runner-help-1.3.0-1.noarch.rpm
checksum_type: sha256
description:
  <p align="center">
    <a href="https://github.com/cuinixam/pypeline/actions/workflows/ci.yml?query=branch%3Amain">
      <img src="https://img.shields.io/github/actions/workflow/status/cuinixam/pypeline/ci.yml?branch=main&label=CI&logo=github&style=flat-square" alt="CI Status" >
    </a>
    <a href="https://pypeline-runner.readthedocs.io">
      <img src="https://img.shields.io/readthedocs/pypeline-runner.svg?logo=read-the-docs&logoColor=fff&style=flat-square" alt="Documentation Status">
    </a>
    <a href="https://codecov.io/gh/cuinixam/pypeline">
      <img src="https://img.shields.io/codecov/c/github/cuinixam/pypeline.svg?logo=codecov&logoColor=fff&style=flat-square" alt="Test coverage percentage">
    </a>
  </p>
  <p align="center">
    <a href="https://python-poetry.org/">
      <img src="https://img.shields.io/badge/packaging-poetry-299bd7?style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAASCAYAAABrXO8xAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJJSURBVHgBfZLPa1NBEMe/s7tNXoxW1KJQKaUHkXhQvHgW6UHQQ09CBS/6V3hKc/AP8CqCrUcpmop3Cx48eDB4yEECjVQrlZb80CRN8t6OM/teagVxYZi38+Yz853dJbzoMV3MM8cJUcLMSUKIE8AzQ2PieZzFxEJOHMOgMQQ+dUgSAckNXhapU/NMhDSWLs1B24A8sO1xrN4NECkcAC9ASkiIJc6k5TRiUDPhnyMMdhKc+Zx19l6SgyeW76BEONY9exVQMzKExGKwwPsCzza7KGSSWRWEQhyEaDXp6ZHEr416ygbiKYOd7TEWvvcQIeusHYMJGhTwF9y7sGnSwaWyFAiyoxzqW0PM/RjghPxF2pWReAowTEXnDh0xgcLs8l2YQmOrj3N7ByiqEoH0cARs4u78WgAVkoEDIDoOi3AkcLOHU60RIg5wC4ZuTC7FaHKQm8Hq1fQuSOBvX/sodmNJSB5geaF5CPIkUeecdMxieoRO5jz9bheL6/tXjrwCyX/UYBUcjCaWHljx1xiX6z9xEjkYAzbGVnB8pvLmyXm9ep+W8CmsSHQQY77Zx1zboxAV0w7ybMhQmfqdmmw3nEp1I0Z+FGO6M8LZdoyZnuzzBdjISicKRnpxzI9fPb+0oYXsNdyi+d3h9bm9MWYHFtPeIZfLwzmFDKy1ai3p+PDls1Llz4yyFpferxjnyjJDSEy9CaCx5m2cJPerq6Xm34eTrZt3PqxYO1XOwDYZrFlH1fWnpU38Y9HRze3lj0vOujZcXKuuXm3jP+s3KbZVra7y2EAAAAAASUVORK5CYII=" alt="Poetry">
    </a>
    <a href="https://github.com/astral-sh/ruff">
      <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" alt="ruff">
    </a>
    <a href="https://github.com/pre-commit/pre-commit">
      <img src="https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=flat-square" alt="pre-commit">
    </a>
  </p>
  <p align="center">
    <a href="https://pypi.org/project/pypeline-runner/">
      <img src="https://img.shields.io/pypi/v/pypeline-runner.svg?logo=python&logoColor=fff&style=flat-square" alt="PyPI Version">
    </a>
    <img src="https://img.shields.io/pypi/pyversions/pypeline-runner.svg?style=flat-square&logo=python&amp;logoColor=fff" alt="Supported Python versions">
    <img src="https://img.shields.io/pypi/l/pypeline-runner.svg?style=flat-square" alt="License">
  </p>

  Pypeline is a Python application designed to streamline and automate the software development lifecycle, particularly the pipeline execution processes across various environments such as GitHub and Jenkins.
  The primary motivation for developing Pypeline stemmed from the need to unify and simplify the creation of build, test, and deployment pipelines that are traditionally defined separately across these platforms using GitHub workflows (YAML) and Jenkins pipelines (Jenkinsfile).

  **Key Features**

  - **Unified Pipeline Definition**: Users can define their entire pipeline in a single YAML file, eliminating the need to switch between different syntaxes and configurations for different CI/CD tools.

  - **Extensibility**: Pypeline supports execution steps defined not only through local scripts but also from installed Python packages.

  - **Execution Context**: Each step in the pipeline receives an execution context that can be updated during step execution. This allows for the sharing of information and state between steps.

  - **Dependency Handling**: Dependency management ensures that only the necessary steps are executed, reducing runtime and resource usage by avoiding unnecessary operations.

  - **Ease of Use**: With Pypeline, setting up and running pipelines becomes more straightforward, enabling developers to focus more on coding and less on configuring pipeline specifics.



  Install this via pip (or your favourite package manager):

  `pip install pypeline-runner`



  The project uses Poetry for dependencies management and packaging.
  Run the `bootstrap.ps1` script to install Python and create the virtual environment.

  ```powershell
  .\bootstrap.ps1
  ```

  This will also generate a `poetry.lock` file, you should track this file in version control.

  To execute the test suite, call pytest inside Poetry's virtual environment via `poetry run`:

  ```shell
  .venv/Scripts/poetry run pytest
  ```

  Check out the Poetry documentation for more information on the available commands.

  For those using [VS Code](https://code.visualstudio.com/) there are tasks defined for the most common commands:

  - bootstrap
  - install dependencies
  - run tests
  - run all checks configured for pre-commit
  - generate documentation

  See the `.vscode/tasks.json` for more details.



  This repository uses [commitlint](https://github.com/conventional-changelog/commitlint) for checking if the commit message meets the [conventional commit format](https://www.conventionalcommits.org/en).



  Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

  <!-- prettier-ignore-start -->
  <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
  <!-- markdownlint-disable -->
  <!-- markdownlint-enable -->
  <!-- ALL-CONTRIBUTORS-LIST:END -->
  <!-- prettier-ignore-end -->

  This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!



  This package was created with [Copier](https://copier.readthedocs.io/) and the [cuinixam/pypackage-template](https://github.com/cuinixam/pypackage-template) project template.


pkgId: 76d95533b610407c224b801b84fee38fe7aa6edf00e9071b56b947c62a9ef597
name: python-pyperclipimg-help
arch: noarch
version: 0.2.0
epoch: 0
release: 1
summary: Development documents and examples for pyperclipimg
url: https://github.com/asweigart/pyperclipimg
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyperclipimg-0.2.0-1.src.rpm
location_href: Packages/python-pyperclipimg-help-0.2.0-1.noarch.rpm
checksum_type: sha256
description:
  Python copy() and paste() clipboard functions for images on Windows, macOS, and Linux.

  This module has Pillow as a dependency, as well as the following dependencies:

  Windows: The pywin32 Python package. Install with `pip install pywin32`

  macOS: The pyobjc-framework-quartz Python package. Install with `pip install pyobjc-framework-quartz`

  Linux: Either the xclip or wl-copy commands. Install these with `sudo apt install xclip` or `sudo apt install wl-clipboard`



  To copy an image in a file to the clipboard, pass the filename as a str or Path object to `copy()`. A Pillow `Image` object can also be passed. Any image format that Pillow supports can be used (png, jpg, gif, bmp, webp)

  >>> import pyperclipimg as pci
  >>> pci.copy('example.png')  # Copy by filename.

  >>> import pyperclip as pci
  >>> from pathlib import Path
  >>> pci.copy(Path('example.png'))  # Copy by Path object.

  >>> import pyperclip as pci
  >>> from PIL import Image
  >>> pci.copy(Image.open('example.png'))  # Copy by Image object.

  To paste the image (that is, get the image from the clipboard), call `paste()`. The image on the clipboard is returned as a Pillow `Image` object.

  >>> import pyperclipimg as pci
  >>> im = pci.paste()  # Get the clipboard image as an Image object.
  >>> im.show()  # Display the image on the screen.

  The `paste()` function depends entirely on Pillow's `ImageGrab.grabclipboard()` function.

  Pyperclipimg also has `show()` and `save()` functions as a convennient shortcut for the Pillow functions of the same name:

  >>> import pyperclipimg as pci
  >>> pci.show()  # Display the clipboard's image on the screen.
  >>> pci.paste().show()  # (Also displays the clipboard's image on the screen.)

  >>> import pyperclipimg as pci
  >>> pci.save()  # Saves the clipboard's image with a name like clipboard-2024-12-17_11-10-51-412737.png.
  >>> pci.save('foo.png')  # Saves the clipboard's image named foo.png.
  >>> pci.save('some_folder')  # Saves the clipboard's image with a name like some_folder/clipboard-2024-12-17_11-10-51-412737.png.


  This module is by Al Sweigart, the creator of pyperclip which copies and pastes text to the clipboard. This module is separate because it has some heavy dependencies (pywin32, Quartz, etc.)


pkgId: 0c79e98e5899dc5faf6fae9dc959f9c66e1f08a125c1ea210c0f159b34897b88
name: python-pypetkitapi-help
arch: noarch
version: 0.5.1
epoch: 0
release: 1
summary: Development documents and examples for pypetkitapi
url: https://github.com/Jezza34000/pypetkit
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pypetkitapi-0.5.1-1.src.rpm
location_href: Packages/python-pypetkitapi-help-0.5.1-1.noarch.rpm
checksum_type: sha256
description:
  [![PyPI](https://img.shields.io/pypi/v/pypetkitapi.svg)][pypi_]
  [![Python Version](https://img.shields.io/pypi/pyversions/pypetkitapi)][python version]
  [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)][pre-commit]
  [![Black](https://img.shields.io/badge/code%20style-black-000000.svg)][black]
  [![mypy](https://img.shields.io/badge/mypy-checked-blue)](https://mypy.readthedocs.io/en/stable/)
  [![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)


pkgId: bf3a9cdeb0d86f06169ef3d988b249bf8122da4417434da1a67442d707922512
name: python-pyphd-help
arch: noarch
version: 0.0.4
epoch: 0
release: 1
summary: Development documents and examples for pyphd
url: https://github.com/phdenzel/pyphd.git
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyphd-0.0.4-1.src.rpm
location_href: Packages/python-pyphd-help-0.0.4-1.noarch.rpm
checksum_type: sha256
description:
  For development, I use a few GitHub actions to automate a few things. Here follows short description of each of these workflows:
  - Reusable worflows
    * `test-install.yml`
      - test install on various Python versions (by default 3.10-3.12)
      - ruff linting checks (stop build if error occurs)
      - run unit tests with pytest
      - upload test results (for prosperity)
    * `build-package.yml`
      - build package for Python version 3.x
      - upload package dist artifacts (by name)
    * `github-release.yml`
      - download package dist artifact (by name)
      - sign package dist with Sigstore
      - create and upload GitHub release
    * `phdenzel/hatch-bump@v*`
      - use hatch to increment a version
      - commit and push changes
  - Workflows with various triggers:
    * `on_branches.yml`
      - triggers on commit to any branch (except `main`) not in a PR (pull request)
      - runs `test-install-python-version` and `build-package`
    * `on_pr.yml`
      - triggers on commit to a PR
      - runs `test-install-python-version`, `build-package`, `publish-to-testpypi`, and `version-bump-dev`
    * `on_merge.yml`
      - triggers on PR merge
      - runs `version-bump-on-merge` (increments micro version on main)
    * `on_push.yml`
      - triggers on push to the main branch upon version change
      - runs `test-install`, `build-package`, `publish-to-pypi`

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


pkgId: 7047ec8adad4bee6a3202106256ad2985dcba75be052c611132d3f7552958f7d
name: python-pyphetools-help
arch: noarch
version: 0.9.115
epoch: 0
release: 1
summary: Development documents and examples for pyphetools
url: https://pypi.org/project/pyphetools/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyphetools-0.9.115-1.src.rpm
location_href: Packages/python-pyphetools-help-0.9.115-1.noarch.rpm
checksum_type: sha256
description:
  [![CI](https://github.com/monarch-initiative/pyphetools/workflows/CI/badge.svg)](https://github.com/monarch-initiative/pyphetools/actions/workflows/python_ci.yml)


  Python Phenopacket Tools

  This package currently is designed to test how to use the Python version of the phenopackets package together with pandas to create phenopackets from typical supplemental tables.

  Development goals include making builder code similar to the Java package to create valid phenopackets and to perform JSON Schema-based validation.




  See the tutorial and detailed documentation [here](https://monarch-initiative.github.io/pyphetools).



  We have made the package available in the Python Package Index (pypi) at [pyphetools](https://pypi.org/project/pyphetools/).

rpm_license:
  MIT License  Copyright (c) 2023, The Monarch Initiative  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: 042480d7a02291262c4ef21d07d420637b84ca4e8ef82d53394bd768b9a07219
name: python-pyphotonics-help
arch: noarch
version: 0.2.0
epoch: 0
release: 1
summary: Development documents and examples for pyphotonics
url: https://github.com/sheriftawfikabbas/pyphotonics
rpm_license: gpl-3.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyphotonics-0.2.0-1.src.rpm
location_href: Packages/python-pyphotonics-help-0.2.0-1.noarch.rpm
checksum_type: sha256
description:
  PyPhotonics is a post-processing python code that calculates photonic properties of materials. Based on the outcome of DFT, constrained DFT and vibrational calculations using DFT performed using VASP for a defect system, PyPhotonics uses the results in the output files and calculates the Huang-Rhys factor of the defect and the photoluminescence line-shape. Soon, the code will calculate the carrier capture coefficient and carrier lifetimes for defects, which are essential quantities for assessing the photovoltaic efficiency of materials.

  If you wish to use PyPhotonics, please cite our paper:

  - [Sherif AbdulkaderTawfik, Salvy P.Russo, PyPhotonics: A python package for the evaluation of luminescence properties of defects, Computer Physics Communications, 2022, 273, 108222.](https://www.sciencedirect.com/science/article/pii/S0010465521003349)




  You can install PyPhotonics using the pip command: `pip install pyphotonics`. The following python packages are required:

  - scipy
  - numpy
  - pandas
  - matplotlib
  - oganesson



  The `pyphotonics` module is composed of the following files:

  ```
  /pyphotonics
      /__init__.py
      /constants.py: A list of physical constants.
      /photoluminescence.py: Contains the Photoluminescence class, which drives the photonics calculations.
  ```





  To calculate the PL line-shape and the Huang-Rhys of a crystal structure using pyphotonics, a number of DFT calculations should be performed with VASP first:
  - The ground state structure of the crystal should be optimized. Let's call the output file CONTCAR_GS.
  - The excited state structure of the crystal should be optimized. Let's call the output file CONTCAR_ES. For a tutorial on how to setup such calculation, see this [tutorial](./vasp_constrained_occupations.md)
  - The phonon modes of the ground state system should be calculated with VASP, and the `bands.yaml` file should be produced using the `phonopy` code.

  Once all of the above is done, you can calculate the HR factor and PL line-shape as follows (the complete example is in the `test/` directory):


  ```
  from pyphotonics.photoluminescence import Photoluminescence
  p = Photoluminescence("CONTCAR_GS", "CONTCAR_ES", 189, method="phonopy", resolution=1000)

  ```

  You can also run `pyphotonics` from the command line by typing the following in the directory `test/photoluminscence/`:

  ```
  pyphotonics -cgs CONTCAR_GS -ces CONTCAR_ES -m 189 -M phonopy -r 1000
  ```




  VASP allows you to excite a crystal structure by constraining the occupations of the electronic bands. Let's say you want to excite a spin-up (spin component 1) or spin-down (spin component 2) electron from the ground state to the excited state. To do this, run the following command:

  ```
  pyphotonics-incar <path to your OUTCAR file>
  ```


  `pyphotonics` will write to the terminal the values of the two INCAR tags, `FERWE` and `FERDO`, which you can then copy-paste into your INCAR file to perform the excited state optimisation.

  There is a sample `OUTCAR` file in the directory `test/ferwe_ferdo` which you can test with. Go to the directory and type: `pyphotonics-incar`.



  These are INCAR tags that specify the electronic occupation. Here is how you can construct those tags for any structure:

  - Find out how many bands do you have. You can obtain that by search for `NBANDS` in the OUTCAR file
  - Find out how many k points do you have. You can look that up in the OUTCAR by searching for the section that starts with the string spin component 1 in the OUTCAR. Let's call that number `N_K`.
  - Find out how many electrons are occupying spin components 1 and 2 by searching the **last** such section in the OUTCAR that starts with spin component 1. Let's say there are `O_UP` electrons that occupy the spin up, `O_DN` electrons that occupy the spin down.
  - Next, calculate how many states are empty in both spins: empty states in the spin up = `U_UP` where `U_UP = NBANDS - O_UP`. Same applies for `U_DN`.

  Finally, add the `FERWE` (spin up, or spin component 1) and `FERDO` (spin down, or spin component 2) as follows:

  - `FERWE = [O_UP-1]*1.0 1*0.0 1*1.0 [U_UP-1]*0.0 <repeated N_K times>`
  - `FERDO = [O_DN]*1.0 [U_DN]*0.0 <repeated N_K times>`

  Note the `<repeated N_K times>` above. It means: repeat `[O_UP-1]*1.0 1*0.0 1*1.0 [U_UP-1]*0.0` for `N_K` times.

  Let's have an example. Let's say we have 8 kpoints in both spins, 216 bands, where the spin up electrons occupy 144 bands and the spin down occupy 142 bands. Then, here are the two tags:

  - `FERWE = 143*1.0 1*0.0 1*1.0 71*0.0 143*1.0 1*0.0 1*1.0 71*0.0 143*1.0 1*0.0 1*1.0 71*0.0 143*1.0 1*0.0 1*1.0 71*0.0 143*1.0 1*0.0 1*1.0 71*0.0 143*1.0 1*0.0 1*1.0 71*0.0 143*1.0 1*0.0 1*1.0 71*0.0 143*1.0 1*0.0 1*1.0 71*0.0`
  - `FERDO = 142*1.0 74*0.0 142*1.0 74*0.0 142*1.0 74*0.0 142*1.0 74*0.0 142*1.0 74*0.0 142*1.0 74*0.0 142*1.0 74*0.0 142*1.0 74*0.0`


pkgId: 4981311df3a7c67c02f05dab2b86b198b5cb459fec2201274bab0889ebccdf16
name: python-pyping-pkg-help
arch: noarch
version: 0.3.0
epoch: 0
release: 1
summary: Development documents and examples for pyping-pkg
url: https://pypi.org/project/pyping-pkg/
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyping-pkg-0.3.0-1.src.rpm
location_href: Packages/python-pyping-pkg-help-0.3.0-1.noarch.rpm
checksum_type: sha256
description:
  Pyping_pkg is a module used to check projects PyPi web site informations as if already exists and your respective versions.


pkgId: 46cd899611acaed5f7e99d851a900e70d44ce244ddffaf7b370fe649eee07325
name: python-pypollinations-help
arch: noarch
version: 0.1.0
epoch: 0
release: 1
summary: Development documents and examples for pypollinations
url: https://pypi.org/project/pypollinations/
rpm_license: Apache-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pypollinations-0.1.0-1.src.rpm
location_href: Packages/python-pypollinations-help-0.1.0-1.noarch.rpm
checksum_type: sha256
description:
  A Python wrapper for accessing Pollinations AI API endpoints.



  ```bash
  pip install pollinations
  ```



  [API documentation](docs/api.md)





  ```python
  import asyncio
  from pollinations import ImageClient, ImageGenerationRequest
  from PIL import Image
  from io import BytesIO

  async def generate_image(save_image_path: str = './examples/generated_images/',image_name: str = 'image.png'):
      
      client = ImageClient()

      try:
          
          request = ImageGenerationRequest(
              prompt="A beautiful sunset over mountains with snow peaks",
              width=1024,
              height=768,
              model="flux",
              nologo=True
          )

          
          response = await client.generate(request)
          print(f"Image URL: {response.url}")
          print(f"Seed: {response.seed}")
          image_data = response.image_bytes
          try:
              image_data = Image.open(BytesIO(image_data))
              image_data.save(save_image_path + image_name)
              print(f"Image saved to {save_image_path}")
          except Exception as e:
              print(f"Error: {e}")



          
          models = await client.list_models()
          print("\nAvailable models:")
          print("\n".join(models))

      except Exception as e:
          print(f"Error: {e}")
      finally:
          await client.close()

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



  ```python
  import asyncio
  from pollinations import TextClient, TextGenerationRequest
  from pollinations.models.base import Message
  from pollinations.exceptions import PollinationsError


  async def generate_text():
      
      client = TextClient()

      try:
          request = TextGenerationRequest(
              messages=[
                  Message(role="system", content="You are a helpful assistant"),
                  Message(role="user", content="What is artificial intelligence?")
              ],
              model="openai",
              jsonMode=True,
              seed=42

          )

          
          print("Generating response...\n")
          try:
              response = await client.generate(request)
              print(f"Response: {response.content}")
              print(f"Model: {response.model}")
              print(f"Seed: {response.seed}")

          except Exception as e:
              print(f"Failed to generate response: {e}")
              raise

          
          print("\nFetching available models...")
          try:
              models = await client.list_models()
              print("\n")
              print(models)
              print("\n")
              print("\nAvailable models:")
              for model in models:
                  print(f"- {model['name']}: {model.get('type', 'unknown')}")
          except Exception as e:
              print(f"Failed to fetch models: {e}")

      except PollinationsError as e:
          print(f"API Error: {e}")
      except Exception as e:
          print(f"Unexpected error: {type(e).__name__}: {e}")
      finally:
          await client.close()

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



  - Easy integration with Pollinations AI services
  - Support for various AI models
  - Asynchronous requests support



  This project is licensed under the [Apache License 2.0](LICENSE).


pkgId: 2e08d6d9fd624646019471ebd8d35e3ea47fff1b42541999c4f34ae867c93a9c
name: python-pyporscheconnectapi-help
arch: noarch
version: 0.2.1
epoch: 0
release: 1
summary: Development documents and examples for pyporscheconnectapi
url: https://github.com/cjne/pyporscheconnectapi
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyporscheconnectapi-0.2.1-1.src.rpm
location_href: Packages/python-pyporscheconnectapi-help-0.2.1-1.noarch.rpm
checksum_type: sha256
description:
  A python library for Porsche Connect API

  This library will let you access your car equipped with Porsche Connect. It does not work with the predecessor Porsche Car Connect.
  Porsche Connect is available for the following Porsche models:

  * Boxster & Cayman (718)
  * 911 (from 992)
  * Taycan
  * Panamera (from 2021, G2 PA)
  * Macan (EV, from 2024)
  * Cayenne (from 2017, E3)

  You can also take a look here, select your model and see if your model has support for Porsche Connect:
  https://connect-store.porsche.com/

  A Porsche Connect subscription alse needs to be active for it to work.

  *NOTE:* This work is not officially supported by Porsche and functionality can stop working at any time without warning.



  The easiest method is to install using pip3/pip (venv is also a good idea).
  ```
  pip install pyporscheconnectapi
  ```

  to update to the latest version

  ```
  pip install pyporscheconnectapi -U
  ```

  Setup will add a cli under the name porschecli, see below for usage.




  A simple cli is provided with this library, it will cache tokens to a file to speed up invocations.

  If no email or password is supplied as input arguments and no config file with those details is found you will be prompted.
  ```
  usage: porschecli [-h] [-d] [-e EMAIL] [-p PASSWORD] [-s SESSION_FILE] [--nowait]
                    {list,token,capabilities,currentoverview,storedoverview,trip_statistics,pictures,location,climatise_on,climatise_off,direct_charge_on,direct_charge_off,flash_indicators,honk_and_flash,lock_vehicle,unlock_vehicle,vehicle_closed,doors_and_lids,tire_pressure_status,tire_pressures,chargingprofile}
                    ...

  Porsche Connect CLI

  positional arguments:
    {list,token,capabilities,currentoverview,storedoverview,trip_statistics,pictures,location,climatise_on,climatise_off,direct_charge_on,direct_charge_off,flash_indicators,honk_and_flash,lock_vehicle,unlock_vehicle,vehicle_closed,doors_and_lids,tire_pressure_status,tire_pressures,chargingprofile}
                          command help
      battery             Prints the main battery level (BEV)
      capabilities        Get vehicle capabilities
      chargingprofile     Update parameters in configured charging profile
      climatise_off       Stop remote climatisation
      climatise_on        Start remote climatisation
      connected           Check if vehicle is on-line
      currentoverview     Get stored overview for vehicle
      direct_charge_off   Disable direct charging
      direct_charge_on    Enable direct charging
      doors_and_lids      List status of all doors and lids
      flash_indicators    Flash indicators
      honk_and_flash      Flash indicators and sound the horn
      location            Show location of vehicle
      lock_vehicle        Lock vehicle
      pictures            Get vehicle pictures url
      storedoverview      Poll vehicle for current overview
      tire_status         Check if tire pressure are ok
      tire_pressures      Get tire pressure readings
      trip_statistics     Get trip statistics from backend
      unlock_vehicle      Unlock vehicle
      vehicle_closed      Check if all doors and lids are closed

  options:
    -h, --help            show this help message and exit
    -d, --debug
    -e EMAIL, --email EMAIL
    -p PASSWORD, --password PASSWORD
    -s SESSION_FILE, --sessionfile SESSION_FILE
    --nowait

  ```



  A config file is searched for in ~/.porscheconnect.cfg and ./.porscheconnect.cfg
  The format is:

  ```
  [porsche]
  email=<your email>
  password=<your password>
  session_file=<file to store session information>
  ```



  Install pyporscheconnectapi using pip (requires python > 3.6)




  Please refer to the examples provided in the repository.


pkgId: 2552b14eeff67efa9891fd1ca3e8c7c5ad7b9cfbe6e91ce75e3daeb2a16a441c
name: python-pyprocessors-document_fingerprint-help
arch: noarch
version: 0.5.48
epoch: 0
release: 1
summary: Development documents and examples for pyprocessors-document_fingerprint
url: https://github.com/oterrier/pyprocessors_document_fingerprint/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyprocessors-document_fingerprint-0.5.48-1.src.rpm
location_href: Packages/python-pyprocessors-document_fingerprint-help-0.5.48-1.noarch.rpm
checksum_type: sha256
description:
  [![license](https://img.shields.io/github/license/oterrier/pyprocessors_document_fingerprint)](https://github.com/oterrier/pyprocessors_document_fingerprint/blob/master/LICENSE)
  [![tests](https://github.com/oterrier/pyprocessors_document_fingerprint/workflows/tests/badge.svg)](https://github.com/oterrier/pyprocessors_document_fingerprint/actions?query=workflow%3Atests)
  [![codecov](https://img.shields.io/codecov/c/github/oterrier/pyprocessors_document_fingerprint)](https://codecov.io/gh/oterrier/pyprocessors_document_fingerprint)
  [![docs](https://img.shields.io/readthedocs/pyprocessors_document_fingerprint)](https://pyprocessors_document_fingerprint.readthedocs.io)
  [![version](https://img.shields.io/pypi/v/pyprocessors_document_fingerprint)](https://pypi.org/project/pyprocessors_document_fingerprint/)
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pyprocessors_document_fingerprint)](https://pypi.org/project/pyprocessors_document_fingerprint/)

  DocumentFingerprint annotations coming from different annotators



  You can simply `pip install pyprocessors_document_fingerprint`.





  You will need to install `flit` (for building the package) and `tox` (for orchestrating testing and documentation building):

  ```
  python3 -m pip install flit tox
  ```

  Clone the repository:

  ```
  git clone https://github.com/oterrier/pyprocessors_document_fingerprint
  ```



  You can run the full test suite against all supported versions of Python (3.8) with:

  ```
  tox
  ```



  You can build the HTML documentation with:

  ```
  tox -e docs
  ```

  The built documentation is available at `docs/_build/index.html.


pkgId: 0b224c377d272bd0e09c01f87ade56334902be8f09bffd501941872ff3397390
name: python-pyproject-pre-commit-help
arch: noarch
version: 0.3.6
epoch: 0
release: 1
summary: Development documents and examples for pyproject-pre-commit
url: https://github.com/rcmdnk/pyproject-pre-commit
rpm_license: Apache-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyproject-pre-commit-0.3.6-1.src.rpm
location_href: Packages/python-pyproject-pre-commit-help-0.3.6-1.noarch.rpm
checksum_type: sha256
description:
  [![test](https://github.com/rcmdnk/pyproject-pre-commit/actions/workflows/test.yml/badge.svg)](https://github.com/rcmdnk/pyproject-pre-commit/actions/workflows/test.yml)
  [![test coverage](https://img.shields.io/badge/coverage-check%20here-blue.svg)](https://github.com/rcmdnk/pyproject-pre-commit/tree/coverage)

  [pre-commit](https://pre-commit.com/) hooks for python projects.

  **.pre-commit-hooks.yaml** provides pre-defined ids which you just need to add these ids to your **.pre-commit-config.yaml**.

  By installing **pyproject-pre-commit** package,
  all necessary tools are installed as dependencies.

  <!-- mdformat-toc start --slug=github --maxlevel=6 --minlevel=2 -->

  - [Requirement](#requirement)
  - [Usage](#usage)
    - [Install pyproject-pre-commit](#install-pyproject-pre-commit)
    - [Install pyproject-pre-commit with ruff](#install-pyproject-pre-commit-with-ruff)
    - [Prepare .pre-commit-config.yaml](#prepare-pre-commit-configyaml)
    - [Run pre-commit](#run-pre-commit)
  - [Available ids](#available-ids)
  - [Options for tools](#options-for-tools)
  - [pyproject.toml](#pyprojecttoml)

  <!-- mdformat-toc end -->



  - Python >= 3.9.0
  - Poetry (For development)





  If your project uses poetry, do:

  ```
  $ poetry add --group dev pyproject-pre-commit
  ```

  Otherwise, install the package in your working environment.

  If you use pip, do:

  ```
  $ pip install pyproject-pre-commit
  ```

  This will install tools for pre-commit hooks in your working environment,
  so that you can use these tools, such as black, directly.



  If you want to use ruff, you can install pyproject-pre-commit with ruff option.

  ```
  $ poetry add --group dev "pyproject-pre-commit[ruff]"
  ```

  ```
  $ pip install pyproject-pre-commit[ruff]
  ```



  Add **https://github.com/rcmdnk/pyproject-pre-commit** to your **.pre-commit-config.yaml**, like:

  ```yaml
  repos:
    - repo: https://github.com/rcmdnk/pyproject-pre-commit
      rev: v0.3.0
      hooks:
        - id: black-diff
        - id: black
        - id: blacken-docs
        - id: autoflake-diff
        - id: autoflake
        - id: autopep8-diff
        - id: autopep8
        - id: isort-diff
        - id: isort
        - id: flake8
        - id: bandit
        - id: mypy
        - id: shellcheck
        - id: mdformat-check
        - id: mdformat
  ```

  By using **pyproject-pre-commit**, you can simplify your **.pre-commit-config.yaml**
  that you need only repo of **https://github.com/rcmdnk/pyproject-pre-commit**.

  These hooks uses local installation of tools, so pre-commit will use
  tools installed in your working environment.

  This can be made by `ppc` command:

  ```
  $ ppc --pre-commit > .pre-commit-config.yaml
  ```

  > \[!NOTE\]
  > If you are using poetry, run `poetry run ppc ... ` or run after `poetry shell`.

  If you already have it, add hooks w/o `repos:` by

  ```
  $ ppc --pre-commit |grep -v "^repos:" >> .pre-commit-config.yaml
  ```

  You may want to modify after adding these configurations.

  To use `ruff` instead of such as `black`, `flake8`, `isort`, add following hooks:

  ```yaml
  repos:
    - repo: https://github.com/rcmdnk/pyproject-pre-commit
      rev: v0.3.0
      hooks:
        - id: ruff-lint-diff
        - id: ruff-lint
        - id: ruff-format-diff
        - id: ruff-format
        - id: mypy
        - id: shellcheck
        - id: mdformat-check
        - id: mdformat
  ```

  This can be made by `ppc` command:

  ```
  $ ppc --pre-commit --ruff > .pre-commit-config.yaml
  ```



  `pre-commit` command is installed as dependencies of **pyproject-pre-commit** package.

  After installing **pyproject-pre-commit** package, you can run `pre-commit` command.

  First, install pre-commit hooks by:

  ```
  $ pre-commit install
  ```

  then you can run pre-commit by:

  ```
  $ pre-commit run --all-files
  ```

  > \[!NOTE\]
  > If you are using poetry, run `poetry run pre-commit ... ` or run after `poetry shell`.



  You can find ids in **.pre-commit-hooks.yaml**.

  There are ids for following tools:

  - For Python
    - [black-diff](https://black.readthedocs.io/en/stable): Just show Black result.
    - [black](https://black.readthedocs.io/en/stable): Black: The uncompromising Python code formatter.
    - [blacken-docs](https://github.com/adamchainz/blacken-docs): Run `black` on python code blocks in documentation files.
    - [autoflake-diff](https://github.com/PyCQA/autoflake): Just show autoflake result.
    - [autoflake](https://github.com/PyCQA/autoflake): autoflake removes unused imports and unused variables from Python code.
    - [autopep8-diff](https://github.com/hhatto/autopep8): Just show autopep8.
    - [autopep8](https://github.com/hhatto/autopep8): autopep8 automatically formats Python code to conform to the PEP 8 style guide.
    - [isort-diff](https://github.com/PyCQA/isort): Just show isort result.
    - [isort](https://github.com/PyCQA/isort): isort your imports, so you don't have to.
    - [flake8](https://github.com/PyCQA/flake8): `flake8` is a command-line utility for enforcing style consistency across Python projects.
      - With following plugins:
        - [flake8-pyproject](https://github.com/csachs/pyproject-flake8)
        - [flake8-annotations-complexity](https://github.com/best-doctor/flake8-annotations-complexity)
        - [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear)
        - [flake8-builtins](https://github.com/gforcada/flake8-builtins)
        - [flake8-comprehensions](https://github.com/adamchainz/flake8-comprehensions)
        - [flake8-debugger](https://github.com/jbkahn/flake8-debugger)
        - [flake8-docstrings](https://github.com/pycqa/flake8-docstrings)
        - [flake8-executable](https://github.com/xuhdev/flake8-executable)
        - [flake8-pep3101](https://github.com/gforcada/flake8-pep3101)
        - [flake8-print](https://github.com/jbkahn/flake8-print)
        - [flake8-rst-docstrings](https://github.com/peterjc/flake8-rst-docstrings)
        - [flake8-string-format](https://github.com/xZise/flake8-string-format)
        - [pep8-naming](https://github.com/PyCQA/pep8-naming)
        - [pycodestyle](https://pycodestyle.pycqa.org/en/latest/)
    - [bandit](https://github.com/PyCQA/bandit): Bandit is a tool for finding common security issues in Python code.
    - [mypy](https://www.mypy-lang.org/): Mypy is a static type checker for Python.
    - [ruff-lint-diff](https://docs.astral.sh/ruff/): Just show ruff check result.
    - [ruff-lint](https://docs.astral.sh/ruff/): Fix by ruff for lint.
    - [ruff-format-diff](https://docs.astral.sh/ruff/): Just show ruff format result.
    - [ruff-format](https://docs.astral.sh/ruff/): Format by ruff.
  - For Shell script
    - [shellcheck](https://www.shellcheck.net/): ShellCheck - A shell script static analysis tool
  - For Markdown
    - mdformat-check: Just show mdformat result.
    - [mdformat](https://mdformat.readthedocs.io/en/stable/): CommonMark compliant Markdown formatter.
      - with following plugins:
        - [mdformat-gfm](https://github.com/hukkin/mdformat-gfm)
        - [mdformat-frontmatter](https://github.com/butler54/mdformat-frontmatter)
        - [mdformat-footnote](https://github.com/executablebooks/mdformat-footnote)

  All tools are installed as dependencies of **pyproject-pre-commit** package.

  shellcheck and mdformat are given in addition to python tools
  as they can be managed by pip and most projects have README.md
  and some have shell scripts.

  For tools which can format files, there are additional ids with `-diff` or `--check`
  which show the results before modifying files.
  You can see the differences after formatting if you place these ids before ids w/o `--diff` or `--check`.



  You can set options in pyproject.toml for all tools above.

  For flake8, flake8-pyproject allows to read options from pyproject.toml

  About bandit, there is a plugin for the flake8, but plugin version does not read options from pyproject.toml even with pyproject.toml. Therefore, use bandit directly and give `-c pyproject.toml` option in the hooks.



  You can set options in pyproject.toml for all tools.

  Example options can be made by `ppc` command:

  ```
  $ ppc --pyproject >> pyproject.toml
  ```

  or

  ```
  $ ppc --pyproject --ruff >> pyproject.toml
  ```

  You may want to modify after adding these configurations.


pkgId: f165696d14e25fcd2ff31415e2ad95ccf18c646091f1dc9f839e346628b89894
name: python-pyproject-toml-format-help
arch: noarch
version: 0.0.2
epoch: 0
release: 1
summary: Development documents and examples for pyproject-toml-format
url: https://pypi.org/project/pyproject-toml-format/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyproject-toml-format-0.0.2-1.src.rpm
location_href: Packages/python-pyproject-toml-format-help-0.0.2-1.noarch.rpm
checksum_type: sha256
rpm_license:
  MIT License  Copyright (c) 2024 Zeev Rotshtein  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: bef75d58edbcb033615b180f69450ee5d3b5e413e7f7f3661c8025d9b0b331c2
name: python-pyproject2conda-help
arch: noarch
version: 0.14.0
epoch: 0
release: 1
summary: Development documents and examples for pyproject2conda
url: https://github.com/usnistgov/pyproject2conda
rpm_license: NIST-PD
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyproject2conda-0.14.0-1.src.rpm
location_href: Packages/python-pyproject2conda-help-0.14.0-1.noarch.rpm
checksum_type: sha256
description:
  <!-- markdownlint-disable MD041 -->

  [![Repo][repo-badge]][repo-link] [![Docs][docs-badge]][docs-link]
  [![PyPI license][license-badge]][license-link]
  [![PyPI version][pypi-badge]][pypi-link]
  [![Conda (channel only)][conda-badge]][conda-link]
  [![Code style: black][black-badge]][black-link]

  <!--
    For more badges, see
    https://shields.io/category/other
    https://naereen.github.io/badges/
    [pypi-badge]: https://badge.fury.io/py/pyproject2conda
  -->

  [black-badge]: https://img.shields.io/badge/code%20style-black-000000.svg
  [black-link]: https://github.com/psf/black
  [pypi-badge]: https://img.shields.io/pypi/v/pyproject2conda
  [pypi-link]: https://pypi.org/project/pyproject2conda
  [docs-badge]: https://img.shields.io/badge/docs-sphinx-informational
  [docs-link]: https://pages.nist.gov/pyproject2conda/
  [repo-badge]: https://img.shields.io/badge/--181717?logo=github&logoColor=ffffff
  [repo-link]: https://github.com/usnistgov/pyproject2conda
  [conda-badge]: https://img.shields.io/conda/v/conda-forge/pyproject2conda
  [conda-link]: https://anaconda.org/conda-forge/pyproject2conda
  [license-badge]: https://img.shields.io/pypi/l/cmomy?color=informational
  [license-link]: https://github.com/usnistgov/pyproject2conda/blob/main/LICENSE

  <!-- other links -->

  [poetry2conda]: https://github.com/dojeda/poetry2conda



  A script to convert `pyproject.toml` dependencies to `environment.yaml` files.



  The main goal of `pyproject2conda` is to provide a means to keep all basic
  dependency information, for both `pip` based and `conda` based environments, in
  `pyproject.toml`. I often use a mix of pip and conda when developing packages,
  and in my everyday workflow. Some packages just aren't available on both. If you
  use poetry, I'd highly recommend [poetry2conda].



  - Simple comment based syntax to add information to dependencies when creating
    `environment.yaml`



  This package is actively used by the author, but is still very much a work in
  progress. Please feel free to create a pull request for wanted features and
  suggestions!



  <!-- start-installation -->

  Use one of the following to install `pyproject2conda`:

  <!-- markdownlint-disable MD014 -->

  ```bash
  $ pip install pyproject2conda
  ```

  or

  ```bash
  $ conda install -c conda-forge pyproject2conda
  ```

  [rich]: https://github.com/Textualize/rich
  [shellingham]: https://github.com/sarugaku/shellingham
  [typer]: https://github.com/tiangolo/typer

  If using pip, to install with [rich] and [shellingham] support, either install
  them your self, or use:

  ```bash
  $ pip install pyproject2conda[all]
  ```

  <!-- markdownlint-enable MD014 -->

  The conda-forge distribution of [typer] (which `pyproject2conda` uses) installs
  [rich] and [shellingham] by default.

  <!-- end-installation -->





  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog
  import sys

  sys.path.insert(0, ".")
  from tools.cog_utils import wrap_command, get_pyproject, run_command, cat_lines
  sys.path.pop(0)
  ]]] -->
  <!-- [[[end]]] -->

  Consider the `toml` file
  [test-pyproject.toml](https://github.com/usnistgov/pyproject2conda/blob/main/tests/data/test-pyproject.toml).

  <!-- prettier-ignore-start -->
  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog cat_lines(begin=None, end="[tool.pyproject2conda]", begin_dot=False)]]] -->

  ```toml
  [project]
  name = "hello"
  requires-python = ">=3.8,<3.11"
  dependencies = [
  "athing", #
  "bthing",
  "cthing; python_version < '3.10'",
  ]

  [project.optional-dependencies]
  test = [
  "pandas", #
  "pytest",
  ]
  dev-extras = ["matplotlib"]
  dev = ["hello[test]", "hello[dev-extras]"]
  dist-pypi = [

  "setuptools",
  "build",
  ]

  [tool.pyproject2conda.dependencies]
  athing = { pip = true }
  bthing = { skip = true, packages = "bthing-conda" }
  cthing = { channel = "conda-forge" }
  pytest = { channel = "conda-forge" }
  matplotlib = { skip = true, packages = [
  "additional-thing; python_version < '3.9'",
  "conda-matplotlib"
  ] }
  build = { channel = "pip" }


  ```

  <!-- [[[end]]] -->
  <!-- prettier-ignore-end -->

  Note the table `[tool.pyproject2conda.dependencies]`. This table takes as keys
  the dependency names from `project.dependencies` or
  `project.optional-dependencies`, and as values a mapping with keys:

  - `pip`: if `true`, specify install via pip in `environment.yaml` file
  - `skip`: if `true`, skip the dependency
  - `channel`: conda-channel to use for this dependency
  - `packages`: Additional packages to include in `environment.yaml` file

  So, if we run the following, we get:

  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog run_command("pyproject2conda yaml -f tests/data/test-pyproject.toml")]]] -->

  ```bash
  $ pyproject2conda yaml -f tests/data/test-pyproject.toml
  channels:
    - conda-forge
  dependencies:
    - bthing-conda
    - conda-forge::cthing
    - pip
    - pip:
        - athing
  ```

  <!-- [[[end]]] -->

  By default, the python version is not included in the resulting conda output. To
  include the specification from `pyproject.toml`, use `--python-include infer`
  option:

  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog run_command("pyproject2conda yaml -f tests/data/test-pyproject.toml --python-include infer")]]] -->

  ```bash
  $ pyproject2conda yaml -f tests/data/test-pyproject.toml --python-include infer
  channels:
    - conda-forge
  dependencies:
    - python>=3.8,<3.11
    - bthing-conda
    - conda-forge::cthing
    - pip
    - pip:
        - athing
  ```

  <!-- [[[end]]] -->



  To specify a specific value of python in the output, pass a value with:

  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog run_command("pyproject2conda yaml -f tests/data/test-pyproject.toml --python-include python=3.9")]]] -->

  ```bash
  $ pyproject2conda yaml -f tests/data/test-pyproject.toml --python-include \
      python=3.9
  channels:
    - conda-forge
  dependencies:
    - python=3.9
    - bthing-conda
    - conda-forge::cthing
    - pip
    - pip:
        - athing
  ```

  <!-- [[[end]]] -->

  Note that this is for including python in the resulting environment file.

  You can also constrain packages by the python version using the standard
  `pyproject.toml` syntax `"...; python_version < 'some-version-number'"`. For is
  parsed for both the pip packages and conda packages:

  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog run_command("pyproject2conda yaml -f tests/data/test-pyproject.toml --python-version 3.10")]]] -->

  ```bash
  $ pyproject2conda yaml -f tests/data/test-pyproject.toml --python-version 3.10
  channels:
    - conda-forge
  dependencies:
    - bthing-conda
    - pip
    - pip:
        - athing
  ```

  <!-- [[[end]]] -->

  It is common to want to specify the python version and include it in the
  resulting environment file. You could, for example use:

  <!-- markdownlint-disable MD013 -->
  <!-- [[[cog run_command("pyproject2conda yaml -f tests/data/test-pyproject.toml --python-version 3.10 --python-include python=3.10")]]] -->

  ```bash
  $ pyproject2conda yaml -f tests/data/test-pyproject.toml --python-version 3.10 \
      --python-include python=3.10
  channels:
    - conda-forge
  dependencies:
    - python=3.10
    - bthing-conda
    - pip
    - pip:
        - athing
  ```

  <!-- [[[end]]] -->
  <!-- markdownlint-enable MD013 -->

  Because this is common, you can also just pass the option `-p/--python`:

  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog run_command("pyproject2conda yaml -f tests/data/test-pyproject.toml --python 3.10")]]] -->

  ```bash
  $ pyproject2conda yaml -f tests/data/test-pyproject.toml --python 3.10
  channels:
    - conda-forge
  dependencies:
    - python=3.10
    - bthing-conda
    - pip
    - pip:
        - athing
  ```

  <!-- [[[end]]] -->

  Passing `--python="default"` will extract the python version from
  `.python-version` file. Passign `--python` value `"lowest"` or `"highest"` will
  extract the lowest or highest python version, respectively, from the
  `project.classifiers` table of the `pyproject.toml` file.



  You can also add additional conda and pip dependencies with the flags
  `-d/--deps` and `-r/--reqs`, respectively. Adding the last example:

  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog run_command("pyproject2conda yaml -f tests/data/test-pyproject.toml -d dep -r req")]]] -->

  ```bash
  $ pyproject2conda yaml -f tests/data/test-pyproject.toml -d dep -r req
  channels:
    - conda-forge
  dependencies:
    - bthing-conda
    - conda-forge::cthing
    - dep
    - pip
    - pip:
        - athing
        - req
  ```

  <!-- [[[end]]] -->

  These will also obey dependencies like `dep:python_version<={version}`. Pass the
  flags multiple times to pass multiple dependencies.



  The name `pyproject2conda` can be a bit long to type. For this reason, the
  package also ships with the alias `p2c`, which has the exact same functionality.
  Additionally, the subcommands can be shortened to a unique match:

  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog run_command("p2c y -f tests/data/test-pyproject.toml --python 3.10")]]] -->

  ```bash
  $ p2c y -f tests/data/test-pyproject.toml --python 3.10
  channels:
    - conda-forge
  dependencies:
    - python=3.10
    - bthing-conda
    - pip
    - pip:
        - athing
  ```

  <!-- [[[end]]] -->

  You can also call with `python -m pyproject2conda`.



  Given the extra dependency:

  <!-- prettier-ignore-start -->
  <!-- markdownlint-disable MD013 -->
  <!-- [[[cog cat_lines(begin="[project.optional-dependencies]", end="[tool.pyproject2conda.dependencies]")]]] -->

  ```toml

  [project.optional-dependencies]
  test = [
  "pandas", #
  "pytest",
  ]
  dev-extras = ["matplotlib"]
  dev = ["hello[test]", "hello[dev-extras]"]
  dist-pypi = [

  "setuptools",
  "build",
  ]


  ```

  <!-- [[[end]]] -->
  <!-- markdownlint-restore -->
  <!-- prettier-ignore-end -->

  and running the following gives:

  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog run_command("pyproject2conda yaml -f tests/data/test-pyproject.toml -e test")]]] -->

  ```bash
  $ pyproject2conda yaml -f tests/data/test-pyproject.toml -e test
  channels:
    - conda-forge
  dependencies:
    - bthing-conda
    - conda-forge::cthing
    - conda-forge::pytest
    - pandas
    - pip
    - pip:
        - athing
  ```

  <!-- [[[end]]] -->

  `pyproject2conda` also works with self referenced dependencies:

  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog run_command("pyproject2conda yaml -f tests/data/test-pyproject.toml -e dev")]]] -->

  ```bash
  $ pyproject2conda yaml -f tests/data/test-pyproject.toml -e dev
  channels:
    - conda-forge
  dependencies:
    - additional-thing
    - bthing-conda
    - conda-forge::cthing
    - conda-forge::pytest
    - conda-matplotlib
    - pandas
    - pip
    - pip:
        - athing
  ```

  <!-- [[[end]]] -->



  `pyproject2conda` also support the [PEP 735](https://peps.python.org/pep-0735/)
  `dependency-groups` table. For example, if we have the follinging

  <!-- prettier-ignore-start -->
  <!-- markdownlint-disable MD013 -->
  <!-- [[[cog cat_lines(begin="[dependency-groups]", end="[tool.pyproject2conda.dependencies]", path="tests/data/test-pyproject-groups.toml")]]] -->

  ```toml

  [dependency-groups]
  test = ["pandas", "pytest"]
  dev-extras = ["matplotlib"]
  dev = [{ include-group = "test" }, { include-group = "dev-extras" }]
  dist-pypi = [

  "setuptools",
  "build",
  ]


  ```

  <!-- [[[end]]] -->
  <!-- markdownlint-restore -->
  <!-- prettier-ignore-end -->

  Then, we can build a requirement file, specifying groups with `-g/--group` flag.

  <!-- markdownlint-disable-next-line MD013 -->
    <!-- [[[cog run_command("pyproject2conda yaml -f tests/data/test-pyproject-groups.toml --group dev")]]] -->

  ```bash
  $ pyproject2conda yaml -f tests/data/test-pyproject-groups.toml --group dev
  channels:
    - conda-forge
  dependencies:
    - additional-thing
    - bthing-conda
    - conda-forge::cthing
    - conda-forge::pytest
    - conda-matplotlib
    - pandas
    - pip
    - pip:
        - athing
  ```

  <!-- [[[end]]] -->

  The advantage of using `dependency-groups` as opposed to
  `package.optional-dependencies` is that they work for non-package projects, and
  are not included in the metadata of distributed packages.



  By default, `pyproject2conda` includes a header in most output files to note
  that the files are auto generated. No header is included by default when writing
  to standard output. To override this behavior, pass `--header/--noheader`:

  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog run_command("pyproject2conda yaml -f tests/data/test-pyproject.toml --header")]]] -->

  ```bash
  $ pyproject2conda yaml -f tests/data/test-pyproject.toml --header









  channels:
    - conda-forge
  dependencies:
    - bthing-conda
    - conda-forge::cthing
    - pip
    - pip:
        - athing
  ```

  <!-- [[[end]]] -->



  `pyproject2conda` can also be used within python:

  ```pycon
  >>> from pyproject2conda.requirements import ParseDepends
  >>> p = ParseDepends.from_path("./tests/data/test-pyproject.toml")


  >>> print(p.to_conda_yaml(python_include="infer").strip())
  channels:
    - conda-forge
  dependencies:
    - python>=3.8,<3.11
    - bthing-conda
    - conda-forge::cthing
    - pip
    - pip:
        - athing


  >>> print(p.to_conda_yaml(extras="test").strip())
  channels:
    - conda-forge
  dependencies:
    - bthing-conda
    - conda-forge::cthing
    - conda-forge::pytest
    - pandas
    - pip
    - pip:
        - athing

  ```



  `pyproject2conda` can be configured with a `[tool.pyproject2conda]` section in
  `pyproject.toml`. To specify conda channels use:

  <!-- prettier-ignore-start -->
  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog cat_lines(begin="[tool.pyproject2conda]", end=None)]]] -->

  ```toml

  [tool.pyproject2conda]
  channels = ['conda-forge']

  template_python = "py{py}-{env}"
  template = "{env}"
  style = "yaml"

  python = ["3.10"]

  user_config = "config/userconfig.toml"







  default_envs = ["test", "dev", "dist-pypi"]

  [tool.pyproject2conda.envs.base]
  style = ["requirements"]





  [tool.pyproject2conda.envs."test-extras"]
  extras = ["test"]
  style = ["yaml", "requirements"]

  [[tool.pyproject2conda.overrides]]
  envs = ['test-extras', "dist-pypi"]
  skip_package = true

  [[tool.pyproject2conda.overrides]]
  envs = ["test", "test-extras"]
  python = ["3.10", "3.11"]
  ```

  <!-- [[[end]]] -->
  <!-- prettier-ignore-end -->

  Note that specifying channels at the command line overrides
  `tool.pyproject2conda.channels`.

  You can also specify environments without the package dependences (those under
  `project.dependencies`) by passing the `--skip-package` flag. This is useful for
  defining environments for build, etc, that do not require the package be
  installed. For example:

  <!-- prettier-ignore-start -->
  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog cat_lines(begin="dist-pypi = [", end="[tool.pyproject2conda]")]]] -->

  ```toml

  dist-pypi = [

  "setuptools",
  "build",
  ]

  [tool.pyproject2conda.dependencies]
  athing = { pip = true }
  bthing = { skip = true, packages = "bthing-conda" }
  cthing = { channel = "conda-forge" }
  pytest = { channel = "conda-forge" }
  matplotlib = { skip = true, packages = [
  "additional-thing; python_version < '3.9'",
  "conda-matplotlib"
  ] }
  build = { channel = "pip" }


  ```

  <!-- [[[end]]] -->
  <!-- prettier-ignore-end -->

  These can be accessed using either of the following:

  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog run_command("pyproject2conda yaml -f tests/data/test-pyproject.toml -e dist-pypi --skip-package")]]] -->

  ```bash
  $ pyproject2conda yaml -f tests/data/test-pyproject.toml -e dist-pypi --skip- \
      package
  channels:
    - conda-forge
  dependencies:
    - setuptools
    - pip
    - pip:
        - build
  ```

  <!-- [[[end]]] -->

  or

  ```pycon
  >>> from pyproject2conda.requirements import ParseDepends
  >>> p = ParseDepends.from_path("./tests/data/test-pyproject.toml")


  >>> print(p.to_conda_yaml(extras="dist-pypi", skip_package=True).strip())
  channels:
    - conda-forge
  dependencies:
    - setuptools
    - pip
    - pip:
        - build

  ```



  `pyproject2conda` provides a means to create all needed environment/requirement
  files in one go. We configure the environments using the `pyproject.toml` files
  in the `[tool.pyproject2conda]` section. For example, example the configuration:

  <!-- prettier-ignore-start -->
  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog cat_lines(begin="[tool.pyproject2conda]", end=None)]]] -->

  ```toml

  [tool.pyproject2conda]
  channels = ['conda-forge']

  template_python = "py{py}-{env}"
  template = "{env}"
  style = "yaml"

  python = ["3.10"]

  user_config = "config/userconfig.toml"







  default_envs = ["test", "dev", "dist-pypi"]

  [tool.pyproject2conda.envs.base]
  style = ["requirements"]





  [tool.pyproject2conda.envs."test-extras"]
  extras = ["test"]
  style = ["yaml", "requirements"]

  [[tool.pyproject2conda.overrides]]
  envs = ['test-extras', "dist-pypi"]
  skip_package = true

  [[tool.pyproject2conda.overrides]]
  envs = ["test", "test-extras"]
  python = ["3.10", "3.11"]
  ```

  <!-- [[[end]]] -->
  <!-- prettier-ignore-end -->

  run through the command `pyproject2conda project` (or `p2c project`):

  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog run_command("p2c project -f tests/data/test-pyproject.toml --dry ", wrapper="bash", bounds=(None, 45))]]] -->

  ```bash
  $ p2c project -f tests/data/test-pyproject.toml --dry


  athing
  bthing
  cthing;python_version<"3.10"


  channels:
    - conda-forge
  dependencies:
    - python=3.10
    - conda-forge::pytest
    - pandas


  channels:
    - conda-forge
  dependencies:
    - python=3.11
    - conda-forge::pytest
    - pandas


  pandas
  pytest


  channels:
    - conda-forge
  dependencies:
    - python=3.10
    - bthing-conda
    - conda-forge::pytest
    - pandas
    - pip
    - pip:
        - athing


  channels:
    - conda-forge
  dependencies:
    - python=3.11
    - bthing-conda
    - conda-forge::pytest

   ...
  ```

  <!-- [[[end]]] -->

  Note that here, we have used the `--dry` option to just print the output. In
  production, you'd omit this flag, and files according to `--template` and
  `--template-python` would be used.

  The options under `[tool.pyproject2conda]` follow the command line options
  (replace `-` with `_`). To specify an environment, you can either use the
  `[tool.pyproject.envs."environment-name"]` method, or, if the environment is the
  same as an `project.optional-dependencies` or `dependency-grroups`, you can just
  specify it under `tool.pyproject2conda.default_envs`:

  ```toml
  [tool.pyproject2conda]

  default_envs = ["test"]

  ```

  is equivalent to

  ```toml
  [tool.pyproject2conda.envs.test]
  extras = ["tests"]

  ```

  To specify a conda environment (`yaml`) file, pass `style = "yaml"` (the
  default). To specify a requirements file, pass `style = "requirements"`. You can
  specify both to make both.

  Options in a given `tool.pyproject2conda.envs."environment-name"` section
  override those at the `tool.pyproject2conda` level. So, for example:

  <!-- prettier-ignore-start -->
  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog cat_lines(begin='[tool.pyproject2conda.envs."test-extras"]', end='[[tool.pyproject2conda.overrides]]', begin_dot=False)]]] -->

  ```toml

  [tool.pyproject2conda.envs."test-extras"]
  extras = ["test"]
  style = ["yaml", "requirements"]


  ```

  <!-- [[[end]]] -->
  <!-- prettier-ignore-end -->

  will override use the two styles instead of the default of `yaml`.

  You can also override options for multiple environments using the
  `[[tools.pyproject2conda.overrides]]` list. Just specify the override option(s)
  and the environments to apply them to. For example, above we specify that the
  base option is `False` for envs `test-extras` and `dist-pypi`, and that the
  python version should be `3.10` and `3.11` for envs `test` and `test-extras`.
  Note that each "overrides" table must specify the options to be overridden, and
  the environments that these overrides apply to. Also, note that subsequenct
  overrides override previous overrides/options (last option wins).

  So in all, options are picked up, in order, from the overrides list, then the
  environment definition, and finally, from the default options.

  You can also define "user defined" configurations. This can be done through the
  option `--user-config`. This allows you to define your own environments outside
  of the (most likely source controlled) `pyproject.toml` file. For example, we
  have the option `user_config=config/userconfig.toml`.

  <!-- prettier-ignore-start -->
  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog cat_lines(path="./tests/data/config/userconfig.toml", begin=None, end=None)]]] -->

  ```toml
  [tool.pyproject2conda.envs."user-dev"]
  extras_or_groups = ["dev", "dist-pypi"]
  deps = ["extra-dep"]
  reqs = ["extra-req"]
  name = "hello"
  ```

  <!-- [[[end]]] -->
  <!-- prettier-ignore-end -->

  Note that the full path of this file is note that the path of the `user_conifg`
  file is relative to them`pyproject.toml` file. So, if the `pyproject.toml` file
  is at `a/path/pyproject.toml`, the path of user configuration files will be
  `a/path/config/userconfig.toml`. We then can run the following:

  <!-- prettier-ignore-start -->
  <!-- markdownlint-disable-next-line MD013 -->
  <!-- [[[cog run_command("p2c project -f tests/data/test-pyproject.toml --dry --envs user-dev", wrapper="bash")]]] -->
  ```bash
  $ p2c project -f tests/data/test-pyproject.toml --dry --envs user-dev


  name: hello
  channels:
    - conda-forge
  dependencies:
    - python=3.10
    - bthing-conda
    - conda-forge::pytest
    - conda-matplotlib
    - extra-dep
    - pandas
    - setuptools
    - pip
    - pip:
        - athing
        - build
        - extra-req
  ```

  <!-- [[[end]]] -->
  <!-- prettier-ignore-end -->



  See
  [command line interface documentation](https://pages.nist.gov/pyproject2conda/reference/cli.html#)
  for details on the commands and options.

  <!-- markdownlint-disable MD013 -->
  <!-- prettier-ignore-start -->
  <!-- [cog
    import os
    os.environ["P2C_RICH_CLICK_MAX_WIDTH"] = "90"

    run_command("pyproject2conda --help", wrapper="bash")

    cmds = [
      "list",
      "yaml",
      "requirements",
      "project",
      "conda-requirements",
      "json"
    ]

    for cmd in cmds:
      print(f"#### {cmd}\n")
      run_command(f"pyproject2conda {cmd} --help", wrapper="bash")

  ] -->

  <!-- [end] -->
  <!-- prettier-ignore-end -->

  <!-- markdownlint-enable MD013 -->



  The application `pyproject2conda` is used in the development of the following
  packages:

  - [`cmomy`](https://github.com/usnistgov/cmomy)
  - [`thermoextrap`](https://github.com/usnistgov/thermoextrap)
  - [`tmmc-lnpy`](https://github.com/usnistgov/tmmc-lnpy)
  - [`module-utilities`](https://github.com/usnistgov/module-utilities)
  - [`analphipy`](https://github.com/conda-forge/analphipy-feedstock)
  - `pyproject2conda` itself!

  <!-- end-docs -->



  See the [documentation][docs-link] for a look at `pyproject2conda` in action.



  This is free software. See [LICENSE][license-link].



  The author can be reached at <wpk@nist.gov>.



  This package was created using
  [Cookiecutter](https://github.com/audreyr/cookiecutter) with the
  [usnistgov/cookiecutter-nist-python](https://github.com/usnistgov/cookiecutter-nist-python)
  template.

  <!--  LocalWords:  conda subcommands
   -->
  <!-- markdownlint-disable MD024 -->
  <!-- markdownlint-disable MD013 -->
  <!-- prettier-ignore-start -->



  Changelog for `pyproject2conda`



  [changelog.d]: https://github.com/usnistgov/pyproject2conda/tree/main/changelog.d

  See the fragment files in [changelog.d]

  <!-- prettier-ignore-end -->

  <!-- markdownlint-enable MD013 -->

  <!-- scriv-insert-here -->





  - `--python` flag now accepts options `default`, `all`, `lowest`, and `highest`.
    `default` sets python to value found in `.python-version` file in current
    directory. Other options extract values entries of form
    `"Programming Language :: Python :: 3.10"'`, etc,from
    `pyproject.toml:project.classifiers` table.

    - `all`: All specified python version
    - `lowest`: Lowest python version
    - `highest`: Highest python version

  - Added `--reqs-ext` and `--yaml-ext` options.





  - Allow `overrides` for all options.
  - `overrides` override environment options.





  - Removed comments based (`# p2c: ...`) support. Specify changes with
    `tool.pyproject2conda.dependencies` table only. This greatly simplifies the
    code, and has become the primary way to use the `pyproject2conda`.



  - Added [PEP 735](https://peps.python.org/pep-0735/) support. This includes
    adding option `--group` to the cli, and `groups` key to
    `tools.pyproject2conda.envs....` tables. There is also an option
    `--extra-or-group` (or `extras_or_groups` in pyproject.toml) that will first
    try to find dependencies from "extras" and then from "groups".



  - Passing no extras to an environment now defaults to no added extras or groups.
    Old behavior (to default to the extra with the same name as the environment)
    was lead to complications with support of `dependency-groups`. Explicitly pass
    the extra or group if to get the old behavior.
  - `default_envs` now passed the environment name as `extras_or_groups`.
    Therefore, if the name of the environment is an extra, it will be used.
    Otherwise, it will be from a group of that name.

  - Removed option `--base/--no-base`. Replaced with `--skip-package`. Default is
    to include package dependencies. Pass `--skip-package` (or
    `skip_package = true` in `pyproject.toml`) to skip package dependencies.





  - Can now access "build-system.requires" as an extra. This can be useful for
    creating isolated environments to build a package.



  - Can now specify `pip` as a conda dependency. This is needed for cases that
    there are no pip dependencies in the environment, but you want it there for
    installing local packages. This may be the case if using `conda-lock` on an
    environment. Note that, much like python is always first in the dependency
    list, pip is always last.





  - Can now specify conda changes using `tool.pyproject2conda.dependencies` table.
    This is an alternative to using `# p2c:` comments.
  - Refactored code. Split `parser` to `requirements` and `overrides`. Also
    cleaned up the parsing logic to hopefully make future changes simpler.





  - Default is now to remove whitespace from dependencies. For example, the
    dependency `module > 0.1` will become `module>0.1`. To override this
    behaviour, pass the option `--no-remove-whitespace`.
  - Now supports python version `>3.8,<=3.12`
  - Can now specify `extras = false` in pyprojec.toml to skip any extras. The
    default (`extras = true`) is the same as `extras = [env_name]` where
    `env_name` is the name of the environment (e.g.,
    `tool.pyproject2conda.envs.env_name`).





  - Added option to either raise error, or print message for environments with no
    dependencies.



  - pyproject2conda now works with `pyproject.toml` files with no dependencies.





  - Now use `logging` to print info output.



  - cli now uses `typer`. Since the program was already typed, this simplifies the
    interface.
  - Program can now be called with any of `pyproject2conda`, `p2c`, or
    `python -m pyproject2conda`.
  - Added cli options to web documentation.
  - Fixed small typos and typing issues.
  - The cli option `--python-include` now requires an argument. This is due to
    `typer` not liking options with zero or one arguments. Instead of the bare
    flag `--python-include` including the python spec from `pyproject.toml`, you
    have to pass `--python-include infer` to get that behavior.
  - Added extra `all` to pip install options. The default is to not include `rich`
    or `shellingham`. Using `pip install pyproject2conda[all]` includes these
    optional packages. Note that the conda-forge recipe is based on the plain
    install (i.e., no `rich` or `shellingham`). However, the conda-froge recipe
    for `typer` does include these. That means, if you want to install
    `pyproject2conda` without the optional extras, you'll have to use pip.





  - Fixed edge case where `--overwrite=check` and have a `user_config`. Now when
    using `p2c project` with a `user_config` and `overwrite=check`, the timestamp
    of the output file will be compared to both the `filename=pyproject.toml` and
    `user_config`.





  - Added `project` subcommand. This uses a configuration in `pyproject.toml` to
    build multiple enivonments in one go.
  - Added `--deps` and `--reqs` flags to include extra conda and pip requirements.
  - Added `--overwrite` to check if output file exists.
  - Now (correctly) using rich_click.
  - Added tests for all new cases, and some edge cases.





  - Added `--sort/--no-sort` flag to cli. Default is to sort dependencies. This
    fixes issues with changing order in `pyproject.toml` leading to different yaml
    files.



  - Changed structure of the repo to better support some third party tools.
  - Moved nox environments from `.nox` to `.nox/{project-name}/envs`. This fixes
    issues with ipykernel giving odd names for locally installed environments.
  - Moved repo specific dot files to the `config` directory (e.g.,
    `.noxconfig.toml` to `config/userconfig.toml`). This cleans up the top level
    of the repo.
  - added some support for using `nbqa` to run mypy/pyright on notebooks.
  - Added ability to bootstrap development environment using pipx. This should
    simplify initial setup. See Contributing for more info.

  - Main repo now on usnistgov.
  This software was developed by employees of the National Institute of Standards
  and Technology (NIST), an agency of the Federal Government. Pursuant to title 17
  United States Code Section 105, works of NIST employees are not subject to
  copyright protection in the United States and are considered to be in the public
  domain. Permission to freely use, copy, modify, and distribute this software and
  its documentation without fee is hereby granted, provided that this notice and
  disclaimer of warranty appears in all copies.

  THE SOFTWARE IS PROVIDED 'AS IS' WITHOUT ANY WARRANTY OF ANY KIND, EITHER
  EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY
  THAT THE SOFTWARE WILL CONFORM TO SPECIFICATIONS, ANY IMPLIED WARRANTIES OF
  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND FREEDOM FROM
  INFRINGEMENT, AND ANY WARRANTY THAT THE DOCUMENTATION WILL CONFORM TO THE
  SOFTWARE, OR ANY WARRANTY THAT THE SOFTWARE WILL BE ERROR FREE. IN NO EVENT
  SHALL NIST BE LIABLE FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, DIRECT,
  INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF, RESULTING FROM, OR
  IN ANY WAY CONNECTED WITH THIS SOFTWARE, WHETHER OR NOT BASED UPON WARRANTY,
  CONTRACT, TORT, OR OTHERWISE, WHETHER OR NOT INJURY WAS SUSTAINED BY PERSONS OR
  PROPERTY OR OTHERWISE, AND WHETHER OR NOT LOSS WAS SUSTAINED FROM, OR AROSE OUT
  OF THE RESULTS OF, OR USE OF, THE SOFTWARE OR SERVICES PROVIDED HEREUNDER.

  Distributions of NIST software should also include copyright and licensing
  statements of any third-party software that are legally bundled with the code in
  compliance with the conditions of those licenses.


pkgId: c220102616457139405b3ab688555ecd907312a02b8594c2faaa81a2bd2d4f1e
name: python-pyprune-help
arch: noarch
version: 0.1.4
epoch: 0
release: 1
summary: Development documents and examples for pyprune
url: https://pypi.org/project/pyprune/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyprune-0.1.4-1.src.rpm
location_href: Packages/python-pyprune-help-0.1.4-1.noarch.rpm
checksum_type: sha256
description:
  Backtracking algorithm for solving constraint satisfaction problems.

  Offers a `Backtracking` class that implements a backtracking algorithm. The class is general purpose and can be used to solve a general constraint satisfaction puzzle in a grid. Users should inherit from this class and add the rules of the problem.


  We will use Sudoku as an example to illustrate the usage of this package. If we are given a Sudoku puzzle
  ```python
  sudoku = [
      [0, 0, 0, 0, 7, 5, 4, 0, 0],
      [0, 0, 0, 0, 0, 0, 0, 0, 8],
      [0, 8, 0, 1, 9, 0, 0, 0, 0],
      [3, 0, 0, 0, 0, 1, 0, 6, 0],
      [0, 0, 0, 0, 0, 0, 0, 3, 4],
      [0, 0, 0, 0, 6, 8, 1, 7, 0],
      [2, 0, 4, 0, 0, 0, 6, 0, 3],
      [9, 0, 0, 0, 0, 0, 0, 2, 0],
      [5, 3, 0, 2, 0, 0, 0, 0, 0],
  ]
  ```
  where `0` means that the cell is unknown, we represent the puzzle by a **choices matrix** `cm`. This is a matrix where each cell contains the set of elements that could possibly be in that cell. For example, `cm[0, 0] = {1, 2, 3, 4, 5, 6, 7, 8, 9}` and `cm[0, 4] = {7}` (actually, `cm[i, j]` is an `int` representing the set, see an explanation of this below). Throughout the backtracking algorithm (offered by the `Backtracking` class), each cell in this choices matrix gets pruned, until each cell contains only one value.

  The user has to implement a class representing the problem that inherits from `Backtracking`. In this class, the user should add the rules of how should cells be pruned, i.e. the rules of the specific puzzle being solved.

  Strictly speaking, `cm[i, j]` is not a set but an integer representing that set. The binary representation of the integer has 1s at the indices of the elements in the set. For example, the integer `5` has binary representation `101`, which means that the set `{0, 2}` is represented by `5`. The advantage of this is that we can perform the required set operations with bit tricks, which is much faster than using Python sets.



  See `pyprune/examples/sudoku.py`.

  **Step 1.** Implement a class with the rules of the puzzle. To do so, implement a class inheriting from `Backtracking`. Override `prune` and optionally `expand`.
  ```python
  class Sudoku(Backtracking):
      """A class representing the Sudoku puzzle solver.

      Inherits from the `Backtracking` class.

      Attributes:
          cm (Choices): The initial choices matrix representing the grid.

      Methods:
          prune(cm: Choices) -> Optional[Choices]: Applies the rules
              of Sudoku to the choices matrix.
      """

      @staticmethod
      def prune(cm: Choices) -> Choices | None:
          """Applies the rules of Sudoku.

          If a cell (i, j) has value x, then
          - remove x from the other cells in the same row
          - remove x from the other cells in the same column
          - remove x from the other cells in the same box

          Args:
              cm (Choices): The choices matrix representing the grid.

          Returns:
              Choices | None: The updated choices matrix after applying
                  the Sudoku rules.
          """
          cm = np.copy(cm)
          for i in range(9):
              for j in range(9):
                  c = cm[i, j]
                  if c and c & (c - 1) == 0:
                      mask = ~c
                      u = (i // 3) * 3
                      v = (j // 3) * 3
                      cm[i, :] &= mask
                      cm[:, j] &= mask
                      cm[u : u + 3, v : v + 3] &= mask
                      cm[i, j] = c
          return cm
  ```


  **Step 2.** Define a starting choices matrix.
  ```python
  cm = np.where(sudoku, 2**sudoku, (2**10 - 2)*np.ones((9, 9))).astype(np.int32)
  ```

  **Step 3.** Instantiate problem class with starting choices matrix.
  ```python
  problem = Sudoku(cm)
  ```

  **Step 4.** Find solutions of the problem. Here is when the backtracking algorithm is called.
  ```python
  solution = problem.solution()
  print(solution)
  '''
  solution =
  [[6 9 3 8 7 5 4 1 2]
   [1 4 5 6 3 2 7 9 8]
   [7 8 2 1 9 4 3 5 6]
   [3 5 7 4 2 1 8 6 9]
   [8 1 6 9 5 7 2 3 4]
   [4 2 9 3 6 8 1 7 5]
   [2 7 4 5 1 9 6 8 3]
   [9 6 8 7 4 3 5 2 1]
   [5 3 1 2 8 6 9 4 7]]
  '''
  ```

rpm_license:
  MIT License  Copyright (c) 2024 Miguel Barbosa Pereira  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: d7548fc700a87ed046680aeb9ba1900149ac6e10a89ca23386a4f4cc6d65570a
name: python-pypsbuilder-help
arch: noarch
version: 2.5.1
epoch: 0
release: 1
summary: Development documents and examples for pypsbuilder
url: https://github.com/ondrolexa/pypsbuilder
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pypsbuilder-2.5.1-1.src.rpm
location_href: Packages/python-pypsbuilder-help-2.5.1-1.noarch.rpm
checksum_type: sha256
description:
  ![master](https://github.com/ondrolexa/pypsbuilder/actions/workflows/master.yml/badge.svg)
  [![Documentation Status](https://readthedocs.org/projects/pypsbuilder/badge/?version=latest)](https://pypsbuilder.readthedocs.io/en/latest/?badge=latest)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/ondrolexa/pypsbuilder/blob/master/LICENSE)
  [![GitHub release (latest by date)](https://img.shields.io/github/v/release/ondrolexa/pypsbuilder)](https://github.com/ondrolexa/pypsbuilder/releases/latest)
  [![Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social&url=https%3A%2F%2Fgithub.com%2Fondrolexa%2Fpypsbuilder)](https://twitter.com/intent/tweet?text=Wow:&url=https%3A%2F%2Fgithub.com%2Fondrolexa%2Fpypsbuilder)

  Not that simplistic THERMOCALC front-end for constructing and visualizations of P-T, T-X and P-X pseudosections



  Easiest way to install **pypsbuilder** is to use pip:

      pip install pypsbuilder

  or if you downloaded pypsbuilder repository, run in unzipped folder:

      pip install .



  You can install latest version from master branch on GitHub:

      pip install https://github.com/ondrolexa/pypsbuilder/archive/master.zip



  To upgrade an already installed **pypsbuilder** to the latest release:

      pip install --upgrade pypsbuilder

  or to latest master version:

      pip install --upgrade https://github.com/ondrolexa/pypsbuilder/archive/master.zip



   Create environment from the included `environment.yml` file:

      conda env create -f environment.yml

  or

      mamba env create -f environment.yml

  Then activate the new environment:

      conda activate pyps

  or

      mamba activate pyps



  Check documentation and tutorials on RTD [https://pypsbuilder.readthedocs.io/en/latest/](https://pypsbuilder.readthedocs.io/en/latest/)



  pypsbuilder is free software: you can redistribute it and/or modify it under the terms of the MIT License. A copy of this license is provided in ``LICENSE`` file.


pkgId: 5c5247a69071738f74639b5c6b89a0e431be82410337088d6e3c9d461bb542ba
name: python-pypst-help
arch: noarch
version: 0.3.0
epoch: 0
release: 1
summary: Development documents and examples for pypst
url: https://github.com/tilman151/pypst
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pypst-0.3.0-1.src.rpm
location_href: Packages/python-pypst-help-0.3.0-1.noarch.rpm
checksum_type: sha256
description:
  Declarative Typst in Python with Pandas data frame support.

  Pypst helps you dynamically generate [Typst](https://typst.app) code directly in Python. No manual string manipulation required.
  It has two major use cases:

  - Generating full Typst documents to be rendered as PDFs
  - Generating and styling Typst tables from Pandas data frames to be included in another Typst document

  Pypst produces human-readable Typst code that you can modify and extend.
  It will not compile Typst code for you, but you can either use the [Typst compiler](https://github.com/typst/typst/releases) to do so in the command line or install the [Typst Python package](https://pypi.org/project/typst/).

  ![Example script and output](docs/examples/example.png)



  Pypst is available on PyPI and can be installed via pip.

  ```bash
  pip install pypst
  ```



  Pypst contains classes that represent Typst elements.
  You can create a Typst document by instantiating these classes and nesting them as needed.

  ```pycon
  >>> import pypst
  >>> heading = pypst.Heading("My Heading", level=1)
  >>> itemize = pypst.Itemize(["First item", "Second item", "Third item"])

  ```

  Each of these classes has a `render` method that returns the Typst code as a string.

  ```pycon
  >>> print(heading.render())
  = My Heading
  >>> print(itemize.render())
  - First item
  - Second item
  - Third item

  ```

  If you want to combine multiple elements into a single document, you can use the `Document` class.
  You can even add imports for other Typst files or packages.

  ```pycon
  >>> document = pypst.Document([heading, itemize])
  >>> document.add_import("utils.typ")
  >>> print(document.render())

  <BLANKLINE>
  = My Heading
  <BLANKLINE>
  - First item
  - Second item
  - Third item

  ```

  The output of the `render` method can be written to a `.typ` file for compilation.
  The [documentation](https://krokotsch.eu/pypst) contains more extensive tutorials on generating [documents](https://krokotsch.eu/pypst/usage) and generating [tables from Pandas data frames](https://krokotsch.eu/pypst/pandas).



  Pypst is not a Typst compiler.
  It doesn't check for syntax errors or compile Typst code into PDFs.
  Pypst interprets any string as a Typst literal, so `stroke = "1pt"` will be rendered as `stroke: 1pt`.
  If you want to pass a string literal, you need to wrap it in quotes, for example, `caption = '"My Caption"'`.
  When Pypst encounters a string wrapped in quotes without need, it will automatically remove them.
  For a content block, you can wrap the string in brackets instead, for example, `caption = "[My content]"`.



  If there is time and people are interested, I would like to add the following features:

  - [x] Complete table attributes (for example, `fill` is missing)
  - [ ] Support automatic formating for common workflows, like automatically merging multi-level columns with mean and standard deviation
  - [x] Add more Typst elements (like headings or lists) to make building more complex documents easier



  Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.


pkgId: e15406c29209194e9332ee4db77829298d5ec10f2cd20a938e81caf1211338fd
name: python-pypws-help
arch: noarch
version: 4.2.1
epoch: 0
release: 1
summary: Development documents and examples for pypws
url: https://phastwebservices.dnv.com
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pypws-4.2.1-1.src.rpm
location_href: Packages/python-pypws-help-4.2.1-1.noarch.rpm
checksum_type: sha256
description:
  Phast is the world's most comprehensive process hazard analysis software which models the progress of a potential incident from the initial release to far-field dispersion including modelling of pool spreading and evaporation and resulting flammable and toxic effects. In Phast Web Services we have taken the same state of the art consequence modelling calculations and made them available as web services so you can use them in your own applications.



  Phast Web services and Python PWS have been developed to enable you to call Phast consequence calculations from within your own Python scripts.

  We have services available for a wide range of consequence calculations:

  - Discharge
  - Toxic/flammable gas dispersion
  - Fire and explosion modelling
  - Various supporting, utility calculations


  A detailed reference document for using PyPWS can be found [here](https://phastwebservices.dnv.com/python/overview#/python/overview).


  In order to create a Python script that is able to call the Phast Web Services calculations you will need to obtain an access token from DNV.



  In the following example the **VesselLeakCalculation** is used to predict the release of Methane from a 50mm hole in a horizontal vessel.  In order to get the correct conditions within the vessel the **VesselStateCalculation** is called first and the results from this are passed to the **VesselLeakCalculation** to correctly set it up.

  ```python
  from pypws.calculations import VesselLeakCalculation, VesselStateCalculation
  from pypws.entities import DischargeParameters, Leak, Material, MaterialComponent, State, Vessel
  from pypws.enums import ResultCode, TimeVaryingOption, VesselShape


  material = Material(material_name, [MaterialComponent(material_name, 1.0)])


  state = State(temperature=state_temperature, pressure=state_pressure, liquid_fraction=0.0)


  vessel_state_calculation = VesselStateCalculation(material, state)


  vessel_state_calculation.run()


  vessel = Vessel(state=vessel_state_calculation.output_state, material=vessel_state_calculation.material, vessel_conditions=vessel_state_calculation.vessel_conditions, diameter=6.0, length=10.0, shape=VesselShape.HORIZONTAL_CYLINDER, liquid_fill_fraction_by_volume=0.0)





  leak = Leak(hole_diameter=0.05, hole_height_fraction=0.0, time_varying_option=TimeVaryingOption.INITIAL_RATE)


  discharge_parameters = DischargeParameters()


  vessel_leak_calculation = VesselLeakCalculation(vessel, leak, discharge_parameters)


  result_code = vessel_leak_calculation.run()

  if resultCode == ResultCode.SUCCESS:
      print('SUCCESS: vessel_leak_calculation')
  else:
      print(f'FAILED vessel_leak_calculation with result code {resultCode}')
      assert False


  if len(vessel_leak_calculation.messages) > 0:
      print('Messages:')
      for message in vessel_leak_calculation.messages:
          print(message)
  ```

  Note that each calculation returns a "Result Code" which can be used to check whether the calculation was successful.  In the event of a failed calculation another property (messages) of the calculation instance can be inspected to display possible reasons for the failed calculation.  These two features are only shown for the vessel_leak_calculation for reasons of brevity.


pkgId: ca99344b43a3495fd939d7df88a884a98d2a328dd63738e3e10fce4465001e84
name: python-pypx800v5-help
arch: noarch
version: 1.4.1
epoch: 0
release: 1
summary: Development documents and examples for pypx800v5
url: https://github.com/aohzan/pypx800v5
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pypx800v5-1.4.1-1.src.rpm
location_href: Packages/python-pypx800v5-help-1.4.1-1.noarch.rpm
checksum_type: sha256
description:
  Control the IPX800 V5, its extensions and objects:

  - Thermostat
  - Counter
  - Tempo
  - X-8R
  - X-8D
  - X-24D
  - X-Dimmer
  - X-PWM
  - X-THL
  - X-4VR
  - X-4FP
  - X-Display (v1 and v2)



  - host: ip or hostname (mandatory)
  - port: (default: `80`)
  - api_key: (mandatory)
  - request_timeout: timeout for request in seconds (default: `30`)
  - request_retries_count: retry request if an error occured (default: `5`)
  - request_retries_delay: delay in seconds before trying request (default: `0.5`)
  - session: aiohttp.client.ClientSession



  ```python
  import asyncio

  from pypx800v5 import *


  async def main():
      async with IPX800(host='192.168.1.123', api_key='xxx') as ipx:
          await ipx.ping()
          await ipx.init_config()

          relay = IPX800Relay(ipx, 0)
          print(await relay.status)
          await relay.on()

          opencoll = IPX800OpenColl(ipx, 0)
          print(await opencoll.status)
          await opencoll.on()

          input = IPX800DigitalInput(ipx, 2)
          print(await input.status)

          input = IPX800AnalogInput(ipx, 0)
          print(await input.status)

          input = IPX800OptoInput(ipx, 0)
          print(await input.status)

          light = X8R(ipx, 0, 7)
          print(await light.status)
          await light.on()

          pwm = XPWM(ipx, 0, 6)
          print(await pwm.status)
          print(await pwm.level)
          await pwm.set_level(90)

          light = XDimmer(ipx, 0, 2)
          print(await light.status)
          print(await light.level)
          await light.on()

          input = X24D(ipx, 0, 14)
          print(await input.status)

          capteur = XTHL(ipx, 0)
          print(await capteur.temperature)
          print(await capteur.humidity)
          print(await capteur.luminosity)

          tempo = Tempo(ipx, 0)
          print(tempo.name)
          print(await tempo.status)
          print(await tempo.time)

          x010v_output = X010V(ipx, 0, 2)
          print(await x010v_output.status)
          print(await x010v_output.level)
          await x010v_output.on()

          xdisplay = XDisplay(ipx, 0)
          await xdisplay.refresh_screens()
          for screen in xdisplay.screens:
              print(f"{screen.id} - {screen.name} - {screen.type}")
          print(f"screen status ? {await xdisplay.screen_status}")
          print(f"screen locked ? {await xdisplay.screen_lock_status}")
          print(f"current screen ? {await xdisplay.current_screen_id}")
          await xdisplay.set_screen(0)
          print(f"current screen ? {await xdisplay.current_screen_id}")

  if __name__ == "__main__":
      loop = asyncio.get_event_loop()
      loop.run_until_complete(main())

  ```


pkgId: d32b24a58e54a5c53526bdf8639005e0baa87dc296415759fae30fc1a122154c
name: python-pyqqq-cli-help
arch: noarch
version: 0.4.10
epoch: 0
release: 1
summary: Development documents and examples for pyqqq-cli
url: https://pypi.org/project/pyqqq-cli/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyqqq-cli-0.4.10-1.src.rpm
location_href: Packages/python-pyqqq-cli-help-0.4.10-1.noarch.rpm
checksum_type: sha256
description:
  You can install `pyqqq-cli` via pip:

  ```bash
  pip install pyqqq-cli
  ```



  After installation, the `qqq` command will be available. You can execute it with various subcommands:

  ```bash
  qqq [OPTIONS] COMMAND [ARGS]...
  ```



  - `--help`: Show the help message and exit.



  - `backtest`: Deploy a backtest
  - `delete`: Delete a deployed strategy
  - `deploy`: Deploy a strategy
  - `lint`: Ensure that pylint is installed in the current python...
  - `list`: List deployed strategies
  - `logs`: Show logs of a deployed strategy
  - `pause`: Pause a deployed strategy
  - `pull`: Download an strategy from the registry
  - `resume`: Resume a paused strategy
  - `run`: Run a strategy
  - `search`: Search for stock investment strategies
  - `update`: Update the environment of the deployed strategy
  - `version`: Show version number and quit



  ```bash
  qqq deploy my_strategy_name
  ```

  This command deploys a strategy named `my_strategy_name`.

  ```bash
  qqq list
  ```

  This command lists all deployed strategies.

  ```bash
  qqq logs my_strategy_name
  ```

  This command shows logs of the deployed strategy named `my_strategy_name`.



  This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.


pkgId: fa589e17f00158ff49e369d56a1133c7bdaf066c48a81ad0cca83ac1091003ac
name: python-pyqqq-help
arch: noarch
version: 0.12.106
epoch: 0
release: 1
summary: Development documents and examples for pyqqq
url: https://pypi.org/project/pyqqq/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyqqq-0.12.106-1.src.rpm
location_href: Packages/python-pyqqq-help-0.12.106-1.noarch.rpm
checksum_type: sha256
description:
  You can install it by running the following command:

  ```
  pip install pyqqq
  ```





  0. Create a Virtual Environment (Optional)

  You can create and use a virtual environment with the following steps:

  ```
  pyqqq-user:$ cd sdk
  pyqqq-user:sdk:$ python -m venv .venv --prompt sdk
  pyqqq-user:sdk:$ activate .venv/bin/activate
  (sdk) pyqqq-user:sdk:$
  ```


  1. Install Poetry

  ```
  (sdk) pyqqq-user:sdk:$ pip install poetry
  ```


  2. Install Dependencies

  ```
  (sdk) pyqqq-user:sdk:$ poetry install
  ```


pkgId: e2a14cdc6fb8e2c7af0f20c92a3d425d3e4ae8e9413214b6ada965f2acc6dd3c
name: python-pyqsl-help
arch: noarch
version: 3.5
epoch: 0
release: 1
summary: Development documents and examples for pyqsl
url: https://pypi.org/project/pyqsl/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyqsl-3.5-1.src.rpm
location_href: Packages/python-pyqsl-help-3.5-1.noarch.rpm
checksum_type: sha256
description:
  pyqsl provides a framework for running tasks as a function of different combinations of tasks input arguments. For example, pyqsl supports sweeping over
  any combination of the parameters, expanding the results of the task to numpy arrays of correct dimensions. Additionally, pyqsl provides a way to
  define relations between different task-parameters in order to construct complicated sweep spaces. The relations can be arbitrarily nested, and support
  different formats such as symbolic equations and lookuptables.

rpm_license:
  The MIT License  Copyright (c) 2019 Antti Vepsäläinen.  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: f35e3fd1d5e7dd2e847bfb67cf2b58311b70e07d91cba62f17d69b2dbb10925c
name: python-pyqt-feedback-flow-help
arch: noarch
version: 0.3.5
epoch: 0
release: 1
summary: Development documents and examples for pyqt-feedback-flow
url: https://github.com/firefly-cpp/pyqt-feedback-flow
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyqt-feedback-flow-0.3.5-1.src.rpm
location_href: Packages/python-pyqt-feedback-flow-help-0.3.5-1.noarch.rpm
checksum_type: sha256
description:
  <h1 align="center">
      pyqt-feedback-flow
  </h1>

  <h2 align="center">
      Show feedback in toast-like notifications
  </h2>

  <p align="center">
      <a href="https://pypi.python.org/pypi/pyqt-feedback-flow">
          <img alt="PyPI Version" src="https://img.shields.io/pypi/v/pyqt-feedback-flow.svg" />
      </a>
      <img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/pyqt-feedback-flow.svg" />
      <img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dm/pyqt-feedback-flow.svg">
      <a href="https://src.fedoraproject.org/rpms/python-pyqt-feedback-flow">
          <img alt="Fedora package" src="https://img.shields.io/fedora/v/python3-pyqt-feedback-flow?color=blue&label=Fedora%20Linux&logo=fedora">
      </a>
      <a href="https://pepy.tech/project/pyqt-feedback-flow">
          <img alt="Downloads" src="https://pepy.tech/badge/pyqt-feedback-flow" />
      </a>
      <a href="https://repology.org/project/python:pyqt-feedback-flow/versions">
          <img alt="Packaging status" src="https://repology.org/badge/tiny-repos/python:pyqt-feedback-flow.svg" />
      </a>
      <a href="https://github.com/firefly-cpp/pyqt-feedback-flow/blob/master/LICENSE">
          <img alt="GitHub license" src="https://img.shields.io/github/license/firefly-cpp/pyqt-feedback-flow.svg" />
      </a>
      <a href="https://github.com/firefly-cpp/pyqt-feedback-flow/actions/workflows/python-app.yml">
          <img alt="GitHub Actions" src="https://github.com/firefly-cpp/pyqt-feedback-flow/actions/workflows/python-app.yml/badge.svg">
      </a>
  </p>

  <p align="center">
      <img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/firefly-cpp/pyqt-feedback-flow" />
      <img alt="GitHub commit activity" src="https://img.shields.io/github/commit-activity/w/firefly-cpp/pyqt-feedback-flow.svg" />
      <a href='http://isitmaintained.com/project/firefly-cpp/pyqt-feedback-flow "Average time to resolve an issue"'>
          <img alt="Average time to resolve an issue" src="http://isitmaintained.com/badge/resolution/firefly-cpp/pyqt-feedback-flow.svg" />
      </a>
      <a href='http://isitmaintained.com/project/firefly-cpp/pyqt-feedback-flow "Percentage of issues still open"'>
          <img alt="Percentage of issues still open" src="http://isitmaintained.com/badge/open/firefly-cpp/pyqt-feedback-flow.svg" />
      </a>
      <img alt="GitHub contributors" src="https://img.shields.io/github/contributors/firefly-cpp/pyqt-feedback-flow.svg">
  </p>

  <p align="center">
      <a href="https://doi.org/10.5281/zenodo.10431480">
          <img alt=""DOI src="https://zenodo.org/badge/DOI/10.5281/zenodo.10431480.svg" />
      </a>
  </p>

  <p align="center">
      <a href="#-text-notification-example">📜 Text notification example</a> •
      <a href="#️-image-notification-example">🖼️ Image notification example</a> •
      <a href="#-installation">📦 Installation</a> •
      <a href="#-license">🔑 License</a>
  </p>

  On many occasions, notifications can be a valuable tool to inform a user about specific events. Sometimes, static notifications or pop-up windows may provide adequate feedback; however, there are some cases where flowing notifications can be more appropriate. ✨

  This software allows us to show flowing notifications in the realm of a text or a picture. Both text and pictures (raster and vector) can be customized according to the user's wishes, which offers a wide variety of possibilities for providing flowing feedback. 💬🖼️

  <p align="center">
      <img alt="Pyqt" src="https://user-images.githubusercontent.com/73126820/167383927-6fe17311-4e80-42fc-a0ef-1494b4c58762.png">
  </p>


  https://user-images.githubusercontent.com/73126820/167379237-7c85467d-133e-42c9-91fd-7e85f2481267.mp4


  https://user-images.githubusercontent.com/73126820/167380818-814cc1ce-d137-4906-b5a4-84af94c46d4a.mp4





  Install this software with pip:

  ```sh
  pip install pyqt-feedback-flow
  ```



  To install pyqt-feedback-flow on Alpine Linux, use:

  ```sh
  $ apk add py3-pyqt-feedback-flow
  ```



  To install pyqt-feedback-flow on Arch Linux, please use an [AUR helper](https://wiki.archlinux.org/title/AUR_helpers):

  ```sh
  $ yay -Syyu python-pyqt-feedback-flow
  ```



  To install pyqt-feedback-flow on Fedora Linux, use:

  ```sh
  $ dnf install python3-pyqt-feedback-flow
  ```



  This package is distributed under the MIT License. This license can be found online at <http://www.opensource.org/licenses/MIT>.



  This framework is provided as-is, and there are no guarantees that it fits your purposes or that it is bug-free. Use it at your own risk!


pkgId: 7b3b9312311adb9552a5602597032b9ec0bd80f9ecd36a59df680f7e04148206
name: python-pyqt-reactivity-help
arch: noarch
version: 0.3.0
epoch: 0
release: 1
summary: Development documents and examples for pyqt-reactivity
url: https://github.com/indrarudianto/pyqt-reactivity
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyqt-reactivity-0.3.0-1.src.rpm
location_href: Packages/python-pyqt-reactivity-help-0.3.0-1.noarch.rpm
checksum_type: sha256
description:
  pyqt-reactivity is a project that aims to provide basic reactivity module for
  PyQt widgets.



  Install the latest version from PyPI:

      pip install -U pyqt-reactivity



  To use basic reactivity module, see the following example:

  ```python
  from pyqt_reactivity import Ref, computed, ref


  a = ref(1)
  a.watch(lambda v: print("a updated:", v))



  def a_squared(a: Ref[float]) -> float:
      return a.value**2



  b = computed(a_squared, args=(a,))
  b.watch(lambda v: print("b updated:", v))


  a.value = 2
  ```

  See more implementations on [examples](examples/) folder.



  [MIT](LICENSE)


pkgId: ace69907f3e081a4b5671b6c21c3b45bc9f42e557a9916b54ced12ba03e8ade5
name: python-pyragify-help
arch: noarch
version: 0.1.0
epoch: 0
release: 1
summary: Development documents and examples for pyragify
url: https://pypi.org/project/pyragify/
rpm_license: The Unlicense
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyragify-0.1.0-1.src.rpm
location_href: Packages/python-pyragify-help-0.1.0-1.noarch.rpm
checksum_type: sha256
description:
  - **Semantic Chunking**: Extracts functions, classes, and inline comments from Python files, as well as headers and sections from Markdown files.
  - **Supported Formats**: Outputs `.txt` files for compatibility with NotebookLM.
  - **Flexible Configuration**: Configure processing options via a YAML file or command-line arguments.
  - **File Skipping**: Respects `.gitignore` and `.dockerignore` patterns and allows custom skip patterns.


pkgId: f861d0cd222c19f5e8fa86858d634ad4756c07a437303c74a00f969c6107ff8b
name: python-pyraingen-help
arch: noarch
version: 1.0.0
epoch: 0
release: 1
summary: Development documents and examples for pyraingen
url: https://pypi.org/project/pyraingen/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyraingen-1.0.0-1.src.rpm
location_href: Packages/python-pyraingen-help-1.0.0-1.noarch.rpm
checksum_type: sha256
description:
  A package for stochastically generating daily and subdaily rainfall in Australia with ifd constraining.



  ```bash
  $ pip install pyraingen
  ```



  `pyraingen` can be used to stochastically generate regionalised daily rainfall, disaggregate daily rainfall to subdaily fragments and constrain generated rainfall to observed or predicted Intensity Frequency Duration (IFD) relationships.
  The three main functions are:

  ```python
  from pyraingen.regionaliseddailysim import regionaliseddailysim
  from pyraingen.regionalisedsubdailysim import regionalisedsubdailysim
  from pyraingen.ifdcond import ifdcond
  ```

  Go to [`pyraingen.readthedocs.io`](https://pyraingen.readthedocs.io) for further documentation.



  Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.



  `pyraingen` was created by Caleb Dykman. Caleb Dykman retains all rights to the source and it may not be reproduced, distributed, or used to create derivative works.



  `pyraingen` was created with [`cookiecutter`](https://cookiecutter.readthedocs.io/en/latest/) and the `py-pkgs-cookiecutter` [template](https://github.com/py-pkgs/py-pkgs-cookiecutter).


pkgId: 6181927319911308dc6c7ad7c1dba1ec4746b5732b8d227b32a70ad5f8fa64dd
name: python-pyraisdk-help
arch: noarch
version: 0.4.0
epoch: 0
release: 1
summary: Development documents and examples for pyraisdk
url: https://pypi.org/project/pyraisdk/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyraisdk-0.4.0-1.src.rpm
location_href: Packages/python-pyraisdk-help-0.4.0-1.noarch.rpm
checksum_type: sha256
description:
  AML models are meant to be deployed to GPU instances to provide inference service. If the code that operates the model uses the GPU for inferencing in each request separately,
  the overall performance of the model will be quite inefficent. This SDK has APIs that can allocate batches of inference requests to run on the GPU in a separate thread, thereby considerably
  improving the usage efficiency of GPU and making the model more performant.

  The SDK also collects telemetry data for each so the performance of the model can be evaluated and tracked and provides logging primitives that can be used
  to produce additional troubleshooting information.



  For AML models deployed with CD pipeline, Logs generated by pyraisdk will be found in `AuxUnstructuredEventTable` and Metrics in `AuxStructuredEventTable`. More details please refer to [raidri](../dri/raidri.md#infra-and-analysis-logs-monitoring-dashboard).

  From remote model dashboard, we can see below data from pyraisdk and debug model side metrics.
  ![](../resources/pyraisdk_readme_remote_model_dashboard.png)
  From there you can explore Queries and either play with the matviews more or else look at the definition of the matviews and thus see how those queries are done.




  Follow the steps below to integrate pyraisdk.

  1. In environment configuration, list latest [pyraisdk version](https://github.com/microsoft/rai-orchestrator/blob/master/pyraisdk/pyproject.toml#L3) as a dependency.
  2. Import resources from pyraisdk
    ```
    from pyraisdk import rlog
    from pyraisdk.dynbatch import BaseModel, DynamicBatchModel
    ```
  3. Implement `BaseModel` class, which includes methods `preprocess()` and `predict()`, to define how data must be preprocessed and how inferences are made.
  4. At process start (e.g. in `init()` function if deploying with scoring script), initialize logging, instantiate object of class that implements `BaseModel`, and define global variable for batched model as shown below.
    ```
    rlog.initialize()

    global batched_model
    malware_model = MalwareModel()
    batched_model = DynamicBatchModel(malware_model)
    ```
  5. In request handler (e.g. in `run()` function if deploying with scoring script), pass list of requests to the batched model's `predict()` method and return results. Under-the-hood, pyraisdk creates batches and uses your model's `preprocess()` and `predict()` methods to generate results.
    ```
    return batched_model.predict(json.loads(request_data)['data'])
    ```
  6. Optionally log additional structured and unstructured events using `EventLogger` [methods](https://github.com/microsoft/rai-orchestrator/blob/master/pyraisdk/pyraisdk/rlog/log.py). It is not necessary to log latency information, as pyraisdk does so automatically.


  In addition to following the CD pipeline's [developer guidelines](https://github.com/microsoft/rai-orchestrator/blob/master/cicd/cd/1-deploy/raicdservice/README.md#prerequisites-to-adding-or-modifying-endpoint-configurations) to onboard your model to RAI's deployment infrastructure, you must configure `BatchingConfig` for each deployment target to which your model will be deployed. To do so,
  1. Open the appropriate configuration file under `deployment-target-configs/../*.json`
  2. Configure the model's `Version`, `InstanceType` / SKU, and `BatchingConfig` as shown below
    ```json
    {
  	  "Name": "MalwareNeural",
  	  "Version": 19,
        "InstanceType": "Standard_NC6s_v3",
        "BatchingConfig": {
            "MaxBatchSize": 12,
            "IdleBatchSize": 5,
            "MaxBatchInterval": 0.002
        }
    }
    ```
  When the CD pipeline deploys the model to an AML online deployment, it exports environment variables for each `BatchingConfig` field, which pyraisdk utilizes at process start to configure batching parameters. The CD pipeline also exports environment variables to enable pyraisdk to log to RAI's Azure Data Explorer clusters.



  Test or Deploy independetly outside of RAI CD Pipeline, it's required to set environment variables for `BatchingConfig` manually before object of `DynamicBatchModel` is created. Refer to [Batching Parameter](#batching-parameter-attention).

  The recommended way to set these variables is calling `os.environ.setdefault` in `init()`. Like below:

  ```python
  def init():
      os.environ.setdefault('PYRAISDK_MAX_BATCH_SIZE', '12')
      os.environ.setdefault('PYRAISDK_IDLE_BATCH_SIZE', '5')
      os.environ.setdefault('PYRAISDK_MAX_BATCH_INTERVAL', '0.002')
      ...
      batch_model = DynamicBatchModel(malware_model)
  ```

  This should work well independent of RAI CD Pipeline. And you don't need to specifically remove these 3 lines when switching to deploy in CD Pipeline.

  But please note that this kind of code should be **Avoided**: `os.environ['PYRAISDK_MAX_BATCH_SIZE'] = '12'`. It will override the configuration from CD pipeline, which is not desirable in most cases.

  To enable log publishing (to eventhub), there are another several environment variables need to be set, refer to following logging part. It's optional.




  There are APIs you **must** implement in your model to support batching of inference requests for best model performance. Those APIs allow the SDK
  to distribute load efficiently to the GPU instances. The APIs are:

  * ```preprocess``` Modifies the input to the model, if necessary. For example, if your model needs the input in a special JSON format instead of as a list
  of strings, you can do that modification in the *preprocess* method.
  * ```predict``` Executes the model inference for a list of input strings



  Batching parameters are mandatory and should be ready before DynamicBatchModel is created. They are set through environment variables:
  - **PYRAISDK_MAX_BATCH_SIZE** (int): Max size of each processing batch.
  - **PYRAISDK_IDLE_BATCH_SIZE** (int): If there's no more data in queue, a new batch will be launched when size reaches this value.
  - **PYRAISDK_MAX_BATCH_INTERVAL** (float): Max interval in seconds to wait for items. When waiting time exceeds, will launch a batch immediately.




  Build `YourModel` class inherited from `pyraisdk.dynbatch.BaseModel`.

  ```python
  from typing import List
  from pyraisdk.dynbatch import BaseModel

  class YourModel(BaseModel):
      def predict(self, items: List[str]) -> List[int]:
          rs = []
          for item in items:
              rs.append(len(item))
          return rs

      def preprocess(self, items: List[str]) -> List[str]:
          rs = []
          for item in items:
              rs.append(f'[{item}]')
          return rs
  ```

  Initialize a `pyraisdk.dynbatch.DynamicBatchModel` with `YourModel` instance, and call `predict / predict_one` for inferencing.

  ```python
  from pyraisdk.dynbatch import DynamicBatchModel


  simple_model = YourModel()
  batch_model = DynamicBatchModel(simple_model)


  items = ['abc', '123456', 'xyzcccffaffaaa']
  predictions = batch_model.predict(items)
  assert predictions == [5, 8, 16]


  item = 'abc'
  prediction = batch_model.predict_one(item)
  assert prediction == 5
  ```

  Concurrent requests to `predict / predict_one`, in different threads.

  ```python
  from threading import Thread
  from pyraisdk.dynbatch import DynamicBatchModel


  simple_model = YourModel()
  batch_model = DynamicBatchModel(simple_model)


  def run(name, num):
      for step in range(num):
          item = f'{name}-{step}'
          prediction = batch_model.predict_one(item)
          assert prediction == len(item) + 2


  threads = [Thread(target=run, args=(f'{tid}', 100)) for tid in range(20)]
  for t in threads:
      t.start()
  for t in threads:
      t.join()
  ```




  This module is for logging and event tracing.



  ```python
  def initialize(
      eh_hostname: Optional[str] = None,
      client_id: Optional[str] = None,
      eh_conn_str: Optional[str] = None,
      eh_structured: Optional[str] = None,
      eh_unstructured: Optional[str] = None,
      role: Optional[str] = None,
      instance: Optional[str] = None,
      sys_metrics_enable: bool = True,
  )
  ```

  Parameter description for `initialize`:
  - **eh_hostname**: Fully Qualified Namespace aka EH Endpoint URL (*.servicebus.windows.net). Default, read `${EVENTHUB_NAMESPACE}.servicebus.windows.net`
  - **client_id**: client_id of service principal. Default, read $UAI_CLIENT_ID
  - **eh_conn_str**: connection string of eventhub namespace. Default, read $EVENTHUB_CONN_STRING
  - **eh_structured**: structured eventhub name. Default, read $EVENTHUB_AUX_STRUCTURED
  - **eh_unstructured**: unstructured eventhub name. Default, read $EVENTHUB_AUX_UNSTRUCTURED
  - **role**: role, Default: `RemoteModel`
  - **instance**: instance, Default: `${MODEL_NAME}|${ENDPOINT_VERSION}|{hostname}` or `${MODEL_NAME}|${ENDPOINT_VERSION}|{_probably_unique_id()}`
  - **sys_metrics_enable**: Whether to enable auto metrics reporting periodically for system info like gpu, memory and gpu. Default: True

  ```python
  def event(self, key: str, code: str, numeric: float, detail: str='', corr_id: str='', elem: int=-1)
  def infof(self, format: str, *args: Any)
  def infocf(self, corr_id: str, elem: int, format: str, *args: Any)
  def warnf(self, format: str, *args: Any)
  def warncf(self, corr_id: str, elem: int, format: str, *args: Any)
  def errorf(self, format: str, *args: Any)
  def errorcf(self, corr_id: str, elem: int, ex: Optional[Exception], format: str, *args: Any)
  def fatalf(self, format: str, *args: Any)
  def fatalcf(self, corr_id: str, elem: int, ex: Optional[Exception], format: str, *args: Any)
  ```



  ```python





  from pyraisdk import rlog
  rlog.initialize()

  rlog.infof('this is a info message %s', 123)
  rlog.event('LifetimeEvent', 'STOP_GRACEFUL_SIGNAL', 0, 'detail info')
  ```

  ```python




  from pyraisdk import rlog
  rlog.initialize()

  rlog.infocf('corrid', -1, 'this is a info message: %s', 123)
  rlog.event('RequestDuration', '200', 0.01, 'this is duration in seconds')
  ```

  ```python
  from pyraisdk import rlog
  rlog.initialize(eh_structured='ehstruct', eh_unstructured='ehunstruct', eh_conn_str='<eventhub-conn-str>')

  rlog.errorcf('corrid', -1, Exception('error msg'), 'error message: %s %s', 1,2)
  rlog.event('CpuUsage', '', 0.314, detail='cpu usage', corr_id='corrid', elem=-1)
  ```




  This module is for emitting metrics using OTEL


  ```python
  def initialize(
      service_name: Optional[str] = None,
      service_namespace: Optional[str] = None,
      service_version: Optional[str]=None,
      service_instance_id: Optional[str]=None,
      host_name: Optional[str]=None
  )

  def shutdown()

  ```



  ```python
  from pyraisdk import otel
  from opentelemetry.metrics import get_meter


  otel.initialize()


  meter = get_meter("rai-models")

  session_counter = meter.create_counter("rai.model.session")
  session_counter.add(1, {
      "model": "tms",
      "version": "54",
  })



  otel.shutdown()
  ```


pkgId: 878818878961b8bb65c549830f2d8aa4597329c943695a507db5117888085416
name: python-pyreason-help
arch: noarch
version: 3.0.1
epoch: 0
release: 1
summary: Development documents and examples for pyreason
url: https://github.com/lab-v2/pyreason
rpm_license: BSD 3-clause
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyreason-3.0.1-1.src.rpm
location_href: Packages/python-pyreason-help-3.0.1-1.noarch.rpm
checksum_type: sha256
description:
  <img src="https://raw.githubusercontent.com/lab-v2/pyreason/main/media/pyreason_logo.jpg"/>

  [![Python 3.9](https://img.shields.io/badge/python-3.9-blue.svg)](https://www.python.org/downloads/release/python-390/)
  [![Python 3.10](https://img.shields.io/badge/python-3.10-blue.svg)](https://www.python.org/downloads/release/python-3100/)
  [![Documentation Status](https://readthedocs.org/projects/pyreason/badge/?version=latest)](https://pyreason.readthedocs.io/en/latest/?badge=latest)
  [![pypi](https://github.com/lab-v2/pyreason/actions/workflows/python-publish.yml/badge.svg)](https://github.com/lab-v2/pyreason/actions/workflows/python-publish.yml)
  [![Tests](https://github.com/lab-v2/pyreason/actions/workflows/python-package-version-test.yml/badge.svg)](https://github.com/lab-v2/pyreason/actions/workflows/python-package-version-test.yml)


  An explainable inference software supporting annotated, real valued, graph based and temporal logic.


  [📃 Paper](https://arxiv.org/abs/2302.13482)

  [📽️ Video](https://www.youtube.com/watch?v=E1PSl3KQCmo)

  [🌐 Website](https://neurosymbolic.asu.edu/pyreason/)

  [🏋️‍♂️ PyReason Gym](https://github.com/lab-v2/pyreason-gym)

  [🗎 Documentation](https://pyreason.readthedocs.io/en/latest/)




  1. [Introduction](#1-introduction)
  2. [Documentation](#2-documentation)
  3. [Install](#3-install)
  4. [Bibtex](#4-bibtex)
  5. [License](#5-license)
  6. [Contact](#6-contact)



  PyReason is a graphical inference tool that uses a set of logical rules and facts (initial conditions) to reason over graph structures. To get more details, refer to the paper/video/hello-world-example mentioned above.


  All API documentation and code examples can be found on [ReadTheDocs](https://pyreason.readthedocs.io/en/latest/)


  PyReason can be installed as a python library using

  ```bash
  pip install pyreason
  ```
  The Python versions that are currently supported are `3.7`, `3.8`, `3.9`, `3.10`. If you want multi-core parallel support only `3.9` and `3.10` versions work due to limited numba support.


  If you used this software in your work please cite our paper

  Bibtex:
  ```
  @inproceedings{aditya_pyreason_2023,
  title = {{PyReason}: Software for Open World Temporal Logic},
  booktitle = {{AAAI} Spring Symposium},
  author = {Aditya, Dyuman and Mukherji, Kaustuv and Balasubramanian, Srikar and Chaudhary, Abhiraj and Shakarian, Paulo},
  year = {2023}}
  ```


  This repository is licensed under [BSD-2-Clause](https://github.com/lab-v2/pyreason/blob/main/LICENSE.md).

  Trademark Permission PyReason™ and PyReason Design Logo <img src="https://raw.githubusercontent.com/lab-v2/pyreason/main/media/pyreason_logo.jpg" width="50"/>™ are trademarks of the Arizona Board of Regents/Arizona State University. Users of the software are permitted to use PyReason™ in association with the software for any purpose, provided such use is related to the software (e.g., Powered by PyReason™). Additionally, educational institutions are permitted to use the PyReason Design Logo <img src="https://raw.githubusercontent.com/lab-v2/pyreason/main/media/pyreason_logo.jpg" width="50"/>™ for non-commercial purposes.



  Dyuman Aditya - dyuman.aditya@asu.edu

  Kaustuv Mukherji - kmukher2@asu.edu

  Paulo Shakarian - pshak02@asu.edu


pkgId: 56c73e471892fa6d0064794fe9a4b1e44c503fd0c13926ddb8a04d3693d558fe
name: python-pyremoteexec-help
arch: noarch
version: 1.0.1
epoch: 0
release: 1
summary: Development documents and examples for pyremoteexec
url: https://pypi.org/project/pyremoteexec/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyremoteexec-1.0.1-1.src.rpm
location_href: Packages/python-pyremoteexec-help-1.0.1-1.noarch.rpm
checksum_type: sha256
description:
  This project is enviroment of REMOTE running Python code in Server or Docker.

  The client sends code, shares objects on the server in real time and receives variables and function calls locally.

  The goal is a secure sandbox. That includes code execution hooks, exception handling, limit execution times, and control loops frequency.




  このプロジェクトは、サーバーやDockerコンテナ上で送信したPythonコードを遠隔実行する環境です。

  クライアントはサーバー上のオブジェクトをリアルタイムで共有し、変数と関数呼び出しをローカルで受信します。

  目的は安全なサンドボックスの構築です。これには、処理実行フック、例外処理対応、実行時間制限、ループ周波数制御が含まれます。




  A program to wait for connections on a server that runs code.


  ```python
  from remoteexec.communicate import *
  from remoteexec.inout import *

  listen_addr = '1.1.1.1'
  listen_port = 9165
  sync_frequency = -1
  fpS = SocketIO(listen_port=listen_port, listen_addr=listen_addr)
  server = Communicator(connection=fpS, sync_frequency=sync_frequency, use_compress=True)
  server.host(reciever=SocketReciever())
  ```







  A program that sends code to a server and execute in server.




  ```python
  from remoteexec import *

  connect_addr = '192.168.1.1'
  connect_port = 9165
  runner = SnippetRunner.run_tcp(connect_addr, connect_port)
  cond = RunningConditions()


  code = """\
  a = 1
  b = 1
  c = a+b
  """
  runner.exec(code, cond)  # run in server
  ```




  ```python
  share = {'hoge':1,'boo':'huu','foo':{}}
  cond = RunningConditions(shared_objects=share)
  code = """\
  a = hoge + 10
  b = boo
  foo['result'] = f'{a}{b}'
  """
  runner.exec(code, cond)
  print(share['foo']['result'])  ## display '11huu'
  ```




  ```python
  import os
  @snippet_share
  class clz1:
      def __init__(self):
          self.n = ''
      def p(self):
          return print(self.n)

  share = {'clz':clz1()}
  cond = RunningConditions(shared_objects=share)
  code = """\
  clz.n = 'aaazzz'
  clz.p()
  """
  runner.exec(code, cond)  ## display 'aaazzz'
  ```




  By default, built-in functions (exec globals) and import modules are not allowed.




  ```python
  cond = RunningConditions(allow_global_functions=['int'])
  code = dedent("""\
  a = int(10)
  """)
  runner.exec(code, cond)
  ```




  ```python

  cond = RunningConditions(dynamic_import=True, allow_import_modules=[])
  code = """\
  import time
  """
  runner.exec(code, cond)
  ```

  or

  ```python
  cond = RunningConditions(allow_import_modules=['time'])
  ```




  Built-in functions and standard packages that can be used without affecting OS filesystem. (ex. "range" is allowed but "open" is not allowed)

  ```python
  cond = RunningConditions(allow_global_functions=COMMON_BUILTINS,
                           allow_import_modules=COMMON_MODULES)
  ```




  Specify an error handling policy for each step execution.

  Either ignore the error and continue executing the code anyway (IGNORE_AND_CONTINUE), turn the error into a loop break (IGNORE_AND_BREAK), raise a SnippetStepError (RAISE_ERROR), or just raise the error (the default).

  **sample**

  ```python
  from remoteexec.exceptions import *
  from remoteexec.hooks import *

  class _StepErrorHook(StepErrorHook):
      def __init__(self, error_approach):
          super().__init__(targets=[])
          self.error_approach = error_approach
      def hook(self, id:int, lineno:int) -> StepErrorApproach:
          return self.error_approach


  code = """\
  for i in range(3):
      hoge.append('start')
      hoge.append(100 / 0)  # raise error
      hoge.append('end')
  """


  share = {'hoge':[]}
  cond = RunningConditions(shared_objects=share)
  runner.exec(code, cond=cond, error_hook=_StepErrorHook(StepErrorApproach.IGNORE_AND_CONTINUE))
  print(','.join(share['hoge']))  # display 'start,end,start,end,start,end'


  share = {'hoge':[]}
  cond = RunningConditions(shared_objects=share)
  runner.exec(code, cond=cond, error_hook=_StepErrorHook(StepErrorApproach.IGNORE_AND_BREAK))
  print(','.join(share['hoge']))  # display 'start,start,start'


  share = {'hoge':[]}
  cond = RunningConditions(shared_objects=share)
  runner.exec(code, cond=cond, error_hook=_StepErrorHook(StepErrorApproach.RAISE_ERROR))  # SnippetStepError


  share = {'hoge':[]}
  cond = RunningConditions(shared_objects=share)
  runner.exec(code, cond=cond, error_hook=_StepErrorHook(StepErrorApproach.DEFAULT))  # ZeroDivisionError
  ```




  Manage computing resources or limitate the number of executions.




  ```python
  cond = RunningConditions(total_timeout_sec=0.5)  # Forced termination in 0.5 seconds
  ```




  ```python
  runner.exec(code, cond=cond, frequency=50)  # loops force run at 50Hz
  ```

  **sample**

  ```python
  import time
  share = {'hoge':[]}
  cond = RunningConditions(shared_objects=share)
  code = """\
  for i in range(500):
      if i%100==0:
          hoge.append(f'{i}')
  """


  start = time.time()
  runner.exec(code, cond=cond, frequency=50)  # take 10 sec to run
  print(time.time() - start)  # around 10
  print(','.join(share['hoge']))  # display '0,100,200,300,400'
  ```




  The outermost loop can limit by max_outer_loop_count, and any nested loops can limit by max_inner_loop_count.

  ```python

  runner.exec(code, cond=cond, max_outer_loop_count=2, max_inner_loop_count=3, throttling_mode=False)
  ```

  ```python

  runner.exec(code, cond=cond, max_outer_loop_count=2, max_inner_loop_count=3, throttling_mode=False, forced_execution_mode=True)
  ```


  **sample**

  ```python
  share = {'hoge':[]}
  cond = RunningConditions(shared_objects=share)
  code = """\
  for i in range(500):
      hoge.append('foo')
      for j in range(500):
          hoge.append('buu')
  """

  runner.exec(code, cond=cond, max_outer_loop_count=2, max_inner_loop_count=3, throttling_mode=False, forced_execution_mode=True)
  print(','.join(share['hoge']))  # display 'foo,buu,buu,buu,foo,buu,buu,buu'
  ```




  Local execution provides functionality for debugging code.


  ```python
  from remoteexec import *
  from remoteexec.runnerfeature import *
  from remoteexec.hooks import *
  runner_local = SnippetRunnerLocal()
  cond = RunningConditions()
  ```



  Interrupting and Managing Code Execution.




  Count loop executed times.

  **sample**

  ```python
  class MyCounterLoopHook(CounterLoopHook):
      def __init__(self, loops:List[HookTarget]):
          super().__init__(loops=loops, maxcount=-1)
      def hook(self, id:int, lineno:int):
          def _hook():
              self.counter[id] += 1  # count loop executed times
              print(f"loop run {self.counter[id]} times")
          return _hook() if id in self.counter else super().hook(id=id, lineno=lineno)
  feature = RunningWithLoopHook([MyCounterLoopHook], forced_execution_mode=True)
  code = """\
  a = 1
  for _ in (1,2,3,4,5):
      a += 1
  """
  runner_local.exec(code, cond=cond, features=[feature])





  ```




  Trace code execution.

  **sample**

  ```python
  class MyPrefixHook(StepHook):
      def hook(self, id:int, lineno:int):
          print(f"start - line #{lineno}")
  class MyPostfixHook(StepHook):
      def hook(self, id:int, lineno:int):
          print(f"end - line #{lineno}")
  feature = RunningWithSteppingCheck(prefix_hook_class=MyPrefixHook, postfix_hook_class=MyPostfixHook)
  code = """\
  a = 1
  b = 2
  c = 3
  """
  runner_local.exec(code, cond=cond, features=[feature])






  ```




  Monitor variable assignments while your code is running.

  **sample**

  ```python
  share = {'hoge':[]}
  cond = RunningConditions(shared_objects=share, allow_global_functions=['eval'])

  class MyStepTargetHook(StepTargetHook):
      def hook(self, id:int, lineno:int) -> Optional[List[str]]:
          return ["target"] if lineno==2 or lineno==4 else None

  class MyStepEvalHook(StepEvalHook):
      def hook(self, id:int, lineno:int, name:str, value:Optional[object]):
          print(f"lineno={lineno} name={name} value={value}")
  feature = RunningWithEvalCheck(target_hook_class=MyStepTargetHook,
                                 eval_hook_class=MyStepEvalHook)
  code = """\
  target = "abcde"
  hoge.append('start')
  hoge.append(target:='fghij')
  hoge.append('end')
  """
  runner_local.exec(code, cond=cond, features=[feature])


  ```




  If run it in a container or simply in a separate process, STDIN/OUT pipes can used instead of TCP.



  Place the following script in the container with the name 'server.py'.

  ```python
  import sys
  from remoteexec.communicate import *
  from remoteexec.inout import *

  sync_frequency = 5
  fpS = ConsoleIO(sys.stdout, sys.stdin)
  server = Communicator(connection=fpS, sync_frequency=sync_frequency, use_compress=True)
  server.host(reciever=SocketReciever())
  ```




  ```python
  runner = SnippetRunner.run_docker()
  ```

  or

  ```python
  from remoteexec.remoteexec import SnippetRunnerRemote
  from remoteexec.inout import *
  connection = PipeIO(('docker', 'run', '-i', '--rm', 'dockercontainername', 'python', '-u', 'server.py'))
  runner = SnippetRunnerRemote(connection=connection)
  ```


pkgId: b73501e52ca1641e423d0dd394a121226d34b497dfd7a229cda8a2a0e5b2d7fb
name: python-pyrepohistory-help
arch: noarch
version: 0.0.3
epoch: 0
release: 1
summary: Development documents and examples for pyrepohistory
url: https://github.com/mjgaughan/repo-lifecycles
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyrepohistory-0.0.3-1.src.rpm
location_href: Packages/python-pyrepohistory-help-0.0.3-1.noarch.rpm
checksum_type: sha256
description:
  small library to quickly get by-commit software repository history to facilitate modeling of project lifecycles.

  there are other vcs analysis tools. this is indended to be:
  - a lightweight, minimum viable data collection tool
  - support longitudinal data collection out of the box

  installation:

  ```
  pip install repo_lifecycles
  ```


pkgId: 0b4c7d7f97733b5b3c06b7b2271babfbc2a3075ae6364b0bc4bc4c7d5ee7e6ba
name: python-pyrfume-help
arch: noarch
version: 0.19.1
epoch: 0
release: 1
summary: Development documents and examples for pyrfume
url: http://pyrfume.org
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyrfume-0.19.1-1.src.rpm
location_href: Packages/python-pyrfume-help-0.19.1-1.noarch.rpm
checksum_type: sha256
description:
  ![Pyrfume logo](https://avatars3.githubusercontent.com/u/34174393?s=200&v=4)


  [![Python package](https://github.com/pyrfume/pyrfume/actions/workflows/pythonpackage.yml/badge.svg)](https://github.com/pyrfume/pyrfume/actions/workflows/pythonpackage.yml)
  [![Travis](https://travis-ci.org/pyrfume/pyrfume.svg?branch=master)](https://travis-ci.org/pyrfume/pyrfume)
  [![Coverage Status](https://coveralls.io/repos/github/pyrfume/pyrfume/badge.svg?branch=master)](https://coveralls.io/github/pyrfume/pyrfume?branch=master)
  ![Zenodo](https://user-images.githubusercontent.com/549787/165869234-79bf95db-0b6c-495c-a1a8-b3db751f3352.png)



  ```

  import pyrfume
  behavior = pyrfume.load_data('snitz_2013/behavior.csv')
  molecules = pyrfume.load_data('snitz_2013/molecules.csv')


  import pyrfume
  behavior = pyrfume.load_data('bushdid_2014/behavior.csv')
  molecules = pyrfume.load_data('bushdid_2014/molecules.csv')
  stimuli = pyrfume.load_data('bushdid_2014/stimuli.csv')
  ```



  Just run `./develop.sh` to get started with developing `pyrfume`.











  *Licensing/Copyright*: Data is provided as-is.  Licensing information for individual datasets is available in the data repository.  Takedown requests for datasets may be directed to admin at pyrfume dot org.


pkgId: 1a4bcccb22ce3b395a75c011868caf99dc57255fdc9eb25d717c2ccaae7a239e
name: python-pyright-help
arch: noarch
version: 1.1.391
epoch: 0
release: 1
summary: Development documents and examples for pyright
url: https://github.com/RobertCraigie/pyright-python
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyright-1.1.391-1.src.rpm
location_href: Packages/python-pyright-help-1.1.391-1.noarch.rpm
checksum_type: sha256
description:
  [![Downloads](https://pepy.tech/badge/pyright)](https://pepy.tech/project/pyright)
  ![PyPI](https://img.shields.io/pypi/v/pyright)
  ![Supported python versions](https://img.shields.io/pypi/pyversions/pyright)

  > This project is not affiliated with Microsoft in any way, shape, or form

  Pyright for Python is a Python command-line wrapper over [pyright](https://github.com/microsoft/pyright), a static type checker for Python.



  Use the package manager [pip](https://pip.pypa.io/en/stable/) to install pyright.

  ```bash
  pip install pyright
  ```

  > [!TIP]
  > It's highly recommended to install `pyright` with the `nodejs` extra which uses [`nodejs-wheel`](https://pypi.org/project/nodejs-wheel-binaries/) to
  > download Node.js binaries as it is more reliable than the default [`nodeenv`](https://pypi.org/project/nodeenv/) solution.
  >
  > ```bash
  > pip install pyright[nodejs]
  > ```




  Pyright can be invoked using two different methods

  ```bash
  pyright --help
  ```

  or

  ```bash
  python3 -m pyright --help
  ```

  Pyright for Python should work exactly the same as pyright does, see the [pyright documentation](https://github.com/microsoft/pyright/blob/main/docs/getting-started.md) for details on how to make use of pyright.



  You can also setup pyright to run automatically before each commit by setting up [pre-commit](https://pre-commit.com) and registering pyright in your `.pre-commit-config.yaml` file

  ```yaml
  repos:
    - repo: https://github.com/RobertCraigie/pyright-python
      rev: v1.1.391
      hooks:
      - id: pyright
  ```

  Pre-commit will install pyright-python in its own virtual environment which can cause pyright to not be able to detect your installed dependencies.

  To fix this you can either [tell pre-commit](https://pre-commit.com/#config-additional_dependencies) to also install those dependencies or explicitly tell pyright which virtual environment to use by updating your [pyright configuration file](https://github.com/microsoft/pyright/blob/main/docs/configuration.md):

  ```toml
  [tool.pyright]

  venvPath = "."
  venv = ".venv"
  ```



  [Pyright](https://github.com/microsoft/pyright) is written in TypeScript, requiring node to be installed, and is normally installed with npm. This could be an entry barrier for some Python developers as they may not have node or npm installed on their machine; I wanted to make pyright as easy to install as any normal Python package.



  This project works by first checking if node is in the `PATH`. If it is not, then we download node at runtime using [nodeenv](https://github.com/ekalinin/nodeenv), then install the pyright npm package using `npm` and finally, run the downloaded JS with `node`.



  By default Pyright for Python is set to target a specific pyright version and new releases will be automatically created whenever a new pyright version is released. It is highly recommended to use an automatic dependency update tool such as [dependabot](https://docs.github.com/en/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/configuring-dependabot-security-updates).

  If you would rather not have to update your installation every time a new pyright release is created then you can automatically use the latest available pyright version by setting the environment variable `PYRIGHT_PYTHON_FORCE_VERSION` to `latest`.



  You can configure Pyright for Python using environment variables.



  Set `PYRIGHT_PYTHON_DEBUG` to any value.



  Set `PYRIGHT_PYTHON_FORCE_VERSION` to the desired version, e.g. `1.1.156`, `latest`



  Set `PYRIGHT_PYTHON_PYLANCE_VERSION` to your Pylance version, e.g. `2023.11.11`, `latest-release`, `latest-prerelease`. The corresponding Pyright version will be used. See [Pylance's changelog](https://github.com/microsoft/pylance-release/blob/main/CHANGELOG.md) for details on recent releases. Note that `PYRIGHT_PYTHON_FORCE_VERSION` takes precedence over `PYRIGHT_PYTHON_PYLANCE_VERSION`, so you'll want to set one or the other, not both.



  By default, Pyright for Python disables npm error messages, if you want to display the npm error messages then set `PYRIGHT_PYTHON_VERBOSE` to any truthy value.



  Pyright for Python will resolve the root cache directory by checking the following environment variables, in order:

  - `PYRIGHT_PYTHON_CACHE_DIR`
  - `XDG_CACHE_HOME`

  If neither of them are set it defaults to `~/.cache`



  Set `PYRIGHT_PYTHON_GLOBAL_NODE` to any non-truthy value, i.e. anything apart from 1, t, on, or true.
  e.g. `off`
  You can optionally choose the version of node used by setting `PYRIGHT_PYTHON_NODE_VERSION` to the desired version



  Set `PYRIGHT_PYTHON_ENV_DIR` to a valid [nodeenv](https://github.com/ekalinin/nodeenv) directory. e.g. `~/.cache/nodeenv`



  Set `PYRIGHT_PYTHON_IGNORE_WARNINGS` to a truthy value, e.g. 1, t, on, or true.

  Pyright for Python will print warnings for the following case(s)

  - There is a new Pyright version available.



  All pull requests are welcome.


  [MIT](https://choosealicense.com/licenses/mit/)


