# packages

pkgId: b3e0b42cc877be991868b65e280dce0ed91420cd78740cdf5e329b8d5436c18b
name: python-pycache-handler-help
arch: noarch
version: 0.1.4
epoch: 0
release: 1
summary: Development documents and examples for pycache-handler
url: https://github.com/iv4n-ga6l/pycache_handler
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycache-handler-0.1.4-1.src.rpm
location_href: Packages/python-pycache-handler-help-0.1.4-1.noarch.rpm
checksum_type: sha256
description:
  It aims to continuously scan a project and then delete any __pycache__ directory generated by the project. This is to ensure the project will be clean and avoid to delete __pycache__ manually.




  To install it :

  ```sh
  pip install pycache_handler
  ```




  ```python
  from pycache_handler.handler import py_cache_handler

  @py_cache_handler
  def main():
      
      pass


  @py_cache_handler(project_dir=r"path/to/your/project")
  def main():
      
      pass

  if __name__ == "__main__":
      main()
  ```



  - watchdog


  This project is licensed under the MIT [License](LICENSE.md)


pkgId: cd8388ea2eb2acb54f19ac4efc5149d9a20e3e8d10b52d69af22287d28e0f654
name: python-pycallshot-help
arch: noarch
version: 0.1.1
epoch: 0
release: 1
summary: Development documents and examples for pycallshot
url: https://github.com/dmitry-helios/pycallshot
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycallshot-0.1.1-1.src.rpm
location_href: Packages/python-pycallshot-help-0.1.1-1.noarch.rpm
checksum_type: sha256
description:
  PyCallShot is a simple independent Python library for rolling dice and managing dice rolls in your games and applications.



  - Roll any number and type of dice (d4, d6, d20, d69 etc.)
  - Support for complex dice mechanics:
    - Advantage/disadvantage rolls
    - Exploding dice
    - Success thresholds and hit count a-la Shadowrun and WoD
    - Dice and result modifiers
    - Subtract ones (for specific game systems)
  - Roll logging capability
  - Reproducible results with seed support
  - Save and load frequently used roll configurations



  ```bash
  pip install pycallshot
  ```



  ```python
  import pycallshot as cs




  tower = cs.DiceTower(seed=None, log=False)


  roll = cs.Roll._from_notation('d20+4')  # 1d20+4
  result = tower.roll(roll)


  complex_roll = cs.Roll(
      pool=8,        # Number of dice
      d=6,           # Six-sided dice
      threshold=5,   # Count successes for rolls >= 5
      explode=6,     # On 6s, keep result and roll again
      subtractOnes=False,  # Don't subtract 1s from success count
      diceMod=0,     # No modifier to individual dice
      resultMod=0,   # No modifier to final result
      adv=0          # No advantage/disadvantage
  )
  result = tower.roll(complex_roll)
  ```





  There are two ways to create a roll:

  1. Using the constructor:
  ```python
  roll = cs.Roll(
      pool=3,        # Number of dice
      d=4,           # Die sides
      resultMod=4    # Add 4 to final result
  )
  ```

  2. Using notation (similar to standard RPG notation):
  ```python
  roll = cs.Roll._from_notation('d20adv')  # d20 with advantage
  roll = cs.Roll._from_notation('2d6+4')   # 2d6 plus 4
  ```



  The DiceTower class handles the execution of rolls:

  ```python

  tower = cs.DiceTower(seed=None, log=True)


  result = tower.roll(roll)


  new_result = tower.reroll()


  tower.save(roll, 'attack_roll')


  result = tower.from_loaded()

  ```



  - `pool`: Number of dice to roll
  - `d`: Number of sides on each die
  - `threshold`: Success threshold for counting hits
  - `explode`: Value at which dice "explode" (roll again)
  - `subtractOnes`: Whether to subtract ones from success count
  - `diceMod`: Modifier added to each individual die
  - `resultMod`: Modifier added to final result
  - `adv`: Advantage (1), Disadvantage (-1), or Normal (0)


  The notation string takes the following details:
  - `dX` - X-sided dice
  - `Yd` - the value to the left of `d` is always the the number of dice to roll
  - `adv` - roll with advantage
  - `dis` - roll with disadvantage
  - `!X` - explode values of X or higher
  - `tX` - success threshold X
  - `s` - subtract ones from success count
  - `+X` - add X to the end result of roll
  - `-X` - subtract X from the end result of roll
  Adding modifiers to each die is not supported in notation. Use the `diceMod` parameter instead.



  Enable logging to keep track of all rolls:

  ```python
  tower = cs.DiceTower(log=True)
  ```

  Logs will be saved to `log.txt` with timestamps and detailed roll information.



  The `to_csv` and `from_csv` methods can be used to save and load rolls to and from a CSV file.
  To get the headers to manually set up rolls, run to_csv once. Default path is `saved_rolls.csv`.
  Running from_csv will overwrite the rolls currently stored in memory. Writing to_csv will overwrite existing file.
  Thought about using Pandas for some fancy exporting and sorting, opted to keep independent for such a small project.



  Contributions are welcome! This is a learning project, so please feel free to make changes and submit feedback.



  This project is licensed under the MIT License - see the LICENSE file for details.



  Dmitry Hayday

rpm_license:
  MIT License  Copyright (c) 2024 PyCallShot Contributors  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: 88b33ca5156d772e8b26f304e88f6b963a579163e4f14f12aceb6149125c6d29
name: python-pycarlo-help
arch: noarch
version: 0.10.0
epoch: 0
release: 1
summary: Development documents and examples for pycarlo
url: https://www.montecarlodata.com/
rpm_license: Apache Software License (Apache 2.0)
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycarlo-0.10.0-1.src.rpm
location_href: Packages/python-pycarlo-help-0.10.0-1.noarch.rpm
checksum_type: sha256
description:
  Monte Carlo's Alpha Python SDK!



  Requires Python 3.7 or greater. Normally you can install and update using pip. For instance:

  ```shell
  virtualenv venv
  . venv/bin/activate

  pip install -U pycarlo
  ```

  Developers of the SDK can use:

  ```shell
  make install-with-tests
  . venv/bin/activate
  pre-commit install
  ```



  Pycarlo comprises two components: `core` and `features`.

  All Monte Carlo API queries and mutations that you could execute via the API are supported via the `core` library. Operations can be executed as first class objects, using [sgqlc](https://github.com/profusion/sgqlc), or as raw GQL with variables. In both cases, a consistent object where fields can be referenced by dot notation and the more pythonic snake_case is returned for ease of use.

  The `features` library provides additional convenience for performing common operations like with dbt, circuit breaking, and pii filtering.

  Note that an API Key is required to use the SDK. See [here](https://docs.getmontecarlo.com/docs/developer-resources#creating-an-api-key) for details on how to generate one.





  ```python
  from pycarlo.core import Client, Query, Mutation





  client = Client()










  query = Query()
  query.get_user.__fields__('email')
  print(client(query).get_user.email)



  query = Query()
  query.test_telnet_connection(host='montecarlodata.com', port=443)
  print(client(query))


  print(query)
















  get_table_query = """
  query getTables{
    getTables(first: 10) {
      edges {
        node {
          fullTableId
        }
      }
    }
  }
  """
  response = client(get_table_query)


  for edge in response.get_tables.edges:
      print(edge.node.full_table_id)

  print(response['get_tables']['edges'][0]['node']['full_table_id'])



  mutation = Mutation()
  mutation.generate_collector_template().dc.template_launch_url()
  print(client(mutation))



  mutation = Mutation()
  mutation.generate_collector_template(region='artemis')
  print(client(mutation))

  ```

  Note that you can find Monte Carlo's API reference [here](https://apidocs.getmontecarlo.com/).

  For details and additional examples on how to map (convert) GraphQL queries to `sgqlc` operations please refer to the docs [here](https://sgqlc.readthedocs.io/en/latest/sgqlc.operation.html).



  You can use [pydoc](https://docs.python.org/3.8/library/pydoc.html) to retrieve documentation on any feature packages (`pydoc pycarlo.features`).

  For instance for [circuit breakers](https://docs.getmontecarlo.com/docs/circuit-breakers):

  ```shell
  pydoc pycarlo.features.circuit_breakers.service
  ```



  By default, when creating a client the `default` profile from `~/.mcd/profiles.ini` is used. This file created via [montecarlo configure](https://docs.getmontecarlo.com/docs/using-the-cli#setting-up-the-cli) on the CLI. Note that you can find Monte Carlo's CLI reference [here](https://clidocs.getmontecarlo.com/).

  You can override this usage by creating a custom `Session`. For instance, if you want to pass the ID and Token:

  ```python
  from pycarlo.core import Client, Session

  client = Client(session=Session(mcd_id='foo', mcd_token='bar'))
  ```

  Sessions support the following params:

  - `mcd_id`: API Key ID.
  - `mcd_token`: API secret.
  - `mcd_profile`: Named profile containing credentials. This is created via the CLI (e.g. `montecarlo configure --profile-name zeus`).
  - `mcd_config_path`: Path to file containing credentials. Defaults to `~/.mcd/`.

  You can also specify the API Key, secret or profile name using the following environment variables:

  - `MCD_DEFAULT_API_ID`
  - `MCD_DEFAULT_API_TOKEN`
  - `MCD_DEFAULT_PROFILE`

  When creating a session any explicitly passed `mcd_id` and `mcd_token` params take precedence, followed by environmental variables and then any config-file options.

  Environment variables can be mixed with passed credentials, but not the config-file profile.

  **We do not recommend passing `mcd_token` as it is a secret and can be accidentally committed.**



  There are features that require the Integration Gateway API instead of the regular GraphQL Application API, for example Airflow Callbacks invoked by the `airflow-mcd` library.

  To use the Gateway you need to initialize the `Session` object passing a `scope` parameter and then use `make_request` to invoke Gateway endpoints:

  ```python
  from pycarlo.core import Client, Session

  client = Client(session=Session(mcd_id='foo', mcd_token='bar', scope='AirflowCallbacks'))
  response = client.make_request(path='/airflow/callbacks', method='POST', body={}, timeout_in_seconds=20)
  ```



  The following values also be set by the environment:

  - `MCD_VERBOSE_ERRORS`: Enable logging. This includes a trace ID for each session and request.
  - `MCD_API_ENDPOINT`: Customize the endpoint where queries and mutations are executed.



  To update queries and mutations via introspection, use `make generate`.

  `make test` can be used to run all tests locally. CircleCI manages all testing for deployment. When ready for a review, create a PR against `main`.

  When ready to release, create a new [Github release](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) with a tag using semantic versioning (e.g. `v0.42.0`) and CircleCI will test and publish to PyPI. Note that an existing version will not be deployed.



  - Dashboard: <https://getmontecarlo.com>
  - Product docs: <https://docs.getmontecarlo.com>
  - Status page: <https://status.getmontecarlo.com>
  - API (and SDK): <https://apidocs.getmontecarlo.com>
  - CLI: <https://clidocs.getmontecarlo.com>



  Apache 2.0 - See the [LICENSE](http://www.apache.org/licenses/LICENSE-2.0) for more information.


pkgId: bc6a64d6eb90924480d7f9fb6797886003cfd8c2cbbacde546c97961907d36cd
name: python-pycatcher-help
arch: noarch
version: 0.0.43
epoch: 0
release: 1
summary: Development documents and examples for pycatcher
url: https://github.com/aseemanand/pycatcher/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycatcher-0.0.43-1.src.rpm
location_href: Packages/python-pycatcher-help-0.0.43-1.noarch.rpm
checksum_type: sha256
description:
  For datasets spanning less than two years, the IQR method is employed.
  - **Method**: `find_outliers_iqr(df)`
  - **Output**: Rows flagged as outliers based on IQR.

  Build an IQR plot for a given dataframe (for less than 2 years of data).
  - **Method**: `build_iqr_plot(df)`
  - **Output**: IQR plot for the time-series data.
  <hr style="border:1.25px solid gray">

  * `detect_outliers_classic(df):` Detect outliers in a time-series dataframe using classic seasonal trend decomposition.
  * `detect_outliers_today_classic(df):` Detect outliers for the current date using classic seasonal trend decomposition.
  * `detect_outliers_latest_classic(df):` Detect latest outliers using classic seasonal trend decomposition.
  * `detect_outliers_stl(df):` Detect outliers using Seasonal-Trend Decomposition using LOESS (STL).
  * `detect_outliers_today_stl(df):` Detect outliers for the current date using STL.
  * `detect_outliers_latest_stl(df):` Detect latest outliers using STL.
  * `detect_outliers_mstl(df):` Detect outliers using Multiple Seasonal-Trend Decomposition using LOESS (MSTL).
  * `detect_outliers_today_mstl(df):` Detect outliers for the current date using MSTL.
  * `detect_outliers_latest_mstl(df):` Detect latest outliers using MSTL.
  * `detect_outliers_iqr(df):` Detect outliers in a time-series dataframe when there's less than 2 years of data.
  * `detect_outliers_moving_average(df):` Detect outliers using moving average method.
  <hr style="border:1.25px solid gray">

  * `build_seasonal_outliers_plot_classic(df):` Show outliers using Classical Seasonal Decomposition algorithm.
  * `build_seasonal_plot_classic(df):` Build seasonal plot using classic seasonal trend decomposition.
  * `build_outliers_plot_stl(df):` Show outliers using Seasonal-Trend Decomposition using LOESS (STL).
  * `build_seasonal_plot_stl(df):` Build seasonal plots using STL for a given dataframe.
  * `build_outliers_plot_mstl(df):` Show outliers using Multiple Seasonal-Trend Decomposition using LOESS (MSTL).
  * `build_seasonal_plot_mstl(df):` Build multiple seasonal plots using MSTL for a given dataframe.
  * `build_moving_average_outliers_plot(df):` Show outliers using Moving Average and Z-score algorithm.
  * `build_iqr_plot(df):` Build IQR plot for a given dataframe (for less than 2 years of data).
  * `build_monthwise_plot(df):` Build month-wise plot for a given dataframe.
  * `build_decomposition_results(df):` Get seasonal decomposition results for a given dataframe.
  * `conduct_stationarity_check(df):` Conduct stationarity checks for a feature (dataframe's count column).
  <hr style="border:1.25px solid gray">

   Unlike many open-source packages for outlier detection, PyCatcher provides several distinctive features:
  * **Automatic Model Selection:**
  PyCatcher automatically detects whether to use an additive or multiplicative
  decomposition model, ensuring the most accurate detection of outliers based on the characteristics of your data.
  * **Dynamic Method Selection Based on Data Size:**
  PyCatcher seamlessly switches between Seasonal Trend Decomposition (for datasets spanning at least two years) and
  Inter Quartile Range (IQR) for shorter time periods, offering flexibility without manual intervention.
  * **Wide Time Frequency Support:**
  Supports multiple time-series frequencies — including daily, weekly, monthly, and quarterly data—without requiring
  users to pre-process or adjust their datasets.
  * **Choice of Different Seasonal Trend Algorithms:** Support for outlier detection using various Seasonal Trend
  Decomposition algorithms (Classic; STL; MSTL).
  * **Integrated Diagnostics:** PyCatcher includes comprehensive diagnostic tools, enabling users to visualize outliers,
  trends
  and seasonal patterns, evaluate data stationarity, and analyze decomposition results.
  * **User Interface:** Availability of a simple user interface for the users to upload file for outlier detection using IQR.
  Future versions will include advanced algorithms.
  <hr style="border:1.25px solid gray">

  To see an example of how to use the `pycatcher` package for outlier detection in time-series data, check out the [Example Notebook](https://github.com/aseemanand/pycatcher/blob/main/notebooks/Example%20Notebook.ipynb).
  The notebook provides step-by-step guidance and demonstrates the key features of the library.


pkgId: cbe0bcedeed89da191070c68e65c562fd623ef59a105ed330e3c4deb29b843ad
name: python-pycellga-help
arch: noarch
version: 0.3.4
epoch: 0
release: 1
summary: Development documents and examples for pycellga
url: https://github.com/SevgiAkten/pycellga
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycellga-0.3.4-1.src.rpm
location_href: Packages/python-pycellga-help-0.3.4-1.noarch.rpm
checksum_type: sha256
description:
  [![Doc](https://img.shields.io/badge/docs-dev-blue.svg)](https://sevgiakten.github.io/pycellga/)
  [![License](https://img.shields.io/github/license/SevgiAkten/pycellga)](https://github.com/SevgiAkten/pycellga/blob/main/LICENSE)
  ![Repo Size](https://img.shields.io/github/repo-size/SevgiAkten/pycellga)
  ![Python Version](https://img.shields.io/badge/python-3.x-blue.svg)
  ![GitHub Contributors](https://img.shields.io/github/contributors/SevgiAkten/pycellga)
  [![PyPI version](https://img.shields.io/pypi/v/pycellga.svg)](https://pypi.org/project/pycellga/)




  `pycellga` is a Python package that implements cellular genetic algorithms (CGAs) for optimizing complex problems. CGAs combine the principles of cellular automata and traditional genetic algorithms, utilizing a spatially structured population organized in a grid-like topology. This structure allows each individual to interact only with its neighboring individuals, promoting diversity and maintaining a balance between exploration and exploitation during the optimization process. `pycellga` has machine coded operators with byte implementations. Beside it has Alpha-male CGA, Machine Coded Compact CGA and Improved CGA with Machine Coded Operaors for real-valued optimization problems. The `pycellga` package is designed to handle a wide range of optimization problems, including binary, real-valued, and permutation-based challenges, making it a versatile tool for diverse applications in evolutionary computation.



  - **Cellular Genetic Algorithm (`cga`)**: Efficient implementation of CGAs with various built-in functions for diverse applications.
  - **Improved CGA with Machine-Coded Operators**: Enhanced performance in real-valued optimization problems through the use of `machine-coded` `byte operators`.
  - **Synchronous Cellular Genetic Algorithm (`sync_cga`)**: Simultaneous update of all individuals (cells) in each iteration for synchronized evolution.
  - **Alpha Male Cellular Genetic Algorithm (`alpha_cga`)**: Population divided into social groups, with each group consisting of females selecting the same alpha male.
  - **Compact Cellular Genetic Algorithm (`ccga`)**: Integrates the principles of Cellular Genetic Algorithms with those of Compact Genetic Algorithms for memory efficiency.
  - **Machine-Coded Compact Cellular Genetic Algorithm (`mcccga`)**: Applies machine-coded compact GA to a cellular structure for optimizing real-valued problems.
  - **Customizable**: Offers various customization options to adapt to different optimization problems.




  You can install `pycellga` via pip:

  ```bash
  pip install pycellga
  ```



  For full documentation, visit [here](https://sevgiakten.github.io/pycellga/) or click the badge below:

  [![Doc](https://img.shields.io/badge/docs-dev-blue.svg)](https://sevgiakten.github.io/pycellga/)




  In this section, we'll explain cga method in the optimizer and provide an example of how to use it. The package includes various ready-to-use crossover and mutation operators, along with real-valued, binary, and permutation functions that you can run directly. Examples for other methods are available in the `example` folder, while an example for cga is provided below.



  **cga** is a type of genetic algorithm where the population is structured as a grid (or other topologies), and each individual interacts only with its neighbors. This structure helps maintain diversity in the population and can prevent premature convergence. To specialize the CGA for real-valued optimization problems, ICGA (Improved CGA) with machine-coded representation can be used, applying byte operators. The encoding and decoding of numbers follow the IEEE 754 standard for floating-point arithmetic, yielding better results for continuous functions.



  Suppose we have a problem that we want to minimize using a Cellular Genetic Algorithm (CGA). The problem is defined as a simple sum of squares function, where the goal is to find a chromosome (vector) that minimizes the function.

  The sum of squares function computes the sum of the squares of each element in the chromosome. This function reaches its global minimum when all elements of the chromosome are equal to 0. The corresponding function value at this point is 0.



  Here’s how we can define this problem in Python using the `ExampleProblem` class:

  ```python
  from mpmath import power as pw
  from typing import List

  from pycellga.optimizer import cga
  from pycellga.recombination import ByteOnePointCrossover
  from pycellga.mutation import ByteMutationRandom
  from pycellga.selection import TournamentSelection
  from pycellga.problems import AbstractProblem
  from pycellga.common import GeneType

  class ExampleProblem(AbstractProblem):

      def __init__(self, n_var):

          super().__init__(
              gen_type=GeneType.REAL,
              n_var=n_var,
              xl=-100,
              xu=100
          )

      def f(self, x: List[float]) -> float:
          return round(sum(pw(xi, 2) for xi in x),3)
  ```
  **Usage:**

  ```python
  result = cga(
          n_cols=5,
          n_rows=5,
          n_gen=100,
          ch_size=5,
          p_crossover=0.9,
          p_mutation=0.2,
          problem=ExampleProblem(n_var=5),
          selection=TournamentSelection,
          recombination=ByteOnePointCrossover,
          mutation=ByteMutationRandom,
          seed_par=100
      )

      
      print("Best solution chromosome:", result.chromosome)
      print("Best fitness value:", result.fitness_value)





  ```

  We have provided a basic example above. If you're interested in exploring more examples, you have two options:

  - [Click here to see the other examples](https://github.com/SevgiAkten/pycellga/tree/main/pycellga/example) available directly in the repository.
  - [Please click here to see the documentation](https://sevgiakten.github.io/pycellga/pycellga.example.html#pycellga-example-package) for more detailed examples and explanations.




  Contributions are welcome! Please read the contributing guidelines first.



  To ensure that `pycellga` works as expected, we have provided a comprehensive suite of tests. Follow these steps to run the tests locally:

  1. **Install dependencies**: Make sure you have installed all the necessary dependencies from `requirements.txt`. You can install them using the following command:

      ```bash
      pip install -r requirements.txt
      ```

  2. **Run tests**: Navigate to the root directory of the project and run the test suite using `pytest`.

      ```bash
      pytest
      ```

      This will automatically discover and execute all the test cases.

  3. **Check code coverage** (Optional): You can check the test coverage of the package using `pytest-cov`. First, ensure you have installed `pytest-cov`:

      ```bash
      pip install pytest-cov
      ```

      Then, run the tests with coverage reporting:

      ```bash
      pytest --cov=pycellga
      ```

      A summary of code coverage will be displayed in the terminal.

  4. **Generate coverage reports**: If you want a detailed HTML report of the code coverage, run:

      ```bash
      pytest --cov=pycellga --cov-report=html
      ```

      Open the `htmlcov/index.html` file in a web browser to view the detailed coverage report.

  5. **Add new tests (if applicable)**:
      - If your changes introduce new features or modify existing functionality, write additional test cases to cover these changes.
      - Place your tests in the appropriate subdirectory within the `tests` folder, following the naming convention `test_<feature_name>.py`.

  6. **Review testing guidelines**:
      - Ensure your tests follow the existing style and structure used in the project. Use descriptive function names and provide comments where necessary to clarify the test's purpose.




  This project is licensed under the MIT License - see the LICENSE file for details.



  Developed by Sevgi Akten Karakaya and Mehmet Hakan Satman.
  Inspired by traditional genetic algorithms and cellular automata principles with machine coded operators.
  For more information, please visit the project repository.



  If you use `pycellga` in your research, please cite it as follows:

  **APA Format**

  Karakaya, S. A., & Satman, M. H. (2024). An Improved Cellular Genetic Algorithm with Machine-Coded Operators for Real-Valued Optimisation Problems. *Journal of Engineering Research and Applied Science, 13*(1), 2500-2514.

  **BibTeX Format**

  For LaTeX users, please use the following BibTeX entry to cite `pycellga`:

  ```bibtex
  @article{karakaya2024improved,
    title={An Improved Cellular Genetic Algorithm with Machine-Coded Operators for Real-Valued Optimisation Problems},
    author={Karakaya, Sevgi Akten and Satman, Mehmet Hakan},
    journal={Journal of Engineering Research and Applied Science},
    volume={13},
    number={1},
    pages={2500--2514},
    year={2024}
  }


pkgId: d876b85b2af879e72d465b0d8fc3901e867372c61c000b36a3c0d0ece5887be8
name: python-pycersi-help
arch: noarch
version: 5.5.0
epoch: 0
release: 1
summary: Development documents and examples for pycersi
url: https://github.com/subhrachakraborti/PyCersi
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycersi-5.5.0-1.src.rpm
location_href: Packages/python-pycersi-help-5.5.0-1.noarch.rpm
checksum_type: sha256
description:
  ![Python Versions](https://img.shields.io/pypi/pyversions/pycersi?color=FF8C00&style=for-the-badge)
  ![PyPI - Version](https://img.shields.io/pypi/v/PyCersi?style=for-the-badge&color=FFD700)
  ![License](https://img.shields.io/badge/License-MIT-green.svg?color=008080&style=for-the-badge)
  ![GitHub Release Date](https://img.shields.io/github/release-date/subhrachakraborti/pycersi?style=for-the-badge&display_date=published_at&logoSize=auto&color=708090)
  ![GitHub Release](https://img.shields.io/github/v/release/subhrachakraborti/pycersi?sort=date&display_name=release&style=for-the-badge)









  PyCersi is a simple Python library that provides essential tools for number functions (described below).
  It is easy to use, lightweight, and can be integrated into various Python projects.



  PyCersi offers a collection of number-related utilities that can simplify common mathematical tasks:

  - **Mathematical Constants**

    - `Euler's Constant (e)`
    - `Golden Ratio (GR)`
    - `Logarithm of e (loge)`
    - `Pi (pi)`

  - **Physical Constants**

    - `Astronomical Unit (AU)`
    - `Bohr Radius (a0)`
    - `Electric Permitivity (Eo)`
    - `Elementary Charge (Q)`
    - `Fine Structure Constant (fsc)`
    - `Gravitational Constant (G)`
    - `Light Year (LY)`
    - `Magnetic Permeability (Muo)`
    - `Mass of Earth (ME)`
    - `Mass of Electron (me)`
    - `Mass of Neutron (mn)`
    - `Mass of Proton (mp)`
    - `Mass of Sun (MS)`
    - `Planck's Constant (h)`
    - `Parsec (PC)`
    - `Reduced Plank Constant (hbar)`
    - `Speed of Light (c)`

  - **Additional Constants**

    - `Avogadro's Number (NA)`
    - `Boltzmann Constant (BK)`
    - `Chandrashekhar Limit (CSK)`
    - `Faraday's Constant (F)`
    - `Gas Constant (R)`
    - `Hubble's Constant (H)`
    - `Stefan-Boltzmann Constant (SBK)`

  - **Searchers**

    - `Fibonacci Upto Program : fiboupto`
    - `Fibonacci Range Program : fiborange`
    - `Floyd Triangle Program`
    - `Greatest Common Divisor Program`
    - `Least Common Multiple Program`

  - **Number Property Checkers**

    - `Abundant Number Checker`
    - `Armstrong Number Checker`
    - `Automorphic Number Checker`
    - `Buzz Number Checker`
    - `Circular Prime Number Checker`
    - `Curzon Number Checker`
    - `Composite Number Checker`
    - `CoPrime Number Checker`
    - `Disarium Number Checker`
    - `Dudeney Number Checker`
    - `Duck Number Checker`
    - `Even Number Checker`
    - `Fibonacci Number Checker`
    - `Happy Number Checker`
    - `Harshad Number Checker`
    - `Heteromecic Number Checker`
    - `Krishnamurthy Number Checker`
    - `Magic Number Checker`
    - `Neon Number Checker`
    - `Niven Number Checker`
    - `Oblong Number Checker`
    - `Odd Number Checker`
    - `Palindrome Number Checker`
    - `Perfect Number Checker`
    - `Prime Number Checker`
    - `Pronic Number Checker`
    - `Sunny Number Checker`
    - `Special Number Checker`
    - `Spy Number Checker`
    - `Twin Prime Number Checker`
    - `Twisted Prime Checker`
    - `Unique Number Checker`
    - `Tech Number Checker`
    - `Ugly Number Checker`

  - **Mathematical Functions**

    - `Area of Circle : ar_circle`
    - `Area of Rectangle : ar_rect`
    - `Area of Triangle : ar_triangle`
    - `Combination Calculator : comb`
    - `Digit to Word Converter : digiwords`
    - `Factorial Calculator : fact`
    - `Factors Calculator : factor`
    - `Permutation Calculator : perm`

  - **Stack Functions**

    - `Push Into Stack : s_push`
    - `Pop Out Of Stack : s_push`
    - `Size Of Stack : s_size`
    - `Underflow Stack Checker : s_empty`
    - `Top Of Stack : s_top`
    - `Display Stack : s_display`

  - **PyCersi Privator _(Tkinter Module is required)_**

    - `Data Encryptor`
    - `Data Decryptor`

  These functions are designed to help you perform common number-related operations efficiently and can be easily integrated into larger projects.



  PyCersi is available on PyPI and can be installed using `pip` on various platforms including Windows, macOS, and Linux.



  1. **Install Python**: Make sure Python is installed on your system. You can download it from the official [Python website](https://www.python.org/downloads/).
  2. **Open Command Prompt**: Press `Win + R`, type `cmd`, and hit Enter.
  3. **Run the pip command**:

  ```bash
     pip install pycersi
  ```



  1. **Install Python**: Ensure Python is installed. You can use Homebrew to install it:

  ```bash
     brew install python
  ```

  2. **Open Terminal**: You can find Terminal in Applications > Utilities.

  ```bash
     pip3 install pycersi
  ```



  1. **Update Packages**:

  ```bash
     sudo apt update
  ```

  2. **Install Python and pip**:

  ```bash
     sudo apt install python3 python3-pip
  ```

  3. **Run the pip command**:

  ```bash
     pip3 install pycersi
  ```



  1. For using any _searchers_ functions from PyCersi module, use:
     `pycersi.<name>(limit)`.

     - Example: `pycersi.fibo(limit)`

  2. For using any _checker_ functions from PyCersi module, use:
     `pycersi.is<name>(value)`.

     - Example: `pycersi.issunny(value)`

  3. For using any _mathematical_ function from PyCersi module, use:
     `pycersi.cal<name>(value)`.

     - Example: `pycesi.calfact(value)`

  4. For using any _stack_ function from PyCersi module, use:
     `pycersi.s_<name>(stack,[element])`.

     - Example: `pycesi.s_top(book_stack)`

  5. For using _Pycersi Privator_, use:
     `pycersi.privator()`.

     - Example: `pycersi.privator()`



  I welcome contributions to the project! If you want to contribute, please follow these steps:



  1. **Fork the repository**:

     - Click the "Fork" button at the top right of the repository page to create a copy of the repository on your GitHub account.

  2. **Create a new branch**:

     - Clone your forked repository to your local machine.
     - Create a new branch for your feature or bug fix:
       ```bash
       git checkout -b feature-branch
       ```

  3. **Make your changes**:

     - Make sure your changes follow the project's coding standards.
     - Once you're satisfied with your changes, commit them:
       ```bash
       git commit -m 'Add some feature'
       ```

  4. **Push your changes**:

     - Push your changes to your forked repository:
       ```bash
       git push origin feature-branch
       ```

  5. **Create a pull request**:
     - Open a pull request from your feature branch in your forked repository to the main branch in the original repository.
     - Please ensure that your code includes relevant tests and follows the project's guidelines.



  - **Code Style**: Ensure your code follows the project's coding style and is well-structured.
  - **Testing**: Make sure that your code is tested and includes appropriate unit tests.
  - **Documentation**: Update documentation if necessary for any changes or new features.
  - **Pull Request Review**: Be patient as maintainers review your pull request and possibly request changes.

  Thank you for contributing to PyCersi! Your help is appreciated.



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



  This project is designed to simplify and accelerate everyday tasks, making your work life smoother and more efficient. It is crafted with the utmost care and attention to detail, ensuring that no security vulnerabilities or exceptions occur during its runtime.

  I am deeply committed to making the web a better, safer place. This project is not malware, and any attempt to misuse it as such is highly condemnable and goes against its core purpose. Letâ€™s work together to create a positive impact and enhance our digital experiences.

  - [SafetyCLI Certificate](https://data.safetycli.com/packages/pypi/pycersi/)



  If you have any questions, feel free to open an issue or contact me directly at [mail@subhrachakraborti](mailto:mail@subhrachakraborti.com).



  - Math Library
  - Tkinter Module
  - Python Org
  - Visual Studio Code
  - GitHub
  - Microsoft Corporation
  - SafetyCLI


pkgId: 737ded7db3eb9eb8e900f7e8cda0f9741e7afc10cc472e599dbd20c667e247b5
name: python-pychow-help
arch: noarch
version: 0.1.0
epoch: 0
release: 1
summary: Development documents and examples for pychow
url: https://github.com/amirbabaei97/pychow
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pychow-0.1.0-1.src.rpm
location_href: Packages/python-pychow-help-0.1.0-1.noarch.rpm
checksum_type: sha256
description:
  The Chow Test statistic is calculated as follows:
  \[
  F = \frac{(RSS_{combined} - (RSS_1 + RSS_2)) / k}{(RSS_1 + RSS_2) / (N_1 + N_2 - 2k)}
  \]
  Where:
  - \( RSS_{combined} \): Residual sum of squares for the combined regression model.
  - \( RSS_1, RSS_2 \): Residual sum of squares for the two separate regressions.
  - \( k \): Number of parameters (including intercept) in the regression model.
  - \( N_1, N_2 \): Number of observations in each subset.
  The \( F \)-statistic follows the \( F \)-distribution with degrees of freedom:
  - Numerator: \( k \)


pkgId: 97fc0cce9de43628a8bdcd26f8da22aedce05693af90e23dd1e16595f8f205b0
name: python-pycid-dev-help
arch: noarch
version: 0.0.33
epoch: 0
release: 1
summary: Development documents and examples for pycid-dev
url: https://pypi.org/project/pycid-dev/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycid-dev-0.0.33-1.src.rpm
location_href: Packages/python-pycid-dev-help-0.0.33-1.noarch.rpm
checksum_type: sha256
description:
  pip install build
  pip install twine

  Work in progress API for CID

  edit the setup.cfg
  run build.sh
  run upload.sh


pkgId: 66d8c87d39ba59b6a8de6af8b6d09ff89b875961094b2f6638b7b43d51bb6354
name: python-pycityagent-help
arch: noarch
version: 1.1.11
epoch: 0
release: 1
summary: Development documents and examples for pycityagent
url: https://github.com/tsinghua-fib-lab/pycityagent
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycityagent-1.1.11-1.src.rpm
location_href: Packages/python-pycityagent-help-1.1.11-1.noarch.rpm
checksum_type: sha256
description:
  * [Introduction](#Introduction)
  	* [The Whole Framework of CityAgent](#The-Whole-Framework-of-CityAgent)
  	* [The Workflow of CityAgent](#The-Workflow-of-CityAgent)
  * [Hands On - By An Easy Demo](#Hands-On---By-An-Easy-Demo)

  <!-- TOC -->



  - ![framwork](./static/framework.png)


  - ![workflow](./static/workflow_1.png)



  - You first need to register your account in the [Opencity website](https://opencity.fiblab.net/)
  - Login to the console, create your own app.
  - Get your app_id and app_secret
      - ![app](./static/app.png)


  - There are three parts of a config file: **llm_request**, **citysim_request** and **apphub_request**
  ```yaml
  llm_request:
    text_request:
      request_type: openai / qwen
      api_key: xxx
      model: xxx
      (api_base): xxx (this is an optional config, if you use opanai and want to use your own backend LLM model, default to "https://api.openai.com/v1")
    img_understand_request:
      request_type: openai / qwen
      api_key: xxx
      model: xxx ('gpt-4-turbo' if you use openai)
      (api_base): same as text_request
    img_generate_request:
      request_type: qwen
      api_key: xxx
      model: xxx

  citysim_request:
    simulator:
      server: https://api-opencity-2x.fiblab.net:58081
    map_request:
      mongo_coll: map_beijing_extend_20240205
      cache_dir: ./cache
    route_request:
      server: http://api-opencity-2x.fiblab.net:58082
    streetview_request:
      engine: baidumap / googlemap
      mapAK: baidumap api-key (if you use baidumap engine)
      proxy: googlemap proxy (if you use googlemap engine)

  apphub_request:
    hub_url: https://api-opencity-2x.fiblab.net:58080
    app_id: your APP ID
    app_secret: your APP Secret
    profile_image: the profile image of your agent
  ```
  - Forget about **citysim_request**, let's focus on the other two.


  - As you can see, the whole CityAgent is based on the LLM, by now, there are three different parts of config items: **text_request**, **img_understand_request** and **img_generate_request**
  - **text_request**
    - By now, we support [**qwen**](https://tongyi.aliyun.com/) and [**openai**](https://openai.com/)
        - `Notice: Our environments are basically conducted with qwen. If you prefer to use openai, then you may encounter hardships. AND fell free to issue us.`
    - Get your **api_key** and chooce your **model**
    - If you want to use your backend models, set the **api_base** (only available when using **openai**)
      - default value: "https://api.openai.com/v1"
  - **img_understand_request**
    - By now, we support **qwen** and **openai**
    - If choose **openai**, then the **model** has to be '**gpt-4-turbo**'
    - If you want to use your backend models, set the **api_base** (only available when using **openai**)
        - default value: "https://api.openai.com/v1"
  - **img_generate_request**
    - By now, only [**qwen**] is supported


  - Most of the configuration options in this part are determined, such as **simulator.server**, **map_request.mongo_coll**, **route_request.server**
  - **map_request.cache_dir**: used for storing map data your machine, you can justify the target dir as you wish (**create the dir first**)
  - **streetview_request**: used for obtaining streetview images, by now, we support baidumap engine and googlemap engine
    - if you choose baidumap engine, you need to get a baidumap api-key
      ``` yaml
      streetview_request:
        engine: baidumap
        mapAK: xxxx
      ```
    - if you choose googlemap engine, you need to provide your proxy address, for example:
      ``` yaml
      streetview_request:
        engine: googlemap
        proxy:
          http: http://xxxx
          https: https://xxxx
      ```


  - Used for creating the connection between backend server and client.
  - Put your **app_id** and **app_secret** here.
    - Create your account and apply in [Opencity website](https://opencity.fiblab.net/)



    - Install from **pip** easily.
    ```shell
    pip install pycityagent
    ```


  - Clone this repo
  - Install required packages
    ``` shell
    pip install -r requirements.txt
    ```
  - Install **libGL.so.1**, if you ara using Linux with a suitable package manager: (apt for instance)
    ``` shell
    apt-get install libgl1
    ```


  - Check the **example** folder and copy files from it (`Remember replace the config file`)
  - Look at the Demo: (A citizen Agent demo)
  ```python
  import yaml
  from pycityagent.simulator import Simulator
  from pycityagent.urbanllm import LLMConfig, UrbanLLM
  import asyncio
  import time

  async def main():
      
      with open('config_template.yaml', 'r') as file:
          config = yaml.safe_load(file)

      
      smi = Simulator(config['citysim_request'])

      
      agent = await smi.GetCitizenAgent("name_of_agent", 8)

      
      agent.Image.load_scratch('scratch_template.json')

      
      agent.Brain.Memory.Spatial.MemoryLoad('spatial_knowledge_template.json')
      agent.Brain.Memory.Social.MemoryLoad('social_background_template.json')

      
      agent.ConnectToHub(config['apphub_request'])
      agent.Bind()

      
      llmConfig = LLMConfig(config['llm_request'])
      soul = UrbanLLM(llmConfig)

      
      agent.add_soul(soul)

      
      while True:
          await agent.Run()
          time.sleep(1)

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


  - Following this "Hands On" guide, you have easily created an agent by your hand!
  - You can observe your AGENT in your console or in the [Opencity website](https://opencity.fiblab.net/).
  - HAVE FUN WITH IT!

rpm_license:
  MIT License  Copyright (c) 2024 FIBLAB  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: 00941ac17b21df17f5aa30594343610e84948e1ba06802f9217d8c41f48a3e8e
name: python-pycityproto-help
arch: noarch
version: 2.1.1
epoch: 0
release: 1
summary: Development documents and examples for pycityproto
url: https://github.com/tsinghua-fib-lab/cityproto
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycityproto-2.1.1-1.src.rpm
location_href: Packages/python-pycityproto-help-2.1.1-1.noarch.rpm
checksum_type: sha256
description:
  proto 文件仓库。



  - `city.person`: 智能体
  - `city.comm`: 通信
  - `city.config`: 配置文件基本组件
  - `city.elec`: 电网
  - `city.event`: 城市事件
  - `city.geo`: 坐标体系
  - `city.map`: 地图
  - `city.routing`: 路径规划
  - `city.social`: 社交
  - `city.streetview`: 街景
  - `city.sync`: 全局同步器
  - `city.traffic`: 交通
  - `city.traffic_light`: 信控
  - `city.trip`: 出行与日程
  - `city.water`: 水网



  以[buf](https://github.com/bufbuild/buf)作为 linter，按 buf 的要求作为标准。

  另外，为避免二义性，所有不在完全相同命名空间下的跨文件引用均需要写出完成包名。

  在相同命名空间下的，不要引入包名（主要是针对`xxx.proto`与`xxx_service.proto`）。

  参考：

  1. <https://developers.google.com/protocol-buffers/docs/style>
  2. <https://github.com/uber/prototool/blob/dev/style/README.md>

  关于 enum: prefer uber 的 style

  1. 独立定义 enum，不嵌入 message
  2. enum 的 item 名称加 enum name 作为前缀



  - 所有浮点数采用 double 精度。
  - .proto 中不包含任何`option`，需要指定`option`的目标语言采用[buf managed mode](https://docs.buf.build/tour/use-managed-mode)进行管理。
  - 采用聚合性质的 message 作为 mongodb collection 的语义表示，并便于开发 Golang 的数据读取代理。



  完全支持通过 Golang struct tag 机制实现 `bson` 到 `pb` 的快速转换，并删去不能在 `bson` 中体现的语义：

  - 所有的 `oneof` 由 optional 替代，`oneof` 的功能依靠约定实现。
    - 原因：struct tag 无法正确处理`oneof`，`bson`无法体现`oneof`语义，`oneof`语义实际作用价值不大，目前主要体现在`map_position`与`departure`中。
  - 所有的`float`替换为`double`。
    - 原因：`bson`中没有`float32`，`python`没有`float32`，`C++`在 64 位 CPU 上采用`float32`与`float64`计算速度相同。
  - 所有的`uint32`替换为`int32`。
    - 原因：`bson`中没有`uint`，`python`没有`uint`，同时简化`C++`与`go`代码编写（统一用`int32`）。
  - 枚举在`bson`中存储由字符串替换为整数。
    - struct tag 无法正确处理字符串形式的枚举。
  - 丰富`bson`中的 external 数据项，解决关联到原始数据的问题。



  完成git仓库修改后，执行以下命令：
  ```bash
  git tag v${major}.${minor}.${patch}  # 例如 v0.1.0，设置版本号
  git push --tags  # 推送版本号
  ```



  ```bash
  go get -u git.fiblab.net/sim/protos@v${major}.${minor}.${patch}
  ```



  ```shell
  pip install pycityproto
  ```

  安装 grpcio 的过程中，如果出现

  ```
  pip install fails with "No such file or directory: 'c++': 'c++'"
  ```

  代表缺少 C++相关依赖。在 Debian 镜像上，执行：

  ```shell
  sudo apt install build-essential
  ```

  在 alpine 镜像上，执行：

  ```shell
  apk add g++
  ```





  使用`npm install`命令安装SDK：
  ```bash
  npm install @fiblab/cityproto
  ```



  使用`yarn add`命令安装SDK：
  ```bash
  yarn add @fiblab/cityproto
  ```

rpm_license:
  MIT License  Copyright (c) 2024 FIBLAB  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: f65badc7b4fa83b3aaede6e39575485b92a8dde48b9c08b431d7661d67d1ccc7
name: python-pycldf-help
arch: noarch
version: 1.40.0
epoch: 0
release: 1
summary: Development documents and examples for pycldf
url: https://github.com/cldf/pycldf
rpm_license: Apache 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycldf-1.40.0-1.src.rpm
location_href: Packages/python-pycldf-help-1.40.0-1.noarch.rpm
checksum_type: sha256
description:
  dc:bibliographicCitation  Her, One-Soon, Harald Hammarström and Marc Allassonnière-Tang. 2022.
  dc:conformsTo             http://cldf.clld.org/v1.0/terms.rdf#StructureDataset
  dc:identifier             https://wacl.clld.org
  dc:license                https://creativecommons.org/licenses/by/4.0/
  dc:source                 sources.bib
  dc:title                  World Atlas of Classifier Languages
  dcat:accessURL            https://github.com/cldf-datasets/wacl
  rdf:ID                    wacl
  rdf:type                  http://www.w3.org/ns/dcat#Distribution


pkgId: 80d50e70215992fdfc04311b118122e73b85507a5eb6f8dbb02a93957f86fafa
name: python-pyclics-help
arch: noarch
version: 3.1.0
epoch: 0
release: 1
summary: Development documents and examples for pyclics
url: https://github.com/clics/pyclics
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyclics-3.1.0-1.src.rpm
location_href: Packages/python-pyclics-help-3.1.0-1.noarch.rpm
checksum_type: sha256
description:
  python package implementing the CLICS processing workflow

  [![PyPI](https://img.shields.io/pypi/v/pyclics.svg)](https://pypi.org/project/pyclics)


  See [clics3](https://github.com/clics/clics3/) for an example application.


pkgId: ec3b7a8c14442a0c2f33e2d1e0d235d0b7a3e595ce81619e33e2013ffbbc868d
name: python-pyclustertend-help
arch: noarch
version: 1.9.0
epoch: 0
release: 1
summary: Development documents and examples for pyclustertend
url: https://github.com/lachhebo/pyclustertend
rpm_license: BSD-3-Clause
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyclustertend-1.9.0-1.src.rpm
location_href: Packages/python-pyclustertend-help-1.9.0-1.noarch.rpm
checksum_type: sha256
description:
  [![Build Status](https://travis-ci.com/lachhebo/pyclustertend.svg?branch=master)](https://travis-ci.com/lachhebo/pyclustertend)  [![PyPi Status](https://img.shields.io/pypi/v/pyclustertend.svg?color=brightgreen)](https://pypi.org/project/pyclustertend/) [![Documentation Status](https://readthedocs.org/projects/pyclustertend/badge/?version=master)](https://pyclustertend.readthedocs.io/en/master/) [![Downloads](https://pepy.tech/badge/pyclustertend)](https://pepy.tech/project/pyclustertend) [![codecov](https://codecov.io/gh/lachhebo/pyclustertend/branch/master/graph/badge.svg)](https://codecov.io/gh/lachhebo/pyclustertend)
  [![DOI](https://zenodo.org/badge/187477036.svg)](https://zenodo.org/badge/latestdoi/187477036)

  pyclustertend is a python package specialized in cluster tendency. Cluster tendency consist to assess if clustering algorithms are relevant for a dataset.

  Three methods for assessing cluster tendency are currently implemented and one additional method based on metrics obtained with a KMeans estimator :



  - [x] Hopkins Statistics
  - [x] VAT
  - [x] iVAT

  - [x] Metric based method (silhouette, calinksi, davies bouldin)



  ```shell
      pip install pyclustertend
  ```





  ```python
      >>>from sklearn import datasets
      >>>from pyclustertend import hopkins
      >>>from sklearn.preprocessing import scale
      >>>X = scale(datasets.load_iris().data)
      >>>hopkins(X,150)
      0.18950453452838564
  ```



  ```python
      >>>from sklearn import datasets
      >>>from pyclustertend import vat
      >>>from sklearn.preprocessing import scale
      >>>X = scale(datasets.load_iris().data)
      >>>vat(X)
  ```

  <img height="350" src="https://raw.githubusercontent.com/lachhebo/pyclustertend/screenshots/vat.png" />



  ```python
      >>>from sklearn import datasets
      >>>from pyclustertend import ivat
      >>>from sklearn.preprocessing import scale
      >>>X = scale(datasets.load_iris().data)
      >>>ivat(X)
  ```

  <img height="350" src="https://raw.githubusercontent.com/lachhebo/pyclustertend/screenshots/ivat.png" />



  It's preferable to scale the data before using hopkins or vat algorithm as they use distance between observations. Moreover, vat and ivat algorithms
  do not really fit to massive databases. A first solution is to sample the data before using those algorithms.


pkgId: 625ce62d45b18ac14ad248eaff19f17a24f61ca0af6c0191a612a3853a8cf34e
name: python-pycodes2json-help
arch: noarch
version: 1.1.0
epoch: 0
release: 1
summary: Development documents and examples for pycodes2json
url: https://github.com/lechplace/py2json
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycodes2json-1.1.0-1.src.rpm
location_href: Packages/python-pycodes2json-help-1.1.0-1.noarch.rpm
checksum_type: sha256
description:
  `py2json` is a Python package that scans a directory and its subdirectories for `.py` files, excluding hidden directories (those starting with a `.`), and merges their contents into a single JSON file. It simplifies the process of aggregating Python code into a structured JSON format for further analysis or processing.



  - Automatically scans a specified directory and its subdirectories for `.py` files, skipping hidden directories.
  - Outputs the merged contents into a well-formatted JSON file.
  - Handles exceptions for missing directories, permissions, and unexpected errors.



  Install the package using pip:

  ```bash
  pip install py2json
  ```



  After installation, use the command-line interface (CLI) tool:

  ```bash
  py2json <directory_path> <output_json_path>
  ```



  - `<directory_path>`: Path to the directory containing `.py` files.
  - `<output_json_path>`: Path to save the resulting JSON file.



  Suppose you have a directory named `scripts` containing `.py` files and subdirectories. To merge them into a JSON file named `output.json`, run:

  ```bash
  py2json scripts output.json
  ```

  This will create a JSON file `output.json` with the contents of all `.py` files in the `scripts` directory and its subdirectories, excluding hidden directories.



  The package gracefully handles the following errors:

  - **FileNotFoundError**: If the specified directory does not exist.
  - **PermissionError**: If the script lacks permissions to read files or write the output file.
  - **Other Errors**: Any unexpected errors are logged for debugging.



  Contributions are welcome! Feel free to submit issues or pull requests on the [GitHub repository](https://github.com/lechplace/py2json).



  This project is licensed under the MIT License. See the `LICENSE` file for details.


pkgId: abd4c4540443a4e789c19b3af848198d0e9abc21150915cdd3e11d8423588853
name: python-pycolint-help
arch: noarch
version: 0.2.0
epoch: 0
release: 1
summary: Development documents and examples for pycolint
url: https://pypi.org/project/pycolint/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycolint-0.2.0-1.src.rpm
location_href: Packages/python-pycolint-help-0.2.0-1.noarch.rpm
checksum_type: sha256
description:
  Why another commit linter? Because all available tools seemed to do too much,
  while lacking either customizability or a sane way to communicate semantics
  to the developer.
  PyCoLint is a commitlinter written in python.
  It's only job is to help you adhere to the syntax defined by the
  conventional commit specification[https://www.conventionalcommits.org/en/v1.0.0/].
  It does not know anything about the semantics of commit messages.
  That means it does not offer any semantics related features.
  Instead of having to care about version bumping etc., we want to provide
  helpful error messages and other feedback that should help a team to
  stick to their conventions.

  The linter warns about:

  - exceeding maximum line length
  - empty scope, e.g., `"feat(): empty scope"`
  - missing type
  - ending the commit msg hdr with a `.`
  - missing separation between body and header
  - empty body
  - whitespace in scopes

  We try to stick close to the official conventional commit specification.
  As such we do not restrict the usable types nor the scopes in any way.




  - [ ] check against a list of user defined types
  - [ ] check against a list of user defined scopes
  - [ ] configure via `pyproject.toml`
  - [ ] add pre-commit hook
  - [ ] warn about past tense for very common cases, e.g., "added", "made", "did",...



  - [ ] only the last token corresponding to an error is marked
  - [ ] Unclosed parentheses/missing scope is not detected for this message `"feat(: msg."`


pkgId: e6ab39642ab6a20d89c884795c8a8a78e2a0d138ba0554d010e2180d14dc28f0
name: python-pycolor_palette-loguru-help
arch: noarch
version: 0.2.1
epoch: 0
release: 1
summary: Development documents and examples for pycolor_palette-loguru
url: https://pypi.org/project/pycolor_palette-loguru/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycolor_palette-loguru-0.2.1-1.src.rpm
location_href: Packages/python-pycolor_palette-loguru-help-0.2.1-1.noarch.rpm
checksum_type: sha256
description:
  @mainfile

  This library is designed to display text using colors and formatting, as well as logging and debugging. Debugging is done using logger.

  Used projects: [icecream source code](https://github.com/gruns/icecream) and [loguru module](https://github.com/Delgan/loguru)



  ```bash
  pip3 install pycolor_palette-loguru
  ```



  ```python

  """pycolor_palette Example File.

  Copyright Alexeev Bronislav (C) 2024
  """
  from loguru import logger
  from pycolor_palette_loguru.logger import PyDBG_Obj, benchmark, set_default_theme, debug_func, setup_logger
  from pycolor_palette_loguru.paint import info_message, warn_message, error_message, other_message, FG, Style, debug_message, run_exception
  from pycolor_palette_loguru.pygments_colorschemes import CatppuccinMocha

  set_default_theme(CatppuccinMocha)
  pydbg_obj = PyDBG_Obj()
  setup_logger('DEBUG')


  @benchmark
  @debug_func
  def debug_print() -> list:
  	num = 12
  	float_int = 12.12
  	string = 'Hello'
  	boolean = True
  	list_array = [1, 2, 3, 'Hi', True, 12.2]
  	dictionary = {1: "HELLO", 2: "WORLD"}

  	pydbg_obj(num, float_int, string, boolean, list_array, dictionary)


  debug_print()
  logger.debug("This is debug!")
  logger.info("This is info!")
  logger.warning("This is warning!")
  logger.error("This is error!")


  info_message('INFORMATION')
  warn_message('WARNING')
  error_message('EXCEPTION')
  debug_message('DEBUG')
  other_message('SOME TEXT', 'OTHER')

  info_message('Highlight INFORMATION', True)
  warn_message('Highlight WARNING', True)
  error_message('Highlight EXCEPTION', True)
  debug_message('Highlight DEBUG', True)
  other_message('Highlight SOME TEXT', 'OTHER', True)

  print(f'{FG.red}{Style.bold}BOLD RED{Style.reset}{Style.dim} example{Style.reset}')

  run_exception('EXCEPTION')
  ```


pkgId: e43c6682aa76f33396c6751d279c2c48acf607d210150f7d9e237205b143ec70
name: python-pycomptox-help
arch: noarch
version: 0.1.0
epoch: 0
release: 1
summary: Development documents and examples for pycomptox
url: https://pypi.org/project/pycomptox/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycomptox-0.1.0-1.src.rpm
location_href: Packages/python-pycomptox-help-0.1.0-1.noarch.rpm
checksum_type: sha256
description:
  This is a wrapper for https://comptox.epa.gov/ toxicology analysis APIs.


  To install PyCompTox, use the following command:
  ```
  pip install pycomptox
  ```

  PyCompTox is designed to be user-friendly and intuitive. Detailed documentation and examples are available to help you get started quickly.


  Comprehensive documentation is available at [PyCompTox Documentation](https://example.com/docs). It includes tutorials, API references, and usage examples.


  We welcome contributions from the community. Please read our [Contributing Guidelines](https://example.com/contributing) to get started.


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



  We welcome contributions from the community! Here are some ways you can contribute:

  1. **Report Bugs**: If you find a bug, please report it by opening an issue on our [GitHub Issues](https://github.com/Kunal627/pycomptox/issues) page.

      **Fix SSL Issues** : Install package "pip-system-certs" to fix SSL issues.
      **Example**: pip install pip-system-certs

  2. **Suggest Features**: Have an idea for a new feature? Feel free to suggest it by opening a feature request on our [GitHub Issues](https://github.com/Kunal627/pycomptox/issues) page.

  3. **Submit Pull Requests**: If you want to contribute code, you can fork the repository, make your changes, and submit a pull request. Please ensure your code follows our coding standards and includes tests.


  We would like to thank all contributors and the open-source community for their support and contributions.

rpm_license:
  MIT License  Copyright (c) 2024 Kunal627  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: 4594ccfe1beea682ae1d5511035bd4f8a234b3f525fbf1c0ae0578027f602799
name: python-pycons3rt3-help
arch: noarch
version: 0.0.25
epoch: 0
release: 1
summary: Development documents and examples for pycons3rt3
url: https://pypi.org/project/pycons3rt3/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycons3rt3-0.0.25-1.src.rpm
location_href: Packages/python-pycons3rt3-help-0.0.25-1.noarch.rpm
checksum_type: sha256
description:
  Python3 integration for CONS3RT



  * Logging framework
  * Python3 SDK for the CONS3RT API
  * Gather CONS3RT deployment info and properties
  * Run Linux commands from python
  * Configure networking
  * Integrate with AWS S3 and EC2
  * Nexus Artifact Repository downloads
  * Post to Slack





  If you have Python 3.6+ installed, you can run one of the following:

  `pip3 install pycons3rt3`
  `python3 -m pip install pycons3rt3`



  ~~~
  git clone https://github.com/cons3rt/pycons3rt3
  cd pycons3rt3
  python3 -m venv venv
  source venv/bin/activate
  python3 -m pip install build
  python3 -m pip install .
  ~~~



  When installed, pycons3rt determines and creates a system directory (`pycons3rt_system_home`) and
  a local user directory (`pycons3rt_user_home`).

  The default locations for `pycons3rt_system_home` are here:

  * Linux: `~/.cons3rt`
  * MacOS: `~/.cons3rt`
  * Windows: `C:\cons3rt`

  The default locations for `pycons3rt_user_home` is: `~/.cons3rt` on all OS types.



  To change the location of `pycons3rt_system_home` and `pycons3rt_user_home`, set the environment variable
  `PYCONS3RT_HOME` to an existing directory.  This directory will be used for both system and user home directories.

  To do this on Linux or macOS, add the following to `~/.bash_profile`:

  ```
  export PYCONS3RT_HOME="/path/to/desired/directory"
  ```

  On Windows, add the `PYCONS3RT_HOME` environment variable to the system settings.

  The following directories are also created:

  * Config: `pycons3rt_system_home/conf/`
  * Logs: `pycons3rt_user_home/log/`
  * Source: `pycons3rt_user_home/src/`

  If installed from source via asset, the asset clones the pycons3rt source code here for installation:

  * `pycons3rt_user_home/src/pycons3rt`

  The logging configuration file is installed here:

  * `pycons3rt_system_home/conf/pycons3rt-logging.conf`

  By default, pycons3rt log files will output here:

  * `pycons3rt_user_home/log/pycons3rt-info.log`
  * `pycons3rt_user_home/log/pycons3rt-warn.log`
  * `pycons3rt_user_home/log/pycons3rt-debug.log`



  pycons3rt3 provides a python3 SDK for using the CONS3RT ReST API.

  To access the ReST API you will need:

  * An active CONS3RT Account
  * Access to a project
  * A CONS3RT project-based ReST API token
  * For sites that require Client Certificate Authentication you will need a valid PKI certificate (ECA)

  > pycons3rt3 does **not** support CAC authentication at this time

  If you have an ECA certificate in p12 or pfx format, convert it to a password-less pem file:

  `openssl pkcs12 -in certfile.pfx -out certfile.pem -nodes`



  To configure pycons3rt3 for the CONS3RT ReST API type:

  `cons3rt config`

  After entering your info, a config file is created here:

  `pycons3rt_user_home/conf/config.json`

  This configuration will automatically load for ReST API calls.



  The asset CLI command helps you automatically create and import assets:

  ```

  asset validate --asset_dir=/path/to/asset


  asset create --asset_dir=/path/to/asset
  ```

  * Creates an asset zip file `AssetName.zip` in your Downloads directory

  Specify the destination directory:

  `asset create --asset_dir=/path/to/asset --dest_dir=/path/to/directory`

  * Creates an asset zip file `AssetName.zip` in the specified directory

  Import an asset into CONS3RT using an asset directory:

  `asset import --asset_dir=/path/to/asset`

  * Creates an asset zip, and imports the zip file into CONS3RT
  * Adds an `asset.yml` file to the asset directory with the site info and asset ID

  Import an asset using a zip file, and keep the zip file:

  `asset import --zip=/path/to/asset.zip --keep`

  Import an asset and set the visibility to the project-level:

  `asset import --asset_dir=/path/to/asset --visibility=OWNING_PROJECT`

  Update an existing asset from an asset directory using `asset_data.yml`:

  `asset update --asset_dir=/path/to/asset --id=12345`

  Update an existing asset from an asset zip file, specify the asset ID, and keep the zip:

  `asset update --zip=/path/to/asset.zip --id=12345 --keep`

  Update an existing asset in CONS3RT by ID:

  `asset update --asset_dir=/path/to/asset --id=12345`

  Update an asset using asset data, set log level, but specify which site URL, project, and ID to update:

  `asset update --asset_dir=/path/to/asset --loglevel=DEBUG --url=app.qa.cons3rt.io --project=jackpine --id=35610`

  * Uses the asset ID in the asset.yml file
  * Creates an asset zip, and updates the asset ID

  Update an asset and set the visibility to the community-level:

  `asset update --asset_dir=/path/to/asset --visibility=COMMUNITY`

  Query for software assets:

  `asset query --asset_type=software`

  Query for the latest community container asset containing "nginx":

  `asset query --asset_type=containers --asset_subtype=DOCKER --expanded --community --name nginx --latest`

  Use the `queryids` command to query for just the latest asset ID for asset with name "nginx":

  `asset queryids --asset_type=containers --latest --name=nginx`



  Usage:

  `cons3rt <command> <subcommands> <args>`

  Interactive command to create a `config.json` file:

  `cons3rt config`

  > This creates a config file at the default location: `~/.cons3rt/conf/config.json`

  > If `PYCONS3RT_HOME` environment variable is defined, config file location: `${PYCONS3RT_HOME}/conf/config.json`

  Specify a config file location:

  `cons3rt --config /path/to/config.json <command> <subcommands> <args>`



  Permissions:
  * **Team Manager** role

  The `--id=1` or `--ids=1,2,3` args indicate cloud IDs

  ```

  cons3rt cloud delete --id=1


  cons3rt cloud list


  cons3rt cloud retrieve --id=1


  cons3rt cloud template --id=1 --share --name 'cons3rt-redhat-8'


  cons3rt cloud template --id=1 --share --all


  cons3rt cloud run list --id=1
  cons3rt cloud run list --ids=1,2,3,4,5


  cons3rt cloud run hosts --id=1
  cons3rt cloud run hosts --ids=1,2,3,4,5


  cons3rt cloud run gpus --id=1
  cons3rt cloud run gpus --ids=1,2,3,4,5


  cons3rt cloud run hosts --id=1 --load
  cons3rt cloud run gpus --id=1 --load

  ```



  Permissions:
  * **Team Manager** role

  The `--id=1` or `--ids=1,2,3` args can be used to indicate which cloudspace IDs.

  ```

  cons3rt cloudspace release_active_runs --ids=123,124


  cons3rt cloudspace delete_inactive_runs --id=123


  cons3rt cloudspace deallocate --id 123


  cons3rt cloudspace list


  cons3rt cloudspace --list_active_runs --id=123


  cons3rt cloudspace template delete --id=1 --name 'cons3rt-redhat-8'


  cons3rt cloudspace template delete --id=1 --all


  cons3rt cloudspace template list --id=1


  cons3rt cloudspace template register --id=1 --name 'cons3rt-redhat-8'


  cons3rt cloudspace template register --id=1 --names 'cons3rt-redhat-8,cons3rt-redhat-9'


  cons3rt cloudspace template register --all


  cons3rt cloudspace retrieve --id=16


  cons3rt cloudspace template share --provider_id=1 --ids=2,3,4,5,6 --name 'cons3rt-redhat-8'


  cons3rt cloudspace template share --provider_id=1 --ids=2,3,4,5,6 --names 'cons3rt-redhat-8,cons3rt-redhat-9'


  cons3rt cloudspace template share --provider_id=1 --ids=2,3,4,5,6 --all


  cons3rt cloudspace unregister --id 123
  ```



  Permissions:
  * **Site Admin** role

  ```

  cons3rt user list --state=ACTIVE
  ```



  Permissions:
  * **Team Manager** role

  The `--id=1` or `--ids=1,2,3` args can be used to indicate which team IDs.

  ```

  cons3rt team list


  cons3rt team service list --id=2


  cons3rt team service users --id=2 --tool=AtlassianJira


  cons3rt team service users --id=2


  cons3rt team collabtools users --id=2


  cons3rt team collabtools users --ids=2,5 --unique


  cons3rt team collabtools users --ids=2,5 --unique --blocked


  cons3rt team members list --id=11


  cons3rt team members list --id=11 --blocked


  cons3rt team members list --ids=1,2,3,4,5 --unique


  cons3rt team members list --username=USERNAME --unique


  cons3rt team managers


  cons3rt team managers --ids=2,5


  cons3rt team managers --username=johndoe


  cons3rt team report runs --id=3


  cons3rt team report assets --id=3


  cons3rt team run list --id=3


  cons3rt team run snapshot create --id=3


  cons3rt team run snapshot restore --id=3


  cons3rt team run snapshot delete --id=3


  cons3rt team run snapshot create --id=3 --skip=12345,12346,12347


  cons3rt team run power off --id=3


  cons3rt team run power on --id=3


  cons3rt team run power restart --id=3


  cons3rt team run power off --id=3 --unlock
  ```




  Permissions:
  * **Team Manager** role
  * **Project Owner** or **Project Manager** role

  The `--id=1` or `--ids=1,2,3` args can be used to indicate which project IDs.

  ```

  cons3rt project list


  cons3rt project get --id=3


  cons3rt project members list --id=3


  cons3rt project run list --ids=3,6,9


  cons3rt project run snapshot create --id=3


  cons3rt project run snapshot restore --id=3


  cons3rt project run snapshot delete --id=3


  cons3rt project run snapshot create --id=3 --skip=12345,12346,12347


  cons3rt project run on --id=3
  cons3rt project run off --id=3


  cons3rt project run delete --ids=3,4,5


  cons3rt project run release --id=3
  ```



  Permissions:
  * **Site Admin** role

  ```

  ractl print cloudspace --id=116


  ractl print site
  ```






  With the default configuration log files go to: `pycons3rt_user_home/log/`, and INFO
  level is printed to stdout.  To customize pycons3rt logging, modify the
  logging configuration file.

  Logging example:

  ~~~
  import logging
  from pycons3rt3.logify import Logify

  mod_logger = Logify.get_name() + '.your_module'

      

      class MyClass(object):
          def __init__(self, dep=None):
              self.cls_logger = mod_logger + '.MyCLass'
      	def class_method(self):
      		log = logging.getLogger(self.cls_logger + '.class_method')
      		log.info('Class Method Logging')

      def main():
          log = logging.getLogger(mod_logger + '.main')
          log.debug('DEBUG')
      	log.info('INFO')
      	log.warn('WARN')
      	log.error('ERROR')
  ~~~



  This module provides a set of useful utilities for accessing
  deployment related info on deployment run hosts.

  ~~~
  from pycons3rt3.deployment import Deployment


  dep = new Deployment()


  print(dep.deployment_name)


  print(dep.cons3rt_role_name)


  print(dep.properties)


  my_value = dep.get_value('cons3rt.user')


  print(dep.scenario_network_info)


  print(dep.asset_dir)
  ~~~



  This module provides an interface for posting anything to Slack!

  ~~~
  from pycons3rt3.slack import SlackMessage
  from pycons3rt3.slack import SlackAttachments


  slack_msg = SlackMessage(
                  my_webhook_url,
                  channel='#DevOps',
                  icon_url='http://cool-icon-url',
                  text='This is a Slack message',
                  user='@sender_username')


  slack_attachment = SlackAttachment(
                         fallback='This is the fallback text',
                         color='green',
                         pretext='Pretext',
                         text='Moar text!')

  slack_msg.add_attachment(slack_attachment)


  slack_msg.send()
  ~~~



  This module provides simple method of fetching artifacts from a nexus
  repository.

  ```
  from pycons3rt3 import nexus

  nexus.get_artifact_nexus(
      base_url='https://nexus.example.com',
      repository='releases|snapshots|etc',
      group_id='groupId',
      artifact_id='artifactId',
      packaging='zip|jar|etc',
      destination_dir='/path/to/dest/dir',
      version='x.y.z',
      classifier='classifier',
      suppress_status=True|False,
      overwrite=True|False,
      username='your_username',
      password='your_password'
  )

  search_results = search_nexus_assets(
      base_url='https://nexus.example.com',
      repository='releases|snapshots|etc',
      group='groupId',
      name='artifactId',
      extension='zip|jar|etc',
      sort_type='version',
      direction='asc|desc',
      version='x.y.z',
      classifier='classifier',
      username='your_username',
      password='your_password'
  )

  result = search_latest(
      base_url='https://nexus.example.com',
      repository='releases|snapshots|etc',
      group='groupId',
      name='artifactId',
      extension='zip|jar|etc',
      username='your_username',
      password='your_password'
  )
  ```



  The `nexus` CLI command is an easy way to search for and retrieve artifacts from Nexus v3 using its rest API.

  Authentication options:

  * Provide both `--username` and `--password` args in the CLI call
  * Configure a `~/.netrc` file, and specify the `--netrc` arg in the CLI call

  Specify a version or latest:

  * To get a specific version, use `--version x.y.z`
  * To get the latest, use `--latest`

  For targeting, use: `--group`, `--artifactId`, `--repo`, `--classifier`, `--packaging`.

  Additional options: `--overwrite`, `--suppress`

  ```

  nexus search --group 'com.cons3rt' --artifactId 'cons3rt-pyotto' --packaging zip --repo releases --netrc --url 'https://nexus.jackpinetech.com' --latest


  nexus get --group 'com.cons3rt' --artifactId 'cons3rt-pyotto' --repo releases --packaging zip --netrc --url 'https://nexus.jackpinetech.com' --latest


  nexus get --group 'com.cons3rt' --artifactId 'cons3rt-package' --repo snapshots --packaging zip --netrc --url 'https://nexus.jackpinetech.com' --latest


  nexus get --group 'com.cons3rt' --artifactId 'cons3rt-pyotto' --repo releases --packaging zip --netrc --url 'https://nexus.jackpinetech.com' --version 24.7.0
  ```



  Executes commands on a Linux system.  See the source code for specific available
  commands but the most commonly used `run_command` is shown below.



  Parameters

  * command: List containing the command and any additional args
  * timeout_sec: (optional) Float specifying how long to wait before
  terminating the command.  Default is 3600.0.
  * output: (boolean) True collects the output of the command.  In some cases
  suppressing the command output improves stability.

  Returns:

  * A dictionary containing "code", the numeric exit code from the command, and
  "output" which captures the stdout/strerrif output was set `True`. Sample output:

  Raises: `CommandError` when there is a problem running the command.

  ~~~
  {
      "code": "0",
      "output": "stdout/stderr from the command"
  }
  ~~~

  Example Usage:

  ~~~
  from pycons3rt3.bash import run_command
  from pycons3rt3.bash import CommandError
  command = ['ls', '/root']
  try:
      result = run_command(command, timeout_sec=60.0)
      code = result['code']
      output = result['output']
  except CommandError:
      raise
  if code == 0:
      log.info('Successfully executed command {c}'.format(s=command))
  else:
      msg = 'There was a problem running command returned code {c} and produced output: {o}'.format(
                      c=code, o=output)
              log.error(msg)
              raise CommandError(msg)
  ~~~

  More to come....

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


pkgId: 4dbf8dfca7ff9de91ba6b45ac94f7261f224429ca9d10b7ad15ac6053bd85142
name: python-pycontrails-debuginfo
arch: aarch64
version: 0.54.5
epoch: 0
release: 1
summary: Debug information for package python-pycontrails
url: https://pypi.org/project/pycontrails/
rpm_license: Apache-2.0
rpm_group: Development/Debug
rpm_buildhost: localhost
rpm_sourcerpm: python-pycontrails-0.54.5-1.src.rpm
location_href: Packages/python-pycontrails-debuginfo-0.54.5-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug information for package python-pycontrails.
  Debug information is useful when developing applications that use this
  package or when debugging this package.


pkgId: 2658b2b1206c880f49e87dad26a4aa875b2588007b8bf241880e05702f20b171
name: python-pycontrails-debugsource
arch: aarch64
version: 0.54.5
epoch: 0
release: 1
summary: Debug sources for package python-pycontrails
url: https://pypi.org/project/pycontrails/
rpm_license: Apache-2.0
rpm_group: Development/Debug
rpm_buildhost: localhost
rpm_sourcerpm: python-pycontrails-0.54.5-1.src.rpm
location_href: Packages/python-pycontrails-debugsource-0.54.5-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug sources for package python-pycontrails.
  Debug sources are useful when developing applications that use this
  package or when debugging this package.


pkgId: ecfd20bb01abedaffc0d4aa6ac2e775823bb02185581eed110bd4abb9855316e
name: python-pycontrails-help
arch: aarch64
version: 0.54.5
epoch: 0
release: 1
summary: Development documents and examples for pycontrails
url: https://pypi.org/project/pycontrails/
rpm_license: Apache-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycontrails-0.54.5-1.src.rpm
location_href: Packages/python-pycontrails-help-0.54.5-1.aarch64.rpm
checksum_type: sha256
description:
  > Python library for modeling aviation climate impacts

  |               |                                                                   |
  |---------------|-------------------------------------------------------------------|
  | **Version**   | [![PyPI version](https://img.shields.io/pypi/v/pycontrails.svg)](https://pypi.python.org/pypi/pycontrails)  [![conda-forge version](https://anaconda.org/conda-forge/pycontrails/badges/version.svg)](https://anaconda.org/conda-forge/pycontrails) [![Supported python versions](https://img.shields.io/pypi/pyversions/pycontrails.svg)](https://pypi.python.org/pypi/pycontrails) |
  | **Citation**  | [![DOI](https://zenodo.org/badge/617248930.svg)](https://zenodo.org/badge/latestdoi/617248930) |
  | **Tests**     | [![Unit test](https://github.com/contrailcirrus/pycontrails/actions/workflows/test.yaml/badge.svg)](https://github.com/contrailcirrus/pycontrails/actions/workflows/test.yaml) [![Docs](https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml/badge.svg?event=push)](https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml) [![Release](https://github.com/contrailcirrus/pycontrails/actions/workflows/release.yaml/badge.svg)](https://github.com/contrailcirrus/pycontrails/actions/workflows/release.yaml) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/contrailcirrus/pycontrails/badge)](https://securityscorecards.dev/viewer?uri=github.com/contrailcirrus/pycontrails)|
  | **License**   | [![Apache License 2.0](https://img.shields.io/pypi/l/pycontrails.svg)](https://github.com/contrailcirrus/pycontrails/blob/main/LICENSE) |
  | **Community** | [![Github Discussions](https://img.shields.io/github/discussions/contrailcirrus/pycontrails)](https://github.com/contrailcirrus/pycontrails/discussions) [![Github Issues](https://img.shields.io/github/issues/contrailcirrus/pycontrails)](https://github.com/contrailcirrus/pycontrails/issues) [![Github PRs](https://img.shields.io/github/issues-pr/contrailcirrus/pycontrails)](https://github.com/contrailcirrus/pycontrails/pulls) |

  **pycontrails** is an open source project and Python package for modeling aircraft contrails and other
  aviation related climate impacts.

  `pycontrails` defines common [data structures](https://py.contrails.org/api.html#data) and [interfaces](https://py.contrails.org/api.html#datalib) to efficiently build and run [models](https://py.contrails.org/api.html#models) of aircraft performance, emissions, and radiative forcing.



  Documentation and examples available at [py.contrails.org](https://py.contrails.org/).

  <!-- Try out an [interactive Colab Notebook](). -->





  You can install pycontrails from PyPI with `pip` (Python 3.10 or later required):

  ```bash
  $ pip install pycontrails


  $ pip install "pycontrails[complete]"
  ```

  Install the latest development version directly from GitHub:

  ```bash
  pip install git+https://github.com/contrailcirrus/pycontrails.git
  ```



  You can install pycontrails from the [conda-forge](https://conda-forge.org/) channel with `conda` (or other `conda`-like package managers such as `mamba`):

  ```bash
  conda install -c conda-forge pycontrails
  ```

  The conda-forge package includes all optional runtime dependencies.

  See more installation options in the [install documentation](https://py.contrails.org/install).



  - Ask questions, discuss models, and present ideas in [GitHub Discussions](https://github.com/contrailcirrus/pycontrails/discussions).
  - Report bugs or suggest changes in [GitHub Issues](https://github.com/contrailcirrus/pycontrails/issues).
  - Review the [contributing guidelines](https://py.contrails.org/contributing.html) and contribute improvements as [Pull Requests](https://github.com/contrailcirrus/pycontrails/pulls).



  [Apache License 2.0](https://github.com/contrailcirrus/pycontrails/blob/main/LICENSE)

  Additional attributions in [NOTICE](https://github.com/contrailcirrus/pycontrails/blob/main/NOTICE).


pkgId: 177ce7d344afdf4e402825fdc0292015665aa4fa7e02aff2fffef5bd28f9248f
name: python-pycorrector-help
arch: noarch
version: 1.1.1
epoch: 0
release: 1
summary: Development documents and examples for pycorrector
url: https://github.com/shibing624/pycorrector
rpm_license: Apache 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycorrector-1.1.1-1.src.rpm
location_href: Packages/python-pycorrector-help-1.1.1-1.noarch.rpm
checksum_type: sha256
description:
  [![PyPI version](https://badge.fury.io/py/pycorrector.svg)](https://badge.fury.io/py/pycorrector)
  [![Downloads](https://static.pepy.tech/badge/pycorrector)](https://pepy.tech/project/pycorrector)
  [![GitHub contributors](https://img.shields.io/github/contributors/shibing624/pycorrector.svg)](https://github.com/shibing624/pycorrector/graphs/contributors)
  [![License Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
  [![python_vesion](https://img.shields.io/badge/Python-3.8%2B-green.svg)](requirements.txt)
  [![GitHub issues](https://img.shields.io/github/issues/shibing624/pycorrector.svg)](https://github.com/shibing624/pycorrector/issues)
  [![Wechat Group](https://img.shields.io/badge/wechat-group-green.svg?logo=wechat)](#Contact)
  **pycorrector**: 中文文本纠错工具。支持中文音似、形似、语法错误纠正，python3.8开发。
  **pycorrector**实现了Kenlm、ConvSeq2Seq、BERT、MacBERT、ELECTRA、ERNIE、GPT等多种模型的文本纠错，评估各模型的效果。
  **Guide**
  - [Features](#Features)
  - [Evaluation](#Evaluation)
  - [Usage](#usage)
  - [Dataset](#Dataset)
  - [Contact](#Contact)
  - [References](#references)

  中文文本纠错任务，常见错误类型：
  <img src="https://github.com/shibing624/pycorrector/blob/master/docs/git_image/error_type.png" width="600" />
  当然，针对不同业务场景，这些问题并不一定全部存在，比如拼音输入法、语音识别校对关注音似错误；五笔输入法、OCR校对关注形似错误，
  搜索引擎query纠错关注所有错误类型。
  本项目重点解决其中的"音似、形字、语法、专名错误"等类型。

  [2024/10/14] v1.1.0版本：新增了基于Qwen2.5的中文文本纠错模型，支持多字、少字、错字、词序、语法等错误纠正，发布了[shibing624/chinese-text-correction-1.5b](https://huggingface.co/shibing624/chinese-text-correction-1.5b)和[shibing624/chinese-text-correction-7b](https://huggingface.co/shibing624/chinese-text-correction-7b)模型，及其对应的LoRA模型。详见[Release-v1.1.0](https://github.com/shibing624/pycorrector/releases/tag/1.1.0)
  [2023/11/07] v1.0.0版本：新增了ChatGLM3/LLaMA2等GPT模型用于中文文本纠错，发布了基于ChatGLM3-6B的[shibing624/chatglm3-6b-csc-chinese-lora](https://huggingface.co/shibing624/chatglm3-6b-csc-chinese-lora)拼写和语法纠错模型；重写了DeepContext、ConvSeq2Seq、T5等模型的实现。详见[Release-v1.0.0](https://github.com/shibing624/pycorrector/releases/tag/1.0.0)

  * [Kenlm模型](https://github.com/shibing624/pycorrector/tree/master/examples/kenlm)：本项目基于Kenlm统计语言模型工具训练了中文NGram语言模型，结合规则方法、混淆集可以纠正中文拼写错误，方法速度快，扩展性强，效果一般
  * [DeepContext模型](https://github.com/shibing624/pycorrector/tree/master/examples/deepcontext)：本项目基于PyTorch实现了用于文本纠错的DeepContext模型，该模型结构参考Stanford University的NLC模型，2014英文纠错比赛得第一名，效果一般
  * [Seq2Seq模型](https://github.com/shibing624/pycorrector/tree/master/examples/seq2seq)：本项目基于PyTorch实现了用于中文文本纠错的ConvSeq2Seq模型，该模型在NLPCC-2018的中文语法纠错比赛中，使用单模型并取得第三名，可以并行训练，模型收敛快，效果一般
  * [T5模型](https://github.com/shibing624/pycorrector/tree/master/examples/t5)：本项目基于PyTorch实现了用于中文文本纠错的T5模型，使用Langboat/mengzi-t5-base的预训练模型finetune中文纠错数据集，模型改造的潜力较大，效果好
  * [ERNIE_CSC模型](https://github.com/shibing624/pycorrector/tree/master/examples/ernie_csc)：本项目基于PaddlePaddle实现了用于中文文本纠错的ERNIE_CSC模型，模型在ERNIE-1.0上finetune，模型结构适配了中文拼写纠错任务，效果好
  * [MacBERT模型](https://github.com/shibing624/pycorrector/tree/master/examples/macbert)【推荐】：本项目基于PyTorch实现了用于中文文本纠错的MacBERT4CSC模型，模型加入了错误检测和纠正网络，适配中文拼写纠错任务，效果好
  * [MuCGECBart模型](https://modelscope.cn/models/iic/nlp_bart_text-error-correction_chinese/summary)：本项目基于ModelScope实现了用于文本纠错的Seq2Seq方法的MuCGECBart模型，该模型中文文本纠错效果较好
  * [NaSGECBart模型](https://github.com/HillZhang1999/NaSGEC): MuCGECBart的同作者模型，无需modelscope依赖，基于中文母语纠错数据集NaSGEC在Bart模型上微调训练得到，效果好
  * [GPT模型](https://github.com/shibing624/pycorrector/tree/master/examples/gpt)：本项目基于PyTorch实现了用于中文文本纠错的ChatGLM/LLaMA模型，模型在中文CSC和语法纠错数据集上finetune，适配中文文本纠错任务，效果很好
  - 延展阅读：[中文文本纠错实践和原理解读](https://github.com/shibing624/pycorrector/blob/master/docs/correction_solution.md)

  - Official demo: https://www.mulanai.com/product/corrector/
  - Colab online demo: [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1zvSyCdiLK_rglfXcIgc539K_Z7bIMpu0?usp=sharing)
  - HuggingFace demo: https://huggingface.co/spaces/shibing624/pycorrector
  ![](https://github.com/shibing624/pycorrector/blob/master/docs/hf.png)
  run example: [examples/macbert/gradio_demo.py](https://github.com/shibing624/pycorrector/blob/master/examples/macbert/gradio_demo.py) to see the demo:
  ```shell
  python examples/macbert/gradio_demo.py
  ```

  评估脚本[examples/evaluate_models/evaluate_models.py](https://github.com/shibing624/pycorrector/blob/master/examples/evaluate_models/evaluate_models.py)：
  - 评测集：SIGHAN-2015([sighan2015_test.tsv](https://github.com/shibing624/pycorrector/blob/master/pycorrector/data/sighan2015_test.tsv))、
  EC-LAW([ec_law_test.tsv](https://github.com/shibing624/pycorrector/blob/master/examples/data/ec_law_test.tsv))、MCSC([mcsc_test.tsv](https://github.com/shibing624/pycorrector/blob/master/examples/data/mcsc_test.tsv))
  - 评估标准：纠错准召率，采用严格句子粒度（Sentence Level）计算方式，把模型纠正之后的与正确句子完成相同的视为正确，否则为错

  - 评估指标：F1
  - CSC(Chinese Spelling Correction): 拼写纠错模型，表示模型可以处理音似、形似、语法等长度对齐的错误纠正
  - CTC(CHinese Text Correction): 文本纠错模型，表示模型支持拼写、语法等长度对齐的错误纠正，还可以处理多字、少字等长度不对齐的错误纠正
  - GPU：Tesla V100，显存 32 GB
  | Model Name       | Model Link                                                                                                              | Base Model                 | Avg        | SIGHAN-2015 | EC-LAW | MCSC   | GPU | QPS     |
  |:-----------------|:------------------------------------------------------------------------------------------------------------------------|:---------------------------|:-----------|:------------|:-------|:-------|:--------|:--------|
  | Kenlm-CSC        | [shibing624/chinese-kenlm-klm](https://huggingface.co/shibing624/chinese-kenlm-klm)                                     | kenlm | 0.3409     | 0.3147      | 0.3763 | 0.3317 | CPU     | 9       |
  | Mengzi-T5-CSC    | [shibing624/mengzi-t5-base-chinese-correction](https://huggingface.co/shibing624/mengzi-t5-base-chinese-correction)     | mengzi-t5-base | 0.3984     | 0.7758      | 0.3156 | 0.1039 | GPU     | 214     |
  | ERNIE-CSC        | [PaddleNLP/ernie-csc](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/legacy/examples/text_correction/ernie-csc) | PaddlePaddle/ernie-1.0-base-zh | 0.4353     | 0.8383      | 0.3357 | 0.1318 | GPU     | 114     |
  | MacBERT-CSC      | [shibing624/macbert4csc-base-chinese](https://huggingface.co/shibing624/macbert4csc-base-chinese)                       | hfl/chinese-macbert-base   | 0.3993     | 0.8314      | 0.1610 | 0.2055 | GPU     | **224** |
  | ChatGLM3-6B-CSC  | [shibing624/chatglm3-6b-csc-chinese-lora](https://huggingface.co/shibing624/chatglm3-6b-csc-chinese-lora)               | THUDM/chatglm3-6b          | 0.4538     | 0.6572      | 0.4369     | 0.2672      | GPU     | 3       |
  | Qwen2.5-1.5B-CTC | [shibing624/chinese-text-correction-1.5b](https://huggingface.co/shibing624/chinese-text-correction-1.5b)               | Qwen/Qwen2.5-1.5B-Instruct | 0.6802     | 0.3032      | 0.7846 | 0.9529 | GPU     | 6       |
  | Qwen2.5-7B-CTC   | [shibing624/chinese-text-correction-7b](https://huggingface.co/shibing624/chinese-text-correction-7b)                   | Qwen/Qwen2.5-7B-Instruct   | **0.8225** | 0.4917      | 0.9798 | 0.9959 | GPU     | 3       |

  ```shell
  pip install -U pycorrector
  ```
  or
  ```shell
  pip install -r requirements.txt
  git clone https://github.com/shibing624/pycorrector.git
  cd pycorrector
  pip install --no-deps .
  ```
  通过以上两种方法的任何一种完成安装都可以。如果不想安装依赖包，可以拉docker环境。
  * docker使用
  ```shell
  docker run -it -v ~/.pycorrector:/root/.pycorrector shibing624/pycorrector:0.0.2
  ```

  本项目的初衷之一是比对、调研各种中文文本纠错方法，抛砖引玉。
  项目实现了kenlm、macbert、seq2seq、 ernie_csc、T5、deepcontext、GPT(Qwen/ChatGLM)等模型应用于文本纠错任务，各模型均可基于已经训练好的纠错模型快速预测，也可使用自有数据训练、预测。


  example: [examples/kenlm/demo.py](https://github.com/shibing624/pycorrector/blob/master/examples/kenlm/demo.py)
  ```python
  from pycorrector import Corrector
  m = Corrector()
  print(m.correct_batch(['少先队员因该为老人让坐', '你找到你最喜欢的工作，我也很高心。']))
  ```
  output:
  ```shell
  [{'source': '少先队员因该为老人让坐', 'target': '少先队员应该为老人让座', 'errors': [('因该', '应该', 4), ('坐', '座', 10)]}
  {'source': '你找到你最喜欢的工作，我也很高心。', 'target': '你找到你最喜欢的工作，我也很高兴。', 'errors': [('心', '兴', 15)]}]
  ```
  - `Corrector()`类是kenlm统计模型的纠错方法实现，默认会从路径`~/.pycorrector/datasets/zh_giga.no_cna_cmn.prune01244.klm`加载kenlm语言模型文件，如果检测没有该文件，
  则程序会自动联网下载。当然也可以手动下载[模型文件(2.8G)](https://deepspeech.bj.bcebos.com/zh_lm/zh_giga.no_cna_cmn.prune01244.klm)并放置于该位置
  - 返回值: `correct`方法返回`dict`，{'source': '原句子', 'target': '纠正后的句子', 'errors': [('错误词', '正确词', '错误位置'), ...]}，`correct_batch`方法返回包含多个`dict`的`list`

  example: [examples/kenlm/detect_demo.py](https://github.com/shibing624/pycorrector/blob/master/examples/kenlm/detect_demo.py)
  ```python
  from pycorrector import Corrector
  m = Corrector()
  idx_errors = m.detect('少先队员因该为老人让坐')
  print(idx_errors)
  ```
  output:
  ```
  [['因该', 4, 6, 'word'], ['坐', 10, 11, 'char']]
  ```
  - 返回值：`list`, `[error_word, begin_pos, end_pos, error_type]`，`pos`索引位置以0开始。

  example: [examples/kenlm/use_custom_proper.py](https://github.com/shibing624/pycorrector/blob/master/examples/kenlm/use_custom_proper.py)
  ```python
  from pycorrector import Corrector
  m = Corrector(proper_name_path='./my_custom_proper.txt')
  x = ['报应接中迩来', '这块名表带带相传',]
  for i in x:
      print(i, ' -> ', m.correct(i))
  ```
  output:
  ```
  报应接中迩来  ->  {'source': '报应接踵而来', 'target': '报应接踵而来', 'errors': [('接中迩来', '接踵而来', 2)]}
  这块名表带带相传  ->  {'source': '这块名表代代相传', 'target': '这块名表代代相传', 'errors': [('带带相传', '代代相传', 4)]}
  ```

  通过加载自定义混淆集，支持用户纠正已知的错误，包括两方面功能：1）【提升准确率】误杀加白；2）【提升召回率】补充召回。
  example: [examples/kenlm/use_custom_confusion.py](https://github.com/shibing624/pycorrector/blob/master/examples/kenlm/use_custom_confusion.py)
  ```python
  from pycorrector import Corrector
  error_sentences = [
      '买iphonex，要多少钱',
      '共同实际控制人萧华、霍荣铨、张旗康',
  ]
  m = Corrector()
  print(m.correct_batch(error_sentences))
  print('*' * 42)
  m = Corrector(custom_confusion_path_or_dict='./my_custom_confusion.txt')
  print(m.correct_batch(error_sentences))
  ```
  output:
  ```
  ('买iphonex，要多少钱', [])   # "iphonex"漏召，应该是"iphoneX"
  ('共同实际控制人萧华、霍荣铨、张启康', [('张旗康', '张启康', 14)]) # "张启康"误杀，应该不用纠
  *****************************************************
  ('买iphonex，要多少钱', [('iphonex', 'iphoneX', 1)])
  ('共同实际控制人萧华、霍荣铨、张旗康', [])
  ```
  - 其中`./my_custom_confusion.txt`的内容格式如下，以空格间隔：
  ```
  iPhone差 iPhoneX
  张旗康 张旗康
  ```
  自定义混淆集`ConfusionCorrector`类，除了上面演示的和`Corrector`类一起使用，还可以和`MacBertCorrector`一起使用，也可以独立使用。示例代码 [examples/macbert/model_correction_pipeline_demo.py](https://github.com/shibing624/pycorrector/blob/master/examples/macbert/model_correction_pipeline_demo.py)

  默认提供下载并使用的kenlm语言模型`zh_giga.no_cna_cmn.prune01244.klm`文件是2.8G，内存小的电脑使用`pycorrector`程序可能会吃力些。
  支持用户加载自己训练的kenlm语言模型，或使用2014版人民日报数据训练的模型，模型小（140M），准确率稍低，模型下载地址：[shibing624/chinese-kenlm-klm](https://huggingface.co/shibing624/chinese-kenlm-klm) | [people2014corpus_chars.klm(密码o5e9)](https://pan.baidu.com/s/1I2GElyHy_MAdek3YaziFYw)。
  example：[examples/kenlm/load_custom_language_model.py](https://github.com/shibing624/pycorrector/blob/master/examples/kenlm/load_custom_language_model.py)
  ```python
  from pycorrector import Corrector
  model = Corrector(language_model_path='people2014corpus_chars.klm')
  print(model.correct('少先队员因该为老人让坐'))
  ```

  支持英文单词级别的拼写错误纠正。
  example：[examples/kenlm/en_correct_demo.py](https://github.com/shibing624/pycorrector/blob/master/examples/kenlm/en_correct_demo.py)
  ```python
  from pycorrector import EnSpellCorrector
  m = EnSpellCorrector()
  sent = "what happending? how to speling it, can you gorrect it?"
  print(m.correct(sent))
  ```
  output:
  ```
  {'source': 'what happending? how to speling it, can you gorrect it?', 'target': 'what happening? how to spelling it, can you correct it?', 'errors': [('happending', 'happening', 5), ('speling', 'spelling', 24), ('gorrect', 'correct', 44)]}
  ```

  支持中文繁体到简体的转换，和简体到繁体的转换。
  example：[examples/kenlm/traditional_simplified_chinese_demo.py](https://github.com/shibing624/pycorrector/blob/master/examples/kenlm/traditional_simplified_chinese_demo.py)
  ```python
  import pycorrector
  traditional_sentence = '憂郁的臺灣烏龜'
  simplified_sentence = pycorrector.traditional2simplified(traditional_sentence)
  print(traditional_sentence, '=>', simplified_sentence)
  simplified_sentence = '忧郁的台湾乌龟'
  traditional_sentence = pycorrector.simplified2traditional(simplified_sentence)
  print(simplified_sentence, '=>', traditional_sentence)
  ```
  output:
  ```
  憂郁的臺灣烏龜 => 忧郁的台湾乌龟
  忧郁的台湾乌龟 => 憂郁的臺灣烏龜
  ```

  支持kenlm方法的批量文本纠错
  ```
  python -m pycorrector -h
  usage: __main__.py [-h] -o OUTPUT [-n] [-d] input
  @description:
  positional arguments:
    input                 the input file path, file encode need utf-8.
  optional arguments:
    -h, --help            show this help message and exit
    -o OUTPUT, --output OUTPUT
                          the output file path.
    -n, --no_char         disable char detect mode.
    -d, --detail          print detail info
  ```
  case：
  ```
  python -m pycorrector input.txt -o out.txt -n -d
  ```
  - 输入文件：`input.txt`；输出文件：`out.txt `；关闭字粒度纠错；打印详细纠错信息；纠错结果以`\t`间隔

  基于MacBERT改变网络结构的中文拼写纠错模型，模型已经开源在HuggingFace Models：https://huggingface.co/shibing624/macbert4csc-base-chinese
  模型网络结构：
  - 本项目是 MacBERT 改变网络结构的中文文本纠错模型，可支持 BERT 类模型为 backbone
  - 在原生 BERT 模型上进行了魔改，追加了一个全连接层作为错误检测即 [detection](https://github.com/shibing624/pycorrector/blob/c0f31222b7849c452cc1ec207c71e9954bd6ca08/pycorrector/macbert/macbert4csc.py#L18) ，
  MacBERT4CSC 训练时用 detection 层和 correction 层的 loss 加权得到最终的 loss，预测时用 BERT MLM 的 correction 权重即可
  ![macbert_network](https://github.com/shibing624/pycorrector/blob/master/docs/git_image/macbert_network.jpg)
  详细教程参考[examples/macbert/README.md](https://github.com/shibing624/pycorrector/blob/master/examples/macbert/README.md)

  example：[examples/macbert/demo.py](https://github.com/shibing624/pycorrector/blob/master/examples/macbert/demo.py)
  ```python
  from pycorrector import MacBertCorrector
  m = MacBertCorrector("shibing624/macbert4csc-base-chinese")
  print(m.correct_batch(['今天新情很好', '你找到你最喜欢的工作，我也很高心。']))
  ```
  output：
  ```bash
  {'source': '今天新情很好', 'target': '今天心情很好', 'errors': [('新', '心', 2)]}
  {'source': '你找到你最喜欢的工作，我也很高心。', 'target': '你找到你最喜欢的工作，我也很高兴。', 'errors': [('心', '兴', 15)]}
  ```

  见[examples/macbert/README.md](https://github.com/shibing624/pycorrector/blob/master/examples/macbert/README.md)

  基于T5的中文拼写纠错模型，模型训练详细教程参考[examples/t5/README.md](https://github.com/shibing624/pycorrector/blob/master/examples/t5/README.md)

  example：[examples/t5/demo.py](https://github.com/shibing624/pycorrector/blob/master/examples/t5/demo.py)
  ```python
  from pycorrector import T5Corrector
  m = T5Corrector()
  print(m.correct_batch(['今天新情很好', '你找到你最喜欢的工作，我也很高心。']))
  ```
  output:
  ```
  [{'source': '今天新情很好', 'target': '今天心情很好', 'errors': [('新', '心', 2)]},
  {'source': '你找到你最喜欢的工作，我也很高心。', 'target': '你找到你最喜欢的工作，我也很高兴。', 'errors': [('心', '兴', 15)]}]
  ```

  基于ChatGLM3、Qwen2.5等模型微调训练纠错模型，训练方法见[examples/gpt/README.md](https://github.com/shibing624/pycorrector/blob/master/examples/gpt/README.md)

  example: [examples/gpt/demo.py](https://github.com/shibing624/pycorrector/blob/master/examples/gpt/demo.py)
  ```python
  from pycorrector.gpt.gpt_corrector import GptCorrector
  m = GptCorrector()
  print(m.correct_batch(['今天新情很好', '你找到你最喜欢的工作，我也很高心。']))
  ```
  output:
  ```shell
  [{'source': '今天新情很好', 'target': '今天心情很好', 'errors': [('新', '心', 2)]},
  {'source': '你找到你最喜欢的工作，我也很高心。', 'target': '你找到你最喜欢的工作，我也很高兴。', 'errors': [('心', '兴', 15)]}]
  ```

  基于ERNIE的中文拼写纠错模型，模型已经开源在[PaddleNLP](https://bj.bcebos.com/paddlenlp/taskflow/text_correction/csc-ernie-1.0/csc-ernie-1.0.pdparams)。
  模型网络结构：
  <img src="https://user-images.githubusercontent.com/10826371/131974040-fc84ec04-566f-4310-9839-862bfb27172e.png" width="500" />
  详细教程参考[examples/ernie_csc/README.md](https://github.com/shibing624/pycorrector/blob/master/examples/ernie_csc/README.md)

  example：[examples/ernie_csc/demo.py](https://github.com/shibing624/pycorrector/blob/master/examples/ernie_csc/demo.py)
  ```python
  from pycorrector import ErnieCscCorrector
  if __name__ == '__main__':
      error_sentences = [
          '真麻烦你了。希望你们好好的跳无',
          '少先队员因该为老人让坐',
      ]
      m = ErnieCscCorrector()
      batch_res = m.correct_batch(error_sentences)
      for i in batch_res:
          print(i)
          print()
  ```
  output:
  ```
  {'source': '真麻烦你了。希望你们好好的跳无', 'target': '真麻烦你了。希望你们好好的跳舞', 'errors': [{'position': 14, 'correction': {'无': '舞'}}]}
  {'source': '少先队员因该为老人让坐', 'target': '少先队员应该为老人让座', 'errors': [{'position': 4, 'correction': {'因': '应'}}, {'position': 10, 'correction': {'坐': '座'}}]}
  ```

  基于SIGHAN+Wang271K中文纠错数据集训练的Bart4CSC模型，已经release到HuggingFace Models: https://huggingface.co/shibing624/bart4csc-base-chinese
  ```python
  from transformers import BertTokenizerFast
  from textgen import BartSeq2SeqModel
  tokenizer = BertTokenizerFast.from_pretrained('shibing624/bart4csc-base-chinese')
  model = BartSeq2SeqModel(
      encoder_type='bart',
      encoder_decoder_type='bart',
      encoder_decoder_name='shibing624/bart4csc-base-chinese',
      tokenizer=tokenizer,
      args={"max_length": 128, "eval_batch_size": 128})
  sentences = ["少先队员因该为老人让坐"]
  print(model.predict(sentences))
  ```
  output:
  ```shell
  ['少先队员应该为老人让座']
  ```
  如果需要训练Bart模型，请参考 https://github.com/shibing624/textgen/blob/main/examples/seq2seq/training_bartseq2seq_zh_demo.py

  模型在第一次运行时，会自动下载到"~/.cache/modelscope/hub/"子目录。
  注意该模型在python=3.8.19环境下通过测试，其它依赖包版本可能会有问题。

  ```shell
  pip install pycorrector difflib modelscope==1.16.0 fairseq==0.12.2
  ```

  ```python
  from pycorrector.mucgec_bart.mucgec_bart_corrector import MuCGECBartCorrector
  if __name__ == "__main__":
      m = MuCGECBartCorrector()
      result = m.correct_batch(['这洋的话，下一年的福气来到自己身上。',
                                 '在拥挤时间，为了让人们尊守交通规律，派至少两个警察或者交通管理者。',
                                 '随着中国经济突飞猛近，建造工业与日俱增',
                                 "北京是中国的都。",
                                 "他说：”我最爱的运动是打蓝球“",
                                 "我每天大约喝5次水左右。",
                                 "今天，我非常开开心。"])
      print(result)
  ```
  output:
  ```shell
  [{'source': '这洋的话，下一年的福气来到自己身上。', 'target': '这样的话，下一年的福气就会来到自己身上。', 'errors': [('洋', '样', 1), ('', '就会', 11)]},
  {'source': '在拥挤时间，为了让人们尊守交通规律，派至少两个警察或者交通管理者。', 'target': '在拥挤时间，为了让人们遵守交通规则，应该派至少两个警察或者交通管理者。', 'errors': [('尊', '遵', 11), ('律', '则', 16), ('', '应该', 18)]},
  {'source': '随着中国经济突飞猛近，建造工业与日俱增', 'target': '随着中国经济突飞猛进，建造工业与日俱增', 'errors': [('近', '进', 9)]},
  {'source': '北京是中国的都。', 'target': '北京是中国的首都。', 'errors': [('', '首', 6)]},
  {'source': '他说：”我最爱的运动是打蓝球“', 'target': '他说：“我最爱的运动是打篮球”', 'errors': [('”', '“', 3), ('蓝', '篮', 12), ('“', '”', 14)]},
  {'source': '我每天大约喝5次水左右。', 'target': '我每天大约喝5杯水左右。', 'errors': [('次', '杯', 7)]},
  {'source': '今天，我非常开开心。', 'target': '今天，我非常开心。', 'errors': [('开', '', 7)]}]
  ```

  | 数据集                          | 语料                           |                                                                                下载链接                                                                                 | 压缩包大小 |
  |:-----------------------------|:-----------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----:|
  | **`SIGHAN+Wang271K中文纠错数据集`** | SIGHAN+Wang271K(27万条)        |               [百度网盘（密码01b9）](https://pan.baidu.com/s/1BV5tr9eONZCI0wERFvr0gQ) <br/> [shibing624/CSC](https://huggingface.co/datasets/shibing624/CSC)                | 106M  |
  | **`原始SIGHAN数据集`**            | SIGHAN13 14 15               |                                                      [官方csc.html](http://nlp.ee.ncu.edu.tw/resource/csc.html)                                                       | 339K  |
  | **`原始Wang271K数据集`**          | Wang271K                     |                   [Automatic-Corpus-Generation dimmywang提供](https://github.com/wdimmy/Automatic-Corpus-Generation/blob/master/corpus/train.sgml)                    |  93M  |
  | **`人民日报2014版语料`**            | 人民日报2014版                    |                                    [飞书（密码cHcu）](https://l6pmn3b1eo.feishu.cn/file/boxcnKpildqIseq1D4IrLwlir7c?from=from_qr_code)                                    | 383M  |
  | **`NLPCC 2018 GEC官方数据集`**    | NLPCC2018-GEC                |                                        [官方trainingdata](http://tcci.ccf.org.cn/conference/2018/dldoc/trainingdata02.tar.gz)                                         | 114M  |
  | **`NLPCC 2018+HSK熟语料`**      | nlpcc2018+hsk+CGED           | [百度网盘（密码m6fg）](https://pan.baidu.com/s/1BkDru60nQXaDVLRSr7ktfA) <br/> [飞书（密码gl9y）](https://l6pmn3b1eo.feishu.cn/file/boxcnudJgRs5GEMhZwe77YGTQfc?from=from_qr_code) | 215M  |
  | **`NLPCC 2018+HSK原始语料`**     | HSK+Lang8                    | [百度网盘（密码n31j）](https://pan.baidu.com/s/1DaOX89uL1JRaZclfrV9C0g) <br/> [飞书（密码Q9LH）](https://l6pmn3b1eo.feishu.cn/file/boxcntebW3NI6OAaqzDUXlZHoDb?from=from_qr_code) |  81M  |
  | **`中文纠错比赛数据汇总`**             | Chinese Text Correction（CTC） |                                                     [中文纠错汇总数据集（天池）](https://tianchi.aliyun.com/dataset/138195)                                                      |   -   |
  | **`NLPCC 2023中文语法纠错数据集`**    | NLPCC 2023 Sharedtask1       |                          [Task 1: Chinese Grammatical Error Correction（Training Set）](http://tcci.ccf.org.cn/conference/2023/taskdata.php)                          | 125M  |
  | **`百度智能文本校对比赛数据集`**          | 中文真实场景纠错数据                   |                          [shibing624/chinese_text_correction](https://huggingface.co/datasets/shibing624/chinese_text_correction)                          |  10M  |
  说明：
  - SIGHAN+Wang271K中文纠错数据集(27万条)，是通过原始SIGHAN13、14、15年数据集和Wang271K数据集格式转化后得到，json格式，带错误字符位置信息，SIGHAN为test.json，
    macbert4csc模型训练可以直接用该数据集复现paper准召结果，详见[pycorrector/macbert/README.md](pycorrector/macbert/README.md)。
  - NLPCC 2018 GEC官方数据集[NLPCC2018-GEC](http://tcci.ccf.org.cn/conference/2018/taskdata.php)，
    训练集[trainingdata](http://tcci.ccf.org.cn/conference/2018/dldoc/trainingdata02.tar.gz)[解压后114.5MB]，该数据格式是原始文本，未做切词处理。
  - 汉语水平考试（HSK）和lang8原始平行语料[HSK+Lang8][百度网盘（密码n31j）](https://pan.baidu.com/s/1DaOX89uL1JRaZclfrV9C0g)，该数据集已经切词，可用作数据扩增。
  - NLPCC 2018 + HSK + CGED16、17、18的数据，经过以字切分，繁体转简体，打乱数据顺序的预处理后，生成用于纠错的熟语料(nlpcc2018+hsk)
    ，[百度网盘（密码:m6fg）](https://pan.baidu.com/s/1BkDru60nQXaDVLRSr7ktfA) [130万对句子，215MB]
  SIGHAN+Wang271K中文纠错数据集，数据格式：
  ```json
  [
      {
          "id": "B2-4029-3",
          "original_text": "晚间会听到嗓音，白天的时候大家都不会太在意，但是在睡觉的时候这嗓音成为大家的恶梦。",
          "wrong_ids": [
              5,
              31
          ],
          "correct_text": "晚间会听到噪音，白天的时候大家都不会太在意，但是在睡觉的时候这噪音成为大家的恶梦。"
      }
  ]
  ```
  字段解释：
  - id：唯一标识符，无意义
  - original_text: 原始错误文本
  - wrong_ids： 错误字的位置，从0开始
  - correct_text: 纠正后的文本

  可以使用自己数据集训练纠错模型，把自己数据集标注好，保存为跟训练样本集一样的json格式，然后加载数据训练模型即可。
  1. 已有大量业务相关错误样本，主要标注错误位置（wrong_ids）和纠错后的句子(correct_text)
  2. 没有现成的错误样本，可以写脚本生成错误样本（original_text），根据音似、形似等特征把正确句子的指定位置（wrong_ids）字符改为错字，附上
  第三方同音字生成脚本[同音词替换](https://github.com/dongrixinyu/JioNLP/wiki/%E6%95%B0%E6%8D%AE%E5%A2%9E%E5%BC%BA-%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3#%E5%90%8C%E9%9F%B3%E8%AF%8D%E6%9B%BF%E6%8D%A2)

  [什么是语言模型？-wiki](https://github.com/shibing624/pycorrector/wiki/%E7%BB%9F%E8%AE%A1%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E5%8E%9F%E7%90%86)
  语言模型对于纠错步骤至关重要，当前默认使用的是从千兆中文文本训练的中文语言模型[zh_giga.no_cna_cmn.prune01244.klm(2.8G)](https://deepspeech.bj.bcebos.com/zh_lm/zh_giga.no_cna_cmn.prune01244.klm)，
  提供人民日报2014版语料训练得到的轻量版语言模型[people2014corpus_chars.klm(密码o5e9)](https://pan.baidu.com/s/1I2GElyHy_MAdek3YaziFYw)。
  大家可以用中文维基（繁体转简体，pycorrector.utils.text_utils下有此功能）等语料数据训练通用的语言模型，或者也可以用专业领域语料训练更专用的语言模型。更适用的语言模型，对于纠错效果会有比较好的提升。
  1. kenlm语言模型训练工具的使用，请见博客：http://blog.csdn.net/mingzai624/article/details/79560063
  2. 16GB中英文无监督、平行语料[Linly-AI/Chinese-pretraining-dataset](https://huggingface.co/datasets/Linly-AI/Chinese-pretraining-dataset)
  3. 524MB中文维基百科语料[wikipedia-cn-20230720-filtered](https://huggingface.co/datasets/pleisto/wikipedia-cn-20230720-filtered)

  - Github Issue(建议)：[![GitHub issues](https://img.shields.io/github/issues/shibing624/pycorrector.svg)](https://github.com/shibing624/pycorrector/issues)
  - Github discussions：欢迎到讨论区[![GitHub discussions](https://img.shields.io/github/discussions/shibing624/pycorrector.svg)](https://github.com/shibing624/pycorrector/discussions)灌水（不会打扰开发者），公开交流纠错技术和问题
  - 邮件我：xuming: xuming624@qq.com
  - 微信我：加我*微信号：xuming624*, 进Python-NLP交流群，备注：*姓名-公司名-NLP*
  <img src="https://github.com/shibing624/pycorrector/blob/master/docs/git_image/wechat.jpeg" width="200" />
  <img src="https://github.com/shibing624/pycorrector/blob/master/docs/git_image/wechat_group.jpg" width="200" />

  如果你在研究中使用了pycorrector，请按如下格式引用：
  APA:
  ```latex
  Xu, M. Pycorrector: Text error correction tool (Version 0.4.2) [Computer software]. https://github.com/shibing624/pycorrector
  ```
  BibTeX:
  ```latex
  @misc{Xu_Pycorrector_Text_error,
    title={Pycorrector: Text error correction tool},
    author={Ming Xu},
    year={2023},
    howpublished={\url{https://github.com/shibing624/pycorrector}},
  }
  ```

  pycorrector 的授权协议为 **Apache License 2.0**，可免费用做商业用途。请在产品说明中附加pycorrector的链接和授权协议。

  项目代码还很粗糙，如果大家对代码有所改进，欢迎提交回本项目，在提交之前，注意以下两点：
  - 在`tests`添加相应的单元测试
  - 使用`python -m pytest`来运行所有单元测试，确保所有单测都是通过的
  之后即可提交PR。

  * [基于文法模型的中文纠错系统](https://blog.csdn.net/mingzai624/article/details/82390382)
  * [Norvig’s spelling corrector](http://norvig.com/spell-correct.html)
  * [Chinese Spelling Error Detection and Correction Based on Language Model, Pronunciation, and Shape[Yu, 2013]](http://www.aclweb.org/anthology/W/W14/W14-6835.pdf)
  * [Chinese Spelling Checker Based on Statistical Machine Translation[Chiu, 2013]](http://www.aclweb.org/anthology/O/O13/O13-1005.pdf)
  * [Chinese Word Spelling Correction Based on Rule Induction[yeh, 2014]](http://aclweb.org/anthology/W14-6822)
  * [Neural Language Correction with Character-Based Attention[Ziang Xie, 2016]](https://arxiv.org/pdf/1603.09727.pdf)
  * [Chinese Spelling Check System Based on Tri-gram Model[Qiang Huang, 2014]](http://www.anthology.aclweb.org/W/W14/W14-6827.pdf)
  * [Neural Abstractive Text Summarization with Sequence-to-Sequence Models[Tian Shi, 2018]](https://arxiv.org/abs/1812.02303)
  * [基于深度学习的中文文本自动校对研究与实现[杨宗霖, 2019]](https://github.com/shibing624/pycorrector/blob/master/docs/基于深度学习的中文文本自动校对研究与实现.pdf)
  * [A Sequence to Sequence Learning for Chinese Grammatical Error Correction[Hongkai Ren, 2018]](https://link.springer.com/chapter/10.1007/978-3-319-99501-4_36)
  * [ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators](https://openreview.net/pdf?id=r1xMH1BtvB)
  * [Revisiting Pre-trained Models for Chinese Natural Language Processing](https://arxiv.org/abs/2004.13922)
  * Ruiqing Zhang, Chao Pang et al. "Correcting Chinese Spelling Errors with Phonetic Pre-training", ACL, 2021
  * DingminWang et al. "A Hybrid Approach to Automatic Corpus Generation for Chinese Spelling Check", EMNLP, 2018
  * [MuCGEC: a Multi-Reference Multi-Source Evaluation Dataset for Chinese Grammatical Error Correction](https://aclanthology.org/2022.naacl-main.227) (Zhang et al., NAACL 2022)


pkgId: 1d3ae6a397be7f83ec381b2d7bea6de34e4320c1bddf976a7302d9f9b52d3491
name: python-pycosep-help
arch: noarch
version: 0.2.0
epoch: 0
release: 1
summary: Development documents and examples for pycosep
url: https://github.com/aacevedot/pycosep
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycosep-0.2.0-1.src.rpm
location_href: Packages/python-pycosep-help-0.2.0-1.noarch.rpm
checksum_type: sha256
description:
  *This Python package is based on the MATLAB implementation available at [biomedical-cybernetics/travelling-salesman-path](https://github.com/biomedical-cybernetics/travelling-salesman-path).*

  **Article Source:** [Geometric separability of mesoscale patterns in embedding representation and visualization of multidimensional data and complex networks](https://journals.plos.org/complexsystems/article?id=10.1371/journal.pcsy.0000012). Acevedo A, Wu Y, Traversa FL, Cannistraci CV (2024) Geometric separability of mesoscale patterns in embedding representation and visualization of multidimensional data and complex networks. PLOS Complex Systems 1(2): e0000012. [https://doi.org/10.1371/journal.pcsy.0000012](https://doi.org/10.1371/journal.pcsy.0000012)



  This package requires [Concorde](https://www.math.uwaterloo.ca/tsp/concorde.html) to execute calculations. Check the [requirements](https://github.com/aacevedot/pycosep/blob/main/REQUIREMENTS.md) and follow the instructions to install this dependency in your operating system.



  Run the following to install:

  ```shell
  pip install pycosep
  ```



  Computing the community separability of a given embedding.

  ```python
  from sklearn.datasets import load_iris

  from pycosep import community_separability
  from pycosep.separability_variants import SeparabilityVariant


  data = load_iris()





  variant = SeparabilityVariant.TSPS

  indices, _ = community_separability.compute_separability(
      embedding=data.data,
      communities=data.target,
      variant=variant)

  print(f"AUC index: {indices['auc']}")
  print(f"AUPR index: {indices['aupr']}")
  print(f"MCC index: {indices['mcc']}")
  ```

  Computing the community separability of a given embedding for 1000 permutations.

  ```python
  from sklearn.datasets import load_iris

  from pycosep import community_separability
  from pycosep.separability_variants import SeparabilityVariant


  data = load_iris()





  variant = SeparabilityVariant.LDPS


  permutations = 1000

  index_permutations, _ = community_separability.compute_separability(
      embedding=data.data,
      communities=data.target,
      variant=variant,
      permutations=permutations)

  auc_results = index_permutations['auc']
  print(f"AUC original value: {auc_results['original_value']}")
  print(f"AUC p-value: {auc_results['p_value']}")
  print(f"AUC mean: {auc_results['mean']}")
  print(f"AUC max: {auc_results['max']}")
  print(f"AUC min: {auc_results['min']}")
  print(f"AUC standard_deviation: {auc_results['standard_deviation']}")
  print(f"AUC standard_error: {auc_results['standard_error']}")

  aupr_results = index_permutations['aupr']
  print(f"AUPR original value: {aupr_results['original_value']}")
  print(f"AUPR p-value: {aupr_results['p_value']}")
  print(f"AUPR mean: {aupr_results['mean']}")
  print(f"AUPR max: {aupr_results['max']}")
  print(f"AUPR min: {aupr_results['min']}")
  print(f"AUPR standard deviation: {aupr_results['standard_deviation']}")
  print(f"AUPR standard error: {aupr_results['standard_error']}")

  mcc_results = index_permutations['mcc']
  print(f"MCC original value: {mcc_results['original_value']}")
  print(f"MCC p-value: {mcc_results['p_value']}")
  print(f"MCC mean: {mcc_results['mean']}")
  print(f"MCC max: {mcc_results['max']}")
  print(f"MCC min: {mcc_results['min']}")
  print(f"MCC standard deviation: {mcc_results['standard_deviation']}")
  print(f"MCC standard error: {mcc_results['standard_error']}")
  ```



  For reporting problems, questions, and suggestions; please, use the [Issues](https://github.com/aacevedot/pycosep/issues) section.


pkgId: 80be67f7bbfe1565fc4e9573e4bca8c7235de2884046a970f199c71a710e540c
name: python-pycoze-help
arch: noarch
version: 0.1.234
epoch: 0
release: 1
summary: Development documents and examples for pycoze
url: https://pypi.org/project/pycoze/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycoze-0.1.234-1.src.rpm
location_href: Packages/python-pycoze-help-0.1.234-1.noarch.rpm
checksum_type: sha256
description:
  Package for pycoze only!



  <!-- For author only -->
  <!-- pip install twine wheel -->

  <!-- 递增setup.py的版本 -->
  <!-- 删除build和dist和pycoze.egg-info文件夹 -->
  <!-- python setup.py sdist bdist_wheel -->
  <!-- twine upload dist/* -->
  <!-- 修改src\renderer\layout\init\const.ts中的库版本要求 -->


pkgId: 4bb1ea0031da05211ea2dd94404071065c662e8560d128c49d1bfca624020880
name: python-pycsvy-help
arch: noarch
version: 0.2.3
epoch: 0
release: 1
summary: Development documents and examples for pycsvy
url: https://github.com/ImperialCollegeLondon/pycsvy
rpm_license: BSD-3-Clause
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycsvy-0.2.3-1.src.rpm
location_href: Packages/python-pycsvy-help-0.2.3-1.noarch.rpm
checksum_type: sha256
description:
  name: my-dataset
  title: Example file of csvy
  description: Show a csvy sample file.
  encoding: utf-8
  schema:
    fields:
    - name: Date
      type: object
    - name: WTI


pkgId: 319533c17974783ffc6e4f7d5088e0bb1228bf8aa43a656411332f28aa01602e
name: python-pycuts-help
arch: noarch
version: 2.0.0
epoch: 0
release: 1
summary: Development documents and examples for pycuts
url: https://github.com/dwancin/pycuts
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pycuts-2.0.0-1.src.rpm
location_href: Packages/python-pycuts-help-2.0.0-1.noarch.rpm
checksum_type: sha256
description:
  **pycuts** is a small Python library that provides a collection of shortcut functions for common operations across various libraries like Hugging Face, PyTorch, and Gradio.



  - **HuggingFaceUtils**: Detect if you're running inside a Hugging Face Space, and if ZeroGPU hardware is being used.
  - **TorchUtils**: Quickly check if a GPU-like accelerator (CUDA or MPS) is available, free GPU memory, or set random seeds for reproducibility.
  - **GradioUtils**: Easily toggle between dark, light, or system appearance modes for Gradio interfaces.



  ```bash
  pip install pycuts
  ```

  Optionally, install with extra dependencies:

  ```bash

  pip install "pycuts[torch]"


  pip install "pycuts[gradio]"
  ```



  ```python
  import pycuts


  if pycuts.is_spaces_available:
      print("Running inside a Hugging Face Space!")


  if pycuts.is_gpu_available:
      print(f"GPU available, using device: {pycuts.get_device}")
  else:
      print("No GPU, using CPU")



  ```





  | Function            | Description                                                                 |
  |---------------------|-----------------------------------------------------------------------------|
  | `spaces.is_available()` | Checks if the current script is running on a Hugging Face Space.            |
  | `spaces.is_zero_gpu()`   | Checks if the Hugging Face Space is using ZeroGPU hardware.                |



  | Function            | Description                                                                 |
  |---------------------|-----------------------------------------------------------------------------|
  | `is_gpu_available()` | Checks if any GPU-like accelerator (CUDA or MPS) is available.             |
  | `empty_cache()`      | Frees up unused GPU memory by clearing the cache on CUDA devices.           |
  | `get_device()`       | Determines which GPU-like accelerator is being used (CUDA, MPS, or CPU).   |
  | `device_count()`     | Returns the number of available GPU-like devices.                          |
  | `manual_seed(seed)`  | Sets the random seed for CPU and GPU contexts for reproducibility.          |



  | Function            | Description                                                                 |
  |---------------------|-----------------------------------------------------------------------------|
  | `dark_mode()`        | Applies dark mode to a Gradio Blocks instance on load.                     |
  | `light_mode()`       | Applies light mode to a Gradio Blocks instance on load.                    |
  | `system_mode()`      | Applies the system's preferred color scheme (light or dark) to Gradio Blocks. |
  | `appearance(mode)`   | Changes the appearance mode of a Gradio Blocks instance (dark, light, system). |



  - `pycuts/__init__.py` - Makes the main utilities easily accessible.
  - `pycuts/pycuts.py` - Contains the implementations of the utility classes and functions.



  This project is licensed under the [MIT License](LICENSE).


pkgId: 72bfc4def717cd5a50911efedbcd4cb177e2e796ae57d7e2d90c071540d7ddae
name: python-pydala2-help
arch: noarch
version: 0.9.4.2
epoch: 0
release: 1
summary: Development documents and examples for pydala2
url: https://pypi.org/project/pydala2/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pydala2-0.9.4.2-1.src.rpm
location_href: Packages/python-pydala2-help-0.9.4.2-1.noarch.rpm
checksum_type: sha256
description:
  <p align="center">
    <img src="logo.jpeg" width="400" alt="PyDala2">
  </p>

  [![PyPI version](https://badge.fury.io/py/pydala2.svg)](https://badge.fury.io/py/pydala2)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)




  Pydala is a high-performance Python library for managing Parquet datasets with powerful metadata capabilities. Built on Apache Arrow, it provides an efficient, user-friendly interface for handling large-scale data operations.


   - 📦 Smart Dataset Management: Efficient Parquet handling with metadata optimization
   - 🔄 Robust Caching: Built-in support for faster data access
   - 🔌 Seamless Integration: Works with Polars, PyArrow, and DuckDB
   - 🔍 Advanced Querying: SQL-like filtering with predicate pushdown
   - 🛠️ Schema Management: Automatic validation and tracking



  ```bash
  pip install pydala2
  ```


  ```python
  from pydala.dataset import ParquetDataset

  dataset = ParquetDataset(
      path="path/to/dataset",
      partitioning="hive",         # Hive-style partitioning
      timestamp_column="timestamp", # For time-based operations
      cached=True                  # Enable performance caching
  )
  ```


  ```python
  import polars as pl


  df = pl.DataFrame({
      "timestamp": pl.date_range(0, 1000, "1d"),
      "value": range(1000)
  })


  dataset.write_to_dataset(
      data=df,                    # Can be a polars or pandas DataFrame or an Arrow Table, Dataset, or RecordBatch or a duckdb result
      mode="overwrite",           # Options: "overwrite", "append", "delta"
      row_group_size=250_000,     # Optimize chunk size
      compression="zstd",         # High-performance compression
      partition_by=["year", "month"], # Auto-partition by time
      unique=True                 # Ensure data uniqueness
  )
  ```


  ```python
  dataset.load(update_metadata=True)


  pt = dataset.t                  # PyDala Table
  df_polars = pt.to_polars()      # Convert to Polars
  df_pandas = pt.to_pandas()      # Convert to Pandas
  df_arrow = pt.to_arrow()        # Convert to Arrow
  rel_ddb = pt.to_ddb()           # Convert DuckDB relation


  ```


  ```python

  pt_filtered = dataset.filter("timestamp > '2023-01-01'")


  df_filtered = (
      dataset
      .filter("column_name > 100")
      .pl.with_columns(
          pl.col("column_name").str.slice(0, 5).alias("new_column_name")
          )
      .to_pandas()
      )


  pt_scanned = dataset.scan("column_name > 100")


  matching_files = ds.scan_files
  ```


  ```python

  dataset.load(update_metadata=True)   # Update for new files


  dataset.load(reload_metadata=True)   # Reload all metadata


  dataset.repair_schema()
  ```


  ```python

  dataset.opt_dtypes()              # Automatic type optimization


  dataset.compact_by_rows(max_rows=100_000)  # Combine small files
  dataset.repartition(partitioning_columns=["date"])  # Optimize partitions
  dataset.compact_by_timeperiod(interval="1d")  # Time-based optimization
  dataset.compact_partitions()  # Partition structure optimization
  ```


  Type optimization involves full dataset rewrite
  Choose compaction strategy based on your access patterns
  Regular metadata updates ensure optimal query performance


  For advanced usage and complete API documentation, visit our docs.


  Contributions welcome! See our contribution guidelines.


  [MIT License](LICENSE)


pkgId: 58a1d0dba9fffd07622077ffc2c8256454eec39fd251122ed4705dc5c0d2cb7a
name: python-pydantic-ai-examples-help
arch: noarch
version: 0.0.13
epoch: 0
release: 1
summary: Development documents and examples for pydantic-ai-examples
url: https://pypi.org/project/pydantic-ai-examples/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pydantic-ai-examples-0.0.13-1.src.rpm
location_href: Packages/python-pydantic-ai-examples-help-0.0.13-1.noarch.rpm
checksum_type: sha256
description:
  [![CI](https://github.com/pydantic/pydantic-ai/actions/workflows/ci.yml/badge.svg?event=push)](https://github.com/pydantic/pydantic-ai/actions/workflows/ci.yml?query=branch%3Amain)
  [![Coverage](https://coverage-badge.samuelcolvin.workers.dev/pydantic/pydantic-ai.svg)](https://coverage-badge.samuelcolvin.workers.dev/redirect/pydantic/pydantic-ai)
  [![PyPI](https://img.shields.io/pypi/v/pydantic-ai.svg)](https://pypi.python.org/pypi/pydantic-ai)
  [![versions](https://img.shields.io/pypi/pyversions/pydantic-ai.svg)](https://github.com/pydantic/pydantic-ai)
  [![license](https://img.shields.io/github/license/pydantic/pydantic-ai.svg?v)](https://github.com/pydantic/pydantic-ai/blob/main/LICENSE)

  Examples of how to use PydanticAI and what it can do.

  For full documentation of these examples and how to run them, see [ai.pydantic.dev/examples/](https://ai.pydantic.dev/examples/).


pkgId: 6ce7fda2052549888dee7b31d0284568b9f04c61209fae5680a5214d9a151b44
name: python-pydantic-api-sdk-notion-help
arch: noarch
version: 0.0.11
epoch: 0
release: 1
summary: Development documents and examples for pydantic-api-sdk-notion
url: https://github.com/stevieflyer/pydantic-api-sdk-notion
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pydantic-api-sdk-notion-0.0.11-1.src.rpm
location_href: Packages/python-pydantic-api-sdk-notion-help-0.0.11-1.noarch.rpm
checksum_type: sha256
description:
  Install the SDK using pip:
  ```bash
  pip install pydantic-api-sdk-notion
  ```

  ```python

  from pydantic_api.notion.sdk import NotionClient

  from pydantic_api.notion.models import (
      TitleDatabaseProperty,
      NumberDatabaseProperty,
      PeopleDatabaseProperty,
      RichTextDatabaseProperty,
      
      SortObjectFactory,
      ParentObjectFactory,
      RichTextObjectFactory,
  )

  notion_api_key = '<your-notion-api-key>'
  client = NotionClient(auth=notion_api_key)

  list_user_response = client.users.list(page_size=5)  # Returns `NotionPaginatedData[UserObject]`
  print(type(list_user_response.results[0]))  # Prints 'PersonUserObject' or 'BotUserObject'

  new_database = client.databases.create(
      parent=ParentObjectFactory.new_page_parent(
          page_id="13e6c6f3f38d80269039f0186aaf95bb"
      ),
      title=[
          RichTextObjectFactory.new_text(content="🌿 Magical Plant Database"),
      ],
      properties={
          "Plant": TitleDatabaseProperty.define(),
          "Scientific Name": RichTextDatabaseProperty.define(),
          "Price ($)": NumberDatabaseProperty.define(format="dollar"),
          "Discovered By": PeopleDatabaseProperty.define(),
      },
  )

  records = client.databases.query(
      database_id=new_database.id,
      sorts=[
          SortObjectFactory.new_property_sort(
              property="Price", direction="descending"
          )
      ],
      page_size=3,
  )
  ```

  The **types used in this SDK** are maintained in a separate GitHub repository:
  [https://github.com/stevieflyer/pydantic-api-models-notion](https://github.com/stevieflyer/pydantic-api-models-notion)
  This repository ensures type definitions stay **in sync with the latest Notion API updates**. Developers can directly use these types for their own projects, even without the SDK.


pkgId: c02ecc4157d497a44b5aee7f65eaf8362fca4247acaadc8e87494edaf6fddfd9
name: python-pydantic-duality-help
arch: noarch
version: 2.0.1
epoch: 0
release: 1
summary: Development documents and examples for pydantic-duality
url: https://github.com/zmievsa/pydantic-duality
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pydantic-duality-2.0.1-1.src.rpm
location_href: Packages/python-pydantic-duality-help-2.0.1-1.noarch.rpm
checksum_type: sha256
description:
  <p align="center">
  <a href="https://github.com/zmievsa/pydantic-duality/actions?query=workflow%3ATests+event%3Apush+branch%3Amain" target="_blank">
      <img src="https://github.com/zmievsa/pydantic-duality/actions/workflows/test.yaml/badge.svg?branch=main&event=push" alt="Test">
  </a>
  <a href="https://codecov.io/gh/zmievsa/pydantic-duality" target="_blank">
      <img src="https://img.shields.io/codecov/c/github/zmievsa/pydantic-duality?color=%2334D058" alt="Coverage">
  </a>
  <a href="https://pypi.org/project/pydantic-duality/" target="_blank">
      <img alt="PyPI" src="https://img.shields.io/pypi/v/pydantic-duality?color=%2334D058&label=pypi%20package" alt="Package version">
  </a>
  <a href="https://pypi.org/project/pydantic-duality/" target="_blank">
      <img src="https://img.shields.io/pypi/pyversions/pydantic-duality?color=%2334D058" alt="Supported Python versions">
  </a>
  </p>

  ```bash
  pip install pydantic-duality
  ```

  Given the following models:
  ```python
  from pydantic_duality import DualBaseModel
  class User(DualBaseModel):
      id: UUID
      name: str
  class Auth(DualBaseModel):
      some_field: str
      user: User
  ```
  Using pydantic-duality is roughly equivalent to making all of the following models by hand:
  ```python
  from pydantic import BaseModel

  class UserRequest(BaseModel, extra=Extra.forbid):
      id: UUID
      name: str

  class AuthRequest(BaseModel, extra=Extra.forbid):
      some_field: str
      user: UserRequest

  class UserResponse(BaseModel, extra=Extra.ignore):
      id: UUID
      name: str

  class AuthResponse(BaseModel, extra=Extra.ignore):
      some_field: str
      user: UserResponse

  class UserPatchRequest(BaseModel, extra=Extra.forbid):
      id: UUID | None
      name: str | None

  class AuthPatchRequest(BaseModel, extra=Extra.forbid):
      some_field: str | None
      user: UserPatchRequest | None
  ```
  So it takes you up to 3 times less code to write the same thing. Note also that pydantic-duality does everything lazily so you will not notice any significant performance or memory usage difference when using it instead of writing everything by hand. Think of it as using all the customized models as cached properties.
  Inheritance, inner models, custom configs, [custom names](https://zmievsa.github.io/pydantic-duality/#/?id=customizing-schema-names), config kwargs, isinstance and subclass checks work intuitively and in the same manner as they would work if you were not using pydantic-duality.

  See [documentation](https://zmievsa.github.io/pydantic-duality/#/) for more details


pkgId: 2e31201440325bd85af08bd5e34ef786db7d0eeeb1178f1cdd1af27ac1e7c918
name: python-pydantic-gitlab-webhooks-help
arch: noarch
version: 0.3.14
epoch: 0
release: 1
summary: Development documents and examples for pydantic-gitlab-webhooks
url: https://github.com/rjw57/pydantic-gitlab-webhooks
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pydantic-gitlab-webhooks-0.3.14-1.src.rpm
location_href: Packages/python-pydantic-gitlab-webhooks-help-0.3.14-1.noarch.rpm
checksum_type: sha256
description:
  [![PyPI - Version](https://img.shields.io/pypi/v/pydantic-gitlab-webhooks)](https://pypi.org/p/pydantic-gitlab-webhooks/)
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pydantic-gitlab-webhooks)
  [![GitHub Release](https://img.shields.io/github/v/release/rjw57/pydantic-gitlab-webhooks)](https://github.com/rjw57/pydantic-gitlab-webhooks/releases)
  [![Test suite status](https://github.com/rjw57/pydantic-gitlab-webhooks/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/rjw57/pydantic-gitlab-webhooks/actions/workflows/main.yml?query=branch%3Amain)

  Module containing Pydantic models for validating bodies from [GitLab webhook
  requests](https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html).



  The project documentation including an API reference can be found at
  [https://rjw57.github.io/pydantic-gitlab-webhooks/](https://rjw57.github.io/pydantic-gitlab-webhooks/).



  Intended usage is via a single `validate_event_header_and_body` function which will
  validate an incoming webhook's `X-Gitlab-Event` header and the body after being parsed
  into a Python dict.

  ```py
  from pydantic import ValidationError
  from pydantic_gitlab_webhooks import (
      validate_event_body_dict,
      validate_event_header_and_body_dict,
  )

  event_body = {
      "object_kind": "access_token",
      "group": {
          "group_name": "Twitter",
          "group_path": "twitter",
          "group_id": 35,
          "full_path": "twitter"
      },
      "object_attributes": {
          "user_id": 90,
          "created_at": "2024-01-24 16:27:40 UTC",
          "id": 25,
          "name": "acd",
          "expires_at": "2024-01-26"
      },
      "event_name": "expiring_access_token"
  }



  parsed_event = validate_event_header_and_body_dict(
      "Resource Access Token Hook",
      event_body
  )
  assert parsed_event.group.full_path == "twitter"


  try:
      validate_event_header_and_body_dict("invalid hook", event_body)
  except ValidationError:
      pass  # ok - expected error raised
  else:
      assert False, "ValidationError was not raised"



  parsed_event = validate_event_body_dict(event_body)
  assert parsed_event.group.full_path == "twitter"


  from pydantic_gitlab_webhooks.events import GroupAccessTokenEvent

  parsed_event = GroupAccessTokenEvent.model_validate(event_body)
  ```


pkgId: 7cb1c0cf1c1210c9678a87e0fa7d477f9a5b0fa38340b08bb6a1d218eaabdfe3
name: python-pydantic-help
arch: noarch
version: 2.10.4
epoch: 0
release: 1
summary: Development documents and examples for pydantic
url: https://github.com/pydantic/pydantic
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pydantic-2.10.4-1.src.rpm
location_href: Packages/python-pydantic-help-2.10.4-1.noarch.rpm
checksum_type: sha256
description:
  [![CI](https://img.shields.io/github/actions/workflow/status/pydantic/pydantic/ci.yml?branch=main&logo=github&label=CI)](https://github.com/pydantic/pydantic/actions?query=event%3Apush+branch%3Amain+workflow%3ACI)
  [![Coverage](https://coverage-badge.samuelcolvin.workers.dev/pydantic/pydantic.svg)](https://coverage-badge.samuelcolvin.workers.dev/redirect/pydantic/pydantic)
  [![pypi](https://img.shields.io/pypi/v/pydantic.svg)](https://pypi.python.org/pypi/pydantic)
  [![CondaForge](https://img.shields.io/conda/v/conda-forge/pydantic.svg)](https://anaconda.org/conda-forge/pydantic)
  [![downloads](https://static.pepy.tech/badge/pydantic/month)](https://pepy.tech/project/pydantic)
  [![versions](https://img.shields.io/pypi/pyversions/pydantic.svg)](https://github.com/pydantic/pydantic)
  [![license](https://img.shields.io/github/license/pydantic/pydantic.svg)](https://github.com/pydantic/pydantic/blob/main/LICENSE)
  [![Pydantic v2](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/pydantic/pydantic/main/docs/badge/v2.json)](https://docs.pydantic.dev/latest/contributing/#badges)

  Data validation using Python type hints.

  Fast and extensible, Pydantic plays nicely with your linters/IDE/brain.
  Define how data should be in pure, canonical Python 3.8+; validate it with Pydantic.



  We've recently launched Pydantic Logfire to help you monitor your applications.
  [Learn more](https://pydantic.dev/articles/logfire-announcement)



  Pydantic V2 is a ground-up rewrite that offers many new features, performance improvements, and some breaking changes compared to Pydantic V1.

  If you're using Pydantic V1 you may want to look at the
  [pydantic V1.10 Documentation](https://docs.pydantic.dev/) or,
  [`1.10.X-fixes` git branch](https://github.com/pydantic/pydantic/tree/1.10.X-fixes). Pydantic V2 also ships with the latest version of Pydantic V1 built in so that you can incrementally upgrade your code base and projects: `from pydantic import v1 as pydantic_v1`.



  See [documentation](https://docs.pydantic.dev/) for more details.



  Install using `pip install -U pydantic` or `conda install pydantic -c conda-forge`.
  For more installation options to make Pydantic even faster,
  see the [Install](https://docs.pydantic.dev/install/) section in the documentation.



  ```python
  from datetime import datetime
  from typing import List, Optional
  from pydantic import BaseModel

  class User(BaseModel):
      id: int
      name: str = 'John Doe'
      signup_ts: Optional[datetime] = None
      friends: List[int] = []

  external_data = {'id': '123', 'signup_ts': '2017-06-01 12:22', 'friends': [1, '2', b'3']}
  user = User(**external_data)
  print(user)

  print(user.id)

  ```



  For guidance on setting up a development environment and how to make a
  contribution to Pydantic, see
  [Contributing to Pydantic](https://docs.pydantic.dev/contributing/).



  See our [security policy](https://github.com/pydantic/pydantic/security/policy).





  [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.10.4)





  * Bump `pydantic-core` to v2.27.2 by [@davidhewitt](https://github.com/davidhewitt) in [#11138](https://github.com/pydantic/pydantic/pull/11138)



  * Fix for comparison of `AnyUrl` objects by [@alexprabhat99](https://github.com/alexprabhat99) in [#11082](https://github.com/pydantic/pydantic/pull/11082)
  * Properly fetch PEP 695 type params for functions, do not fetch annotations from signature by [@Viicos](https://github.com/Viicos) in [#11093](https://github.com/pydantic/pydantic/pull/11093)
  * Include JSON Schema input core schema in function schemas by [@Viicos](https://github.com/Viicos) in [#11085](https://github.com/pydantic/pydantic/pull/11085)
  * Add `len` to `_BaseUrl` to avoid TypeError by [@Kharianne](https://github.com/Kharianne) in [#11111](https://github.com/pydantic/pydantic/pull/11111)
  * Make sure the type reference is removed from the seen references by [@Viicos](https://github.com/Viicos) in [#11143](https://github.com/pydantic/pydantic/pull/11143)



  * [@alexprabhat99](https://github.com/alexprabhat99) made their first contribution in [#11082](https://github.com/pydantic/pydantic/pull/11082)
  * [@Kharianne](https://github.com/Kharianne) made their first contribution in [#11111](https://github.com/pydantic/pydantic/pull/11111)



  [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.10.3)





  * Set fields when `defer_build` is set on Pydantic dataclasses by [@Viicos](https://github.com/Viicos) in [#10984](https://github.com/pydantic/pydantic/pull/10984)
  * Do not resolve the JSON Schema reference for `dict` core schema keys by [@Viicos](https://github.com/Viicos) in [#10989](https://github.com/pydantic/pydantic/pull/10989)
  * Use the globals of the function when evaluating the return type for `PlainSerializer` and `WrapSerializer` functions by [@Viicos](https://github.com/Viicos) in [#11008](https://github.com/pydantic/pydantic/pull/11008)
  * Fix host required enforcement for urls to be compatible with v2.9 behavior by [@sydney-runkle](https://github.com/sydney-runkle) in [#11027](https://github.com/pydantic/pydantic/pull/11027)
  * Add a `default_factory_takes_validated_data` property to `FieldInfo` by [@Viicos](https://github.com/Viicos) in [#11034](https://github.com/pydantic/pydantic/pull/11034)
  * Fix url json schema in `serialization` mode by [@sydney-runkle](https://github.com/sydney-runkle) in [#11035](https://github.com/pydantic/pydantic/pull/11035)



  [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.10.2)





  * Only evaluate FieldInfo annotations if required during schema building by [@Viicos](https://github.com/Viicos) in [#10769](https://github.com/pydantic/pydantic/pull/10769)
  * Do not evaluate annotations for private fields by [@Viicos](https://github.com/Viicos) in [#10962](https://github.com/pydantic/pydantic/pull/10962)
  * Support serialization as any for `Secret` types and `Url` types by [@sydney-runkle](https://github.com/sydney-runkle) in [#10947](https://github.com/pydantic/pydantic/pull/10947)
  * Fix type hint of `Field.default` to be compatible with Python 3.8 and 3.9 by [@Viicos](https://github.com/Viicos) in [#10972](https://github.com/pydantic/pydantic/pull/10972)
  * Add hashing support for URL types by [@sydney-runkle](https://github.com/sydney-runkle) in [#10975](https://github.com/pydantic/pydantic/pull/10975)
  * Hide `BaseModel.__replace__` definition from type checkers by [@Viicos](https://github.com/Viicos) in [10979](https://github.com/pydantic/pydantic/pull/10979)



  [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.10.1)





  * Bump `pydantic-core` version to `v2.27.1` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10938](https://github.com/pydantic/pydantic/pull/10938)



  * Use the correct frame when instantiating a parametrized `TypeAdapter` by [@Viicos](https://github.com/Viicos) in [#10893](https://github.com/pydantic/pydantic/pull/10893)
  * Relax check for validated data in `default_factory` utils by [@sydney-runkle](https://github.com/sydney-runkle) in [#10909](https://github.com/pydantic/pydantic/pull/10909)
  * Fix type checking issue with `model_fields` and `model_computed_fields` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10911](https://github.com/pydantic/pydantic/pull/10911)
  * Use the parent configuration during schema generation for stdlib `dataclass`es by [@sydney-runkle](https://github.com/sydney-runkle) in [#10928](https://github.com/pydantic/pydantic/pull/10928)
  * Use the `globals` of the function when evaluating the return type of serializers and `computed_field`s by [@Viicos](https://github.com/Viicos) in [#10929](https://github.com/pydantic/pydantic/pull/10929)
  * Fix URL constraint application by [@sydney-runkle](https://github.com/sydney-runkle) in [#10922](https://github.com/pydantic/pydantic/pull/10922)
  * Fix URL equality with different validation methods by [@sydney-runkle](https://github.com/sydney-runkle) in [#10934](https://github.com/pydantic/pydantic/pull/10934)
  * Fix JSON schema title when specified as `''` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10936](https://github.com/pydantic/pydantic/pull/10936)
  * Fix `python` mode serialization for `complex` inference by [@sydney-runkle](https://github.com/sydney-runkle) in [pydantic-core#1549](https://github.com/pydantic/pydantic-core/pull/1549)



  The code released in v2.10.0 is practically identical to that of v2.10.0b2.

  [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.10.0)

  See the [v2.10 release blog post](https://pydantic.dev/articles/pydantic-v2-10-release) for the highlights!





  * Bump `pydantic-core` to `v2.27.0` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10825](https://github.com/pydantic/pydantic/pull/10825)
  * Replaced pdm with uv by [@frfahim](https://github.com/frfahim) in [#10727](https://github.com/pydantic/pydantic/pull/10727)



  * Support `fractions.Fraction` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10318](https://github.com/pydantic/pydantic/pull/10318)
  * Support `Hashable` for json validation by [@sydney-runkle](https://github.com/sydney-runkle) in [#10324](https://github.com/pydantic/pydantic/pull/10324)
  * Add a `SocketPath` type for `linux` systems by [@theunkn0wn1](https://github.com/theunkn0wn1) in [#10378](https://github.com/pydantic/pydantic/pull/10378)
  * Allow arbitrary refs in JSON schema `examples` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10417](https://github.com/pydantic/pydantic/pull/10417)
  * Support `defer_build` for Pydantic dataclasses by [@Viicos](https://github.com/Viicos) in [#10313](https://github.com/pydantic/pydantic/pull/10313)
  * Adding v1 / v2 incompatibility warning for nested v1 model by [@sydney-runkle](https://github.com/sydney-runkle) in [#10431](https://github.com/pydantic/pydantic/pull/10431)
  * Add support for unpacked `TypedDict` to type hint variadic keyword arguments with `@validate_call` by [@Viicos](https://github.com/Viicos) in [#10416](https://github.com/pydantic/pydantic/pull/10416)
  * Support compiled patterns in `protected_namespaces` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10522](https://github.com/pydantic/pydantic/pull/10522)
  * Add support for `propertyNames` in JSON schema by [@FlorianSW](https://github.com/FlorianSW) in [#10478](https://github.com/pydantic/pydantic/pull/10478)
  * Adding `__replace__` protocol for Python 3.13+ support by [@sydney-runkle](https://github.com/sydney-runkle) in [#10596](https://github.com/pydantic/pydantic/pull/10596)
  * Expose public `sort` method for JSON schema generation by [@sydney-runkle](https://github.com/sydney-runkle) in [#10595](https://github.com/pydantic/pydantic/pull/10595)
  * Add runtime validation of `@validate_call` callable argument by [@kc0506](https://github.com/kc0506) in [#10627](https://github.com/pydantic/pydantic/pull/10627)
  * Add `experimental_allow_partial` support by [@samuelcolvin](https://github.com/samuelcolvin) in [#10748](https://github.com/pydantic/pydantic/pull/10748)
  * Support default factories taking validated data as an argument by [@Viicos](https://github.com/Viicos) in [#10678](https://github.com/pydantic/pydantic/pull/10678)
  * Allow subclassing `ValidationError` and `PydanticCustomError` by [@Youssefares](https://github.com/Youssefares) in [pydantic/pydantic-core#1413](https://github.com/pydantic/pydantic-core/pull/1413)
  * Add `trailing-strings` support to `experimental_allow_partial` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10825](https://github.com/pydantic/pydantic/pull/10825)
  * Add `rebuild()` method for `TypeAdapter` and simplify `defer_build` patterns by [@sydney-runkle](https://github.com/sydney-runkle) in [#10537](https://github.com/pydantic/pydantic/pull/10537)
  * Improve `TypeAdapter` instance repr by [@sydney-runkle](https://github.com/sydney-runkle) in [#10872](https://github.com/pydantic/pydantic/pull/10872)



  * Don't allow customization of `SchemaGenerator` until interface is more stable by [@sydney-runkle](https://github.com/sydney-runkle) in [#10303](https://github.com/pydantic/pydantic/pull/10303)
  * Cleanly `defer_build` on `TypeAdapters`, removing experimental flag by [@sydney-runkle](https://github.com/sydney-runkle) in [#10329](https://github.com/pydantic/pydantic/pull/10329)
  * Fix `mro` of generic subclass  by [@kc0506](https://github.com/kc0506) in [#10100](https://github.com/pydantic/pydantic/pull/10100)
  * Strip whitespaces on JSON Schema title generation by [@sydney-runkle](https://github.com/sydney-runkle) in [#10404](https://github.com/pydantic/pydantic/pull/10404)
  * Use `b64decode` and `b64encode` for `Base64Bytes` type by [@sydney-runkle](https://github.com/sydney-runkle) in [#10486](https://github.com/pydantic/pydantic/pull/10486)
  * Relax protected namespace config default by [@sydney-runkle](https://github.com/sydney-runkle) in [#10441](https://github.com/pydantic/pydantic/pull/10441)
  * Revalidate parametrized generics if instance's origin is subclass of OG class by [@sydney-runkle](https://github.com/sydney-runkle) in [#10666](https://github.com/pydantic/pydantic/pull/10666)
  * Warn if configuration is specified on the `@dataclass` decorator and with the `__pydantic_config__` attribute by [@sydney-runkle](https://github.com/sydney-runkle) in [#10406](https://github.com/pydantic/pydantic/pull/10406)
  * Recommend against using `Ellipsis` (...) with `Field` by [@Viicos](https://github.com/Viicos) in [#10661](https://github.com/pydantic/pydantic/pull/10661)
  * Migrate to subclassing instead of annotated approach for pydantic url types by [@sydney-runkle](https://github.com/sydney-runkle) in [#10662](https://github.com/pydantic/pydantic/pull/10662)
  * Change JSON schema generation of `Literal`s and `Enums` by [@Viicos](https://github.com/Viicos) in [#10692](https://github.com/pydantic/pydantic/pull/10692)
  * Simplify unions involving `Any` or `Never` when replacing type variables by [@Viicos](https://github.com/Viicos) in [#10338](https://github.com/pydantic/pydantic/pull/10338)
  * Do not require padding when decoding `base64` bytes by [@bschoenmaeckers](https://github.com/bschoenmaeckers) in [pydantic/pydantic-core#1448](https://github.com/pydantic/pydantic-core/pull/1448)
  * Support dates all the way to 1BC by [@changhc](https://github.com/changhc) in [pydantic/speedate#77](https://github.com/pydantic/speedate/pull/77)



  * Schema cleaning: skip unnecessary copies during schema walking by [@Viicos](https://github.com/Viicos) in [#10286](https://github.com/pydantic/pydantic/pull/10286)
  * Refactor namespace logic for annotations evaluation by [@Viicos](https://github.com/Viicos) in [#10530](https://github.com/pydantic/pydantic/pull/10530)
  * Improve email regexp on edge cases by [@AlekseyLobanov](https://github.com/AlekseyLobanov) in [#10601](https://github.com/pydantic/pydantic/pull/10601)
  * `CoreMetadata` refactor with an emphasis on documentation, schema build time performance, and reducing complexity by [@sydney-runkle](https://github.com/sydney-runkle) in [#10675](https://github.com/pydantic/pydantic/pull/10675)



  * Remove guarding check on `computed_field` with `field_serializer` by [@nix010](https://github.com/nix010) in [#10390](https://github.com/pydantic/pydantic/pull/10390)
  * Fix `Predicate` issue in `v2.9.0` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10321](https://github.com/pydantic/pydantic/pull/10321)
  * Fixing `annotated-types` bound by [@sydney-runkle](https://github.com/sydney-runkle) in [#10327](https://github.com/pydantic/pydantic/pull/10327)
  * Turn `tzdata` install requirement into optional `timezone` dependency by [@jakob-keller](https://github.com/jakob-keller) in [#10331](https://github.com/pydantic/pydantic/pull/10331)
  * Use correct types namespace when building `namedtuple` core schemas by [@Viicos](https://github.com/Viicos) in [#10337](https://github.com/pydantic/pydantic/pull/10337)
  * Fix evaluation of stringified annotations during namespace inspection by [@Viicos](https://github.com/Viicos) in [#10347](https://github.com/pydantic/pydantic/pull/10347)
  * Fix `IncEx` type alias definition by [@Viicos](https://github.com/Viicos) in [#10339](https://github.com/pydantic/pydantic/pull/10339)
  * Do not error when trying to evaluate annotations of private attributes by [@Viicos](https://github.com/Viicos) in [#10358](https://github.com/pydantic/pydantic/pull/10358)
  * Fix nested type statement by [@kc0506](https://github.com/kc0506) in [#10369](https://github.com/pydantic/pydantic/pull/10369)
  * Improve typing of `ModelMetaclass.mro` by [@Viicos](https://github.com/Viicos) in [#10372](https://github.com/pydantic/pydantic/pull/10372)
  * Fix class access of deprecated `computed_field`s by [@Viicos](https://github.com/Viicos) in [#10391](https://github.com/pydantic/pydantic/pull/10391)
  * Make sure `inspect.iscoroutinefunction` works on coroutines decorated with `@validate_call` by [@MovisLi](https://github.com/MovisLi) in [#10374](https://github.com/pydantic/pydantic/pull/10374)
  * Fix `NameError` when using `validate_call` with PEP 695 on a class by [@kc0506](https://github.com/kc0506) in [#10380](https://github.com/pydantic/pydantic/pull/10380)
  * Fix `ZoneInfo` with various invalid types by [@sydney-runkle](https://github.com/sydney-runkle) in [#10408](https://github.com/pydantic/pydantic/pull/10408)
  * Fix `PydanticUserError` on empty `model_config` with annotations by [@cdwilson](https://github.com/cdwilson) in [#10412](https://github.com/pydantic/pydantic/pull/10412)
  * Fix variance issue in `_IncEx` type alias, only allow `True` by [@Viicos](https://github.com/Viicos) in [#10414](https://github.com/pydantic/pydantic/pull/10414)
  * Fix serialization schema generation when using `PlainValidator` by [@Viicos](https://github.com/Viicos) in [#10427](https://github.com/pydantic/pydantic/pull/10427)
  * Fix schema generation error when serialization schema holds references by [@Viicos](https://github.com/Viicos) in [#10444](https://github.com/pydantic/pydantic/pull/10444)
  * Inline references if possible when generating schema for `json_schema_input_type` by [@Viicos](https://github.com/Viicos) in [#10439](https://github.com/pydantic/pydantic/pull/10439)
  * Fix recursive arguments in `Representation` by [@Viicos](https://github.com/Viicos) in [#10480](https://github.com/pydantic/pydantic/pull/10480)
  * Fix representation for builtin function types by [@kschwab](https://github.com/kschwab) in [#10479](https://github.com/pydantic/pydantic/pull/10479)
  * Add python validators for decimal constraints (`max_digits` and `decimal_places`) by [@sydney-runkle](https://github.com/sydney-runkle) in [#10506](https://github.com/pydantic/pydantic/pull/10506)
  * Only fetch `__pydantic_core_schema__` from the current class during schema generation by [@Viicos](https://github.com/Viicos) in [#10518](https://github.com/pydantic/pydantic/pull/10518)
  * Fix `stacklevel` on deprecation warnings for `BaseModel` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10520](https://github.com/pydantic/pydantic/pull/10520)
  * Fix warning `stacklevel` in `BaseModel.__init__` by [@Viicos](https://github.com/Viicos) in [#10526](https://github.com/pydantic/pydantic/pull/10526)
  * Improve error handling for in-evaluable refs for discriminator application by [@sydney-runkle](https://github.com/sydney-runkle) in [#10440](https://github.com/pydantic/pydantic/pull/10440)
  * Change the signature of `ConfigWrapper.core_config` to take the title directly by [@Viicos](https://github.com/Viicos) in [#10562](https://github.com/pydantic/pydantic/pull/10562)
  * Do not use the previous config from the stack for dataclasses without config by [@Viicos](https://github.com/Viicos) in [#10576](https://github.com/pydantic/pydantic/pull/10576)
  * Fix serialization for IP types with `mode='python'` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10594](https://github.com/pydantic/pydantic/pull/10594)
  * Support constraint application for `Base64Etc` types by [@sydney-runkle](https://github.com/sydney-runkle) in [#10584](https://github.com/pydantic/pydantic/pull/10584)
  * Fix `validate_call` ignoring `Field` in `Annotated` by [@kc0506](https://github.com/kc0506) in [#10610](https://github.com/pydantic/pydantic/pull/10610)
  * Raise an error when `Self` is invalid by [@kc0506](https://github.com/kc0506) in [#10609](https://github.com/pydantic/pydantic/pull/10609)
  * Using `core_schema.InvalidSchema` instead of metadata injection + checks by [@sydney-runkle](https://github.com/sydney-runkle) in [#10523](https://github.com/pydantic/pydantic/pull/10523)
  * Tweak type alias logic by [@kc0506](https://github.com/kc0506) in [#10643](https://github.com/pydantic/pydantic/pull/10643)
  * Support usage of `type` with `typing.Self` and type aliases by [@kc0506](https://github.com/kc0506) in [#10621](https://github.com/pydantic/pydantic/pull/10621)
  * Use overloads for `Field` and `PrivateAttr` functions by [@Viicos](https://github.com/Viicos) in [#10651](https://github.com/pydantic/pydantic/pull/10651)
  * Clean up the `mypy` plugin implementation by [@Viicos](https://github.com/Viicos) in [#10669](https://github.com/pydantic/pydantic/pull/10669)
  * Properly check for `typing_extensions` variant of `TypeAliasType` by [@Daraan](https://github.com/Daraan) in [#10713](https://github.com/pydantic/pydantic/pull/10713)
  * Allow any mapping in `BaseModel.model_copy()` by [@Viicos](https://github.com/Viicos) in [#10751](https://github.com/pydantic/pydantic/pull/10751)
  * Fix `isinstance` behavior for urls by [@sydney-runkle](https://github.com/sydney-runkle) in [#10766](https://github.com/pydantic/pydantic/pull/10766)
  * Ensure `cached_property` can be set on Pydantic models by [@Viicos](https://github.com/Viicos) in [#10774](https://github.com/pydantic/pydantic/pull/10774)
  * Fix equality checks for primitives in literals by [@sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1459](https://github.com/pydantic/pydantic-core/pull/1459)
  * Properly enforce `host_required` for URLs by [@Viicos](https://github.com/Viicos) in [pydantic/pydantic-core#1488](https://github.com/pydantic/pydantic-core/pull/1488)
  * Fix when `coerce_numbers_to_str` enabled and string has invalid Unicode character by [@andrey-berenda](https://github.com/andrey-berenda) in [pydantic/pydantic-core#1515](https://github.com/pydantic/pydantic-core/pull/1515)
  * Fix serializing `complex` values in `Enum`s by [@changhc](https://github.com/changhc) in [pydantic/pydantic-core#1524](https://github.com/pydantic/pydantic-core/pull/1524)
  * Refactor `_typing_extra` module by [@Viicos](https://github.com/Viicos) in [#10725](https://github.com/pydantic/pydantic/pull/10725)
  * Support intuitive equality for urls by [@sydney-runkle](https://github.com/sydney-runkle) in [#10798](https://github.com/pydantic/pydantic/pull/10798)
  * Add `bytearray` to `TypeAdapter.validate_json` signature by [@samuelcolvin](https://github.com/samuelcolvin) in [#10802](https://github.com/pydantic/pydantic/pull/10802)
  * Ensure class access of method descriptors is performed when used as a default with `Field` by [@Viicos](https://github.com/Viicos) in [#10816](https://github.com/pydantic/pydantic/pull/10816)
  * Fix circular import with `validate_call` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10807](https://github.com/pydantic/pydantic/pull/10807)
  * Fix error when using type aliases referencing other type aliases by [@Viicos](https://github.com/Viicos) in [#10809](https://github.com/pydantic/pydantic/pull/10809)
  * Fix `IncEx` type alias to be compatible with mypy by [@Viicos](https://github.com/Viicos) in [#10813](https://github.com/pydantic/pydantic/pull/10813)
  * Make `__signature__` a lazy property, do not deepcopy defaults by [@Viicos](https://github.com/Viicos) in [#10818](https://github.com/pydantic/pydantic/pull/10818)
  * Make `__signature__` lazy for dataclasses, too by [@sydney-runkle](https://github.com/sydney-runkle) in [#10832](https://github.com/pydantic/pydantic/pull/10832)
  * Subclass all single host url classes from `AnyUrl` to preserve behavior from v2.9 by [@sydney-runkle](https://github.com/sydney-runkle) in [#10856](https://github.com/pydantic/pydantic/pull/10856)



  * [@jakob-keller](https://github.com/jakob-keller) made their first contribution in [#10331](https://github.com/pydantic/pydantic/pull/10331)
  * [@MovisLi](https://github.com/MovisLi) made their first contribution in [#10374](https://github.com/pydantic/pydantic/pull/10374)
  * [@joaopalmeiro](https://github.com/joaopalmeiro) made their first contribution in [#10405](https://github.com/pydantic/pydantic/pull/10405)
  * [@theunkn0wn1](https://github.com/theunkn0wn1) made their first contribution in [#10378](https://github.com/pydantic/pydantic/pull/10378)
  * [@cdwilson](https://github.com/cdwilson) made their first contribution in [#10412](https://github.com/pydantic/pydantic/pull/10412)
  * [@dlax](https://github.com/dlax) made their first contribution in [#10421](https://github.com/pydantic/pydantic/pull/10421)
  * [@kschwab](https://github.com/kschwab) made their first contribution in [#10479](https://github.com/pydantic/pydantic/pull/10479)
  * [@santibreo](https://github.com/santibreo) made their first contribution in [#10453](https://github.com/pydantic/pydantic/pull/10453)
  * [@FlorianSW](https://github.com/FlorianSW) made their first contribution in [#10478](https://github.com/pydantic/pydantic/pull/10478)
  * [@tkasuz](https://github.com/tkasuz) made their first contribution in [#10555](https://github.com/pydantic/pydantic/pull/10555)
  * [@AlekseyLobanov](https://github.com/AlekseyLobanov) made their first contribution in [#10601](https://github.com/pydantic/pydantic/pull/10601)
  * [@NiclasvanEyk](https://github.com/NiclasvanEyk) made their first contribution in [#10667](https://github.com/pydantic/pydantic/pull/10667)
  * [@mschoettle](https://github.com/mschoettle) made their first contribution in [#10677](https://github.com/pydantic/pydantic/pull/10677)
  * [@Daraan](https://github.com/Daraan) made their first contribution in [#10713](https://github.com/pydantic/pydantic/pull/10713)
  * [@k4nar](https://github.com/k4nar) made their first contribution in [#10736](https://github.com/pydantic/pydantic/pull/10736)
  * [@UriyaHarpeness](https://github.com/UriyaHarpeness) made their first contribution in [#10740](https://github.com/pydantic/pydantic/pull/10740)
  * [@frfahim](https://github.com/frfahim) made their first contribution in [#10727](https://github.com/pydantic/pydantic/pull/10727)



  Pre-release, see [the GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.10.0b2) for details.



  Pre-release, see [the GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.9.0b1) for details.


  ... see [here](https://docs.pydantic.dev/changelog/#v0322-2019-08-17) for earlier changes.


pkgId: 0ef8165caf6dbc113a15ee69e59f1860d16b1bbcc1ab467607fda311fbeabb90
name: python-pydantic-mongo-document-help
arch: noarch
version: 0.2.9
epoch: 0
release: 1
summary: Development documents and examples for pydantic-mongo-document
url: https://pypi.org/project/pydantic-mongo-document/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pydantic-mongo-document-0.2.9-1.src.rpm
location_href: Packages/python-pydantic-mongo-document-help-0.2.9-1.noarch.rpm
checksum_type: sha256
description:
  `pydantic_mongo_document` is a Python library that provides a base class for creating MongoDB documents using Pydantic models.



  Install the package using [pip](https://pip.pypa.io/en/stable/) or [poetry](https://python-poetry.org).


  ```bash
  pip install pydantic_mongo_document
  ```


  ```bash
  poetry add pydantic_mongo_document
  ```

  Usage
  To use pydantic_mongo_document, you need to create a Pydantic model that represents your MongoDB document and inherit from the MongoDocument class provided by the library. Here's an example:

  ```python3
  from pydantic_mongo_document import Document

  class User(Document):
      __collection__ = "users"
      __database__ = "production"

      name: str
      email: str

  ```

  In this example, we define a User Pydantic Document model with two fields (name and email) and
  specifies the MongoDB collection name (users) and database name (production) using the `__collection__` and `__database__` class attributes.

  ```python3
  from pydantic_mongo_document import Document



  Document.set_replica_config({"localhost": "mongodb://localhost:27017"})


  class User(Document):
      __replica__ = "localhost"
      __collection__ = "users"
      __database__ = "production"

      name: str
      email: str


  async def create_user():
      user = User(name="John", email="john@example.com")

      await user.insert()

      user = await User.one(add_query={"name": "John"})
      print(user)  # User(id=ObjectId("64fc59cf6410868c9a40644b"), name="John", email="john@example")
  ```

  In this example, we created new User in database. We then used the `User.one` method to retrieve the user from the database.


  Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

  Please make sure to update tests as appropriate.


  MIT


pkgId: 85df444340f218db0aaa489a24e82808f5bc525211d994195f888d248f31e799
name: python-pydantic-settings-help
arch: noarch
version: 2.7.0
epoch: 0
release: 1
summary: Development documents and examples for pydantic-settings
url: https://github.com/pydantic/pydantic-settings
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pydantic-settings-2.7.0-1.src.rpm
location_href: Packages/python-pydantic-settings-help-2.7.0-1.noarch.rpm
checksum_type: sha256
description:
  [![CI](https://github.com/pydantic/pydantic-settings/workflows/CI/badge.svg?event=push)](https://github.com/pydantic/pydantic-settings/actions?query=event%3Apush+branch%3Amain+workflow%3ACI)
  [![Coverage](https://codecov.io/gh/pydantic/pydantic-settings/branch/main/graph/badge.svg)](https://codecov.io/gh/pydantic/pydantic-settings)
  [![pypi](https://img.shields.io/pypi/v/pydantic-settings.svg)](https://pypi.python.org/pypi/pydantic-settings)
  [![license](https://img.shields.io/github/license/pydantic/pydantic-settings.svg)](https://github.com/pydantic/pydantic-settings/blob/main/LICENSE)
  [![downloads](https://static.pepy.tech/badge/pydantic-settings/month)](https://pepy.tech/project/pydantic-settings)
  [![versions](https://img.shields.io/pypi/pyversions/pydantic-settings.svg)](https://github.com/pydantic/pydantic-settings)

  Settings management using Pydantic, this is the new official home of Pydantic's `BaseSettings`.

  This package was kindly donated to the [Pydantic organisation](https://github.com/pydantic) by Daniel Daniels, see [pydantic/pydantic#4492](https://github.com/pydantic/pydantic/pull/4492) for discussion.

  For the old "Hipster-orgazmic tool to manage application settings" package, see [version 0.2.5](https://pypi.org/project/pydantic-settings/0.2.5/).


  See [documentation](https://docs.pydantic.dev/latest/concepts/pydantic_settings/) for more details.


pkgId: 1247a837640946620ead72f67f17c349a909b1e15e7832cdb4a79915a00dfb64
name: python-pydantic-sqlalchemy-deco-help
arch: noarch
version: 0.0.3
epoch: 0
release: 1
summary: Development documents and examples for pydantic-sqlalchemy-deco
url: https://github.com/kevinhikaruevans/pydantic-sqlalchemy-type-decorator
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pydantic-sqlalchemy-deco-0.0.3-1.src.rpm
location_href: Packages/python-pydantic-sqlalchemy-deco-help-0.0.3-1.noarch.rpm
checksum_type: sha256
description:
  Seamlessly use Pydantic 2 models in a Postgres SQLAlchemy model



  The package is available on [pypi](https://pypi.org/p/pydantic_sqlalchemy_deco).

  You can install this package using pip:

  ```bash
  pip install pydantic_sqlalchemy_deco
  ```



  Given some Pydantic model called `MyCustomModel`, you can specify your columns like:

  ```python
  from pydantic_sqlalchemy_deco.decorator import PydanticJSON

  ...

  class MyTable(Base):

      response: Mapped[MyCustomModel] = mapped_column(PydanticJSON(MyCustomModel))
  ```





  If your `BaseModel` has custom serializers, you can specify this using the `T` parameter:

  ```python
      response: Mapped[MyCustomModel] = mapped_column(PydanticJSON[CoolerBaseModel](MyCustomModel))
  ```


pkgId: 60f51859d06f0ca3550d374319eb416bb721cc80b16fd856b930da8ae92510de
name: python-pydatamining-help
arch: noarch
version: 1.0.6
epoch: 0
release: 1
summary: Development documents and examples for pydatamining
url: https://github.com/notickets/pydatamining
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pydatamining-1.0.6-1.src.rpm
location_href: Packages/python-pydatamining-help-1.0.6-1.noarch.rpm
checksum_type: sha256
description:
  Этот проект предназначен для парсинга событий и отправки их в Kafka.





  ```sh
  pip install pydatamining
  ```



  1. Клонируйте репозиторий в папку с проектом:
      ```sh
      git clone https://github.com/notickets/pydatamining
      ```

  2. Создайте виртуальное окружение:
      ```sh
      python3 -m venv venv
      ```
  3. Активируйте виртуальное окружение:
      ```sh
      source venv/bin/activate
      ```
  4. Установите зависимости:
      ```sh
      pip install -r pydatamining/requirements.txt
      ```


pkgId: 248233568fcf8f70ab3c18838ef28e70b7e6f80be363f7858cc89f4dc646f837
name: python-pyday-help
arch: noarch
version: 0.1.3
epoch: 0
release: 1
summary: Development documents and examples for pyday
url: https://pypi.org/project/pyday/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyday-0.1.3-1.src.rpm
location_href: Packages/python-pyday-help-0.1.3-1.noarch.rpm
checksum_type: sha256
description:
  **Usage**:

  ```console
  $ [OPTIONS] COMMAND [ARGS]...
  ```

  **Options**:

  * `--install-completion`: Install completion for the current shell.
  * `--show-completion`: Show completion for the current shell, to copy it or customize the installation.
  * `--help`: Show this message and exit.

  **Commands**:

  * `change-encode`: 將文件從GB2312編碼轉換為UTF-8編碼。
  * `change-lang`: 將文件的語言轉換為指定的語言。



  將文件從GB2312編碼轉換為UTF-8編碼。

  Args:
    path (str): 文件路徑。
    output (str, optional): 轉換後的文件存放位置（默認值為“dist”）。

  **Usage**:

  ```console
  $ change-encode [OPTIONS] PATH
  ```

  **Arguments**:

  * `PATH`: [required]

  **Options**:

  * `--output TEXT`: [default: ./dist]
  * `--help`: Show this message and exit.



  將文件的語言轉換為指定的語言。

  Args:
    path (str): 文件路徑。
    lang (str): 目標語言。(s2t t2s)
    output (str, optional): 轉換後的文件存放位置（默認值為“dist”）。

  **Usage**:

  ```console
  $ change-lang [OPTIONS] PATH LANG
  ```

  **Arguments**:

  * `PATH`: [required]
  * `LANG`: [required]

  **Options**:

  * `--output TEXT`: [default: ./dist]
  * `--help`: Show this message and exit.


pkgId: 10ed5a24594e28b99f0c261fb6e5ad369a7be4535640ae7098afa9e3433ef8cc
name: python-pydivkit-help
arch: noarch
version: 30.31.0
epoch: 0
release: 1
summary: Development documents and examples for pydivkit
url: https://github.com/divkit/divkit/tree/main/json-builder/python
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pydivkit-30.31.0-1.src.rpm
location_href: Packages/python-pydivkit-help-30.31.0-1.noarch.rpm
checksum_type: sha256
description:
  This library is designed to work with [DivKit](http://divkit.tech/) with python.
  Features:
  * Declarative and imperative DivKit blocks definition
  * Native Type-hints support
  * Complete object-oriented API
  * IDE type checks and suggestions


pkgId: 2fc621b258027d9baa1187d6c1e0c6e616a5813a606f61b89a3f4c3b92c33ba9
name: python-pydmart-help
arch: noarch
version: 0.0.3
epoch: 0
release: 1
summary: Development documents and examples for pydmart
url: https://github.com/edraj/pydmart
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pydmart-0.0.3-1.src.rpm
location_href: Packages/python-pydmart-help-0.0.3-1.noarch.rpm
checksum_type: sha256
description:
  This is a Python Dmart client used to interact with a Dmart instance




  Pydmart is distributed via [PyPI](https://pypi.org/project/pydmart/):

  ```python
  pip install pydmart
  ```



  Just simple steps and you will be ready to interact with your Dmart instance

  1. import the class `from pydmart.dmart_service import DmartService`
  2. instantiate an object `d_client = DmartService({dmart_instance_url}, {username}, {password})`
  3. Create / delete connection pool : Preferably in global fastapi lifespan (async)
  4. connect the client to the Dmart instance and authenticate your user `await d_client.connect()`


  You will be able to retrieve your profile as simple as
  `await d_client.get_profile()`


pkgId: cb7f43ce869776b962f500f578230b2dfe66ca50d094b3138b5bddca40074c82
name: python-pydmart2-help
arch: noarch
version: 0.0.9
epoch: 0
release: 1
summary: Development documents and examples for pydmart2
url: https://github.com/edraj/pydmart
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pydmart2-0.0.9-1.src.rpm
location_href: Packages/python-pydmart2-help-0.0.9-1.noarch.rpm
checksum_type: sha256
description:
  This is a Python Dmart client used to interact with a Dmart instance




  Pydmart is distributed via [PyPI](https://pypi.org/project/pydmart/):

  ```python
  pip install pydmart2
  ```



  Just simple steps and you will be ready to interact with your Dmart instance

  1. import the class `from pydmart.dmart_service import DmartService`
  2. instantiate an object `d_client = DmartService({dmart_instance_url}, {username}, {password})`
  3. Create / delete connection pool : Preferably in global fastapi lifespan (async)
  4. connect the client to the Dmart instance and authenticate your user `await d_client.connect()`


  You will be able to retrieve your profile as simple as
  `await d_client.get_profile()`


pkgId: 46e89eb1c91fed62c5495598111fa06ec5c7f2f67124d71d678558c7ad4b6b95
name: python-pydo-help
arch: noarch
version: 0.7.0
epoch: 0
release: 1
summary: Development documents and examples for pydo
url: https://github.com/digitalocean/pydo
rpm_license: Apache-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pydo-0.7.0-1.src.rpm
location_href: Packages/python-pydo-help-0.7.0-1.noarch.rpm
checksum_type: sha256
description:
  `pydo` is the official Python client library that allows
  Python developers to interact with and manage their DigitalOcean
  resources through a Python abstraction layer on top of the raw
  [DigitalOcean API HTTP Interface](https://developers.digitalocean.com/documentation/v2/).

  A top priority of this project is to ensure the client abides by the API
  contract. Therefore, the client itself wraps a generated client based
  on the [DigitalOcean OpenAPI Specification](https://github.com/digitalocean/openapi) to support all of DigitalOcean's HTTP APIs.





  - Python version: >= 3.7.2



  To install from pip:

  ```shell
      pip install git+https://github.com/digitalocean/pydo.git
  ```

  or, if repo is cloned locally:

  ```shell
      pip install /<PATH>/<TO>/pydo
  ```

  To install from source:

  ```shell
  make install
  ```



  > A quick guide to getting started with the client.

  `pydo` must be initialized with `pydo.Client()`. A DigitalOcean API Token is required. The token can be passed explicitly to `pydo.Client()`, as such:

  ```python
  import os
  from pydo import Client

  client = Client(token=os.getenv("DIGITALOCEAN_TOKEN"))
  ```



  Find below a working example for GETting a ssh_key ([per this http request](https://docs.digitalocean.com/reference/api/api-reference/#operation/sshKeys_list)) and printing the ID associated with the ssh key. If you'd like to try out this quick example, you can follow [these instructions](https://docs.digitalocean.com/products/droplets/how-to/add-ssh-keys/) to add ssh keys to your DO account.

  ```python
  import os
  from pydo import Client

  client = Client(token=os.getenv("DIGITALOCEAN_TOKEN"))

  ssh_keys_resp = client.ssh_keys.list()
  for k in ssh_keys_resp["ssh_keys"]:
      print(f"ID: {k['id']}, NAME: {k['name']}, FINGERPRINT: {k['fingerprint']}")
  ```

  The above code snippet should output the following:

  ```shell
  ID: 123456, NAME: my_test_ssh_key, FINGERPRINT: 5c:74:7e:60:28:69:34:ca:dd:74:67:c3:f3:00:7f:fe
  ID: 123457, NAME: my_prod_ssh_key, FINGERPRINT: eb:76:c7:2a:d3:3e:80:5d:ef:2e:ca:86:d7:79:94:0d
  ```

  **Consult the full list of supported DigitalOcean API endpoints in [PyDo's documentation](https://pydo.readthedocs.io/en/latest/).**

  **Note**: More working examples can be found [here](https://github.com/digitalocean/pydo/tree/main/examples).



  Below is an example on handling pagination. One must parse the URL to find the
  next page.

  ```python
  resp = self.client.ssh_keys.list(per_page=50, page=page)
  pages = resp.links.pages
  if 'next' in pages.keys():
      parsed_url = urlparse(pages['next'])
      page = parse_qs(parsed_url.query)['page'][0]
  else:
      paginated = False
  ```



  By default the client uses the same retry policy as the [Azure SDK for Python](https://learn.microsoft.com/en-us/python/api/azure-core/azure.core.pipeline.policies.retrypolicy?view=azure-python).
  retry policy. If you'd like to modify any of these values, you can pass them as keywords to your client initialization:

  ```python
  client = Client(token=os.getenv("DIGITALOCEAN_TOKEN"), retry_total=3)
  ```

  or

  ```python
  client = Client(token=os.getenv("DIGITALOCEAN_TOKEN"), retry_policy=MyRetryPolicy())
  ```



  >Visit our [Contribuing Guide](CONTRIBUTING.md) for more information on getting
  involved in developing this client.



  >The tests included in this repo are used to validate the generated client.
  We use `pytest` to define and run the tests.

  **_Requirements_**

  - Python 3.7+
    - Can be installed using something like
      [pyenv](https://github.com/pyenv/pyenv)
      - used to manage different installed versions of python.
      - can also manage python virtual environments (with a plugin)
    - [Poetry](https://python-poetry.org/docs/#installation).
      - can also be configured to manage python virtual environments.

  There are two types of test suites in the `tests/` directory.



  Tests in the `mocked` directory include:

  - tests that validate the generated client has all the expected classes and
    methods for the respective API resources and operations.
  - tests that exercise individual operations against mocked responses.

  These tests do not act against the real API so no real resources are created.

  To run mocked tests, run:

  ```shell
  make test-mocked
  ```



  Tests in the `integration` directory include tests that simulate specific
  scenarios a customer might use the client for to interact with the API.
  **_IMPORTANT:_** these tests require a valid API token and **_DO_** create real
  resources on the respective DigitalOcean account.

  To run integration tests, run:

  ```shell
  DIGITALOCEAN_TOKEN=... make test-integration
  ```



  Some test values can be customized so integration tests can exercise different
  scenarios. For example, test use a default region to create resources. All the
  default values are managed in the
  [tests/integration/defaults.py](tests/integration/defaults.py) file. Any value
  that has `environ.get()` can be overwritten by setting the respective environment
  variable.



  The included Dockerfile is a developler convenience to test the package in
  isolation.

  To use it, first build the image. Run:

  ```shell
  docker build -t pydo:dev .
  ```



  Open the python shell:

  ```shell
  docker run -it --rm --name pydo pydo:dev python
  ```

  The above will launch an interactive python shell and display the following:

  ```shell
  Skipping virtualenv creation, as specified in config file.
  Python 3.10.5 | packaged by conda-forge | (main, Jun 14 2022, 07:06:46) [GCC 10.3.0] on linux
  Type "help", "copyright", "credits" or "license" for more information.
  >>>
  ```

  From here you can use the client interactively:

  ```shell
  >>> from pydo import Client
  >>> c = Client(DIGITALOCEAN_TOKEN)
  >>> c.droplets.list()
  ```

  Alternatively, the tests can be run by attaching the tests as a volume and
  running pytest directly.

  Run:

  ```shell
  docker run -it --rm --name pydo -v $PWD/tests:/tests pydo:dev pytest tests/mocked
  ```



  >This selection lists the known issues of the client generator.



  In the generated python client, when calling client.kubernetes.get_kubeconfig(clust_id), the deserialization logic raises an error when the response content-type is applicaiton/yaml. We need to determine if the spec/schema can be configured such that the generator results in functions that properly handle the content. We will likely need to report the issue upstream to request support for the content-type.



  In the generated python client, when calling `invoices.get_pdf_by_uuid`, the response returns a Iterator[bytes] that does not format correctly into a PDF.



  Currently, calling the "help(<client function>)" includes the API documentation for the respective operation which is substantial and can be confusing in the context of this client.



  This is a backend issue with the API endpoint. The API endpoint expects the header `content-type: application/json` to be set. If you do not set it you will receive a 415. Since the endpoint doesn't require a request or response body, it is an unnecessary header. For this to work in Pydo, ensure `application/json` header is passed in, as such:

  ```python
      custom_headers = {"Content-Type": "application/json"}
      delete_resp = client.projects.delete(
          headers=custom_headers, project_id=project_id
      )
  ```



  >This section lists short-term and long-term goals for the project.
  **Note**: These are goals, not necessarily commitments. The sections are not intended to represent exclusive focus during these terms.

  Short term:

  > Usability, stability, and marketing.

  Short term, we are focused on improving usability and user productivity (part of this is getting the word out).

  - Documentation
    - Support an automated process for creating comprehensive documentation that explains working of codes
    - Support a clean cli `help(<client function>)` documentation solution
  - Release stability
    - define release strategy
    - pip release

  Long term:

  > Model support, expand on supporting functions

  - The client currently inputs and outputs JSON dictionaries. Adding models would unlock features such as typing and validation.
  - Add supporting functions to elevate customer experience (i.e. adding a funtion that surfaces IP address for a Droplet)


pkgId: e2bb2529ac78b262d67b275160cda75ebd35058fe6ebfbf9be3ad5ef30433733
name: python-pydocks-help
arch: noarch
version: 1.5.0
epoch: 0
release: 1
summary: Development documents and examples for pydocks
url: https://pypi.org/project/pydocks/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pydocks-1.5.0-1.src.rpm
location_href: Packages/python-pydocks-help-1.5.0-1.noarch.rpm
checksum_type: sha256
description:
  PyDocks is a group of pytest fixures for running tests with Docker containers



  ```python
  @pytest.mark.asyncio
  async def test_postgresql_execute_command(postgresql_container):
      
      conn = await asyncpg.connect(
          host="127.0.0.1",
          port=5433,
          user="postgres",
          password="postgres",
          database="postgres",
      )

      try:
          
          result = await conn.fetchval("SELECT 1")
          assert result == 1, "Failed to execute command on PostgreSQL"
      finally:
          
          await conn.close()

  ```



  - [PyDocks](#PyDocks)
    - [Table of Contents](#table-of-contents)
    - [Description](#description)
    - [Installation](#installation)
    - [Usage](#usage)
    - [License](#license)
    - [Contact](#contact)



  PyDocks is a Python library that provides a set of pytest fixtures for running tests with Docker containers. It simplifies the process of setting up, managing, and tearing down Docker containers during test execution.

  Key features include:
  - Easy integration with pytest
  - Support for PostgreSQL, Hashicorp Vault containers, Redis
  - Automatic container cleanup
  - Configurable container settings
  - Reusable session-scoped containers for improved test performance

  PyDocks is designed to make testing with Docker containers more efficient and less error-prone, allowing developers to focus on writing tests rather than managing infrastructure.



  ```bash

  pip install pydocks
  uv add pydocks
  poetry add pydocks
  ```




  ```python
  import pytest_asyncio

  @pytest_asyncio.fixture(scope="session", loop_scope="session", autouse=True)
  async def begin_clean_all_containers(postgresql_clean_all_containers):
      logger.info("Begin - clean all containers")
  ```


  ```python
  @pytest.mark.asyncio
  async def test_postgresql_execute_command(postgresql_container):
    ...
  ```


  ```python
  @pytest.mark.asyncio(loop_scope="session")
  async def test_reuse_postgresql_container_1_2(postgresql_container_session):
    ...
    

  @pytest.mark.asyncio(loop_scope="session")
  async def test_reuse_postgresql_container_2_2(postgresql_container_session):
    ...
    
  ```




  PyDocks is released under the MIT License. See the [LICENSE](LICENSE) file for more details.



  For questions, suggestions, or issues related to PyDocks, please open an issue on the GitHub repository.


pkgId: f772d37a506c8c35ccdfebf9c843be851707171c900038c1aaa99012ae8ba861
name: python-pydoclint-help
arch: noarch
version: 0.5.11
epoch: 0
release: 1
summary: Development documents and examples for pydoclint
url: https://github.com/jsh9/pydoclint
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pydoclint-0.5.11-1.src.rpm
location_href: Packages/python-pydoclint-help-0.5.11-1.noarch.rpm
checksum_type: sha256
description:
  **Table of Contents**
  <!--TOC-->
  - [1. Installation](#1-installation)
  - [2. Usage](#2-usage)
    - [2.1. As a native command line tool](#21-as-a-native-command-line-tool)
    - [2.2. As a _flake8_ plugin](#22-as-a-flake8-plugin)
    - [2.3. As a pre-commit hook](#23-as-a-pre-commit-hook)
    - [2.4. Native vs _flake8_](#24-native-vs-flake8)
    - [2.5. How to configure _pydoclint_](#25-how-to-configure-pydoclint)
    - [2.6. How to ignore certain violations in _flake8_ mode](#26-how-to-ignore-certain-violations-in-flake8-mode)
  - [3. Style violation codes](#3-style-violation-codes)
  - [4. Notes for users](#4-notes-for-users)
  - [5. Notes for developers](#5-notes-for-developers)
  <!--TOC-->

  To install only the native _pydoclint_ tooling, run this command:
  ```
  pip install pydoclint
  ```
  To use _pydoclint_ as a _flake8_ plugin, please run this command, which will
  also install _flake8_ to the current Python environment:
  ```
  pip install pydoclint[flake8]
  ```
  Note that _pydoclint_ currently only supports Python 3.8 and above. (Python 3.7
  support may be added if there are interests and requests.)


  ```
  pydoclint <FILE_OR_FOLDER>
  ```
  Replace `<FILE_OR_FOLDER>` with the file/folder names you want, such as `.`.

  Once you install _pydoclint_ you will have also installed _flake8_. Then you
  can run:
  ```
  flake8 --select=DOC <FILE_OR_FOLDER>
  ```
  If you don't include `--select=DOC` in your command, _flake8_ will also run
  other built-in _flake8_ linters on your code.

  _pydoclint_ is configured for [pre-commit](https://pre-commit.com/) and can be
  set up as a hook with the following `.pre-commit-config.yaml` configuration:
  ```yaml
  - repo: https://github.com/jsh9/pydoclint
    rev: <latest_tag>
    hooks:
      - id: pydoclint
        args: [--style=google, --check-return-types=False]
  ```
  You will need to install `pre-commit` and run `pre-commit install`.

  Should I use _pydoclint_ as a native command line tool or a _flake8_ plugin?
  Here's comparison:
  |                 | Pros                                     | Cons                                                          |
  | --------------- | ---------------------------------------- | ------------------------------------------------------------- |
  | Native tool     | Slightly faster; supports "baseline" [*] | No inline or project-wide omission support right now [**]     |
  | _flake8_ plugin | Supports inline or project-wide omission | Slightly slower because other flake8 plugins are run together |
  \*) "Baseline" allows you to log the current violation state of your existing
  project, making adoption of _pydoclint_ much easier.
  \*\*) This feature may be added in the near future

  _pydoclint_ offers many
  [configuration options](https://jsh9.github.io/pydoclint/config_options.html)
  for you to tune it according to your team's style convention and preference.
  Please read this page for instructions on configuring _pydoclint_:
  [How to configure _pydoclint_](https://jsh9.github.io/pydoclint/how_to_config.html)

  Please read this page:
  [How to ignore certain violations](https://jsh9.github.io/pydoclint/how_to_ignore.html)

  _pydoclint_ currently has 7 categories of style violation codes:
  - `DOC0xx`: Docstring parsing issues
  - `DOC1xx`: Violations about input arguments
  - `DOC2xx`: Violations about return argument(s)
  - `DOC3xx`: Violations about class docstring and class constructor
  - `DOC4xx`: Violations about "yield" statements
  - `DOC5xx`: Violations about "raise" statements
  - `DOC6xx`: Violations about class attributes
  For detailed explanations of each violation code, please read this page:
  [_pydoclint_ style violation codes](https://jsh9.github.io/pydoclint/violation_codes.html).

  If you'd like to use _pydoclint_ for your project, it is recommended that you
  read these additional notes
  [here](https://jsh9.github.io/pydoclint/notes_for_users.html).
  Specifically, there is a section in the additional notes on how to easily adopt
  _pydoclint_ for existing legacy projects.

  If you'd like to contribute to the code base of _pydoclint_, thank you!
  [This guide](https://jsh9.github.io/pydoclint/notes_for_developers.html) can
  hopefully help you get familiar with the code base faster.


pkgId: 595150f89edaa53693015edd245777a9bb5cd8f11bc6b72d5d667cac971b8dd5
name: python-pydoris-help
arch: noarch
version: 1.0.6
epoch: 0
release: 1
summary: Development documents and examples for pydoris
url: https://github.com/apache/doris
rpm_license: Apache 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pydoris-1.0.6-1.src.rpm
location_href: Packages/python-pydoris-help-1.0.6-1.noarch.rpm
checksum_type: sha256
description:
  A Apache Doris client for the Python programming language.

  Apache Doris is a high-performance, real-time analytical database based on MPP architecture, known for its extreme speed and ease of use. It only requires a sub-second response time to return query results under massive data and can support not only high-concurrent point query scenarios but also high-throughput complex analysis scenarios. All this makes Apache Doris an ideal tool for scenarios including report analysis, ad-hoc query, unified data warehouse, and data lake query acceleration. On Apache Doris, users can build various applications, such as user behavior analysis, AB test platform, log retrieval analysis, user portrait analysis, and order analysis.


  ```
  pip install pydoris
  ```




  To connect to doris using SQLAlchemy, use a connection string (URL) following this pattern:

  - **User**: User Name
  - **Password**: Password
  - **Host**: doris FE Host
  - **Port**: doris FE port
  - **Catalog**: Catalog Name
  - **Database**: Database Name


  Here's what the connection string looks like:

  ```
  doris://<User>:<Password>@<Host>:<Port>/<Database>
  pydoris://<User>:<Password>@<Host>:<Port>/<Database>
  ```

  ```
  doris://<User>:<Password>@<Host>:<Port>/<Catalog>.<Database>
  pydoris://<User>:<Password>@<Host>:<Port>/<Catalog>.<Database>
  ```


  It is recommended to use python 3.x to connect to the doris database, eg:
  ```
  from sqlalchemy import create_engine
  from sqlalchemy.schema import Table, MetaData
  from sqlalchemy.sql.expression import select, text

  engine = create_engine('doris://root:xxx@localhost:9030/hive_catalog.hive_db')
  connection = engine.connect()

  rows = connection.execute(text("SELECT * FROM hive_table")).fetchall()
  ```


pkgId: 5cacd78641e35b9825781b941278e2e7f458c479a93281639166d461cc749de9
name: python-pydra-core-help
arch: noarch
version: 0.0.1
epoch: 0
release: 1
summary: Development documents and examples for pydra-core
url: https://pypi.org/project/pydra-core/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pydra-core-0.0.1-1.src.rpm
location_href: Packages/python-pydra-core-help-0.0.1-1.noarch.rpm
checksum_type: sha256
description:
  This is a stable version of the Pydra, containing the core functionality of the Pydra package.
  Pydra was started as an experimental Python version of Hydra-NL
  Pydra is developed by HKV together with Rijkswaterstaat and Deltares and is published under de GNU GPL-3 license.



  > The files `CombOverloopOverslag64.dll` and `DynamicLib-DaF.dll` are obtained from [Hydra-NL v2.8.2](https://iplo.nl/thema/water/applicaties-modellen/waterveiligheidsmodellen/hydra-nl/) which is freely available through the dutch government.
  >
  > The `dllDikesOvertopping.dll` and `feedbackDLL.dll` are part of [DiKErnel](https://github.com/Deltares/DiKErnel) which is made by [Deltares](https://www.deltares.nl/en) and published under the
  > [GNU AFFERO GPL v3](https://github.com/Deltares/DiKErnel/blob/master/Licenses/Deltares/DikesOvertopping.LICENSE) license.
  > These dll files are only included to make use of this package easier.


pkgId: 010cc67a78a79a7132afab5b54ebf79a445b287695e23ec05ad79aaf700bdf25
name: python-pyedgar-help
arch: noarch
version: 0.1.10
epoch: 0
release: 1
summary: Development documents and examples for pyedgar
url: https://github.com/gaulinmp/pyedgar
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyedgar-0.1.10-1.src.rpm
location_href: Packages/python-pyedgar-help-0.1.10-1.noarch.rpm
checksum_type: sha256
description:
  Python package for downloading EDGAR documents and data.

  [![PyPI version shields.io](https://img.shields.io/pypi/v/pyedgar.svg)](https://pypi.python.org/pypi/pyedgar/)
  [![PyPI license](https://img.shields.io/pypi/l/pyedgar.svg)](https://pypi.python.org/pypi/pyedgar/)
  [![PyPI pyversions](https://img.shields.io/pypi/pyversions/pyedgar.svg)](https://pypi.python.org/pypi/pyedgar/)
  [![GitHub latest commit](https://badgen.net/github/last-commit/gaulinmp/pyedgar)](https://GitHub.com/gaulinmp/pyedgar/commit/)




  There are two primary interfaces to this library, namely filings and indices.




  [filing.py](pyedgar/filing.py) is the main module for interacting with EDGAR forms.

  Simple example:

  ```python
  from pyedgar import Filing
  f = Filing(20, '0000893220-96-000500')

  print(f)


  print(f.type, f)


  print(f.documents[0]['full_text'][:800])






















  ```

  The forms are loaded lazily, so only when you request the data is the file read from disk or downloaded from the EDGAR website.
  Filing objects have the following properties:

  * ``path``: path to cached filing on disk
  * ``urls``: URLs the EDGAR website location for the full text file and the index file
  * ``full_text``: Full text of the entire `.nc` filing (not just the first document)
  * ``headers``: Dictionary of all the headers from the full filing (i.e. not the exhibits). E.g. CIK, ACCESSION, PERIOD, etc.
  * ``type``: The general type of the document, extracted from the TYPE header and cleaned up (so 10-K405 --> 10-K)
  * ``type_exact``: The exact text extracted from the TYPE field
  * ``documents``: Array of all the documents (between <DOCUMENT></DOCUMENT> tags). 0th is typically the main form, i.e. the 10-K filing, subsequent documents are exhibits.
      * Each document in this array is itself a dictionary, with fields: TYPE, SEQUENCE, DESCRIPTION (typically the file name), FULL_TEXT. The latter is the text of the exhibit, i.e. just the 10-K filing in text or HTML.



  [index.py](pyedgar/index.py) is the main module for accessing extracted EDGAR indices.
  The indices are created in [pyedgar.utilities.indices](pyedgar/utilities/indices.py#L34) by the IndexMaker class.
  Once these indices are created (which you can do by setting ``force_download=True``), you can view them via the ``indices`` property:

  ```python
  from pyedgar import EDGARIndex
  all_indices = EDGARIndex(force_download=False)

  print(all_indices.indices)








  ```

  These indices are accessible as a pandas dataframe via [] or the ``get_index`` method, where the index is selected via the key above (with or without the form_ or .tab).

  ```python
  form_10k = all_indices['10-K']

  print(form_10k.head(1))



  ```

  To get a type of form that isn't automatically extracted, you can use form_all:

  ```python
  df_s1 = EDGARIndex().get_index('all').query("form.str.startswith('S-1')")

  print(df_s1.head(1))



  ```

  All indices are loaded and saved by pandas, so pandas is a requirement for using this functionality.





  Config files named ``pyedgar.conf``, ``.pyedgar``, ``pyedgar.ini`` are searched for at (in order):

  1. ``os.environ.get("PYEDGAR_CONF", '.')`` <-- PYEDGAR_CONF environmental variable
  2. ``./``
  3. ``~/.config/pyedgar``
  4. ``~/AppData/Local/pyedgar``
  5. ``~/AppData/Roaming/pyedgar``
  6. ``~/Library/Preferences/pyedgar``
  7. ``~/.config/``
  8. ``~/``
  9. ``~/Documents/``
  10. ``os.path.abspath(os.path.dirname(__file__))`` <-- directory of the package. Default package ships with this existing.


  See the [example config file](pyedgar/pyedgar.conf) for commented config settings.

  Running multiple configs is quite easy, by setting ``os.environ`` manually:

  ```python

  import os

  os.environ['PYEDGAR_CONF'] = os.path.expanduser('~/Dropbox/config/pyedgar/hades.desb.pyedgar.conf')

  from pyedgar import config
  print(config.CONFIG_FILE)





  ```



  There is a convenience downloader script, for downloading filing feed files and indexes.

  To see the status of current cached downloads (shows the latest downloaded files) and to see the config setup:

  ```bash
  $ python -m pyedgar.downloader --status --config
  ```

  To download and extract index files:

  ```bash
  $ python -m pyedgar.downloader -i --log info
  ```

  And to download and extract the last 30 days of filings:

  ```bash
  $ python -m pyedgar.downloader -d
  ```

  To download and extract filings since the beginning:

  ```bash
  $ python -m pyedgar.downloader -d --start-date 1995-01-01
  ```





  Pip installable:

  ```bash
  pip install pyedgar
  ```

  Or pip installable from github:

  ```bash
  pip install git+https://github.com/gaulinmp/pyedgar#egg=pyedgar
  ```

  or by checking out from github and installing in editable mode:

  ```bash
  git clone https://github.com/gaulinmp/pyedgar
  cd pyedgar
  pip install -e ./
  ```



  w3m for converting HTML to plaintext (tested on Linux).
  A fallback method might one day be added.

  Tested only on Python >3.4

  HTML parsing tested only on Linux.
  Other HTML->text conversion methodologies were tried (html2text, BeautifulSoup, lxml) but w3m was fastest even with the subprocess calling.
  Converting multiple HTML files could probably be optimized with one instance of w3m instead of spawning a subprocess for each call.
  But that's for future Mac to work on.


pkgId: 032c24682582d6cfd2199530177dedea9de86469e3aae9d1b7d4e6d1084bf95d
name: python-pyedifice-help
arch: noarch
version: 2.8.0
epoch: 0
release: 1
summary: Development documents and examples for pyedifice
url: https://pyedifice.github.io
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyedifice-2.8.0-1.src.rpm
location_href: Packages/python-pyedifice-help-2.8.0-1.noarch.rpm
checksum_type: sha256
description:
  <h3 align="center">
  <img src="https://raw.githubusercontent.com/pyedifice/pyedifice/master/docs/source/image/EdificePyramid.svg" width="200">
  </h3>

  <h1 align=center>Edifice<br> Declarative GUI framework for Python and Qt</h1>

  Edifice is a Python library declarative framework for application user
  interfaces.

  - Modern **declarative** UI paradigm from web development.
  - **100% Python** application development, no language inter-op.
  - A **native** Qt desktop app instead of a bundled web browser.
  - Fast iteration via **hot-reloading**.

  Edifice uses [PySide6](https://doc.qt.io/qtforpython-6/)
  or [PyQt6](https://www.riverbankcomputing.com/static/Docs/PyQt6/introduction.html)
  as a backend. Edifice is like
  [React](https://react.dev/), but with
  Python instead of JavaScript, and [Qt Widgets](https://doc.qt.io/qt-6/qtwidgets-index.html) instead of the HTML DOM.

  If you have React experience, you’ll find Edifice easy to learn.
  Edifice has function Components, Props, and Hooks just like React.



  * **Installation**
    ```
    pip install PySide6-Essentials
    ```
    ```
    pip install pyedifice
    ```
  * **Source** published at [github.com/pyedifice/pyedifice](https://github.com/pyedifice/pyedifice)
  * **Package** published at [pypi.org/project/pyedifice](https://pypi.org/project/pyedifice)
  * **Documentation** published at [pyedifice.github.io](https://pyedifice.github.io)





  Most existing GUI libraries in Python, such as Tkinter and Qt, operate imperatively.
  To create a dynamic application using these libraries,
  you must not only think about *what* widgets to display to the user,
  but also *how* to issue the commands to modify the widgets.

  With Edifice the developer
  need only declare *what* is rendered,
  not *how* the content is rendered.

  User interactions update the application state, the state renders to a widget tree,
  and Edifice modifies the existing widget tree to reflect the new state.

  Edifice code looks like this:

  ```python
      number, set_number = use_state(0)

      with VBoxView():
          Button("Add 5", on_click=lambda event: set_number(number+5))
          Label(str(number))
          if number > 30 and number < 70:
              Label("Number is mid")
  ```

  The GUI displays
  a button and a label with the current value of `number`.
  Clicking the button will add 5 to the `number`.
  If the `number` is “mid” then another label will reveal that fact.



  [Qt Quick](https://doc.qt.io/qtforpython-6/PySide6/QtQuick/) is Qt’s declarative GUI framework for Qt.

  Qt Quick programs are written in Python + the
  special [QML](https://doc.qt.io/qtforpython-6/overviews/qmlapplications.html) language + JavaScript.

  Edifice programs are written in Python.

  Because Edifice programs are only Python, binding to the
  UI is much more straightforward.
  Edifice makes it easy to dynamically create, mutate, shuffle, and destroy sections of the UI.
  Qt Quick assumes a much more static interface.

  Qt Quick is like DOM + HTML + JavaScript, whereas Edifice is like React.
  QML and HTML are both declarative UI languages but
  they require imperative logic in another language for dynamism.
  Edifice and React allow fully dynamic applications to be specified
  declaratively in one language.



  An Edifice component is a render function which declares the mapping from the state to UI.
  The state of a component is divided into **props** and **state**.
  **props** are passed to the component in the constructor,
  whereas **state** is the component’s own internal state.

  Changes to **props** or **state** will trigger a re-render of the component.
  The old and new component trees will be compared to one another,
  and a diffing algorithm will determine which components previously existed and which ones are new
  (the algorithm behaves similarly to the React diffing algorithm).
  Components that previously existed will maintain their **state**, whereas their **props** will be updated.
  Finally, Edifice will issue the minimal update commands to update the UI.

  ![MANUFACIA-Vision_capture1](https://github.com/user-attachments/assets/eab9ec8e-1334-4d79-ae0e-f1ecd7f8adac)





  Dyanamic hot-reload is very useful for fine-tuning the presentation styles
  of Elements deep within your application.
  You can test if the margin should be *10px* or *15px* instantly without closing the app, reopening it, and waiting for everything to load.



  Similar to the Inspect Elements tool of a browser, the Element Inspector will
  show you the tree of Elements in a running Edifice application, along with all of the props
  and state of the Elements.


  Edifice is [MIT Licensed](https://en.wikipedia.org/wiki/MIT_License).

  Edifice uses Qt under the hood, and both PyQt6 and PySide6 are supported. Note that PyQt6 is distributed with the *GPL* license while PySide6 is distributed
  under the more flexible *LGPL* license.

  See [PyQt vs PySide Licensing](https://www.pythonguis.com/faq/pyqt-vs-pyside/).

  > ### Can I use PySide for commercial applications?
  > Yes, and you don't need to release your source code to customers. The LGPL only requires you to release any changes you make to PySide itself.



  See [Release Notes](https://pyedifice.github.io/versions.html)
  (source: [versions.rst](docs/source/versions.rst))




  Contributions are welcome; please send Pull Requests! See
  [DEVELOPMENT.md](https://github.com/pyedifice/pyedifice/blob/master/DEVELOPMENT.md)
  for development notes.

  When submitting a Pull Request, think about adding tests to [tests](tests) and
  adding a line to the **Unreleased** section of the
  change log [versions.rst](docs/source/versions.rst).



  The Poetry `pyproject.toml` specifies the package dependecies.

  Because Edifice supports PySide6 and PyQt6 at the same time, neither
  are required by `[tool.poetry.dependencies]`. Instead they are both
  optional `[tool.poetry.group.dev.dependencies]`. A project which depends
  on Edifice should also depend on either `PySide6` or
  `PySide6-Essentials` or `PyQt6`.

  The `requirements.txt` is generated by

  ```
  poetry export -f requirements.txt --output requirements.txt
  ```

  To use the latest Edifice with a Poetry `pyproject.toml` from Github
  instead of PyPI, see
  [Poetry git dependencies](https://python-poetry.org/docs/dependency-specification/#git-dependencies),
  for example:

  ```
  [tool.poetry.dependencies]
  python = ">=3.10,<3.11"
  pyedifice = {git = "https://github.com/pyedifice/pyedifice.git"}
  PySide6-Essentials = "6.6.2"
  ```


pkgId: 67ce83966a2b17cf69475c3284c93313d95a59ca3353dde60ea325419167d243
name: python-pyeilcd-help
arch: noarch
version: 7.0.12
epoch: 0
release: 1
summary: Development documents and examples for pyeilcd
url: https://pypi.org/project/pyeilcd/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyeilcd-7.0.12-1.src.rpm
location_href: Packages/python-pyeilcd-help-7.0.12-1.noarch.rpm
checksum_type: sha256
description:
  [![PyPI](https://img.shields.io/pypi/v/pyeilcd.svg)][pypi status]
  [![Python Version](https://img.shields.io/pypi/pyversions/pyeilcd)][pypi status]

  [pypi status]: https://pypi.org/project/pyeilcd/

  pyeilcd is a Python package that provides a simple interface to validate extended-ILCD (eILCD) XML files against the ILCD schemas based on the [pyilcd](https://github.com/brightway-lca/pyilcd) library.



  You can install _pyeilcd_ via [pip] from [PyPI]:

  ```console
  $ pip install pyeilcd
  ```



  ```python
  from pyeilcd import validate_file_contact_dataset, Defaults


  Defaults.config_defaults("config.ini")  # Replace with your own config file


  validate_file_contact_dataset("data/invalid/sample_contact_invalid.xml")  # Replace with your own XML file
  >> data/contact/sample_contact_invalid.xml:17:0:ERROR:SCHEMASV:SCHEMAV_CVC_DATATYPE_VALID_1_2_1: Element '{http://lca.jrc.it/ILCD/Common}class', attribute 'level': 'a' is not a valid value of the atomic type '{http://lca.jrc.it/ILCD/Common}LevelType'. data/contact/sample_contact_invalid.xml:17:0:ERROR:SCHEMASV:SCHEMAV_CVC_IDC: Element '{http://lca.jrc.it/ILCD/Common}class', attribute 'level': Warning: No precomputed value available, the value was either invalid or something strange happened.
  ```


  ```bash

  git tag

  git tag v7.0.12

  git push origin v7.0.12

  ```



  Distributed under the terms of the GPL 3.0 license,
  _pyeilcd_ is free and open source software.


  [pip]: https://pip.pypa.io/en/stable/
  [PyPI]: https://pypi.org/project/pyeilcd/


pkgId: 821cd0b805d574fe66174bd2f9b5263af37ff8cd1dfe5d2c7db8925202679d60
name: python-pyepsilla-help
arch: noarch
version: 0.3.12
epoch: 0
release: 1
summary: Development documents and examples for pyepsilla
url: https://pypi.org/project/pyepsilla/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyepsilla-0.3.12-1.src.rpm
location_href: Packages/python-pyepsilla-help-0.3.12-1.noarch.rpm
checksum_type: sha256
description:
  <p align="center">
      <img width="275" alt="Epsilla Logo" src="https://epsilla-misc.s3.amazonaws.com/epsilla-horizontal.png">
  </p>

  <p align="center">
      <b>Python Client for <a href="https://github.com/epsilla-cloud/vectordb">Epsilla</a> Vector Database</b>
  </p>

  <hr />

  Welcome to Python SDK for Epsilla Vector Database!
  - <a href="https://epsilla-inc.gitbook.io/epsilladb/vector-database/connect-to-a-database">QuickStart</a>
  - <a href="https://pypi.org/project/pyepsilla/#history">Release History</a>


  ```shell
  pip3 install --upgrade pyepsilla
  ```




  ```shell
  docker pull epsilla/vectordb
  docker run -d -p 8888:8888 epsilla/vectordb
  ```


  If you are using Jupyter Notebook on localhost, the port 8888 maybe conflict!

  So you can change the vectordb port to another number, such as 18888
  ```
  docker run -d -p 18888:8888 epsilla/vectordb
  ```



  ```python
  from pyepsilla import vectordb

  db_name = "MyDB"
  db_path = "/tmp/epsilla"
  table_name = "MyTable"


  client = vectordb.Client(
    host='localhost',
    port='8888'
  )


  client.load_db(db_name, db_path)
  client.use_db(db_name)


  client.create_table(
    table_name=table_name,
    table_fields=[
      {"name": "ID", "dataType": "INT", "primaryKey": True},
      {"name": "Doc", "dataType": "STRING"},
      {"name": "Embedding", "dataType": "VECTOR_FLOAT", "dimensions": 4}
    ]
  )


  client.insert(
    table_name=table_name,
    records=[
      {"ID": 1, "Doc": "Berlin", "Embedding": [0.05, 0.61, 0.76, 0.74]},
      {"ID": 2, "Doc": "London", "Embedding": [0.19, 0.81, 0.75, 0.11]},
      {"ID": 3, "Doc": "Moscow", "Embedding": [0.36, 0.55, 0.47, 0.94]},
      {"ID": 4, "Doc": "San Francisco", "Embedding": [0.18, 0.01, 0.85, 0.80]},
      {"ID": 5, "Doc": "Shanghai", "Embedding": [0.24, 0.18, 0.22, 0.44]}
    ]
  )


  status_code, response = client.query(
    table_name=table_name,
    query_field="Embedding",
    query_vector=[0.35, 0.55, 0.47, 0.94],
    response_fields = ["Doc"],
    limit=2
  )
  print(response)


  status_code, response = client.query(
    table_name=table_name,
    query_field="Embedding",
    query_vector=[0.35, 0.55, 0.47, 0.94],
    limit=2
  )
  print(response)


  status_code, response =  client.delete(table_name=table_name, primary_keys=[3, 4])
  status_code, response =  client.delete(table_name=table_name, filter="Doc <> 'San Francisco'")
  print(response)



  client.drop_table(table_name)


  client.unload_db(db_name)
  ```





  https://cloud.epsilla.com


  Please get the project_id, db_id, epsilla_api_key from Epsilla Cloud at first
  ```python3
  from pyepsilla import cloud

  epsilla_api_key = os.getenv("EPSILLA_API_KEY", "Your-Epsilla-API-Key")
  project_id = os.getenv("EPSILLA_PROJECT_ID", "Your-Project-ID")
  db_id = os.getenv("EPSILLA_DB_ID", "Your-DB-ID")



  cloud_client = cloud.Client(project_id="*****-****-****-****-************", api_key="eps_**********")


  db_client = cloud_client.vectordb(db_id)


  status_code, response = db.create_table(
      table_name="MyTable",
      table_fields=[
          {"name": "ID", "dataType": "INT", "primaryKey": True},
          {"name": "Doc", "dataType": "STRING"},
          {"name": "Embedding", "dataType": "VECTOR_FLOAT", "dimensions": 4},
      ],
  )
  print(status_code, response)


  status_code, response = db.insert(
      table_name="MyTable",
      records=[
          {"ID": 1, "Doc": "Berlin", "Embedding": [0.05, 0.61, 0.76, 0.74]},
          {"ID": 2, "Doc": "London", "Embedding": [0.19, 0.81, 0.75, 0.11]},
          {"ID": 3, "Doc": "Moscow", "Embedding": [0.36, 0.55, 0.47, 0.94]},
          {"ID": 4, "Doc": "San Francisco", "Embedding": [0.18, 0.01, 0.85, 0.80]},
          {"ID": 5, "Doc": "Shanghai", "Embedding": [0.24, 0.18, 0.22, 0.44]},
      ],
  )
  print(status_code, response)



  status_code, response = db.query(
      table_name="MyTable",
      query_field="Embedding",
      query_vector=[0.35, 0.55, 0.47, 0.94],
      response_fields=["Doc"],
      limit=2,
  )
  print(status_code, response)



  status_code, response = db.delete(table_name="MyTable", primary_keys=[4, 5])
  status_code, response = db.delete(table_name="MyTable", filter="Doc <> 'San Francisco'")
  print(status_code, response)


  status_code, response = db.drop_table(table_name="MyTable")
  print(status_code, response)


  ```



  Please get the project_id, epsilla_api_key, ragapp_id, converstation_id(optional) from Epsilla Cloud at first
  The resp will contains answer as well as contexts, like {"answer": "****", "contexts": ['context1','context2', ...]}

  ```python3
  from pyepsilla import cloud

  epsilla_api_key = os.getenv("EPSILLA_API_KEY", "Your-Epsilla-API-Key")
  project_id = os.getenv("EPSILLA_PROJECT_ID", "Your-Project-ID")
  ragapp_id = os.getenv("EPSILLA_RAGAPP_ID", "Your-RAGAPP-ID")
  conversation_id = os.getenv("EPSILLA_CONVERSATION_ID", "Your-CONVERSATION-ID")


  client = cloud.RAG(
      project_id=project_id,
      api_key=epsilla_api_key,
      ragapp_id=ragapp_id,
      conversation_id=conversation_id,
  )


  client.start_new_conversation()
  resp = client.query("What's RAG?")

  print("[INFO] response is", resp)
  ```



  Bug reports and pull requests are welcome on GitHub at [here](https://github.com/epsilla-cloud/epsilla-python-client)

  If you have any question or problem, please join our [discord](https://discord.com/invite/cDaY2CxZc5)

  We love your <a href="https://forms.gle/z73ra1sGBxH9wiUR8">Feedback</a>!


pkgId: 75877d804ef8c77345ac947ed26ab9c45a557ad1cc1068c54dc3b2b68605e0c3
name: python-pyetymdict-help
arch: noarch
version: 0.1.0
epoch: 0
release: 1
summary: Development documents and examples for pyetymdict
url: https://github.com/lexibank/pyetymdict
rpm_license: Apache 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyetymdict-0.1.0-1.src.rpm
location_href: Packages/python-pyetymdict-help-0.1.0-1.noarch.rpm
checksum_type: sha256
description:
  The package provides a CLDF data model for etymological dictionaires
  layered on top of CLDF Wordlists curated via `pylexibank`.


pkgId: 4bccdfbdf63941b8e00dfb1e4122c630e3e927cd8901cef038fd6c9b4fb001be
name: python-pyeuvac-help
arch: noarch
version: 0.0.5b0
epoch: 0
release: 1
summary: Development documents and examples for pyeuvac
url: https://github.com/klklklo/pyeuvac
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyeuvac-0.0.5b0-1.src.rpm
location_href: Packages/python-pyeuvac-help-0.0.5b0-1.noarch.rpm
checksum_type: sha256
description:
  <!--Basic information-->
  pyeuvac is a Python3 implementation of the extra ultraviolet (EUV) flux model described by P. G. Richards,
  J. A. Fennelly, D. G. Torr. This EUV model provides fluxes in the range 5-105 nm, divided into 20 intervals
  of 5 nm width and into 17 separate lines.

  If you use pyeuvac or Euvac model directly or indirectly, please, cite in your research the following paper:

  1. Richards, P. G., J. A. Fennelly, and D. G. Torr (1994), Euvac: A solar EUV Flux Model for aeronomic calculations,
  J. Geophys. Res., 99(A5), 8981-8992. https://doi.org/10.1029/94JA00518



  <!--Users guide-->



  The following command is used to install the package:

  ```
  python -m pip install pyeuvac
  ```
  pyeuvac is the name of the package.



  The pyeuvac package contains one class Euvac which has 3 methods:
  - get_spectral_bands() for calculating the spectrum over intervals;
  - get_spectral_lines() for calculating the spectrum along individual lines;
  - get_spectra() for calculating the spectrum in a wavelength interval and in an individual wavelength.

  All methods of the class have two input parameters:
  - F<sub>10.7</sub> - daily value of the F<sub>10.7</sub> solar activity index (in s.f.u.);
  - F<sub>10.7A</sub> - the average value of the F<sub>10.7</sub> solar activity index for 81 days.

  Parameters can only be of types float, int, list and numpy.array. If there are several parameters, they are passed as
  lists with an equal number of elements.



  1. get_spectral_bands()

  Method for calculating spectrum in 5 nm wide intervals from 5-105 nm range. Method returns xarray Dataset class object.

  Input parameters:
  - f107 - single value of the daily index F10.7 (in s.f.u.);
  - f107avg - 81-day average F10.7 value (in s.f.u.).

  ```
  <xarray.Dataset> Size: 736B
  Dimensions:           (F10.7: 1, F10.7AVG: 1, band_center: 20, band_number: 20)
  Coordinates:
    * F10.7             (F10.7) float64 8B <input F10.7 values>
    * F10.7AVG          (F10.7AVG) float64 8B <input F10.7A values>
    * band_center       (band_center) float64 160B 7.5 12.5 17.5 ... 97.5 102.5
    * band_number       (band_number) int32 80B 0 1 2 3 4 5 ... 14 15 16 17 18 19
  Data variables:
      euv_flux_spectra  (F10.7, F10.7AVG, band_center) float64 160B <output spectrum>
      lband             (band_number) float64 160B 5.0 10.0 15.0 ... 95.0 100.0
      uband             (band_number) float64 160B 10.0 15.0 20.0 ... 100.0 105.0
  ```
  The resulting spectrum is contained in a three-dimensional array with dimensions (F<sub>10.7</sub>, F<sub>10.7A</sub>, euv_spectrum)

  Below is an example of calculating the spectrum with input parameters F<sub>10.7</sub> = F<sub>10.7A</sub> = 200 s.f.u.
  ```

  import pyeuvac as pe

  example = pe.Euvac()

  spectrum = example.get_spectral_bands(f107=200., f107avg=200.)

  print(spectrum['euv_flux_spectra'])


  <xarray.DataArray 'euv_flux_spectra' (F10.7: 1, F10.7AVG: 1, band_center: 20)> Size: 160B
  array([[[ 2.642448  ,  0.83475   , 12.504     , 10.3367336 ,
            7.01157116,  3.56471   ,  1.69090256,  0.72348547,
            0.976695  ,  0.92705019,  0.51372157,  0.826272  ,
            0.34776092,  0.22137   ,  1.19157903,  2.5642565 ,
            5.945697  ,  4.793988  ,  2.2567559 ,  3.762175  ]]])
  Coordinates:
    * F10.7        (F10.7) float64 8B 200.0
    * F10.7AVG     (F10.7AVG) float64 8B 200.0
    * band_center  (band_center) float64 160B 7.5 12.5 17.5 ... 92.5 97.5 102.5
  ```

  If you need to calculate the spectrum for several F<sub>10.7</sub> and F<sub>10.7A</sub> values, pass them using a list.
  The number of values in the lists must be equal.
  ```

  spectrum = example.get_spectral_bands(f107=[200., 210., 220.], f107avg=[200., 210., 220.])

  print(spectrum['euv_flux_spectra'][0,0,:])


  <xarray.DataArray 'euv_flux_spectra' (band_center: 20)> Size: 160B
  array([ 2.642448  ,  0.83475   , 12.504     , 10.3367336 ,  7.01157116,
          3.56471   ,  1.69090256,  0.72348547,  0.976695  ,  0.92705019,
          0.51372157,  0.826272  ,  0.34776092,  0.22137   ,  1.19157903,
          2.5642565 ,  5.945697  ,  4.793988  ,  2.2567559 ,  3.762175  ])
  Coordinates:
      F10.7        float64 8B 200.0
      F10.7AVG     float64 8B 200.0
    * band_center  (band_center) float64 160B 7.5 12.5 17.5 ... 92.5 97.5 102.5
  ```

  2. get_spectral_lines()

  Method for calculating spectrum in 17 separate lines from the range 5-105 nm. Method returns xarray Dataset class object.

  Input parameters:
  - f107 - single value of the daily index F10.7 (in s.f.u.);
  - f107avg - 81-day average F10.7 value (in s.f.u.).

  f107 and f107avg can be represented by lists for calculating spectra for several values of F<sub>10.7</sub> and F<sub>10.7A</sub>.
  In this case, the lengths of these lists should be the same.

  Output parameters:
  - xarray dataset
  ```
  <xarray.Dataset> Size: 492B
  Dimensions:           (F10.7: 1, F10.7AVG: 1, line_wavelength: 17,
                         line_number: 17)
  Coordinates:
    * F10.7             (F10.7) float64 8B <input F10.7 values>
    * F10.7AVG          (F10.7AVG) float64 8B <input F10.7A values>
    * line_wavelength   (line_wavelength) float64 136B 25.63 28.41 ... 102.6 103.2
    * line_number       (line_number) int32 68B 0 1 2 3 4 5 ... 11 12 13 14 15 16
  Data variables:
      euv_flux_spectra  (F10.7, F10.7AVG, line_wavelength) float64 136B <output spectrum>
      wavelength        (line_number) float64 136B 25.63 28.41 ... 102.6 103.2
  ```

  Below is an example of spectrum calculation using get_spectra_lines() method
  ```

  import pyeuvac as pe

  example = pe.Euvac()

  spectrum = example.get_spectral_lines(f107=200., f107avg=200.)

  print(spectrum['euv_flux_spectra'])


  <xarray.DataArray 'euv_flux_spectra' (F10.7: 1, F10.7AVG: 1, line_wavelength: 17)> Size: 136B
  array([[[0.61318   , 3.679536  , 3.2       , 9.6599724 , 1.1641526 ,
           0.55071116, 1.00224288, 2.05612492, 1.55873   , 2.22441   ,
           0.49140144, 0.24854   , 0.6596096 , 0.977886  , 6.4812176 ,
           5.676986  , 3.4313916 ]]])
  Coordinates:
    * F10.7            (F10.7) float64 8B 200.0
    * F10.7AVG         (F10.7AVG) float64 8B 200.0
    * line_wavelength  (line_wavelength) float64 136B 25.63 28.41 ... 102.6 103.2
  ```

  If you need to calculate the spectrum for several P values, pass them using a list:
  ```

  spectrum = example.get_spectral_lines(f107=[200., 210., 220.], f107avg=[200., 210., 220.])

  print(spectrum['euv_flux_spectra'][0,0,:])


  <xarray.DataArray 'euv_flux_spectra' (line_wavelength: 17)> Size: 136B
  array([0.61318   , 3.679536  , 3.2       , 9.6599724 , 1.1641526 ,
         0.55071116, 1.00224288, 2.05612492, 1.55873   , 2.22441   ,
         0.49140144, 0.24854   , 0.6596096 , 0.977886  , 6.4812176 ,
         5.676986  , 3.4313916 ])
  Coordinates:
      F10.7            float64 8B 200.0
      F10.7AVG         float64 8B 200.0
    * line_wavelength  (line_wavelength) float64 136B 25.63 28.41 ... 102.6 103.2
  ```

  3. get_spectra()

  This method combines the get_spectral_bands() and get_spectral_lines() methods. The method returns a tuple of
  xarray Dataset (lines, bands), the first element is the flux in intervals, the second is the flux in individual lines.


pkgId: 3db2331c256bcf1f51504e19a9f05a61d714a59b88f2fcb12b20ab179f20566d
name: python-pyfakefs-help
arch: noarch
version: 5.7.3
epoch: 0
release: 1
summary: Development documents and examples for pyfakefs
url: https://github.com/pytest-dev/pyfakefs
rpm_license: http://www.apache.org/licenses/LICENSE-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyfakefs-5.7.3-1.src.rpm
location_href: Packages/python-pyfakefs-help-5.7.3-1.noarch.rpm
checksum_type: sha256
description:
  pyfakefs implements a fake file system that mocks the Python file system modules.
  Using pyfakefs, your tests operate on a fake file system in memory without
  touching the real disk. The software under test requires no modification to
  work with pyfakefs.

  Pyfakefs creates a new empty in-memory file system at each test start, which replaces
  the real filesystem during the test. Think of pyfakefs as making a per-test temporary
  directory, except for an entire file system.

  There are several means to achieve this: by using
  the `fs` fixture if running pytest, by using `fake_filesystem_unittest.TestCase` as a
  base class if using unittest, by using a `fake_filesystem_unittest.Patcher` instance
  as a context manager, or by using the `patchfs` decorator.



  pyfakefs works with current versions of Linux, Windows and macOS.



  This document provides a general overview for pyfakefs.  There is more:

  * The documentation at **Read the Docs**:
    * The [Release documentation](https://pytest-pyfakefs.readthedocs.io/en/stable)
      contains usage documentation for pyfakefs and a description of the
      most relevant classes, methods and functions for the last version
      released on PyPI
    * The [Development documentation](https://pytest-pyfakefs.readthedocs.io/en/latest)
      contains the same documentation for the current main branch
    * The [Release 3.7 documentation](https://pytest-pyfakefs.readthedocs.io/en/v3.7.2/)
      contains usage documentation for the last version of pyfakefs
      supporting Python 2.7
  * The [Release Notes](https://github.com/pytest-dev/pyfakefs/blob/main/CHANGES.md)
    show a list of changes in the latest versions


  The simplest method to use pyfakefs is using the `fs` fixture with `pytest`.
  Refer to the
  [usage documentation](https://pytest-pyfakefs.readthedocs.io/en/latest/usage.html)
  for information on other test scenarios, test customization and
  using convenience functions.


  Apart from automatically mocking most file-system functions, pyfakefs
  provides some additional features:
  - mapping files and directories from the real file system into the fake filesystem
  - configuration and tracking of the file system size
  - pause and resume of patching to be able to use the real file system inside a
    test step
  - (limited) emulation of other OSes (Linux, macOS or Windows)
  - configuration to behave as if running as a non-root user while running
    under root


  pyfakefs works with CPython 3.7 and above, on Linux, Windows and macOS, and
  with PyPy3.

  pyfakefs works with [pytest](http://doc.pytest.org) version 6.2.5 or above,
  though a current version is recommended.

  pyfakefs will not work with Python libraries that use C libraries to access the
  file system. This is because pyfakefs cannot patch the underlying C libraries'
  file access functions--the C libraries will always access the real file
  system. Refer to the
  [documentation](https://pytest-pyfakefs.readthedocs.io/en/latest/intro.html#limitations)
  for more information about the limitations of pyfakefs.





  pyfakefs is currently automatically tested on Linux, macOS and Windows, with
  Python 3.7 to 3.13, and with PyPy3 on Linux, using
  [GitHub Actions](https://github.com/pytest-dev/pyfakefs/actions).




  pyfakefs unit tests can be run using `pytest` (all tests) or `unittest`
  (all tests except `pytest`-specific ones):

  ```bash
  $ cd pyfakefs/
  $ export PYTHONPATH=$PWD

  $ python -m pytest pyfakefs
  $ python -m pyfakefs.tests.all_tests
  ```

  Similar scripts are called by `tox` and Github Actions. `tox` can be used to
  run tests locally against supported python versions:

  ```bash
  $ tox
  ```



  The `Dockerfile` at the repository root will run the tests on the latest
  Ubuntu version.  Build the container:
  ```bash
  cd pyfakefs/
  docker build -t pyfakefs .
  ```
  Run the unit tests in the container:
  ```bash
  docker run -t pyfakefs
  ```



  We always welcome contributions to the library. Check out the
  [Contributing Guide](https://github.com/pytest-dev/pyfakefs/blob/main/CONTRIBUTING.md)
  for more information.


  pyfakefs.py was initially developed at Google by Mike Bland as a modest fake
  implementation of core Python modules.  It was introduced to all of Google
  in September 2006. Since then, it has been enhanced to extend its
  functionality and usefulness.  At last count, pyfakefs was used in over 20,000
  Python tests at Google.

  Google released pyfakefs to the public in 2011 as Google Code project
  [pyfakefs](http://code.google.com/p/pyfakefs/):
  * Fork
    [jmcgeheeiv-pyfakefs](http://code.google.com/p/jmcgeheeiv-pyfakefs/) added
    [direct support for unittest and doctest](../../wiki/Automatically-find-and-patch-file-functions-and-modules)
  * Fork
    [shiffdane-jmcgeheeiv-pyfakefs](http://code.google.com/p/shiffdane-jmcgeheeiv-pyfakefs/)
    added further corrections

  After the [shutdown of Google Code](http://google-opensource.blogspot.com/2015/03/farewell-to-google-code.html)
  was announced, [John McGehee](https://github.com/jmcgeheeiv) merged all three Google Code projects together
  [here on GitHub](https://github.com/pytest-dev/pyfakefs) where an enthusiastic community actively supports, maintains
  and extends pyfakefs. In 2022, the repository has been transferred to
  [pytest-dev](https://github.com/pytest-dev) to ensure continuous maintenance.


pkgId: abceaaaf7765593094f4b62574f225319b9a96ff70cd11f6205f37ead0761125
name: python-pyfda-help
arch: noarch
version: 0.9.4
epoch: 0
release: 1
summary: Development documents and examples for pyfda
url: https://github.com/chipmuenk/pyFDA
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyfda-0.9.4-1.src.rpm
location_href: Packages/python-pyfda-help-0.9.4-1.noarch.rpm
checksum_type: sha256
description:
  pyfda is a GUI based tool in Python / Qt for analysing and designing discrete time filters. Fixpoint implementations (for some filter types) can be simulated.
  For more info see the [`Github Repo`](https://github.com/chipmuenk/pyfda) and the documentation at [readthedocs.org](https://pyfda.readthedocs.io/en/latest/).
  ![Screenshot](https://github.com/chipmuenk/pyfda/blob/94c719ec5149fd6f75af9b058ea923c67b2a3f83/img/pyfda_screenshot_3.png)

  * Python versions: **3.7 ... 3.11**
  * All operating systems, no OS specific requirements.
  * Libraries:
    * **(Py)Qt5**
    * **numpy**
    * **scipy**
    * **matplotlib**: **2.1** or higher

  * **docutils** for rich text in documentation
  * **xlwt** and / or **XlsxWriter** for exporting filter coefficients as *.xls(x) files

  Self-executing archives are available for Windows and OS X at https://github.com/chipmuenk/pyfda/releases which do not require a Python installation. Under Linux, pyfda can be installed as a flatpak.
  Otherwise, installation is straight forward: There is only one version of pyfda for all supported operating systems, no compilation is required:

  Install from PyPI using
      > pip install pyfda
  or upgrade using
      > pip install pyfda -U
  or install locally using
      > pip install -e <YOUR_PATH_TO_PYFDA>
  where `<YOUR_PATH_TO_PYFDA>` specifies the path of `setup.py` without including `setup.py`.
  In this case, you need to have a local copy of the pyfda project, preferrably obtained using git and `pip install` only creates the start script.

  You could also download the zip file from Github and extract it to a directory of your choice. Install it either to your `<python>/Lib/site-packages` subdirectory using
      > python setup.py install
  or just create a link to where you have copied the python source files (for testing / development) using
      > python setup.py develop

  In any case, the start script `pyfdax` has been created in `<python>/Scripts` which should be in your path. So, simply start pyfda using
      > pyfdax
  For development and debugging, you can also run pyfda using
      In [1]: %run -m pyfda.pyfdax # IPython or
      > python -m pyfda.pyfdax    # plain python interpreter
  All individual files from pyfda can be run using e.g.
      In [2]: %run -m pyfda.input_widgets.input_pz    # IPython or
      > python -m pyfda.input_widgets.input_pz       # plain python interpreter

  The location of the following two configuration files (copied to user space) can be checked via the tab `Files -> About`:
  - Logging verbosity can be controlled via the file `pyfda_log.conf`
  - Widgets and filters can be enabled / disabled via the file `pyfda.conf`. You can also define one or more user directories containing your own widgets and / or filters.
  Layout and some default paths can be customized using the file `pyfda/pyfda_rc.py`, right now you have to edit that file at its original location.


pkgId: 406aea992fc4003e54564788074ba50854f20c8ccd620c29fc704d4f91165553
name: python-pyfemtet-help
arch: noarch
version: 0.7.1
epoch: 0
release: 1
summary: Development documents and examples for pyfemtet
url: https://github.com/pyfemtet/pyfemtet
rpm_license: BSD-3-Clause
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyfemtet-0.7.1-1.src.rpm
location_href: Packages/python-pyfemtet-help-0.7.1-1.noarch.rpm
checksum_type: sha256
description:
  <img src="img/pyfemtet_conceptual_diagram.png" width="450">

  > [!NOTE]
  > For details, see the documentation of "Related Pages" section.


  - Single or multiple objective optimization
  - Progress monitor GUI
  - Parallel computation with controling multiple Femtet processes
  - Result output in easy-to-analyze csv format for Excel and other tools


  - Create `CFemtet` object with process ID specification



  - Femtet Website: https://www.muratasoftware.com/
  - Documentation (English): https://pyfemtet.readthedocs.io/en/stable/
  - ドキュメント（日本語）: https://pyfemtet.readthedocs.io/ja/stable/
  - Source code: https://github.com/pyfemtet/pyfemtet
  - Bug reports: https://github.com/pyfemtet/pyfemtet/issues




  > [!NOTE]
  > Currently Femtet and `pyfemtet` supports **Windows only**.



  - Access [Murata Software Website](https://www.muratasoftware.com/) and get **Femtet trial version** or purchase a lisence.
  - Get installer and launch it.
  - **Run 'EnableMacros'** from the start menu.
  > [!NOTE]
  > This procedure requires administrator privileges.




  > [!NOTE]
  > The commands on this section are for `CMD` or `PowerShell` on with `py launcher`.
  > For a virtual environment, replace `py` to `python`.
  > If you do not have Python, please install it first.

  - Get `pyfemtet` via following command:

      ```py -m pip install pyfemtet```




  - Run following command to enable COM constants:

      ```py -m win32com.client.makepy FemtetMacro```

  That's all! Now you can use Femtet's extention features via `pyfemtet`.
  For more information including sample code and FEM projects, see the documentation of "Related Pages" section.


pkgId: 706a7fd4bebcc96c5cdc4c6caf0b403b2a7c08d9239f482d06b015b917667792
name: python-pyfers-help
arch: noarch
version: 1.2.1
epoch: 0
release: 1
summary: Development documents and examples for pyfers
url: https://github.com/darrynjordan/FERS
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyfers-1.2.1-1.src.rpm
location_href: Packages/python-pyfers-help-1.2.1-1.noarch.rpm
checksum_type: sha256
description:
  Python package that enables simple generation of XML descriptors required by FERS.


  ```
  pip3 install pyfers
  ```


  ```
  import pyfers.fers as fers

  fers.write_hdf5(tx_chirp, FERS_INPUT_FILENAME)

  fers_xml = fers.FersXMLGenerator(FERS_XML_FILENAME)

  fers_xml.add_parameters(
      t_start=T_pri,
      t_end=T_slow,
      sim_rate=adc_rate,
      bits=adc_bits
      )

  fers_xml.add_pulse(
      name='up_chirp',
      pulse_file=FERS_INPUT_FILENAME,
      power_watts=P_tx,
      centre_freq=fc
      )

  fers_xml.add_clock(name='clock', frequency=adc_rate, synconpulse='false')



  fers_xml.add_antenna(name='tx_rx_antenna', pattern='sinc', a=alpha, b=beta, g=gamma)

  fers_xml.add_pseudo_monostatic_radar(
      spacing=antenna_spacing,
      waypoints=waypoints,
      antenna='tx_rx_antenna',
      timing='clock',
      prf=F_prf,
      pulse='up_chirp',
      window_length=T_keep,
      noise_temp=noise_temp,
      nodirect='true'
  )

  for target in targets:
      fers_xml.add_target(
          name = target.name,
          x = target.x,
          y = target.y,
          z = target.z,
          t = target.t,
          rcs = target.rcs
      )

  fers_xml.write_xml()
  fers_xml.run()

  rx_matrix = fers.read_hdf5(FERS_OUTPUT_FILENAME)
  ```


pkgId: 74d03b4a20b96e414f49b9e9879ddc62ead3b33eae854106f5bf51e2cd00661b
name: python-pyfing-help
arch: noarch
version: 0.5.0
epoch: 0
release: 1
summary: Development documents and examples for pyfing
url: https://pypi.org/project/pyfing/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyfing-0.5.0-1.src.rpm
location_href: Packages/python-pyfing-help-0.5.0-1.noarch.rpm
checksum_type: sha256
description:
  pyfing provides simple but effective methods for fingerprint recognition.



  The following segmentation methods are available:
  - GMFS (Gradient-Magnitude Fingerprint Segmentation): straightforward yet effective approach, achieving superior performance compared to previously reported traditional (non deep-learning-based) methods. Its average error rate on the FVC segmentation benchmark \[1\] is 2.98%.
  - SUFS (Simplified U-net Fingerprint Segmentation): method based on a simplified U-net architecture that surpasses all previous methods evaluated on the FVC segmentation benchmark \[1\]. Its average error rate on the benchmark is 1.51%.

  See \[2\] for a complete description of the two segmentation methods.



  The following orientation field estimation methods are available:
  - GBFOE (Gradient-Based Fingerprint Orientation Estimation): a simple fingerprint orientation estimation method based on traditional image processing techniques with minimal computational resource requirements that achieves performance comparable to much more complex methods. It achieves an average error of 5.30° and 14.40° on the "good" and "bad" datasets of the FOE-STD-1.0 benchmark \[3\], respectively.
  - SNFOE (Simple Network for Fingerprint Orientation Estimation): learning-based fingerprint orientation estimation method that surpasses all previous methods evaluated on public benchmarks and can deal both with plain fingerprints acquired through online sensors, and with latent fingerprints, without requiring any fine-tuning. It achieves an average error of 4.30° and 6.37° on the "good" and "bad" datasets of the FOE-STD-1.0 benchmark \[3\], respectively.

  See \[4\] for a complete description of the two orientation field estimation methods.



  The following frequency estimation methods are available:
  - XSFFE (X-Signature-based Fingerprint Frequency Estimation): a simple fingerprint frequency estimation method based on traditional image processing techniques and on the computation of the x-signature. It achieves an average error of 5.10% and 7.84%	on the "good" and "bad" datasets of the FFE benchmark \[5\], respectively.
  - SNFFE (Simple Network for Fingerprint Frequency Estimation): learning-based fingerprint frequency estimation method that surpasses all previous methods evaluated on the FFE benchmark. It achieves an average error of 3.62% and 6.69%	on the "good" and "bad" datasets of the FFE benchmark \[5\], respectively.

  See \[6\] for a complete description of the two frequency estimation methods.



  The following enhancement methods are available:
  - GBFEN (Gabor-Based Fingerprint ENhancement): a simple fingerprint enhancement method based on traditional contextual convolution with Gabor filters. Combined with SNFOE and SNFFE, it surpasses the performance of state-of-the-art methods on the challenging NIST SD27 latent fingerprint database \[7]\.
  - SNFEN (Simple Network for Fingerprint ENhancement): learning-based fingerprint enhancement method that achieves even better results while maintaining simplicity,
  linearity, and ease of implementation.

  See \[8\] for a complete description of the two fingerprint enhancement methods.



  \[1\] D. H. Thai, S. Huckemann and C. Gottschlich, "Filter Design and Performance Evaluation for Fingerprint Image Segmentation," PLOS ONE, vol. 11, pp. 1-31, May 2016.

  \[2\] R. Cappelli, "Unveiling the Power of Simplicity: Two Remarkably Effective Methods for Fingerprint Segmentation," in IEEE Access, vol. 11, pp. 144530-144544, 2023, [doi: 10.1109/ACCESS.2023.3345644](https://doi.org/10.1109/ACCESS.2023.3345644).

  \[3\] FOE benchmarks on FVC-onGoing, https://biolab.csr.unibo.it/fvcongoing/UI/Form/BenchmarkAreas/BenchmarkAreaFOE.aspx

  \[4\] R. Cappelli, "Exploring the Power of Simplicity: A New State-of-the-Art in Fingerprint Orientation Field Estimation," in IEEE Access, vol. 12, pp. 55998-56018, 2024, [doi: 10.1109/ACCESS.2024.3389701](https://doi.org/10.1109/ACCESS.2024.3389701).

  \[5\] FFE Benchmark, https://github.com/raffaele-cappelli/FFE

  \[6\] R. Cappelli, "No Feature Left Behind: Filling the Gap in Fingerprint Frequency Estimation," in IEEE Access, vol. 12, pp. 153605-153617, 2024, doi: [10.1109/ACCESS.2024.3481507](https://doi.org/10.1109/ACCESS.2024.3481507).

  \[7\] M. D. Garris and R. M. McCabe, NIST Special Database 27: Fingerprint Minutiae from Latent and Matching Tenprint Images, 2000.

  \[8\] (Paper under review)


pkgId: 969fb51b49a6472021f0a8dfe1095f647032c08c8a40a974ebd3ca1f9b9302fa
name: python-pyfir-help
arch: noarch
version: 0.0.7
epoch: 0
release: 1
summary: Development documents and examples for pyfir
url: https://github.com/Claudjos/fir
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyfir-0.0.7-1.src.rpm
location_href: Packages/python-pyfir-help-0.0.7-1.noarch.rpm
checksum_type: sha256
description:
  Provides utilities to convert WSGI environ/output to HTTP Request/Response. The main use case for this package is WSGI APP testing through its WSGI client.


  ```
  pip install pyfir
  ```




  test_api.py
  ```
  from fir.wsgi import Client
  from fir.http import Request
  from <package.module> import app # for example your Flask APP



  client = Client(app)


  def test_api():
  	
  	res = client.request(Request(
  		method="GET",
  		uri="/customers"
  	))
  	assert res.status_code == 200
  	assert res.get_json() == [{"name":"john", "surname": "doe"}]

  ```


  test_api.py
  ```
  import unittest
  from ddt import ddt, file_data
  from fir.wsgi import Client
  from fir.http import Request
  from <package.module> import app # for example your Flask APP



  client = Client(app)


  @ddt
  class WSGITestCase(unittest.TestCase):

  	@file_data('data.yaml')
  	def test_api(self, request, response):
  		global client
  		res = client.request(Request(**request))
  		assert res.status_code == response.get("status")
  		if res.headers.get("content-type") == "application/json":
  			assert res.get_json() == response.get("json")

  ```
  data.yaml
  ```
  - request:
  	method: GET
  	uri: /customers
    response:
  	status: 200
  	json:
  	- name: jhon
  	  surname: doe

  - request:
  	method: GET
  	uri: /customers/mark
    response:
  	status: 404
  ```


  ```
  pip install -r test-requirements.txt
  python -m pytest tests/ --cov=fir
  ```


pkgId: 1255997a88b04ec47b5164a7d2ce05d112ed52a63a9ed757c87d7635d407f079
name: python-pyfixest-help
arch: noarch
version: 0.27.0
epoch: 0
release: 1
summary: Development documents and examples for pyfixest
url: https://pypi.org/project/pyfixest/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyfixest-0.27.0-1.src.rpm
location_href: Packages/python-pyfixest-help-0.27.0-1.noarch.rpm
checksum_type: sha256
description:
      RMSE: 1.441   R2: 0.609   R2 Within: 0.2

  You can estimate multiple models at once by using [multiple estimation
  syntax](https://aeturrell.github.io/coding-for-economists/econmt-regression.html#multiple-regression-models):
  ```python

  fit = pf.feols("Y + Y2 ~X1 | csw0(f1, f2)", data = data, vcov = {'CRV1':'group_id'})

  fit.etable()
  ```


pkgId: 40439836db161f0ccf1746180a551789448429475aa662e3de2cf7dfe0c111e0
name: python-pyflow-acdc-help
arch: noarch
version: 0.1.1
epoch: 0
release: 1
summary: Development documents and examples for pyflow-acdc
url: https://pypi.org/project/pyflow-acdc/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyflow-acdc-0.1.1-1.src.rpm
location_href: Packages/python-pyflow-acdc-help-0.1.1-1.noarch.rpm
checksum_type: sha256
description:
  A python-based tool for the design and analysis of hybrid AC/DC grids


  PyFlow ACDC is a program worked on by ADOreD Project

  This project has received funding from the European Union’s  Horizon Europe
  Research and Innovation programme under the Marie Skłodowska-Curie grant
  agreement No 101073554.

  Important

  This project is experimental and under active development. Issue reports and contributions are very welcome.

  To run examples, download the folder to you repository including the csv folders.


pkgId: 939de14b8dc861360dccc68bf4250882a24697135c51aec95557aad900bb1f8a
name: python-pyfluids-help
arch: noarch
version: 2.7.2
epoch: 0
release: 1
summary: Development documents and examples for pyfluids
url: https://github.com/portyanikhin/PyFluids
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyfluids-2.7.2-1.src.rpm
location_href: Packages/python-pyfluids-help-2.7.2-1.noarch.rpm
checksum_type: sha256
description:
  [![Build & Tests](https://github.com/portyanikhin/PyFluids/actions/workflows/build-tests.yml/badge.svg)](https://github.com/portyanikhin/PyFluids/actions/workflows/build-tests.yml)
  [![CodeQL](https://github.com/portyanikhin/PyFluids/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/portyanikhin/PyFluids/actions/workflows/codeql-analysis.yml)
  [![PyPI](https://img.shields.io/pypi/v/pyfluids)](https://pypi.org/project/pyfluids/)
  [![Python](https://img.shields.io/pypi/pyversions/pyfluids)](https://pypi.org/project/pyfluids/)
  [![License](https://img.shields.io/github/license/portyanikhin/PyFluids)](https://github.com/portyanikhin/PyFluids/blob/master/LICENSE)
  [![codecov](https://codecov.io/gh/portyanikhin/PyFluids/branch/main/graph/badge.svg?token=I1LL66AOJW)](https://codecov.io/gh/portyanikhin/PyFluids)
  [![Code style: black](https://img.shields.io/badge/code%20style-black-black)](https://github.com/psf/black)

  Simple, full-featured, lightweight [CoolProp](http://www.coolprop.org) wrapper for Python.

  _**See [full documentation](https://github.com/portyanikhin/PyFluids).**_


pkgId: 7d4f7ff4aad62d2f4d63a85043add9029c42742bbd207a5ac12a9c6a2c260754
name: python-pyflutterflow-help
arch: noarch
version: 0.3.11
epoch: 0
release: 1
summary: Development documents and examples for pyflutterflow
url: https://pypi.org/project/pyflutterflow/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyflutterflow-0.3.11-1.src.rpm
location_href: Packages/python-pyflutterflow-help-0.3.11-1.noarch.rpm
checksum_type: sha256
description:
  A python companion to the flutterflow ecosystem.

  PyFlutterflow is a companion to flutterflow, allowing CRUD operations in firestore and also MongoDB,
  handling advanced push notification handling features, and providing an admin dashboard to handle
  it all.


pkgId: 816856429aa48f0e9ae9e0911a8daef737ad71d3635b1d32bd32083c4e5a180b
name: python-pyflwdir-help
arch: noarch
version: 0.5.9
epoch: 0
release: 1
summary: Development documents and examples for pyflwdir
url: https://pypi.org/project/pyflwdir/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyflwdir-0.5.9-1.src.rpm
location_href: Packages/python-pyflwdir-help-0.5.9-1.noarch.rpm
checksum_type: sha256
description:
  PyFlwDir contains a series of methods to work with gridded DEM and flow direction
  datasets, which are key to many workflows in many earth sciences.
  PyFlwDir supports several flow direction data conventions and can easily be extended to include more.
  The package contains some unique methods such as Iterative Hydrography Upscaling (IHU)
  method to upscale flow directions from high resolution data to coarser model resolution.
  PyFlwDir is in pure python and powered by `numba <https://numba.pydata.org/>`_ to keep it fast.


pkgId: ef0b6dea12e2b3a35d406f287b5f6c7a4e33be7278b89eede59d95ae9366a881
name: python-pyfsr-help
arch: noarch
version: 0.2.0
epoch: 0
release: 1
summary: Development documents and examples for pyfsr
url: https://github.com/ftnt-dspille/pyFSR
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyfsr-0.2.0-1.src.rpm
location_href: Packages/python-pyfsr-help-0.2.0-1.noarch.rpm
checksum_type: sha256
description:
  Goal of the library is be a Python Client for the FortiSOAR Rest API.



  ```bash
  pip install pyfsr
  ```

  This library is a work in progress and is not yet ready for production use.


pkgId: 45550b29ca5193ee533317b6daeab095f627b50e52550c956bad41485be5b6d4
name: python-pyftrace-help
arch: noarch
version: 0.3.0
epoch: 0
release: 1
summary: Development documents and examples for pyftrace
url: https://github.com/kangtegong/pyftrace
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyftrace-0.3.0-1.src.rpm
location_href: Packages/python-pyftrace-help-0.3.0-1.noarch.rpm
checksum_type: sha256
description:
  main           	| 0.000082 seconds	| 1
  function_a     	| 0.000022 seconds	| 1
  function_b     	| 0.000008 seconds	| 1
  ```

  To trace built-in functions and include file paths:
  ```
  $ pyftrace --verbose --path examples/module_trace/main_script.py
  $ pyftrace -vp examples/module_trace/main_script.py
  ```
  output:
  ```
  Running script: examples/module_trace/main_script.py
  Called main@examples/module_trace/main_script.py:4 from examples/module_trace/main_script.py:10
      Called function_a@examples/module_trace/module_a.py:1 from examples/module_trace/main_script.py:5
          Called print@builtins from examples/module_trace/module_a.py:2
  Function A is called.
          Returning print @ examples/module_trace/module_a.py
      Returning function_a-> ret_a @ examples/module_trace/module_a.py
      Called function_b@examples/module_trace/module_b.py:1 from examples/module_trace/main_script.py:6
          Called print@builtins from examples/module_trace/module_b.py:2
  Function B is called.
          Returning print @ examples/module_trace/module_b.py
      Returning function_b-> ret_b @ examples/module_trace/module_b.py
      Called print@builtins from examples/module_trace/main_script.py:7
  Results: ret_a, ret_b
      Returning print @ examples/module_trace/main_script.py
  Returning main-> None @ examples/module_trace/main_script.py
  Returning <module>-> None @ examples/module_trace/main_script.py
  ```

  ```
  $ pyftrace --verbose --report examples/module_trace/main_script.py
  $ pyftrace -vr examples/module_trace/main_script.py
  ```
  output:
  ```
  Running script: examples/module_trace/main_script.py
  Function A is called.
  Function B is called.
  Results: ret_a, ret_b


pkgId: e4cb873960a86a58b34174e7783b97d91f2ead59ebba2fef9a39c877857ad049
name: python-pyfus-lib-help
arch: noarch
version: 1.0.3
epoch: 0
release: 1
summary: Development documents and examples for pyfus-lib
url: https://pyfus.readthedocs.io
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyfus-lib-1.0.3-1.src.rpm
location_href: Packages/python-pyfus-lib-help-1.0.3-1.noarch.rpm
checksum_type: sha256
description:
  PyfUS is a free and open-source software for the analysis of functional ultrasound imaging data. Is is part of the OpenfUS initiative launched by the Urban lab at Neuro-Electronics Research Flanders.





  ```

  pip install pyfus_lib

  ```





  We invite the user to read the protocol available here: <link to the protocol>


pkgId: 97323a2bdaa1190d6aa420c48dca3f79a7325687ff22f7ac865643d7b6ab7d22
name: python-pyg-nightly-help
arch: noarch
version: 2.7.0.dev20241214
epoch: 0
release: 1
summary: Development documents and examples for pyg-nightly
url: https://pypi.org/project/pyg-nightly/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyg-nightly-2.7.0.dev20241214-1.src.rpm
location_href: Packages/python-pyg-nightly-help-2.7.0.dev20241214-1.noarch.rpm
checksum_type: sha256
description:
  <p align="center">
    <img height="150" src="https://raw.githubusercontent.com/pyg-team/pyg_sphinx_theme/master/pyg_sphinx_theme/static/img/pyg_logo_text.svg?sanitize=true" />
  </p>

  ______________________________________________________________________

  [![PyPI Version][pypi-image]][pypi-url]
  [![Testing Status][testing-image]][testing-url]
  [![Linting Status][linting-image]][linting-url]
  [![Docs Status][docs-image]][docs-url]
  [![Contributing][contributing-image]][contributing-url]
  [![Slack][slack-image]][slack-url]

  **[Documentation](https://pytorch-geometric.readthedocs.io)** | **[Paper](https://arxiv.org/abs/1903.02428)** | **[Colab Notebooks and Video Tutorials](https://pytorch-geometric.readthedocs.io/en/latest/get_started/colabs.html)** | **[External Resources](https://pytorch-geometric.readthedocs.io/en/latest/external/resources.html)** | **[OGB Examples](https://github.com/snap-stanford/ogb/tree/master/examples)**

  **PyG** *(PyTorch Geometric)* is a library built upon [PyTorch](https://pytorch.org/) to easily write and train Graph Neural Networks (GNNs) for a wide range of applications related to structured data.

  It consists of various methods for deep learning on graphs and other irregular structures, also known as *[geometric deep learning](http://geometricdeeplearning.com/)*, from a variety of published papers.
  In addition, it consists of easy-to-use mini-batch loaders for operating on many small and single giant graphs, [multi GPU-support](https://github.com/pyg-team/pytorch_geometric/tree/master/examples/multi_gpu), [`torch.compile`](https://pytorch-geometric.readthedocs.io/en/latest/advanced/compile.html) support, [`DataPipe`](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/datapipe.py) support, a large number of common benchmark datasets (based on simple interfaces to create your own), and helpful transforms, both for learning on arbitrary graphs as well as on 3D meshes or point clouds.

  **[Click here to join our Slack community!][slack-url]**

  <p align="center">
    <a href="https://medium.com/stanford-cs224w"><img style="max-width: 941px" src="https://data.pyg.org/img/cs224w_tutorials.png" /></a>
  </p>

  ______________________________________________________________________

  - [Library Highlights](#library-highlights)
  - [Quick Tour for New Users](#quick-tour-for-new-users)
  - [Architecture Overview](#architecture-overview)
  - [Implemented GNN Models](#implemented-gnn-models)
  - [Installation](#installation)



  Whether you are a machine learning researcher or first-time user of machine learning toolkits, here are some reasons to try out PyG for machine learning on graph-structured data.

  - **Easy-to-use and unified API**:
    All it takes is 10-20 lines of code to get started with training a GNN model (see the next section for a [quick tour](#quick-tour-for-new-users)).
    PyG is *PyTorch-on-the-rocks*: It utilizes a tensor-centric API and keeps design principles close to vanilla PyTorch.
    If you are already familiar with PyTorch, utilizing PyG is straightforward.
  - **Comprehensive and well-maintained GNN models**:
    Most of the state-of-the-art Graph Neural Network architectures have been implemented by library developers or authors of research papers and are ready to be applied.
  - **Great flexibility**:
    Existing PyG models can easily be extended for conducting your own research with GNNs.
    Making modifications to existing models or creating new architectures is simple, thanks to its easy-to-use message passing API, and a variety of operators and utility functions.
  - **Large-scale real-world GNN models**:
    We focus on the need of GNN applications in challenging real-world scenarios, and support learning on diverse types of graphs, including but not limited to: scalable GNNs for graphs with millions of nodes; dynamic GNNs for node predictions over time; heterogeneous GNNs with multiple node types and edge types.



  In this quick tour, we highlight the ease of creating and training a GNN model with only a few lines of code.



  In the first glimpse of PyG, we implement the training of a GNN for classifying papers in a citation graph.
  For this, we load the [Cora](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.datasets.Planetoid.html) dataset, and create a simple 2-layer GCN model using the pre-defined [`GCNConv`](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GCNConv.html):

  ```python
  import torch
  from torch import Tensor
  from torch_geometric.nn import GCNConv
  from torch_geometric.datasets import Planetoid

  dataset = Planetoid(root='.', name='Cora')

  class GCN(torch.nn.Module):
      def __init__(self, in_channels, hidden_channels, out_channels):
          super().__init__()
          self.conv1 = GCNConv(in_channels, hidden_channels)
          self.conv2 = GCNConv(hidden_channels, out_channels)

      def forward(self, x: Tensor, edge_index: Tensor) -> Tensor:
          
          
          x = self.conv1(x, edge_index).relu()
          x = self.conv2(x, edge_index)
          return x

  model = GCN(dataset.num_features, 16, dataset.num_classes)
  ```

  <details>
  <summary>We can now optimize the model in a training loop, similar to the <a href="https://pytorch.org/tutorials/beginner/basics/optimization_tutorial.html#full-implementation">standard PyTorch training procedure</a>.</summary>

  ```python
  import torch.nn.functional as F

  data = dataset[0]
  optimizer = torch.optim.Adam(model.parameters(), lr=0.01)

  for epoch in range(200):
      pred = model(data.x, data.edge_index)
      loss = F.cross_entropy(pred[data.train_mask], data.y[data.train_mask])

      
      optimizer.zero_grad()
      loss.backward()
      optimizer.step()
  ```

  </details>

  More information about evaluating final model performance can be found in the corresponding [example](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/gcn.py).



  In addition to the easy application of existing GNNs, PyG makes it simple to implement custom Graph Neural Networks (see [here](https://pytorch-geometric.readthedocs.io/en/latest/tutorial/create_gnn.html) for the accompanying tutorial).
  For example, this is all it takes to implement the [edge convolutional layer](https://arxiv.org/abs/1801.07829) from Wang *et al.*:

  $$x_i^{\\prime} ~ = ~ \\max\_{j \\in \\mathcal{N}(i)} ~ \\textrm{MLP}\_{\\theta} \\left( \[ ~ x_i, ~ x_j - x_i ~ \] \\right)$$

  ```python
  import torch
  from torch import Tensor
  from torch.nn import Sequential, Linear, ReLU
  from torch_geometric.nn import MessagePassing

  class EdgeConv(MessagePassing):
      def __init__(self, in_channels, out_channels):
          super().__init__(aggr="max")  # "Max" aggregation.
          self.mlp = Sequential(
              Linear(2 * in_channels, out_channels),
              ReLU(),
              Linear(out_channels, out_channels),
          )

      def forward(self, x: Tensor, edge_index: Tensor) -> Tensor:
          
          
          return self.propagate(edge_index, x=x)  # shape [num_nodes, out_channels]

      def message(self, x_j: Tensor, x_i: Tensor) -> Tensor:
          
          
          edge_features = torch.cat([x_i, x_j - x_i], dim=-1)
          return self.mlp(edge_features)  # shape [num_edges, out_channels]
  ```



  PyG provides a multi-layer framework that enables users to build Graph Neural Network solutions on both low and high levels.
  It comprises of the following components:

  - The PyG **engine** utilizes the powerful PyTorch deep learning framework with full [`torch.compile`](https://pytorch-geometric.readthedocs.io/en/latest/advanced/compile.html) and [TorchScript](https://pytorch-geometric.readthedocs.io/en/latest/advanced/jit.html) support, as well as additions of efficient CPU/CUDA libraries for operating on sparse data, *e.g.*, [`pyg-lib`](https://github.com/pyg-team/pyg-lib).
  - The PyG **storage** handles data processing, transformation and loading pipelines. It is capable of handling and processing large-scale graph datasets, and provides effective solutions for heterogeneous graphs. It further provides a variety of sampling solutions, which enable training of GNNs on large-scale graphs.
  - The PyG **operators** bundle essential functionalities for implementing Graph Neural Networks. PyG supports important GNN building blocks that can be combined and applied to various parts of a GNN model, ensuring rich flexibility of GNN design.
  - Finally, PyG provides an abundant set of GNN **models**, and examples that showcase GNN models on standard graph benchmarks. Thanks to its flexibility, users can easily build and modify custom GNN models to fit their specific needs.

  <p align="center">
    <img width="100%" src="https://raw.githubusercontent.com/pyg-team/pytorch_geometric/master/docs/source/_figures/architecture.svg?sanitize=true" />
  </p>



  We list currently supported PyG models, layers and operators according to category:

  **GNN layers:**
  All Graph Neural Network layers are implemented via the **[`nn.MessagePassing`](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.MessagePassing.html)** interface.
  A GNN layer specifies how to perform message passing, *i.e.* by designing different message, aggregation and update functions as defined [here](https://pytorch-geometric.readthedocs.io/en/latest/tutorial/create_gnn.html).
  These GNN layers can be stacked together to create Graph Neural Network models.

  - **[GCNConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GCNConv.html)** from Kipf and Welling: [Semi-Supervised Classification with Graph Convolutional Networks](https://arxiv.org/abs/1609.02907) (ICLR 2017) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/gcn.py)\]
  - **[ChebConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.ChebConv.html)** from Defferrard *et al.*: [Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering](https://arxiv.org/abs/1606.09375) (NIPS 2016) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/gcn.py#L36-L37)\]
  - **[GATConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GATConv.html)** from Veličković *et al.*: [Graph Attention Networks](https://arxiv.org/abs/1710.10903) (ICLR 2018) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/gat.py)\]

  <details>
  <summary><b>Expand to see all implemented GNN layers...</b></summary>

  - **[GCN2Conv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GCN2Conv.html)** from Chen *et al.*: [Simple and Deep Graph Convolutional Networks](https://arxiv.org/abs/2007.02133) (ICML 2020) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/gcn2_cora.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/gcn2_ppi.py)\]
  - **[SplineConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.SplineConv.html)** from Fey *et al.*: [SplineCNN: Fast Geometric Deep Learning with Continuous B-Spline Kernels](https://arxiv.org/abs/1711.08920) (CVPR 2018) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/cora.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/faust.py)\]
  - **[NNConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.NNConv.html)** from Gilmer *et al.*: [Neural Message Passing for Quantum Chemistry](https://arxiv.org/abs/1704.01212) (ICML 2017) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/qm9_nn_conv.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/mnist_nn_conv.py)\]
  - **[CGConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.CGConv.html)** from Xie and Grossman: [Crystal Graph Convolutional Neural Networks for an Accurate and Interpretable Prediction of Material Properties](https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.120.145301) (Physical Review Letters 120, 2018)
  - **[ECConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.ECConv.html)** from Simonovsky and Komodakis: [Edge-Conditioned Convolution on Graphs](https://arxiv.org/abs/1704.02901) (CVPR 2017)
  - **[EGConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.EGConv.html)** from Tailor *et al.*: [Adaptive Filters and Aggregator Fusion for Efficient Graph Convolutions](https://arxiv.org/abs/2104.01481) (GNNSys 2021) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/egc.py)\]
  - **[GATv2Conv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GATv2Conv.html)** from Brody *et al.*: [How Attentive are Graph Attention Networks?](https://arxiv.org/abs/2105.14491) (ICLR 2022)
  - **[TransformerConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.TransformerConv.html)** from Shi *et al.*: [Masked Label Prediction: Unified Message Passing Model for Semi-Supervised Classification](https://arxiv.org/abs/2009.03509) (CoRR 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/unimp_arxiv.py)\]
  - **[SAGEConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.SAGEConv.html)** from Hamilton *et al.*: [Inductive Representation Learning on Large Graphs](https://arxiv.org/abs/1706.02216) (NIPS 2017) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/reddit.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/ogbn_train.py), [**Example3**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/graph_sage_unsup.py), [**Example4**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/graph_sage_unsup_ppi.py)\]
  - **[GraphConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GraphConv.html)** from, *e.g.*, Morris *et al.*: [Weisfeiler and Leman Go Neural: Higher-order Graph Neural Networks](https://arxiv.org/abs/1810.02244) (AAAI 2019)
  - **[GatedGraphConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GatedGraphConv.html)** from Li *et al.*: [Gated Graph Sequence Neural Networks](https://arxiv.org/abs/1511.05493) (ICLR 2016)
  - **[ResGatedGraphConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.ResGatedGraphConv.html)** from Bresson and Laurent: [Residual Gated Graph ConvNets](https://arxiv.org/abs/1711.07553) (CoRR 2017)
  - **[GINConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GINConv.html)** from Xu *et al.*: [How Powerful are Graph Neural Networks?](https://arxiv.org/abs/1810.00826) (ICLR 2019) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/mutag_gin.py)\]
  - **[GINEConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GINEConv.html)** from Hu *et al.*: [Strategies for Pre-training Graph Neural Networks](https://arxiv.org/abs/1905.12265) (ICLR 2020)
  - **[ARMAConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.ARMAConv.html)** from Bianchi *et al.*: [Graph Neural Networks with Convolutional ARMA Filters](https://arxiv.org/abs/1901.01343) (CoRR 2019) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/arma.py)\]
  - **[SGConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.SGConv.html)** from Wu *et al.*: [Simplifying Graph Convolutional Networks](https://arxiv.org/abs/1902.07153) (CoRR 2019) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/sgc.py)\]
  - **[APPNP](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.APPNP.html)** from Klicpera *et al.*: [Predict then Propagate: Graph Neural Networks meet Personalized PageRank](https://arxiv.org/abs/1810.05997) (ICLR 2019) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/benchmark/citation/appnp.py)\]
  - **[MFConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.MFConv.html)** from Duvenaud *et al.*: [Convolutional Networks on Graphs for Learning Molecular Fingerprints](https://arxiv.org/abs/1509.09292) (NIPS 2015)
  - **[AGNNConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.AGNNConv.html)** from Thekumparampil *et al.*: [Attention-based Graph Neural Network for Semi-Supervised Learning](https://arxiv.org/abs/1803.03735) (CoRR 2017) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/agnn.py)\]
  - **[TAGConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.TAGConv.html)** from Du *et al.*: [Topology Adaptive Graph Convolutional Networks](https://arxiv.org/abs/1710.10370) (CoRR 2017) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/tagcn.py)\]
  - **[PNAConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.PNAConv.html)** from Corso *et al.*: [Principal Neighbourhood Aggregation for Graph Nets](https://arxiv.org/abs/2004.05718) (CoRR 2020) \[**[Example](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/pna.py)**\]
  - **[FAConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.FAConv.html)** from Bo *et al.*: [Beyond Low-Frequency Information in Graph Convolutional Networks](https://arxiv.org/abs/2101.00797) (AAAI 2021)
  - **[PDNConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.nn.conv.PDNConv.html)** from Rozemberczki *et al.*: [Pathfinder Discovery Networks for Neural Message Passing](https://arxiv.org/abs/2010.12878) (WWW 2021)
  - **[RGCNConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.RGCNConv.html)** from Schlichtkrull *et al.*: [Modeling Relational Data with Graph Convolutional Networks](https://arxiv.org/abs/1703.06103) (ESWC 2018) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/rgcn.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/rgcn_link_pred.py)\]
  - **[RGATConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.RGATConv.html)** from Busbridge *et al.*: [Relational Graph Attention Networks](https://arxiv.org/abs/1904.05811) (CoRR 2019) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/rgat.py)\]
  - **[FiLMConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.FiLMConv.html)** from Brockschmidt: [GNN-FiLM: Graph Neural Networks with Feature-wise Linear Modulation](https://arxiv.org/abs/1906.12192) (ICML 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/film.py)\]
  - **[SignedConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.SignedConv.html)** from Derr *et al.*: [Signed Graph Convolutional Network](https://arxiv.org/abs/1808.06354) (ICDM 2018) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/signed_gcn.py)\]
  - **[DNAConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.DNAConv.html)** from Fey: [Just Jump: Dynamic Neighborhood Aggregation in Graph Neural Networks](https://arxiv.org/abs/1904.04849) (ICLR-W 2019) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/dna.py)\]
  - **[PANConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.PANConv.html)** from Ma *et al.*: [Path Integral Based Convolution and Pooling for Graph Neural Networks](https://arxiv.org/abs/2006.16811) (NeurIPS 2020)
  - **[PointNetConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.PointNetConv.html)** (including **[Iterative Farthest Point Sampling](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.pool.fps.html)**, dynamic graph generation based on **[nearest neighbor](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.pool.knn_graph.html)** or **[maximum distance](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.pool.radius_graph.html)**, and **[k-NN interpolation](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.unpool.knn_interpolate.html)** for upsampling) from Qi *et al.*: [PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation](https://arxiv.org/abs/1612.00593) (CVPR 2017) and [PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space](https://arxiv.org/abs/1706.02413) (NIPS 2017) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/pointnet2_classification.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/pointnet2_segmentation.py)\]
  - **[EdgeConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.EdgeConv.html)** from Wang *et al.*: [Dynamic Graph CNN for Learning on Point Clouds](https://arxiv.org/abs/1801.07829) (CoRR, 2018) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/dgcnn_classification.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/dgcnn_segmentation.py)\]
  - **[XConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.XConv.html)** from Li *et al.*: [PointCNN: Convolution On X-Transformed Points](https://arxiv.org/abs/1801.07791) (NeurIPS 2018) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/benchmark/points/point_cnn.py)\]
  - **[PPFConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.PPFConv.html)** from Deng *et al.*: [PPFNet: Global Context Aware Local Features for Robust 3D Point Matching](https://arxiv.org/abs/1802.02669) (CVPR 2018)
  - **[GMMConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GMMConv.html)** from Monti *et al.*: [Geometric Deep Learning on Graphs and Manifolds using Mixture Model CNNs](https://arxiv.org/abs/1611.08402) (CVPR 2017)
  - **[FeaStConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.FeaStConv.html)** from Verma *et al.*: [FeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis](https://arxiv.org/abs/1706.05206) (CVPR 2018)
  - **[PointTransformerConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.PointTransformerConv.html)** from Zhao *et al.*: [Point Transformer](https://arxiv.org/abs/2012.09164) (2020)
  - **[HypergraphConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.HypergraphConv.html)** from Bai *et al.*: [Hypergraph Convolution and Hypergraph Attention](https://arxiv.org/abs/1901.08150) (CoRR 2019)
  - **[GravNetConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GravNetConv.html)** from Qasim *et al.*: [Learning Representations of Irregular Particle-detector Geometry with Distance-weighted Graph Networks](https://arxiv.org/abs/1902.07987) (European Physics Journal C, 2019)
  - **[SuperGAT](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.SuperGATConv.html)** from Kim and Oh: [How To Find Your Friendly Neighborhood: Graph Attention Design With Self-Supervision](https://openreview.net/forum?id=Wi5KUNlqWty) (ICLR 2021) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/super_gat.py)\]
  - **[HGTConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.HGTConv.html)** from Hu *et al.*: [Heterogeneous Graph Transformer](https://arxiv.org/abs/2003.01332) (WWW 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/hetero/hgt_dblp.py)\]
  - **[HEATConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.HEATonv.html)** from Mo *et al.*: [Heterogeneous Edge-Enhanced Graph Attention Network For Multi-Agent Trajectory Prediction](https://arxiv.org/abs/2106.07161) (CoRR 2021)
  - **[SSGConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.SSGConv.html)** from Zhu *et al.*: [Simple Spectral Graph Convolution](https://openreview.net/forum?id=CYO5T-YjWZV) (ICLR 2021)
  - **[FusedGATConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.FusedGATConv.html)** from Zhang *et al.*: [Understanding GNN Computational Graph: A Coordinated Computation, IO, and Memory Perspective](https://proceedings.mlsys.org/paper/2022/file/9a1158154dfa42caddbd0694a4e9bdc8-Paper.pdf) (MLSys 2022)
  - **[GPSConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GPSConv.html)** from Rampášek *et al.*: [Recipe for a General, Powerful, Scalable Graph Transformer](https://arxiv.org/abs/2205.12454) (NeurIPS 2022) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/graph_gps.py)\]

  </details>

  **Pooling layers:**
  Graph pooling layers combine the vectorial representations of a set of nodes in a graph (or a subgraph) into a single vector representation that summarizes its properties of nodes.
  It is commonly applied to graph-level tasks, which require combining node features into a single graph representation.

  - **[Top-K Pooling](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.pool.TopKPooling.html)** from Gao and Ji: [Graph U-Nets](https://arxiv.org/abs/1905.05178) (ICML 2019), Cangea *et al.*: [Towards Sparse Hierarchical Graph Classifiers](https://arxiv.org/abs/1811.01287) (NeurIPS-W 2018) and Knyazev *et al.*: [Understanding Attention and Generalization in Graph Neural Networks](https://arxiv.org/abs/1905.02850) (ICLR-W 2019) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/proteins_topk_pool.py)\]
  - **[DiffPool](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.dense.dense_diff_pool.html)** from Ying *et al.*: [Hierarchical Graph Representation Learning with Differentiable Pooling](https://arxiv.org/abs/1806.08804) (NeurIPS 2018) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/proteins_diff_pool.py)\]

  <details>
  <summary><b>Expand to see all implemented pooling layers...</b></summary>

  - **[Attentional Aggregation](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.aggr.AttentionalAggregation.html)** from Li *et al.*: [Graph Matching Networks for Learning the Similarity of Graph Structured Objects](https://arxiv.org/abs/1904.12787) (ICML 2019) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/benchmark/kernel/global_attention.py)\]
  - **[Set2Set](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.aggr.Set2Set.html)** from Vinyals *et al.*: [Order Matters: Sequence to Sequence for Sets](https://arxiv.org/abs/1511.06391) (ICLR 2016) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/benchmark/kernel/set2set.py)\]
  - **[Sort Aggregation](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.aggr.SortAggregation.html)** from Zhang *et al.*: [An End-to-End Deep Learning Architecture for Graph Classification](https://www.cse.wustl.edu/~muhan/papers/AAAI_2018_DGCNN.pdf) (AAAI 2018) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/benchmark/kernel/sort_pool.py)\]
  - **[MinCut Pooling](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.dense.dense_mincut_pool.html)** from Bianchi *et al.*: [Spectral Clustering with Graph Neural Networks for Graph Pooling](https://arxiv.org/abs/1907.00481) (ICML 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/proteins_mincut_pool.py)\]
  - **[DMoN Pooling](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.dense.DMoNPooling.html)** from Tsitsulin *et al.*: [Graph Clustering with Graph Neural Networks](https://arxiv.org/abs/2006.16904) (CoRR 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/proteins_dmon_pool.py)\]
  - **[Graclus Pooling](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.pool.graclus.html)** from Dhillon *et al.*: [Weighted Graph Cuts without Eigenvectors: A Multilevel Approach](http://www.cs.utexas.edu/users/inderjit/public_papers/multilevel_pami.pdf) (PAMI 2007) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/mnist_graclus.py)\]
  - **[Voxel Grid Pooling](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.pool.voxel_grid.html)** from, *e.g.*, Simonovsky and Komodakis: [Dynamic Edge-Conditioned Filters in Convolutional Neural Networks on Graphs](https://arxiv.org/abs/1704.02901) (CVPR 2017) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/mnist_voxel_grid.py)\]
  - **[SAG Pooling](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.pool.SAGPooling.html)** from Lee *et al.*: [Self-Attention Graph Pooling](https://arxiv.org/abs/1904.08082) (ICML 2019) and Knyazev *et al.*: [Understanding Attention and Generalization in Graph Neural Networks](https://arxiv.org/abs/1905.02850) (ICLR-W 2019) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/benchmark/kernel/sag_pool.py)\]
  - **[Edge Pooling](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.pool.EdgePooling.html)** from Diehl *et al.*: [Towards Graph Pooling by Edge Contraction](https://graphreason.github.io/papers/17.pdf) (ICML-W 2019) and Diehl: [Edge Contraction Pooling for Graph Neural Networks](https://arxiv.org/abs/1905.10990) (CoRR 2019) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/benchmark/kernel/edge_pool.py)\]
  - **[ASAPooling](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.pool.ASAPooling.html)** from Ranjan *et al.*: [ASAP: Adaptive Structure Aware Pooling for Learning Hierarchical Graph Representations](https://arxiv.org/abs/1911.07979) (AAAI 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/benchmark/kernel/asap.py)\]
  - **[PANPooling](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.pool.PANPooling.html)** from Ma *et al.*: [Path Integral Based Convolution and Pooling for Graph Neural Networks](https://arxiv.org/abs/2006.16811) (NeurIPS 2020)
  - **[MemPooling](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.pool.MemPooling.html)** from Khasahmadi *et al.*: [Memory-Based Graph Networks](https://arxiv.org/abs/2002.09518) (ICLR 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/mem_pool.py)\]
  - **[Graph Multiset Transformer](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.aggr.GraphMultisetTransformer.html)** from Baek *et al.*: [Accurate Learning of Graph Representations with Graph Multiset Pooling](https://arxiv.org/abs/2102.11533) (ICLR 2021) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/proteins_gmt.py)\]
  - **[Equilibrium Aggregation](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.aggr.EquilibriumAggregation.html)** from Bartunov *et al.*: [](https://arxiv.org/abs/2202.12795) (UAI 2022) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/equilibrium_median.py)\]

  </details>

  **GNN models:**
  Our supported GNN models incorporate multiple message passing layers, and users can directly use these pre-defined models to make predictions on graphs.
  Unlike simple stacking of GNN layers, these models could involve pre-processing, additional learnable parameters, skip connections, graph coarsening, etc.

  - **[SchNet](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.SchNet.html)** from Schütt *et al.*: [SchNet: A Continuous-filter Convolutional Neural Network for Modeling Quantum Interactions](https://arxiv.org/abs/1706.08566) (NIPS 2017) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/qm9_pretrained_schnet.py)\]
  - **[DimeNet](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.DimeNet.html)** and **[DimeNetPlusPlus](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.DimeNetPlusPlus.html)** from Klicpera *et al.*: [Directional Message Passing for Molecular Graphs](https://arxiv.org/abs/2003.03123) (ICLR 2020) and [Fast and Uncertainty-Aware Directional Message Passing for Non-Equilibrium Molecules](https://arxiv.org/abs/2011.14115) (NeurIPS-W 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/qm9_pretrained_dimenet.py)\]
  - **[Node2Vec](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.Node2Vec.html)** from Grover and Leskovec: [node2vec: Scalable Feature Learning for Networks](https://arxiv.org/abs/1607.00653) (KDD 2016) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/node2vec.py)\]
  - **[Deep Graph Infomax](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.DeepGraphInfomax.html)** from Veličković *et al.*: [Deep Graph Infomax](https://arxiv.org/abs/1809.10341) (ICLR 2019) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/infomax_transductive.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/infomax_inductive.py)\]
  - **Deep Multiplex Graph Infomax** from Park *et al.*: [Unsupervised Attributed Multiplex Network Embedding](https://arxiv.org/abs/1911.06750) (AAAI 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/hetero/dmgi_unsup.py)\]
  - **[Masked Label Prediction](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.MaskLabel.html)** from Shi *et al.*: [Masked Label Prediction: Unified Message Passing Model for Semi-Supervised Classification](https://arxiv.org/abs/2009.03509) (CoRR 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/unimp_arxiv.py)\]
  - **[PMLP](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.PMLP.html)** from Yang *et al.*: [Graph Neural Networks are Inherently Good Generalizers: Insights by Bridging GNNs and MLPs](https://arxiv.org/abs/2212.09034) (ICLR 2023)

  <details>
  <summary><b>Expand to see all implemented GNN models...</b></summary>

  - **[Jumping Knowledge](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.JumpingKnowledge.html)** from Xu *et al.*: [Representation Learning on Graphs with Jumping Knowledge Networks](https://arxiv.org/abs/1806.03536) (ICML 2018) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/benchmark/kernel/gin.py#L54-L106)\]
  - A **[MetaLayer](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.MetaLayer.html)** for building any kind of graph network similar to the [TensorFlow Graph Nets library](https://github.com/deepmind/graph_nets) from Battaglia *et al.*: [Relational Inductive Biases, Deep Learning, and Graph Networks](https://arxiv.org/abs/1806.01261) (CoRR 2018)
  - **[MetaPath2Vec](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.MetaPath2Vec.html)** from Dong *et al.*: [metapath2vec: Scalable Representation Learning for Heterogeneous Networks](https://ericdongyx.github.io/papers/KDD17-dong-chawla-swami-metapath2vec.pdf) (KDD 2017) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/hetero/metapath2vec.py)\]
  - All variants of **[Graph Autoencoders](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.GAE.html)** and **[Variational Autoencoders](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.VGAE.html)** from:
    - [Variational Graph Auto-Encoders](https://arxiv.org/abs/1611.07308) from Kipf and Welling (NIPS-W 2016) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/autoencoder.py)\]
    - [Adversarially Regularized Graph Autoencoder for Graph Embedding](https://arxiv.org/abs/1802.04407) from Pan *et al.* (IJCAI 2018) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/argva_node_clustering.py)\]
    - [Simple and Effective Graph Autoencoders with One-Hop Linear Models](https://arxiv.org/abs/2001.07614) from Salha *et al.* (ECML 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/autoencoder.py)\]
  - **[SEAL](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/seal_link_pred.py)** from Zhang and Chen: [Link Prediction Based on Graph Neural Networks](https://arxiv.org/pdf/1802.09691.pdf) (NeurIPS 2018) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/seal_link_pred.py)\]
  - **[RENet](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.RENet.html)** from Jin *et al.*: [Recurrent Event Network for Reasoning over Temporal Knowledge Graphs](https://arxiv.org/abs/1904.05530) (ICLR-W 2019) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/renet.py)\]
  - **[GraphUNet](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.GraphUNet.html)** from Gao and Ji: [Graph U-Nets](https://arxiv.org/abs/1905.05178) (ICML 2019) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/graph_unet.py)\]
  - **[AttentiveFP](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.AttentiveFP.html)** from Xiong *et al.*: [Pushing the Boundaries of Molecular Representation for Drug Discovery with the Graph Attention Mechanism](https://pubs.acs.org/doi/10.1021/acs.jmedchem.9b00959) (J. Med. Chem. 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/attentive_fp.py)\]
  - **[DeepGCN](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.DeepGCNLayer.html)** and the **[GENConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GENConv.html)** from Li *et al.*: [DeepGCNs: Can GCNs Go as Deep as CNNs?](https://arxiv.org/abs/1904.03751) (ICCV 2019) and [DeeperGCN: All You Need to Train Deeper GCNs](https://arxiv.org/abs/2006.07739) (CoRR 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/ogbn_proteins_deepgcn.py)\]
  - **[RECT](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.RECT_L.html)** from Wang *et al.*: [Network Embedding with Completely-imbalanced Labels](https://ieeexplore.ieee.org/document/8979355) (TKDE 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/rect.py)\]
  - **[GNNExplainer](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.explain.algorithm.GNNExplainer.html)** from Ying *et al.*: [GNNExplainer: Generating Explanations for Graph Neural Networks](https://arxiv.org/abs/1903.03894) (NeurIPS 2019) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/explain/gnn_explainer.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/explain/gnn_explainer_ba_shapes.py), [**Example3**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/explain/gnn_explainer_link_pred.py)\]
  - **Graph-less Neural Networks** from Zhang *et al.*: [Graph-less Neural Networks: Teaching Old MLPs New Tricks via Distillation](https://arxiv.org/abs/2110.08727) (CoRR 2021) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/glnn.py)\]
  - **[LINKX](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.LINKX.html)** from Lim *et al.*: [Large Scale Learning on Non-Homophilous Graphs:
    New Benchmarks and Strong Simple Methods](https://arxiv.org/abs/2110.14446) (NeurIPS 2021) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/linkx.py)\]
  - **[RevGNN](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.GroupAddRev.html)** from Li *et al.*: [Training Graph Neural with 1000 Layers](https://arxiv.org/abs/2106.07476) (ICML 2021) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/rev_gnn.py)\]
  - **[TransE](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.kge.TransE.html)** from Bordes *et al.*: [Translating Embeddings for Modeling Multi-Relational Data](https://proceedings.neurips.cc/paper/2013/file/1cecc7a77928ca8133fa24680a88d2f9-Paper.pdf) (NIPS 2013) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/kge_fb15k_237.py)\]
  - **[ComplEx](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.kge.ComplEx.html)** from Trouillon *et al.*: [Complex Embeddings for Simple Link Prediction](https://arxiv.org/abs/1606.06357) (ICML 2016) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/kge_fb15k_237.py)\]
  - **[DistMult](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.kge.DistMult.html)** from Yang *et al.*: [Embedding Entities and Relations for Learning and Inference in Knowledge Bases](https://arxiv.org/abs/1412.6575) (ICLR 2015) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/kge_fb15k_237.py)\]
  - **[RotatE](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.kge.RotatE.html)** from Sun *et al.*: [RotatE: Knowledge Graph Embedding by Relational Rotation in Complex Space](https://arxiv.org/abs/1902.10197) (ICLR 2019) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/kge_fb15k_237.py)\]

  </details>

  **GNN operators and utilities:**
  PyG comes with a rich set of neural network operators that are commonly used in many GNN models.
  They follow an extensible design: It is easy to apply these operators and graph utilities to existing GNN layers and models to further enhance model performance.

  - **[DropEdge](https://pytorch-geometric.readthedocs.io/en/latest/modules/utils.html#torch_geometric.utils.dropout_edge)** from Rong *et al.*: [DropEdge: Towards Deep Graph Convolutional Networks on Node Classification](https://openreview.net/forum?id=Hkx1qkrKPr) (ICLR 2020)
  - **[DropNode](https://pytorch-geometric.readthedocs.io/en/latest/modules/utils.html#torch_geometric.utils.dropout_node)**, **[MaskFeature](https://pytorch-geometric.readthedocs.io/en/latest/modules/utils.html#torch_geometric.utils.mask_feature)** and **[AddRandomEdge](https://pytorch-geometric.readthedocs.io/en/latest/modules/utils.html#torch_geometric.utils.add_random_edge)** from You *et al.*: [Graph Contrastive Learning with Augmentations](https://arxiv.org/abs/2010.13902) (NeurIPS 2020)
  - **[DropPath](https://pytorch-geometric.readthedocs.io/en/latest/modules/utils.html#torch_geometric.utils.dropout_path)** from Li *et al.*: [MaskGAE: Masked Graph Modeling Meets Graph Autoencoders](https://arxiv.org/abs/2205.10053) (arXiv 2022)
  - **[ShuffleNode](https://pytorch-geometric.readthedocs.io/en/latest/modules/utils.html#torch_geometric.utils.shuffle_node)** from Veličković *et al.*: [Deep Graph Infomax](https://arxiv.org/abs/1809.10341) (ICLR 2019)
  - **[GraphNorm](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.norm.GraphNorm.html)** from Cai *et al.*: [GraphNorm: A Principled Approach to Accelerating Graph Neural Network Training](https://proceedings.mlr.press/v139/cai21e.html) (ICML 2021)
  - **[GDC](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.transforms.GDC.html)** from Klicpera *et al.*: [Diffusion Improves Graph Learning](https://arxiv.org/abs/1911.05485) (NeurIPS 2019) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/gcn.py)\]

  <details>
  <summary><b>Expand to see all implemented GNN operators and utilities...</b></summary>

  - **[GraphSizeNorm](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.norm.GraphSizeNorm.html)** from Dwivedi *et al.*: [Benchmarking Graph Neural Networks](https://arxiv.org/abs/2003.00982) (CoRR 2020)
  - **[PairNorm](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.norm.PairNorm.html)** from Zhao and Akoglu: [PairNorm: Tackling Oversmoothing in GNNs](https://arxiv.org/abs/1909.12223) (ICLR 2020)
  - **[MeanSubtractionNorm](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.norm.MeanSubtractionNorm.html)** from Yang *et al.*: [Revisiting "Over-smoothing" in Deep GCNs](https://arxiv.org/abs/2003.13663) (CoRR 2020)
  - **[DiffGroupNorm](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.norm.DiffGroupNorm.html)** from Zhou *et al.*: [Towards Deeper Graph Neural Networks with Differentiable Group Normalization](https://arxiv.org/abs/2006.06972) (NeurIPS 2020)
  - **[Tree Decomposition](https://pytorch-geometric.readthedocs.io/en/latest/modules/utils.html#torch_geometric.utils.tree_decomposition)** from Jin *et al.*: [Junction Tree Variational Autoencoder for Molecular Graph Generation](https://arxiv.org/abs/1802.04364) (ICML 2018)
  - **[TGN](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.TGNMemory.html)** from Rossi *et al.*: [Temporal Graph Networks for Deep Learning on Dynamic Graphs](https://arxiv.org/abs/2006.10637) (GRL+ 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/tgn.py)\]
  - **[Weisfeiler Lehman Operator](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.WLConv.html)** from Weisfeiler and Lehman: [A Reduction of a Graph to a Canonical Form and an Algebra Arising During this Reduction](https://www.iti.zcu.cz/wl2018/pdf/wl_paper_translation.pdf) (Nauchno-Technicheskaya Informatsia 1968) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/wl_kernel.py)\]
  - **[Continuous Weisfeiler Lehman Operator](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.WLConvContinuous.html)** from Togninalli *et al.*: [Wasserstein Weisfeiler-Lehman Graph Kernels](https://arxiv.org/abs/1906.01277) (NeurIPS 2019)
  - **[Label Propagation](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.LabelPropagation.html)** from Zhu and Ghahramani: [Learning from Labeled and Unlabeled Data with Label Propagation](http://mlg.eng.cam.ac.uk/zoubin/papers/CMU-CALD-02-107.pdf) (CMU-CALD 2002) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/label_prop.py)\]
  - **[Local Degree Profile](https://pytorch-geometric.readthedocs.io/en/latest/modules/nn.html#torch_geometric.transforms.LocalDegreeProfile)** from Cai and Wang: [A Simple yet Effective Baseline for Non-attribute Graph Classification](https://arxiv.org/abs/1811.03508) (CoRR 2018)
  - **[CorrectAndSmooth](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.models.CorrectAndSmooth.html)** from Huang *et al.*: [Combining Label Propagation And Simple Models Out-performs Graph Neural Networks](https://arxiv.org/abs/2010.13993) (CoRR 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/correct_and_smooth.py)\]
  - **[Gini](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.functional.gini.html)** and **[BRO](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.functional.bro.html)** regularization from Henderson *et al.*: [Improving Molecular Graph Neural Network Explainability with Orthonormalization and Induced Sparsity](https://arxiv.org/abs/2105.04854) (ICML 2021)
  - **[RootedEgoNets](https://pytorch-geometric.readthedocs.io/en/latest/modules/nn.html#torch_geometric.transforms.RootedEgoNets)** and **[RootedRWSubgraph](https://pytorch-geometric.readthedocs.io/en/latest/modules/nn.html#torch_geometric.transforms.RootedRWSubgraph)** from Zhao *et al.*: [From Stars to Subgraphs: Uplifting Any GNN with Local Structure Awareness](https://arxiv.org/abs/2110.03753) (ICLR 2022)
  - **[FeaturePropagation](https://pytorch-geometric.readthedocs.io/en/latest/modules/nn.html#torch_geometric.transforms.FeaturePropagation)** from Rossi *et al.*: [On the Unreasonable Effectiveness of Feature Propagation in Learning on Graphs with Missing Node Features](https://arxiv.org/abs/2111.12128) (CoRR 2021)

  </details>

  **Scalable GNNs:**
  PyG supports the implementation of Graph Neural Networks that can scale to large-scale graphs.
  Such application is challenging since the entire graph, its associated features and the GNN parameters cannot fit into GPU memory.
  Many state-of-the-art scalability approaches tackle this challenge by sampling neighborhoods for mini-batch training, graph clustering and partitioning, or by using simplified GNN models.
  These approaches have been implemented in PyG, and can benefit from the above GNN layers, operators and models.

  - **[NeighborLoader](https://pytorch-geometric.readthedocs.io/en/latest/modules/loader.html#torch_geometric.loader.NeighborLoader)** from Hamilton *et al.*: [Inductive Representation Learning on Large Graphs](https://arxiv.org/abs/1706.02216) (NIPS 2017) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/reddit.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/ogbn_train.py), [**Example3**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/hetero/to_hetero_mag.py)\]
  - **[ClusterGCN](https://pytorch-geometric.readthedocs.io/en/latest/modules/loader.html#torch_geometric.loader.ClusterLoader)** from Chiang *et al.*: [Cluster-GCN: An Efficient Algorithm for Training Deep and Large Graph Convolutional Networks](https://arxiv.org/abs/1905.07953) (KDD 2019) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/cluster_gcn_reddit.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/cluster_gcn_ppi.py)\]
  - **[GraphSAINT](https://pytorch-geometric.readthedocs.io/en/latest/modules/loader.html#torch_geometric.loader.GraphSAINTSampler)** from Zeng *et al.*: [GraphSAINT: Graph Sampling Based Inductive Learning Method](https://arxiv.org/abs/1907.04931) (ICLR 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/graph_saint.py)\]

  <details>
  <summary><b>Expand to see all implemented scalable GNNs...</b></summary>

  - **[ShaDow](https://pytorch-geometric.readthedocs.io/en/latest/modules/loader.html#torch_geometric.loader.ShaDowKHopSampler)** from Zeng *et al.*: [Decoupling the Depth and Scope of Graph Neural Networks](https://arxiv.org/abs/2201.07858) (NeurIPS 2021) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/shadow.py)\]
  - **[SIGN](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.transforms.SIGN.html)** from Rossi *et al.*: [SIGN: Scalable Inception Graph Neural Networks](https://arxiv.org/abs/2004.11198) (CoRR 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/sign.py)\]
  - **[HGTLoader](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.loader.HGTLoader.html)** from Hu *et al.*: [Heterogeneous Graph Transformer](https://arxiv.org/abs/2003.01332) (WWW 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/hetero/to_hetero_mag.py)\]

  </details>



  PyG is available for Python 3.9 to Python 3.12.



  You can now install PyG via [Anaconda](https://anaconda.org/pyg/pyg) for all major OS/PyTorch/CUDA combinations 🤗
  If you have not yet installed PyTorch, install it via `conda` as described in the [official PyTorch documentation](https://pytorch.org/get-started/locally/).
  Given that you have PyTorch installed (`>=1.8.0`), simply run

  ```
  conda install pyg -c pyg
  ```



  From **PyG 2.3** onwards, you can install and use PyG **without any external library** required except for PyTorch.
  For this, simply run

  ```
  pip install torch_geometric
  ```



  If you want to utilize the full set of features from PyG, there exists several additional libraries you may want to install:

  - **[`pyg-lib`](https://github.com/pyg-team/pyg-lib)**: Heterogeneous GNN operators and graph sampling routines
  - **[`torch-scatter`](https://github.com/rusty1s/pytorch_scatter)**: Accelerated and efficient sparse reductions
  - **[`torch-sparse`](https://github.com/rusty1s/pytorch_sparse)**: [`SparseTensor`](https://pytorch-geometric.readthedocs.io/en/latest/advanced/sparse_tensor.html) support
  - **[`torch-cluster`](https://github.com/rusty1s/pytorch_cluster)**: Graph clustering routines
  - **[`torch-spline-conv`](https://github.com/rusty1s/pytorch_spline_conv)**: [`SplineConv`](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.SplineConv.html) support

  These packages come with their own CPU and GPU kernel implementations based on the [PyTorch C++/CUDA/hip(ROCm) extension interface](https://github.com/pytorch/extension-cpp).
  For a basic usage of PyG, these dependencies are **fully optional**.
  We recommend to start with a minimal installation, and install additional dependencies once you start to actually need them.

  For ease of installation of these extensions, we provide `pip` wheels for all major OS/PyTorch/CUDA combinations, see [here](https://data.pyg.org/whl).



  To install the binaries for PyTorch 2.5.0, simply run

  ```
  pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.5.0+${CUDA}.html
  ```

  where `${CUDA}` should be replaced by either `cpu`, `cu118`, `cu121`, or `cu124` depending on your PyTorch installation.

  |             | `cpu` | `cu118` | `cu121` | `cu124` |
  | ----------- | ----- | ------- | ------- | ------- |
  | **Linux**   | ✅    | ✅      | ✅      | ✅      |
  | **Windows** | ✅    | ✅      | ✅      | ✅      |
  | **macOS**   | ✅    |         |         |         |



  To install the binaries for PyTorch 2.4.0, simply run

  ```
  pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.4.0+${CUDA}.html
  ```

  where `${CUDA}` should be replaced by either `cpu`, `cu118`, `cu121`, or `cu124` depending on your PyTorch installation.

  |             | `cpu` | `cu118` | `cu121` | `cu124` |
  | ----------- | ----- | ------- | ------- | ------- |
  | **Linux**   | ✅    | ✅      | ✅      | ✅      |
  | **Windows** | ✅    | ✅      | ✅      | ✅      |
  | **macOS**   | ✅    |         |         |         |

  **Note:** Binaries of older versions are also provided for PyTorch 1.4.0, PyTorch 1.5.0, PyTorch 1.6.0, PyTorch 1.7.0/1.7.1, PyTorch 1.8.0/1.8.1, PyTorch 1.9.0, PyTorch 1.10.0/1.10.1/1.10.2, PyTorch 1.11.0, PyTorch 1.12.0/1.12.1, PyTorch 1.13.0/1.13.1, PyTorch 2.0.0/2.0.1, PyTorch 2.1.0/2.1.1/2.1.2, PyTorch 2.2.0/2.2.1/2.2.2, and PyTorch 2.3.0/2.3.1 (following the same procedure).
  **For older versions, you might need to explicitly specify the latest supported version number** or install via `pip install --no-index` in order to prevent a manual installation from source.
  You can look up the latest supported version number [here](https://data.pyg.org/whl).



  NVIDIA provides a PyG docker container for effortlessly training and deploying GPU accelerated GNNs with PyG, see [here](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pyg).



  In case you want to experiment with the latest PyG features which are not fully released yet, either install the **nightly version** of PyG via

  ```
  pip install pyg-nightly
  ```

  or install PyG **from master** via

  ```
  pip install git+https://github.com/pyg-team/pytorch_geometric.git
  ```



  The external [`pyg-rocm-build` repository](https://github.com/Looong01/pyg-rocm-build) provides wheels and detailed instructions on how to install PyG for ROCm.
  If you have any questions about it, please open an issue [here](https://github.com/Looong01/pyg-rocm-build/issues).



  Please cite [our paper](https://arxiv.org/abs/1903.02428) (and the respective papers of the methods used) if you use this code in your own work:

  ```
  @inproceedings{Fey/Lenssen/2019,
    title={Fast Graph Representation Learning with {PyTorch Geometric}},
    author={Fey, Matthias and Lenssen, Jan E.},
    booktitle={ICLR Workshop on Representation Learning on Graphs and Manifolds},
    year={2019},
  }
  ```

  Feel free to [email us](mailto:matthias.fey@tu-dortmund.de) if you wish your work to be listed in the [external resources](https://pytorch-geometric.readthedocs.io/en/latest/external/resources.html).
  If you notice anything unexpected, please open an [issue](https://github.com/pyg-team/pytorch_geometric/issues) and let us know.
  If you have any questions or are missing a specific feature, feel free [to discuss them with us](https://github.com/pyg-team/pytorch_geometric/discussions).
  We are motivated to constantly make PyG even better.

  [contributing-image]: https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat
  [contributing-url]: https://github.com/pyg-team/pytorch_geometric/blob/master/.github/CONTRIBUTING.md
  [docs-image]: https://readthedocs.org/projects/pytorch-geometric/badge/?version=latest
  [docs-url]: https://pytorch-geometric.readthedocs.io/en/latest
  [linting-image]: https://github.com/pyg-team/pytorch_geometric/actions/workflows/linting.yml/badge.svg
  [linting-url]: https://github.com/pyg-team/pytorch_geometric/actions/workflows/linting.yml
  [pypi-image]: https://badge.fury.io/py/torch-geometric.svg
  [pypi-url]: https://pypi.python.org/pypi/torch-geometric
  [slack-image]: https://img.shields.io/badge/slack-pyg-brightgreen
  [slack-url]: https://data.pyg.org/slack.html
  [testing-image]: https://github.com/pyg-team/pytorch_geometric/actions/workflows/testing.yml/badge.svg
  [testing-url]: https://github.com/pyg-team/pytorch_geometric/actions/workflows/testing.yml


pkgId: a17d443225bbd9eb218b7bf65daae024a3e33f22799345497b77b4bde8f03a9a
name: python-pyg90alarm-help
arch: noarch
version: 1.16.1
epoch: 0
release: 1
summary: Development documents and examples for pyg90alarm
url: https://github.com/hostcc/pyg90alarm
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyg90alarm-1.16.1-1.src.rpm
location_href: Packages/python-pyg90alarm-help-1.16.1-1.noarch.rpm
checksum_type: sha256
description:
  Python package to control G90-based alarm systems.
  Many manufacturers sell such systems under different brands - Golden Security,
  PST, Kerui and others. Those are cheap low-end systems, typically equipped with
  WiFi and possible GSM interfaces for connectivity, and support different range
  of peripherals:
  * Wired and wireless sensors
  * Relays (switches)
  The package implements asynchronous I/O over most of code paths using
  `asyncio <https://docs.python.org/3/library/asyncio.html>`_.


pkgId: eacc59182bfb12d6a3c0b3e425e26cc39c62726ec12ee8a1716b4036779f1589
name: python-pygaia-help
arch: noarch
version: 3.1
epoch: 0
release: 1
summary: Development documents and examples for pygaia
url: https://github.com/agabrown/PyGaia
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pygaia-3.1-1.src.rpm
location_href: Packages/python-pygaia-help-3.1-1.noarch.rpm
checksum_type: sha256
description:
  Python toolkit for Gaia science performance simulation and astrometric catalogue data manipulation.



  PyGaia provides python modules for the simulation of Gaia data and their uncertainties, as well modules for the
  manipulation of the Gaia catalogue data. In particular transformations between astrometric observables and phase space
  variables are provided as well as transformations between sky coordinate systems. Only (very) basic functionality is
  provided. Full blown simulations of Gaia data in all their gory detail requires the Java tools developed by the Gaia
  Data Processing and Analysis Consortium (DPAC) in particular its Coordination Unit 2 (CU2).

  This toolkit is basically an implementation of the performance models for Gaia which are publicly available at:
  [http://www.cosmos.esa.int/web/gaia/science-performance](http://www.cosmos.esa.int/web/gaia/science-performance). In
  addition much of the material in chapter 4 of the book [Astrometry for Astrophysics: Methods, Models, and
   Applications (2012, van Altena et al.)](http://www.cambridge.org/9780521519205) is implemented.

  * The code in this package is __not intended for accurate astrometry applications__, such as predicting in detail
   astrometric paths of stars on the sky.
  * Epoch transformation _is_ provided, including the transformation of the astrometric covariance matrix to different
   epochs.



  It is recommended to use the [Astropy](https://www.astropy.org/) facilities for handling astrometric data, including transformations from (Cartesian) phase space coordinates to astrometric observables and vice versa. See the [`astropy.coordinates`](https://docs.astropy.org/en/stable/coordinates/index.html) package. Compared to the [`pygaia.astrometry`](./src/pygaia/astrometry) package this gives you more functionality, the use of units, and much better maintained code.

  The only functionality not (yet) provided in Astropy is the propagation of the covariance matrix of the astrometric observables to to a different epoch. This is implemented in the class [`pygaia.astrometry.coordinates.EpochPropagation`](./src/pygaia/astrometry/coordinates.py). Epoch propagation as such is implemented in Astropy as the [`apply_space_motion()`](https://docs.astropy.org/en/stable/coordinates/apply_space_motion.html) function of the [`SkyCoord`](https://docs.astropy.org/en/stable/api/astropy.coordinates.SkyCoord.html#astropy.coordinates.SkyCoord) class.



  All classes and methods/functions are documented so use the python help() function to find out more.



  To install from source.

  ```bash
  git clone https://github.com/agabrown/PyGaia.git
  cd PyGaia
  python -m pip install .
  ```

  From PyPI:

  ```bash
  pip install pygaia
  ```



  This package is intended for Python3.

  The following python packages are required:

  * [numpy](https://numpy.org/)
  * [scipy](https://scipy.org/)
  * [pandas](https://pandas.pydata.org/)
  * [UltraJSON](https://github.com/ultrajson/ultrajson)
  * [Astropy](https://www.astropy.org/)

  For the plotting tools:

  * [matplotlib](https://matplotlib.org/)



  PyGaia is based on the effort by Jos de Bruijne to create and maintain the Gaia Science Performance pages (with support from David Katz, Paola Sartoretti, Francesca De Angeli, Dafydd Evans, [Marco Riello](https://github.com/marc0uk), and Josep Manel Carrasco), and benefits from the suggestions and contributions by [Morgan Fouesneau](https://github.com/mfouesneau), [Tom Callingham](https://github.com/TomCallingham), [John Helly](https://github.com/jchelly), [Javier Olivares](https://github.com/olivares-j), [Henry Leung](https://github.com/henrysky), [Johannes Sahlmann](https://github.com/Johannes-Sahlmann).

  The photometric uncertainties code in PyGaia is based on the tool provided by Gaia DPAC (https://www.cosmos.esa.int/web/gaia/dr3-software-tools) to reproduce (E)DR3 Gaia photometric uncertainties described in the [GAIA-C5-TN-UB-JMC-031](https://dms.cosmos.esa.int/COSMOS/doc_fetch.php?id=1404728) technical note using data in [Riello et al (2021)](https://doi.org/10.1051/0004-6361/202039587).





  Please acknowledge the Gaia Project Scientist Support Team and the Gaia Data Processing and Analysis Consortium
  (DPAC) if you used this code in your research.



  Copyright (c) 2012-2024 Anthony Brown, Leiden University, Gaia Data Processing and Analysis Consortium


pkgId: 1e830b20d56a46a7f0b55ff3eb5729b41ee73a1a646746d96ade23bde305657d
name: python-pygbs-help
arch: noarch
version: 0.4.0
epoch: 0
release: 1
summary: Development documents and examples for pygbs
url: https://pypi.org/project/pygbs/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pygbs-0.4.0-1.src.rpm
location_href: Packages/python-pygbs-help-0.4.0-1.noarch.rpm
checksum_type: sha256
description:
  GBS is header library for computing bspline curves and surfaces.

  GBS is compatible with OpenCASCADE, curves and surfaces can be converted to OpenCASCADE's objects.

  __Example of point cloud approximation:__
  ![Screencast](img/foilApproximation.png)

  __Example of points surface interpolation:__
  ![Screencast](img/pointSurfInterp.png)

  __Example of curve-surface intersection:__
  ![Screencast](img/curve_surface_intersection.png)

  __Example of loft-surface creation:__
  ![Screencast](img/loft.png)

  __Example of surface approximation of points:__
  ![Screencast](img/surf_approx.png)


  __Example of curve 2d variable offset:__
  ![Screencast](img/offset2d.png)
  ![Screencast](img/foil_offset.png)

  __Example of curve on surface:__
  ![Screencast](img/curves_on_surface.png)

  __Example of python code to interpolate points__
  ```python
      pts = [
          [0.,0.,0],
          [0.,0.,1],
          [1.,0.,0.5],
          [1.,1.,1]
      ]
      constraints = []
      for p in pts:
          constraints.append([p])

      degree = 2

      crv = gbs.interpolate_cn_3d_d(
          constraints,
          degree,
          gbs.KnotsCalcMode.CHORD_LENGTH
      )
  ```
  For now, this lib is to be used inside a conda environment with the following package installed:
  * nlopt
  * eigen3
  * boost >= 1.74

  The optional module gbs-occt requires the additional package:
  * occt >=7.4.0

  The optional module render requires the additional package:
  * vtk >=9.0

  The python bindings requires the additional package:
  * pybind11

  The test library needs:
  * gtest
  * occt>=7.4.0
  * sundials

  **Warning tests relative to performances evaluation should be run in release mode**

  As GBS base is a header library it doesn’t need compilation.

  If one needs to compile the optional module gbs-occt, -DUSE_OCCT_UTILS:BOOL=TRUE shall be added to cmake command.
  If one needs to compile the optional module render, -DUSE_RENDER:BOOL=TRUE shall be added to cmake command.
  If one needs to compile the optional module python-bindings, -DUSE_PYTHON_BINDINGS=TRUE shall be added to cmake command.

  The full test suite, which require the optional module gbs-occt, please add -DGBS_BUILD_TESTS:BOOL=TRUE to the cmake command.

rpm_license:
  GNU LESSER GENERAL PUBLIC LICENSE  The library gbs is Copyright (C) 2020 SSG AERO S.A.S www.ssg-aero.com Contact: sebastien@ssg-aero.com  You may use, distribute and copy the library gbs under the terms of GNU Lesser General Public License version 3, which is displayed below. This license makes reference to the version 3 of the GNU General Public License, which you can find in the LICENSE.GPL3 file.  -------------------------------------------------------------------------  GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007  Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.  This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below.  0. Additional Definitions.  As used herein, “this License” refers to version 3 of the GNU Lesser General Public License, and the “GNU GPL” refers to version 3 of the GNU General Public License.  “The Library” refers to a covered work governed by this License, other than an Application or a Combined Work as defined below.  An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library.  A “Combined Work” is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the “Linked Version”.  The “Minimal Corresponding Source” for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version.  The “Corresponding Application Code” for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work.  1. Exception to Section 3 of the GNU GPL.  You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL.  2. Conveying Modified Versions.  If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version:  a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or  b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy.  3. Object Code Incorporating Material from Library Header Files.  The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following:  a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License.  b) Accompany the object code with a copy of the GNU GPL and this license document.  4. Combined Works.  You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following:  a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License.  b) Accompany the Combined Work with a copy of the GNU GPL and this license document.  c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document.  d) Do one of the following:  0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.  1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.  e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.)  5. Combined Libraries.  You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following:  a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License.  b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.  6. Revised Versions of the GNU Lesser General Public License.  The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.  Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation.  If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library.


pkgId: 74abd9a7610c2ef797e02fecabfb8ce6f0cdcf16decb91b9b22b448474f9ed34
name: python-pygccxml-help
arch: noarch
version: 2.6.1
epoch: 0
release: 1
summary: Development documents and examples for pygccxml
url: https://github.com/CastXML/pygccxml
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pygccxml-2.6.1-1.src.rpm
location_href: Packages/python-pygccxml-help-2.6.1-1.noarch.rpm
checksum_type: sha256
rpm_license:
  Boost Software License - Version 1.0 - August 17th, 2003  Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following:  The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor.  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, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


pkgId: 72f9dfe420c41932019bfc736dd1478b03d270cae3f3329a77212892ac4f158c
name: python-pygenda-help
arch: noarch
version: 0.3.5
epoch: 0
release: 1
summary: Development documents and examples for pygenda
url: https://github.com/semiprime/pygenda
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pygenda-0.3.5-1.src.rpm
location_href: Packages/python-pygenda-help-0.3.5-1.noarch.rpm
checksum_type: sha256
description:
  Pygenda is a calendar/agenda application written in Python3/GTK3. The UI is inspired by the Agenda programs on the Psion Series 3 and Series 5 range of keyboard-equipped PDAs, with the aim of being suitable for devices such as Planet Computers' Gemini PDA and Cosmo Communicator (running Linux).

  For more information/latest source, see https://github.com/semiprime/pygenda


pkgId: 31338147989e6885fb4f41398a21cae7b5081269378372cd71185cd81e09c2aa
name: python-pygeoflood-help
arch: noarch
version: 0.0.3a2
epoch: 0
release: 1
summary: Development documents and examples for pygeoflood
url: https://github.com/passaH2O/GeoFlood
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pygeoflood-0.0.3a2-1.src.rpm
location_href: Packages/python-pygeoflood-help-0.0.3a2-1.noarch.rpm
checksum_type: sha256
description:
  Flood mapping program based on high-resolution terrain analyses.



  https://passah2o.github.io/pygeoflood/



  We recommend installing `pygeoflood` into a conda environment. Python 3.10, 3.11, or 3.12 is required:

  ```bash
  $ pip install pygeoflood
  ```

  For the bleeding-edge version, install from GitHub:

  ```bash
  $ pip install git+https://github.com/passah2o/pygeoflood
  ```

  If you plan on running the Fill-Spill-Merge function to estimate pluvial flooding, you must also install a fork of the richdem package using the following commands:

  ```bash
  $ git clone https://github.com/mdp0023/richdem.git richdem
  $ cd richdem/wrappers/pyrichdem
  $ pip install .
  ```

  For local `pygeoflood` development, intall in editable mode:

  ```bash
  $ git clone https://github.com/passah2o/pygeoflood
  $ cd geoflood
  $ pip install -e .
  ```



  When using GeoFlood, please cite the following paper:

  Zheng, X., D. Maidment, D. Tarboton, Y. Liu, P. Passalacqua (2018), GeoFlood: Large scale flood inundation mapping based on high resolution terrain analysis, Water Resources Research, 54, 12, 10013-10033, doi:10.1029/2018WR023457.

  When using GeoNet, please cite the following papers:

  Passalacqua, P., T. Do Trung, E. Foufoula-Georgiou, G. Sapiro, W. E. Dietrich (2010), A geometric framework for channel network extraction from lidar: Nonlinear diffusion and geodesic paths, Journal of Geophysical Research Earth Surface, 115, F01002, doi:10.1029/2009JF001254.

  Sangireddy, H., R. A. Carothers, C.P. Stark, P. Passalacqua (2016), Controls of climate, topography, vegetation, and lithology on drainage density extracted from high resolution topography data, Journal of Hydrology, 537, 271-282, doi:10.1016/j.jhydrol.2016.02.051.


pkgId: b6408bf6e599779651bdc418f42609b393c01eea3ef5f314251213be87ceaaf0
name: python-pygeoweaver-help
arch: noarch
version: 1.1.4
epoch: 0
release: 1
summary: Development documents and examples for pygeoweaver
url: https://github.com/ESIPFed/pygeoweaver
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pygeoweaver-1.1.4-1.src.rpm
location_href: Packages/python-pygeoweaver-help-1.1.4-1.noarch.rpm
checksum_type: sha256
description:
  Thank you for choosing PyGeoWeaver! We hope this package enhances your geospatial data processing workflows. If you have any questions or need assistance, please refer to the documentation or reach out to us. Happy geospatial processing!


pkgId: c2506ec55801ec1923285b64bc454552fab458510450648d8242195b8d11989c
name: python-pygitmate-help
arch: noarch
version: 0.1.4
epoch: 0
release: 1
summary: Development documents and examples for pygitmate
url: https://pypi.org/project/pygitmate/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pygitmate-0.1.4-1.src.rpm
location_href: Packages/python-pygitmate-help-0.1.4-1.noarch.rpm
checksum_type: sha256
description:
  `pygitmate` is a developer-focused Git CLI tool designed to streamline common Git operations while maintaining flexibility.
  - **Branch Management**
    - Create branches for features, hotfixes, enhancements, and more.
    - Automatically fetch and switch to the base branch before creating a new one.
  - **Commit with Standards**
    - Helps you write commits that follow standardized conventions.
  - **Merging Simplified**
    - Merge your current branch into another effortlessly, with options to stash changes dynamically.
  - **Interactive Workflows**


pkgId: b17f1504030e2d73965ee7e5c6b5397abd7dfb7cbefa60e66d5b8d4dda90ef71
name: python-pyglet-desper-help
arch: noarch
version: 0.10.0
epoch: 0
release: 1
summary: Development documents and examples for pyglet-desper
url: https://github.com/Ball-Man/pyglet-desper
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyglet-desper-0.10.0-1.src.rpm
location_href: Packages/python-pyglet-desper-help-0.10.0-1.noarch.rpm
checksum_type: sha256
description:
  ![desper logo](https://github.com/Ball-Man/pyglet-desper/blob/master/assets/desper-logo-raw.png?raw=true)


  Combine resource and logic management of [desper](https://github.com/Ball-Man/desper]) with [pyglet](https://github.com/pyglet/pyglet)'s rendering and media.


  Simple installation from PyPi (recommended):
  ```
  pip install pyglet-desper
  ```
  Or installation from master branch:
  ```
  git clone https://github.com/Ball-Man/pyglet-desper
  cd pyglet-desper
  pip install .
  ```



  Docs and a user guide are in the making.


pkgId: a2978e03b6cc12b73098d2bf86a37265cdbde9675d31382cfc420761161d170b
name: python-pygments_ayed2-help
arch: noarch
version: 0.0.7
epoch: 0
release: 1
summary: Development documents and examples for pygments_ayed2
url: https://pypi.org/project/pygments_ayed2/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pygments_ayed2-0.0.7-1.src.rpm
location_href: Packages/python-pygments_ayed2-help-0.0.7-1.noarch.rpm
checksum_type: sha256
description:
  Pygments Lexer for AyED2 language

  After installing this package, pygments package will apply syntax highlighting to .ayed2 files

  ![](https://github.com/jmansilla/pygments_ayed2/blob/main/img/Example.png?raw=true)



  pip install pygments-ayed2


pkgId: 77d906b1c5cad12a61e46df300061c7da1492fb1411be1d8cbcf24e6983c5bc8
name: python-pygpt-net-help
arch: noarch
version: 2.4.40
epoch: 0
release: 1
summary: Development documents and examples for pygpt-net
url: https://pygpt.net
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pygpt-net-2.4.40-1.src.rpm
location_href: Packages/python-pygpt-net-help-2.4.40-1.noarch.rpm
checksum_type: sha256
description:
  To set the current working directory using a command-line argument, use:
  ```
  python3 ./run.py --workdir="/path/to/workdir"
  ```
  or, for the binary version:
  ```
  pygpt.exe --workdir="/path/to/workdir"
  ```

  Locale `.ini` files are located in the app directory:
  ``` ini
  ./data/locale
  ```
  This directory is automatically scanned when the application launches. To add a new translation,
  create and save the file with the appropriate name, for example:
  ``` ini
  locale.es.ini
  ```
  This will add Spanish as a selectable language in the application's language menu.
  **Overwriting CSS and locales with Your Own Files:**
  You can also overwrite files in the `locale` and `css` app directories with your own files in the user directory.
  This allows you to overwrite language files or CSS styles in a very simple way - by just creating files in your working directory.
  ``` ini
  {HOME_DIR}/.config/pygpt-net/
  ```
  - `locale` - a directory for locales in `.ini` format.
  - `css` - a directory for CSS styles in `.css` format.
  **Adding Your Own Fonts**
  You can add your own fonts and use them in CSS files. To load your own fonts, you should place them in the `%workdir%/fonts` directory. Supported font types include: `otf`, `ttf`.
  You can see the list of loaded fonts in `Debug / Config`.
  **Example:**
  ```
  %workdir%
  |_css
  |_data
  |_fonts
     |_MyFont
       |_MyFont-Regular.ttf
       |_MyFont-Bold.ttf
       |...
  ```
  ```css
  pre {{
      font-family: 'MyFont';
  }}
  ```

  **Configuring data loaders**
  In the `Settings -> LlamaIndex -> Data loaders` section you can define the additional keyword arguments to pass into data loader instance.
  In most cases, an internal LlamaIndex loaders are used internally.
  You can check these base loaders e.g. here:
  File: https://github.com/run-llama/llama_index/tree/main/llama-index-integrations/readers/llama-index-readers-file/llama_index/readers/file
  Web: https://github.com/run-llama/llama_index/tree/main/llama-index-integrations/readers/llama-index-readers-web
  **Tip:** to index an external data or data from the Web just ask for it, by using `Web Search` plugin, e.g. you can ask the model with `Please index the youtube video: URL to video`, etc. Data loader for a specified content will be choosen automatically.
  Allowed additional keyword arguments for built-in data loaders (files):
  **CSV Files**  (file_csv)
  - `concat_rows` - bool, default: `True`
  - `encoding` - str, default: `utf-8`
  **HTML Files**  (file_html)
  - `tag` - str, default: `section`
  - `ignore_no_id` - bool, default: `False`
  **Image (vision)**  (file_image_vision)
  This loader can operate in two modes: local model and API.
  If the local mode is enabled, then the local model will be used. The local mode requires a Python/PyPi version of the application and is not available in the compiled or Snap versions.
  If the API mode (default) is selected, then the OpenAI API and the standard vision model will be used.
  **Note:** Usage of API mode consumes additional tokens in OpenAI API (for `GPT-4 Vision` model)!
  Local mode requires `torch`, `transformers`, `sentencepiece` and `Pillow` to be installed and uses the `Salesforce/blip2-opt-2.7b` model to describing images.
  - `keep_image` - bool, default: `False`
  - `local_prompt` - str, default: `Question: describe what you see in this image. Answer:`
  - `api_prompt` - str, default: `Describe what you see in this image` - Prompt to use in API
  - `api_model` - str, default: `gpt-4-vision-preview` - Model to use in API
  - `api_tokens` - int, default: `1000` - Max output tokens in API
  **IPYNB Notebook files**  (file_ipynb)
  - `parser_config` - dict, default: `None`
  - `concatenate` - bool, default: `False`
  **Markdown files**  (file_md)
  - `remove_hyperlinks` - bool, default: `True`
  - `remove_images` - bool, default: `True`
  **PDF documents**  (file_pdf)
  - `return_full_document` - bool, default: `False`
  **Video/Audio**  (file_video_audio)
  This loader can operate in two modes: local model and API.
  If the local mode is enabled, then the local `Whisper` model will be used. The local mode requires a Python/PyPi version of the application and is not available in the compiled or Snap versions.
  If the API mode (default) is selected, then the currently selected provider in `Audio Input` plugin will be used. If the `OpenAI Whisper` is chosen then the OpenAI API and the API Whisper model will be used.
  **Note:** Usage of Whisper via API consumes additional tokens in OpenAI API (for `Whisper` model)!
  Local mode requires `torch` and `openai-whisper` to be installed and uses the `Whisper` model locally to transcribing video and audio.
  - `model_version` - str, default: `base` - Whisper model to use, available models: https://github.com/openai/whisper
  **XML files**  (file_xml)
  - `tree_level_split` - int, default: `0`
  Allowed additional keyword arguments for built-in data loaders (Web and external content):
  **Bitbucket**  (web_bitbucket)
  - `username` - str, default: `None`
  - `api_key` - str, default: `None`
  - `extensions_to_skip` - list, default: `[]`
  **ChatGPT Retrieval**  (web_chatgpt_retrieval)
  - `endpoint_url` - str, default: `None`
  - `bearer_token` - str, default: `None`
  - `retries` - int, default: `None`
  - `batch_size` - int, default: `100`
  **Google Calendar** (web_google_calendar)
  - `credentials_path` - str, default: `credentials.json`
  - `token_path` - str, default: `token.json`
  **Google Docs** (web_google_docs)
  - `credentials_path` - str, default: `credentials.json`
  - `token_path` - str, default: `token.json`
  **Google Drive** (web_google_drive)
  - `credentials_path` - str, default: `credentials.json`
  - `token_path` - str, default: `token.json`
  - `pydrive_creds_path` - str, default: `creds.txt`
  - `client_config` - dict, default: `{}`
  **Google Gmail** (web_google_gmail)
  - `credentials_path` - str, default: `credentials.json`
  - `token_path` - str, default: `token.json`
  - `use_iterative_parser` - bool, default: `False`
  - `max_results` - int, default: `10`
  - `results_per_page` - int, default: `None`
  **Google Keep** (web_google_keep)
  - `credentials_path` - str, default: `keep_credentials.json`
  **Google Sheets** (web_google_sheets)
  - `credentials_path` - str, default: `credentials.json`
  - `token_path` - str, default: `token.json`
  **GitHub Issues**  (web_github_issues)
  - `token` - str, default: `None`
  - `verbose` - bool, default: `False`
  **GitHub Repository**  (web_github_repository)
  - `token` - str, default: `None`
  - `verbose` - bool, default: `False`
  - `concurrent_requests` - int, default: `5`
  - `timeout` - int, default: `5`
  - `retries` - int, default: `0`
  - `filter_dirs_include` - list, default: `None`
  - `filter_dirs_exclude` - list, default: `None`
  - `filter_file_ext_include` - list, default: `None`
  - `filter_file_ext_exclude` - list, default: `None`
  **Microsoft OneDrive**  (web_microsoft_onedrive)
  - `client_id` - str, default: `None`
  - `client_secret` - str, default: `None`
  - `tenant_id` - str, default: `consumers`
  **Sitemap (XML)**  (web_sitemap)
  - `html_to_text` - bool, default: `False`
  - `limit` - int, default: `10`
  **SQL Database**  (web_database)
  - `engine` - str, default: `None`
  - `uri` - str, default: `None`
  - `scheme` - str, default: `None`
  - `host` - str, default: `None`
  - `port` - str, default: `None`
  - `user` - str, default: `None`
  - `password` - str, default: `None`
  - `dbname` - str, default: `None`
  **Twitter/X posts**  (web_twitter)
  - `bearer_token` - str, default: `None`
  - `num_tweets` - int, default: `100`

  **Available vector stores** (provided by `LlamaIndex`):
  ```
  - ChromaVectorStore
  - ElasticsearchStore
  - PinecodeVectorStore
  - RedisVectorStore
  - SimpleVectorStore
  ```
  You can configure selected vector store by providing config options like `api_key`, etc. in `Settings -> LlamaIndex` window.
  Arguments provided here (on list: `Vector Store (**kwargs)` in `Advanced settings` will be passed to selected vector store provider. You can check keyword arguments needed by selected provider on LlamaIndex API reference page:
  https://docs.llamaindex.ai/en/stable/api_reference/storage/vector_store.html
  Which keyword arguments are passed to providers?
  For `ChromaVectorStore` and `SimpleVectorStore` all arguments are set by PyGPT and passed internally (you do not need to configure anything).
  For other providers you can provide these arguments:
  **ElasticsearchStore**
  Keyword arguments for ElasticsearchStore(`**kwargs`):
  - `index_name` (default: current index ID, already set, not required)
  - any other keyword arguments provided on list
  **PinecodeVectorStore**
  Keyword arguments for Pinecone(`**kwargs`):
  - `api_key`
  - index_name (default: current index ID, already set, not required)
  **RedisVectorStore**
  Keyword arguments for RedisVectorStore(`**kwargs`):
  - `index_name` (default: current index ID, already set, not required)
  - any other keyword arguments provided on list
  You can extend list of available providers by creating custom provider and registering it on app launch.
  By default, you are using chat-based mode when using `Chat with Files`.
  If you want to only query index (without chat) you can enable `Query index only (without chat)` option.

  You can create a custom vector store provider or data loader for your data and develop a custom launcher for the application.
  See the section `Extending PyGPT / Adding a custom Vector Store provider` for more details.


  **PyGPT** comes with an integrated update notification system. When a new version with additional features is released, you'll receive an alert within the app.
  To get the new version, simply download it and start using it in place of the old one. All your custom settings like configuration, presets, indexes, and past conversations will be kept and ready to use right away in the new version.

  In `Settings -> Developer` dialog, you can enable the `Show debug menu` option to turn on the debugging menu. The menu allows you to inspect the status of application elements. In the debugging menu, there is a `Logger` option that opens a log window. In the window, the program's operation is displayed in real-time.
  **Logging levels**:
  By default, all errors and exceptions are logged to the file:
  ```ini
  {HOME_DIR}/.config/pygpt-net/app.log
  ```
  To increase the logging level (`ERROR` level is default), run the application with `--debug` argument:
  ``` ini
  python3 run.py --debug=1
  ```
  or
  ```ini
  python3 run.py --debug=2
  ```
  The value `1` enables the `INFO`logging level.
  The value `2` enables the `DEBUG` logging level (most information).
  **Compatibility (legacy) mode**
  If you have a problems with `WebEngine / Chromium` renderer you can force the legacy mode by launching the app with command line arguments:
  ``` ini
  python3 run.py --legacy=1
  ```
  and to force disable OpenGL hardware acceleration:
  ``` ini
  python3 run.py --disable-gpu=1
  ```
  You can also manualy enable legacy mode by editing config file - open the `%WORKDIR%/config.json` config file in editor and set the following options:
  ``` json
  "render.engine": "legacy",
  "render.open_gl": false,
  ```


  You can create your own extensions for **PyGPT** at any time.
  PyGPT can be extended with:
  - custom models
  - custom plugins
  - custom LLM wrappers
  - custom vector store providers
  - custom data loaders
  - custom audio input providers
  - custom audio output providers
  - custom web search engine providers
  **Examples (tutorial files)**
  See the `examples` directory in this repository with examples of custom launcher, plugin, vector store, LLM (LangChain and LlamaIndex) provider and data loader:
  - `examples/custom_launcher.py`
  - `examples/example_audio_input.py`
  - `examples/example_audio_output.py`
  - `examples/example_data_loader.py`
  - `examples/example_llm.py`
  - `examples/example_plugin.py`
  - `examples/example_vector_store.py`
  - `examples/example_web_search.py`
  These example files can be used as a starting point for creating your own extensions for **PyGPT**.
  Extending PyGPT with custom plugins, LLMs wrappers and vector stores:
  - You can pass custom plugin instances, LLMs wrappers and vector store providers to the launcher.
  - This is useful if you want to extend PyGPT with your own plugins, vectors storage and LLMs.
  To register custom plugins:
  - Pass a list with the plugin instances as `plugins` keyword argument.
  To register custom LLMs wrappers:
  - Pass a list with the LLMs wrappers instances as `llms` keyword argument.
  To register custom vector store providers:
  - Pass a list with the vector store provider instances as `vector_stores` keyword argument.
  To register custom data loaders:
  - Pass a list with the data loader instances as `loaders` keyword argument.
  To register custom audio input providers:
  - Pass a list with the audio input provider instances as `audio_input` keyword argument.
  To register custom audio output providers:
  - Pass a list with the audio output provider instances as `audio_output` keyword argument.
  To register custom web providers:
  - Pass a list with the web provider instances as `web` keyword argument.

  To add a new model using the OpenAI API, LangChain, or LlamaIndex wrapper, use the editor in `Config -> Models` or manually edit the `models.json` file by inserting the model's configuration details. If you are adding a model via LangChain or LlamaIndex, ensure to include the model's name, its supported modes (either `chat`, `completion`, or both), the LLM provider (such as `OpenAI` or `HuggingFace`), and, if you are using an external API-based model, an optional `API KEY` along with any other necessary environment settings.
  Example of models configuration - `%WORKDIR%/models.json`:
  ```
  "gpt-3.5-turbo": {
      "id": "gpt-3.5-turbo",
      "name": "gpt-3.5-turbo",
      "mode": [
          "chat",
          "assistant",
          "langchain",
          "llama_index"
      ],
      "langchain": {
          "provider": "openai",
          "mode": [
              "chat"
          ],
          "args": [
              {
                  "name": "model_name",
                  "value": "gpt-3.5-turbo",
                  "type": "str"
              }
          ],
          "env": [
              {
                  "name": "OPENAI_API_KEY",
                  "value": "{api_key}"
              }
          ]
      },
      "llama_index": {
          "provider": "openai",
          "mode": [
              "chat"
          ],
          "args": [
              {
                  "name": "model",
                  "value": "gpt-3.5-turbo",
                  "type": "str"
              }
          ],
          "env": [
              {
                  "name": "OPENAI_API_KEY",
                  "value": "{api_key}"
              }
          ]
      },
      "ctx": 4096,
      "tokens": 4096,
      "default": false
  },
  ```
  There is built-in support for those LLM providers:
  ```
  - `OpenAI` (openai)
  - `Azure OpenAI` (azure_openai)
  - `Google` (google)
  - `HuggingFace API` (huggingface_api)
  - `Anthropic` (anthropic)
  - `Ollama` (ollama)
  ```
  **Tip**: `{api_key}` in `models.json` is a placeholder for the main OpenAI API KEY from the settings. It will be replaced by the configured key value.


  You can create your own plugin for **PyGPT**. The plugin can be written in Python and then registered with the application just before launching it. All plugins included with the app are stored in the `plugin` directory - you can use them as coding examples for your own plugins.
  **Examples (tutorial files)**
  See the example plugin in this `examples` directory:
  - `examples/example_plugin.py`
  These example file can be used as a starting point for creating your own plugin for **PyGPT**.
  To register a custom plugin:
  - Create a custom launcher for the app.
  - Pass a list with the custom plugin instances as `plugins` keyword argument.
  **Example of a custom launcher:**
  ```python

  from pygpt_net.app import run
  from plugins import CustomPlugin, OtherCustomPlugin
  from llms import CustomLLM
  from vector_stores import CustomVectorStore
  plugins = [
      CustomPlugin(),
      OtherCustomPlugin(),
  ]
  llms = [
      CustomLLM(),
  ]
  vector_stores = [
      CustomVectorStore(),
  ]
  run(
      plugins=plugins,
      llms=llms,
      vector_stores=vector_stores,
  )
  ```

  In the plugin, you can receive and modify dispatched events.
  To do this, create a method named `handle(self, event, *args, **kwargs)` and handle the received events like here:
  ```python

  from pygpt_net.core.events import Event
  def handle(self, event: Event, *args, **kwargs):
      """
      Handle dispatched events
      """
      name = event.name
      data = event.data
      ctx = event.ctx
      if name == Event.INPUT_BEFORE:
          self.some_method(data['value'])
      elif name == Event.CTX_BEGIN:
          self.some_other_method(ctx)
      else:
      	
  ```

  Event names are defined in `Event` class in `pygpt_net.core.events`.
  Syntax: `event name` - triggered on, `event data` *(data type)*:
  - `AI_NAME` - when preparing an AI name, `data['value']` *(string, name of the AI assistant)*
  - `AGENT_PROMPT` - on agent prompt in eval mode, `data['value']` *(string, prompt)*
  - `AUDIO_INPUT_RECORD_START` - start audio input recording
  - `AUDIO_INPUT_RECORD_STOP` -  stop audio input recording
  - `AUDIO_INPUT_RECORD_TOGGLE` - toggle audio input recording
  - `AUDIO_INPUT_TRANSCRIBE` - on audio file transcribe, `data['path']` *(string, path to audio file)*
  - `AUDIO_INPUT_STOP` - force stop audio input
  - `AUDIO_INPUT_TOGGLE` - when speech input is enabled or disabled, `data['value']` *(bool, True/False)*
  - `AUDIO_OUTPUT_STOP` - force stop audio output
  - `AUDIO_OUTPUT_TOGGLE` - when speech output is enabled or disabled, `data['value']` *(bool, True/False)*
  - `AUDIO_READ_TEXT` - on text read using speech synthesis, `data['text']` *(str, text to read)*
  - `CMD_EXECUTE` - when a command is executed, `data['commands']` *(list, commands and arguments)*
  - `CMD_INLINE` - when an inline command is executed, `data['commands']` *(list, commands and arguments)*
  - `CMD_SYNTAX` - when appending syntax for commands, `data['prompt'], data['syntax']` *(string, list, prompt and list with commands usage syntax)*
  - `CMD_SYNTAX_INLINE` - when appending syntax for commands (inline mode), `data['prompt'], data['syntax']` *(string, list, prompt and list with commands usage syntax)*
  - `CTX_AFTER` - after the context item is sent, `ctx`
  - `CTX_BEFORE` - before the context item is sent, `ctx`
  - `CTX_BEGIN` - when context item create, `ctx`
  - `CTX_END` - when context item handling is finished, `ctx`
  - `CTX_SELECT` - when context is selected on list, `data['value']` *(int, ctx meta ID)*
  - `DISABLE` - when the plugin is disabled, `data['value']` *(string, plugin ID)*
  - `ENABLE` - when the plugin is enabled, `data['value']` *(string, plugin ID)*
  - `FORCE_STOP` - on force stop plugins
  - `INPUT_BEFORE` - upon receiving input from the textarea, `data['value']` *(string, text to be sent)*
  - `MODE_BEFORE` - before the mode is selected `data['value'], data['prompt']` *(string, string, mode ID)*
  - `MODE_SELECT` - on mode select `data['value']` *(string, mode ID)*
  - `MODEL_BEFORE` - before the model is selected `data['value']` *(string, model ID)*
  - `MODEL_SELECT` - on model select `data['value']` *(string, model ID)*
  - `PLUGIN_SETTINGS_CHANGED` - on plugin settings update (saving settings)
  - `PLUGIN_OPTION_GET` - on request for plugin option value `data['name'], data['value']` *(string, any, name of requested option, value)*
  - `POST_PROMPT` - after preparing a system prompt, `data['value']` *(string, system prompt)*
  - `POST_PROMPT_ASYNC` - after preparing a system prompt, just before request in async thread, `data['value']` *(string, system prompt)*
  - `POST_PROMPT_END` - after preparing a system prompt, just before request in async thread, at the very end `data['value']` *(string, system prompt)*
  - `PRE_PROMPT` - before preparing a system prompt, `data['value']` *(string, system prompt)*
  - `SYSTEM_PROMPT` - when preparing a system prompt, `data['value']` *(string, system prompt)*
  - `TOOL_OUTPUT_RENDER` - when rendering extra content from tools from plugins, `data['content']` *(string, content)*
  - `UI_ATTACHMENTS` - when the attachment upload elements are rendered, `data['value']` *(bool, show True/False)*
  - `UI_VISION` - when the vision elements are rendered, `data['value']` *(bool, show True/False)*
  - `USER_NAME` - when preparing a user's name, `data['value']` *(string, name of the user)*
  - `USER_SEND` - just before the input text is sent, `data['value']` *(string, input text)*
  You can stop the propagation of a received event at any time by setting `stop` to `True`:
  ```
  event.stop = True
  ```
  Events flow can be debugged by enabling the option `Config -> Settings -> Developer -> Log and debug events`.

  Handling LLMs with LangChain and LlamaIndex is implemented through separated wrappers. This allows for the addition of support for any provider and model available via LangChain or LlamaIndex. All built-in wrappers for the models and its providers are placed in the `pygpt_net.provider.llms`.
  These wrappers are loaded into the application during startup using `launcher.add_llm()` method:
  ```python

  from pygpt_net.provider.llms.openai import OpenAILLM
  from pygpt_net.provider.llms.azure_openai import AzureOpenAILLM
  from pygpt_net.provider.llms.anthropic import AnthropicLLM
  from pygpt_net.provider.llms.hugging_face import HuggingFaceLLM
  from pygpt_net.provider.llms.ollama import OllamaLLM
  from pygpt_net.provider.llms.google import GoogleLLM
  def run(**kwargs):
      """Runs the app."""
      
      launcher = Launcher()
      launcher.init()
      
      
      launcher.add_llm(OpenAILLM())
      launcher.add_llm(AzureOpenAILLM())
      launcher.add_llm(AnthropicLLM())
      launcher.add_llm(HuggingFaceLLM())
      launcher.add_llm(OllamaLLM())
      launcher.add_llm(GoogleLLM())
      
      launcher.run()
  ```
  To add support for providers not included by default, you can create your own wrapper that returns a custom model to the application and then pass this custom wrapper to the launcher.
  Extending **PyGPT** with custom plugins and LLM wrappers is straightforward:
  - Pass instances of custom plugins and LLM wrappers directly to the launcher.
  To register custom LLM wrappers:
  - Provide a list of LLM wrapper instances as `llms` keyword argument.
  **Example:**
  ```python

  from pygpt_net.app import run
  from plugins import CustomPlugin, OtherCustomPlugin
  from llms import CustomLLM
  plugins = [
      CustomPlugin(),
      OtherCustomPlugin(),
  ]
  llms = [
      CustomLLM(),  # <--- custom LLM provider (wrapper)
  ]
  vector_stores = []
  run(
      plugins=plugins,
      llms=llms,
      vector_stores=vector_stores,
  )
  ```
  **Examples (tutorial files)**
  See the `examples` directory in this repository with examples of custom launcher, plugin, vector store, LLM (LangChain and LlamaIndex) provider and data loader:
  - `examples/custom_launcher.py`
  - `examples/example_audio_input.py`
  - `examples/example_audio_output.py`
  - `examples/example_data_loader.py`
  - `examples/example_llm.py`  <-- use it as an example
  - `examples/example_plugin.py`
  - `examples/example_vector_store.py`
  - `examples/example_web_search.py`
  These example files can be used as a starting point for creating your own extensions for **PyGPT**.
  To integrate your own model or provider into **PyGPT**, you can also reference the classes located in the `pygpt_net.provider.llms`. These samples can act as an more complex example for your custom class. Ensure that your custom wrapper class includes two essential methods: `chat` and `completion`. These methods should return the respective objects required for the model to operate in `chat` and `completion` modes.
  Every single LLM provider (wrapper) inherits from `BaseLLM` class and can provide 3 components: provider for LangChain, provider for LlamaIndex, and provider for Embeddings.

  You can create a custom vector store provider or data loader for your data and develop a custom launcher for the application. To register your custom vector store provider or data loader, simply register it by passing the vector store provider instance to `vector_stores` keyword argument and loader instance in the `loaders` keyword argument:
  ```python


  from pygpt_net.provider.vector_stores.chroma import ChromaProvider
  from pygpt_net.provider.vector_stores.elasticsearch import ElasticsearchProvider
  from pygpt_net.provider.vector_stores.pinecode import PinecodeProvider
  from pygpt_net.provider.vector_stores.redis import RedisProvider
  from pygpt_net.provider.vector_stores.simple import SimpleProvider
  def run(**kwargs):
      
      
      launcher.add_vector_store(ChromaProvider())
      launcher.add_vector_store(ElasticsearchProvider())
      launcher.add_vector_store(PinecodeProvider())
      launcher.add_vector_store(RedisProvider())
      launcher.add_vector_store(SimpleProvider())
      
      vector_stores = kwargs.get('vector_stores', None)
      if isinstance(vector_stores, list):
          for store in vector_stores:
              launcher.add_vector_store(store)
      
  ```
  To register your custom vector store provider just register it by passing provider instance in `vector_stores` keyword argument:
  ```python

  from pygpt_net.app import run
  from plugins import CustomPlugin, OtherCustomPlugin
  from llms import CustomLLM
  from vector_stores import CustomVectorStore
  plugins = [
      CustomPlugin(),
      OtherCustomPlugin(),
  ]
  llms = [
      CustomLLM(),
  ]
  vector_stores = [
      CustomVectorStore(),  # <--- custom vector store provider
  ]
  run(
      plugins=plugins,
      llms=llms,
      vector_stores=vector_stores,
  )
  ```
  The vector store provider must be an instance of `pygpt_net.provider.vector_stores.base.BaseStore`.
  You can review the code of the built-in providers in `pygpt_net.provider.vector_stores` and use them as examples when creating a custom provider.

  ```python

  from pygpt_net.app import run
  from plugins import CustomPlugin, OtherCustomPlugin
  from llms import CustomLLM
  from vector_stores import CustomVectorStore
  from loaders import CustomLoader
  plugins = [
      CustomPlugin(),
      OtherCustomPlugin(),
  ]
  llms = [
      CustomLLM(),
  ]
  vector_stores = [
      CustomVectorStore(),
  ]
  loaders = [
      CustomLoader(),  # <---- custom data loader
  ]
  run(
      plugins=plugins,
      llms=llms,
      vector_stores=vector_stores,  # <--- list with custom vector store providers
      loaders=loaders  # <--- list with custom data loaders
  )
  ```
  The data loader must be an instance of `pygpt_net.provider.loaders.base.BaseLoader`.
  You can review the code of the built-in loaders in `pygpt_net.provider.loaders` and use them as examples when creating a custom loader.

  This application is not officially associated with OpenAI. The author shall not be held liable for any damages
  resulting from the use of this application. It is provided "as is," without any form of warranty.
  Users are reminded to be mindful of token usage - always verify the number of tokens utilized by the model on
  the OpenAI website and engage with the application responsibly. Activating plugins, such as Web Search,
  may consume additional tokens that are not displayed in the main window.


pkgId: d6f0650d25148affad56029751a9dc6f60822b058a4d9745adcd5303df471065
name: python-pygrammalecte-help
arch: noarch
version: 1.5.0
epoch: 0
release: 1
summary: Development documents and examples for pygrammalecte
url: https://pypi.org/project/pygrammalecte/
rpm_license: BSD-3-Clause
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pygrammalecte-1.5.0-1.src.rpm
location_href: Packages/python-pygrammalecte-help-1.5.0-1.noarch.rpm
checksum_type: sha256
description:
  [![PyPI](https://img.shields.io/pypi/v/pygrammalecte.svg)](https://pypi.python.org/pypi/pygrammalecte)
  [![PyPI](https://img.shields.io/pypi/l/pygrammalecte.svg)](https://github.com/vpoulailleau/pygrammalecte/blob/master/LICENSE)
  [![Code style: Ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff)
  [![Downloads](https://pepy.tech/badge/pygrammalecte)](https://pepy.tech/project/pygrammalecte)
  [![Test Coverage](https://api.codeclimate.com/v1/badges/44347ade656fa1e652ae/test_coverage)](https://codeclimate.com/github/vpoulailleau/pygrammalecte/test_coverage)
  [![Maintainability](https://api.codeclimate.com/v1/badges/44347ade656fa1e652ae/maintainability)](https://codeclimate.com/github/vpoulailleau/pygrammalecte/maintainability)

  (english version at the bottom of this document)

  Grammalecte, le correcteur grammatical en Python.

  Pour être précis, ce projet n’est pas Grammalecte, mais un « wrapper » permettant de l’utiliser facilement en Python.



  Vous devez utiliser un Python en version supérieure ou égale à 3.9.

  L’utilisation d’un environnement virtuel est fortement recommandé.

  ```sh
  python3 -m pip install pygrammalecte
  ```





  ```python
  from pygrammalecte import grammalecte_text

  texte_bidon = """\
  Coucou, je veut du fromage.
  Je sais coder en VHDL.
  Le VHDL est est compliquer.
  """

  for message in grammalecte_text(texte_bidon):
      print(message)
  ```



  Vous devez fournir le chemin du fichier en `str` ou en `pathlib.Path`. Le fichier doit être un fichier texte brut (pas un fichier Word ou OpenDocument par exemple).

  ```python
  from pathlib import Path

  from pygrammalecte import grammalecte_file

  filepath = Path("toto.txt")

  for message in grammalecte_file(filepath):
      print(message)
  ```



  Les fonctions `grammalecte_file` et `grammalecte_text` sont des générateurs, vous pouvez donc les utiliser dans une boucle `for`. Elles génèrent des `GrammalecteMessage`.

  Deux types de `GrammalecteMessage` existent :

  - `GrammalecteSpellingMessage` qui a comme attributs :

    - `line` : numéro de la ligne dans le texte vérifié
    - `start` : numéro du caractère de début de l’erreur dans la ligne
    - `end` : numéro du caractère de fin de l’erreur dans la ligne
    - `word` : le mot non reconnu par `Grammalecte`
    - `message` : message d’erreur

  - `GrammalecteGrammarMessage` qui a comme attributs :
    - `line` : numéro de la ligne dans le texte vérifié
    - `start` : numéro du caractère de début de l’erreur dans la ligne
    - `end` : numéro du caractère de fin de l’erreur dans la ligne
    - `url` : l’URL fournie par `Grammalecte`
    - `color` : une couleur fournie par `Grammalecte`, c’est une liste de 3 entiers entre 0 et 255.
    - `suggestions` : propositions de correction
    - `message` : message d’erreur
    - `rule` : identifiant de la règle violée
    - `type` : type de la règle (`"conj"`…)





  - Amélioration du support de Windows



  - Passage à `uv`
  - Compatibilité Python 3.9 à 3.13
  - Utilisation de Grammalecte v2.1.1



  - Correction due à un fonctionnement étrange de Grammalecte v1.12.0



  - Utilisation de Grammalecte v1.12.0



  - Ajout de l'attribut `message` pour `GrammalecteSpellingMessage`



  - Refactoring
  - Ajout de l'intégration continue



  - Première version !
  - Utilisation de Grammalecte v1.11.0



  This is a wrapper for the french grammatical checker called Grammalecte.


pkgId: d463ae7bfe53cba6bff7e4e5158037d332997cd3b2ab2765844ab0783c99ebef
name: python-pygrams-help
arch: noarch
version: 0.0.22
epoch: 0
release: 1
summary: Development documents and examples for pygrams
url: https://pygrams.netlify.app
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pygrams-0.0.22-1.src.rpm
location_href: Packages/python-pygrams-help-0.0.22-1.noarch.rpm
checksum_type: sha256
description:
  Several quick start options are available:
  - [Download the latest release](https://github.com/Yaseen549/pygrams/archive/refs/tags/v0.0.22.zip)
  - Clone the repo: `git clone https://github.com/Yaseen549/pygrams.git`
  - Install via [PyPI](https://www.pypi.org/): `pip install pygrams`


pkgId: e85adda0d8671cbe08b1191438862ec1b2ed598d40e20b917a89f5945c7850dc
name: python-pygranta-help
arch: noarch
version: 2025.1.0
epoch: 0
release: 1
summary: Development documents and examples for pygranta
url: https://github.com/ansys/pygranta
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pygranta-2025.1.0-1.src.rpm
location_href: Packages/python-pygranta-help-2025.1.0-1.noarch.rpm
checksum_type: sha256
description:
  |pyansys| |python| |pypi| |GH-CI| |MIT| |black| |pre-commit|
  Welcome to the PyGranta metapackage repository. The ``pygranta`` metapackage
  provides a single package of collected PyGranta packages that ensures compatibility
  of these packages amongst themselves and the Granta MI release that they are linked to.
  The ``pygranta`` metapackage ensures compatibility between these PyGranta packages:
  - `BoM Analytics <https://bomanalytics.grantami.docs.pyansys.com/>`_: Pythonic interface to the Ansys Granta MI BoM Analytics services.
  - `RecordLists <https://recordlists.grantami.docs.pyansys.com/>`_: Pythonic interface to the Ansys Granta MI Lists API.
  - `serverapi-openapi <https://github.com/ansys/grantami-serverapi-openapi/>`_: Autogenerated client library for the Ansys Granta MI Server API Services.
  The PyGranta metapackage installs these core modules and their dependencies:
  - `BoM Analytics`_
  - `RecordLists`_
  - `serverapi-openapi`_


pkgId: 2ea5627d49ac50c07aec0964e21207980e9d54f7a80b48b9138f96ce2a5996d4
name: python-pygridsynth-help
arch: noarch
version: 1.1.0
epoch: 0
release: 1
summary: Development documents and examples for pygridsynth
url: https://github.com/quantum-programming/clifford-T-decomp
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pygridsynth-1.1.0-1.src.rpm
location_href: Packages/python-pygridsynth-help-1.1.0-1.noarch.rpm
checksum_type: sha256
description:
  `pygridsynth` is a Python library for approximating arbitrary Z-rotations using the Clifford+T gate set, based on a given angle `θ` and tolerance `ε`. It is particularly useful for addressing approximate gate synthesis problems in quantum computing and algorithm research.



  - **Inspired by Established Work:** This library is based on P. Selinger's gridsynth program ([newsynth](https://www.mathstat.dal.ca/~selinger/newsynth/)), adapted for Python with additional functionality.
  - **High Precision:** Utilizes the `mpmath` library to support high-precision calculations.
  - **Customizable:** Allows adjustment of calculation precision (`dps`) and verbosity of output.
  - **Graph Visualization:** Provides an option to visualize decomposition results as a graph.



  You can install `pygridsynth` via pip:

  ```bash
  pip install pygridsynth
  ```

  Or, to install from source:

  ```bash
  pip install git+https://github.com/quantum-programming/pygridsynth.git
  ```



  `pygridsynth` can be used as a command-line tool.



  ```bash
  python -m pygridsynth <theta> <epsilon> [options]
  ```



  - `theta` (required): The rotation angle to decompose, specified in radians (e.g., `0.5`).
  - `epsilon` (required): The allowable error tolerance (e.g., `1e-10`).



  - `--dps`: Sets the calculation precision (default: `128`).
  - `--dtimeout`, `-dt`: Sets the timeout for solving diophantine equations in milliseconds (default: `200`).
  - `--ftimeout`, `-ft`: Sets the timeout for factorization in milliseconds (default: `50`).
  - `--verbose`, `-v`: Enables detailed output.
  - `--time`, `-t`: Measures the execution time.
  - `--showgraph`, `-g`: Displays the decomposition result as a graph.



  ```bash
  python -m pygridsynth 0.5 1e-50 --dps 256 --verbose --time
  ```

  This command will:
  1. Compute the Clifford+T gate decomposition of a Z-rotation gate with $\theta = 0.5$ and $\epsilon = 0.01$.
  2. Set the calculation precision to 256 decimal places.
  3. Display detailed output and measure the execution time.



  You can also use `pygridsynth` directly in your scripts:

  ```python
  from pygridsynth.gridsynth import gridsynth_gates
  import mpmath

  mpmath.mp.dps = 128
  theta = mpmath.mpmathify("0.5")
  epsilon = mpmath.mpmathify("1e-10")

  gates = gridsynth_gates(theta=theta, epsilon=epsilon)
  print(gates)
  ```



  Bug reports and feature requests are welcome. Please submit them via the [GitHub repository](https://github.com/quantum-programming/pygridsynth) Issues section. Contributions must comply with the GNU General Public License v3 or later.



  This project is licensed under the GNU General Public License v3 or later.



  - Brett Giles and Peter Selinger. Remarks on Matsumoto and Amano's normal form for single-qubit Clifford+T operators, 2019.
  - Ken Matsumoto and Kazuyuki Amano. Representation of Quantum Circuits with Clifford and π/8 Gates, 2008.
  - Neil J. Ross and Peter Selinger. Optimal ancilla-free Clifford+T approximation of z-rotations, 2016.
  - Peter Selinger. Efficient Clifford+T approximation of single-qubit operators, 2014.
  - Peter Selinger and Neil J. Ross. Exact and approximate synthesis of quantum circuits. https://www.mathstat.dal.ca/~selinger/newsynth/, 2018.
  - Vadym Kliuchnikov, Dmitri Maslov, and Michele Mosca. Fast and efficient exact synthesis of single qubit unitaries generated by Clifford and T gates, 2013.

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


pkgId: 12e3fe83bdeb2f988d0891ef5f47ffa15f37fc7106be39a9d46a745a17f66ff0
name: python-pygsielev-help
arch: noarch
version: 0.1.1
epoch: 0
release: 1
summary: Development documents and examples for pygsielev
url: https://pypi.org/project/pygsielev/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pygsielev-0.1.1-1.src.rpm
location_href: Packages/python-pygsielev-help-0.1.1-1.noarch.rpm
checksum_type: sha256
description:
  This is a tiny Python package that can get the elevation of
  specified coordinates, using the open DEM data distributed from GSI.



  - Download DEM data from [GSI's download service](https://fgd.gsi.go.jp/download/mapGis.php?tab=dem). The service is free of charge, but user registration is required.

  - Place the downloaded zip files together in a directory of your choice.




  Install `pygsielev` package using pip.

  ```
  $ pip install pygsielev
  ```

  Import `pygsielev.ElevationExtractor` class and instanciate with `data_dir`.
  Then, call `get_elevation()` of the object with longitude and latitude.

  ```
  >>> from pygsielev import ElevationExtractor
  >>> engine = ElevationExtractor(data_dir="data/")
  >>> print(engine.get_elevation(lon=138.727299, lat=35.360785))
  (3774.9, 'その他')
  ```

  It returns a tuple contains (elevation, surface type).

  Note: When the `data_dir` paramater is omitted, the environmental variable
  `GSIELEV_DATADIR` will be used to get the data directory.



  This package works with Python 3.9 or later. It uses only the standard library.



  Pull requests are welcome.



  Takeshi Sagara <sagara@info-proto.com>



  This package can be used under the [MIT](https://choosealicense.com/licenses/mit/) License.


pkgId: 72850c8b75b5d03c101798d1b113011b1a16adf2d831ca5921a26347a065aabf
name: python-pyguiadapter-help
arch: noarch
version: 1.0.7
epoch: 0
release: 1
summary: Development documents and examples for pyguiadapter
url: https://pypi.org/project/pyguiadapter/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyguiadapter-1.0.7-1.src.rpm
location_href: Packages/python-pyguiadapter-help-1.0.7-1.noarch.rpm
checksum_type: sha256
description:
  `PyGUIAdapter`是一个用于快速构建图形用户界面的Python库，只需极少的代码，就可以将几乎任意Python函数无缝转化为图形用户界面，大大简化了GUI应用程序的开发过程。`PyGUIAdapter`的核心理念是，以尽可能“无感”和“低侵入性”的方式，帮助开发者创建用户界面，使开发者能够专注于核心功能的实现，而不必将精力分散到复杂、繁琐的GUI编程上，降低了开发者的学习成本和心智负担。



  <div style="text-align: center;">
      <img src="https://zimolab.github.io/PyGUIAdapter/assets/hello_world.png" />
  </div>





  `PyGUIAdapter`与“`输入（Input）-处理（Process）-输出（Output）`”程序设计模式高度契合，特别适合用于：

  - **工具类应用程序的开发；**
  - **将现有的`CLI`应用快速迁移到`GUI`。**

  下面是[Python官方文档](https://docs.python.org/3/library/argparse.html#example)给出的一个使用`argparse`创建命令行的例子：

  ```python
  import argparse
  parser = argparse.ArgumentParser(description='Process some integers.')
  parser.add_argument('integers', metavar='N', type=int, nargs='+',
                      help='an integer for the accumulator')
  parser.add_argument('--sum', dest='accumulate', action='store_const',
                      const=sum, default=max,
                      help='sum the integers (default: find the max)')

  args = parser.parse_args()
  print(args.accumulate(args.integers))
  ```

  借助`PyGUIAdapter`，开发者可以用极少的代码将其转换成GUI程序。

  ```python
  from typing import List, Literal
  from pyguiadapter.adapter import GUIAdapter


  def process_integers(
      integers: List[int], operation: Literal["sum", "max"] = "max"
  ) -> int:
      """
      Process some integers.

      @param integers: an integer for the accumulator
      @param operation: sum the integers (default: find the max)
      """
      func = max if operation == "max" else sum
      return func(integers)


  if __name__ == "__main__":
      adapter = GUIAdapter()
      adapter.add(process_integers)
      adapter.run()

  ```

  <div style="text-align:center">
      <img src="https://zimolab.github.io/PyGUIAdapter/assets/process_integers.gif" />
  </div>





  * 使用简单，开发快速，可以用极少的代码创建图形用户界面，学习成本低，心智负担小。
  * 丰富的内置控件类型，近30种内置控件，基本实现开箱即用。Python的基本数据类型均实现了对应输入控件。同时，对基本类型进行了扩展，提供了丰富的语义类型，方便用户输入日期、时间、颜色、文件路径等特殊对象。实现了通用对象输入控件，支持输入`Json对象`和任意`Python字面量对象`（包括`int`、`float`、`bool`、`str`、`bytes`、`list`、`tuple`、`set`、`dict`）。
  * 高度可扩展性，提供了自定义控件接口。开发者可以很方便地为自定义数据类型实现专用输入控件。
  * 高度灵活性。控件与窗口均定义了大量可配置属性，开发者可以灵活地调整控件及窗口的外观、样式、行为，提升用户体验。
  * 支持使用`QSS`，自由定制界面风格，支持接入现有第三方界面美化库。
  * 支持自定义窗口菜单栏、工具栏，支持监听窗口事件，支持动态修改控件，为构建复杂应用提供了可能。
  * 基于[`qtpy`](https://github.com/spyder-ide/qtpy)抽象层，不依赖特定Qt绑定库，用户可自由选择`PyQt5`、`PyQt6`、`PySide2`、`PySide2`。
  * 界面底层使用`Qt`，兼容性好，相比`webview类`方案，系统资源占用更小。
  * 纯Python，跨平台，支持主流桌面操作系统，包括`Windows`、`Linux`、`MacOS`等。






  要使用`PyGUIAdapter`开发应用程序，需满足以下条件：

  + `Python 3.8+`
  + 安装`PyGUIAdapter`
  + 安装Qt的绑定库之一，可选`PyQt5`、`PyQt6`、`PySide2`、`PySide6`



  1、安装`PyGUIAdapter`

  ```shell
  pip install PyGUIAdapter
  ```

  2、安装Qt的绑定库之一，这里以`PySide2`为例：

  ```shell
  pip install pyside2
  ```

  > 如果你的环境下同时安装了多个Qt绑定库，`qtpy`默认会使用`PyQt5`(如果存在的话)。或者可以通过环境变量`QT_API`来明确指定要使用的绑定库，可以指定以下值：
  >
  > + `pyqt5`
  > + `pyside2`
  > + `pyqt6`
  > + `pyside6`
  >
  > 更多详细信息，可以参见[qtpy官方说明](https://github.com/spyder-ide/qtpy)。



  **1、实现业务逻辑，并封装为函数。**

  ```python
  from typing import Optional

  from pyguiadapter.adapter.uoutput import uprint
  from pyguiadapter.exceptions import ParameterError


  def equation_solver(a: float = 1.0, b: float = 0.0, c: float = 0.0) -> Optional[tuple]:
      """A simple equation solver for equations like:

      **ax^2 + bx + c = 0** (a, b, c ∈ **R** and a ≠ 0)

      @param a: a ∈ R and a ≠ 0
      @param b: b ∈ R
      @param c: c ∈ R
      @return:
      """
      if a == 0:
          raise ParameterError(parameter_name="a", message="a cannot be zero!")
      uprint(f"Equation:")
      uprint(f"  {a}x² + {b}x + {c} = 0")
      delta = b**2 - 4 * a * c
      if delta < 0:
          return None
      x1 = (-b + delta**0.5) / (2 * a)
      if delta == 0:
          return x1, x1
      x2 = (-b - delta**0.5) / (2 * a)
      return x1, x2

  ```

  **2、为业务代码适配GUI界面**

  ```python
  from pyguiadapter.adapter import GUIAdapter
  ...
  if __name__ == "__main__":
      adapter = GUIAdapter()
      adapter.add(equation_solver)
      adapter.run()
  ```

  **完整代码如下：**

  ```python
  from typing import Optional

  from pyguiadapter.adapter import GUIAdapter
  from pyguiadapter.adapter.uoutput import uprint
  from pyguiadapter.exceptions import ParameterError


  def equation_solver(a: float = 1.0, b: float = 0.0, c: float = 0.0) -> Optional[tuple]:
      """A simple equation solver for equations like:

      **ax^2 + bx + c = 0** (a, b, c ∈ **R** and a ≠ 0)

      @param a: a ∈ R and a ≠ 0
      @param b: b ∈ R
      @param c: c ∈ R
      @return:
      """
      if a == 0:
          raise ParameterError(parameter_name="a", message="a cannot be zero!")
      uprint(f"Equation:")
      uprint(f"  {a}x² + {b}x + {c} = 0")
      delta = b**2 - 4 * a * c
      if delta < 0:
          return None
      x1 = (-b + delta**0.5) / (2 * a)
      if delta == 0:
          return x1, x1
      x2 = (-b - delta**0.5) / (2 * a)
      return x1, x2


  if __name__ == "__main__":
      adapter = GUIAdapter()
      adapter.add(equation_solver)
      adapter.run()
  ```

  **界面效果如下：**

  <div style="text-align:center">
      <img src="https://zimolab.github.io/PyGUIAdapter/assets/equation_solver.gif" />
  </div>

  **3、限制条件**

  `PyGUIAdapter`几乎可以将任意的Python函数转换成图形用户界面，但也存在一些限制条件：

  - 不支持`lambda`函数和一些内置函数
  - 不支持参数列表带有`Positional-Only`参数的函数，如:
  ```python
  def foo(a: int, b: int, /, c: int, d: int):
      pass
  ```

  可能还有一些其他未知的限制，当然，不用担心，经过大量的测试，普通的python函数基本都可以无缝转化为图形用户界面。

  对应不能直接转换的情形，也可以通过非常简单的方式解决，将函数包装一层即可，比如:

  ```python

  def foo(a: int, b: int, /, c: int, d: int):
      pass


  def foo_wrapper(a: int, b: int, c: int, d: int):
      return foo(a, b, c, d)

  if __name__ == "__main__":
      from pyguiadapter.adapter import GUIAdapter
      adapter = GUIAdapter()
      adapter.add(foo_wrapper)
      adapter.run()
  ```



  `PyGUIAdapter`还提供了许多高级特性，开发者可以阅读文档，了解`PyGUIAdapter`的进阶用法。以下是文档地址：

  - [PyGUIAdapter文档](https://zimolab.github.io/PyGUIAdapter/)



  为了演示`PyGUIAdapter`的各种功能， 作者编写了大量示例代码，这些代码可以在[example/](https://github.com/zimolab/PyGUIAdapter/tree/main/examples/)目录下找到。



  `PyGUIAdapter`使用`MIT`许可协议进行发布。得益于`qtpy`的抽象能力，`PyGUIAdapter`本身并不依赖特定的Qt绑定库。开发者在使用`PyGUIAdapter`开发应用程序时，若依赖特定的Qt绑定库，则在遵守本项目的许可协议的同时，还应当遵守所选绑定库的许可协议。例如：

  - 若开发者选择使用`PySide2`，则其须遵守`LGPL`（具体以随附的许可协议为准）。
  - 若开发者选择使用`PyQt5`，则其须遵守`GPL`（具体以随附的许可协议为准）。



  `PyGUIAdapter`依赖如下开源项目，在此向作者表示感谢。

  - `qtpy`

  - `qtawesome`

  - `docstring-parser`

  - `tomli`

  - `pyqcodeeditor`

  - `yapf`


pkgId: c1a5323473bfe67fb22e74a4d7b21eff2e66009c4d3d656cb8a6dc67f719b876
name: python-pygv-help
arch: noarch
version: 0.1.0
epoch: 0
release: 1
summary: Development documents and examples for pygv
url: https://pypi.org/project/pygv/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pygv-0.1.0-1.src.rpm
location_href: Packages/python-pygv-help-0.1.0-1.noarch.rpm
checksum_type: sha256
description:
  a minimal, scriptable genome browser for python built with [anywidget](https://github.com/manzt/anywidget)



  **Here be dragons 🐉**

  ```sh
  pip install pygv
  ```



  ```py
  import pygv


  pygv.ref("mm10")


  pygv.locus("chr17:31,531,100-31,531,259")


  pygv.browse("fragments.bed", "10x_cov.bw")
  ```

  ![igv.js in Jupyter Notebook](https://github.com/manzt/anywidget/assets/24403730/8aa77384-6d7c-422f-9238-37e06a0272f6)

  That's it. By default, `pygv` infers the track and data-types by file
  extension. If a file format has an index file, it must be specified as
  a tuple (remote URLs also work):

  ```py
  pygv.browse(
    (
      "https://example.com/example.bam",     # data file
      "https://example.com/example.bam.bai"  # index file
    )
  )
  ```

  You can use `track` to adjust track properties beyond the defaults:

  ```py
  pygv.browse(
    pygv.track("10x_cov.bw", name="10x coverage", autoscale=True),
  )
  ```

  Multiple tracks are supported by adding to the `browse` call:

  ```py
  pygv.browse(
    
    (
        "https://example.com/example.bam",
        "https://example.com/example.bam.bai"
    ),
    
    pygv.track("10x_cov.bw", name="10x coverage", autoscale=True),
    
    pygv.track("genes.bed", name="Genes", color="blue"),
  )
  ```



  development requires [uv](https://astral.sh/uv)

  ```sh
  uv run jupyter lab # open notebook with editable install
  ```

  ```sh
  uv run pytest      # testing
  uv run ruff check  # linting
  uv run ruff format # formatting
  ```


pkgId: 65f946a9632b9a8e02613f7a18757bd2f9fa6dac918aab73dd15b717522dee4f
name: python-pygv-help
arch: noarch
version: 0.2.2
epoch: 0
release: 1
summary: Development documents and examples for pygv
url: https://pypi.org/project/pygv/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pygv-0.2.2-1.src.rpm
location_href: Packages/python-pygv-help-0.2.2-1.noarch.rpm
checksum_type: sha256
description:
  a minimal, scriptable genome browser for python built with
  [anywidget](https://github.com/manzt/anywidget)



  **Here be dragons 🐉**

  ```sh
  pip install pygv
  ```



  ```py
  import pygv


  pygv.ref("mm10")


  pygv.locus("chr17:31,531,100-31,531,259")


  pygv.browse("fragments.bed", "10x_cov.bw")
  ```

  ![igv.js in Jupyter Notebook](https://github.com/manzt/anywidget/assets/24403730/8aa77384-6d7c-422f-9238-37e06a0272f6)

  That's it. By default, `pygv` infers the track and data-types by file extension.
  If a file format has an index file, it must be specified as a tuple (remote URLs
  also work):

  ```py
  pygv.browse(
    (
      "https://example.com/example.bam",     # data file
      "https://example.com/example.bam.bai"  # index file
    )
  )
  ```

  You can use `track` to adjust track properties beyond the defaults:

  ```py
  pygv.browse(
    pygv.track("10x_cov.bw", name="10x coverage", autoscale=True),
  )
  ```

  Multiple tracks are supported by adding to the `browse` call:

  ```py
  pygv.browse(
    
    (
        "https://example.com/example.bam",
        "https://example.com/example.bam.bai"
    ),
    
    pygv.track("10x_cov.bw", name="10x coverage", autoscale=True),
    
    pygv.track("genes.bed", name="Genes", color="blue"),
  )
  ```



  development requires [uv](https://astral.sh/uv)

  ```sh
  uv run jupyter lab # open notebook with editable install
  ```

  ```sh
  uv run pytest      # testing
  uv run ruff check  # linting
  uv run ruff format # formatting
  ```


pkgId: 7ab47f6a7dc0ba8b94f922db2756f2f7059184e03610e5c385d12e8e0a4213d1
name: python-pygwalk-help
arch: noarch
version: 0.2.1b0
epoch: 0
release: 1
summary: Development documents and examples for pygwalk
url: https://github.com/ZeroKwok/gwalk
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pygwalk-0.2.1b0-1.src.rpm
location_href: Packages/python-pygwalk-help-0.2.1b0-1.noarch.rpm
checksum_type: sha256
description:
  `gwalk` 是一系列用于管理 Git 仓库的命令行小工具，帮助开发者对大批量的 Git 仓库进行日常维护。





  1. `python -m pip install gwalk`



  1. `git clone https://github.com/ZeroKwok/gwalk.git`
  2. `cd gwalk`
  3. `python -m pip install .`





  `gl.py` 是 `git pull` 操作的快捷工具。

  ```bash


  gl


  gl --rebase
  ```



  `gcp.py` 是用于执行 `git commit` 和 `git push` 操作快捷工具。

  ```bash


  gcp "fix some bugs"


  gcp -p
  ```



  `gwalk.py` 是 `gwalk` 工具的主要组件，提供了以下功能：

  - 列出目录下的所有 Git 仓库，支持过滤条件、黑名单、白名单和目录递归。
  - 显示列出的仓库的状态信息，支持输出信息的简短或冗长格式。
  - 在每个列出的仓库中执行一个操作。如运行自定义命令: 类似于子仓库操作 `git submodule foreach 'some command'` 但更加灵活。

  ```bash

  gwalk


  gwalk -rf all


  gwalk -rf all -a "run git pull origin"
  ```



  ```bash

  gwalk -rf all -a run gl


  gwalk -rf all -a run git push second {ab}



  gwalk -rf modified --a bash



  gwalk -rf modified --blacklist gwalk.blacklist --a "gcp -p"



  gwalk -rf all --whitelist gwalk.whitelist -a run git tag v1.5.0



  gwalk -rf all -a run git remote set-url origin `echo \`git remote get-url origin\` | python -c "print(input().replace('github.com', 'gitee.com'))"`
  ```

rpm_license:
  MIT License  Copyright (c) 2020-2024 Zero <zero.kwok@foxmail.com>  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: eae6d4b9a3633129374665c852affbac8028d4f5a5018ba930ab530a8655a427
name: python-pyhamsys-help
arch: noarch
version: 0.44
epoch: 0
release: 1
summary: Development documents and examples for pyhamsys
url: http://github.com/cchandre/pyhamsys
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyhamsys-0.44-1.src.rpm
location_href: Packages/python-pyhamsys-help-0.44-1.noarch.rpm
checksum_type: sha256
description:
  - `ndof` : number of degrees of freedom of the Hamiltonian system
         	'ndof' should be an integer or half an integer. Half integers denote an explicit time dependence.
  - `complex` : bolean
  	If False, the dynamical variables (q, p) are real and canonically conjugate. If True, the dynamical variables are (&psi;, &psi;<sup>*</sup>) where $\psi=(q + i p)/\sqrt{2}$. Default is False.

  - `hamiltonian` : callable
  	A function of (*t*, *y*) which returns the Hamiltonian *H*(*t*,*y*) where *y* is the state vector.
  - `y_dot` : callable
    	A function of (*t*, *y*) which returns {*y*,*H*(*t*,*y*)} where *y* is the state vector and *H* is the Hamiltonian. In canonical coordinates (used, e.g., in `solve_ivp_sympext`) where *y* = (*q*, *p*), this function returns (&part;*H*/&part;*p*, -&part;*H*/&part;*q*).
  - `k_dot` : callable
  	A function of (*t*, *y*) which returns {*k*,*H*(*t*,*y*)} = -&part;*H*/&part;*t* where *k* is canonically conjugate to *t* and *H* is the Hamiltonian.

  - `compute_vector_field` : from a callable function (Hamiltonian in canonical coordinates) written with symbolic variables (SymPy), computes the vector fields, `y_dot` and `k_dot`.
  	Determine Hamilton's equations of motion from a given scalar function &ndash;the Hamiltonian&ndash; *H*(*q*, *p*, *t*) where *q* and *p* are respectively positions and momenta.
  	
  	- `hamiltonian` : callable
  		Function *H*(*q*, *p*, *t*) &ndash;the Hamiltonian expressed in symbolic variables&ndash;, expressed using [SymPy](https://www.sympy.org/en/index.html) functions.
  	- `output` : bool, optional
  		If True, displays the equations of motion. Default is False.
  	The function `compute_vector_field` determines the HamSys function attributes `y_dot` and `k_dot` to be used in `solve_ivp_sympext`. The derivatives are computed symbolically using SymPy.
  - `compute_energy` : callable
    	A function of `sol` &ndash;a solution provided by `solve_ivp_sympext`&ndash; and `maxerror`, a boolean indicating whether the maximum error in total energy is given (if True) or all the values of the total energy (if False).
  	
  	- `sol` : OdeSolution
     		Solution provided by `solve_ivp_sympext`.
   	- `maxerror` : bool, optional

rpm_license:
  BSD 2-Clause License  Copyright (c) 2023, Cristel Chandre  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


pkgId: f601145bf95a61859afc8d62ce3f6628b071286c44f9632cbc4972716754cdc4
name: python-pyheimdall-collectiveaccess-help
arch: noarch
version: 0.6.0
epoch: 0
release: 1
summary: Development documents and examples for pyheimdall-collectiveaccess
url: https://gitlab.huma-num.fr/datasphere/heimdall/connectors/collectiveaccess/
rpm_license: aGPL
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyheimdall-collectiveaccess-0.6.0-1.src.rpm
location_href: Packages/python-pyheimdall-collectiveaccess-help-0.6.0-1.noarch.rpm
checksum_type: sha256
description:
  This CollectiveAccess pyHeimdall connector is available as a `PyPI package <https://pypi.org/project/pyheimdall-collectiveaccess/>`_ named ``pyheimdall-colectiveaccess``.
  You can install it using the `pip <https://pip.pypa.io/en/stable/>`_ package manager:
     pip install pyheimdall-collectiveaccess
  You can use `pip <https://pip.pypa.io/en/stable/>`_ to either upgrade or uninstall this connector, too:
     pip install --upgrade pyheimdall-collectiveaccess
     pip uninstall pyheimdall-collectiveaccess


pkgId: 6d32d8e5f404923e1cbffb97db415820b39d0bcb27667198f4ea604697984d2a
name: python-pyheimdall-help
arch: noarch
version: 0.12.0
epoch: 0
release: 1
summary: Development documents and examples for pyheimdall
url: https://gitlab.huma-num.fr/datasphere/heimdall/python/
rpm_license: aGPL
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyheimdall-0.12.0-1.src.rpm
location_href: Packages/python-pyheimdall-help-0.12.0-1.noarch.rpm
checksum_type: sha256
description:
  You can install Heimdall using the `pip <https://pip.pypa.io/en/stable/>`_ package manager:
     pip install pyheimdall
  You can use `pip <https://pip.pypa.io/en/stable/>`_ to either upgrade or uninstall Heimdall, too:
     pip install --upgrade pyheimdall
     pip uninstall pyheimdall


pkgId: f10c499e8212a77cdffc821431554dd7a55b166d77ec3ef2be70ed662c2f3ca8
name: python-pyheimdall-nakala-help
arch: noarch
version: 0.5.0
epoch: 0
release: 1
summary: Development documents and examples for pyheimdall-nakala
url: https://gitlab.huma-num.fr/datasphere/heimdall/connectors/nakala/
rpm_license: aGPL
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyheimdall-nakala-0.5.0-1.src.rpm
location_href: Packages/python-pyheimdall-nakala-help-0.5.0-1.noarch.rpm
checksum_type: sha256
description:
  You can install this connector using the `pip <https://pip.pypa.io/en/stable/>`_ package manager:
     pip install pyheimdall-connectors-nakala
  You can use `pip <https://pip.pypa.io/en/stable/>`_ to either upgrade or uninstall this connector, too:
     pip install --upgrade pyheimdall-connectors-nakala
     pip uninstall pyheimdall-connectors-nakala


pkgId: d9b3db667b4cd5380774f63b1f6e9d19a3638259565d48493983165efc11acfb
name: python-pyheimdall-wikidata-help
arch: noarch
version: 1.0.1
epoch: 0
release: 1
summary: Development documents and examples for pyheimdall-wikidata
url: https://gitlab.huma-num.fr/datasphere/heimdall/connectors/wikidata/
rpm_license: aGPL
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyheimdall-wikidata-1.0.1-1.src.rpm
location_href: Packages/python-pyheimdall-wikidata-help-1.0.1-1.noarch.rpm
checksum_type: sha256
description:
  This Wikidata pyHeimdall connector is available as a `PyPI package <https://pypi.org/project/pyheimdall-wikidata/>`_ named ``pyheimdall-wikidata``.
  You can install it using the `pip <https://pip.pypa.io/en/stable/>`_ package manager:
     pip install pyheimdall-wikidata
  You can use `pip <https://pip.pypa.io/en/stable/>`_ to either upgrade or uninstall this connector, too:
     pip install --upgrade pyheimdall-wikidata
     pip uninstall pyheimdall-wikidata


pkgId: c06b06dadd09e7640dbfd31537df2faecfd6182a157417f74a7094047c1d4788
name: python-pyhelmgen-help
arch: noarch
version: 1.3
epoch: 0
release: 1
summary: Development documents and examples for pyhelmgen
url: https://pypi.org/project/pyhelmgen/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-pyhelmgen-1.3-1.src.rpm
location_href: Packages/python-pyhelmgen-help-1.3-1.noarch.rpm
checksum_type: sha256
description:
  A python package written to allow developers to transform their docker-compose.yaml files into a helm chart. This library will enable users that are unfamiliar with helm and DevOps to handle their own cloud deployments to K8s clusters.

  py-helm-gen will read from an existing docker-compose.yaml file and create it into a starter helm chart all within a few lines of code.


  In your terminal run:
  ```
  $ pip install pyhelmgen
  ```


  py-helm-gen can be used to productionalize any Python app framework such as Django, FastAPI, or Flask.

  Before using py-helm-gen, make sure you have created a docker-compose.yaml file and have tested running the application with it.

  ```

  from HelmFromComposer import HelmFromComposer


  compose_file = "docker-compose.yaml"  # path to your docker compose file to this file
  app_name = "boaty"
  helm_generator = HelmFromComposer.HelmFromComposer(compose_file, app_name)


  helm_generator.create_helm_chart()
  ```

  Options for the helm chart can be added at the initialization of the HelmFromComposer object as an argument. These include:
  1. compose_file *(Required):* The path to the docker-compose.yaml file
  2. app_name *(Required):* Release name
  3. description *(Optional) (Default = A Helm chart for deploying the {{ .Release.Name }} web app)*: Description of the helm chart application
  4. replicas *(Optional) (Default = 1)*:" Number of pod replicas
  5. version *(Optional) (Default = 0.1.0*: Chart version
  6. auto_sync *(Optional) (Default = False)*: Enable true to rebuild your helm chart with every start of the application. Otherwise, HelmFromComposer will check for the helm file and only run when one does not exist.


  If you want to make any contributions to the library please open a pull request on the GitHub repo. If you have any questions please email nick.caravias@gmail.com


