# packages

pkgId: 011c9462a8eddcbbf250f94ec85a56e5e1133690ed5e8a014794ad36351882e4
name: python-mypy-boto3-translate
arch: src
version: 1.26.31
epoch: 0
release: 1
summary: Type annotations for boto3.Translate 1.26.31 service generated with mypy-boto3-builder 7.12.0
url: https://github.com/youtype/mypy_boto3_builder
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-db9e6cf5-9da9-4740-9cce-4ab864519391
location_href: 00014372-python-mypy-boto3-translate/python-mypy-boto3-translate-1.26.31-1.src.rpm
checksum_type: sha256
description:
  <a id="mypy-boto3-translate"></a>



  [![PyPI - mypy-boto3-translate](https://img.shields.io/pypi/v/mypy-boto3-translate.svg?color=blue)](https://pypi.org/project/mypy-boto3-translate)
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mypy-boto3-translate.svg?color=blue)](https://pypi.org/project/mypy-boto3-translate)
  [![Docs](https://img.shields.io/readthedocs/mypy-boto3-builder.svg?color=blue)](https://mypy-boto3-builder.readthedocs.io/)
  [![PyPI - Downloads](https://img.shields.io/pypi/dm/mypy-boto3-translate?color=blue)](https://pypistats.org/packages/mypy-boto3-translate)

  ![boto3.typed](https://github.com/youtype/mypy_boto3_builder/raw/main/logo.png)

  Type annotations for
  [boto3.Translate 1.26.31](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/translate.html#Translate)
  service compatible with [VSCode](https://code.visualstudio.com/),
  [PyCharm](https://www.jetbrains.com/pycharm/),
  [Emacs](https://www.gnu.org/software/emacs/),
  [Sublime Text](https://www.sublimetext.com/),
  [mypy](https://github.com/python/mypy),
  [pyright](https://github.com/microsoft/pyright) and other tools.

  Generated by
  [mypy-boto3-builder 7.12.0](https://github.com/youtype/mypy_boto3_builder).

  More information can be found on
  [boto3-stubs](https://pypi.org/project/boto3-stubs/) page and in
  [mypy-boto3-translate docs](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_translate/).

  See how it helps to find and fix potential bugs:

  ![boto3-stubs demo](https://github.com/youtype/mypy_boto3_builder/raw/main/demo.gif)

  - [mypy-boto3-translate](#mypy-boto3-translate)
    - [How to install](#how-to-install)
      - [VSCode extension](#vscode-extension)
      - [From PyPI with pip](#from-pypi-with-pip)
    - [How to uninstall](#how-to-uninstall)
    - [Usage](#usage)
      - [VSCode](#vscode)
      - [PyCharm](#pycharm)
      - [Emacs](#emacs)
      - [Sublime Text](#sublime-text)
      - [Other IDEs](#other-ides)
      - [mypy](#mypy)
      - [pyright](#pyright)
    - [Explicit type annotations](#explicit-type-annotations)
      - [Client annotations](#client-annotations)
      - [Paginators annotations](#paginators-annotations)
      - [Literals](#literals)
      - [Typed dictionaries](#typed-dictionaries)
    - [How it works](#how-it-works)
    - [What's new](#what's-new)
      - [Implemented features](#implemented-features)
      - [Latest changes](#latest-changes)
    - [Versioning](#versioning)
    - [Thank you](#thank-you)
    - [Documentation](#documentation)
    - [Support and contributing](#support-and-contributing)

  <a id="how-to-install"></a>



  <a id="vscode-extension"></a>



  Add
  [AWS Boto3](https://marketplace.visualstudio.com/items?itemName=Boto3typed.boto3-ide)
  extension to your VSCode and run `AWS boto3: Quick Start` command.

  Click `Modify` and select `boto3 common` and `Translate`.

  <a id="from-pypi-with-pip"></a>



  Install `boto3-stubs` for `Translate` service.

  ```bash

  python -m pip install 'boto3-stubs[translate]'




  python -m pip install 'boto3-stubs-lite[translate]'



  python -m pip install mypy-boto3-translate
  ```

  <a id="how-to-uninstall"></a>



  ```bash
  python -m pip uninstall -y mypy-boto3-translate
  ```

  <a id="usage"></a>



  <a id="vscode"></a>



  - Install
    [Python extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python)
  - Install
    [Pylance extension](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance)
  - Set `Pylance` as your Python Language Server
  - Install `boto3-stubs[translate]` in your environment:

  ```bash
  python -m pip install 'boto3-stubs[translate]'
  ```

  Both type checking and code completion should now work. No explicit type
  annotations required, write your `boto3` code as usual.

  <a id="pycharm"></a>



  Install `boto3-stubs-lite[translate]` in your environment:

  ```bash
  python -m pip install 'boto3-stubs-lite[translate]'`
  ```

  Both type checking and code completion should now work. Explicit type
  annotations **are required**.

  Use `boto3-stubs` package instead for implicit type discovery.

  <a id="emacs"></a>



  - Install `boto3-stubs` with services you use in your environment:

  ```bash
  python -m pip install 'boto3-stubs[translate]'
  ```

  - Install [use-package](https://github.com/jwiegley/use-package),
    [lsp](https://github.com/emacs-lsp/lsp-mode/),
    [company](https://github.com/company-mode/company-mode) and
    [flycheck](https://github.com/flycheck/flycheck) packages
  - Install [lsp-pyright](https://github.com/emacs-lsp/lsp-pyright) package

  ```elisp
  (use-package lsp-pyright
    :ensure t
    :hook (python-mode . (lambda ()
                            (require 'lsp-pyright)
                            (lsp)))  ; or lsp-deferred
    :init (when (executable-find "python3")
            (setq lsp-pyright-python-executable-cmd "python3"))
    )
  ```

  - Make sure emacs uses the environment where you have installed `boto3-stubs`

  Type checking should now work. No explicit type annotations required, write
  your `boto3` code as usual.

  <a id="sublime-text"></a>



  - Install `boto3-stubs[translate]` with services you use in your environment:

  ```bash
  python -m pip install 'boto3-stubs[translate]'
  ```

  - Install [LSP-pyright](https://github.com/sublimelsp/LSP-pyright) package

  Type checking should now work. No explicit type annotations required, write
  your `boto3` code as usual.

  <a id="other-ides"></a>



  Not tested, but as long as your IDE supports `mypy` or `pyright`, everything
  should work.

  <a id="mypy"></a>



  - Install `mypy`: `python -m pip install mypy`
  - Install `boto3-stubs[translate]` in your environment:

  ```bash
  python -m pip install 'boto3-stubs[translate]'`
  ```

  Type checking should now work. No explicit type annotations required, write
  your `boto3` code as usual.

  <a id="pyright"></a>



  - Install `pyright`: `npm i -g pyright`
  - Install `boto3-stubs[translate]` in your environment:

  ```bash
  python -m pip install 'boto3-stubs[translate]'
  ```

  Optionally, you can install `boto3-stubs` to `typings` folder.

  Type checking should now work. No explicit type annotations required, write
  your `boto3` code as usual.

  <a id="explicit-type-annotations"></a>



  <a id="client-annotations"></a>



  `TranslateClient` provides annotations for `boto3.client("translate")`.

  ```python
  from boto3.session import Session

  from mypy_boto3_translate import TranslateClient

  client: TranslateClient = Session().client("translate")


  ```

  <a id="paginators-annotations"></a>



  `mypy_boto3_translate.paginator` module contains type annotations for all
  paginators.

  ```python
  from boto3.session import Session

  from mypy_boto3_translate import TranslateClient
  from mypy_boto3_translate.paginator import ListTerminologiesPaginator

  client: TranslateClient = Session().client("translate")



  list_terminologies_paginator: ListTerminologiesPaginator = client.get_paginator(
      "list_terminologies"
  )
  ```

  <a id="literals"></a>



  `mypy_boto3_translate.literals` module contains literals extracted from shapes
  that can be used in user code for type checking.

  ```python
  from mypy_boto3_translate.literals import (
      DirectionalityType,
      DisplayLanguageCodeType,
      EncryptionKeyTypeType,
      FormalityType,
      JobStatusType,
      ListTerminologiesPaginatorName,
      MergeStrategyType,
      ParallelDataFormatType,
      ParallelDataStatusType,
      ProfanityType,
      TerminologyDataFormatType,
      TranslateServiceName,
      ServiceName,
      ResourceServiceName,
      PaginatorName,
      RegionName,
  )


  def check_value(value: DirectionalityType) -> bool:
      ...
  ```

  <a id="typed-dictionaries"></a>



  `mypy_boto3_translate.type_defs` module contains structures and shapes
  assembled to typed dictionaries for additional type checking.

  ```python
  from mypy_boto3_translate.type_defs import (
      TermTypeDef,
      EncryptionKeyTypeDef,
      ParallelDataConfigTypeDef,
      TagTypeDef,
      ResponseMetadataTypeDef,
      DeleteParallelDataRequestRequestTypeDef,
      DeleteTerminologyRequestRequestTypeDef,
      DescribeTextTranslationJobRequestRequestTypeDef,
      GetParallelDataRequestRequestTypeDef,
      ParallelDataDataLocationTypeDef,
      GetTerminologyRequestRequestTypeDef,
      TerminologyDataLocationTypeDef,
      TerminologyDataTypeDef,
      InputDataConfigTypeDef,
      JobDetailsTypeDef,
      LanguageTypeDef,
      ListLanguagesRequestRequestTypeDef,
      ListParallelDataRequestRequestTypeDef,
      ListTagsForResourceRequestRequestTypeDef,
      PaginatorConfigTypeDef,
      ListTerminologiesRequestRequestTypeDef,
      TextTranslationJobFilterTypeDef,
      TranslationSettingsTypeDef,
      StopTextTranslationJobRequestRequestTypeDef,
      UntagResourceRequestRequestTypeDef,
      AppliedTerminologyTypeDef,
      OutputDataConfigTypeDef,
      TerminologyPropertiesTypeDef,
      ParallelDataPropertiesTypeDef,
      UpdateParallelDataRequestRequestTypeDef,
      CreateParallelDataRequestRequestTypeDef,
      TagResourceRequestRequestTypeDef,
      CreateParallelDataResponseTypeDef,
      DeleteParallelDataResponseTypeDef,
      EmptyResponseMetadataTypeDef,
      ListTagsForResourceResponseTypeDef,
      StartTextTranslationJobResponseTypeDef,
      StopTextTranslationJobResponseTypeDef,
      UpdateParallelDataResponseTypeDef,
      ImportTerminologyRequestRequestTypeDef,
      ListLanguagesResponseTypeDef,
      ListTerminologiesRequestListTerminologiesPaginateTypeDef,
      ListTextTranslationJobsRequestRequestTypeDef,
      TranslateTextRequestRequestTypeDef,
      TranslateTextResponseTypeDef,
      StartTextTranslationJobRequestRequestTypeDef,
      TextTranslationJobPropertiesTypeDef,
      GetTerminologyResponseTypeDef,
      ImportTerminologyResponseTypeDef,
      ListTerminologiesResponseTypeDef,
      GetParallelDataResponseTypeDef,
      ListParallelDataResponseTypeDef,
      DescribeTextTranslationJobResponseTypeDef,
      ListTextTranslationJobsResponseTypeDef,
  )


  def get_structure() -> TermTypeDef:
      return {...}
  ```

  <a id="how-it-works"></a>



  Fully automated
  [mypy-boto3-builder](https://github.com/youtype/mypy_boto3_builder) carefully
  generates type annotations for each service, patiently waiting for `boto3`
  updates. It delivers a drop-in type annotations for you and makes sure that:

  - All available `boto3` services are covered.
  - Each public class and method of every `boto3` service gets valid type
    annotations extracted from the documentation (blame `botocore` docs if types
    are incorrect).
  - Type annotations include up-to-date documentation.
  - Link to documentation is provided for every method.
  - Code is processed by [black](https://github.com/psf/black) and
    [isort](https://github.com/PyCQA/isort) for readability.

  <a id="what's-new"></a>



  <a id="implemented-features"></a>



  - Fully type annotated `boto3`, `botocore` and `aiobotocore` libraries
  - `mypy`, `pyright`, `VSCode`, `PyCharm`, `Sublime Text` and `Emacs`
    compatibility
  - `Client`, `ServiceResource`, `Resource`, `Waiter` `Paginator` type
    annotations for each service
  - Generated `TypeDefs` for each service
  - Generated `Literals` for each service
  - Auto discovery of types for `boto3.client` and `boto3.session` calls
  - Auto discovery of types for `session.client` and `session.session` calls
  - Auto discovery of types for `client.get_waiter` and `client.get_paginator`
    calls
  - Auto discovery of types for `ServiceResource` and `Resource` collections
  - Auto discovery of types for `aiobotocore.Session.create_client` calls

  <a id="latest-changes"></a>



  Builder changelog can be found in
  [Releases](https://github.com/youtype/mypy_boto3_builder/releases).

  <a id="versioning"></a>



  `mypy-boto3-translate` version is the same as related `boto3` version and
  follows [PEP 440](https://www.python.org/dev/peps/pep-0440/) format.

  <a id="thank-you"></a>



  - [Allie Fitter](https://github.com/alliefitter) for
    [boto3-type-annotations](https://pypi.org/project/boto3-type-annotations/),
    this package is based on top of his work
  - [black](https://github.com/psf/black) developers for an awesome formatting
    tool
  - [Timothy Edmund Crosley](https://github.com/timothycrosley) for
    [isort](https://github.com/PyCQA/isort) and how flexible it is
  - [mypy](https://github.com/python/mypy) developers for doing all dirty work
    for us
  - [pyright](https://github.com/microsoft/pyright) team for the new era of typed
    Python

  <a id="documentation"></a>



  All services type annotations can be found in
  [boto3 docs](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_translate/)

  <a id="support-and-contributing"></a>



  This package is auto-generated. Please reports any bugs or request new features
  in [mypy-boto3-builder](https://github.com/youtype/mypy_boto3_builder/issues/)
  repository.


pkgId: 177b0cf2a4f9bd2e1928ab781b774707af28d88120fefb04fee3d8e2f0cc95d6
name: python-mypy-boto3-wafv2
arch: src
version: 1.26.106
epoch: 0
release: 1
summary: Type annotations for boto3.WAFV2 1.26.106 service generated with mypy-boto3-builder 7.14.5
url: https://github.com/youtype/mypy_boto3_builder
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-fb424738-b3d4-4488-963c-e5b825f94b65
location_href: 00014285-python-mypy-boto3-wafv2/python-mypy-boto3-wafv2-1.26.106-1.src.rpm
checksum_type: sha256
description:
  <a id="mypy-boto3-wafv2"></a>



  [![PyPI - mypy-boto3-wafv2](https://img.shields.io/pypi/v/mypy-boto3-wafv2.svg?color=blue)](https://pypi.org/project/mypy-boto3-wafv2)
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mypy-boto3-wafv2.svg?color=blue)](https://pypi.org/project/mypy-boto3-wafv2)
  [![Docs](https://img.shields.io/readthedocs/boto3-stubs.svg?color=blue)](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_wafv2/)
  [![PyPI - Downloads](https://img.shields.io/pypi/dm/mypy-boto3-wafv2?color=blue)](https://pypistats.org/packages/mypy-boto3-wafv2)

  ![boto3.typed](https://github.com/youtype/mypy_boto3_builder/raw/main/logo.png)

  Type annotations for
  [boto3.WAFV2 1.26.106](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/wafv2.html#WAFV2)
  service compatible with [VSCode](https://code.visualstudio.com/),
  [PyCharm](https://www.jetbrains.com/pycharm/),
  [Emacs](https://www.gnu.org/software/emacs/),
  [Sublime Text](https://www.sublimetext.com/),
  [mypy](https://github.com/python/mypy),
  [pyright](https://github.com/microsoft/pyright) and other tools.

  Generated by
  [mypy-boto3-builder 7.14.5](https://github.com/youtype/mypy_boto3_builder).

  More information can be found on
  [boto3-stubs](https://pypi.org/project/boto3-stubs/) page and in
  [mypy-boto3-wafv2 docs](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_wafv2/).

  See how it helps to find and fix potential bugs:

  ![boto3-stubs demo](https://github.com/youtype/mypy_boto3_builder/raw/main/demo.gif)

  - [mypy-boto3-wafv2](#mypy-boto3-wafv2)
    - [How to install](#how-to-install)
      - [VSCode extension](#vscode-extension)
      - [From PyPI with pip](#from-pypi-with-pip)
    - [How to uninstall](#how-to-uninstall)
    - [Usage](#usage)
      - [VSCode](#vscode)
      - [PyCharm](#pycharm)
      - [Emacs](#emacs)
      - [Sublime Text](#sublime-text)
      - [Other IDEs](#other-ides)
      - [mypy](#mypy)
      - [pyright](#pyright)
    - [Explicit type annotations](#explicit-type-annotations)
      - [Client annotations](#client-annotations)
      - [Literals](#literals)
      - [Typed dictionaries](#typed-dictionaries)
    - [How it works](#how-it-works)
    - [What's new](#what's-new)
      - [Implemented features](#implemented-features)
      - [Latest changes](#latest-changes)
    - [Versioning](#versioning)
    - [Thank you](#thank-you)
    - [Documentation](#documentation)
    - [Support and contributing](#support-and-contributing)

  <a id="how-to-install"></a>



  <a id="vscode-extension"></a>



  Add
  [AWS Boto3](https://marketplace.visualstudio.com/items?itemName=Boto3typed.boto3-ide)
  extension to your VSCode and run `AWS boto3: Quick Start` command.

  Click `Modify` and select `boto3 common` and `WAFV2`.

  <a id="from-pypi-with-pip"></a>



  Install `boto3-stubs` for `WAFV2` service.

  ```bash

  python -m pip install 'boto3-stubs[wafv2]'




  python -m pip install 'boto3-stubs-lite[wafv2]'



  python -m pip install mypy-boto3-wafv2
  ```

  <a id="how-to-uninstall"></a>



  ```bash
  python -m pip uninstall -y mypy-boto3-wafv2
  ```

  <a id="usage"></a>



  <a id="vscode"></a>



  - Install
    [Python extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python)
  - Install
    [Pylance extension](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance)
  - Set `Pylance` as your Python Language Server
  - Install `boto3-stubs[wafv2]` in your environment:

  ```bash
  python -m pip install 'boto3-stubs[wafv2]'
  ```

  Both type checking and code completion should now work. No explicit type
  annotations required, write your `boto3` code as usual.

  <a id="pycharm"></a>



  Install `boto3-stubs-lite[wafv2]` in your environment:

  ```bash
  python -m pip install 'boto3-stubs-lite[wafv2]'`
  ```

  Both type checking and code completion should now work. Explicit type
  annotations **are required**.

  Use `boto3-stubs` package instead for implicit type discovery.

  <a id="emacs"></a>



  - Install `boto3-stubs` with services you use in your environment:

  ```bash
  python -m pip install 'boto3-stubs[wafv2]'
  ```

  - Install [use-package](https://github.com/jwiegley/use-package),
    [lsp](https://github.com/emacs-lsp/lsp-mode/),
    [company](https://github.com/company-mode/company-mode) and
    [flycheck](https://github.com/flycheck/flycheck) packages
  - Install [lsp-pyright](https://github.com/emacs-lsp/lsp-pyright) package

  ```elisp
  (use-package lsp-pyright
    :ensure t
    :hook (python-mode . (lambda ()
                            (require 'lsp-pyright)
                            (lsp)))  ; or lsp-deferred
    :init (when (executable-find "python3")
            (setq lsp-pyright-python-executable-cmd "python3"))
    )
  ```

  - Make sure emacs uses the environment where you have installed `boto3-stubs`

  Type checking should now work. No explicit type annotations required, write
  your `boto3` code as usual.

  <a id="sublime-text"></a>



  - Install `boto3-stubs[wafv2]` with services you use in your environment:

  ```bash
  python -m pip install 'boto3-stubs[wafv2]'
  ```

  - Install [LSP-pyright](https://github.com/sublimelsp/LSP-pyright) package

  Type checking should now work. No explicit type annotations required, write
  your `boto3` code as usual.

  <a id="other-ides"></a>



  Not tested, but as long as your IDE supports `mypy` or `pyright`, everything
  should work.

  <a id="mypy"></a>



  - Install `mypy`: `python -m pip install mypy`
  - Install `boto3-stubs[wafv2]` in your environment:

  ```bash
  python -m pip install 'boto3-stubs[wafv2]'`
  ```

  Type checking should now work. No explicit type annotations required, write
  your `boto3` code as usual.

  <a id="pyright"></a>



  - Install `pyright`: `npm i -g pyright`
  - Install `boto3-stubs[wafv2]` in your environment:

  ```bash
  python -m pip install 'boto3-stubs[wafv2]'
  ```

  Optionally, you can install `boto3-stubs` to `typings` folder.

  Type checking should now work. No explicit type annotations required, write
  your `boto3` code as usual.

  <a id="explicit-type-annotations"></a>



  <a id="client-annotations"></a>



  `WAFV2Client` provides annotations for `boto3.client("wafv2")`.

  ```python
  from boto3.session import Session

  from mypy_boto3_wafv2 import WAFV2Client

  client: WAFV2Client = Session().client("wafv2")


  ```

  <a id="literals"></a>



  `mypy_boto3_wafv2.literals` module contains literals extracted from shapes that
  can be used in user code for type checking.

  ```python
  from mypy_boto3_wafv2.literals import (
      ActionValueType,
      BodyParsingFallbackBehaviorType,
      ComparisonOperatorType,
      CountryCodeType,
      FailureReasonType,
      FallbackBehaviorType,
      FilterBehaviorType,
      FilterRequirementType,
      ForwardedIPPositionType,
      IPAddressVersionType,
      InspectionLevelType,
      JsonMatchScopeType,
      LabelMatchScopeType,
      MapMatchScopeType,
      OversizeHandlingType,
      PayloadTypeType,
      PlatformType,
      PositionalConstraintType,
      RateBasedStatementAggregateKeyTypeType,
      ResourceTypeType,
      ResponseContentTypeType,
      ScopeType,
      SensitivityLevelType,
      TextTransformationTypeType,
      WAFV2ServiceName,
      ServiceName,
      ResourceServiceName,
      RegionName,
  )


  def check_value(value: ActionValueType) -> bool:
      ...
  ```

  <a id="typed-dictionaries"></a>



  `mypy_boto3_wafv2.type_defs` module contains structures and shapes assembled to
  typed dictionaries for additional type checking.

  ```python
  from mypy_boto3_wafv2.type_defs import (
      AWSManagedRulesBotControlRuleSetTypeDef,
      ActionConditionTypeDef,
      AndStatementTypeDef,
      AssociateWebACLRequestRequestTypeDef,
      BodyTypeDef,
      TextTransformationTypeDef,
      ImmunityTimePropertyTypeDef,
      CaptchaResponseTypeDef,
      ChallengeResponseTypeDef,
      CheckCapacityResponseTypeDef,
      LabelNameConditionTypeDef,
      CookieMatchPatternTypeDef,
      TagTypeDef,
      IPSetSummaryTypeDef,
      RegexTypeDef,
      RegexPatternSetSummaryTypeDef,
      CustomResponseBodyTypeDef,
      VisibilityConfigTypeDef,
      RuleGroupSummaryTypeDef,
      WebACLSummaryTypeDef,
      CustomHTTPHeaderTypeDef,
      DeleteFirewallManagerRuleGroupsRequestRequestTypeDef,
      DeleteFirewallManagerRuleGroupsResponseTypeDef,
      DeleteIPSetRequestRequestTypeDef,
      DeleteLoggingConfigurationRequestRequestTypeDef,
      DeletePermissionPolicyRequestRequestTypeDef,
      DeleteRegexPatternSetRequestRequestTypeDef,
      DeleteRuleGroupRequestRequestTypeDef,
      DeleteWebACLRequestRequestTypeDef,
      DescribeManagedRuleGroupRequestRequestTypeDef,
      LabelSummaryTypeDef,
      DisassociateWebACLRequestRequestTypeDef,
      ExcludedRuleTypeDef,
      SingleHeaderTypeDef,
      SingleQueryArgumentTypeDef,
      ForwardedIPConfigTypeDef,
      GenerateMobileSdkReleaseUrlRequestRequestTypeDef,
      GenerateMobileSdkReleaseUrlResponseTypeDef,
      GetIPSetRequestRequestTypeDef,
      IPSetTypeDef,
      GetLoggingConfigurationRequestRequestTypeDef,
      GetManagedRuleSetRequestRequestTypeDef,
      GetMobileSdkReleaseRequestRequestTypeDef,
      GetPermissionPolicyRequestRequestTypeDef,
      GetPermissionPolicyResponseTypeDef,
      GetRateBasedStatementManagedKeysRequestRequestTypeDef,
      RateBasedStatementManagedKeysIPSetTypeDef,
      GetRegexPatternSetRequestRequestTypeDef,
      GetRuleGroupRequestRequestTypeDef,
      TimeWindowTypeDef,
      GetWebACLForResourceRequestRequestTypeDef,
      GetWebACLRequestRequestTypeDef,
      HTTPHeaderTypeDef,
      HeaderMatchPatternTypeDef,
      IPSetForwardedIPConfigTypeDef,
      JsonMatchPatternTypeDef,
      LabelMatchStatementTypeDef,
      LabelTypeDef,
      ListAvailableManagedRuleGroupVersionsRequestRequestTypeDef,
      ManagedRuleGroupVersionTypeDef,
      ListAvailableManagedRuleGroupsRequestRequestTypeDef,
      ManagedRuleGroupSummaryTypeDef,
      ListIPSetsRequestRequestTypeDef,
      ListLoggingConfigurationsRequestRequestTypeDef,
      ListManagedRuleSetsRequestRequestTypeDef,
      ManagedRuleSetSummaryTypeDef,
      ListMobileSdkReleasesRequestRequestTypeDef,
      ReleaseSummaryTypeDef,
      ListRegexPatternSetsRequestRequestTypeDef,
      ListResourcesForWebACLRequestRequestTypeDef,
      ListResourcesForWebACLResponseTypeDef,
      ListRuleGroupsRequestRequestTypeDef,
      ListTagsForResourceRequestRequestTypeDef,
      ListWebACLsRequestRequestTypeDef,
      PasswordFieldTypeDef,
      UsernameFieldTypeDef,
      ManagedRuleSetVersionTypeDef,
      NotStatementTypeDef,
      OrStatementTypeDef,
      VersionToPublishTypeDef,
      PutManagedRuleSetVersionsResponseTypeDef,
      PutPermissionPolicyRequestRequestTypeDef,
      ResponseInspectionBodyContainsTypeDef,
      ResponseInspectionHeaderTypeDef,
      ResponseInspectionJsonTypeDef,
      ResponseInspectionStatusCodeTypeDef,
      ResponseMetadataTypeDef,
      UntagResourceRequestRequestTypeDef,
      UpdateIPSetRequestRequestTypeDef,
      UpdateIPSetResponseTypeDef,
      UpdateManagedRuleSetVersionExpiryDateRequestRequestTypeDef,
      UpdateManagedRuleSetVersionExpiryDateResponseTypeDef,
      UpdateRegexPatternSetResponseTypeDef,
      UpdateRuleGroupResponseTypeDef,
      UpdateWebACLResponseTypeDef,
      CaptchaConfigTypeDef,
      ChallengeConfigTypeDef,
      ConditionTypeDef,
      CookiesTypeDef,
      CreateIPSetRequestRequestTypeDef,
      MobileSdkReleaseTypeDef,
      TagInfoForResourceTypeDef,
      TagResourceRequestRequestTypeDef,
      CreateIPSetResponseTypeDef,
      ListIPSetsResponseTypeDef,
      CreateRegexPatternSetRequestRequestTypeDef,
      RegexPatternSetTypeDef,
      UpdateRegexPatternSetRequestRequestTypeDef,
      CreateRegexPatternSetResponseTypeDef,
      ListRegexPatternSetsResponseTypeDef,
      CreateRuleGroupResponseTypeDef,
      ListRuleGroupsResponseTypeDef,
      CreateWebACLResponseTypeDef,
      ListWebACLsResponseTypeDef,
      CustomRequestHandlingTypeDef,
      CustomResponseTypeDef,
      GeoMatchStatementTypeDef,
      RateBasedStatementTypeDef,
      GetIPSetResponseTypeDef,
      GetRateBasedStatementManagedKeysResponseTypeDef,
      GetSampledRequestsRequestRequestTypeDef,
      HTTPRequestTypeDef,
      HeadersTypeDef,
      IPSetReferenceStatementTypeDef,
      JsonBodyTypeDef,
      ListAvailableManagedRuleGroupVersionsResponseTypeDef,
      ListAvailableManagedRuleGroupsResponseTypeDef,
      ListManagedRuleSetsResponseTypeDef,
      ListMobileSdkReleasesResponseTypeDef,
      RequestInspectionTypeDef,
      ManagedRuleSetTypeDef,
      PutManagedRuleSetVersionsRequestRequestTypeDef,
      ResponseInspectionTypeDef,
      FilterTypeDef,
      GetMobileSdkReleaseResponseTypeDef,
      ListTagsForResourceResponseTypeDef,
      GetRegexPatternSetResponseTypeDef,
      AllowActionTypeDef,
      CaptchaActionTypeDef,
      ChallengeActionTypeDef,
      CountActionTypeDef,
      BlockActionTypeDef,
      SampledHTTPRequestTypeDef,
      FieldToMatchTypeDef,
      GetManagedRuleSetResponseTypeDef,
      AWSManagedRulesATPRuleSetTypeDef,
      LoggingFilterTypeDef,
      OverrideActionTypeDef,
      DefaultActionTypeDef,
      RuleActionTypeDef,
      GetSampledRequestsResponseTypeDef,
      ByteMatchStatementTypeDef,
      RegexMatchStatementTypeDef,
      RegexPatternSetReferenceStatementTypeDef,
      SizeConstraintStatementTypeDef,
      SqliMatchStatementTypeDef,
      XssMatchStatementTypeDef,
      ManagedRuleGroupConfigTypeDef,
      LoggingConfigurationTypeDef,
      RuleActionOverrideTypeDef,
      RuleSummaryTypeDef,
      RuleTypeDef,
      GetLoggingConfigurationResponseTypeDef,
      ListLoggingConfigurationsResponseTypeDef,
      PutLoggingConfigurationRequestRequestTypeDef,
      PutLoggingConfigurationResponseTypeDef,
      ManagedRuleGroupStatementTypeDef,
      RuleGroupReferenceStatementTypeDef,
      DescribeManagedRuleGroupResponseTypeDef,
      CheckCapacityRequestRequestTypeDef,
      CreateRuleGroupRequestRequestTypeDef,
      CreateWebACLRequestRequestTypeDef,
      RuleGroupTypeDef,
      UpdateRuleGroupRequestRequestTypeDef,
      UpdateWebACLRequestRequestTypeDef,
      FirewallManagerStatementTypeDef,
      StatementTypeDef,
      GetRuleGroupResponseTypeDef,
      FirewallManagerRuleGroupTypeDef,
      WebACLTypeDef,
      GetWebACLForResourceResponseTypeDef,
      GetWebACLResponseTypeDef,
  )


  def get_structure() -> AWSManagedRulesBotControlRuleSetTypeDef:
      return {...}
  ```

  <a id="how-it-works"></a>



  Fully automated
  [mypy-boto3-builder](https://github.com/youtype/mypy_boto3_builder) carefully
  generates type annotations for each service, patiently waiting for `boto3`
  updates. It delivers drop-in type annotations for you and makes sure that:

  - All available `boto3` services are covered.
  - Each public class and method of every `boto3` service gets valid type
    annotations extracted from `botocore` schemas.
  - Type annotations include up-to-date documentation.
  - Link to documentation is provided for every method.
  - Code is processed by [black](https://github.com/psf/black) and
    [isort](https://github.com/PyCQA/isort) for readability.

  <a id="what's-new"></a>



  <a id="implemented-features"></a>



  - Fully type annotated `boto3`, `botocore`, `aiobotocore` and `aioboto3`
    libraries
  - `mypy`, `pyright`, `VSCode`, `PyCharm`, `Sublime Text` and `Emacs`
    compatibility
  - `Client`, `ServiceResource`, `Resource`, `Waiter` `Paginator` type
    annotations for each service
  - Generated `TypeDefs` for each service
  - Generated `Literals` for each service
  - Auto discovery of types for `boto3.client` and `boto3.resource` calls
  - Auto discovery of types for `session.client` and `session.resource` calls
  - Auto discovery of types for `client.get_waiter` and `client.get_paginator`
    calls
  - Auto discovery of types for `ServiceResource` and `Resource` collections
  - Auto discovery of types for `aiobotocore.Session.create_client` calls

  <a id="latest-changes"></a>



  Builder changelog can be found in
  [Releases](https://github.com/youtype/mypy_boto3_builder/releases).

  <a id="versioning"></a>



  `mypy-boto3-wafv2` version is the same as related `boto3` version and follows
  [PEP 440](https://www.python.org/dev/peps/pep-0440/) format.

  <a id="thank-you"></a>



  - [Allie Fitter](https://github.com/alliefitter) for
    [boto3-type-annotations](https://pypi.org/project/boto3-type-annotations/),
    this package is based on top of his work
  - [black](https://github.com/psf/black) developers for an awesome formatting
    tool
  - [Timothy Edmund Crosley](https://github.com/timothycrosley) for
    [isort](https://github.com/PyCQA/isort) and how flexible it is
  - [mypy](https://github.com/python/mypy) developers for doing all dirty work
    for us
  - [pyright](https://github.com/microsoft/pyright) team for the new era of typed
    Python

  <a id="documentation"></a>



  All services type annotations can be found in
  [boto3 docs](https://youtype.github.io/boto3_stubs_docs/mypy_boto3_wafv2/)

  <a id="support-and-contributing"></a>



  This package is auto-generated. Please reports any bugs or request new features
  in [mypy-boto3-builder](https://github.com/youtype/mypy_boto3_builder/issues/)
  repository.


pkgId: 6bdcf5a9e57be2c0cbee33b6fff760c9a9262663d6b210b5c15c3cfcb3177acc
name: python-mypy-extensions
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: Type system extensions for programs checked with the mypy type checker.
url: https://github.com/python/mypy_extensions
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-258969a8-b30e-44d9-a590-307da37a72fb
location_href: 00004267-python-mypy_extensions/python-mypy-extensions-1.0.0-1.src.rpm
checksum_type: sha256
description:
  The "mypy_extensions" module defines extensions to the standard "typing" module
  that are supported by the mypy type checker and the mypyc compiler.


pkgId: 28650ef747651c671c4ad569248cdc5530979b3c8ce797c92bb7e2dd8d6ed1c7
name: python-namegenerator
arch: src
version: 1.0.6
epoch: 0
release: 1
summary: Generate Random Names for anything
url: https://yoginth.gitlab.io
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-89617151-78cb-4950-9b6d-90c60817ea4e
location_href: 00013910-python-namegenerator/python-namegenerator-1.0.6-1.src.rpm
checksum_type: sha256
description:
  > Generate Random Names for anything



  <img src="https://gitlab.com/yoginth/namegenerator/raw/master/Screenshot.png" width="550">



  - [Noxan's Gist](https://gist.github.com/noxan/5845351)
  - [Names Module by Trey Hunner](https://pypi.org/project/names/)



  ```
  $ pip install namegenerator
  ```



  ```py
  import namegenerator

  print (namegenerator.gen())

  ```



  There are few ways to get help:

   1. Please [post questions on Stack Overflow](https://stackoverflow.com/questions/ask). You can open issues with questions, as long you add a link to your Stack Overflow question.

   2. For bug reports and feature requests, open issues.

   3. For direct and quick help, you can [email me](mailto://yoginth@zoho.com).


  Have an idea? Found a bug? See [how to contribute][contributing].

  Thanks!



  [MIT][license]

  [LICENSE]: https://yoginth.mit-license.org/
  [contributing]: /CONTRIBUTING.md


pkgId: 2dfc2e55aa21d83c9916426c43b14347051a129519286f73736039e3145758f2
name: python-nanoid
arch: src
version: 2.0.0
epoch: 0
release: 1
summary: A tiny, secure, URL-friendly, unique string ID generator for Python
url: https://github.com/puyuan/py-nanoid
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a037b292-0e83-4f52-850b-6a481a34b504
location_href: 00004271-python-nanoid/python-nanoid-2.0.0-1.src.rpm
checksum_type: sha256
description:
  [![CircleCI](https://circleci.com/gh/puyuan/py-nanoid/tree/master.svg?style=svg)](https://circleci.com/gh/puyuan/py-nanoid/tree/master)

  A tiny, secure, URL-friendly, unique string ID generator for Python.

  * __Safe__. It uses cryptographically strong random APIs and tests distribution of symbols;
  * __Compact__. It uses a larger alphabet than UUID (A-Za-z0-9_-). So ID size was reduced from 36 to 21 symbols.



  Install Nano ID using pip:

  ```
  pip install nanoid
  ```



  The main module uses URL-friendly symbols (A-Za-z0-9_-) and returns an ID with 21 characters (to have a collision probability similar to UUID v4).


  ```python
  from nanoid import generate

  generate() # => NDzkGoTCdRcaRyt7GOepg
  ```

  Symbols `-,.()` are not encoded in the URL. If used at the end of a link they could be identified as a punctuation symbol.

  If you want to reduce ID length (and increase collisions probability), you can pass the length as an argument.

  ```python
  from nanoid import generate

  generate(size=10) # => "IRFa-VaY2b"

  ```

  Don’t forget to check the safety of your ID length in ID [collision probability calculator](https://zelark.github.io/nano-id-cc/).




  If you want to change the ID's alphabet or length you can use the internal generate module.

  ```python
  from nanoid import generate

  generate('1234567890abcdef', 10) # => "4f9zd13a42"
  ```

  Non-secure API is also available:

  ```python
  from nanoid import non_secure_generate

  non_secure_generate('1234567890abcdef', 10)
  ```



  * [ID size calculator](https://zelark.github.io/nano-id-cc/) to choice smaller ID size depends on your case.
  nanoid-dictionary with popular alphabets to use with nanoid/generate;
  * [`nanoid-dictionary`](https://github.com/aidarkhanov/py-nanoid-dictionary) with popular alphabets to use.





  * [C#](https://github.com/codeyu/nanoid-net)
  * [Clojure and ClojureScript](https://github.com/zelark/nano-id)
  * [Crystal](https://github.com/mamantoha/nanoid.cr)
  * [Dart](https://github.com/pd4d10/nanoid)
  * [Go](https://github.com/matoous/go-nanoid)
  * [Elixir](https://github.com/railsmechanic/nanoid)
  * [Haskell](https://github.com/4e6/nanoid-hs)
  * [Java](https://github.com/aventrix/jnanoid)
  * [JavaScript](https://github.com/ai/nanoid)
  * [Nim](https://github.com/icyphox/nanoid.nim)
  * [PHP](https://github.com/hidehalo/nanoid-php)
  * [Ruby](https://github.com/radeno/nanoid.rb)
  * [Rust](https://github.com/nikolay-govorov/nanoid)
  * [Swift](https://github.com/antiflasher/NanoID)



  - v2.0.0
      - Replace ~ to - in default alphabet
      - Add non-secure fast generator
      - Reduce default characters from 22 to 21
  - v0.3.0
      - Fix array out of bound error.



  - Andrey Sitnik for [Nano ID](https://github.com/ai/nanoid);
  - [Dair Aidarkhanov](https://github.com/aidarkhanov) for main contribution to v2.0, and adding test cases.
  - Aleksandr Zhuravlev for [ID collision probability](https://zelark.github.io/nano-id-cc/).


pkgId: df24167ee1720cf89e7c5ffb581a130466d75e5d0ec95425567e4f69b3a7ca3c
name: python-natlas-libnmap
arch: src
version: 0.7.1
epoch: 0
release: 1
summary: Python NMAP library enabling you to start async nmap tasks, parse and compare/diff scan results
url: http://pypi.python.org/pypi/natlas-libnmap/
rpm_license: Creative Common "Attribution" license (CC-BY) v3
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-9d926dab-1972-4b87-8f0f-cf6708131bbf
location_href: 00004272-python-natlas-libnmap/python-natlas-libnmap-0.7.1-1.src.rpm
checksum_type: sha256
description:
  [![Maintainability](https://api.codeclimate.com/v1/badges/9f7ca0cbe454b240f660/maintainability)](https://codeclimate.com/github/natlas/natlas-libnmap/maintainability)
  [![Release](https://img.shields.io/github/release/natlas/natlas-libnmap.svg)](https://github.com/natlas/natlas-libnmap/releases/latest)
  ![Last Commit](https://img.shields.io/github/last-commit/natlas/natlas-libnmap.svg)
  ![Total Downloads](https://img.shields.io/github/downloads/natlas/natlas-libnmap/total.svg)
  ![Code Size](https://img.shields.io/github/languages/code-size/natlas/natlas-libnmap.svg)
  [![Contributors](https://img.shields.io/github/contributors/natlas/natlas-libnmap.svg)](https://github.com/natlas/natlas-libnmap/graphs/contributors)



  This repo originated as a fork of [python-libnmap] after several months of unresponsiveness regarding fixing an XML parsing vulnerability. It has been simplified to focus purely on parsing nmap results and doing diffs on pairs of scans. The backend functionality has been removed, as has the nmap process management functionality. By removing this extraneous functionality, we can focus on making the parsing functionality the best at what it does without worrying about updating support for various backends.



  libnmap is a python library enabling python developers to manipulate nmap data.

  libnmap is what you were looking for if you need to implement the following:

  * manipulate nmap scans results to do reporting
  * compare and diff nmap scans to generate graphs
  * batch process scan reports

  The above uses cases will be easy to implement with the help of the libnmap modules.



  The lib currently offers the following modules:

  * **parse**: enables you to parse nmap XML reports from a file, a string,...
  * **report**: enables you to manipulate a parsed scan result and de/serialize scan results in a json format
  * **diff**: enables you to see what changed between two scans
  * **common**: contains basic nmap objects like NmapHost and NmapService. It is to note that each object can be "diff()ed" with another similar object.



  All the documentation is available on [read the docs]. This documentation contains small code samples that you directly reuse.



  libnmap dependencies are captured in [Pipfile](Pipfile).



  The old version of libnmap supported many versions of python going back to 2.7. Since python 2.7 is no longer supported, this library will only support Python >= 3.6.

  * Python 3.6
  * Python 3.7
  * Python 3.8



  This version of libnmap has not been packaged for distribution on pypi as of yet. In the meantime, you can install it with pip directly from the git repo like so:

  ```bash
  pip install git+https://github.com/natlas/natlas-libnmap
  ```

  or via git:

  ```bash
  git clone https://github.com/natlas/natlas-libnmap.git
  cd natlas-libnmap
  python setup.py install
  ```



  Some codes samples are available in the examples directory or in the [documentation].



  Ronald "[savon-noir]" Bister for the original work on python-libnmap.

  [savon-noir]: https://github.com/savon-noir
  [python-libnmap]: https://github.com/savon-noir/python-libnmap
  [read the docs]: https://libnmap.readthedocs.org
  [documentation]: https://libnmap.readthedocs.org


pkgId: 2547ad502cee22e360e6f8b601393384dcc66d4c68e341f9db6cabd6c068f15d
name: python-natsort
arch: src
version: 8.3.1
epoch: 0
release: 1
summary: Simple yet flexible natural sorting in Python.
url: https://github.com/SethMMorton/natsort
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-3bdeb068-fdc4-4b68-b2ff-dabccae4f2d5
location_href: 00004273-python-natsort/python-natsort-8.3.1-1.src.rpm
checksum_type: sha256
description:
  Simple yet flexible natural sorting in Python.
      - Source Code: https://github.com/SethMMorton/natsort
      - Downloads: https://pypi.org/project/natsort/
      - Documentation: https://natsort.readthedocs.io/
        - `Examples and Recipes`_
        - `How Does Natsort Work?`_
        - `API`_
      - `Quick Description`_
      - `Quick Examples`_
      - `FAQ`_
      - `Requirements`_
      - `Optional Dependencies`_
      - `Installation`_
      - `How to Run Tests`_
      - `How to Build Documentation`_
      - `Dropped Deprecated APIs`_
      - `History`_
  **NOTE**: Please see the `Dropped Deprecated APIs`_ section for changes.


pkgId: 59c5133d7a80e900c16fce3b1c9babf8f2574aa4fed165bcf70f22f9dd5e4c45
name: python-natural
arch: src
version: 0.2.0
epoch: 0
release: 1
summary: Convert data to their natural (human-readable) format
url: https://github.com/tehmaze/natural
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-9aa0c158-1c3d-4330-a1af-a5d1145c246b
location_href: 00011850-python-natural/python-natural-0.2.0-1.src.rpm
checksum_type: sha256
description:
  Basic usage::
      >>> from natural.file import accessed
      >>> print accessed(__file__)
      just now
  We speak your language (with `your support`_)::
      >>> import locale
      >>> locale.setlocale(locale.LC_MESSAGES, 'nl_NL')
      >>> print accessed(__file__)
      zojuist


pkgId: b60620bdbe337e12dbb2e2f233e2b6e526e2ef8d353cba238917a44b4e3617fa
name: python-nbdime
arch: src
version: 3.1.1
epoch: 0
release: 1
summary: Diff and merge of Jupyter Notebooks
url: https://nbdime.readthedocs.io
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-96b392ee-0675-482d-92bd-0d48bcbb9003
location_href: 00010689-python-nbdime/python-nbdime-3.1.1-1.src.rpm
checksum_type: sha256
description:
  **[Installation](#installation)** |
  **[Documentation](#documentation)** |
  **[Contributing](#contributing)** |
  **[Development Install](#development-install)** |
  **[Testing](#testing)** |
  **[License](#license)** |
  **[Getting help](#getting-help)**



  [![Build Status](https://travis-ci.org/jupyter/nbdime.svg?branch=master)](https://travis-ci.org/jupyter/nbdime)
  [![codecov.io](https://codecov.io/github/jupyter/nbdime/coverage.svg?branch=master)](https://codecov.io/github/jupyter/nbdime?branch=master)
  [![Documentation Status](https://readthedocs.org/projects/nbdime/badge/?version=latest)](http://nbdime.readthedocs.io/en/latest/?badge=latest)
  [![Google Group](https://img.shields.io/badge/-Google%20Group-lightgrey.svg)](https://groups.google.com/forum/#!forum/jupyter)

  `nbdime` provides tools for diffing and merging of [Jupyter Notebooks](https://jupyter-notebook.readthedocs.io).

  - `nbdiff` compare notebooks in a terminal-friendly way
  - `nbmerge` three-way merge of notebooks with automatic conflict resolution
  - `nbdiff-web` shows you a rich rendered diff of notebooks
  - `nbmerge-web` gives you a web-based three-way merge tool for notebooks
  - `nbshow` present a single notebook in a terminal-friendly way

  Diffing notebooks in the terminal:

  ![terminal-diff](https://github.com/jupyter/nbdime/raw/3.1.1/docs/source/images/nbdiff-terminal.png)

  Merging notebooks in a browser:

  ![web-merge](https://github.com/jupyter/nbdime/raw/3.1.1/docs/source/images/nbmerge-web.png)



  Install nbdime with pip:

      pip install nbdime

  See [the installation docs](https://nbdime.readthedocs.io/en/latest/installing.html) for more installation details and development installation instructions.



  See the latest documentation at https://nbdime.readthedocs.io.

  See also description and discussion in the [Jupyter Enhancement Proposal](https://github.com/jupyter/enhancement-proposals/pull/8).



  If you would like to contribute to the project, please read our [contributor documentation](http://jupyter.readthedocs.io/en/latest/contributor/content-contributor.html) and the [`CONTRIBUTING.md`](CONTRIBUTING.md).



  To install a development version of nbdime, you will need [npm installed](https://nodejs.org/en/download/) and available on your PATH while installing.

  For a **development install**, enter on the command line:

  ```bash
  pip install -e git+https://github.com/jupyter/nbdime#egg=nbdime
  ```

  See [installation](https://nbdime.readthedocs.io/en/latest/installing.html#installing-latest-development-version) documentation for additional detail, particularly related to performing
  a dev install for working on the browser script code.



  Install the test requirements:

      pip install nbdime[test]

  To run Python tests locally, enter on the command line: `pytest`

  To run Javascript tests locally, enter: `npm test`

  Install the [codecov browser extension](https://github.com/codecov/browser-extension#codecov-extension) to view test coverage in the source browser on github.

  See [testing](https://nbdime.readthedocs.io/en/latest/testing.html) documentation for additional detail.



  We use a shared copyright model that enables all contributors to maintain the
  copyright on their contributions.

  All code is licensed under the terms of the revised BSD license.



  We encourage you to ask questions on the [mailing list](https://groups.google.com/forum/#!forum/jupyter).



  - [Reporting Issues](https://github.com/jupyter/nbdime/issues)
  - [Documentation for nbdime](https://nbdime.readthedocs.io/en/latest/) | [PDF (latest)](https://media.readthedocs.org/pdf/nbdime/latest/nbdime.pdf)

  - [Documentation for Project Jupyter](https://jupyter.readthedocs.io/en/latest/index.html) | [PDF](https://media.readthedocs.org/pdf/jupyter/latest/jupyter.pdf)
  - [Project Jupyter website](https://jupyter.org)


pkgId: 921226ff826e7166c7df9fa59e92e476d311f475e871d20dd6e8fd37523a1aad
name: python-nbsphinx
arch: src
version: 0.8.12
epoch: 0
release: 1
summary: Jupyter Notebook Tools for Sphinx
url: https://nbsphinx.readthedocs.io/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-8a24154a-a12d-4cfc-b7cd-14ab5773ba17
location_href: 00004278-python-nbsphinx/python-nbsphinx-0.8.12-1.src.rpm
checksum_type: sha256
description:
  ``nbsphinx`` is a Sphinx_ extension that provides a source parser for
  ``*.ipynb`` files.
  Custom Sphinx directives are used to show `Jupyter Notebook`_ code cells (and of
  course their results) in both HTML and LaTeX output.
  Un-evaluated notebooks -- i.e. notebooks without stored output cells -- will be
  automatically executed during the Sphinx build process.
  Quick Start:
      
      
      
         to the ``toctree``.
      
  Online documentation (and example of use):
      https://nbsphinx.readthedocs.io/
  Source code repository (and issue tracker):
      https://github.com/spatialaudio/nbsphinx/
  License:
      MIT -- see the file ``LICENSE`` for details.


pkgId: 26003860206ed0e74d03009d7c28df63a3e15f6e399979220a68e01961d1cf10
name: python-nbstripout
arch: src
version: 0.6.1
epoch: 0
release: 1
summary: Strips outputs from Jupyter and IPython notebooks
url: https://github.com/kynan/nbstripout
rpm_license: License :: OSI Approved :: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-890315d0-3557-4354-8c90-94b15dff42bf
location_href: 00010734-python-nbstripout/python-nbstripout-0.6.1-1.src.rpm
checksum_type: sha256
description:
  As of version 0.6.1, nbstripout supports Python 3 *only*. If you need to use
  Python 2.7, install nbstripout 0.3.10 ::
      pip install nbstripout==0.3.10


pkgId: b2e83fd772c0cec58b54fc72597bed6ac86033d417fd26c51fc548d1dd1a2f79
name: python-ncclient
arch: src
version: 0.6.13
epoch: 0
release: 1
summary: Python library for NETCONF clients
url: https://github.com/ncclient/ncclient
rpm_license: Apache 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e6108a12-bc94-437d-ad90-b71e781f8350
location_href: 00011150-python-ncclient/python-ncclient-0.6.13-1.src.rpm
checksum_type: sha256
description:
  ncclient is a Python library that facilitates client-side scripting and
  application development around the NETCONF protocol. ``ncclient`` was
  developed by `Shikar Bhushan <http://schmizz.net>`. It is now
  maintained by `Leonidas Poulopoulos (@leopoul) <http://ncclient.org>`
  and `Einar Nilsen-Nygaard (@einarnn)`.
  Docs:
  `http://ncclient.readthedocs.org <http://ncclient.readthedocs.org>`_
  Github:
  `https://github.com/ncclient/ncclient <https://github.com/ncclient/ncclient>`_
  Requirements:
  ^^^^^^^^^^^^^
  -  Python 2.7 or Python 3.4+
  -  setuptools 0.6+
  -  Paramiko 1.7+
  -  lxml 3.3.0+
  -  libxml2
  -  libxslt
  If you are on Debian/Ubuntu install the following libs (via aptitude or
  apt-get):
  -  libxml2-dev
  -  libxslt1-dev
  Installation:
  ^^^^^^^^^^^^^
      [ncclient] $ sudo python setup.py install
  or via pip:
      pip install ncclient
  Examples:
  ^^^^^^^^^
      [ncclient] $ python examples/juniper/*.py
  Usage
  ~~~~~
  Get device running config
  '''''''''''''''''''''''''
  Use either an interactive Python console (ipython) or integrate the
  following in your code:
      from ncclient import manager
      with manager.connect(host=host, port=830, username=user, hostkey_verify=False) as m:
          c = m.get_config(source='running').data_xml
          with open("%s.xml" % host, 'w') as f:
              f.write(c)
  As of 0.4.1 ncclient integrates Juniper's and Cisco's forks, lots of new concepts
  have been introduced that ease management of Juniper and Cisco devices respectively.
  The biggest change is the introduction of device handlers in connection paramms.
  For example to invoke Juniper's functions annd params one has to re-write the above with
  **device\_params={'name':'junos'}**:
      from ncclient import manager
      with manager.connect(host=host, port=830, username=user, hostkey_verify=False, device_params={'name':'junos'}) as m:
          c = m.get_config(source='running').data_xml
          with open("%s.xml" % host, 'w') as f:
              f.write(c)
  Device handlers are easy to implement and prove to be futureproof.
  Supported device handlers
  '''''''''''''''''''''''''
  * Juniper: `device_params={'name':'junos'}`
  * Cisco:
      - CSR: `device_params={'name':'csr'}`
      - Nexus: `device_params={'name':'nexus'}`
      - IOS XR: `device_params={'name':'iosxr'}`
      - IOS XE: `device_params={'name':'iosxe'}`
  * Huawei:
      - `device_params={'name':'huawei'}`
      - `device_params={'name':'huaweiyang'}`
  * Nokia SR OS: `device_params={'name':'sros'}`
  * H3C: `device_params={'name':'h3c'}`
  * HP Comware: `device_params={'name':'hpcomware'}`
  * Server or anything not in above: `device_params={'name':'default'}`
  Changes \| brief
  ~~~~~~~~~~~~~~~~
  **v0.6.12**
  * Fix for accidental breakage of Juniper ExecuteRPC support
  **v0.6.11**
  * Support for custom client capabilities
  * Restructuring/refactoring of example scripts
  * Minor bugfixes
  * Minor unit test refactoring
  **v0.6.10**
  * NETCONF call-home (RFC8071) support
  * YANG 1.1 `action` support
  * Nokia SR OS device handler support
  * Removal of old ALU base-r13 API documentation
  * Increased test coverage
  * Variety of bugfixes and minor enhancements from a variety of contributors since 0.6.9 (see commit history)
  * Thanks to all contributors!
  **v0.6.9**
  * Fix for breaking API change
  **v0.6.8**
  * Pulled due to accidental breaking API change
  * Variety of small updates and bugfixes, but of note:
      - Support for namespace prefixes for XPath queries
      - `edit-config` parameter validation
      - Support for multiple RPC errors
      - API to get supported device types
      - Support for subtree filters with multiple top-level tags
  * Thanks to all contributors!
  **v0.6.7**
  - Variety of bugfixes from a variety of contributors since 0.6.6 (see commit history)
  **v0.6.6**
  - Read ssh timeout from config file if not specified in method call
  - Tox support
  - Huge XML tree parser support
  - Adding optional bind address to connect
  **v0.6.5**
  - Updated README for 0.6.5 release
  **v0.6.4**
  - Pin selectors2 to Python versions <= 3.4
  - Fix config examples to actually use the nc namespace
  - Fix: correctly set port for paramiko when using ssh_config file
  - Test: add test to check ProxyCommand uses correct port
  - Update commits for py3
  - Enhance Alcatel-Lucent-support
  - Juniper RPC: allow specifying format in CompareConfiguration
  - Parsing of NETCONF 1.1 frames no longer decodes each chunk of bytes
  - Fix filter in create_subscription
  - Validate 'with-defaults' mode based on supported modes advertised in capability URI
  **v0.6.3**
  - Fix homepage link registered with PyPi
  - SSH Host Key checking
  - Updated junos.py to resolve RestrictedUser error
  - Close the channel when closing SSH session
  - Invoke self.parse() to ensure errors, if any, have been detected before check in ok()
  **v0.6.2**
  - Migration to user selectors instead of select, allowing higher scale operations
  - Improved netconf:base:1.1 parsing
  - Graceful exit on session close
  **v0.6.0**
  - Fix use of new Python 3.7 keyword, async
  - Re-enable Python 3.7
  **v0.5.4**
  - Rollup of minor changes since 0.5.3
  - Disablement of Python 3.7 due to async keyword issue
  **v0.5.3**
  - Add notifications support
  - Add support for ecdsa keys
  - Various bug fixes
  **v0.5.2**
  - Add support for Python 3
  - Improve Junos ioproc performance
  - Performance improvements
  - Updated test cases
  - Many bug and performance fixes
  **v0.4.7**
  - Add support for netconf 1.1
  **v0.4.6**
  - Fix multiple RPC error generation
  - Add support for cancel-commit and persist param
  - Add more examples
  **v0.4.5**
  - Add Huawei device support
  - Add cli command support for hpcomware v7 devices
  - Add H3C support, Support H3C CLI,Action,Get_bulk,Save,Rollback,etc.
  - Add alcatel lucent support
  - Rewrite multiple error handling
  - Add coveralls support, with shield in README.md
  - Set severity level to higher when multiple
  - Simplify logging and multi-error reporting
  - Keep stacktrace of errors
  - Check for known hosts on hostkey_verify only
  - Add check for device sending back null error_text
  - Fix RPC.raise_mode
  - Specifying hostkey_verify=False should not load_known_hosts
  - Check the correct field on rpc-error element
  **v0.4.3**
  - Nexus exec_command operation
  - Allow specifying multiple cmd elements in Cisco Nexus
  - Update rpc for nested rpc-errors
  - Prevent race condition in threading
  - Prevent hanging in session close
  **v0.4.2**
  - Support for paramiko ProxyCommand via ~/.ssh/config parsing
  - Add Juniper-specific commit operations
  - Add Huawei devices support
  - Tests/Travis support
  - ioproc transport support for Juniper devices
  - Update Cisco CSR device handler
  - Many minor and major fixes
  **v0.4.1**
  -  Switch between replies if custom handler is found
  -  Add Juniper, Cisco and default device handlers
  -  Allow preferred SSH subsystem name in device params
  -  Allow iteration over multiple SSH subsystem names.
  Acknowledgements
  ~~~~~~~~~~~~~~~~
  -  v0.6.11: @musicinmybrain, @sstancu, @earies
  -  v0.6.10: @vnitinv, @omaxx, @einarnn, @musicinmybrain, @tonynii, @sstancu, Martin Volf, @fredgan, @avisom, Viktor Velichkin, @ogenstad, @earies
  -  v0.6.9: [Fred Gan](https://github.com/fredgan)
  -  v0.6.8: [Fred Gan](https://github.com/fredgan), @vnitinv, @kbijakowski, @iwanb, @badguy99, @liuyong, Andrew Mallory, William Lvory
  -  v0.6.7: @vnitinv, @chaitu-tk, @sidhujasminder, @crutcha, @markgoddard, @ganeshrn, @songxl, @doesitblend, @psikala, @xuxiaowei0512, @muffizone
  -  v0.6.6: @sstancu, @hemna, @ishayansheikh
  -  v0.6.4: @davidhankins, @mzagozen, @knobix, @markafarrell, @psikala, @moepman, @apt-itude, @yuekyang
  -  v0.6.3: @rdkls, @Anthony25, @rsmekala, @vnitinv, @siming85
  -  v0.6.2: @einarnn, @glennmatthews, @bryan-stripe, @nickylba
  -  v0.6.0: `Einar Nilsen-Nygaard`_
  -  v0.5.4: Various
  -  v0.5.3: `Justin Wilcox`_, `Stacy W. Smith`_, `Mircea Ulinic`_,
     `Ebben Aries`_, `Einar Nilsen-Nygaard`_, `QijunPan`_
  -  v0.5.2: `Nitin Kumar`_, `Kristian Larsson`_, `palashgupta`_,
     `Jonathan Provost`_, `Jainpriyal`_, `sharang`_, `pseguel`_,
     `nnakamot`_, `Алексей Пастухов`_, `Christian Giese`_, `Peipei Guo`_,
     `Time Warner Cable Openstack Team`_
  -  v0.4.7: `Einar Nilsen-Nygaard`_, `Vaibhav Bajpai`_, Norio Nakamoto
  -  v0.4.6: `Nitin Kumar`_, `Carl Moberg`_, `Stavros Kroustouris`_
  -  v0.4.5: `Sebastian Wiesinger`_, `Vincent Bernat`_, `Matthew Stone`_,
     `Nitin Kumar`_
  -  v0.4.3: `Jeremy Schulman`_, `Ray Solomon`_, `Rick Sherman`_,
     `subhak186`_
  -  v0.4.2: `katharh`_, `Francis Luong (Franco)`_, `Vincent Bernat`_,
     `Juergen Brendel`_, `Quentin Loos`_, `Ray Solomon`_, `Sebastian
     Wiesinger`_, `Ebben Aries`_
  -  v0.4.1: `Jeremy Schulman`_, `Ebben Aries`_, Juergen Brendel


pkgId: baa9146bd1345babf3064e6d0a35afa5850a674c39873d586e43c2409b4fadb3
name: python-ndjson-testrunner
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: A test runner that outputs newline delimited JSON results
url: https://github.com/flying-sheep/ndjson-testrunner
rpm_license: GPL
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-65df673f-cdb4-4551-a104-e3c790f26dfb
location_href: 00004280-python-ndjson-testrunner/python-ndjson-testrunner-1.0.0-1.src.rpm
checksum_type: sha256
description:
  A unittest_ ``TestRunner`` that outputs ndjson_. One JSON record per test result::
  	{
  		"type": "success" | "expected_failure" | "failure" | "error" | "unexpected_success" | "skip",
  		"id":   "module.TestClass.test_function",
  		"desc": null | "First line of test function docstring",
  		"msg":  null | "Exception traceback or reason for skipping"
  	}
  To be used for test result storage or interprocess communication.


pkgId: b800082ca9e8babecb85ee9d1ab1f2f2ae8485763b83efa328bdbf3b5eb5b8d4
name: python-neo
arch: src
version: 0.12.0
epoch: 0
release: 1
url: https://pypi.org/project/neo/
rpm_license: BSD 3-Clause License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d06d2394-1661-4440-95a1-576c8ba4a597
location_href: 00004281-python-neo/python-neo-0.12.0-1.src.rpm
checksum_type: sha256
summary:
  Neo is a package for representing electrophysiology data in Python, together with support for reading a wide range of neurophysiology file formats


pkgId: f4196a020341428284c64e27cd31061dea1c80eead882dc3d3acab7126f36f08
name: python-neo4j-driver
arch: src
version: 5.6.0
epoch: 0
release: 1
summary: Neo4j Bolt driver for Python
url: https://github.com/neo4j/neo4j-python-driver
rpm_license: Apache License, Version 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-66e77b00-8cc5-4dd7-9f59-ba657a8e95eb
location_href: 00004282-python-neo4j-driver/python-neo4j-driver-5.6.0-1.src.rpm
checksum_type: sha256
description:
  To install the latest stable version, use:
      pip install neo4j
      ``neo4j-driver`` is the old name for this package. It is now deprecated and
      and will receive no further updates starting with 6.0.0. Make sure to
      install ``neo4j`` as shown above.


pkgId: 302646f606c2d3953ae754f0426e0f8cf32a2c27fd65c667740bcf39066b6f10
name: python-nessus-file-reader
arch: src
version: 0.4.2
epoch: 0
release: 1
url: https://github.com/LimberDuck/nessus-file-reader
rpm_license: GPLv3
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f964d3c0-b974-420a-af31-bb2c223aad6b
location_href: 00004285-python-nessus-file-reader/python-nessus-file-reader-0.4.2-1.src.rpm
checksum_type: sha256
summary:
  nessus file reader by LimberDuck is a CLI tool and python module created to quickly parse nessus files containing the results of scans performed by using Nessus by (C) Tenable, Inc.

description:
  scan_avrx9t.nessus  test scan        1     1     1   48  182  126   15   38
  ```
  ```commandline
  nfr scan --scan-summary-legend
  nessus file reader by LimberDuck 0.4.2
  Legend for scan summary:
  File name - nessus file name
  Report name - report name for given nessus file name
  TH - number of target hosts
  SH - number of scanned hosts
  CC - number of hosts scanned with credentials (Credentialed checks yes in Plugin ID 19506)
  C - number of plugins with Critical risk factor for whole scan
  H - number of plugins with High risk factor for whole scan
  M - number of plugins with Medium risk factor for whole scan
  L - number of plugins with Low risk factor for whole scan
  N - number of plugins with None risk factor for whole scan
  ```

  See policy scan summary of given file/-s or all files in given directory and it's subdirectories:
  ```commandline
  nfr scan --policy-summary scan_ihc1js.nessus scan_avrx9t.nessus
  nessus file reader by LimberDuck 0.4.2


pkgId: ff510dbdf56aa388613d033206505bb73e8b7dfd40205c329342a64723ae45b0
name: python-nest
arch: src
version: 0.4.1
epoch: 0
release: 1
summary: NeST: Network Stack Tester
url: https://nest.nitk.ac.in/
rpm_license: GNU General Public License v2 (GPLv2)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-5fc46b66-c063-4df5-9160-99b71f308fe9
location_href: 00004286-python-nest/python-nest-0.4.1-1.src.rpm
checksum_type: sha256
description:
  [![pipeline status](https://gitlab.com/nitk-nest/nest/badges/master/pipeline.svg)](https://gitlab.com/nitk-nest/nest/-/commits/master)

  `NeST` is a python3 package that handles testbed setup, testbed configuration,
  collecting and visualizing data by providing a user friendly API, addressing
  common issues involved in conducting networking experiments.

  The [paper](https://dl.acm.org/doi/abs/10.1145/3404868.3406670) introducing
  NeST was accepted at [ANRW'20](https://irtf.org/anrw/2020/).

  `NeST` source code repository is maintained at [GitLab](https://gitlab.com/nitk-nest/nest).

  **NOTE**: NeST is currently in beta stage.



  Instructions to install `NeST` can be found in
  [install.rst](https://gitlab.com/nitk-nest/nest/-/blob/master/docs/source/user/install.rst).



  Several examples, that explain the basic APIs and features of NeST, are
  available in the [examples directory](https://gitlab.com/nitk-nest/nest/-/tree/master/examples).



  The documentation of NeST APIs can be read online at:
  [https://nest.nitk.ac.in/docs/](https://nest.nitk.ac.in/docs/)

  Instructions for generating/building the API documentation can be found in
  [docs/README.md](https://gitlab.com/nitk-nest/nest/-/blob/master/docs/README.md) folder.



  Tests can be found in `nest/tests` folder.
  Run the below command in the repo's root folder to run the tests.

  ```shell
  sudo python3 -m unittest -v
  ```

  **NOTE**: NeST requires **root** access currently to create and manage network namespaces.



  To contribute, read [CONTRIBUTING.md](https://gitlab.com/nitk-nest/nest/-/blob/master/CONTRIBUTING.md)


pkgId: 8e3abebc451985c33205643f72f55f7d388377e0ca100bbe7efc5454b29bca49
name: python-nest-asyncio
arch: src
version: 1.5.6
epoch: 0
release: 1
summary: Patch asyncio to allow nested event loops
url: https://github.com/erdewit/nest_asyncio
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-4c97991e-6557-46bd-b9cc-ead0ab18ffbb
location_href: 00004289-python-nest_asyncio/python-nest-asyncio-1.5.6-1.src.rpm
checksum_type: sha256
description:
  By design asyncio `does not allow <https://bugs.python.org/issue22239>`_
  its event loop to be nested. This presents a practical problem:
  When in an environment where the event loop is
  already running it's impossible to run tasks and wait
  for the result. Trying to do so will give the error
  "``RuntimeError: This event loop is already running``".
  The issue pops up in various environments, such as web servers,
  GUI applications and in Jupyter notebooks.
  This module patches asyncio to allow nested use of ``asyncio.run`` and
  ``loop.run_until_complete``.


pkgId: d08159e1770d2cb6f3725f8dd2c7559a08cddcbeaef3fcdd34d5e0dfd598bc4f
name: python-netCDF4
arch: src
version: 1.6.3
epoch: 0
release: 1
summary: Provides an object-oriented python interface to the netCDF version 4 library
url: https://pypi.org/project/netCDF4/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0a090879-703c-4eb3-9d45-99010f52399a
location_href: 00004291-python-netcdf4/python-netCDF4-1.6.3-1.src.rpm
checksum_type: sha256
description:
  netCDF version 4 has many features not found in earlier versions of the library,
  such as hierarchical groups, zlib compression, multiple unlimited dimensions,
  and new data types.  It is implemented on top of HDF5.  This module implements
  most of the new features, and can read and write netCDF files compatible with
  older versions of the library.  The API is modelled after Scientific.IO.NetCDF,
  and should be familiar to users of that module.


pkgId: 1b7c449d9c5f25060a0f248f02a92a934c585fc56cbed43e2993843ebdfdc439
name: python-netaddr
arch: src
version: 0.8.0
epoch: 0
release: 1
summary: A network address manipulation library for Python
url: https://github.com/drkjam/netaddr/
rpm_license: BSD License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-79368fe7-09c3-458f-862a-eb71f3b550e1
location_href: 00009277-python-netaddr/python-netaddr-0.8.0-1.src.rpm
checksum_type: sha256
description:
  A system-independent network address manipulation library for Python 2.7 and 3.5+.
  (Python 2.7 and 3.5 support is deprecated).
  Provides support for:
  Layer 3 addresses
  -  IPv4 and IPv6 addresses, subnets, masks, prefixes
  -  iterating, slicing, sorting, summarizing and classifying IP networks
  -  dealing with various ranges formats (CIDR, arbitrary ranges and
     globs, nmap)
  -  set based operations (unions, intersections etc) over IP addresses
     and subnets
  -  parsing a large variety of different formats and notations
  -  looking up IANA IP block information
  -  generating DNS reverse lookups
  -  supernetting and subnetting
  Layer 2 addresses
  -  representation and manipulation MAC addresses and EUI-64 identifiers
  -  looking up IEEE organisational information (OUI, IAB)
  -  generating derived IPv6 addresses
  Starting with Python 3.3 there's an `ipaddress <https://docs.python.org/3/library/ipaddress.html>`_
  module in the Python standard library which provides layer 3 address manipulation
  capabilities overlapping ``netaddr``.


pkgId: 2559a9c44bf64f5a99240b46d0dba26a950c841b907e38a26b91b46e0d2cc4d8
name: python-netconan
arch: src
version: 0.12.3
epoch: 0
release: 1
summary: Netconan network configuration anonymization utilities
url: https://github.com/intentionet/netconan
rpm_license: Apache License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-84902b2e-08c1-407e-b684-708145c0e170
location_href: 00013725-python-netconan/python-netconan-0.12.3-1.src.rpm
checksum_type: sha256
description:
  Netconan (network configuration anonymizer) anonymizes text files that contain sensitive network information.
  With Netconan, a sensitive input file
      $ cat sensitive/cisco.cfg
      ! This is intentionet's sensitive comment
      username admin password 7 122A001901
      enable secret 5 $1$wtHI$0rN7R8PKwC30AsCGA77vy.
      !
      tacacs-server host 1.2.3.4 key pwd1234
      ip address 10.10.20.30/24
      ip address 2001:2002::9d3b:1
      !
      route-map sea-to-lax ...
      route-map sea-to-atl ...
  can be anonymized
      $ netconan -i sensitive -o anonymized \
          --sensitive-words intentionet,sea,lax,atl \
          --anonymize-passwords \
          --anonymize-ips
      WARNING No salt was provided; using randomly generated "WNo5pX28MJOrqxfv"
      INFO Anonymizing cisco.cfg
  to produce an output file you can feel comfortable sharing.
      $ cat anonymized/cisco.cfg
      ! This is db1792's sensitive comment
      username admin password 7 09424B1D1A0A1913053E012724322D3765
      enable secret 5 $1$0000$EhfXcDfB7iiakW6mwMy1i.
      !
      tacacs-server host 7.227.130.88 key netconanRemoved2
      ip address 10.72.218.183/24
      ip address cd7e:83e:1eaf:2ada:7535:591e:6d47:a4b8
      !
      route-map e69ceb-to-880ac2 ...
      route-map e69ceb-to-5d37ad ...


pkgId: be40a18efe660eb72d61662d8d4a1e6887d20d9c5a9651b9b15581ac86afb92a
name: python-netdata
arch: src
version: 1.0.3
epoch: 0
release: 1
summary: Python API for interacting with Netdata
url: https://github.com/home-assistant-ecosystem/python-netdata
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-bff304f1-837e-4cc6-9e1e-e429b87db302
location_href: 00004292-python-netdata/python-netdata-1.0.3-1.src.rpm
checksum_type: sha256
description:
  Python API for interacting with `Netdata <https://my-netdata.io/>`_. Currently
  are the ``data``, the ``allmetrics`` and the ``alarms`` endpoint supported.
  This module is not official, developed, supported or endorsed by Netdata.


pkgId: c21a3e087aa96c37e100c06697394ae4218e0eaff16f39380d430d0b8bc000a6
name: python-netdisco
arch: src
version: 3.0.0
epoch: 0
release: 1
summary: Discover devices on your local network
url: https://github.com/home-assistant/netdisco
rpm_license: Apache License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-13ba73c9-9c15-480f-b593-34a7968400b8
location_href: 00004293-python-netdisco/python-netdisco-3.0.0-1.src.rpm
checksum_type: sha256
description:
  NetDisco is a Python 3 library to discover local devices and services. It allows to scan on demand or offer a service that will scan the network in the background in a set interval.

  Current methods of scanning:

   - mDNS (includes Chromecast, Homekit)
   - uPnP
   - Plex Media Server using Good Day Mate protocol
   - Logitech Media Server discovery protocol
   - Daikin discovery protocol
   - Web OS discovery protocol

  It is the library that powers the device discovery within [Home Assistant](https://home-assistant.io/).





  Netdisco is available on PyPi. Install using `pip3 install netdisco`.



  From command-line:

  ```bash
  python3 -m netdisco

  python3 -m netdisco dump
  ```

  In your script:

  ```python
  from netdisco.discovery import NetworkDiscovery

  netdis = NetworkDiscovery()

  netdis.scan()

  for dev in netdis.discover():
      print(dev, netdis.get_info(dev))

  netdis.stop()
  ```

  Will result in a list of discovered devices and their most important information:

  ```
  DLNA ['http://192.168.1.1:8200/rootDesc.xml', 'http://192.168.1.150:32469/DeviceDescription.xml']
  google_cast [('Living Room.local.', 8009)]
  philips_hue ['http://192.168.1.2:80/description.xml']
  belkin_wemo ['http://192.168.1.10:49153/setup.xml']
  ```


pkgId: 20eed1e82ebd1617eeaf3175f1808b4aeeb9d5040713d0813075eccb5b2c860c
name: python-netifaces
arch: src
version: 0.11.0
epoch: 0
release: 1
summary: Portable network interface information.
url: https://github.com/al45tair/netifaces
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-dad76bcb-6aa4-47d8-bf82-d689eeb2b986
location_href: 00009420-python-netifaces/python-netifaces-0.11.0-1.src.rpm
checksum_type: sha256
description:
  +-------------+------------------+
  | Linux/macOS | |BuildStatus|    |
  +-------------+------------------+
  | Windows     | |WinBuildStatus| |
  +-------------+------------------+
     netifaces needs a new maintainer.  al45tair is no longer able to maintain it
     or make new releases due to work commitments.


pkgId: 29ca49f4efcf1887c0b2e5a1fffa2a373709169fdbbe2d1d68409616cd06580a
name: python-netifaces-debuginfo
arch: aarch64
version: 0.11.0
epoch: 0
release: 1
summary: Debug information for package python-netifaces
url: https://github.com/al45tair/netifaces
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-dad76bcb-6aa4-47d8-bf82-d689eeb2b986
rpm_sourcerpm: python-netifaces-0.11.0-1.src.rpm
location_href: 00009420-python-netifaces/python-netifaces-debuginfo-0.11.0-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug information for package python-netifaces.
  Debug information is useful when developing applications that use this
  package or when debugging this package.


pkgId: 3c3b33bd22124f70b73c6ace7fa78378667dd0f52a9ab60acaadd1d1df9e7f4a
name: python-netifaces-debugsource
arch: aarch64
version: 0.11.0
epoch: 0
release: 1
summary: Debug sources for package python-netifaces
url: https://github.com/al45tair/netifaces
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-dad76bcb-6aa4-47d8-bf82-d689eeb2b986
rpm_sourcerpm: python-netifaces-0.11.0-1.src.rpm
location_href: 00009420-python-netifaces/python-netifaces-debugsource-0.11.0-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug sources for package python-netifaces.
  Debug sources are useful when developing applications that use this
  package or when debugging this package.


pkgId: a968b195914317cfbd5899163027d16ecbec36d21455f4c1c83912d9a91dd6ce
name: python-netmiko
arch: src
version: 4.1.2
epoch: 0
release: 1
summary: Multi-vendor library to simplify legacy CLI connections to network devices
url: https://github.com/ktbyers/netmiko
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0b1383b9-2793-4cf5-94a6-35e77889ee6c
location_href: 00004297-python-netmiko/python-netmiko-4.1.2-1.src.rpm
checksum_type: sha256
description:
  Multi-vendor library to simplify CLI connections to network devices
  <br />

  Network automation to screen-scraping devices is primarily concerned with gathering output from show commands and with making configuration changes.
  Netmiko aims to accomplish both of these operations and to do it across a very broad set of platforms. It seeks to do this while abstracting away low-level state control (i.e. eliminate low-level regex pattern matching to the extent practical).
  <br />

  - [Getting Started](#getting-started-1)
  <br />

  *You really should look here.*
  - [Netmiko Examples](https://github.com/ktbyers/netmiko/blob/develop/EXAMPLES.md)
  <br />

  [PLATFORMS](PLATFORMS.md)
  <br />

  To install netmiko, simply us pip:
  ```
  $ pip install netmiko
  ```
  <br />

  [API-Documentation](https://ktbyers.github.io/netmiko/#api-documentation)
  <br />

  Answers to some [common questions](COMMON_ISSUES.md)
  <br />

  - [Netmiko Overview](https://pynet.twb-tech.com/blog/automation/netmiko.html)
  - [Secure Copy](https://pynet.twb-tech.com/blog/automation/netmiko-scp.html)
  - [Netmiko through SSH Proxy](https://pynet.twb-tech.com/blog/automation/netmiko-proxy.html)
  - [Netmiko and TextFSM](https://pynet.twb-tech.com/blog/automation/netmiko-textfsm.html)
  - [Netmiko and what constitutes done](https://pynet.twb-tech.com/blog/automation/netmiko-what-is-done.html)
  <br />


  Supported device_types can be found in [ssh_dispatcher.py](https://github.com/ktbyers/netmiko/blob/master/netmiko/ssh_dispatcher.py), see CLASS_MAPPER keys.
  ```py
  from netmiko import ConnectHandler
  cisco_881 = {
      'device_type': 'cisco_ios',
      'host':   '10.10.10.10',
      'username': 'test',
      'password': 'password',
      'port' : 8022,          # optional, defaults to 22
      'secret': 'secret',     # optional, defaults to ''
  }
  ```

  ```py
  net_connect = ConnectHandler(**cisco_881)
  ```

  ```py
  output = net_connect.send_command('show ip int brief')
  print(output)
  ```
  ```
  Interface                  IP-Address      OK? Method Status                Protocol
  FastEthernet0              unassigned      YES unset  down                  down
  FastEthernet1              unassigned      YES unset  down                  down
  FastEthernet2              unassigned      YES unset  down                  down
  FastEthernet3              unassigned      YES unset  down                  down
  FastEthernet4              10.10.10.10     YES manual up                    up
  Vlan1                      unassigned      YES unset  down                  down
  ```

  ```py
  config_commands = [ 'logging buffered 20000',
                      'logging buffered 20010',
                      'no logging console' ]
  output = net_connect.send_config_set(config_commands)
  print(output)
  ```
  ```
  pynet-rtr1#config term
  Enter configuration commands, one per line.  End with CNTL/Z.
  pynet-rtr1(config)#logging buffered 20000
  pynet-rtr1(config)#logging buffered 20010
  pynet-rtr1(config)#no logging console
  pynet-rtr1(config)#end
  pynet-rtr1#
  ```
  <br />

  <a href="https://ktbyers.github.io/netmiko/docs/netmiko/index.html" title="Docs">API Documentation</a>
  Below are some of the particularly handy Classes/functions for easy reference:
  - [Base Connection Object](https://ktbyers.github.io/netmiko/docs/netmiko/base_connection.html)
  - [SSH Autodetect](https://ktbyers.github.io/netmiko/docs/netmiko/index.html#netmiko.SSHDetect)
  - [SSH Dispatcher](https://ktbyers.github.io/netmiko/docs/netmiko/index.html#netmiko.ssh_dispatcher)
  - [Redispatch](https://ktbyers.github.io/netmiko/docs/netmiko/index.html#netmiko.redispatch)
  <br />

  Contributors are welcome.
  You can contribute to Netmiko in a variety of ways: answering questions on Slack (see below in Questions/Discussions), responding to issues, adding to the common issues, reporting/fixing bugs, or even adding your own device type.
  Before contributing a new vendor/platform device type, remember that any code added needs to be supported in some fashion. To add a vendor/platform you can follow the outline [here](VENDOR.md). Once you've worked on your first pass of your driver and have it functional, you'll need to include test data in order for it to be merged into develop, you can see the general flow of how to do that [here](TESTING.md).
  For all code contributions, please ensure that you have ran `black` against the code or your code will fail the Travis CI build.
  <br />

  If you find an issue with Netmiko, then you can open an issue on this projects issue page here: [https://github.com/ktbyers/netmiko/issues](https://github.com/ktbyers/netmiko/issues). Please make sure you've read through the common issues and examples prior to opening an issue. Please only open issues for bugs, feature requests, or other topics related to development of Netmiko. If you simply have a question, join us on Slack...


pkgId: e822e4cb2f455e035eaeb5f553c456524ba20b48072cd5e44a0d1a9a373c8f3b
name: python-networkx
arch: src
version: 3.1
epoch: 0
release: 1
summary: Python package for creating and manipulating graphs and networks
url: https://networkx.org/
rpm_license: BSD License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-156b8417-9521-4eef-9c3a-4c582310dc73
location_href: 00008999-python-networkx/python-networkx-3.1-1.src.rpm
checksum_type: sha256
description:
  `NetworkX Survey 2023!! <https://forms.gle/NUGcBxyjx5onbAgc8>`_ 🎉 Fill out the survey to tell us about your ideas, complaints, praises of NetworkX!
  NetworkX is a Python package for the creation, manipulation,
  and study of the structure, dynamics, and functions
  of complex networks.
  - **Website (including documentation):** https://networkx.org
  - **Mailing list:** https://groups.google.com/forum/#!forum/networkx-discuss
  - **Source:** https://github.com/networkx/networkx
  - **Bug reports:** https://github.com/networkx/networkx/issues
  - **Report a security vulnerability:** https://tidelift.com/security
  - **Tutorial:** https://networkx.org/documentation/latest/tutorial.html
  - **GitHub Discussions:** https://github.com/networkx/networkx/discussions


pkgId: 938187fb7fc85d2270e1f3d5934e99e6f044667e23be7ee9be2e4ab38627d2a8
name: python-newspaper3k
arch: src
version: 0.2.8
epoch: 0
release: 1
summary: Simplified python article discovery & extraction.
url: https://github.com/codelucas/newspaper/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a493169b-fb72-4724-a75a-58429fd7a032
location_href: 00011042-python-newspaper3k/python-newspaper3k-0.2.8-1.src.rpm
checksum_type: sha256
description:
  Inspired by `requests`_ for its simplicity and powered by `lxml`_ for its speed:
      "Newspaper is an amazing python library for extracting & curating articles."
      -- `tweeted by`_ Kenneth Reitz, Author of `requests`_
      "Newspaper delivers Instapaper style article extraction." -- `The Changelog`_
  **Newspaper is a Python3 library**! Or, view our **deprecated and buggy** `Python2 branch`_


pkgId: 4c5e2f0ec3320c5a0f926e0c5f0e365f06014ce9fbfc2173711b8e80111ad11b
name: python-ngboost
arch: src
version: 0.4.1
epoch: 0
release: 1
summary: Library for probabilistic predictions via gradient boosting.
url: https://github.com/stanfordmlgroup/ngboost
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-9761f6fc-2d83-4236-b504-f7e6fb9ca13d
location_href: 00013298-python-ngboost/python-ngboost-0.4.1-1.src.rpm
checksum_type: sha256
description:
  <h4 align="center">

  ![Python package](https://github.com/stanfordmlgroup/ngboost/workflows/Python%20package/badge.svg)
  [![GitHub Repo Size](https://img.shields.io/github/repo-size/stanfordmlgroup/ngboost?label=Repo+Size)](https://github.com/stanfordmlgroup/ngboost/graphs/contributors)
  [![Github License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
  [![PyPI](https://img.shields.io/pypi/v/ngboost?logo=pypi&logoColor=white)](https://pypi.org/project/ngboost)
  [![PyPI Downloads](https://img.shields.io/pypi/dm/ngboost?logo=icloud&logoColor=white)](https://pypistats.org/packages/ngboost)

  </h4>

  ngboost is a Python library that implements Natural Gradient Boosting, as described in ["NGBoost: Natural Gradient Boosting for Probabilistic Prediction"](https://stanfordmlgroup.github.io/projects/ngboost/). It is built on top of [Scikit-Learn](https://scikit-learn.org/stable/), and is designed to be scalable and modular with respect to choice of proper scoring rule, distribution, and base learner. A didactic introduction to the methodology underlying NGBoost is available in this [slide deck](https://drive.google.com/file/d/183BWFAdFms81MKy6hSku8qI97OwS_JH_/view?usp=sharing).



  ```sh
  via pip

  pip install --upgrade ngboost

  via conda-forge

  conda install -c conda-forge ngboost
  ```



  Probabilistic regression example on the Boston housing dataset:

  ```python
  from ngboost import NGBRegressor

  from sklearn.datasets import load_boston
  from sklearn.model_selection import train_test_split
  from sklearn.metrics import mean_squared_error

  X, Y = load_boston(True)
  X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2)

  ngb = NGBRegressor().fit(X_train, Y_train)
  Y_preds = ngb.predict(X_test)
  Y_dists = ngb.pred_dist(X_test)


  test_MSE = mean_squared_error(Y_preds, Y_test)
  print('Test MSE', test_MSE)


  test_NLL = -Y_dists.logpdf(Y_test).mean()
  print('Test NLL', test_NLL)
  ```

  Details on available distributions, scoring rules, learners, tuning, and model interpretation are available in our [user guide](https://stanfordmlgroup.github.io/ngboost/intro.html), which also includes numerous usage examples and information on how to add new distributions or scores to NGBoost.



  [Apache License 2.0](https://github.com/stanfordmlgroup/ngboost/blob/master/LICENSE).



  Tony Duan, Anand Avati, Daisy Yi Ding, Khanh K. Thai, Sanjay Basu, Andrew Y. Ng, Alejandro Schuler. 2019.
  NGBoost: Natural Gradient Boosting for Probabilistic Prediction.
  [arXiv](https://arxiv.org/abs/1910.03225)


pkgId: d997af92bbcb427fd8d3d290b2577c8447a2001198171a3c13871785538942f2
name: python-niapy
arch: src
version: 2.0.4
epoch: 0
release: 1
summary: Python micro framework for building nature-inspired algorithms.
url: https://github.com/NiaOrg/NiaPy
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-61e6da43-d931-438b-9ad0-d6bbbc6ea406
location_href: 00004309-python-niapy/python-niapy-2.0.4-1.src.rpm
checksum_type: sha256
description:
  |Check codestyle and test build| |PyPI Version| |PyPI - Python Version|
  |PyPI - Status| |PyPI - Downloads| |GitHub Release Date|
  |Anaconda-Server Badge| |Fedora package| |AUR package| |Documentation Status| |GitHub license|
  |Scrutinizer Code Quality| |Coverage Status| |GitHub commit activity|
  |Updates| |Average time to resolve an issue| |Percentage of issues still
  open| |GitHub contributors|
  |DOI| |image1|
  Nature-inspired algorithms are a very popular tool for solving
  optimization problems. Numerous variants of nature-inspired algorithms
  have been developed (`paper 1 <https://arxiv.org/abs/1307.4186>`__,
  `paper 2 <https://www.mdpi.com/2076-3417/8/9/1521>`__) since the
  beginning of their era. To prove their versatility, those were tested in
  various domains on various applications, especially when they are
  hybridized, modified or adapted. However, implementation of
  nature-inspired algorithms is sometimes a difficult, complex and tedious
  task. In order to break this wall, NiaPy is intended for simple and
  quick use, without spending time for implementing algorithms from
  scratch.
  -  **Free software:** MIT license
  -  **Documentation:** https://niapy.readthedocs.io/en/stable/
  -  **Python versions:** 3.6.x, 3.7.x, 3.8.x, 3.9.x
  -  **Dependencies:** `click
     here <CONTRIBUTING.md#development-dependencies>`__


pkgId: 67b52f260fd9e93b59b1c57bba935bbf08b0393b1d3355e8004de0713674c38d
name: python-niet
arch: src
version: 2.5.0
epoch: 0
release: 1
summary: Shell config file parser (json, yaml)
url: https://github.com/openuado/niet/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-21920215-9219-4656-8c52-201e1ac1bfb9
location_href: 00012891-python-niet/python-niet-2.5.0-1.src.rpm
checksum_type: sha256
description:
  > How to easily parse and retrieve data from YAML file in our shell?
  The previous question, few years ago, led us to the development of niet.
  Indeed, at that time, we needed a way to store and retrieve data for our own
  needs. We created niet to read those data. The goal was to develop a tools
  that will allow us to standardize how we parse YAML locally or in our CI
  pipelines. We wanted something reusable and easily distribuable. Niet was born.
  Niet is like [xmllint](http://xmlsoft.org/xmllint.html) or
  [jq](https://stedolan.github.io/jq/) but for YAML and JSON data -
  you can use it to slice and filter and map and transform structured data.
  You can easily retrieve data by using simple expressions or using
  xpath advanced features to access non-trivial data.
  You can easily convert YAML format into JSON format and vice versa.
  Niet is writen in Python so you can install it from a package manager (from
  PyPi) or directly by cloning this repository - no specific system rights are
  needed to install it.

  - Extract elements by using xpath syntax
  - Extract values from json format
  - Extract values from yaml format
  - Automaticaly detect format (json/yaml)
  - Read data from a web resource
  - Read data from file or pass data from stdin
  - Format output values
  - Format output to be reused by shell `eval`
  - Convert YAML to JSON
  - Convert JSON to YAML

  ```sh
  $ pip install -U niet
  ```

  - Python 3.6 or higher

  Since niet 2.0 the support of python 2.7 have been dropped so if
  if you only have python 2.7 at hands then you can use previous version (lower
  to 2.0) but you should consider first that the no support will be given on
  these versions (no bugfix, no new feature, etc). If you report an issue or
  or propose a new feature then they will be addressed only for current or
  higher version.


  ```shell
  $ niet --help
  usage: niet [-h] [-f {json,yaml,eval,newline,ifs,squote,dquote,comma}] [-s] [-v]
              object [file]
  Read data from YAML or JSON file
  positional arguments:
    object                Path to object separated by dot (.). Use '.' to get
                          whole file. eg: a.b.c
    file                  Optional JSON or YAML filename. If not provided niet
                          read from stdin
  optional arguments:
    -h, --help            show this help message and exit
    -f {json,yaml,eval,newline,ifs,squote,dquote,comma}, --format {json,yaml,eval,newline,ifs,squote,dquote,comma}
                          output format
    -i, --in-place        Perform modification in place. Will so alter read file
    -o OUTPUT_FILE, --output OUTPUT_FILE
                          Print output in a file instead of stdout (surcharged
                          by infile parameter if set)
    -s, --silent          silent mode, doesn't display message when element was
                          not found
    -v, --version         print the Niet version number and exit (also
                          --version)
    --debug               Activate the debug mode (based on pdb)
  output formats:
    json          Return object in JSON
    yaml          Return object in YAML
    eval          Return result in a string evaluable by a shell eval command as an input
    newline       Return all elements of a list in a new line
    ifs           Return all elements of a list separated by IFS env var
    squote        Add single quotes to result
    dquote        Add double quotes to result
    comma         Return all elements separated by commas
  ```

  ```shell
  $ echo '{"foo": "bar", "fizz": {"buzz": ["1", "2", "Fizz", "4", "Buzz"]}}' | niet fizz.buzz
  1
  2
  Fizz
  4
  Buzz
  $ echo '{"foo": "bar", "fizz": {"buzz": ["1", "2", "Fizz", "4", "Buzz"]}}' | niet fizz.buzz -f squote
  '1' '2''Fizz' '4' 'Buzz'
  $ echo '{"foo": "bar", "fizz": {"buzz": ["1", "2", "fizz", "4", "buzz"]}}' | niet . -f yaml
  fizz:
    buzz:
    - '1'
    - '2'
    - fizz
    - '4'
    - buzz
  foo: bar
  $ echo '{"foo": "bar", "fizz": {"buzz": ["zero", "one", "two", "three"]}}' | niet "fizz.buzz[2]"
  two
  $ echo '{"foo": "bar", "fizz": {"buzz": ["zero", "one", "two", "three"]}}' | niet -f dquote "fizz.buzz[0:2]"
  "zero" "one"
  $ echo '{"foo": "bar", "fizz": {"buzz": ["zero", "one", "two", "three"]}}' | niet -f dquote "fizz.buzz[:3]"
  "zero" "one" "two"
  ```

  Consider the yaml file with the following content:
  ```yaml

  project:
      meta:
          name: my-project
      foo: bar
      list:
          - item1
          - item2
          - item3
      test-dash: value
  ```
  You can [download the previous example](https://gist.githubusercontent.com/4383/53e1599663b369f499aa28e27009f2cd/raw/389b82c19499b8cb84a464784e9c79aa25d3a9d3/file.yaml) locally for testing purpose or use the command line for this:
  ```shell
  wget https://gist.githubusercontent.com/4383/53e1599663b369f499aa28e27009f2cd/raw/389b82c19499b8cb84a464784e9c79aa25d3a9d3/file.yaml
  ```
  You can retrieve data from this file by using niet like this:
  ```sh
  $ niet ".project.meta.name" /path/to/your/file.yaml
  my-project
  $ niet ".project.foo" /path/to/your/file.yaml
  bar
  $ niet ".project.list" /path/to/your/file.yaml
  item1 item2 item3
  $ # assign return value to shell variable
  $ NAME=$(niet ".project.meta.name" /path/to/your/file.yaml)
  $ echo $NAME
  my-project
  $ niet project.'"test-dash"' /path/to/your/file.json
  value
  ```

  Consider the json file with the following content:
  ```json
  {
      "project": {
          "meta": {
              "name": "my-project"
          },
          "foo": "bar",
          "list": [
              "item1",
              "item2",
              "item3"
          ],
          "test-dash": "value"
      }
  }
  ```
  You can [download the previous example](https://gist.githubusercontent.com/4383/1bab8973474625de738f5f6471894322/raw/0048cd2310df2d98bf4f230ffe20da8fa615cef3/file.json) locally for testing purpose or use the command line for this:
  ```shell
  wget https://gist.githubusercontent.com/4383/1bab8973474625de738f5f6471894322/raw/0048cd2310df2d98bf4f230ffe20da8fa615cef3/file.json
  ```
  You can retrieve data from this file by using niet like this:
  ```sh
  $ niet "project.meta.name" /path/to/your/file.json
  my-project
  $ niet "project.foo" /path/to/your/file.json
  bar
  $ niet "project.list" /path/to/your/file.json
  item1 item2 item3
  $ # assign return value to shell variable
  $ NAME=$(niet "project.meta.name" /path/to/your/file.json)
  $ echo $NAME
  my-project
  $ niet project.'"test-dash"' /path/to/your/file.json
  value
  ```

  An identifier is the most basic expression and can be used to extract a single
  element from a JSON/YAML document. The return value for an identifier is
  the value associated with the identifier. If the identifier does not
  exist in the JSON/YAML document, than niet display a specific message and
  return the error code `1`, example:
  ```sh
  $ echo '{"foo": "bar", "fizz": {"buzz": ["1", "2", "3"]}}' | niet fizz.gogo
  Element not found: fizz.gogo
  $ echo $?
  1
  ```
  See the [related section](#deal-with-errors) for more info on how to manage
  errors with `niet`.
  Niet is based on `jmespath` to find results so for complex research you can
  refer to the [jmespath specifications](http://jmespath.org/specification.html#identifiers)
  to use identifiers properly.
  If you try to search for an identifier who use some dash you need to surround
  your research expression with simple and double quotes, examples:
  ```sh
  $ echo '{"foo-biz": "bar", "fizz": {"buzz": ["zero", "one", "two", "three"]}}' | niet -f dquote '"foo-biz"'
  bar
  $ echo '{"key-test": "value"}' | niet '"key-test"'
  value
  ```
  However, `niet` will detect related issues and surround automatically your
  identifier if `jmespath` fail to handle it.
  Hence, the following examples will return similar results than the previous
  examples:
  ```sh
  $ echo '{"foo-biz": "bar", "fizz": {"buzz": ["zero", "one", "two", "three"]}}' | niet -f dquote foo-biz
  bar
  $ echo '{"key-test": "value"}' | niet key-test
  value
  ```
  If your object is not at the root of your path, an example is available in
  `tests/sample/sample.json`, then you need to only surround the researched
  identifier like this `project.'"test-dash"'`
  ```json
  {
      "project": {
          "meta": {
              "name": "my-project"
          },
          "foo": "bar",
          "list": [
              "item1",
              "item2",
              "item3"
          ],
          "test-dash": "value"
      }
  }
  ```
  Example:
  ```sh
  niet project.'"test-dash"' tests/sample/sample.json
  ```
  Further examples with [`jmespath` identifiers](http://jmespath.org/specification.html#examples).


  By default, niet print the output on stdout.

  It if possible to pass a filename using -o or --output argument to writes
  directly in a file. This file will be created if not exists or will be
  replaced if already exists.

  It is possible to modify directly a file using -i or --in-place argument. This will replace
  the input file by the output of niet command. This can be used to extract some data of a file or
  reindent a file.

  You can change the output format using the -f or --format optional
  argument.
  By default, niet detect the input format and display complex objects
  in the same format. If the object is a list or a value, newline output
  format will be used.
  Output formats are:
    - ifs
    - squote
    - dquote
    - newline
    - yaml
    - json

  Ifs output format print all values of a list or a single value in one line.
  All values are separated by the content of IFS environment variable if defined,
  space otherwise.
  Examples (consider the previous [YAML file example](#with-yaml-file)):
  ```shell
  $ IFS="|" niet .project.list /path/to/your/file.yaml -f ifs
  item1|item2|item3
  $ IFS=" " niet .project.list /path/to/your/file.yaml -f ifs
  item1 item2 item3
  $ IFS="@" niet .project.list /path/to/your/file.yaml -f ifs
  item1@item2@item3
  ```
  This is usefull in a shell for loop,
  but your content must, of course, don't contain IFS value:
  ```shell
  OIFS="$IFS"
  IFS="|"
  for i in $(niet .project.list /path/to/your/file.yaml -f ifs); do
      echo ${i}
  done
  IFS="${OIFS}"
  ```
  Previous example provide the following output:
  ```sh
  item1
  item2
  item3
  ```
  For single quoted see [squote](#squote) ouput or [dquote](#dquote) double quoted output with IFS

  Squotes output format print all values of a list or a single value in one line.
  All values are quoted with single quotes and are separated by IFS value.
  Examples (consider the previous [YAML file example](#with-yaml-file)):
  ```shell
  $ # With the default IFS
  $ niet .project.list /path/to/your/file.yaml -f squote
  'item1' 'item2' 'item3'
  $ # With a specified IFS
  $ IFS="|" niet .project.list /path/to/your/file.yaml -f squote
  'item1'|'item2'|'item3'
  ```

  Dquotes output format print all values of a list or a single value in one line.
  All values are quoted with a double quotes and are separated by IFS value.
  Examples (consider the previous [YAML file example](#with-yaml-file)):
  ```shell
  $ # With the default IFS
  $ niet .project.list /path/to/your/file.yaml -f dquote
  'item1' 'item2' 'item3'
  $ # With a specified IFS
  $ IFS="|" niet .project.list /path/to/your/file.yaml -f dquote
  "item1"|"item2"|"item3"
  ```

  `newline` output format print one value of a list or a single value per line.
  The `newline` format is mostly usefull with shell while read loops and
  with script interactions.
  Example:
  ```sh
  while read value: do
      echo $value
  done < $(niet --format newline project.list your-file.json)
  ```

  `comma` output format print results on the same line and separated by commas.
  The `comma` format allow you to format your outputs to consume your results
  with other commands lines interfaces. By example some argument parser
  allow you to pass multi values for the same parameter (the
  [beagle command](https://beagle-hound.readthedocs.io/en/latest/) per
  example allow you to
  [repeat the `--repo` option](https://beagle-hound.readthedocs.io/en/latest/cli/index.html#cmdoption-beagle-search-repo)).
  Example of integration with beagle and shell:
  ```sh
  $ OSLO_PROJECTS_URL=https://raw.githubusercontent.com/openstack/governance/master/reference/projects.yaml
  $ beagle search \
      -f link \
      --repo $(niet "oslo.deliverables.*.repos[0]" ${OSLO_PROJECTS_URL} -f comma) 'venv'
  ```
  The previous command will return all the links of files
  who contains `venv` on the openstack oslo's scope of projects (pbr,
  taskflow, oslo.messaging, etc).
  Else another with a more reduced scope on openstack oslo's projects:
  ```sh
  $ niet "oslo.deliverables.*.repos[0][?contains(@, \`oslo\`) == \`true\`]" \
      https://raw.githubusercontent.com/openstack/governance/master/reference/projects.yaml \
      -f comma
  openstack/oslo-cookiecutter,openstack/oslo-specs,openstack/oslo.cache,
  openstack/oslo.concurrency,openstack/oslo.config,openstack/oslo.context,
  openstack/oslo.db,openstack/oslo.i18n,openstack/oslo.limit,openstack/oslo.log,
  openstack/oslo.messaging,openstack/oslo.middleware,
  openstack/oslo.policy,openstack/oslo.privsep,openstack/oslo.reports,
  openstack/oslo.rootwrap,openstack/oslo.serialization,openstack/oslo.service,
  openstack/oslo.tools,openstack/oslo.upgradecheck,openstack/oslo.utils,
  openstack/oslo.versionedobjects,openstack/oslo.vmware,openstack/oslotest
  ```
  In the previous example we retrieve only the projects repos who contains
  `oslo` in their names, so other projects like `taskflow`, `pbr`, etc will
  be ignored.

  Eval output format allow you to eval output string to initialize shell
  variable generated from your JSON/YAML content.
  You can intialize shell variables from your entire content, example:
  ```sh
  $ echo '{"foo-biz": "bar", "fizz": {"buzz": ["zero", "one", "two", "three"]}}' | niet -f eval .
   foo_biz="bar";fizz__buzz=( zero one two three )
  $ eval $(echo '{"foo-biz": "bar", "fizz": {"buzz": ["zero", "one", "two", "three"]}}' | niet -f eval .)
  $ echo ${foo_biz}
  bar
  $ echo ${fizz__buzz}
  zero one two three
  $ eval $(echo '{"foo-biz": "bar", "fizz": {"buzz": ["zero", "one", "two", "three"]}}' | niet -f eval '"foo-biz"'); echo ${foo_biz}
  bar
  $ echo '{"foo-biz": "bar", "fizz": {"buzz": ["zero", "one", "two", "three"]}}' | niet -f eval fizz.buzz
  fizz_buzz=( zero one two three );
  ```
  Parent elements are separated by `__` by example the `fizz.buzz` element
  will be represented by a variable named `fizz__buzz`. You need to consider
  that when you call your expected variables.
  Also you can initialize some shell array from your content and loop over in
  a shell maner:
  ```sh
  $ eval $(echo '{"foo-biz": "bar", "fizz": {"buzz": ["zero", "one", "two", "three"]}}' | niet -f eval fizz.buzz)
  $ for el in ${fizz_buzz}; do echo $el; done
  zero
  one
  two
  three
  ```

  Yaml output format force output to be in YAML regardless the input file format.

  Json output format force output to be in JSON regardless the input file format.

  Niet allow you to read data (json/yaml) from a web resource accessible by using
  the HTTP protocole (introduced in niet 2.1).
  This can be done by passing an url to niet which refer to a raw content (json
  or yaml).
  Here is some examples with the [openstack governance's projects data](https://github.com/openstack/governance/blob/master/reference/projects.yaml):
  ```sh
  $ # List all the oslo projects repos (https://wiki.openstack.org/wiki/Oslo)
  $ niet "oslo.deliverables.*.repos[0]" \
      https://raw.githubusercontent.com/openstack/governance/master/reference/projects.yaml
  openstack/automaton
  openstack/castellan
  openstack/debtcollector
  openstack/futurist
  openstack/oslo.cache
  openstack/oslo.concurrency
  openstack/oslo.config
  openstack/oslo.context
  openstack/oslo.db
  openstack/oslo.i18n
  openstack/oslo.limit
  openstack/oslo.log
  openstack/oslo.messaging
  openstack/oslo.middleware
  openstack/oslo.policy
  openstack/oslo.service
  openstack/osprofiler
  openstack/pbr
  openstack/stevedore
  openstack/taskflow
  openstack/tooz
  openstack/whereto
  $ niet oslo.service \
      https://raw.githubusercontent.com/openstack/governance/master/reference/projects.yaml
  Common libraries
  $ # Get the openstack oslo's mission
  $ niet oslo.mission \
      https://raw.githubusercontent.com/openstack/governance/master/reference/projects.yaml
  To produce a set of python libraries containing code shared by OpenStack projects.
  The APIs provided by these libraries should be high quality, stable, consistent,
  documented and generally applicable.
  $ eval $(niet oslo.service \
      https://raw.githubusercontent.com/openstack/governance/master/reference/projects.yaml -f eval) && \
      test "${oslo_service}" = "Common libraries"
  $ # Get the name of the oslo PTL
  $ eval $(niet oslo.ptl.name \
      https://raw.githubusercontent.com/openstack/governance/master/reference/projects.yaml -f eval)
  $ echo "${oslo_ptl_name}" # now display your evaluated result
  $ # Convert original distant yaml file into json
  $ niet . https://raw.githubusercontent.com/openstack/governance/master/reference/projects.yaml -f json
  ```
  For further examples of filters and selections please take a look to
  [the jmespath's doc](https://jmespath.org/examples.html).

  By default when no results was found niet display a specific message and return
  the error code `1`, example:
  ```sh
  $ echo '{"foo": "bar", "fizz": {"buzz": ["1", "2", "3"]}}' | niet fizz.gogo
  Element not found: fizz.gogo
  $ echo $?
  1
  ```
  You can avoid this behavior by passing niet into a silent mode.
  Silent mode allow you to hide the specific message error but continue to return
  a status code equal to `1` when the key was not found.
  You can use the silent mode by using the flag `-s/--silent`, example:
  ```sh
  $ echo '{"foo": "bar", "fizz": {"buzz": ["1", "2", "3"]}}' | niet fizz.gogo -s
  $ echo $?
  1
  ```

  When your JSON file content are not valid niet display an error and exit
  with return code `1`
  You can easily protect your script like this:
  ```sh
  PROJECT_NAME=$(niet project.meta.name your-file.yaml)
  if [ "$?" = "1" ]; then
      echo "Error occur ${PROJECT_NAME}"
  else
      echo "Project name: ${PROJECT_NAME}"
  fi
  ```

  You can try niet by using the samples provided with the project sources code.
  > All the following examples use the sample file available in niet sources code
  at the following location `tests/samples/sample.yaml`.
  Sample example:
  ```yaml

  project:
      meta:
          name: my-project
      foo: bar
      list:
          - item1
          - item2
          - item3
  ```

  Retrieve the project name:
  ```sh
  $ niet project.meta.name tests/samples/sample.yaml
  my-project
  ```

  Consider the following content:
  ```
  $ cat /var/lib/libvirt/dnsmasq/virbr0.status
  [
    {
      "ip-address": "192.168.122.113",
      "mac-address": "52:54:00:91:14:02",
      "hostname": "rhel79",
      "expiry-time": 1644251254
    },
    {
      "ip-address": "192.168.122.162",
      "mac-address": "52:54:00:23:37:ed",
      "hostname": "satellite",
      "expiry-time": 1644251837
    }
  ]
  ```
  Here we want to retrieve the value of the ip-address field when the hostname
  is equal to `satellite`. The following command will allow you to get this
  value:
  ```sh
  $ sed 's/ip/_/g' /var/lib/libvirt/dnsmasq/virbr0.status | niet "[?hostname=='satellite'].ip"
  192.168.122.162
  ```
  You should notice that first we replace `-` by `_` by using the sed
  command. We do that because `jmespath`, the underlying library used by `niet`
  , poorly handle key that contain `-`. We chosen to replace all - by _ to avoid
  any issues elsewhere on the file
  Here is an exemple of an automated ssh connection in a kvm virtualised lab
  environment by looking for vmname in dhcp file with `niet` and performing the
  ssh connection to the server even if its ip changed.
  The ssh connection here can be performed with this command:
  ```sh
  ssh -o ProxyCommand='nc $(sed 's/-/_/g' /var/lib/libvirt/dnsmasq/virbr0.status | niet "[?hostname=='''%h'''].ip_address") %p' root@rhel79
  ```
  Tips - to ease that use you can for example set this `.ssh/config` entry:
  ```
  host lab-*
  user root
  ProxyCommand /usr/bin/nc $(sed 's/-/_/g' /var/lib/libvirt/dnsmasq/virbr0.status | niet "[?hostname=='$(echo %h | cut -d'-' -f2 )'].ip_address") %p
  ```
  And then perform a `ssh lab-rhel79` or a `ssh lab-satellite` to join all VMs
  from your lab, by the hostname prefixed by `lab-`.

  Deal with list of items
  ```sh
  $ for el in $(niet project.list tests/samples/sample.yaml); do echo ${el}; done
  item1
  item2
  item3
  ```
  Also you can `eval` your `niet` output to setput some shell variables
  that you can reuse in your shell scripts, the following example is similar to
  the previous example but make use of the eval ouput format (`-f eval`):
  ```sh
  $ eval $(niet -f eval project.list tests/samples/sample.yaml)
  $ for el in ${project__list}; do echo $el; done
  zero
  one
  two
  three
  ```

  Extract the object as JSON to store it in shell variable :
  ```shell
  $ project="$(niet -f json .project tests/samples/sample.yaml)"
  ```
  Then parse it after in bash in this example:
  ```shell
  $ niet .meta.name <<< $project
  my-project
  ```

  With niet you can easily convert your JSON to YAML
  ```shell
  $ niet . tests/samples/sample.json -f yaml
  project:
    foo: bar
    list:
    - item1
    - item2
    - item3
    meta:
      name: my-project
  ```

  With niet you can easily convert your YAML to JSON
  ```shell
  $ niet . tests/samples/sample.yaml -f json
  {
      "project": {
          "meta": {
              "name": "my-project"
          },
          "foo": "bar",
          "list": [
              "item1",
              "item2",
              "item3"
          ]
      }
  }
  ```

  This is an example of how to indent a JSON file :
  ```shell
  $ niet . tests/samples/sample_not_indented.json
  {
      "project": {
          "meta": {
              "name": "my-project"
          },
          "foo": "bar",
          "list": [
              "item1",
              "item2",
              "item3"
          ],
          "test-dash": "value"
      }
  }
  ```

  You can pass your search with or without quotes like this:
  ```sh
  $ niet project.meta.name your-file.yaml
  $ niet "project.meta.name" your-file.yaml
  ```
  You can execute `niet` step by step by using the debug mode. It will allow
  you to inspect your execution during your debug sessions.

  If you want to contribute to niet [please first read the contribution guidelines](CONTRIBUTING.md)

  This project is under the MIT License.
  [See the license file for more details](LICENSE)
  Henry Tang <henryykt@gmail.com>
  Hervé Beraud <hberaud@redhat.com>
  Hervé Beraud <herveberaud.pro@gmail.com>
  Sebastien Boyron <sebastien@boyron.eu>
  Sébastien Boyron <sboyron@localhost.localdomain>
  dj4ngo <sebastien@boyron.eu>
  rechthemoon <rechthemoon@gmail.com>


pkgId: 40978e1de22cb80bf940fb70b3f29db66fd253790c947368e62f96e9912a76b0
name: python-nilearn
arch: src
version: 0.10.0
epoch: 0
release: 1
summary: Statistical learning for neuroimaging in Python
url: https://nilearn.github.io
rpm_license: new BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-1828dc8f-80fa-420b-adff-8ea806d0a23a
location_href: 00004312-python-nilearn/python-nilearn-0.10.0-1.src.rpm
checksum_type: sha256
description:
  Nilearn enables approachable and versatile analyses of brain volumes. It provides statistical and machine-learning tools, with instructive documentation & friendly community.
  It supports general linear model (GLM) based analysis and leverages the `scikit-learn <https://scikit-learn.org>`_ Python toolbox for multivariate statistics with applications such as predictive modelling, classification, decoding, or connectivity analysis.


pkgId: bdc2e26e3ecc976ca64fba465963a72c67152ebda264b7afe3c1df551bfe416a
name: python-nine
arch: src
version: 1.1.0
epoch: 0
release: 1
summary: Python 2 / 3 compatibility, like six, but favouring Python 3
url: https://github.com/nandoflorestan/nine
rpm_license: Public domain
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-ec0ea227-7599-40e9-aa48-68292186f224
location_href: 00004313-python-nine/python-nine-1.1.0-1.src.rpm
checksum_type: sha256
description:
  When the best Python 2/Python 3 compatibility modules -- especially the famous
  `*six* library invented by Benjamin Peterson <https://pypi.python.org/pypi/six>`_
  -- were created, they were written from the point of view of a Python 2
  programmer starting to grok Python 3.  If you use *six*,
  your code is compatible, but stuck in Python 2 idioms.
  **nine** turns **six** upside down. You write your code using Python 3 idioms
  -- as much as possible --, and it is the Python 2 "version" that is patched.
  Needless to say, this approach is more future-proof.
  When thou writeth Python, thou shalt write Python 3 and,
  just for a little longer, ensure that the thing worketh on Python 2.7.
  *nine* facilitates this point of view. You can write code
  that is as 3ish as possible while still supporting 2.6.
  For instance, you don't type ``unicode`` anymore, you type ``str``, and *nine*
  makes ``str`` point to ``unicode`` on Python 2 (if you use our boilerplate).
  Also, ``map``, ``zip`` and ``filter`` have Python 3 behaviour, on Python 2,
  meaning they return iterators, not lists.
  Honestly you should not spend one thought on Python 2.6 anymore, it is
  `no longer supported <https://mail.python.org/pipermail/python-dev/2013-September/128287.html>`_
  since its final release (2.6.9) in October 2013. Nobody uses 3.0 or 3.1 either.
  Python 2.7 has finally met its demise on the first day of 2020.
  *nine* is extremely stable and unlikely to change since it solves an old
  problem that never changes.  Nobody should be surprised if *nine* isn't
  updated for months or even years.
  The author(s) of *nine* donate this module to the public domain.
  To understand most of the intricacies involved in achieving 2&3 compatibility
  in a single codebase, I recommend reading this:
  http://lucumr.pocoo.org/2013/5/21/porting-to-python-3-redux/


pkgId: e0f1221f9a28297fbdc34d18597e662036e58952dc8f20c781e9f6a3ca0a9655
name: python-nltk
arch: src
version: 3.8.1
epoch: 0
release: 1
summary: Natural Language Toolkit
url: https://www.nltk.org/
rpm_license: Apache License, Version 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-2cd42703-df81-4703-9fe8-a3d135940fba
location_href: 00004319-python-nltk/python-nltk-3.8.1-1.src.rpm
checksum_type: sha256
description:
  The Natural Language Toolkit (NLTK) is a Python package for
  natural language processing.  NLTK requires Python 3.7, 3.8, 3.9, 3.10 or 3.11.


pkgId: 3d50cf394708bcf343a55663bf69bc4f8fc87ddff056de353725fb39b280cd27
name: python-nodeenv
arch: src
version: 1.7.0
epoch: 0
release: 1
summary: Node.js virtual environment builder
url: https://github.com/ekalinin/nodeenv
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-1fe16c83-ae72-428e-b358-f2f56dee05ef
location_href: 00004323-python-nodeenv/python-nodeenv-1.7.0-1.src.rpm
checksum_type: sha256
description:
  ``nodeenv`` (node.js virtual environment) is a tool to create
  isolated node.js environments.
  It creates an environment that has its own installation directories,
  that doesn't share libraries with other node.js virtual environments.
  Also the new environment can be integrated with the environment which was built
  by virtualenv_ (python).
  If you use nodeenv feel free to add your project on wiki: `Who-Uses-Nodeenv`_.


pkgId: ed7ef9d9ea15647de83f44f263ce5990aeee0d5a74f43397d6d87d87b9114b38
name: python-noise
arch: src
version: 1.2.2
epoch: 0
release: 1
summary: Perlin noise for Python
url: https://github.com/caseman/noise
rpm_license: UNKNOWN
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e052391c-36ff-4d57-879c-f65b974f1014
location_href: 00014312-python-noise/python-noise-1.2.2-1.src.rpm
checksum_type: sha256
description:
  Perlin noise is ubiquitous in modern CGI. Used for procedural texturing,
  animation, and enhancing realism, Perlin noise has been called the "salt" of
  procedural content. Perlin noise is a type of gradient noise, smoothly
  interpolating across a pseudo-random matrix of values.

  The noise library includes native-code implementations of Perlin "improved"
  noise and Perlin simplex noise. It also includes a fast implementation of
  Perlin noise in GLSL, for use in OpenGL shaders. The shader code and many of
  the included examples require Pyglet (http://www.pyglet.org), the native-code
  noise functions themselves do not, however.

  The Perlin improved noise functions can also generate fBm (fractal Brownian
  motion) noise by combining multiple octaves of Perlin noise. Shader functions
  for convenient generation of turbulent noise are also included.

  - 1.2.2 AppVeyor support for Windows builds (Thanks to Federico Tomassetti)

  - 1.2.1 Fixes MSVC compatibility (Thanks to Christoph Gohlke)

  - 1.2.0 adds 4D simplex noise, tiling for 2D simplex noise,
    and parameterized lacunarity

  See CHANGES.txt for more details


pkgId: 0afd6a9f9235d1a01c7fd6892d7b72d1eec5edfe147cec17c2080c715624ebdd
name: python-noise-debuginfo
arch: aarch64
version: 1.2.2
epoch: 0
release: 1
summary: Debug information for package python-noise
url: https://github.com/caseman/noise
rpm_license: UNKNOWN
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-e052391c-36ff-4d57-879c-f65b974f1014
rpm_sourcerpm: python-noise-1.2.2-1.src.rpm
location_href: 00014312-python-noise/python-noise-debuginfo-1.2.2-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug information for package python-noise.
  Debug information is useful when developing applications that use this
  package or when debugging this package.


pkgId: 68d73f0eff31ca7beee6881147e8a8bdf663b691005778e32885396692007f9c
name: python-noise-debugsource
arch: aarch64
version: 1.2.2
epoch: 0
release: 1
summary: Debug sources for package python-noise
url: https://github.com/caseman/noise
rpm_license: UNKNOWN
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-e052391c-36ff-4d57-879c-f65b974f1014
rpm_sourcerpm: python-noise-1.2.2-1.src.rpm
location_href: 00014312-python-noise/python-noise-debugsource-1.2.2-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug sources for package python-noise.
  Debug sources are useful when developing applications that use this
  package or when debugging this package.


pkgId: 198551fd318cb7804c4fd6e7f57cf613a9e107f94784f6ce0dc8cfabc117fabf
name: python-nose
arch: src
version: 1.3.7
epoch: 0
release: 1
summary: nose extends unittest to make testing easier
url: http://readthedocs.org/docs/nose/
rpm_license: GNU LGPL
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-8a9ba6e3-0655-46fb-bc74-c59bda50b97d
location_href: 00004326-python-nose/python-nose-1.3.7-1.src.rpm
checksum_type: sha256
description:
  nose extends the test loading and running features of unittest, making
      it easier to write, find and run tests.

      By default, nose will run tests in files or directories under the current
      working directory whose names include "test" or "Test" at a word boundary
      (like "test_this" or "functional_test" or "TestClass" but not
      "libtest"). Test output is similar to that of unittest, but also includes
      captured stdout output from failing tests, for easy print-style debugging.

      These features, and many more, are customizable through the use of
      plugins. Plugins included with nose provide support for doctest, code
      coverage and profiling, flexible attribute-based test selection,
      output capture and more. More information about writing plugins may be
      found on in the nose API documentation, here:
      http://readthedocs.org/docs/nose/

      If you have recently reported a bug marked as fixed, or have a craving for
      the very latest, you may want the development version instead:
      https://github.com/nose-devs/nose/tarball/master#egg=nose-dev


pkgId: 2bb294a624b395b924519f94aab1b5db493eaf7382d2f21cf6a8a53aa692a773
name: python-nose-cov
arch: src
version: 1.6
epoch: 0
release: 1
summary: nose plugin for coverage reporting, including subprocesses and multiprocessing
url: http://bitbucket.org/memedough/nose-cov/overview
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-b53c1a82-db18-486b-a19d-aa2151efb4db
location_href: 00004327-python-nose-cov/python-nose-cov-1.6-1.src.rpm
checksum_type: sha256
description:
  This plugin produces coverage reports.  It also supports coverage of subprocesses.
  All features offered by the coverage package should be available, either through nose-cov or
  through coverage's config file.


pkgId: d26f4949919adf566a9225c5d099a8eb1b72d9688c4e52325c7eccfe03891ab9
name: python-nose-exclude
arch: src
version: 0.5.0
epoch: 0
release: 1
summary: Exclude specific directories from nosetests runs.
url: https://github.com/kgrandis/nose-exclude
rpm_license: GNU LGPL
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-3c71a178-3dc7-458f-8d28-996995e68662
location_href: 00004329-python-nose-exclude/python-nose-exclude-0.5.0-1.src.rpm
checksum_type: sha256
description:
  nose-exclude is a `Nose`_ plugin that allows you to easily specify
  directories to be excluded from testing.


pkgId: c7fd1573c6754a31c42bcf910d90bc1633127e64eb2ce33b3e83e96547d3c91a
name: python-nose-parallel
arch: src
version: 0.4.0
epoch: 0
release: 1
summary: A nosetests plugin to split test suites to run in parallel
url: https://github.com/dlanger/nose-parallel
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-58e64ea7-57c1-45f8-9896-658117cb7edf
location_href: 00012669-python-nose-parallel/python-nose-parallel-0.4.0-1.src.rpm
checksum_type: sha256
description:
  A plugin to help split up your tests runs across multiple machines.
  In an ideal world, test suites should be fast enough that they can
  be run locally on a single machine without extra engineering. This
  plugin is there to help when you can't make that to happen.
  This **won't** help you run tests in parallel on one machine in different
  threads; that's what the built-in `multiprocess
  <http://nose.readthedocs.org/en/latest/plugins/multiprocess.html>`_ plugin
  is for.
  This **will** help you split up your test suites so that you can run the
  suites on multiple machines and not have the same test run twice - think
  Jenkins with the
  `multijob <https://wiki.jenkins-ci.org/display/JENKINS/Multijob+Plugin>`_
  plugin, or CI services like `CircleCI <https://circleci.com/docs/parallel-manual-setup>`_.


pkgId: ddaa89143b83309db6b5f738e6f108c81409a4dbacc43aa9970d0a9bb85f7702
name: python-nose2
arch: src
version: 0.12.0
epoch: 0
release: 1
summary: unittest2 with plugins, the successor to nose
url: https://github.com/nose-devs/nose2
rpm_license: BSD License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-ca5872e4-d1e4-4ac6-a268-f9cd204a9b40
location_href: 00010164-python-nose2/python-nose2-0.12.0-1.src.rpm
checksum_type: sha256
description:
  ``nose2`` is the successor to ``nose``.
  It's ``unittest`` with plugins.
  ``nose2`` is a new project and does not support all of the features of
  ``nose``. See `differences`_ for a thorough rundown.
  nose2's purpose is to extend ``unittest`` to make testing nicer and easier to
  understand.


pkgId: 1c2c5acc9fc4ad567548fb17cc86b341708fa6c913b5cf5022503851f539ebf4
name: python-nosexcover
arch: src
version: 1.0.11
epoch: 0
release: 1
summary: Extends nose.plugins.cover to add Cobertura-style XML reports
url: http://github.com/cmheisel/nose-xcover/
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-9253e2b6-e3cd-4dc8-a6b7-22eea43ea958
location_href: 00012093-python-nosexcover/python-nosexcover-1.0.11-1.src.rpm
checksum_type: sha256
description:
  A companion to the built-in nose.plugins.cover, this plugin will write out an XML coverage report to a file named coverage.xml.
  It will honor all the options you pass to the `Nose coverage plugin <http://somethingaboutorange.com/mrl/projects/nose/1.0.0/plugins/cover.html>`_, especially --cover-package.


pkgId: 03c007a530bee2597ebb76c26a18bc061bfdff3862be997dfea435db0ac5832b
name: python-notario
arch: src
version: 0.0.16
epoch: 0
release: 1
summary: A dictionary validator
url: http://github.com/alfredodeza/notario
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-5e186d9b-9f9f-4e8d-a801-1de205a1ba9f
location_href: 00004334-python-notario/python-notario-0.0.16-1.src.rpm
checksum_type: sha256
description:
  A flexible and succinct Python dictionary validator with the ability to
  validate against both keys *and* values. Schemas are smaller and readable
  representations of data being validated.
  Fully documented and thoroughly tested.
  Documentation: http://notario.cafepais.com
  Tested against:
  * Python 2.7
  * Python 3.3
  * Python 3.4
  * PyPy 1.5
  * PyPy 1.6
  * PyPy 1.7
  * PyPy 1.8
  * PyPy 1.9
  With coverage hovering at around **99%**


pkgId: ba04d6a6fa20219c7b821733dc0d2b9396d378f6869c19299e31e787b0d53368
name: python-notcurses
arch: src
version: 3.0.9
epoch: 0
release: 1
summary: Blingful TUI construction library (python bindings)
url: https://github.com/dankamongmen/notcurses
rpm_license: Apache License, Version 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-90ca6751-b07c-44c6-954c-1fb1ea64120e
location_href: 00004335-python-notcurses/python-notcurses-3.0.9-1.src.rpm
checksum_type: sha256
description:
  Python bindings for the C [Notcurses](https://github.com/dankamongmen/notcurses)
  library. Notcurses is a blingful library for building complex, vibrant textual
  user interfaces (TUIs) on modern terminal emulators, of which these Python
  bindings offer nowhere near complete coverage.

  by [nick black](https://nick-black.com/dankwiki/index.php/Hack_on) (<nickblack@linux.com>)

  for more information, see [my wiki](https://nick-black.com/dankwiki/index.php/Notcurses).

  [![Build Status](https://drone.dsscaw.com:4443/api/badges/dankamongmen/notcurses/status.svg)](https://drone.dsscaw.com:4443/dankamongmen/notcurses)
  [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)


pkgId: 3dabed5c29a6ce1ab460f71b3ab2e4d9e01fe1c24ebf2fb1d66e81cc6581e6a8
name: python-notebook
arch: src
version: 6.5.3
epoch: 0
release: 1
summary: A web-based notebook environment for interactive computing
url: http://jupyter.org
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-7283c7e2-fe7c-4d1b-9f42-a4698e4e5dd4
location_href: 00004336-python-notebook/python-notebook-6.5.3-1.src.rpm
checksum_type: sha256
description:
  The Jupyter Notebook is a web application that allows you to create and
  share documents that contain live code, equations, visualizations, and
  explanatory text. The Notebook has support for multiple programming
  languages, sharing, and interactive widgets.

  Read `the documentation <https://jupyter-notebook.readthedocs.io>`_
  for more information.


pkgId: c73e70af38dd20afc43847487a7b76e5c319c4edda5401381ec087a566d5b8e5
name: python-notifiers
arch: src
version: 1.3.3
epoch: 0
release: 1
summary: The easy way to send notifications
url: https://github.com/liiight/notifiers
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e7b69a60-0bc9-4964-abfd-1093eb216921
location_href: 00010458-python-notifiers/python-notifiers-1.3.3-1.src.rpm
checksum_type: sha256
description:
  ![Full logo](https://raw.githubusercontent.com/liiight/notifiers/main/assets/images/circle_full_logo.png)

  [![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fnotifiers%2Fnotifiers%2Fbadge%3Fref%3Dmain&style=flat-square)](https://actions-badge.atrox.dev/notifiers/notifiers/goto?ref=master) [![Codecov](https://img.shields.io/codecov/c/github/notifiers/notifiers/master.svg?style=flat-square) ](https://codecov.io/gh/notifiers/notifiers) [![image](https://img.shields.io/gitter/room/nwjs/nw.js.svg?style=flat-square) ](https://gitter.im/notifiers/notifiers) [![PyPi version](https://img.shields.io/pypi/v/notifiers.svg?style=flat-square) ](https://pypi.python.org/pypi/notifiers) [![Supported Python versions](https://img.shields.io/pypi/pyversions/notifiers.svg?style=flat-square) ](https://pypi.org/project/notifiers) [![License](https://img.shields.io/pypi/l/notifiers.svg?style=flat-square) ](https://choosealicense.com/licenses) [![Status](https://img.shields.io/pypi/status/notifiers.svg?style=flat-square) ](https://pypi.org/project/notifiers/) [![Docker build](https://img.shields.io/docker/cloud/build/liiight/notifiers?style=flat-square) ](https://hub.docker.com/r/liiight/notifiers/) [![RTD](https://img.shields.io/readthedocs/notifiers.svg?style=flat-square) ](https://readthedocs.org/projects/notifiers/badge/?version=latest) [![Paypal](https://img.shields.io/badge/Donate-PayPal-green.svg?style=flat-square) ](https://paypal.me/notifiers) [![Downloads](http://pepy.tech/badge/notifiers)](http://pepy.tech/count/notifiers)
  [![Twitter Follow](https://img.shields.io/twitter/follow/liiight.svg?style=flat-square&logo=twitter&label=Follow)](https://twitter.com/liiight) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)


  See [changelog](http://notifiers.readthedocs.io/en/latest/changelog.html) for recent changes

  Got an app or service, and you want to enable your users to use notifications with their provider of choice? Working on a script and you want to receive notification based on its output? You don't need to implement a solution yourself, or use individual provider libs. A one stop shop for all notification providers with a unified and simple interface.




  [Pushover](https://pushover.net/), [SimplePush](https://simplepush.io/), [Slack](https://api.slack.com/), [Gmail](https://www.google.com/gmail/about/), Email (SMTP), [Telegram](https://telegram.org/), [Gitter](https://gitter.im), [Pushbullet](https://www.pushbullet.com), [Join](https://joaoapps.com/join/), [Zulip](https://zulipchat.com/), [Twilio](https://www.twilio.com/), [Pagerduty](https://www.pagerduty.com), [Mailgun](https://www.mailgun.com/), [PopcornNotify](https://popcornnotify.com), [StatusPage.io](https://statuspage.io), [iCloud](https://www.icloud.com/mail), [VictorOps (Splunk)](https://www.splunk.com/en_us/investor-relations/acquisitions/splunk-on-call.html)



  -   Spend your precious time on your own code base, instead of chasing down 3rd party provider APIs. That's what we're here for!
  -   With a minimal set of well known and stable dependencies ([requests](https://pypi.python.org/pypi/requests), [jsonschema](https://pypi.python.org/pypi/jsonschema/2.6.0) and [click](https://pypi.python.org/pypi/click/6.7)) you're better off than installing 3rd party SDKs.
  -   A unified interface means that you already support any new providers that will be added, no more work needed!
  -   Thorough testing means protection against any breaking API changes. We make sure your code your notifications will always get delivered!



  Via pip:
  ```
  $ pip install notifiers
  ```
  Via homebrew:
  ```
  $ brew install notifiers
  ```
  Or Dockerhub:
  ```
  $ docker pull liiight/notifiers
  ```


  ```python
  >>> from notifiers import get_notifier
  >>> p = get_notifier('pushover')
  >>> p.required
  {'required': ['user', 'message', 'token']}
  >>> p.notify(user='foo', token='bar', message='test')
  <NotificationResponse,provider=Pushover,status=Success>
  ```

  Or:
  ```python
  >>> from notifiers import notify
  >>> notify('pushover', user='foo', token='bar', message='test')
  <NotificationResponse,provider=Pushover,status=Success>
  ```



  ```text
  $ notifiers pushover notify --user foo --token baz "This is so easy!"
  ```



  Directly add to your existing stdlib logging:

  ```python
  >>> import logging
  >>> from notifiers.logging import NotificationHandler

  >>> log = logging.getLogger(__name__)

  >>> defaults = {
          'token': 'foo',
          'user': 'bar'
      }
  >>> hdlr = NotificationHandler('pushover', defaults=defaults)
  >>> hdlr.setLevel(logging.ERROR)

  >>> log.addHandler(hdlr)
  >>> log.error('And just like that, you get notified about all your errors!')
  ```



  - Mentioned in [Python Bytes](https://pythonbytes.fm/episodes/show/67/result-of-moving-python-to-github) podcast



  -   Many more providers!
  -   Low level providers (Amazon SNS, Google FCM, OS Toast messages) via `extra` dependencies

  See [Docs](http://notifiers.readthedocs.io/) for more information



  If you like this and want to buy me a cup of coffee, please click the donation button above or click this [link](https://paypal.me/notifiers) ☕



  Everyone interacting in the Notifiers project's codebases, issue trackers and chat rooms is expected to follow the [PyPA Code of Conduct.](https://www.pypa.io/en/latest/code-of-conduct/)


pkgId: b53a2980ebfc23bfba7357fddc7a550e45c304d8d366cde7981fb339871d136e
name: python-notify2
arch: src
version: 0.3.1
epoch: 0
release: 1
summary: Python interface to DBus notifications
url: https://bitbucket.org/takluyver/pynotify2
rpm_license: BSD License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-2b60db79-d2e2-45c9-8658-35ea21acbfdd
location_href: 00004337-python-notify2/python-notify2-0.3.1-1.src.rpm
checksum_type: sha256
description:
  There are a few differences from pynotify you should be aware of:
  - If you need callbacks from notifications, notify2 must know about your event
    loop. The simplest way is to pass 'glib' or 'qt' as the ``mainloop`` parameter
    to ``init``.
  - The methods ``attach_to_widget`` and ``attach_to_status_icon`` are not
    implemented. You can calculate the location you want the notification to
    appear and call ``Notification``.
  - ``set_property`` and ``get_property`` are not implemented. The summary, body
    and icon are accessible as attributes of a ``Notification`` instance.
  - Various methods that pynotify Notification instances got from gobject do not
    exist, or only implement part of the functionality.
  Several pynotify functions, especially getters and setters, are only supported
  for compatibility. You are encouraged to use more direct, Pythonic alternatives.


pkgId: d451f6ca1cb2023e3e7ad744f7028de38da67266ade5cb1c83c54a04552deb86
name: python-notmuch
arch: src
version: 0.29.2
epoch: 0
release: 1
summary: Python binding of the notmuch mail search and indexing library.
url: https://github.com/weilbith/notmuch-bindings.git
rpm_license: GPL-3.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f63266e0-0951-40c6-9c98-36047ce3abd6
location_href: 00004338-python-notmuch/python-notmuch-0.29.2-1.src.rpm
checksum_type: sha256
description:
  If you have downloaded the full source tarball, you can create the documentation
  with sphinx installed, go to the docs directory and "make html". A static
  version of the documentation is available at:
  https://notmuch.readthedocs.io/projects/notmuch-python/


pkgId: 6a7386d651a8b0bdd4f3fb39084de2c778728760840ace270a87e1d54d108c3f
name: python-notmuch2
arch: src
version: 0.1
epoch: 0
release: 1
summary: Pythonic bindings for the notmuch mail database using CFFI
url: https://github.com/weilbith/notmuch2-python-bindings.git
rpm_license: GPL-3.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-9a3ff512-5846-4857-b518-394297f9ba9e
location_href: 00004339-python-notmuch2/python-notmuch2-0.1-1.src.rpm
checksum_type: sha256
description:
  **If you are using notmuch v1, please checkout [notmuch](https://pypi.org/project/notmuch/)**

  Pythonic bindings for the notmuch mail database using CFFI. This module makes
  the functionality of the notmuch library (`https://notmuchmail.org`) available
  to python using [CFFI](https://cffi.readthedocs.io/en/latest/)

  _Disclaimer:_

  Notmuch version 2 is still not released yet even it has already a second release
  candidate. Please expect possible breaking changes.



  The intention of this repository is to make these bindings easily available for
  dependency management. It is originally taken from
  `https://git.notmuchmail.org/git/notmuch/bindings/python-cffi`.



  Install the build project from [PyPI](https://pypi.org/).

  ```shell
  $ pip install notmuch2
  ```

  ```shell
  $ poetry add notmuch2
  ```



  Reference the pure sources from
  [GitHub](https://github.com/weilbith/notmuch-python-bindings2).

  ```shell
  pip install from git+https://github.com/weilbith/notmuch2
  ```

  ```shell
  poetry add --git=https://github.com/weilbith/notmuch2
  ```


pkgId: f99c265f07a446adc27ffcabac6b9e748e1ad8dbc4edd33ef5b98c287a1c69d1
name: python-nox-poetry
arch: src
version: 1.0.2
epoch: 0
release: 1
summary: nox-poetry
url: https://github.com/cjolowicz/nox-poetry
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-ba994c5d-52ab-48ac-98e2-5c81e0f6b3b1
location_href: 00011163-python-nox-poetry/python-nox-poetry-1.0.2-1.src.rpm
checksum_type: sha256
description:
  [![PyPI](https://img.shields.io/pypi/v/nox-poetry.svg)][pypi_]
  [![Python Version](https://img.shields.io/pypi/pyversions/nox-poetry)][python version]
  [![License](https://img.shields.io/pypi/l/nox-poetry)][license]

  [![Read the documentation at https://nox-poetry.readthedocs.io/](https://img.shields.io/readthedocs/nox-poetry/latest.svg?label=Read%20the%20Docs)][read the docs]
  [![Tests](https://github.com/cjolowicz/nox-poetry/workflows/Tests/badge.svg)][tests]
  [![Codecov](https://codecov.io/gh/cjolowicz/nox-poetry/branch/main/graph/badge.svg)][codecov]

  [pypi_]: https://pypi.org/project/nox-poetry/
  [python version]: https://pypi.org/project/nox-poetry
  [read the docs]: https://nox-poetry.readthedocs.io/
  [tests]: https://github.com/cjolowicz/nox-poetry/actions?workflow=Tests
  [codecov]: https://app.codecov.io/gh/cjolowicz/nox-poetry

  Use [Poetry] inside [Nox] sessions

  This package provides a drop-in replacement for the `nox.session` decorator,
  and for the `nox.Session` object passed to user-defined session functions.
  This enables `session.install` to install packages at the versions specified in the Poetry lock file.

  ```python
  from nox_poetry import session

  @session(python=["3.10", "3.9"])
  def tests(session):
      session.install("pytest", ".")
      session.run("pytest")
  ```

  **Disclaimer:** _This project is not affiliated with Nox, and not an official Nox plugin._



  Install `nox-poetry` from the Python Package Index:

  ```console
  $ pip install nox-poetry
  ```

  **Important:**
  This package must be installed into the same environment that Nox is run from.
  If you installed Nox using [pipx],
  use the following command to install this package into the same environment:

  ```console
  $ pipx inject nox nox-poetry
  ```



  - Python 3.7+
  - Poetry >= 1.0.0

  You need to have a Poetry installation on your system.
  `nox-poetry` uses Poetry via its command-line interface.



  Import the `@session` decorator from `nox_poetry` instead of `nox`.
  There is nothing else you need to do.
  The `session.install` method automatically honors the Poetry lock file when installing dependencies.
  This allows you to manage packages used in Nox sessions as development dependencies in Poetry.

  This works because session functions are passed instances of `nox_poetry.Session`,
  a proxy for `nox.Session` adding Poetry-related functionality.
  Behind the scenes, nox-poetry uses Poetry to export a [constraints file] and build the package.

  For more fine-grained control, additional utilities are available under the `session.poetry` attribute:

  - `session.poetry.installroot(distribution_format=["wheel"|"sdist"])`
  - `session.poetry.build_package(distribution_format=["wheel"|"sdist"])`
  - `session.poetry.export_requirements()`

  Note that `distribution_format` is a [keyword-only parameter].

  Here is a comparison of the different installation methods:

  - Use `session.install(...)` to install specific development dependencies, e.g. `session.install("pytest")`.
  - Use `session.install(".")` (or `session.poetry.installroot()`) to install your own package.
  - Use `session.run_always("poetry", "install", external=True)` to install your package with _all_ development dependencies.

  Please read the next section for the tradeoffs of each method.



  Let's look at an example:

  ```python
  from nox_poetry import session

  @session(python=["3.10", "3.9"])
  def tests(session):
      session.install("pytest", ".")
      session.run("pytest")
  ```

  This session performs the following steps:

  - Build a wheel from the local package.
  - Install the wheel as well as the `pytest` package.
  - Invoke `pytest` to run the test suite against the installation.

  Consider what would happen in this session
  if we had imported `@session` from `nox` instead of `nox_poetry`:

  - Package dependencies would only be constrained by the wheel metadata, not by the lock file.
    In other words, their versions would not be _pinned_.
  - The `pytest` dependency would not be constrained at all.
  - Poetry would be installed as a build backend every time.

  Unpinned dependencies mean that your checks are not reproducible and deterministic,
  which can lead to surprises in Continuous Integration and when collaborating with others.
  You can solve these issues by declaring `pytest` as a development dependency,
  and installing your package and its dependencies using `poetry install`:

  ```python
  @nox.session
  def tests(session: Session) -> None:
      """Run the test suite."""
      session.run_always("poetry", "install", external=True)
      session.run("pytest")
  ```

  Unfortunately, this approach comes with its own set of problems:

  - Checks run against an editable installation of your package,
    i.e. your local copy of the code, instead of the installed wheel your users see.
    In the best case, any mistakes will still be caught during Continuous Integration.
    In the worst case, you publish a buggy release because you forgot to commit some changes.
  - The package is installed, as well as all of its core and development dependencies,
    no matter which tools a session actually runs.
    Code formatters or linters, for example, don't need your package installed at all.
    Besides being wasteful, it goes against the idea of running checks in isolated environments.

  `nox-poetry` uses a third approach:

  - Installations are performed by pip, via the `session.install` method.
  - When installing your own package, Poetry is used to build a wheel, which is passed to pip.
  - When installing third-party packages, Poetry is used to export a [constraints file],
    which is passed to pip along with the packages.
    The constraints file ensures that package versions are pinned by the lock file,
    without forcing an installation of every listed dependency and sub-dependency.

  In summary, this approach brings the following advantages:

  - You can manage tools like `pytest` as development dependencies in Poetry.
  - Dependencies are pinned by Poetry's lock file, making checks predictable and deterministic.
  - You can run checks against an installed wheel, instead of your local copy of the code.
  - Every tool can run in an isolated environment with minimal dependencies.
  - No need to install your package with all its dependencies if all you need is some linter.



  Contributions are very welcome.
  To learn more, see the [Contributor Guide].



  Distributed under the terms of the [MIT license][license],
  _nox-poetry_ is free and open source software.



  If you encounter any problems,
  please [file an issue] along with a detailed description.



  This project was generated from [@cjolowicz]'s [Hypermodern Python Cookiecutter] template.

  [@cjolowicz]: https://github.com/cjolowicz
  [hypermodern python cookiecutter]: https://github.com/cjolowicz/cookiecutter-hypermodern-python
  [nox]: https://nox.thea.codes/
  [poetry]: https://python-poetry.org/
  [constraints file]: https://pip.pypa.io/en/stable/user_guide/#constraints-files
  [file an issue]: https://github.com/cjolowicz/nox-poetry/issues
  [keyword-only parameter]: https://docs.python.org/3/glossary.html#keyword-only-parameter
  [nox.sessions.session.install]: https://nox.thea.codes/en/stable/config.html#nox.sessions.Session.install
  [nox.sessions.session.run]: https://nox.thea.codes/en/stable/config.html#nox.sessions.Session.run
  [pip install]: https://pip.pypa.io/en/stable/reference/pip_install/
  [pip]: https://pip.pypa.io/
  [pipx]: https://pipxproject.github.io/pipx/

  <!-- github-only -->

  [license]: https://github.com/cjolowicz/nox-poetry/blob/main/LICENSE
  [contributor guide]: https://github.com/cjolowicz/nox-poetry/blob/main/CONTRIBUTING.md


pkgId: b90bb79915e53cbe192deb8710791843c74c7c310db8a24b54a80f0ad8b96149
name: python-nplusone
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: Detecting the n+1 queries problem in Python
url: https://github.com/jmcarp/nplusone
rpm_license: Copyright 2016 Joshua Carp
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-faef32ff-9ca6-4e01-88df-dbc5822b42b7
location_href: 00012403-python-nplusone/python-nplusone-1.0.0-1.src.rpm
checksum_type: sha256
description:
          nplusone is a library for detecting the n+1 queries problem in Python ORMs, including SQLAlchemy, Peewee, and the Django ORM.


pkgId: cc0bc097b2b2bd76f27887c9db53ca6e6c2f283dadf717c2de4c81e33b44c8c4
name: python-nptyping
arch: src
version: 2.5.0
epoch: 0
release: 1
summary: Type hints for NumPy.
url: https://github.com/ramonhagenaars/nptyping
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a5aa3299-e4cf-4407-a44f-757db20d5ee1
location_href: 00004343-python-nptyping/python-nptyping-2.5.0-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://img.shields.io/pypi/pyversions/nptyping.svg)](https://img.shields.io/pypi/pyversions/nptyping.svg)
  [![Downloads](https://pepy.tech/badge/nptyping/month)](https://pepy.tech/project/nptyping)
  [![PyPI version](https://badge.fury.io/py/nptyping.svg)](https://badge.fury.io/py/nptyping)
  [![codecov](https://codecov.io/gh/ramonhagenaars/nptyping/branch/master/graph/badge.svg)](https://codecov.io/gh/ramonhagenaars/nptyping)
  [![Code style](https://img.shields.io/badge/code%20style-black-black)](https://img.shields.io/badge/code%20style-black-black)


  <p align='center'>
    <a href='https://https://pypi.org/project/nptyping/'>
      <img src='https://github.com/ramonhagenaars/nptyping/raw/master/resources/logo.png' />
    </a>
  </p>

  🧊 *Type hints for `NumPy`* <br/>
  🐼 *Type hints for `pandas.DataFrame`* <br/>
  💡 *Extensive dynamic type checks for dtypes shapes and structures* <br/>
  🚀 *[Jump to the Quickstart](https://github.com/ramonhagenaars/nptyping/blob/master/USERDOCS.md#Quickstart)*

  Example of a hinted `numpy.ndarray`:

  ```python
  >>> from nptyping import NDArray, Int, Shape

  >>> arr: NDArray[Shape["2, 2"], Int]

  ```

  Example of a hinted `pandas.DataFrame`:

  ```python
  >>> from nptyping import DataFrame, Structure as S

  >>> df: DataFrame[S["name: Str, x: Float, y: Float"]]

  ```



  | Command                          | Description                   |
  |:---------------------------------|-------------------------------|
  | `pip install nptyping`           | Install the basics            |
  | `pip install nptyping[pandas]`   | Install with pandas extension |
  | `pip install nptyping[complete]` | Install with all extensions   |



  Example of instance checking:
  ```python
  >>> import numpy as np

  >>> isinstance(np.array([[1, 2], [3, 4]]), NDArray[Shape["2, 2"], Int])
  True

  >>> isinstance(np.array([[1., 2.], [3., 4.]]), NDArray[Shape["2, 2"], Int])
  False

  >>> isinstance(np.array([1, 2, 3, 4]), NDArray[Shape["2, 2"], Int])
  False

  ```

  `nptyping` also provides `assert_isinstance`. In contrast to `assert isinstance(...)`, this won't cause IDEs or MyPy
  complaints. Here is an example:
  ```python
  >>> from nptyping import assert_isinstance

  >>> assert_isinstance(np.array([1]), NDArray[Shape["1"], Int])
  True

  ```



  You can also express structured arrays using `nptyping.Structure`:
  ```python
  >>> from nptyping import Structure

  >>> Structure["name: Str, age: Int"]
  Structure['age: Int, name: Str']

  ```

  Here is an example to see it in action:
  ```python
  >>> from typing import Any
  >>> import numpy as np
  >>> from nptyping import NDArray, Structure

  >>> arr = np.array([("Peter", 34)], dtype=[("name", "U10"), ("age", "i4")])
  >>> isinstance(arr, NDArray[Any, Structure["name: Str, age: Int"]])
  True

  ```

  Subarrays can be expressed with a shape expression between square brackets:
  ```python
  >>> Structure["name: Int[3, 3]"]
  Structure['name: Int[3, 3]']

  ```


  The recarray is a specialization of a structured array. You can use `RecArray`
  to express them.

  ```python
  >>> from nptyping import RecArray

  >>> arr = np.array([("Peter", 34)], dtype=[("name", "U10"), ("age", "i4")])
  >>> rec_arr = arr.view(np.recarray)
  >>> isinstance(rec_arr, RecArray[Any, Structure["name: Str, age: Int"]])
  True

  ```


  Pandas DataFrames can be expressed with `Structure` also. To make it more concise, you may want to alias `Structure`.
  ```python
  >>> from nptyping import DataFrame, Structure as S

  >>> df: DataFrame[S["x: Float, y: Float"]]

  ```



  Here is an example of a rich expression that can be done with `nptyping`:
  ```python
  def plan_route(
          locations: NDArray[Shape["[from, to], [x, y]"], Float]
  ) -> NDArray[Shape["* stops, [x, y]"], Float]:
      ...

  ```

  More examples can be found in the [documentation](https://github.com/ramonhagenaars/nptyping/blob/master/USERDOCS.md#Examples).



  * [User documentation](https://github.com/ramonhagenaars/nptyping/blob/master/USERDOCS.md) <br/>
  The place to go if you are using this library. <br/><br/>

  * [Release notes](https://github.com/ramonhagenaars/nptyping/blob/master/HISTORY.md) <br/>
  To see what's new, check out the release notes. <br/><br/>

  * [Contributing](https://github.com/ramonhagenaars/nptyping/blob/master/CONTRIBUTING.md) <br/>
  If you're interested in developing along, find the guidelines here. <br/><br/>

  * [License](https://github.com/ramonhagenaars/nptyping/blob/master/LICENSE) <br/>
  If you want to check out how open source this library is.


pkgId: 850458509ee8aebb19deabccc3dbe664f319abfb9aaa276088dc91f28cf74080
name: python-npyscreen
arch: src
version: 4.10.5
epoch: 0
release: 1
summary: Writing user interfaces without all that ugly mucking about in hyperspace
url: http://www.npcole.com/npyscreen/
rpm_license: New BSD License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-35d1f5f0-52bf-471f-9899-5781c5a9fd3a
location_href: 00004344-python-npyscreen/python-npyscreen-4.10.5-1.src.rpm
checksum_type: sha256
description:
  This library provides a framework for developing console applications using Python and curses.

  This framework should be powerful enough to create everything from quick, simple programs to complex, multi-screen applications. It is designed to make doing the simple tasks very quick and to take much of the pain out of writing larger applications.

  There is a very wide variety of default widgets - everything from simple text fields to more complex tree and grid views.

  I have used versions of this library for private scripts and small applications for around ten years. As a result, it is fairly mature.

  Documentation is online at http://npyscreen.readthedocs.org

  Please report bugs or make feature requests using the bug-tracker at http://code.google.com/p/npyscreen.

  There is a mailing list available at https://groups.google.com/forum/?fromgroups#!forum/npyscreen/


  *Latest Changes*:

  Version 4.10.5:  Merged in bug-fixes and enhancements suggested by Nathan Lewis.

  Version 4.10.0: All widgets have a safe_to_exit() method that will be called
  (at least by the default handlers) before exiting a widget.  Users can
  perform input verification functions here.  Return True if the widget should
  allow exiting, or False if it should not.  Various minor bug-fixes.

  Version 4.9.1: minor change to Multiline widgets to make custom versions easier (final widget value is never set to MORE_LABEL).

  Version 4.9:  new function blank_terminal() added. (User request)  Improvements to facilities for writing unit tests. (user request)
  Bugs related to hidden widgets fixed.

  Version 4.8.7 New methods added to the Multiline class to assist widget authors.


  Version 4.8.6 MultiLineAction widgets no longer raise an exception if empty
  and selected unless set to do so explicitly.

  Version 4.8.5 improves the writing of tests.

  Version 4.8.4 adds support for custom-defined colours (not recommended.
  Added at user request for a custom application).

  Version 4.8.3 updates the documentation.

  Version 4.8.2 makes the standard grid widget easier to customize by adding
  the custom_print_cell method.

  Version 4.8.1 fixes a bug that causes npyscreen to crash.

  Version 4.8.0 adds a mechanism for finer control of BoxTitle contained
  widgets.

  Version 4.7.2 includes documentation updates.

  Version 4.7.1 is a bugfix release.

  Version 4.7.0 adds scripting support for writing automated tests.

  Version 4.6.4 adds keybindings relevant to Windows.

  Version 4.6.3 is a minor bug-fix release.

  Version 4.6.1 updates the documentation to note that there is a bug in
  Python's curses library in 3.4.0.  This is fixed in 3.4.1.  I do not propose
  to put a workaround into npyscreen, which would complicate the code a great
  deal for a bug that very few people face.  For more details, see:
  http://bugs.python.org/issue21088




  Version 4.6.0 introduces a way to define a callback for when widget values change.  The help system has been improved by minor interface changes.
  Both of these were user suggestions.  Thank you to those who suggested them.

  Version 4.5.0 introduces a greater control of colour for certain widgets.

  Version 4.4.0 introduces the new tree class TreeData.  This is a new version of NPSTreeData that follows PEP 8 conventions for method names.  NPSTreeData is now deprecated.
  The form class ActionFormMinimal has been added at a user request.  This is a special version of ActionFrom that only features an OK button by default.

  Version 4.3.5 introduces the new classes SliderNoLabel, TitleSliderNoLabel, SliderPercent, TitleSliderPercent.


  Version 4.3.4 Minor bugfixes.  The notify functions and ActionPopups derived from them now use the ActionFormV2 widgets.
  This change should not affect existing code, but let me know if there are problems.

  Version 4.3.0 allows you to specify a negative value for rely or relx when creating a widget.  This will cause the widget to be aligned
  with the bottom or right of the screen.  The new method *set_relyx(y, x)* can be used to set the position of the widget on the Form if you never need to do that manually.

  The classes *ActionFormV2*, *ActionFormExpandedV2* and *ActionFormV2WithMenus* have been introduced.
  These feature cleaner code that should be easier to subclass.

  The *ButtonPress* class can now be created with the argument
  *when_pressed_function=None*, which can be used in place of overriding the *whenPressed* method.  Note that this might create a reference cycle
  within your application, so use with care.


  Version 4.2.0 introduces the ability of Grid widgets to highlight the whole line that the cursor is on (user request).

  Version 4.1.0 introduces support for hvc consoles (thanks to wu.fuheng@********* for the bug report).  Title widgets can now define a when_cursor_moved() method directly
  on themselves that will be called as expected by the contained entry_widget during its edit loop (user request).


  Version 4.0.0 introduces a new version scheme.  Due to a packaging error in
  the 3.0 release series some users were having problems obtaining the latest
  version. This is most easily fixed with a new major version release.

  Version 3.10 MultiLineEditable, MultiLineEditableTitle, MultiLineEditableBoxed classes added, allowing the user to edit lists of items.
  See EXAMPLE-MultilineEditable for an example.

  Version 3.6 Title.. widgets should now resize properly.  Menu items can now
  be specified with arguments and keywords.

  Version 3.5 when_value_edited defined on Title.. widgets now work as users expect.

  Version 3.4 Fixed bugs in Title.. widgets and in the App classes.

  Version 3.3 and the subsequent minor releases fix some bugs, mainly related
  to changes caused by allowing resized forms.

  Version 3.2 adds CheckboxBare - a checkbox without a label.  Added at user request.

  Version 3.0 *IMPORTANT* The version number has changed to version 3.0.
  This is because newer versions of pip distinguish between pre-release and released versions,
  and this will allow more flexibility in future releases. A version '2.0' might have caused confusion at this stage.

  Version 3.0 fixes the specification of max_width values for titled widgets (Thanks to Phil Rich for the bug report).
  Please report any further problems.

  Version 2.0pre90 introduces a new BufferPager and TitleBufferPager class. (User request, suggested by dennis@wsec.be)

  Version 2.0pre88 *IMPORTANT* This version supports resizing the terminal.
  Read the documentation for more detail about how to disable this feature if
  you need to.  It has been implemented in a way that should be compatible
  with existing code.  New code can make the resizing even more flexible.

  Version 2.0pre87 Updates the documentation and contains various bug fixes.

  Version 2.0pre85 and 2.0pre86 are both bugfix releases.

  Version 2.0pre84 introduces an experimental system for editing lists of
  options.  See documentation for details.

  Version 2.0pre83 multi-line checkbox widgets are now possible.  These can also be used as contained widgets within the multiselect class. See documentation for details.

  Version 2.0pre82 changes the menu system and allows menu items to be given keyboard shortcuts.

  Version 2.0pre81 introduces FilenameCombo, TitleFilenameCombo.

  Version 2.0pre79 is a bugfix release.

  Version 2.0pre76 further improves the handling of mouse events on compatible
  terminals.


  Version 2.0pre75 improves the handling of the mouse on compatible terminals.

  Version 2.0pre74 corrects one minor bug and introduces makes box widgets
  behave slightly more predictably (.editable attribute now linked to that of
  the contained widget.

  Version 2.0pre73 corrects two bugs - thanks to Lasse for his help in finding
  them and offering patches.

  Version 2.0pre71 new tree classes introduced. Bug fixes.

  Version 2.0pre70 introduces the MLTreeMultiSelect class.

  Version 2.0pre69 fixes and tidies up some of the new tree classes.  There is an API change assocatied with this, noted in the documentation, though backward compatibility should have been maintained.

  Version 2.0pre68 setting a form's .editing attribute to False now causes it to exit immediately,
  even if a widget is still being edited.

  Version 2.0pre67 fixes minor bugs.

  Version 2.0pre65 fixes several bugs.  All textboxes now honour the .hidden
  attribute.  The major side effect of this is that tree classes are now
  easier to write.

  Version 2.0pre64 extends multi-page support and includes revision to the
  documentation.

  Version 2.0pre63 adds initial support for multi-page forms.  See documentation on the
  FormMultiPage class for details.

  Version 2.0pre57 fixes color support - it should now be possible to display
  a terminal with a different color background. Text widgets have some
  additional color options.

  Version 2.0pre52 fixes compatibility with python2.6, 3.0 and 3.1.  All other versions should be unaffected.

  Version 2.0pre50 enables basic mouse support.  Note that the Apple terminal does not handle mouse events correctly.


pkgId: ad90869faacb3677bf9a7da84a46f2dbed50c04e80e7125bf5b195a8393de59c
name: python-nrf24
arch: src
version: 2.0.0
epoch: 0
release: 1
summary: A package enabling communication using NRF24L01 modules.
url: https://github.com/bjarne-hansen/py-nrf24
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a7413fc2-22ee-48a3-b343-c922f90ae2fe
location_href: 00004345-python-nrf24/python-nrf24-2.0.0-1.src.rpm
checksum_type: sha256
description:
  **PLEASE NOTE**: The new version 2.0.0 contains **breaking** changes with previous version 1.1.1.  Please make sure to consult the `CHANGES.md` for details.

  This package implements 2.4Ghz communication using NRF24L01 modules on a Raspberry Pi using Python via the pigpio daemon.

  The code is based on a modified version of some example code found on [StackExchange](https://raspberrypi.stackexchange.com/questions/77290/nrf24l01-only-correctly-retrieving-status-and-config-registers).  The author of the original code is also the author of the ```pigpio``` library found here http://abyz.me.uk/rpi/pigpio/.

  I have obtained the original authors approval to modify and distribute the code anyway I want.  So, I have created a very basic Python package and published it on PyPI under a MIT license.

  The ```nrf24``` packages depends on the ```pigpio``` package that is available via PyPI as well.

  For further information please refer to the github project page at https://github.com/bjarne-hansen/py-nrf24.


pkgId: 8a7db2521a025c29ad976cb1517a883783df20112096a95c4013640dfcd04afa
name: python-ns1-python
arch: src
version: 0.18.0
epoch: 0
release: 1
summary: Python SDK for the NS1 DNS platform
url: https://github.com/ns1/ns1-python
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-60b01e27-3c06-4fb9-bc04-d473b2500ad8
location_href: 00004346-python-ns1-python/python-ns1-python-0.18.0-1.src.rpm
checksum_type: sha256
description:
  > This project is in [active development](https://github.com/ns1/community/blob/master/project_status/ACTIVE_DEVELOPMENT.md).
  A Python SDK for accessing NS1, the Data Driven DNS platform.


pkgId: aceef646c2b3f48e479264e30098f1529784a95dd7c206eca020993e3303ab41
name: python-nteract-scrapbook
arch: src
version: 0.4.2
epoch: 0
release: 1
summary: A library for recording and reading data in Jupyter and nteract Notebooks
url: https://github.com/nteract/scrapbook
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-06eff033-bc31-4427-83cb-c01d27636565
location_href: 00012019-python-nteract-scrapbook/python-nteract-scrapbook-0.4.2-1.src.rpm
checksum_type: sha256
description:
  Scrapbook defines the following items:
  - **scraps**: serializable data values and visualizations such as strings, lists of
    objects, pandas dataframes, charts, images, or data references.
  - **notebook**: a wrapped nbformat notebook object with extra methods for interacting
    with scraps.
  - **scrapbook**: a collection of notebooks with an interface for asking questions of
    the collection.
  - **encoders**: a registered translator of data to/from notebook
    storage formats.

  The `scrap` model houses a few key attributes in a tuple, including:
  - **name**: The name of the scrap
  - **data**: Any data captured by the scrapbook api call
  - **encoder**: The name of the encoder used to encode/decode data to/from the notebook


pkgId: 4f06a09921589f8aa2536c828cb78ed876e38139c60e1e084a6a6aeade98a544
name: python-nudatus
arch: src
version: 0.0.5
epoch: 0
release: 1
url: https://github.com/zanderbrown/nudatus
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d1785d85-cbc6-4d51-8a96-e1a099d2e8a4
location_href: 00004347-python-nudatus/python-nudatus-0.0.5-1.src.rpm
checksum_type: sha256
summary:
  Strip comments from scripts, intended for use with MicroPython and other storage constrained environments

description:
  Nudatus is a tool to remove comments from Python scripts.
  It was created for use in uflash_ to help squeeze longer programs onto the micro:bit but it should be suitable for various environments with restricted storage.
  *Note* Nudatus uses the tokenizer built into Python so only supports the syntax of the version it's running on, but it's extremely unlikely this will cause you any issues (print is handled fine).
  Personally I pronounce nudatus as new-dat-us which I appreciate is probably 'wrong'.


pkgId: 4b2226e50787f8ea91fe6a2fc59449afbb9c394a529bc025174d181d55a712ea
name: python-nuheat
arch: src
version: 1.0.1
epoch: 0
release: 1
summary: A Python library that allows control of connected NuHeat Signature radiant floor thermostats.
url: https://github.com/broox/python-nuheat
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-14a31af9-5a4d-47fe-a78b-2f6aa606d12f
location_href: 00004349-python-nuheat/python-nuheat-1.0.1-1.src.rpm
checksum_type: sha256
description:
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/nuheat?style=flat-square)](https://pypi.org/project/nuheat/)
  [![PyPI - Version](https://img.shields.io/pypi/v/nuheat?style=flat-square)](https://pypi.org/project/nuheat/)
  [![PyPI - Downloads](https://img.shields.io/pypi/dm/nuheat?style=flat-square)](https://pypi.org/project/nuheat/)
  [![GitHub Workflow Status](https://img.shields.io/github/workflow/status/broox/python-nuheat/Python%20package?style=flat-square)](https://github.com/broox/python-nuheat/actions?query=branch%3Amaster)
  [![Coveralls](https://img.shields.io/coveralls/github/broox/python-nuheat?style=flat-square)](https://coveralls.io/github/broox/python-nuheat?branch=master)
  [![Snyk Vulnerabilities for GitHub Repo](https://img.shields.io/snyk/vulnerabilities/github/broox/python-nuheat?style=flat-square)](https://snyk.io/advisor/python/nuheat)

  A Python 3 library that allows control of connected [NuHeat Signature](http://www.nuheat.com/products/thermostats/signature-thermostat) radiant floor thermostats.

  * This uses the web-based NuHeat API, so it requires an external internet connection
  * The API in use is not an officially published API, so it could change without notice
  * Please contribute!



  ```shell
  $ pip install nuheat
  ```



  ```python
  from nuheat import NuHeat


  api = NuHeat("email@example.com", "your-secure-password")
  api.authenticate()



  thermostat = api.get_thermostat("12345")


  thermostat.fahrenheit
  thermostat.celsius


  thermostat.target_fahrenheit
  thermostat.target_celsius


  thermostat.min_fahrenheit
  thermostat.max_fahrenheit
  thermostat.min_celsius
  thermostat.max_celsius


  thermostat.schedule_mode







  thermostat.heating
  thermostat.online
  thermostat.serial_number




  thermostat.set_target_fahrenheit(72)


  thermostat.set_target_celsius(22)


  thermostat.target_fahrenheit = 72


  thermostat.target_celsius = 22


  thermostat.resume_schedule()


  thermostat.schedule_mode = 1


  thermostat.set_target_fahrenheit(72, mode=2)


  thermostat.set_target_celsius(22, mode=2)



  from datetime import datetime, timedelta, timezone
  hold_time = datetime.now() + timedelta(hours=4)
  thermostat.set_target_fahrenheit(69, mode=2, hold_time=hold_time)
  ```



  Pull requests are always welcome!



  ```shell

  $ docker build -t python-nuheat .
  $ docker run -it --rm -v $(pwd):/python-nuheat python-nuheat


  $ ipython


  $ pytest
  ```


pkgId: 10bc3ff142e319c6230f895bcb3921eac7371a192a0ffaca0765ae05cbde2bcc
name: python-nulltype
arch: src
version: 2.3.1
epoch: 0
release: 1
summary: Null values and sentinels like (but not) None, False & True
url: https://bitbucket.org/jeunice/nulltype
rpm_license: Apache License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-cae19f02-df76-4af4-b8d2-ff979cfda7d9
location_href: 00012421-python-nulltype/python-nulltype-2.3.1-1.src.rpm
checksum_type: sha256
description:
      from nulltype import NullType
      Void = NullType('Void')
      
      assert bool(Void) == False
      assert len(EmpVoidty) == 0
      assert list(Void) == []
      assert Void.some_attribute is Empty
      assert Void[22] is Nothing
      assert Void("hey", 12) is Empty
  You can create as many custom null values as you like. For convenience, several
  default values, ``Empty``, ``Null``, and ``Nothing``, are exported. That way,
  if you don't really want to create your own, you can easily import a
  pre-constituted null value::
      from nulltype import Empty


pkgId: b0db231035b7923c128b7d3d6d6e72628c28c6ca6b0cd9d3c7f748b266998f24
name: python-num2words
arch: src
version: 0.5.12
epoch: 0
release: 1
summary: Modules to convert numbers to words. Easily extensible.
url: https://github.com/savoirfairelinux/num2words
rpm_license: LGPL
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a419ec20-e5ff-412f-a1b5-c43be3bf6ba1
location_href: 00004350-python-num2words/python-num2words-0.5.12-1.src.rpm
checksum_type: sha256
description:
  ``num2words`` is a library that converts numbers like ``42`` to words like ``forty-two``.
  It supports multiple languages (see the list below for full list
  of languages) and can even generate ordinal numbers like ``forty-second``
  (although this last feature is a bit buggy for some languages at the moment).
  The project is hosted on GitHub_. Contributions are welcome.


pkgId: 021dfc00a6c133c4196e6a730b21dd186c7cdc897d6243b5cc08ec1097c14669
name: python-numcodecs
arch: src
version: 0.11.0
epoch: 0
release: 1
summary: A Python package providing buffer compression and transformation codecs for use
url: https://github.com/zarr-developers/numcodecs
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e1bc7a59-11de-43f5-9016-c9e7532245a5
location_href: 00004351-python-numcodecs/python-numcodecs-0.11.0-1.src.rpm
checksum_type: sha256
description:
  Numcodecs is a Python package providing buffer compression and transformation
  codecs for use in data storage and communication applications.


pkgId: d58a0abb688591b491291a19cd17e28eaae1e07f9a2cb8f22298223337dc8419
name: python-numpy-financial
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: Simple financial functions
url: https://numpy.org/numpy-financial/
rpm_license: BSD 3-Clause
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-17558b94-cfd8-41f6-882d-489c95d304ca
location_href: 00011439-python-numpy-financial/python-numpy-financial-1.0.0-1.src.rpm
checksum_type: sha256
description:
  The `numpy-financial` package contains a collection of elementary financial
  functions.

  The [financial functions in NumPy](https://numpy.org/doc/1.17/reference/routines.financial.html)
  are deprecated and eventually will be removed from NumPy; see
  [NEP-32](https://numpy.org/neps/nep-0032-remove-financial-functions.html)
  for more information.  This package is the replacement for the original
  NumPy financial functions.

  The source code for this package is available at https://github.com/numpy/numpy-financial.

  The importable name of the package is `numpy_financial`.  The recommended
  alias is `npf`.  For example,

  ```
  >>> import numpy_financial as npf
  >>> npf.irr([-250000, 100000, 150000, 200000, 250000, 300000])
  0.5672303344358536
  ```


pkgId: 2c09bbf490d539140ebff02ac1fae3526ca05b23b037b7c7aaa564a225371854
name: python-numpy-stl
arch: src
version: 3.0.0
epoch: 0
release: 1
summary: Library to make reading, writing and modifying both binary and ascii STL files easy.
url: https://github.com/WoLpH/numpy-stl/
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-2c27bc6b-776c-4e3d-81ca-e834edd7643b
location_href: 00004355-python-numpy-stl/python-numpy-stl-3.0.0-1.src.rpm
checksum_type: sha256
description:
  Simple library to make working with STL files (and 3D objects in general) fast
  and easy.
  Due to all operations heavily relying on `numpy` this is one of the fastest
  STL editing libraries for Python available.


pkgId: 39663906568060db2ffb8ed00885903bc30dfd22179a8af95cbec1808a0729dd
name: python-nwdiag
arch: src
version: 3.0.0
epoch: 0
release: 1
summary: nwdiag generates network-diagram image from text
url: http://blockdiag.com/
rpm_license: Apache License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-473cbce0-d537-46ec-a963-605d1ef5a0ee
location_href: 00004357-python-nwdiag/python-nwdiag-3.0.0-1.src.rpm
checksum_type: sha256
description:
  * Generate network-diagram from dot like text (basic feature).
  * Multilingualization for node-label (utf-8 only).
  You can get some examples and generated images on
  `blockdiag.com <http://blockdiag.com/en/nwdiag/nwdiag-examples.html>`_ .


pkgId: b0d6eb138dd1f843a1d75a11d109f95feaee572e4eabd5d9219cf9a9c163e56b
name: python-nylas
arch: src
version: 5.14.0
epoch: 0
release: 1
summary: Python bindings for Nylas, the next-generation email platform.
url: https://github.com/nylas/nylas-python
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-104bbe52-d264-4944-8851-14b7b5b3e259
location_href: 00013093-python-nylas/python-nylas-5.14.0-1.src.rpm
checksum_type: sha256
description:
  ![Build Status](https://github.com/nylas/nylas-python/workflows/Test/badge.svg)
  [![Code Coverage](https://codecov.io/gh/nylas/nylas-python/branch/main/graph/badge.svg)](https://codecov.io/gh/nylas/nylas-python)

  Python bindings for the Nylas REST API. https://www.nylas.com/docs

  The Nylas APIs power applications with email, calendar, and contacts CRUD and bi-directional sync from any inbox in the world.

  Nylas is compatible with 100% of email service providers, so you only have to integrate once.
  No more headaches building unique integrations against archaic and outdated IMAP and SMTP protocols.


pkgId: 5b2a82f7dbf9a9506171b2215a26e2e0bfa15e28f5e2b46727df8e53c976a82a
name: python-oauth2client
arch: src
version: 4.1.3
epoch: 0
release: 1
summary: OAuth 2.0 client library
url: http://github.com/google/oauth2client/
rpm_license: Apache 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d19b1f4e-3139-4173-a73f-e3137f5ad21b
location_href: 00009050-python-oauth2client/python-oauth2client-4.1.3-1.src.rpm
checksum_type: sha256
description:
  oauth2client is a client library for OAuth 2.0.

  Note: oauth2client is now deprecated. No more features will be added to the
      libraries and the core team is turning down support. We recommend you use
      `google-auth <https://google-auth.readthedocs.io>`__ and
      `oauthlib <http://oauthlib.readthedocs.io/>`__.


pkgId: 66fbaa49aba3d3e17fda28256e4d06835ed2f8658465ac8bb5fce0da95eb1488
name: python-oauthlib
arch: src
version: 3.2.2
epoch: 0
release: 1
summary: A generic, spec-compliant, thorough implementation of the OAuth request-signing logic
url: https://github.com/oauthlib/oauthlib
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-049d3e56-8ae0-41b3-9df5-26301b2a6a5f
location_href: 00008913-python-oauthlib/python-oauthlib-3.2.2-1.src.rpm
checksum_type: sha256
description:
  *A generic, spec-compliant, thorough implementation of the OAuth request-signing
  logic for Python 3.6+.*
  OAuth often seems complicated and difficult-to-implement. There are several
  prominent libraries for handling OAuth requests, but they all suffer from one or
  both of the following:
  1. They predate the `OAuth 1.0 spec`_, AKA RFC 5849.
  2. They predate the `OAuth 2.0 spec`_, AKA RFC 6749.
  3. They assume the usage of a specific HTTP request library.
  OAuthLib is a framework which implements the logic of OAuth1 or OAuth2 without
  assuming a specific HTTP request object or web framework. Use it to graft OAuth
  client support onto your favorite HTTP library, or provide support onto your
  favourite web framework. If you're a maintainer of such a library, write a thin
  veneer on top of OAuthLib and get OAuth support for very little effort.


pkgId: 45db1be33ba0fe45dc663de904b9f1faf40e4d1b6bb413eae13bd9bf07f54128
name: python-obd
arch: src
version: 0.7.1
epoch: 0
release: 1
summary: Serial module for handling live sensor data from a vehicle's OBD-II port
url: http://github.com/brendan-w/python-OBD
rpm_license: GNU GPLv2
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-1408adca-9cb1-4b59-8306-580701475e2b
location_href: 00002864-python-OBD/python-obd-0.7.1-1.src.rpm
checksum_type: sha256
description:
  A python module for handling realtime sensor data from OBD-II vehicle
  ports. Works with ELM327 OBD-II adapters, and is fit for the Raspberry
  Pi.


pkgId: 0e597b60a54b2ff818d932b5786f899f4ec2f109c63ea39af31c326466839a03
name: python-objgraph
arch: src
version: 3.5.0
epoch: 0
release: 1
summary: Draws Python object reference graphs with graphviz
url: https://mg.pov.lt/objgraph/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-baafe4f6-927b-4870-a3f0-63cc208d4363
location_href: 00010839-python-objgraph/python-objgraph-3.5.0-1.src.rpm
checksum_type: sha256
description:
  ``objgraph`` is a module that lets you visually explore Python object graphs.
  You'll need `graphviz <https://www.graphviz.org/>`_ if you want to draw
  the pretty graphs.
  I recommend `xdot <https://pypi.python.org/pypi/xdot>`_ for interactive use.
  ``pip install xdot`` should suffice; objgraph will automatically look for it
  in your ``PATH``.


pkgId: fff3c3cfef7e7e189088e361386fae9cdaa4f82185956c92d756d5f4bc6b532e
name: python-objsize
arch: src
version: 0.6.1
epoch: 0
release: 1
url: https://github.com/liran-funaro/objsize
rpm_license: BSD-3-Clause
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-fc90949f-1b54-4cd8-923b-ebd2a55223f5
location_href: 00011741-python-objsize/python-objsize-0.6.1-1.src.rpm
checksum_type: sha256
summary:
  Traversal over Python's objects subtree and calculate the total size of the subtree in bytes (deep size).

description:
  [![Coverage Status](https://coveralls.io/repos/github/liran-funaro/objsize/badge.svg?branch=master)](https://coveralls.io/github/liran-funaro/objsize?branch=master)
  Traversal over Python's objects subtree and calculate the total size of the subtree in bytes (deep size).
  This module traverses all child objects using Python's internal GC implementation.
  It attempts to ignore shared objects (i.e., `None`, types, modules, classes, functions, lambdas), as they are common
  among all objects.
  It is implemented without recursive calls for high performance.

  - Traverse objects' subtree
  - Calculate objects' (deep) size in bytes
  - Exclude non-exclusive objects
  - Exclude specified objects subtree
  - Allow the user to specify unique handlers for:
      - Object's size calculation
      - Object's referents (i.e., its children)
      - Object filter (skip specific objects)
  [Pympler](https://pythonhosted.org/Pympler/) also supports determining an object deep size via `pympler.asizeof()`.
  There are two main differences between `objsize` and `pympler`.
  1. `objsize` has additional features:
      * Traversing the object subtree: iterating all the object's descendants one by one.
      * Excluding non-exclusive objects. That is, objects that are also referenced from somewhere else in the program.
        This is true for calculating the object's deep size and for traversing its descendants.
  2. `objsize` has a simple and robust implementation with significantly fewer lines of code, compared to `pympler`.
     The Pympler implementation uses recursion, and thus have to use a maximal depth argument to avoid reaching Python's
     max depth.
     `objsize`, however, uses BFS which is more efficient and simple to follow.
     Moreover, the Pympler implementation carefully takes care of any object type.
     `objsize` archives the same goal with a simple and generic implementation, which has fewer lines of code.

  ```bash
  pip install objsize==0.6.1
  ```

  Calculate the size of the object including all its members in bytes.
  ```pycon
  >>> import objsize
  >>> objsize.get_deep_size(dict(arg1='hello', arg2='world'))
  340
  ```
  It is possible to calculate the deep size of multiple objects by passing multiple arguments:
  ```pycon
  >>> objsize.get_deep_size(['hello', 'world'], dict(arg1='hello', arg2='world'), {'hello', 'world'})
  628
  ```

  `objsize` can calculate the size of an object's entire subtree in bytes regardless of the type of objects in it, and its
  depth.
  Here is a complex data structure, for example, that include a self reference:
  ```python
  my_data = (list(range(3)), list(range(3, 6)))
  class MyClass:
      def __init__(self, x, y):
          self.x = x
          self.y = y
          self.d = {'x': x, 'y': y, 'self': self}
      def __repr__(self):
          return "MyClass"
  my_obj = MyClass(*my_data)
  ```
  We can calculate `my_obj` deep size, including its stored data.
  ```pycon
  >>> objsize.get_deep_size(my_obj)
  708
  ```
  We might want to ignore non-exclusive objects such as the ones stored in `my_data`.
  ```pycon
  >>> objsize.get_deep_size(my_obj, exclude=[my_data])
  384
  ```
  Or simply let `objsize` detect that automatically:
  ```pycon
  >>> objsize.get_exclusive_deep_size(my_obj)
  384
  ```

  `objsize` filters functions, lambdas, and classes by default since they are usually shared among many objects.
  For example:
  ```pycon
  >>> method_dict = {"identity": lambda x: x, "double": lambda x: x*2}
  >>> objsize.get_deep_size(method_dict)
  232
  ```
  Some objects, however, as illustrated in the above example, have unique functions not shared by other objects.
  Due to this, it may be useful to count their sizes.
  You can achieve this by providing an alternative filter function.
  ```pycon
  >>> objsize.get_deep_size(method_dict, filter_func=objsize.shared_object_filter)
  986
  ```
  Notes:
  * The default filter function is `objsize.shared_object_or_function_filter`.
  * When using `objsize.shared_object_filter`, shared functions and lambdas are also counted, but builtin functions are
    still excluded.

  Some objects handle their data in a way that prevents Python's GC from detecting it.
  The user can supply a special way to calculate the actual size of these objects.

  Using a simple calculation of the object size won't work for `torch.Tensor`.
  ```pycon
  >>> import torch
  >>> objsize.get_deep_size(torch.rand(200))
  72
  ```
  So the user can define its own size calculation handler for such cases:
  ```python
  import objsize
  import sys
  import torch
  def get_size_of_torch(o):
      
      if objsize.safe_is_instance(o, torch.Tensor):
          return sys.getsizeof(o.storage())
      else:
          return sys.getsizeof(o)
  ```
  Then use it as follows:
  ```pycon
  >>> import torch
  >>> objsize.get_deep_size(
  848
  ```
  However, this neglects the object's internal structure.
  The user can help `objsize` to find the object's hidden storage by supplying it with its own referent and filter
  functions:
  ```python
  import objsize
  import gc
  import torch
  def get_referents_torch(*objs):
      
      yield from gc.get_referents(*objs)
      for o in objs:
          
          if type(o) == torch.Tensor:
              yield o.storage()
  def filter_func(o):
      
      
      
      
      return not objsize.safe_is_instance(o, (
          *objsize.SharedObjectOrFunctionType, torch.storage._UntypedStorage, torch.dtype
      ))
  ```
  Then use these as follows:
  ```pycon
  >>> import torch
  >>> objsize.get_deep_size(
  1024
  ```

  Using a simple calculation of the object size won't work for `weakref.proxy`.
  ```pycon
  >>> import weakref
  >>> class Foo(list):
  >>> o = Foo([0]*100)
  >>> objsize.get_deep_size(o)
  896
  >>> o_ref = weakref.proxy(o)
  >>> objsize.get_deep_size(o_ref)
  72
  ```
  To mitigate this, you can provide a method that attempts to fetch the proxy's referents:
  ```python
  import weakref
  import gc
  def get_weakref_referents(*objs):
      yield from gc.get_referents(*objs)
      for o in objs:
          if type(o) in weakref.ProxyTypes:
              try:
                  yield o.__repr__.__self__
              except ReferenceError:
                  pass
  ```
  Then use it as follows:
  ```pycon
  >>> objsize.get_deep_size(o_ref, get_referents_func=get_weakref_referents)
  968
  ```
  After the referenced object will be collected, then the size of the proxy object will be reduced.
  ```pycon
  >>> del o
  >>> gc.collect()
  >>> # Wait for the object to be collected
  >>> objsize.get_deep_size(o_ref, get_referents_func=get_weakref_referents)
  72
  ```

  A user can implement its own function over the entire subtree using the traversal method, which traverses all the
  objects in the subtree.
  ```pycon
  >>> for o in objsize.traverse_bfs(my_obj):
  MyClass
  {'x': [0, 1, 2], 'y': [3, 4, 5], 'd': {'x': [0, 1, 2], 'y': [3, 4, 5], 'self': MyClass}}
  [0, 1, 2]
  [3, 4, 5]
  {'x': [0, 1, 2], 'y': [3, 4, 5], 'self': MyClass}
  2
  1
  0
  5
  4
  3
  ```
  Similar to before, non-exclusive objects can be ignored.
  ```pycon
  >>> for o in objsize.traverse_exclusive_bfs(my_obj):
  MyClass
  {'x': [0, 1, 2], 'y': [3, 4, 5], 'd': {'x': [0, 1, 2], 'y': [3, 4, 5], 'self': MyClass}}
  {'x': [0, 1, 2], 'y': [3, 4, 5], 'self': MyClass}
  ```

  [BSD-3](LICENSE)


pkgId: 066f3d0eb05d48d373799006287337a2323ea764884314f14726491dc8eb4888
name: python-oci-cli
arch: src
version: 3.25.1
epoch: 0
release: 1
summary: Oracle Cloud Infrastructure CLI
url: https://docs.cloud.oracle.com/iaas/Content/API/Concepts/cliconcepts.htm
rpm_license: Universal Permissive License 1.0 or Apache License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a20edfd3-1732-4c76-bd1b-81cc536cee3f
location_href: 00011464-python-oci-cli/python-oci-cli-3.25.1-1.src.rpm
checksum_type: sha256
description:
  This is the command line interface for Oracle Cloud Infrastructure.
  The project is open source and maintained by Oracle Corp. The home page for the project is `here`__.
  __ https://docs.cloud.oracle.com/Content/API/Concepts/cliconcepts.htm


pkgId: 90a13c832eef8fc77df69a962a45dcf73013a19afd55b2f575d9b8c792e2ef11
name: python-od
arch: src
version: 2.0.2
epoch: 0
release: 1
summary: Shorthand syntax for building OrderedDicts
url: https://github.com/epsy/od
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d62503d7-10d8-4487-94b9-b8845e382fc4
location_href: 00013404-python-od/python-od-2.0.2-1.src.rpm
checksum_type: sha256
description:
  od
  ==

  .. image:: https://github.com/epsy/od/actions/workflows/ci.yml/badge.svg?branch=master
     :target: https://github.com/epsy/od/actions/workflows/ci.yml

  .. image:: https://coveralls.io/repos/github/epsy/od/badge.svg?branch=master
     :target: https://coveralls.io/github/epsy/od?branch=master


  The ``od`` package adds a shorthand syntax to create instances of `OrderedDict
  <https://docs.python.org/3/library/collections.html#collections.OrderedDict>`_
  ::

      >>> import od
      >>>
      >>> od["cat": "fish", "mouse": "cheese"]
      OrderedDict([('cat', 'fish'), ('mouse', 'cheese')])
      >>> od["mouse": "cheese", "cat": "fish"]
      OrderedDict([('mouse', 'cheese'), ('cat', 'fish')])

  You can also use it like the regular constructor for ``OrderedDict``::

      >>> od()
      OrderedDict()
      >>> an_iterable = [("cat", "fish"), ("mouse", "cheese")]
      >>> od(an_iterable)
      OrderedDict([('cat', 'fish'), ('mouse', 'cheese')])

  Install this package using `pip <https://pip.pypa.io/en/stable/installing/>`_::

      $ pip install --user od


pkgId: 5fbca0b5a911641274cdcaa3070b493e89aa226df218832ac23611a549ea06c6
name: python-odML
arch: src
version: 1.5.2
epoch: 0
release: 1
summary: open metadata Markup Language
url: https://github.com/G-Node/python-odml
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-86c27494-d5a4-4dc1-8d8a-c2657b965b0a
location_href: 00004367-python-odml/python-odML-1.5.2-1.src.rpm
checksum_type: sha256
description:
  [![gh actions tests](https://github.com/G-Node/python-odml/workflows/run-tests/badge.svg?branch=master)](https://github.com/G-Node/python-odml/actions)
  [![Build status](https://ci.appveyor.com/api/projects/status/br7pe6atlwdg5618/branch/master?svg=true)](https://ci.appveyor.com/project/G-Node/python-odml/branch/master)
  [![Test coverage](https://coveralls.io/repos/github/G-Node/python-odml/badge.svg?branch=master)](https://coveralls.io/github/G-Node/python-odml)
  [![PyPI version](https://img.shields.io/pypi/v/odml.svg)](https://pypi.org/project/odML/)
  [![Read the Docs](https://img.shields.io/readthedocs/python-odml)](https://python-odml.readthedocs.io/en/latest/)




  The open metadata Markup Language is a file based format (XML, JSON, YAML) for storing
  metadata in an organised human- and machine-readable way. odML is an initiative to define
  and establish an open, flexible, and easy-to-use format to transport metadata.

  The Python-odML library can be easily installed via ```pip```. The source code is freely
  available on [GitHub](https://github.com/G-Node/python-odml). If you are not familiar
  with the version control system **git**, but still want to use it, have a look at the
  documentation available on the [git-scm website](https://git-scm.com/).




  More information about the project including related projects as well as tutorials and
  examples can be found at our odML [project page](https://g-node.github.io/python-odml).






  *python-odml* is most conveniently installed via pip.

  ```
  pip install odml
  ```

  To install the latest development version of odml you can use the git installation option of pip:

  ```
  pip install git+https://github.com/G-Node/python-odml
  ```

  Please note that this version might not be stable.



  - We have assembled a set of
   [tutorials](https://python-odml.readthedocs.io/en/latest/tutorial.html "Python Tutorial").



  The Python installation features multiple convenience commandline scripts.

  - `odmlconvert`: Converts odML files of previous file versions into the current one.
  - `odmltordf`: Converts odML files to the supported RDF version of odML.
  - `odmlview`: Render and browse local XML odML files in the webbrowser.

  All scripts provide detailed usage descriptions by adding the `help` flag to the command.

      odmlconvert -h
      odmltordf -h
      odmlview -h




  odML Version 1.4 introduced breaking format and API changes compared to the previous
  versions of odML. Files saved in the previous format versions can be converted to a 1.4
  compatible format using the version converter from the odml/tools package.

  Be aware that the value dtype ```binary``` has been removed. Incorporating actual binary
  data into odML files is discouraged, provide references to the original files using the
  ```URL``` dtype instead.

  For details regarding the introduced changes please check the [github
  release notes](https://github.com/G-Node/python-odml/releases).




  * Python 3.6+
  * Python packages:

    * lxml (version 3.7.2)
    * yaml (version >= 5.1)
    * rdflib (version >=4.2.2)

  * These packages will be downloaded and installed automatically if the ```pip```
    method is used to install odML. Alternatively, they can be installed from the OS
    package manager. On Ubuntu, they are available as:

    * python-lxml
    * python-yaml
    * python-rdflib

  * If you prefer installing using the Python package manager, the following packages are
    required to build the lxml Python package on Ubuntu 14.04:

    * libxml2-dev
    * libxslt1-dev
    * lib32z1-dev



  Python 2 has reached end of life. We will not keep any future versions of odml Python 2 compatible and will completely drop support for Python 2 with August 2020. We also recommend using a Python version >= 3.6. If a Python version < 3.6 is a requirement, the following dependency needs to be installed as well:

  * pip install
    * enum34 (version 0.4.4)
  * apt install
    * python-enum



  To download the Python-odML library please either use git and clone
  the repository from GitHub:

  ```
    $ git clone https://github.com/G-Node/python-odml.git
  ```

  If you don't want to use git download the ZIP file also provided on
  GitHub to your computer (e.g. as above on your home directory under a "toolbox"
  folder).

  To install the Python-odML library, enter the corresponding directory and run:

  ```
    $ cd python-odml
    $ python setup.py install
  ```

  **Note** The master branch is our current development branch, not all features might be
  working as expected. Use the release tags instead.




  See the [CONTRIBUTING](https://github.com/G-Node/python-odml/blob/master/CONTRIBUTING.md) document
  for more information on this.




  Should you find a behaviour that is likely a bug, please file a bug report at
  [the github bug tracker](https://github.com/G-Node/python-odml/issues).

  If you have questions regarding the use of the library, feel free to join the
  [#gnode](http://webchat.freenode.net?channels=%23gnode) IRC channel on freenode.


pkgId: 515aa24f5140c09c605d21e2342ae98371f083adda2318eec5c80f39ab39c763
name: python-odfpy
arch: src
version: 1.4.1
epoch: 0
release: 1
summary: Python API and tools to manipulate OpenDocument files
url: https://github.com/eea/odfpy
rpm_license: Apache Software License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-14f2952a-dd18-437f-83f6-fa8147c8c048
location_href: 00004366-python-odfpy/python-odfpy-1.4.1-1.src.rpm
checksum_type: sha256
description:
  Odfpy is a library to read and write OpenDocument v. 1.2 files.
  The main focus has been to prevent the programmer from creating invalid
  documents. It has checks that raise an exception if the programmer adds
  an invalid element, adds an attribute unknown to the grammar, forgets to
  add a required attribute or adds text to an element that doesn't allow it.

  These checks and the API itself were generated from the RelaxNG
  schema, and then hand-edited. Therefore the API is complete and can
  handle all ODF constructions.

  In addition to the API, there are a few scripts:

  - csv2odf - Create OpenDocument spreadsheet from comma separated values
  - mailodf - Email ODF file as HTML archive
  - odf2xhtml - Convert ODF to (X)HTML
  - odf2mht - Convert ODF to HTML archive
  - odf2xml - Create OpenDocument XML file from OD? package
  - odfimgimport - Import external images
  - odflint - Check ODF file for problems
  - odfmeta - List or change the metadata of an ODF file
  - odfoutline - Show outline of OpenDocument
  - odfuserfield - List or change the user-field declarations in an ODF file
  - xml2odf - Create OD? package from OpenDocument in XML form

  The source code is at https://github.com/eea/odfpy

  Visit https://github.com/eea/odfpy/wiki for documentation and examples.

  The code at https://joinup.ec.europa.eu/software/odfpy/home is obsolete.


pkgId: 92529b3b74c451de52f56c601926f17f947742af8f8b3f1a14bce9db03405d9a
name: python-ofxparse
arch: src
version: 0.21
epoch: 0
release: 1
summary: Tools for working with the OFX (Open Financial Exchange) file format
url: http://sites.google.com/site/ofxparse
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-b6f8bbc4-73dc-402c-bd49-98cc3bde5bb8
location_href: 00004368-python-ofxparse/python-ofxparse-0.21-1.src.rpm
checksum_type: sha256
description:
  ofxparse is a parser for Open Financial Exchange (.ofx) format files.  OFX
  files are available from almost any online banking site, so they work well
  if you want to pull together your finances from multiple sources.  Online
  trading accounts also provide account statements in OFX files.
  There are three different types of OFX files, called BankAccount,
  CreditAccount and InvestmentAccount files.  This library has been tested with
  real-world samples of all three types.  If you find a file that does not work
  with this library, please consider contributing the file so ofxparse can be
  improved.  See the Help! section below for directions on how to do this.


pkgId: 574462b23714f132666958f94992543f95361eb0925a4ded47dcd7dfa79afac5
name: python-ogr
arch: src
version: 0.44.0
epoch: 0
release: 1
summary: One API for multiple git forges.
url: https://github.com/packit/ogr
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-12d9b461-84e5-4b94-8acd-a257590f60e8
location_href: 00004369-python-ogr/python-ogr-0.44.0-1.src.rpm
checksum_type: sha256
description:
  ![PyPI](https://img.shields.io/pypi/v/ogr.svg)
  ![PyPI - License](https://img.shields.io/pypi/l/ogr.svg)
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ogr.svg)
  ![PyPI - Status](https://img.shields.io/pypi/status/ogr.svg)
  [![Build Status](https://zuul-ci.org/gated.svg)](https://softwarefactory-project.io/zuul/t/local/builds?project=packit-service/ogr)
  [![black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
  [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)

  Library for one API for many git forges. (e.g. GitHub, GitLab, Pagure).



  - GitHub
  - GitLab
  - Pagure



  See [Documentation of Index of Sub-modules, Functions & Classes](https://packit.github.io/ogr)

  For examples of how to use `ogr` see [Jupyter examples](examples).



  This snippet shows how to obtain all releases for certain GitHub project using ogr.

  ```python
  from ogr.services.github import GithubService

  service = GithubService(token="your_token")

  ogr_project = service.get_project(
          repo="ogr",
          namespace="packit-service"
  )

  ogr_releases = ogr_project.get_releases()


  for release in ogr_releases:
      print(release.tag_name)
  ```

  This will output:

  ```
  0.7.0
  0.6.0
  0.5.0
  0.4.0
  0.3.1
  0.3.0
  0.2.0
  0.1.0
  0.0.3
  0.0.2
  0.0.1
  ```

  You can use the same API for other forges, you just need to replace `GithubService` with `PagureService`.



  For more info on functionality that _is not_ supported in all services the same way
  see [compatibility tables](COMPATIBILITY.md).



  On Fedora:

  ```
  $ dnf install python3-ogr
  ```

  You can also use our [`packit-releases` Copr repository](https://copr.fedorainfracloud.org/coprs/packit/packit-releases/)
  (contains also released versions of [OGR](https://github.com/packit/ogr)):

  ```
  $ dnf copr enable packit/packit-releases
  $ dnf install python3-ogr
  ```

  Or from PyPI:

  ```
  $ pip3 install --user ogr
  ```

  You can also install OGR from the `main` branch, if you are brave enough:

  You can use our [`packit-dev` Copr repository](https://copr.fedorainfracloud.org/coprs/packit/packit-dev/)
  (contains the latest development version of [ogr](https://github.com/packit/ogr)):

  ```
  $ dnf copr enable packit/packit-dev
  $ dnf install python3-ogr
  ```

  Or

  ```
  $ pip3 install --user git+https://github.com/packit/ogr.git
  ```





  - [podman](https://github.com/containers/libpod)
  - [ansible-bender](https://pypi.org/project/ansible-bender)



  Make sure to install prerequisite packages before first `make check`,
  `make build`, or `make check-in-container`. See CONTRIBUTING.md for
  details.



  - Property should not connect to network.



  For more info about contributing to our project see [our contribution guide](/CONTRIBUTING.md).



  For more info about deprecation policy see [Deprecation policy](https://github.com/packit/research/tree/main/deprecation)


pkgId: 14e9c5bc4b6cfd1d1da22844ef9c29fadc6e416bbe3b616efb32e645bb6c7364
name: python-oic
arch: src
version: 1.5.0
epoch: 0
release: 1
summary: Python implementation of OAuth2 and OpenID Connect
url: https://github.com/OpenIDC/pyoidc/
rpm_license: Apache 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0b79b370-ac39-4ed4-9fb9-aa2e0f9fb932
location_href: 00006211-python-oic/python-oic-1.5.0-1.src.rpm
checksum_type: sha256
description:
  This is a complete implementation of OpenID Connect as specified in the `OpenID
  Connect Core specification`_. And as a side effect, a complete implementation
  of OAuth2.0 too.
  Please see the `CHANGELOG.md`_ to review the latest changes.


pkgId: 145bdd083e2063051dd84f974ae2ea46b8f8f3bf7b45b8476112ada9927392f9
name: python-okaara
arch: src
version: 1.0.37
epoch: 0
release: 1
summary: Python command line utilities
url: https://okaara.readthedocs.org/en/latest/
rpm_license: GPLv2
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f0266a16-97d3-4640-85a1-cc253a940427
location_href: 00004370-python-okaara/python-okaara-1.0.37-1.src.rpm
checksum_type: sha256
description:
  For more information, see:

    http://okaara.readthedocs.org/en/latest/

  That site's documentation can also be built locally by running "make html"
  from the doc directory.


pkgId: c53f78ee51a35d828ce2d71e03defaaa2b1779a0d75c296331b00b639f613535
name: python-oldest-supported-numpy
arch: src
version: 2022.11.19
epoch: 0
release: 1
url: https://github.com/scipy/oldest-supported-numpy
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e41de94c-f346-487a-bf3c-3b0d6a9b815a
location_href: 00009306-python-oldest-supported-numpy/python-oldest-supported-numpy-2022.11.19-1.src.rpm
checksum_type: sha256
summary:
  Meta-package that provides the oldest NumPy that supports a given Python version and platform. If wheels for the platform became available on PyPI only for a more recent NumPy version, then that NumPy version is specified.

description:
  This is a meta-package which can be used in ``pyproject.toml`` files
  to automatically provide as a build-time dependency the oldest version
  of NumPy that supports the given Python version and platform. In case
  of platforms for which NumPy has prebuilt wheels, the provided version
  also has a prebuilt NumPy wheel.
  The reason to use the oldest available NumPy version as a build-time
  dependency is because of ABI compatibility. Binaries compiled with old
  NumPy versions are binary compatible with newer NumPy versions, but
  not vice versa. This meta-package exists to make dealing with this
  more convenient, without having to duplicate the same list manually in
  all packages requiring it.
  In other words:
      [build-system]
      requires = [
          "wheel",
          "setuptools",
          "numpy==1.13.3; python_version=='3.5'",
          "numpy==1.13.3; python_version=='3.6'",
          "numpy==1.14.5; python_version=='3.7'",
          
      ]
  can be replaced by:
      [build-system]
      requires = ["wheel", "setuptools", "oldest-supported-numpy"]
  And as new Python versions are released, the ``pyproject.toml`` file does not
  need to be updated.


pkgId: 0558f7abcdec520fbc3fff3fd7b3d24647f5e176ae01aa40f9de649c2e8a26a4
name: python-oletools
arch: src
version: 0.60.1
epoch: 0
release: 1
url: http://www.decalage.info/python/oletools
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-66732b67-9e4f-48c5-ad0a-50c30807f13c
location_href: 00004371-python-oletools/python-oletools-0.60.1-1.src.rpm
checksum_type: sha256
summary:
  Python tools to analyze security characteristics of MS Office and OLE files (also called Structured Storage, Compound File Binary Format or Compound Document File Format), for Malware Analysis and Incident Response #DFIR

description:
  |PyPI| |Build Status| |Say Thanks!|
  `oletools <http://www.decalage.info/python/oletools>`__ is a package of
  python tools to analyze `Microsoft OLE2
  files <http://en.wikipedia.org/wiki/Compound_File_Binary_Format>`__
  (also called Structured Storage, Compound File Binary Format or Compound
  Document File Format), such as Microsoft Office documents or Outlook
  messages, mainly for malware analysis, forensics and debugging. It is
  based on the `olefile <http://www.decalage.info/olefile>`__ parser. See
  http://www.decalage.info/python/oletools for more info.
  **Quick links:** `Home
  page <http://www.decalage.info/python/oletools>`__ -
  `Download/Install <https://github.com/decalage2/oletools/wiki/Install>`__
  - `Documentation <https://github.com/decalage2/oletools/wiki>`__ -
  `Report
  Issues/Suggestions/Questions <https://github.com/decalage2/oletools/issues>`__
  - `Contact the Author <http://decalage.info/contact>`__ -
  `Repository <https://github.com/decalage2/oletools>`__ - `Updates on
  Twitter <https://twitter.com/decalage2>`__
  `Cheatsheet <https://github.com/decalage2/oletools/blob/master/cheatsheet/oletools_cheatsheet.pdf>`__
  Note: python-oletools is not related to OLETools published by BeCubed
  Software.


pkgId: 9e0e5214180d7c72cb393f873fa7a36a08fcc38753c23e8578307a9d8136b8b4
name: python-omnilogic
arch: src
version: 0.5.0
epoch: 0
release: 1
summary: Integration for the Hayward OmniLogic pool control system
url: https://github.com/djtimca/omnilogic-api
rpm_license: apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-b8dfbbed-b18c-4092-a96e-7fcd645036dc
location_href: 00004373-python-omnilogic/python-omnilogic-0.5.0-1.src.rpm
checksum_type: sha256
description:
  Integration library for Hayward Omnilogic pool controllers to allow easy integration through their API to your home automation system.





  To download OmniLogic, either fork this github repo or simply use PyPi via pip.

  ```
  $ pip install omnilogic
  ```



  OmniLogic provides just the core actions, you will need to code your own specific use of the returned data.

  ```
  from omnilogic import OmniLogic
  ```

  A simple example to return the status of your pool equipment is:

  ```
  api_client = OmniLogic(username, password)

  telemetry_data = await api_client.get_telemetry_data()
  ```





  ** DEPRECATED - ALL CONFIG DATA NOW RETURNED WITH THE TELEMETRY **

  Returns the full configuration of the registered Omnilogic System in JSON format with all systems on your account returned in a list and all bodies-of-water captured in a list (BOWS). Additional components like lights and relays are also forced into a list to make them easier to parse. You will need to retain the MspSystemID for each pool system in order to be able to call any of the equipment change methods. Left available to allow retrieval of new configurations for addition to the get_telemetry_data method as development continues.



  Returns the status of all of the equipment in the Omnilogic System in JSON format (ie. pump speeds, water temperature, heat setting, etc). This data also is returned as a list with components like lights and relays grouped into lists for easy parsing. Includes key config data such as SystemIds, equipment names, equipment parameters (max/min speed etc) and alarms for common pool components.



  Returns a list of all alarms on the pool equipment in JSON format. If there are no alarms returns JSON {'BowID', 'False'}. Also returned as a list for all pool systems on your Omnilogic account. Note that alarm information is also returned in the get_telemetry_data method so unless you need just the full list of alarms this should not be needed.



  Turns the heater on or off (toggle). Pass the MspSystemID, PoolID and HeaterID as int and boolean True (turn on) or False (turn off) to set the heater state.



  Sets the heater set-point to a specified temperature. Pass the MspSystemId, PoolID, HeaterID, and desired Temperature as int to set the heater target temperature.



  Sets the pump speed or turns the pump on or off. Pass the MspSystemID, PoolID and HeaterID as int. Pass the Speed according to the following table.

  |Pump Type|ON|OFF|
  |---------|--|---|
  |Single Speed|100|0|
  |Variable Speed|18-100|0|



  Sets a relay or valve to On/Off (Open/Close). Pass the MspSystemID, PoolID and EquipmentID of the valve or relay as int. Pass OnOff value as int according to the following table. Also used to turn on/off lights attached to a relay without changing the lightshow.

  |Equipment Type|Value=1|Value=0|
  |--------------|-------|-------|
  |Relay|ON|OFF|
  |Valve|OPEN|CLOSED|



  Sets the spillover speed for a pool that supports Spillover. Pass the MspSystemID, PoolID and desired spillover Speed as int.



  Sets the SuperChlorination function on or off. Pass the MspSystemID, PoolID and the ChlorID (Equipment ID of the Chlorinator) as int. Pass IsOn as int with 1 to turn on SuperChlorination and 0 to turn off SuperChlorination.



  Turns on and sets the desired lightshow for V1 (non-brightness/speed controlled) lights. Pass the MspSystemID, PoolID and LightID as int. Select the desired show based on the table below:

  |ShowID|Color/Show|
  |------|----------|
  |0|Show-Voodoo Lounge|
  |1|Fixed-Deep Blue Sea|
  |2|Fixed-Royal Blue|
  |3|Fixed-Afternoon Skies|
  |4|Fixed-Aqua Green|
  |5|Fixed-Emerald|
  |6|Fixed-Cloud White|
  |7|Fixed-Warm Red|
  |8|Fixed-Flamingo|
  |9|Fixed-Vivid Violet|
  |10|Fixed-Sangria|
  |11|Show-Twilight|
  |12|Show-Tranquility|
  |13|Show-Gemstone|
  |14|Show-USA|
  |15|Show-Mardi Gras|
  |16|Show-Cool Cabaret|
  |17|YELLOW|
  |18|ORANGE|
  |19|GOLD|
  |20|MINT|
  |21|TEAL|
  |22|BURNT_ORANGE|
  |23|PURE_WHITE|
  |24|CRISP_WHITE|
  |25|WARM_WHITE|
  |26|BRIGHT_YELLOW|

  Note that show 17-26 may not be supported by all ColorLogic Light Systems.



  Turns on and sets the desired lightshow for V2 light systems. Pass the MspSystemID, PoolID and LightID as int. Use the table from above for the desired show as int. Send brightness and speed as Int.


pkgId: ad8d40dd5d6007d89bc5fce4a9dcf5716c8cc7f94f8ee95f16db71c086426a71
name: python-onetimepass
arch: src
version: 1.0.1
epoch: 0
release: 1
summary: Module for generating and validating HOTP and TOTP tokens
url: https://github.com/tadeck/onetimepass/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f7678626-b2a0-47ed-994f-0d741d236905
location_href: 00014214-python-onetimepass/python-onetimepass-1.0.1-1.src.rpm
checksum_type: sha256
description:
  Current development release: `onetimepass-master.tar.gz`_ |otp-status-dev|_
     https://api.travis-ci.org/tadeck/onetimepass.png?branch=master
     https://github.com/tadeck/onetimepass/archive/master.tar.gz


pkgId: 7374f4cc16e751c6683e5e9a2f8c6d2b2c10f5bcb4ca4aef6b56240339748fdf
name: python-openbabel
arch: src
version: 3.1.1.1
epoch: 0
release: 1
summary: Python interface to the Open Babel chemistry library
url: http://openbabel.org/
rpm_license: GPL-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-2f9af771-a6a6-403b-935e-e203c2910138
location_href: 00004375-python-openbabel/python-openbabel-3.1.1.1-1.src.rpm
checksum_type: sha256
description:
  This is a Python interface to the Open Babel chemistry library. For the
  main Open Babel project, see http://openbabel.org.
  Open Babel is a chemical toolbox designed to speak the many languages
  of chemical data. It's an open, collaborative project allowing anyone
  to search, convert, analyze, or store data from molecular modeling,
  chemistry, solid-state materials, biochemistry, or related areas. For
  installation instructions, tutorials and examples, please visit the
  `Open Babel website`_.
  This package provides two Python modules that can be used to access the
  functionality of the Open Babel toolkit:
  -  The `openbabel`_ module: A wrapper that is automatically generated using
     the SWIG package and provides access to almost all of the Open Babel
     interfaces via Python, including the base classes OBMol, OBAtom, OBBond,
     and OBResidue, as well as the conversion framework OBConversion.
  -  The `pybel`_ module: A lightweight wrapper around the classes and methods
     in the openbabel module. Pybel provides more convenient and Pythonic ways
     to access the Open Babel toolkit.
  For detailed installation instructions, API documentation and further information
  on the Python bindings, see the `Python pages on the Open Babel website`_.


pkgId: 5309c543b3a99bd97b38505bab4f1a7b3c0859d37c0eec6fa1cb0ce030194a02
name: python-opencensus
arch: src
version: 0.11.1
epoch: 0
release: 1
summary: A stats collection and distributed tracing framework
url: https://github.com/census-instrumentation/opencensus-python
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-25b735c0-280c-4471-8721-4778154ffc93
location_href: 00004376-python-opencensus/python-opencensus-0.11.1-1.src.rpm
checksum_type: sha256
description:
  |gitter|
  |travisci|
  |circleci|
  |pypi|
  |compat_check_pypi|
  |compat_check_github|
  `OpenCensus`_ for Python. OpenCensus provides a framework to measure a
  server's resource usage and collect performance stats. This repository
  contains Python related utilities and supporting software needed by
  OpenCensus.


pkgId: 5db4d7541187aaae51b19aa5fdb728c0eb464a6faece5abe1fe5481125922150
name: python-opencensus-context
arch: src
version: 0.1.3
epoch: 0
release: 1
summary: OpenCensus Runtime Context
url: https://github.com/census-instrumentation/opencensus-python/tree/master/context/opencensus-context
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0203457c-5b15-40df-8d16-4b8c0e8d50aa
location_href: 00004377-python-opencensus-context/python-opencensus-context-0.1.3-1.src.rpm
checksum_type: sha256
description:
  |pypi|
  The **OpenCensus Runtime Context** provides in-process context propagation.
  By default, ``thread local storage`` is used for Python 2.7, 3.4 and 3.5;
  ``contextvars`` is used for Python >= 3.6, which provides ``asyncio`` support.


pkgId: 32835a14e1d294cc90dfdaa9ab02f55fb5864f5e43e183f50d0f9ab957f76c47
name: python-opencensus-ext-azure
arch: src
version: 1.1.8
epoch: 0
release: 1
summary: OpenCensus Azure Monitor Exporter
description: |pypi|
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-552a2c3b-9014-4a62-930a-8f6a13309025
location_href: 00004379-python-opencensus-ext-azure/python-opencensus-ext-azure-1.1.8-1.src.rpm
checksum_type: sha256
url:
  https://github.com/census-instrumentation/opencensus-python/tree/master/contrib/opencensus-ext-azure


pkgId: 227190a19f8b4669d37e5356426a71457c0bf92dc5ae5c8bee927c34bbd63d00
name: python-opencensus-ext-django
arch: src
version: 0.8.0
epoch: 0
release: 1
summary: OpenCensus Django Integration
description: |pypi|
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-b2e3fb78-2fe0-4b40-9447-5227b4a684d0
location_href: 00004382-python-opencensus-ext-django/python-opencensus-ext-django-0.8.0-1.src.rpm
checksum_type: sha256
url:
  https://github.com/census-instrumentation/opencensus-python/tree/master/contrib/opencensus-ext-django


pkgId: 724c9f9bac118f562fb69d524f4d2c35f75127349ac91fa112e291ea33a8bc69
name: python-opencensus-ext-flask
arch: src
version: 0.8.1
epoch: 0
release: 1
summary: OpenCensus Flask Integration
description: |pypi|
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-46c35415-94d5-4546-885b-87c827f6b58c
location_href: 00004383-python-opencensus-ext-flask/python-opencensus-ext-flask-0.8.1-1.src.rpm
checksum_type: sha256
url:
  https://github.com/census-instrumentation/opencensus-python/tree/master/contrib/opencensus-ext-flask


pkgId: c79b01783224c1ba64982f92205593c042272cbb49d96a29ca2e8d1250014e3f
name: python-opencensus-ext-grpc
arch: src
version: 0.7.2
epoch: 0
release: 1
summary: OpenCensus gRPC Integration
url: https://github.com/census-instrumentation/opencensus-python/tree/master/contrib/opencensus-ext-grpc
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-6440c95a-675c-4413-80e1-042bb4ca802e
location_href: 00004385-python-opencensus-ext-grpc/python-opencensus-ext-grpc-0.7.2-1.src.rpm
checksum_type: sha256
description:
  |pypi|
  OpenCensus provides the implementation of interceptors for both the client side
  and server side to instrument the gRPC requests and responses. The client
  interceptors are used to create a decorated channel that intercepts client
  gRPC calls and server interceptors act as decorators over handlers.
  gRPC interceptor is a new feature in the grpcio1.8.0 release, please upgrade
  your grpcio to the latest version to use this feature.
  For sample usage, please refer to the hello world example in the examples
  directory.
  More information about the gRPC interceptors please see the `proposal`_.


pkgId: 85e1919821245968513f43a9aa76441146fcef5694876788c18b1643451e0ca7
name: python-opencensus-ext-httplib
arch: src
version: 0.7.5
epoch: 0
release: 1
summary: OpenCensus httplib Integration
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-6703fc76-890e-4244-9495-917070b43f57
location_href: 00004386-python-opencensus-ext-httplib/python-opencensus-ext-httplib-0.7.5-1.src.rpm
checksum_type: sha256
description:
  |pypi|
  OpenCensus can trace HTTP requests made with the httplib library.
  You can enable requests integration by specifying ``'httplib'`` to ``trace_integrations``.
  It's possible to configure a list of URL you don't want traced. See requests integration
  for more information. The only difference is that you need to specify hostname and port
  every time.

url:
  https://github.com/census-instrumentation/opencensus-python/tree/master/contrib/opencensus-ext-httplib


pkgId: 30f3e52a2f4e7ce6d3aee2f43fbeb6eb70c0cd43fb7c79c7e6326261e9b77f24
name: python-opencensus-ext-logging
arch: src
version: 0.1.1
epoch: 0
release: 1
summary: OpenCensus logging Integration
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-539a5ce3-61ec-42ff-9367-7de49a1a624f
location_href: 00004388-python-opencensus-ext-logging/python-opencensus-ext-logging-0.1.1-1.src.rpm
checksum_type: sha256
description:
  |pypi|
  The logging integration enriches the log records with trace ID, span ID and sampling flag.
  The following attributes will be added to ``LogRecord``:
      * traceId
      * spanId
      * traceSampled
  Note that this only takes effect for loggers created after the integration.

url:
  https://github.com/census-instrumentation/opencensus-python/tree/master/contrib/opencensus-ext-logging


pkgId: 127b0a3493b8085ab6cd28b03ed3735698660c986591b95755023addaf409d85
name: python-opencensus-ext-mysql
arch: src
version: 0.1.3
epoch: 0
release: 1
summary: OpenCensus MySQL Integration
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-b3eb4ee9-43df-4357-b327-37d0f95cb473
location_href: 00004389-python-opencensus-ext-mysql/python-opencensus-ext-mysql-0.1.3-1.src.rpm
checksum_type: sha256
description:
  |pypi|
  The integration with MySQL supports the `mysql-connector`_ library and is specified
  to ``trace_integrations`` using ``'mysql'``.

url:
  https://github.com/census-instrumentation/opencensus-python/tree/master/contrib/opencensus-ext-mysql


pkgId: 193979beb7c03ff0c0bd51ce13f533897fdd7d602c5f3751ea88565a27063c76
name: python-opencensus-ext-postgresql
arch: src
version: 0.1.3
epoch: 0
release: 1
summary: OpenCensus PostgreSQL Integration
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e2643a35-e580-4fbf-9cc2-0401e4344c2d
location_href: 00004391-python-opencensus-ext-postgresql/python-opencensus-ext-postgresql-0.1.3-1.src.rpm
checksum_type: sha256
description:
  |pypi|
  The integration with PostgreSQL supports the `psycopg2`_ library and is specified
  to ``trace_integrations`` using ``'postgresql'``.

url:
  https://github.com/census-instrumentation/opencensus-python/tree/master/contrib/opencensus-ext-postgresql


pkgId: 70063a4409d756c5cf1ae0a9a8f3533e85064f6524d487c8bcf138a05006bb68
name: python-opencensus-ext-pymongo
arch: src
version: 0.7.2
epoch: 0
release: 1
summary: OpenCensus pymongo Integration
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-6b1b4541-efe2-4ac2-a4ba-f072b0cf105f
location_href: 00004393-python-opencensus-ext-pymongo/python-opencensus-ext-pymongo-0.7.2-1.src.rpm
checksum_type: sha256
description:
  |pypi|
  The integration with MongoDB supports the `pymongo`_ library and is specified
  to ``trace_integrations`` using ``'pymongo'``.

url:
  https://github.com/census-instrumentation/opencensus-python/tree/master/contrib/opencensus-ext-pymongo


pkgId: 09d3d7f56e09e12ad4acb17bb6543163a66f1ea1c41c160700c83a4139ff127a
name: python-opencensus-ext-pymysql
arch: src
version: 0.1.3
epoch: 0
release: 1
summary: OpenCensus PyMySQL Integration
description: |pypi|
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f50d6e7b-621c-4238-94fd-6aaf2cff4641
location_href: 00004394-python-opencensus-ext-pymysql/python-opencensus-ext-pymysql-0.1.3-1.src.rpm
checksum_type: sha256
url:
  https://github.com/census-instrumentation/opencensus-python/tree/master/contrib/opencensus-ext-pymysql


pkgId: c9bde29ee98d4ea8030250225a4657a9951ce6069518b07f0addb9191cf6cfae
name: python-opencensus-ext-pyramid
arch: src
version: 0.7.3
epoch: 0
release: 1
summary: OpenCensus Pyramid Integration
description: |pypi|
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d829c59a-0ef3-400f-9f7e-4942df3e608d
location_href: 00004395-python-opencensus-ext-pyramid/python-opencensus-ext-pyramid-0.7.3-1.src.rpm
checksum_type: sha256
url:
  https://github.com/census-instrumentation/opencensus-python/tree/master/contrib/opencensus-ext-pyramid


pkgId: c83a3d11f780f7dc906fd914046d1184c8c04acc69c4b93358a933bed385a055
name: python-opencensus-ext-requests
arch: src
version: 0.8.0
epoch: 0
release: 1
summary: OpenCensus Requests Integration
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0c788c25-052e-4675-844d-7a55129e755c
location_href: 00004396-python-opencensus-ext-requests/python-opencensus-ext-requests-0.8.0-1.src.rpm
checksum_type: sha256
description:
  |pypi|
  OpenCensus can trace HTTP requests made with the `requests package`_. The request URL,
  method, and status will be collected.
  You can enable requests integration by specifying ``'requests'`` to ``trace_integrations``.
  It's possible to configure a list of URL you don't want traced. By default the request to exporter
  won't be traced. It's configurable by giving an array of hostname/port to the attribute
  ``excludelist_hostnames`` in OpenCensus context's attributes:
  Only the hostname must be specified if only the hostname is specified in the URL request.

url:
  https://github.com/census-instrumentation/opencensus-python/tree/master/contrib/opencensus-ext-requests


pkgId: 0949f62ed5616ba562277a764d06ad78aaa3ed04867cc6a70de729fdf256cd22
name: python-opencensus-ext-sqlalchemy
arch: src
version: 0.1.3
epoch: 0
release: 1
summary: OpenCensus SQLAlchemy Integration
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a656b0f9-8ea8-4771-ad91-df99cd258417
location_href: 00004397-python-opencensus-ext-sqlalchemy/python-opencensus-ext-sqlalchemy-0.1.3-1.src.rpm
checksum_type: sha256
description:
  |pypi|
  You can trace usage of the `sqlalchemy package`_, regardless of the underlying
  database, by specifying ``'sqlalchemy'`` to ``trace_integrations``.
      driver, you will get duplicate spans. Instead, just trace SQLAlchemy.

url:
  https://github.com/census-instrumentation/opencensus-python/tree/master/contrib/opencensus-ext-sqlalchemy


pkgId: 734d1be386c01bc13900a54677c778dbcf223d9f008f20d8ee8a120f0a2e81f8
name: python-openml
arch: src
version: 0.13.1
epoch: 0
release: 1
summary: Python API for OpenML
url: https://openml.org/
rpm_license: BSD 3-clause
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-72d754f7-854f-487d-a481-58c4f80421fd
location_href: 00009961-python-openml/python-openml-0.13.1-1.src.rpm
checksum_type: sha256
description:
  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
  [![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors-)
  <!-- ALL-CONTRIBUTORS-BADGE:END -->

  A python interface for [OpenML](http://openml.org), an online platform for open science collaboration in machine learning.
  It can be used to download or upload OpenML data such as datasets and machine learning experiment results.



  * [Documentation](https://openml.github.io/openml-python).
  * [Contribution guidelines](https://github.com/openml/openml-python/blob/develop/CONTRIBUTING.md).

  [![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)



  If you use OpenML-Python in a scientific publication, we would appreciate a reference to the
  following paper:

  [Matthias Feurer, Jan N. van Rijn, Arlind Kadra, Pieter Gijsbers, Neeratyoy Mallik, Sahithya Ravi, Andreas Müller, Joaquin Vanschoren, Frank Hutter<br/>
  **OpenML-Python: an extensible Python API for OpenML**<br/>
  *arXiv:1911.02490 [cs.LG]*](https://arxiv.org/abs/1911.02490)

  Bibtex entry:
  ```bibtex
  @article{feurer-arxiv19a,
    author    = {Matthias Feurer and Jan N. van Rijn and Arlind Kadra and Pieter Gijsbers and Neeratyoy Mallik and Sahithya Ravi and Andreas Müller and Joaquin Vanschoren and Frank Hutter},
    title     = {OpenML-Python: an extensible Python API for OpenML},
    journal   = {arXiv:1911.02490},
    year      = {2019},
  }
  ```



  Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

  <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
  <!-- prettier-ignore-start -->
  <!-- markdownlint-disable -->
  <table>
    <tr>
      <td align="center"><a href="https://github.com/a-moadel"><img src="https://avatars0.githubusercontent.com/u/46557866?v=4" width="100px;" alt=""/><br /><sub><b>a-moadel</b></sub></a><br /><a href="https://github.com/openml/openml-python/commits?author=a-moadel" title="Documentation">📖</a> <a href="#example-a-moadel" title="Examples">💡</a></td>
      <td align="center"><a href="https://github.com/Neeratyoy"><img src="https://avatars2.githubusercontent.com/u/3191233?v=4" width="100px;" alt=""/><br /><sub><b>Neeratyoy Mallik</b></sub></a><br /><a href="https://github.com/openml/openml-python/commits?author=Neeratyoy" title="Code">💻</a> <a href="https://github.com/openml/openml-python/commits?author=Neeratyoy" title="Documentation">📖</a> <a href="#example-Neeratyoy" title="Examples">💡</a></td>
    </tr>
  </table>

  <!-- markdownlint-enable -->
  <!-- prettier-ignore-end -->
  <!-- ALL-CONTRIBUTORS-LIST:END -->

  This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!


pkgId: be8944b10b773cf043e0e43b08c4db2fd07ccb3bde488a9e896253ba8d211f4e
name: python-openpyxl
arch: src
version: 3.1.1
epoch: 0
release: 1
summary: A Python library to read/write Excel 2010 xlsx/xlsm files
url: https://openpyxl.readthedocs.io
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-51165340-ba6d-498a-8c93-a7187bec566d
location_href: 00004412-python-openpyxl/python-openpyxl-3.1.1-1.src.rpm
checksum_type: sha256
description:
  openpyxl is a Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files.
  It was born from lack of existing library to read/write natively from Python
  the Office Open XML format.
  All kudos to the PHPExcel team as openpyxl was initially based on PHPExcel.


pkgId: 36ecaf15ded1b797cb16c883afd271cfb431ecd3a9d25f846ed9eeee7170feca
name: python-openqa-client
arch: src
version: 4.2.1
epoch: 0
release: 1
summary: Python client library for openQA API
url: https://github.com/os-autoinst/openQA-python-client
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-6ebaba6b-300d-4049-8e89-c1a56d122698
location_href: 00004413-python-openqa_client/python-openqa-client-4.2.1-1.src.rpm
checksum_type: sha256
description:
  This is a client for the [openQA](https://os-autoinst.github.io/openQA/)
  API, based on [requests](https://python-requests.org). It requires Python
  3.6 or later.



  Here's a simple example of reading the status of a job:

      from openqa_client.client import OpenQA_Client
      client = OpenQA_Client(server='openqa.opensuse.org')
      print(client.openqa_request('GET', 'jobs/1'))

  Here's an example of triggering jobs for an ISO:

      
      client = OpenQA_Client(server='openqa.happyassassin.net')
      params = {}
      params['ISO'] = '22_Beta_TC2_server_x86_64_boot.iso'
      params['DISTRI'] = 'fedora'
      params['VERSION'] = '22'
      params['FLAVOR'] = 'server_boot'
      params['ARCH'] = 'x86_64'
      params['BUILD'] = '22_Beta_TC2'
      print(cl.openqa_request('POST', 'isos', params))

  All methods other than `GET` require authentication. This client uses
  the same configuration file format as the reference (perl) client in
  openQA itself. Configuration will be read from `/etc/openqa/client.conf`
  or `~/.config/openqa/client.conf`. A configuration file looks like this:

      [openqa.happyassassin.net]
      key = APIKEY
      secret = APISECRET

  You can get the API key and secret from the web UI after logging in. Your
  configuration file may include credentials for multiple servers; each
  section contains the credentials for the server named in the section
  title.

  If you create an `OpenQA_Client` instance without passing the `server`
  argument, it will use the first server listed in the configuration file
  if there is one, otherwise it will use 'localhost'. Note: this is a
  difference in behaviour from the perl client, which *always* uses 'localhost'
  unless a server name is passed.

  TLS/SSL connections are the default (except for localhost). You can
  pass the argument `scheme` to `OpenQA_Client` to force the use of
  unencrypted HTTP, e.g.
  `OpenQA_Client(server='openqa.happyassassin.net', scheme='http')`.

  The API always returns JSON responses; this client's request functions
  parse the response before returning it.

  If you need for some reason to make a request which does not fall into
  the `openqa_request()` method's expected pattern, you can construct a
  `requests.Request` and pass it to `do_request()`, which will attach the
  required headers, execute the request, and return the parsed JSON response.

  The `const` module provides several constants that are shadowed from the
  upstream openQA code, including job states, results, and the 'scenario
  keys'.



  You can file pull requests at [Github](https://github.com/os-autoinst/openQA-python-client).
  There is an extensive test suite with CI integration. You can run the test
  suite locally by running `tox`. If your system has a tox version earlier
  than 3.3.0, you must have the `setuptools_scm` Python module installed for
  this to work correctly, or else you will get errors about a missing
  `install.requires` file.



  This software is available under the GPL, version 2 or any later version.
  A copy is included as COPYING. Contributions submitted as pull requests are
  assumed to be submitted under the same license terms unless otherwise
  specified.

rpm_license:
  GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it.  By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.  This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it.  (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.)  You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price.  Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have.  You must make sure that they, too, receive or can get the source code.  And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software.  If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents.  We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary.  To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License.  The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language.  (Hereinafter, translation is included without limitation in the term "modification".)  Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope.  The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License.  (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole.  If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works.  But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code.  (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it.  For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable.  However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License.  Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it.  However, nothing else grants you permission to modify or distribute the Program or its derivative works.  These actions are prohibited by law if you do not accept this License.  Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions.  You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License.  If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all.  For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices.  Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded.  In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time.  Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number.  If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation.  If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission.  For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this.  Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program.  It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. <one line to give the program's name and a brief idea of what it does.> Copyright (C) <year>  <name of author> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License.  Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary.  Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. <signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs.  If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library.  If this is what you want to do, use the GNU Lesser General Public License instead of this License.


pkgId: 43a2fc1bb821cde9cc8d4888aeca46e4c7822ad28bfb8547511a7eba882a98e2
name: python-opensearch-py
arch: src
version: 2.2.0
epoch: 0
release: 1
summary: Python client for OpenSearch
url: https://github.com/opensearch-project/opensearch-py
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-01aac68b-238f-45ac-8f86-335186558d0c
location_href: 00009558-python-opensearch-py/python-opensearch-py-2.2.0-1.src.rpm
checksum_type: sha256
description:
  [![Release](https://github.com/opensearch-project/opensearch-py/actions/workflows/unified-release.yml/badge.svg)](https://github.com/opensearch-project/opensearch-py/actions/workflows/unified-release.yml)
  [![CI](https://github.com/opensearch-project/opensearch-py/actions/workflows/ci.yml/badge.svg)](https://github.com/opensearch-project/opensearch-py/actions/workflows/ci.yml)
  [![Integration](https://github.com/opensearch-project/opensearch-py/actions/workflows/integration.yml/badge.svg)](https://github.com/opensearch-project/opensearch-py/actions/workflows/integration.yml)
  [![Chat](https://img.shields.io/badge/chat-on%20forums-blue)](https://discuss.opendistrocommunity.dev/c/clients/)
  ![PRs welcome!](https://img.shields.io/badge/PRs-welcome!-success)

  ![OpenSearch logo](https://github.com/opensearch-project/opensearch-py/raw/main/OpenSearch.svg)

  OpenSearch Python Client

  - [Welcome!](https://github.com/opensearch-project/opensearch-py#welcome)
  - [User Guide](https://github.com/opensearch-project/opensearch-py#user-guide)
  - [API Doc](https://opensearch-project.github.io/opensearch-py/)
  - [Compatibility with OpenSearch](https://github.com/opensearch-project/opensearch-py#compatibility-with-opensearch)
  - [Project Resources](https://github.com/opensearch-project/opensearch-py#project-resources)
  - [Code of Conduct](https://github.com/opensearch-project/opensearch-py#code-of-conduct)
  - [License](https://github.com/opensearch-project/opensearch-py#license)
  - [Copyright](https://github.com/opensearch-project/opensearch-py#copyright)



  **opensearch-py** is [a community-driven, open source fork](https://aws.amazon.com/blogs/opensource/introducing-opensearch/)
  of elasticsearch-py licensed under the [Apache v2.0 License](https://github.com/opensearch-project/opensearch-py/blob/main/LICENSE.txt).
  For more information, see [opensearch.org](https://opensearch.org/) and the [API Doc](https://opensearch-project.github.io/opensearch-py/).



  To get started with the OpenSearch Python Client, see [User Guide](https://github.com/opensearch-project/opensearch-py/blob/main/USER_GUIDE.md).



  See [Compatibility](https://github.com/opensearch-project/opensearch-py/blob/main/COMPATIBILITY.md).



  * [Project Website](https://opensearch.org/)
  * [Downloads](https://opensearch.org/downloads.html)
  * [Documentation](https://opensearch.org/docs/latest/clients/python/)
  * Need help? Try [Forums](https://discuss.opendistrocommunity.dev/)
  * [Project Principles](https://opensearch.org/#principles)
  * [Contributing to OpenSearch](https://github.com/opensearch-project/opensearch-py/blob/main/CONTRIBUTING.md)
  * [Maintainer Responsibilities](https://github.com/opensearch-project/opensearch-py/blob/main/MAINTAINERS.md)
  * [Release Management](https://github.com/opensearch-project/opensearch-py/blob/main/RELEASING.md)
  * [Admin Responsibilities](https://github.com/opensearch-project/opensearch-py/blob/main/ADMINS.md)
  * [Security](https://github.com/opensearch-project/opensearch-py/blob/main/SECURITY.md)



  This project has adopted the
  [Amazon Open Source Code of Conduct](https://github.com/opensearch-project/opensearch-py/blob/main/CODE_OF_CONDUCT.md).
  For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq), or contact
  [opensource-codeofconduct@amazon.com](mailto:opensource-codeofconduct@amazon.com) with any additional questions or comments.



  This project is licensed under the
  [Apache v2.0 License](https://github.com/opensearch-project/opensearch-py/blob/main/LICENSE.txt).



  Copyright OpenSearch Contributors. See
  [NOTICE](https://github.com/opensearch-project/opensearch-py/blob/main/NOTICE.txt) for details.


pkgId: 433ff1851be63cca88a43b9141117beb1f9342a1259e5467c0fb828b1f042374
name: python-opensensemap-api
arch: src
version: 0.3.0
epoch: 0
release: 1
summary: Python client for interacting with the openSenseMap API.
url: https://github.com/home-assistant-ecosystem/python-opensensemap-api
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-2dc85f42-fbf0-40c0-a663-a64bfe0ca1cc
location_href: 00004414-python-opensensemap-api/python-opensensemap-api-0.3.0-1.src.rpm
checksum_type: sha256
description:
  Python Client for interacting with the `openSenseMap <https://opensensemap.org/>`_
  API.
  This module is not official, developed, supported or endorsed by
  `openSenseMap <https://opensensemap.org/>`_


pkgId: 08d8bf83035e39be08363b3f82b7adb9c67b70d08a60eb8ee21c3119b53083c3
name: python-opentracing
arch: src
version: 2.4.0
epoch: 0
release: 1
summary: OpenTracing API for Python. See documentation at http://opentracing.io
url: https://github.com/opentracing/opentracing-python
rpm_license: Apache License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-794d9841-eff4-4d8e-b9ba-a6a5c2018003
location_href: 00009441-python-opentracing/python-opentracing-2.4.0-1.src.rpm
checksum_type: sha256
description:
  |GitterChat| |BuildStatus| |PyPI| |ReadTheDocs|
  This library is a Python platform API for OpenTracing.


pkgId: d1cdca83b619487fbf214f67f9df504866c0db8c23f478142ebaf41f7f3d3694
name: python-opentrep
arch: src
version: 0.7.11
epoch: 0
release: 1
summary: Simple Python wrapper for OpenTREP
url: https://github.com/trep/opentrep
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a973eac1-55b2-4ee2-99a9-7ac0a46327a5
location_href: 00004445-python-opentrep/python-opentrep-0.7.11-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://travis-ci.com/trep/opentrep.svg?branch=master)](https://travis-ci.com/trep/opentrep)
  [![Docker Repository on Quay](https://quay.io/repository/trep/opentrep/status "Docker Repository on Quay")](https://quay.io/repository/trep/opentrep)

  - [Open Travel Request Parser (TREP)](#open-travel-request-parser--trep-)
  - [Table of content](#table-of-content)
  - [Overview](#overview)
  - [Docker images](#docker-images)
    * [OpenTREP Docker images](#opentrep-docker-images)
    * [General purpose C++/Python Docker images](#general-purpose-c---python-docker-images)
      + [CentOS 7](#centos-7)
      + [Ubuntu 18.04 LTS Bionic Beaver](#ubuntu-1804-lts-bionic-beaver)
      + [Debian 9 Stretch](#debian-9-stretch)
      + [Common to all the above-mentioned Linux distributions](#common-to-all-the-above-mentioned-linux-distributions)
  - [Native installation (without Docker)](#native-installation--without-docker-)
    * [RPM-based distributions (eg, Fedora/CentOS/RedHat)](#rpm-based-distributions--eg--fedora-centos-redhat-)
    * [Installation from the sources](#installation-from-the-sources)
      + [Clone the Git repository](#clone-the-git-repository)
      + [Alternatively, download and extract the tar-ball](#alternatively--download-and-extract-the-tar-ball)
      + [Installation of the dependencies](#installation-of-the-dependencies)
        - [On Linux](#on-linux)
          * [Fedora](#fedora)
          * [CentOS](#centos)
          * [Debian/Ubuntu](#debian-ubuntu)
        - [On MacOS](#on-macos)
      + [ICU](#icu)
      + [Boost](#boost)
        - [CentOS](#centos-1)
      + [SOCI](#soci)
        - [General Unix/Linux](#general-unix-linux)
        - [Debian](#debian)
        - [MacOS](#macos)
      + [Building the library and test binary](#building-the-library-and-test-binary)
    * [Underlying (relational) database, SQLite or MySQL/MariaDB, if any](#underlying--relational--database--sqlite-or-mysql-mariadb--if-any)
  - [Indexing the POR data](#indexing-the-por-data)
    * [Filling the (relational) database, SQLite or MySQL/MariaDB, if any](#filling-the--relational--database--sqlite-or-mysql-mariadb--if-any)
    * [Xapian indexing with standard installation](#xapian-indexing-with-standard-installation)
    * [Xapian indexing for an ad hoc deployed Web application](#xapian-indexing-for-an-ad-hoc-deployed-web-application)
  - [Searching](#searching)
  - [Deployment stages](#deployment-stages)
  - [Index, or not, non-IATA POR](#index--or-not--non-iata-por)
  - [Installing a Python virtual environment](#installing-a-python-virtual-environment)
  - [Checking that the Python module works](#checking-that-the-python-module-works)
  - [Trouble-shooting Python issues on MacOS](#trouble-shooting-python-issues-on-macos)
    * [Interceptors not installed / late](#interceptors-not-installed---late)
  - [OpenTREP as a Python extension](#opentrep-as-a-python-extension)
    * [References](#references)
    * [Build and package OpenTREP as a Python extension](#build-and-package-opentrep-as-a-python-extension)
      + [Install Python modules/dependencies](#install-python-modules-dependencies)
      + [Install OpenTrep Python extension with system-based `pip`](#install-opentrep-python-extension-with-system-based--pip-)
      + [Build the OpenTrep Python extension locally with system-based Scikit-build](#build-the-opentrep-python-extension-locally-with-system-based-scikit-build)
    * [Test the OpenTREP Python extension](#test-the-opentrep-python-extension)
    * [Use the OpenTREP Python extension](#use-the-opentrep-python-extension)
      + [Download the latest OpenTravelData (OPTD) POR data file](#download-the-latest-opentraveldata--optd--por-data-file)
      + [Xapian index initialization](#xapian-index-initialization)
      + [Search with the OpenTrep Python extension](#search-with-the-opentrep-python-extension)
      + [Search with the OpenTrepWrapper package](#search-with-the-opentrepwrapper-package)
  - [(Optional) Running the Django-based application server (needs update)](#-optional--running-the-django-based-application-server--needs-update-)
  <small><i><a href='http://ecotrust-canada.github.io/markdown-toc/'>Table of contents generated with markdown-toc</a></i></small>

  [OpenTREP](https://github.com/trep/opentrep)
  aims at providing a clean API, and the corresponding C++
  implementation, for parsing travel-/transport-focused requests.
  It powers the https://transport-search.org Web site (as well
  as its newer version, https://www2.transport-search.org).
  OpenTREP uses Xapian (https://www.xapian.org) for the Information Retrieval
  part, on freely available transport-/travel-related data (_e.g._, country
  names and codes, city names and codes, airline names and codes, _etc_),
  mainly to be found in the
  [OpenTravelData (OPTD)
  project](https://github.com/opentraveldata/opentraveldata):
  http://github.com/opentraveldata/opentraveldata/tree/master/opentraveldata
  OpenTREP exposes a simple, clean and object-oriented, API. For instance,
  the
  [`OPENTREP::interpretTravelRequest()`
  method](https://github.com/trep/opentrep/blob/master/opentrep/OPENTREP_Service.hpp#L58):
  * takes, as input, a character string containing the travel request;
  * and yields, as output, the list of the recognized terms,
    as well as their corresponding types.
  As an example, the travel request
  `Washington DC Beijing Monday a/r +AA -UA 1 week 2 adults 1 dog` would yield
  the following list:
   * Origin airport: Washington, DC, United States (US)
   * Destination airport: Beijing, China (CN)
   * Date of travel: next Monday
   * Date of return: 1 week after next Monday
   * Preferred airline: American Airlines (AA);
     non-preferred airline: United Airlines
   * Number of travelers: 2 adults and a dog
  The output may then be used by other systems, for instance to book the
  corresponding travel, or to visualize it on a map and calendar and to
  share it with others.
  Note that the current version of OpenTREP recognizes only geographical POR
  (points of reference), whatever their number in the request. For instance,
  the request `lviv rivne jitomir kbp kharkiv dnk ods lwo` yields the
  following list of POR: `LWO`, `RWN`, `ZTR`, `KBP`, `HRK`, `DNK`,
  `ODS` and `LWO` again.
  See
  [that request in action on the transport-search.org site](https://transport-search.org/search/?q=lwo+rwn+ztr+kbp+hrk+dnk+ods+lwo)
  or [through the API](https://www2.transport-search.org/api/v1/geo?query=lwo+rwn+ztr+kbp+hrk+dnk+ods+lwo)
  (enable [JSONView](https://github.com/gildas-lormeau/JSONView-for-Chrome)
  or similar for a more confortable reading).
  OpenTREP also deals with transport-related requests. For instance,
  `cnshg deham nlrtm uslbg brssz cnshg` correspond to a world tour
  of famous ports:
  * Shanghai, China (CN)
  * Hamburg, Germany (DE)
  * Rotterdam, Netherlands (NL)
  * Los Angeles/Long Beach, California (CA), United States (US)
  * Santos, Brazil (BR)
  * (Back to) Shanghai, China (CN)
  See
  [that request in action on the transport-search.org site](https://transport-search.org/search/?q=sha+ham+rtm+lgb+ssz+sha)
  or [through the API](https://www2.transport-search.org/api/v1/geo?query=sha+ham+rtm+lgb+ssz+sha).
  The underlying data for the POR is the
  [OpenTravelData `optd_por_public_all.csv` file](http://github.com/opentraveldata/opentraveldata/tree/master/opentraveldata/optd_por_public_all.csv).
  A good complementary tool is
  [GeoBase](http://opentraveldata.github.io/geobases/),
  a Python-based software able to access any travel-related data source.
  OpenTREP makes an extensive use of existing open-source libraries for
  increased functionality, speed and accuracy. In particular the
  [Boost](http://www.boost.org) (C++ Standard Extensions),
  [Xapian](http://xapian.org) and [SOCI](http://soci.sourceforge.net)
  libraries are used.


  Docker images provide ready-to-use environments, and are available on
  [Docker Cloud](https://cloud.docker.com/u/opentrep/repository/docker/opentrep/search-travel)
  and [Quay.io](https://quay.io/repository/trep/opentrep):
  ```bash
  $ docker pull opentrep/search-travel:legacy # for Docker.io
  $ docker pull quay.io/trep/opentrep # for Quay.io
  $ docker run --rm -it opentrep/search-travel:legacy bash
  ```
  See https://github.com/trep/opentrep/tree/master/gui/legacy for more details.

  General purpose Docker images for C++/Python development are also available from
  [Docker Cloud](https://cloud.docker.com/u/cpppythondevelopment/repository/docker/cpppythondevelopment/base/general).
  Those Docker images allow to develop on the major Linux distributions, _i.e._,
  CentOS, Debian and Ubuntu.

  ```bash
  $ docker pull cpppythondevelopment/base:centos8
  $ docker run -t cpppythondevelopment/base:centos8 bash
  [build@2..c ~]$ $ mkdir -p ~/dev/geo && cd ~/dev/geo
  [build@2..c geo]$ git clone https://github.com/trep/opentrep.git
  [build@2..c geo]$ cd opentrep && mkdir build && cd build
  [build@2..c build (master)]$ cmake3 -DCMAKE_INSTALL_PREFIX=${HOME}/dev/deliveries/opentrep-99.99.99 -DCMAKE_BUILD_TYPE:STRING=Debug -DINSTALL_DOC:BOOL=ON -DRUN_GCOV:BOOL=OFF -DLIB_SUFFIX= ..
  ```

  ```bash
  $ docker pull cpppythondevelopment/base:centos7
  $ docker run -t cpppythondevelopment/base:centos7 bash
  [build@2..c ~]$ $ mkdir -p ~/dev/geo && cd ~/dev/geo
  [build@2..c geo]$ git clone https://github.com/trep/opentrep.git
  [build@2..c geo]$ cd opentrep && mkdir build && cd build
  [build@2..c build (master)]$ cmake3 -DCMAKE_INSTALL_PREFIX=${HOME}/dev/deliveries/opentrep-99.99.99 -DCMAKE_BUILD_TYPE:STRING=Debug -DINSTALL_DOC:BOOL=ON -DRUN_GCOV:BOOL=OFF -DLIB_SUFFIX= ..
  ```

  ```bash
  $ docker pull cpppythondevelopment/base:ubuntu2004
  $ docker run -t cpppythondevelopment/base:ubuntu2004 bash
  [build@2..c ~]$ $ mkdir -p ~/dev/geo && cd ~/dev/geo
  [build@2..c geo]$ git clone https://github.com/trep/opentrep.git
  [build@2..c geo]$ cd opentrep && mkdir build && cd build
  [build@2..c build (master)]$ cmake -DCMAKE_INSTALL_PREFIX=${HOME}/dev/deliveries/opentrep-99.99.99 -DCMAKE_BUILD_TYPE:STRING=Debug -DINSTALL_DOC:BOOL=ON -DRUN_GCOV:BOOL=OFF -DLIB_SUFFIX= ..
  ```

  ```bash
  $ docker pull cpppythondevelopment/base:ubuntu1804
  $ docker run -t cpppythondevelopment/base:ubuntu1804 bash
  [build@2..c ~]$ $ mkdir -p ~/dev/geo && cd ~/dev/geo
  [build@2..c geo]$ git clone https://github.com/trep/opentrep.git
  [build@2..c geo]$ cd opentrep && mkdir build && cd build
  [build@2..c build (master)]$ cmake -DCMAKE_INSTALL_PREFIX=${HOME}/dev/deliveries/opentrep-99.99.99 -DCMAKE_BUILD_TYPE:STRING=Debug -DINSTALL_DOC:BOOL=ON -DRUN_GCOV:BOOL=OFF -DLIB_SUFFIX= ..
  ```

  ```bash
  $ docker pull cpppythondevelopment/base:debian10
  $ docker run -t cpppythondevelopment/base:debian10 bash
  [build@2..c ~]$ $ mkdir -p ~/dev/geo && cd ~/dev/geo
  [build@2..c geo]$ git clone https://github.com/trep/opentrep.git
  [build@2..c geo]$ cd opentrep && mkdir build && cd build
  [build@2..c build (master)]$ cmake -DCMAKE_INSTALL_PREFIX=${HOME}/dev/deliveries/opentrep-99.99.99 -DCMAKE_BUILD_TYPE:STRING=Debug -DINSTALL_DOC:BOOL=ON -DRUN_GCOV:BOOL=OFF -DLIB_SUFFIX= ..
  ```

  ```bash
  $ docker pull cpppythondevelopment/base:debian9
  $ docker run -t cpppythondevelopment/base:debian9 bash
  [build@2..c ~]$ $ mkdir -p ~/dev/geo && cd ~/dev/geo
  [build@2..c geo]$ git clone https://github.com/trep/opentrep.git
  [build@2..c geo]$ cd opentrep && mkdir build && cd build
  [build@2..c build (master)]$ cmake -DCMAKE_INSTALL_PREFIX=${HOME}/dev/deliveries/opentrep-99.99.99 -DCMAKE_BUILD_TYPE:STRING=Debug -DINSTALL_DOC:BOOL=ON -DRUN_GCOV:BOOL=OFF -DLIB_SUFFIX= ..
  ```

  ```bash
  [build@2..c build (master)]$ make install
  [build@2..c build (master)]$ ./opentrep/opentrep-indexer
  [build@2..c build (master)]$ ./opentrep/opentrep-searcher -q "nice san francisco"
  ```


  Since OpenTREP has been approved as an official package of Fedora/CentOS/RedHat
  (see the
  [review request on Bugzilla for further details](https://bugzilla.redhat.com/show_bug.cgi?id=866265)),
  just use [DNF](https://fedoraproject.org/wiki/DNF) (or
  [Yum](https://fedoraproject.org/wiki/Yum) for the older distributions):
  ```bash
  $ dnf -y install opentrep opentrep-doc
  ```


  * If not already specified, the following environment variables may be set:
  ```bash
  export platform="$(uname | tr '[:upper:]' '[:lower:]')"
  export architecture="$(uname -m|sed 's/x86_/amd/')"
  ```

  The GitHub repository may be cloned as following:
  ```bash
  $ mkdir -p ~/dev/geo && cd ~/dev/geo
  $ git clone https://github.com/trep/opentrep.git
  $ cd opentrep
  $ git checkout master
  ```

  GitHub generates
  [tar-balls on the fly for every tagged release](https://github.com/trep/opentrep/releases).
  For instance:
  ```bash
  $ wget https://github.com/trep/opentrep/archive/opentrep-0.07.10.tar.gz
  ```
  Note that SourceForge also stores some
  [older archived tar-balls](https://sourceforge.net/projects/opentrep/files/opentrep/).


  The following packages may be needed (Fedora/RedHat/CentOS names on the left
  hand side, Debian/Ubuntu names on the right hand side; names for other
  Linux distributions may vary):
  * `cmake` (or `cmake3` on CentOS)
  * `gcc-c++` / `gcc`, `g++`
  * `boost-devel` (or `boost169-devel` on CentOS) / `libboost-all-dev`
  * `xapian-core-devel` / `libxapian-dev`
  * `python-devel` / `python`, `libpython-dev`
  * `libicu-devel` / `libicu-dev`
  * `soci-mysql-devel`, `soci-sqlite3-devel` / SOCI needs to be installed from
    the sources on Debian, Ubuntu and MacOS (see the dedicated section below)
  * `sqlite3-devel` / `sqlite3`, `libsqlite3-dev`
  * `mariadb-devel` / `libmariadb-dev`, `libmysql++-dev`
  * `protobuf-devel`, `protobuf-compiler` / `libprotobuf-dev`, `protobuf-compiler`
  * `readline-devel` / `libreadline-dev`, `libncurses5-dev`
  * `ghostscript`
  * `doxygen`
  * (optional) `tetex-latex` / `texlive-latex-recommended`
  * (optional) `rpm-build`
  For instance, the following subsections show respective installation commands
  for a few famous Linux distributions.

  * General C++-base stack:
  ```bash
  $ dnf -y install git-all bash-completion gcc-c++ cmake boost-devel \
   xapian-core-devel soci-mysql-devel soci-sqlite3-devel readline-devel \
   sqlite-devel mariadb-devel libicu-devel protobuf-devel protobuf-compiler \
   autoconf automake libtool
  ```
  * Python development (the package names may vary; Python 2 is no longer
    supported):
  ```bash
  $ dnf -y install python-devel python-pip
  ```
  * Related Python packages (the package names may vary):
  ```bash
  $ dnf -y install python3-protobuf boost-python3-devel
  ```
  * Documentation tools:
  ```bash
  $ dnf -y install doxygen ghostscript "tex(latex)"
  ```

  * If DNF is not already installed (_e.g._, on CentOS 7):
  ```bash
  $ yum -y install dnf
  ```
  * General C++-based stack:
  ```bash
  $ dnf -y install git-all bash-completion gcc-c++ cmake boost169-devel \
   xapian-core-devel soci-mysql-devel soci-sqlite3-devel readline-devel \
   sqlite-devel mariadb-devel libicu-devel protobuf-devel protobuf-compiler \
   autoconf automake libtool
  ```
  * Related Python packages (the package names may vary):
  ```bash
  $ dnf -y install python3-protobuf boost169-python3-devel
  ```
  * Python development (the package names may vary):
  ```bash
  $ dnf -y install python39 python39-devel
  $ dnf -y install python3 python3-devel
  ```
  * Documentation tools:
  ```bash
  $ dnf -y install doxygen ghostscript "tex(latex)"
  ```

  * Various C++ and Python packages:
  ```bash
  $ apt-get -y install locales && locale-gen "en_US.UTF-8"
  $ apt-get -y install zlib1g-dev libbz2-dev lsb-release libgmp-dev \
     libgmp-dev gcc g++ clang cppcheck cmake libboost-all-dev libxapian-dev \
     graphviz libreadline-dev libncurses5-dev libczmq-dev libzmq3-dev \
     libssl-dev libffi-dev sqlite3 libsqlite3-dev libmariadb-dev \
     libmysql++-dev postgresql-server-dev-all libicu-dev \
     libprotobuf-dev protobuf-compiler
  ```
  * Python development (the package names may vary)
  ```bash
  $ apt-get -y install python3 libpython3-dev python3-pip
  ```
  * Documentation tools
  ```bash
  $ apt-get -y install doxygen ghostscript texlive-latex-recommended
  ```

  * With [Homebrew](http://brew.sh):
  ```bash
  $ brew install boost boost-python3 cmake libedit \
    xapian sqlite mysql mysql-client icu4c protobuf protobuf-c doxygen
  $ brew install homebrew/portable-ruby/portable-readline
  ```
  * Note that, as of end 2022, the Hombrew recipes for Python 3 are now
    specific up to the minor version, more specifically:
    + Python 3.11: `python@3.11` (Python 3.11.0 as of November 2022)
    + Python 3.10: `python@3.10` (Python 3.10.8 as of November 2022)
    + Python 3.9: `python@3.9` (Python 3.9.15 as of November 2022)
    + Python 3.8: `python@3.8` (Python 3.8.15 as of November 2022)
  * Previously, the default Python 3 installation was Python 3.8 (now part of
    the `python@3.8` Homebrew package).
    As a reminder, on MacOS with Homebrew, a way to get the details is:
  ```bash
  $ brew info python@3.11
  python@3.11: stable 3.11.0 (bottled)
  $ brew info python@3.10
  python@3.10: stable 3.10.8 (bottled)
  $ brew info python@3.9
  python@3.9: stable 3.9.15 (bottled)
  $ brew info python@3.8
  python@3.8: stable 3.8.15 (bottled)
  ```
  * Because of the multiple parallel installations of Python versions,
    the following setup may be necessary:
  ```bash
  $ sudo mkdir -p /usr/local/Cellar/python
  $ sudo chown -R $USER /usr/local/Cellar/python
  $ ln -s /usr/local/Cellar/python@3.11/3.11.0 /usr/local/Cellar/python/3.11.0
  $ ln -s /usr/local/Cellar/python@3.10/3.10.8 /usr/local/Cellar/python/3.10.8
  $ ln -s /usr/local/Cellar/python@3.9/3.9.15 /usr/local/Cellar/python/3.9.15
  $ ln -s /usr/local/Cellar/python@3.8/3.8.15 /usr/local/Cellar/python/3.8.15
  ```
    + Clean links on potential older versions:
  ```bash
  $ ls -lFh /usr/local/Cellar/python/
  total 0
  lrwxr-xr-x 1 user staff 34B Jan 9 21:14 3.8.11@ -> /usr/local/Cellar/python@3.8/3.8.11
  lrwxr-xr-x 1 user staff 34B Jan 9 21:14 3.9.6@ -> /usr/local/Cellar/python@3.9/3.9.6
  $ sudo unlink /usr/local/Cellar/python/3.8.7
  ```
    + Check the following links, as installed by Homebrew on MacOS:
  ```bash
  $ ls -lFh /usr/local/Frameworks/Python.framework/Versions/Current
  lrwxr-xr-x  1 user  staff    79B Oct 13 12:01 /usr/local/Frameworks/Python.framework/Versions/Current@ -> ../../../Cellar/python@3.10/3.10.8/Frameworks/Python.framework/Versions/Current
  $ ls -lFh /usr/local/Frameworks/Python.framework/Versions/3.10
  lrwxr-xr-x  1 user  staff    76B Oct 13 12:00 /usr/local/Frameworks/Python.framework/Versions/3.10@ -> ../../../Cellar/python@3.10/3.10.8/Frameworks/Python.framework/Versions/3.10
  $ ls -lFh /usr/local/Frameworks/Python.framework/Versions/3.11
  lrwxr-xr-x  1 user  staff    76B Nov 30 17:37 /usr/local/Frameworks/Python.framework/Versions/3.11@ -> ../../../Cellar/python@3.11/3.11.0/Frameworks/Python.framework/Versions/3.11
  $ ls -lFh /usr/local/Frameworks/Python.framework/Versions/3.9
  lrwxr-xr-x  1 darnaud  staff    75B Oct 13 12:01 /usr/local/Frameworks/Python.framework/Versions/3.9@ -> ../../../Cellar/python@3.9/3.9.15/Frameworks/Python.framework/Versions/3.9
  ```
    + If those links are not as expected (as of January 2022, they were correct),
      recreate them:
  ```bash
  $ sudo chown -R $USER /usr/local/Frameworks/Python.framework
  $ unlink /usr/local/Frameworks/Python.framework/Versions/3.11
  $ ln -s /usr/local/Cellar/python@3.11/3.11.0/Frameworks/Python.framework/Versions/3.11 /usr/local/Frameworks/Python.framework/Versions/3.11
  $ unlink /usr/local/Frameworks/Python.framework/Versions/Current
  $ ln -s /usr/local/Cellar/python@3.11/3.11.0/Frameworks/Python.framework/Versions/3.11 /usr/local/Frameworks/Python.framework/Versions/Current
  ```
    + Leading to:
  ```bash
  $ ls -lFh /usr/local/Cellar/python/
  total 0
  lrwxr-xr-x  1 user  admin    34B Jan  9 21:14 3.10.1@ -> /usr/local/Cellar/python@3.10/3.10.1
  lrwxr-xr-x  1 user  admin    34B Jan  9 21:14 3.9.9@ -> /usr/local/Cellar/python@3.9/3.9.9
  lrwxr-xr-x  1 user  admin    34B Jan  9 21:14 3.8.12@ -> /usr/local/Cellar/python@3.8/3.8.12
  $ ls -lFh /usr/local/Frameworks/Python.framework/Versions/
  total 0
  lrwxr-xr-x  1 user  staff    75B Jan  9 04:01 3.9@ -> ../../../Cellar/python@3.9/3.9.9/Frameworks/Python.framework/Versions/3.9
  lrwxr-xr-x  1 user  staff    79B Jan  9 04:01 Current@ -> ../../../Cellar/python@3.9/3.9.9/Frameworks/Python.framework/Versions/Current
  ```
  * Up until recently (mid-2020), Boost.Python came with a dependency on
    the `libpython` Python library. As of July 2020, it seems to no longer
    be the case. As a matter of fact, as stated in the
    [What's new documentation of Python 3.8](https://docs.python.org/3/whatsnew/3.8.html#debug-build-uses-the-same-abi-as-release-build):
  > On Unix, C extensions are no longer linked to libpython except on Android
  > and Cygwin. It is now possible for a statically linked Python to load
  > a C extension built using a shared library Python.
  > (Contributed by Victor Stinner in [bpo-21536](https://bugs.python.org/issue21536).).
  * The rationale is that most of the C extensions (including OpenTREP
    Python extension and Boost.Python) are meant to be loaded by the Python
    interpreter, which brings its own Python library (`libpython`).
    So, if the C extensions are linked against `libpython` themselves,
    it is highly probable that the versions of both those `libpython`
    libraries (the one integrated with the Python interpreter and
    the one linked with the C extension) would differ.
  * The adoption of that change (no longer linking a C extension with
    `libpython`) is progressing slowly, and highly dependent on the
    C extensions and the platforms. For instance:
    + On Fedora Linux distributions, that change was implemented only
      from Boost 1.73 on Fedora 33 (released at the end of 2020).
    + On MacOS, that change seems to have been implemented as a patch to
      Boost 1.72 package; as it can be seen below, Boost 1.72+
  	on MacOS no longer seems to be linked against `libpython`.
  ```bash
  $ brew info boost-python3
  boost-python3: stable 1.76.0 (bottled), HEAD
  /usr/local/Cellar/boost-python3/1.76.0 (472 files, 18.2MB) *
  $ ls -lFh /usr/local/Cellar/boost-python3/1.76.0/lib/libboost_python39.dylib
  -r--r--r--  1 user  staff   410K May 26 21:13 /usr/local/Cellar/boost-python3/1.76.0/lib/libboost_python39.dylib
  $ otool -L /usr/local/Cellar/boost-python3/1.76.0/lib/libboost_python39.dylib
  /usr/local/Cellar/boost-python3/1.76.0/lib/libboost_python39.dylib:
  	/usr/local/opt/boost-python3/lib/libboost_python39.dylib (compatibility version 0.0.0, current version 0.0.0)
  	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 905.6.0)
  	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.100.5)
  ```
  * The OpenTREP Python extension itself has adopted that change with
    version 0.07.7 release at the end of May 2020.
  * On some platforms, it may still happen that Boost.Python
    and the local Python are based on different versions. That may lead
    to some weird crashes not obvious to debug.

  * Install ICU with Homebrew
  ```bash
  $ brew install icu4c
  ```

  Follow the instructions on
  [Boost helper documentation on GitHub](https://github.com/cpp-projects-showcase/boost-helper)
  to install Python and Boost on some platforms, including MacOS.

  * On CentOS, the version of Boost is often outdated, for instance
    [Boost 1.53 on CentOS 7](https://git.centos.org/rpms/boost/releases).
    It may have adversarial effects, for instance on CentOS 7, where
    [Python 3 libraries have been upgraded from Python 3.4 to
    Python 3.6](https://lists.fedoraproject.org/archives/list/epel-announce@lists.fedoraproject.org/thread/EGUMKAIMPK2UD5VSHXM53BH2MBDGDWMO/),
    but where Boost 1.53 Python libraries have not been upgraded accordingly,
    leading for the least to
    [linking errors](https://bugzilla.redhat.com/show_bug.cgi?id=1702242).
  * Hopefully, [EPEL](https://fedoraproject.org/wiki/EPEL) provides
    more recent Boost releases, for instance
    [Boost 1.69 on RHEL/CentOS 7](https://src.fedoraproject.org/rpms/boost169/tree/epel7).
  * Those additional specific Boost packages may be installed in parallel
    to the official Boost packages.
    CMake has however to be made aware of that additional Boost package and,
    equally importantly, of its location on the file-system.
  * Example of additional CMake configuration variables for
    [Boost 1.69 on CentOS 7](https://src.fedoraproject.org/rpms/boost169/tree/epel7):
  ```bash
  $ cmake3 [...] \
    -DBOOST_LIBRARYDIR=/usr/lib64/boost169 \
    -DBOOST_INCLUDEDIR=/usr/include/boost169 \
    -DBoost_ADDITIONAL_VERSIONS="1.69 1.69.0" \
    [...]
  ```

  * On CentOS and Fedora, since the author of this package (OpenTREP)
    is also the official maintainer of the SOCI package, that latter
    is usually up-to-date
  * On Debian, Ubuntu and MacOS however, SOCI must be built from the sources.
    The following shows how to do that on MacOS (on Debian/Ubuntu, one can have
    a look at the part installing SOCI on the
    [C++/Python Docker files](https://github.com/cpp-projects-showcase/docker-images))
  * Download and prepare SOCI:
  ```bash
  $ sudo mkdir -p /opt/soci && sudo chown -R ${USER} /opt/soci
  $ git clone https://github.com/SOCI/soci.git /opt/soci/socigit
  ```

  ```bash
  $ mkdir -p /opt/soci/socigit/build/head
  $ pushd /opt/soci/socigit/build/head
  $ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DSOCI_CXX11=ON -DSOCI_TESTS=OFF ../..
  $ make
  $ sudo make install
  $ popd
  ```

  ```bash
  $ wget https://github.com/trep/opentrep/raw/master/ci-scripts/soci-debian-cmake.patch -O /opt/soci/soci-debian-cmake.patch
  $ pushd /opt/soci/socigit
  $ patch -p1 < ../soci-debian-cmake.patch
  $ popd
  $ mkdir -p /opt/soci/socigit/build/head
  $ pushd /opt/soci/socigit/build/head
  $ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DSOCI_CXX11=ON -DSOCI_TESTS=OFF ../..
  $ make
  $ sudo make install
  $ popd
  ```

  * Configure SOCI:
  ```bash
  $ mkdir -p /opt/soci/socigit/build/head && cd /opt/soci/socigit/build/head
  $ cmake -DCMAKE_INSTALL_PREFIX=/usr/local \
    -DCMAKE_BUILD_TYPE=Debug -DSOCI_CXX11=ON \
    -DSOCI_ASAN=ON -DCMAKE_VERBOSE_MAKEFILE=OFF \
    -DSOCI_TESTS=OFF -DSOCI_STATIC=OFF -DSOCI_DB2=OFF -DSOCI_EMPTY=ON \
    -DSOCI_FIREBIRD=OFF -DSOCI_MYSQL=ON -DSOCI_ODBC=OFF -DSOCI_ORACLE=OFF \
    -DSOCI_POSTGRESQL=ON -DSOCI_SQLITE3=ON ../..
  $ make
  $ sudo make install
  ```

  To customize OpenTREP to your environment, you can alter
  the installation directory:
  ```bash
  export INSTALL_BASEDIR="${HOME}/dev/deliveries"
  export TREP_VER="0.07.12"
  if [ -d /usr/lib64 ]; then LIBSUFFIX="64"; else LIBSUFFIX=""; fi
  export LIBSUFFIX_4_CMAKE="-DLIB_SUFFIX=$LIBSUFFIX"
  ```
  Then, as usual:
  * To configure the project, type something like:
  ```bash
  $ rm -rf build && mkdir build && cd build
  $ cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_BASEDIR}/opentrep-${TREP_VER} \
     -DCMAKE_BUILD_TYPE:STRING=Debug -DENABLE_TEST:BOOL=ON \
     -DINSTALL_DOC:BOOL=ON -DRUN_GCOV:BOOL=OFF ${LIBSUFFIX_4_CMAKE} ..
  ```
  * With a specific version of Boost, say
    [Boost 1.69](https://src.fedoraproject.org/rpms/boost169)
    installed in a parallel way (for instance, as an optional module):
  ```bash
  $ cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_BASEDIR}/opentrep-${TREP_VER} \
          -DCMAKE_BUILD_TYPE:STRING=Debug -DENABLE_TEST:BOOL=ON \
          -DBOOST_LIBRARYDIR=/usr/lib64/boost169 \
  		-DBOOST_INCLUDEDIR=/usr/include/boost169 \
          -DBoost_ADDITIONAL_VERSIONS="1.69 1.69.0" \
          -DINSTALL_DOC:BOOL=ON -DRUN_GCOV:BOOL=OFF ${LIBSUFFIX_4_CMAKE} ..
  ```
  * For an _ad hoc_ installation:
  ```bash
  INSTALL_DIR=/var/www/webapps/opentrep/trep
  cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
     -DCMAKE_BUILD_TYPE:STRING=Debug -DINSTALL_DOC:BOOL=OFF \
     -DRUN_GCOV:BOOL=OFF ${LIBSUFFIX_4_CMAKE} ..
  ```
  * On MacOS, a few software (_e.g._, ICU and Readline) are not in
  the standard place. So, the `cmake` command becomes:
  ```bash
  $ export CMAKE_CXX_FLAGS="-Wno-mismatched-new-delete"; \
    cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_BASEDIR}/opentrep-$TREP_VER \
     -DREADLINE_ROOT=/usr/local/opt/portable-readline \
     -DREADLINE_INCLUDE_DIR=/usr/local/opt/portable-readline/include \
     -DREADLINE_LIBRARY=/usr/local/opt/libedit/lib/libedit.dylib \
     -DICU_ROOT=/usr/local/opt/icu4c \
     -DCMAKE_BUILD_TYPE:STRING=Debug -DINSTALL_DOC:BOOL=ON \
     -DRUN_GCOV:BOOL=OFF ${LIBSUFFIX_4_CMAKE} ..
  ```
  * To build the project, type:
  ```bash
  $ make
  ```
  * To test the project, type:
  ```bash
  $ make check
  ```
  * To install the library (`libopentrep*.so*`) and the binary (`opentrep`),
    just type:
  ```bash
    make install
    cd ${INSTALL_BASEDIR}
    rm -f opentrep-stable && ln -s opentrep-${TREP_VER} opentrep-stable
    cd -
  ```
  * To package the source files, type:
  ```bash
  $ make dist
  ```
  * To package the binary and the documentation:
  ```bash
  $ make package
  ```
  * Install the latest
    [OpenTravelData (OPTD) POR data file](https://github.com/opentraveldata/opentraveldata/tree/master/opentraveldata/optd_por_public_all.csv).
    Note that OpenTREP no longer ships with (full) OPTD data files;
    only [test files](https://github.com/trep/opentrep/raw/master/data/por/test_optd_por_public.csv)
    are shipped.
    The OPTD POR data file (`optd_por_public_all.csv`) has therefore
    to be downloaded aside, usually renamed as `optd_por_public.csv`,
    and the OpenTREP binaries have then to be referred to the file-path
    of that POR data file.
  ```bash
  $ wget \
    https://github.com/opentraveldata/opentraveldata/raw/master/opentraveldata/optd_por_public_all.csv \
    -O ${INSTALL_BASEDIR}/share/opentrep/data/por/optd_por_public.csv
  ```
  * To run the local binary version:
  ```bash
  $ ./opentrep/opentrep-{dbmgr,indexer,searcher}
  ```
  * To run the installed version (the first following line must be done once
    per session):
  ```bash
  $ export TREP_LIB="${INSTALL_BASEDIR}/opentrep-${TREP_VER}/lib${LIBSUFFIX}"
  $ export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${TREP_LIB}"
  $ ${INSTALL_BASEDIR}/opentrep-${TREP_VER}/bin/opentrep-{dbmgr,indexer,searcher}
  ```

  OpenTREP may use, if so configured, a relational database. For now,
  two database products are supported, SQLite3 and MySQL/MariaDB.
  The database accelerates the look up of POR by (IATA, ICAO, FAA) codes
  and of Geonames ID. When OpenTREP is configured to run without database,
  those codes and Geonames ID are full-text searched directly with Xapian.
  Note that the database can be managed directly, _i.e._, without the
  OpenTREP search interface on top of it, thanks to the `opentrep-dbmgr`
  utility, which is detailed below.



  Here, for clarity reason, we use the local version. It is easy (see above)
  to derive the same commands with the installed version.
  * The following command prompts a Shell:
  ```bash
  $ ./opentrep/opentrep-dbmgr -t sqlite -p ${INSTALL_BASEDIR}/share/opentrep/data/por/optd_por_public.csv
  ```
  * Then, within the `opentrep>` shell, a typical sequence for SQLite would be:
  ```bash
   info
   create_user
   fill_from_por_file
   list_nb
   list_by_iata nce
   list_by_icao lfmn
   list_by_faa afm
   list_by_geonameid 6299418
  ```
  * The following command prompts a shell:
  ```bash
  ./opentrep/opentrep-dbmgr -t mysql -p ${INSTALL_BASEDIR}/share/opentrep/data/por/optd_por_public.csv
  ```
  * Then, within the `opentrep>` shell, a typical sequence for MySQL/MariaDB
    would be:
  ```bash
   reset_connection_string db=mysql user=root password=<passwd>
   create_user
   reset_connection_string db=trep_trep user=trep password=trep
   fill_from_por_file
   list_nb
   list_by_iata nce
   list_by_icao lfmn
   list_by_faa afm
   list_by_geonameid 6299418
  ```

  By default, the Xapian indexer runs without filling any relational database,
  as that step can be performed independantly by `opentrep-dbmgr`,
  as seen above.
  * Xapian indexing without any relational database:
  ```bash
  $ ./opentrep/opentrep-indexer -p ${INSTALL_BASEDIR}/share/opentrep/data/por/optd_por_public.csv
  ```
  * Xapian indexing and filling and indexing the SQLite database:
  ```bash
  $ ./opentrep/opentrep-indexer -t sqlite -p ${INSTALL_BASEDIR}/share/opentrep/data/por/optd_por_public.csv
  ```
  * Xapian indexing and filling and indexing the MySQL/MariaDB database:
  ```bash
  $ ./opentrep/opentrep-indexer -t mysql -p ${INSTALL_BASEDIR}/share/opentrep/data/por/optd_por_public.csv
  ```
  * There is an option to not even touch Xapian at all, for instance to check
    that the
    [OpenTravelData (OPTD) POR data file](http://github.com/opentraveldata/opentraveldata/tree/master/opentraveldata/optd_por_public_all.csv)
    is well-formed:
  ```bash
  $ ./opentrep/opentrep-indexer -x 0 -p ${INSTALL_BASEDIR}/share/opentrep/data/por/optd_por_public.csv
  ```

  * Xapian indexing without any relational database:
  ```bash
  $ ./opentrep/opentrep-indexer -d /var/www/webapps/opentrep/trep/traveldb -p ${INSTALL_BASEDIR}/share/opentrep/data/por/optd_por_public.csv
  ```
  * (Optional) Filling and indexing the SQLite database:
  ```bash
  $ ./opentrep/opentrep-dbmgr -t sqlite -s /var/www/webapps/opentrep/trep/sqlite_travel.db -p ${INSTALL_BASEDIR}/share/opentrep/data/por/optd_por_public.csv
      create_user
      fill_from_por_file
      quit
  ```

  * Searching without any relational database support:
  ```bash
  $ ./opentrep/opentrep-searcher -q "nce sfo"
  ```
  * Searching with SQLite (note that it should be quicker than without a database):
  ```bash
  $ ./opentrep/opentrep-searcher -t sqlite -q "nce sfo"
  ```
  * Searching with MySQL/MariaDB:
  ```bash
  $ ./opentrep/opentrep-searcher -t mysql -q "nce sfo"
  ```
  * Searching with SQLite (with Xapian and SQLite DB in a `webapps` directory):
  ```bash
  $ ./opentrep/opentrep-searcher -d /var/www/webapps/opentrep/trep/traveldb -t sqlite -s /var/www/webapps/opentrep/trep/sqlite_travel.db -q "nce sfo"
  ```

  The idea is to have at least two pieces of infrastructure (SQL database,
  Xapian index) in parallel:
  * one is used by the production;
  * the other one used as a staging platform in order to test
    and validate a new version.
  Once the new version has been validated, the two pieces of infrastructure
  can then be interverted, ie, the production becomes the new version,
  and the older version ends up in staging.
  It means that all programs have to choose which version they want to work on.
  That version may even be toggled in live.
  That method to deploy in production through a staging process
  is even more needed by the fact that indexing a new POR data file
  takes up to 30 minutes in the worst case. So, we cannot afford 30-45 minutes
  of downtime everytime a new POR data file is released (potentially every day).
  With that staging process, it is even possible to fully automate
  the re-indexing after a new POR data file release: once the new release
  has been cleared by
  [QA (Quality Assurance)](http://en.wikipedia.org/wiki/Quality_assurance)
  on staging, it becomes production.
  The corresponding command-line option for the various programs
  (`opentrep-dbmgr`, `opentrep-indexer`, `opentrep-searcher`) is `-m`.
  * For instance, to build the Xapian index/database for deployment number 0:
  ```bash
  $ ./opentrep/opentrep-indexer -m 0 -d /var/www/webapps/opentrep/trep/traveldb
  $ chown -R apache.apache /var/www/webapps/opentrep/trep
  $ ls -laFh /var/www/webapps/opentrep/trep/
  -rw-r--r-- 1 apache apache  16M Oct 14 2018 sqlite_travel.db0
  drwxr-xr-x 2 apache apache 4.0K Oct 14 2018 traveldb0/
  ```
  * And to build the Xapian index/database for deployment number 1:
  ```bash
  $ ./opentrep/opentrep-indexer -m 1 -d /var/www/webapps/opentrep/trep/traveldb
  $ chown -R apache.apache /var/www/webapps/opentrep/trep
  $ ls -laFh /var/www/webapps/opentrep/trep/
  -rw-r--r-- 1 apache apache  16M Oct 14 2018 sqlite_travel.db1
  drwxr-xr-x 2 apache apache 4.0K Oct 14 2018 traveldb1/
  ```

  There is also a command-line option, namely `-n`, to state whether or not
  the non-IATA-referenced POR should be included/parsed and indexed.
  By default, and historically, only the POR, which are referenced by
  [IATA](http://en.wikipedia.org/wiki/IATA_airport_code)
  (ie, which have a specific IATA code), are indexed (and may be searched for)
  in OpenTREP.
  POR are also referenced by other international organizations, such as
  [ICAO](http://en.wikipedia.org/wiki/ICAO_airport_code)
  or [UN/LOCODE](http://en.wikipedia.org/wiki/UN/LOCODE),
  and may not be referenced by IATA (in which case their IATA code
  is left empty).
  As of October 2018, there are around 110,000 POR in
  [OpenTravelData (OPTD)](http://github.com/opentraveldata/opentraveldata),
  the reference data source for OpenTREP:
  *  Around 20,000 POR are referenced by IATA
  *  Around 90,000 POR are not referenced by IATA, but referenced
     by other international organizations (eg, ICAO, UN/LOCODE)
  * Indexing 20,000 POR takes already a few minutes on standard hardware.
  * Indexing 110,000 POR would take 15 to 20 minutes.
  Once indexed, all those POR become searchable. That flag is therefore
  only used at indexing time (_i.e._, by the `opentrep-dbmgr` and
  `opentrep-indexer` programs).

  All the details are explained on a
  [dedicated procedure](http://github.com/machine-learning-helpers/induction-python/tree/master/installation/virtual-env),
  which works for the major Linux distributions and on MacOS.
  The procedure first installs a specific version of Python (as of January 2022,
  3.9.9) thanks to PyEnv, then install `pipenv` thanks to the `pip` utility
  provided with that specific Python version.

  * With the standard installation:
  ```bash
  PYTHON_VERSION=$(python --version 2>&1 | cut -d' ' -f2,2 | cut -d'.' -f1,2)
  PYTHONPATH=${INSTALL_BASEDIR}/opentrep-${TREP_VER}/lib${LIBSUFFIX}:${INSTALL_BASEDIR}/opentrep-${TREP_VER}/lib${LIBSUFFIX}/python${PYTHON_VERSION}/site-packages/pyopentrep \
   python3 -c "import pyopentrep; \
   openTrepLibrary = pyopentrep.OpenTrepSearcher(); \
   initOK = openTrepLibrary.init (\"${INSTALL_BASEDIR}/opentrep-${TREP_VER}/share/opentrep/data/por/test_optd_por_public.csv\", '/tmp/opentrep/xapian_traveldb', 'sqlite', '/tmp/opentrep/sqlite_travel.db', 0, False, True, True, 'pyopentrep.log'); \
   print (openTrepLibrary.search ('S', 'los las'))"
  ```
  * With an _ad hoc_ installation:
  ```bash
  PYTHON_VERSION=$(python --version 2>&1 | cut -d' ' -f2,2 | cut -d'.' -f1,2)
  PYTHONPATH=${INSTALL_DIR}/lib${LIBSUFFIX}:${INSTALL_BASEDIR}/lib${LIBSUFFIX}/python${PYTHON_VERSION}/site-packages/pyopentrep \
   python3 -c "import pyopentrep; \
   openTrepLibrary = pyopentrep.OpenTrepSearcher(); \
   initOK = openTrepLibrary.init (\"${INSTALL_BASEDIR}/opentrep-${TREP_VER}/share/opentrep/data/por/test_optd_por_public.csv\", '/var/www/webapps/opentrep/trep/traveldb', 'mysql', 'db=trep_trep user=trep password=trep', 0, False, True, True, 'pyopentrep.log'); \
   print (openTrepLibrary.search ('S', 'los las'))"
  ```


  * On some versions of MacOS (_e.g._, with 12.0 aka Monterey or 11.1 aka Big Sur),
    there may be some strange issue related to interceptors:
  ```bash
  $ ./opentrep/python/pyopentrep -d /tmp/opentrep/xapian_traveldb "nce sfo"
  ==217==ERROR: Interceptors are not working. This may be because AddressSanitizer is loaded too late (e.g. via dlopen). Please launch the executable with:
  DYLD_INSERT_LIBRARIES=/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib
  "interceptors not installed" && 0Abort trap: 6
  ```
  * A work around is to explicitly use the MacOS native Python interpreter.
    The whole command-line then becomes:
  ```bash
  $ PYTHON_VERSION=$(python3 --version 2>&1 | cut -d' ' -f2,2 | cut -d'.' -f1,2)
  $ PYTHONPATH=${INSTALL_BASEDIR}/opentrep-${TREP_VER}/lib${LIBSUFFIX}:${INSTALL_BASEDIR}/opentrep-${TREP_VER}/lib${LIBSUFFIX}/python${PYTHON_VERSION}/site-packages/pyopentrep \
    DYLD_INSERT_LIBRARIES=/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib \
    ASAN_OPTIONS=detect_container_overflow=0 \
    /usr/local/Cellar/python/3.9.1/Frameworks/Python.framework/Versions/3.9/Resources/Python.app/Contents/MacOS/Python \
    ./opentrep/python/pyopentrep.py -d /tmp/opentrep/xapian_traveldb "nce sfo"
  OPTD-maintained list of POR (points of reference): '~/dev/deliveries/opentrep-${TREP_VER}/share/opentrep/data/por/test_optd_por_public.csv'
  Xapian-based travel database/index: '/tmp/opentrep/xapian_traveldb0'
  SQLite database: '/tmp/opentrep/sqlite_travel.db'
  searchString: nce sfo
  Compact format => recognised place (city/airport) codes:


pkgId: 9bd602ad6af9a0f2b18109ef72b77efd91b4a7a89496d816bb35264aa6749128
name: python-operator-courier
arch: src
version: 2.1.11
epoch: 0
release: 1
summary: Build, verify and push operators
url: https://github.com/operator-framework/operator-courier
rpm_license: Apache License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-908a78dd-4cb8-4b9b-9d84-00c3c3f93eda
location_href: 00004448-python-operator-courier/python-operator-courier-2.1.11-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://travis-ci.org/operator-framework/operator-courier.svg?branch=master)](https://travis-ci.org/operator-framework/operator-courier)
  [![Coverage Status](https://coveralls.io/repos/github/operator-framework/operator-courier/badge.svg?branch=master)](https://coveralls.io/github/operator-framework/operator-courier?branch=master)

  The Operator Courier is used to build, validate and push Operator Artifacts.

  Operator Courier is currently supported on Python 3.6 and above.



  - To install the latest version of operator-courier, just install the latest release from [PyPI](https://pypi.org/project/operator-courier/):

    ```bash
    $ pip3 install operator-courier
    ```

  - To install a specific release, use the `==` operator and specify the version. For example:

    ```bash
    $ pip3 install operator-courier==2.0.1
    ```

  - To upgrade an existing operator-courier release:

    ```bash
    $ pip3 install -U operator-courier
    ```





  Once the project is installed, you can run the `verify` command on a directory that adheres to the expected [Manifest format](https://github.com/operator-framework/operator-registry#manifest-format).

  ```bash
  $ operator-courier verify $MANIFESTS_DIR
  ```

  To push the operator manifests to a quay.io app registry just use `operator-courier push`. Just pass the directory, namespace, repository, release version and quay.io authorization token needed to push.

  ```bash
  $ operator-courier push $MANIFESTS_DIR $EXAMPLE_NAMESPACE $EXAMPLE_REPOSITORY $EXAMPLE_RELEASE "$AUTH_TOKEN"
  ```

  Once that is created, you should be able to view your pushed application on quay.io's Application page for your particular namespace, repo, and release version (https://quay.io/application/$EXAMPLE_NAMESPACE/$EXAMPLE_REPOSITORY?tab=$EXAMPLE_RELEASE)

  For more info, run help on the main program or any of the subcommands

  ```bash
  $ operator-courier -h
  $ operator-courier $SUBCOMMAND -h
  ```


  You can optionally specify the `--verbose` flag to view detailed validation information during `verify` or `push`

  ```bash
  $ operator-courier --verbose verify $MANIFESTS_DIR
  $ operator-courier --verbose push $MANIFESTS_DIR $EXAMPLE_NAMESPACE $EXAMPLE_REPOSITORY $EXAMPLE_RELEASE "$AUTH_TOKEN"
  ```

  For more information, please refer to the following docs about creating valid CSVs
  - [Building a Cluster Service Version (CSV) for the Operator Framework](https://github.com/operator-framework/operator-lifecycle-manager/blob/master/doc/design/building-your-csv.md#your-custom-resource-definitions)
  - [Required fields within your CSV](https://github.com/operator-framework/community-operators/blob/master/docs/required-fields.md#categories)



  Currently, the quay API used by the courier can only be authenticated using quay.io's basic account token authentication. In order to get this token to authenticate with quay, a request needs to be made against the login API. This requires a normal quay.io account, and takes a username and password as parameters. This will return an auth token which can be passed to the courier.

  ```bash
  $ AUTH_TOKEN=$(curl -sH "Content-Type: application/json" -XPOST https://quay.io/cnr/api/v1/users/login -d '
  {
      "user": {
          "username": "'"${QUAY_USERNAME}"'",
          "password": "'"${QUAY_PASSWORD}"'"
      }
  }' | jq -r '.token')
  ```

  Expecting future enhancements, this authentication process will change somewhat in future releases.


  To use the Operator Courier in your project, simply install the Operator Courier pip package. Then import the api module:

  ```python
  from operatorcourier import api

  def main():
      api.build_verify_and_push(NAMESPACE, RESPOSITORY, RELEASE_VERSION, AUTH_TOKEN, source_dir="./my/folder/to/manifests/")
  ```



  ```bash
  $ pip3 install --user .
  $ operator-courier
  ```



  ```sh
  $ docker build -f Dockerfile -t $TAG
  $ docker run $TAG operator-courier
  ```

  For further details, please see the [contribution guide](docs/contributing.md).





  [Install tox](https://tox.readthedocs.io/en/latest/install.html) and run:

  ```bash
  $ tox
  ```

  This will run the tests with several versions of Python 3, measure coverage,
  and run flake8 for code linting.



  Before running integration tests, you must have write access credentials to a [quay.io](https://quay.io) namespace. See the [authentication](#authentication) section for more information.

  First, build the integration docker images:

  ```sh
  $ docker build -f tests/integration/dockerfiles/integration-base.Dockerfile -t operator-courier-integration-base:latest .
  $ docker build -f tests/integration/dockerfiles/integration.Dockerfile -t operator-courier-integration:latest .
  ```

  Then run the tests inside a container using your access credentials:

  ```sh
  $ docker run \
    -e QUAY_NAMESPACE="$QUAY_NAMESPACE" \
    -e QUAY_ACCESS_TOKEN="$QUAY_ACCESS_TOKEN" \
    operator-courier-integration:latest \
    tox -e integration
  ```


pkgId: 2fb5f2a2400c0aff61700e00fee4fc7a20a92f9ce196c32b1d564fe5dd71508d
name: python-optax
arch: src
version: 0.1.4
epoch: 0
release: 1
summary: A gradient processing and optimisation library in JAX.
url: https://github.com/deepmind/optax
rpm_license: Apache 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-7ef712f8-d9ff-457f-87bf-87c5d6fc8b24
location_href: 00009144-python-optax/python-optax-0.1.4-1.src.rpm
checksum_type: sha256
description:
  ![CI status](https://github.com/deepmind/optax/workflows/tests/badge.svg)
  [![Documentation Status](https://readthedocs.org/projects/optax/badge/?version=latest)](http://optax.readthedocs.io)
  ![pypi](https://img.shields.io/pypi/v/optax)



  Optax is a gradient processing and optimization library for JAX.

  Optax is designed to facilitate research by providing building blocks
  that can be easily recombined in custom ways.

  Our goals are to

  *   Provide simple, well-tested, efficient implementations of core components.
  *   Improve research productivity by enabling to easily combine low level
      ingredients into custom optimisers (or other gradient processing components).
  *   Accelerate adoption of new ideas by making it easy for anyone to contribute.

  We favour focusing on small composable building blocks that can be effectively
  combined into custom solutions. Others may build upon these basic components
  more complicated abstractions. Whenever reasonable, implementations prioritise
  readability and structuring code to match standard equations, over code reuse.

  An initial prototype of this library was made available in JAX's experimental
  folder as `jax.experimental.optix`. Given the wide adoption across DeepMind
  of `optix`, and after a few iterations on the API, `optix` was eventually moved
  out of `experimental` as a standalone open-source library, renamed `optax`.

  Documentation on Optax can be found at [optax.readthedocs.io](https://optax.readthedocs.io/).



  You can install the latest released version of Optax from PyPI via:

  ```sh
  pip install optax
  ```

  or you can install the latest development version from GitHub:

  ```sh
  pip install git+https://github.com/deepmind/optax.git
  ```



  Optax contains implementations of [many popular optimizers](https://optax.readthedocs.io/en/latest/api.html#Common-Optimizers) and
  [loss functions](https://optax.readthedocs.io/en/latest/api.html#common-losses).
  For example the following code snippet uses the Adam optimizer from `optax.adam`
  and the mean squared error from `optax.l2_loss`. We initialize the optimizer
  state using the `init` function and `params` of the model.

  ```python
  optimizer = optax.adam(learning_rate)

  params = {'w': jnp.ones((num_weights,))}
  opt_state = optimizer.init(params)
  ```

  To write the update loop we need a loss function that can be differentiated by
  Jax (with `jax.grad` in this
  example) to obtain the gradients.

  ```python
  compute_loss = lambda params, x, y: optax.l2_loss(params['w'].dot(x), y)
  grads = jax.grad(compute_loss)(params, xs, ys)
  ```

  The gradients are then converted via `optimizer.update` to obtain the updates
  that should be applied to the current params to obtain the new ones.
  `optax.apply_updates` is a convinience utility to do this.

  ```python
  updates, opt_state = optimizer.update(grads, opt_state)
  params = optax.apply_updates(params, updates)
  ```

  You can continue the quick start in [the Optax quickstart notebook.](https://github.com/deepmind/optax/blob/master/examples/quick_start.ipynb)




  We refer to the [docs](https://optax.readthedocs.io/en/latest/index.html)
  for a detailed list of available Optax components. Here, we highlight
  the main categories of buiilding blocks provided by Optax.



  One of the key building blocks of `optax` is a `GradientTransformation`.

  Each transformation is defined two functions:

  *   `state = init(params)`
  *   `grads, state = update(grads, state, params=None)`

  The `init` function initializes a (possibly empty) set of statistics (aka state)
  and the `update` function transforms a candidate gradient given some statistics,
  and (optionally) the current value of the parameters.

  For example:

  ```python
  tx = scale_by_rms()
  state = tx.init(params)  # init stats
  grads, state = tx.update(grads, state, params)  # transform & update stats.
  ```



  The fact that transformations take candidate gradients as input and return
  processed gradients as output (in contrast to returning the updated parameters)
  is critical to allow to combine arbitrary transformations into a custom
  optimiser / gradient processor, and also allows to combine transformations for
  different gradients that operate on a shared set of variables.

  For instance, `chain` combines them sequentially, and returns a
  new `GradientTransformation` that applies several transformations in sequence.

  For example:

  ```python
  my_optimiser = chain(
      clip_by_global_norm(max_norm),
      scale_by_adam(eps=1e-4),
      scale(-learning_rate))
  ```



  Optax also provides several wrappers that take a `GradientTransformation` as
  input and return a new `GradientTransformation` that modifies the behaviour
  of the inner transformation in a specific way.

  For instance the `flatten` wrapper flattens gradients into a single large vector
  before applying the inner GradientTransformation. The transformed updated are
  then unflattened before being returned to the user. This can be used to reduce
  the overhead of performing many calculations on lots of small variables,
  at the cost of increasing memory usage.

  For example:
  ```python
  my_optimiser = flatten(adam(learning_rate))
  ```

  Other examples of wrappers include accumulating gradients over multiple steps,
  or applying the inner transformation only to specific parameters or at
  specific steps.



  Many popular transformations use time dependent components, e.g. to anneal
  some hyper-parameter (e.g. the learning rate). Optax provides for this purpose
  `schedules` that can be used to decay scalars as a function of a `step` count.

  For example you may use a polynomial schedule (with `power=1`) to decay
  a hyper-parameter linearly over a number of steps:

  ```python
  schedule_fn = polynomial_schedule(
      init_value=1., end_value=0., power=1, transition_steps=5)

  for step_count in range(6):
    print(schedule_fn(step_count))  # [1., 0.8, 0.6, 0.4, 0.2, 0.]
  ```

  Schedules are used by certain gradient transformation, for instance:

  ```python
  schedule_fn = polynomial_schedule(
      init_value=-learning_rate, end_value=0., power=1, transition_steps=5)
  optimiser = chain(
      clip_by_global_norm(max_norm),
      scale_by_adam(eps=1e-4),
      scale_by_schedule(schedule_fn))
  ```



  In addition to the low level building blocks we also provide aliases for popular
  optimisers built using these components (e.g. RMSProp, Adam, AdamW, etc, ...).
  These are all still instances of a `GradientTransformation`, and can therefore
  be further combined with any of the individual building blocks.

  For example:

  ```python
  def adamw(learning_rate, b1, b2, eps, weight_decay):
    return chain(
        scale_by_adam(b1=b1, b2=b2, eps=eps),
        scale_and_decay(-learning_rate, weight_decay=weight_decay))
  ```



  After transforming an update using a `GradientTransformation` or any custom
  manipulation of the update, you will typically apply the update to a set
  of parameters. This can be done trivially using `tree_map`.

  For convenience, we expose an `apply_updates` function to apply updates to
  parameters. The function just adds the updates and the parameters together,
  i.e. `tree_map(lambda p, u: p + u, params, updates)`.

  ```python
  updates, state = tx.update(grads, state, params)  # transform & update stats.
  new_params = optax.apply_updates(params, updates)  # update the parameters.
  ```

  Note that separating gradient transformations from the parameter update is
  critical to support composing sequence of transformations (e.g. `chain`), as
  well as combine multiple updates to the same parameters (e.g. in multi-task
  settings where different tasks need different sets of gradient transformations).



  Optax provides a number of standard losses used in deep learning, such as
  `l2_loss`, `softmax_cross_entropy`, `cosine_distance`, etc.

  ```python
  loss = huber_loss(predictions, targets)
  ```

  The losses accept batches as inputs, however they perform no reduction across
  the batch dimension(s). This is trivial to do in JAX, for example:

  ```python
  avg_loss = jnp.mean(huber_loss(predictions, targets))
  sum_loss = jnp.sum(huber_loss(predictions, targets))
  ```



  Computing the Hessian or Fisher information matrices for neural networks is
  typically intractable due to the quadratic memory requirements. Solving for the
  diagonals of these matrices is often a better solution. The library offers
  functions for computing these diagonals with sub-quadratic memory requirements.



  Stochastic gradient estimators compute Monte Carlo estimates of gradients of
  the expectation of a function under a distribution with respect to the
  distribution's parameters.

  Unbiased estimators, such as the score function estimator (REINFORCE),
  pathwise estimator (reparameterization trick) or measure valued estimator,
  are implemented: `score_function_jacobians`, `pathwise_jacobians` and `
  measure_valued_jacobians`. Their applicability (both in terms of functions and
  distributions) is discussed in their respective documentation.

  Stochastic gradient estimators can be combined with common control variates for
  variance reduction via `control_variates_jacobians`. For provided control
  variates see `delta` and `moving_avg_baseline`.

  The result of a gradient estimator or `control_variates_jacobians` contains the
  Jacobians of the function with respect to the samples from the input
  distribution. These can then be used to update distributional parameters, or
  to assess gradient variance.

  Example of how to use the `pathwise_jacobians` estimator:

  ```python
  dist_params = [mean, log_scale]
  function = lambda x: jnp.sum(x * weights)
  jacobians = pathwise_jacobians(
        function, dist_params,
        utils.multi_normal, rng, num_samples)

  mean_grads = jnp.mean(jacobians[0], axis=0)
  log_scale_grads = jnp.mean(jacobians[1], axis=0)
  grads = [mean_grads, log_scale_grads]
  optim_update, optim_state = optim.update(grads, optim_state)
  updated_dist_params = optax.apply_updates(dist_params, optim_update)
  ```

  where `optim` is an optax optimizer.



  Optax is part of the [DeepMind JAX Ecosystem], to cite Optax please use
  the [DeepMind JAX Ecosystem citation].

  [DeepMind JAX Ecosystem]: https://deepmind.com/blog/article/using-jax-to-accelerate-our-research "DeepMind JAX Ecosystem"
  [DeepMind JAX Ecosystem citation]: https://github.com/deepmind/jax/blob/main/deepmind2020jax.txt "Citation"


pkgId: 28e0a2bf337be3fd59b56f2a7182472c139466ac7c2c62a18d7c05ea05cd8e2a
name: python-optbinning
arch: src
version: 0.17.3
epoch: 0
release: 1
summary: OptBinning: The Python Optimal Binning library
url: https://github.com/guillermo-navas-palencia/optbinning
rpm_license: Apache Licence 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-41a9c6f9-e39b-417b-829f-5c8ceafde4b9
location_href: 00010429-python-optbinning/python-optbinning-0.17.3-1.src.rpm
checksum_type: sha256
description:
  The optimal binning is the optimal discretization of a variable into bins
  given a discrete or continuous numeric target. OptBinning is a library
  written in Python implementing a rigorous and flexible mathematical
  programming formulation to solving the optimal binning problem for a binary,
  continuous and multiclass target type, incorporating constraints not
  previously addressed.

  Read the documentation at: http://gnpalencia.org/optbinning/

  OptBinning is distributed under the Apache Software License (Apache 2.0).


pkgId: 493b7e6016a6461b147f008678ca7757647ee89da75dc8f721ee81a5766463f9
name: python-optuna
arch: src
version: 3.1.1
epoch: 0
release: 1
summary: A hyperparameter optimization framework
url: https://optuna.org/
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-779649d5-fc0d-46f7-bb44-2cdbeb1a0272
location_href: 00009650-python-optuna/python-optuna-3.1.1-1.src.rpm
checksum_type: sha256
description:
  <div align="center"><img src="https://raw.githubusercontent.com/optuna/optuna/master/docs/image/optuna-logo.png" width="800"/></div>



  [![Python](https://img.shields.io/badge/python-3.7%20%7C%203.8%20%7C%203.9%20%7C%203.10%20%7C%203.11-blue)](https://www.python.org)
  [![pypi](https://img.shields.io/pypi/v/optuna.svg)](https://pypi.python.org/pypi/optuna)
  [![conda](https://img.shields.io/conda/vn/conda-forge/optuna.svg)](https://anaconda.org/conda-forge/optuna)
  [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/optuna/optuna)
  [![Read the Docs](https://readthedocs.org/projects/optuna/badge/?version=stable)](https://optuna.readthedocs.io/en/stable/)
  [![Codecov](https://codecov.io/gh/optuna/optuna/branch/master/graph/badge.svg)](https://codecov.io/gh/optuna/optuna/branch/master)

  [**Website**](https://optuna.org/)
  | [**Docs**](https://optuna.readthedocs.io/en/stable/)
  | [**Install Guide**](https://optuna.readthedocs.io/en/stable/installation.html)
  | [**Tutorial**](https://optuna.readthedocs.io/en/stable/tutorial/index.html)
  | [**Examples**](https://github.com/optuna/optuna-examples)

  *Optuna* is an automatic hyperparameter optimization software framework, particularly designed
  for machine learning. It features an imperative, *define-by-run* style user API. Thanks to our
  *define-by-run* API, the code written with Optuna enjoys high modularity, and the user of
  Optuna can dynamically construct the search spaces for the hyperparameters.



  Optuna has modern functionalities as follows:

  - [Lightweight, versatile, and platform agnostic architecture](https://optuna.readthedocs.io/en/stable/tutorial/10_key_features/001_first.html)
    - Handle a wide variety of tasks with a simple installation that has few requirements.
  - [Pythonic search spaces](https://optuna.readthedocs.io/en/stable/tutorial/10_key_features/002_configurations.html)
    - Define search spaces using familiar Python syntax including conditionals and loops.
  - [Efficient optimization algorithms](https://optuna.readthedocs.io/en/stable/tutorial/10_key_features/003_efficient_optimization_algorithms.html)
    - Adopt state-of-the-art algorithms for sampling hyperparameters and efficiently pruning unpromising trials.
  - [Easy parallelization](https://optuna.readthedocs.io/en/stable/tutorial/10_key_features/004_distributed.html)
    - Scale studies to tens or hundreds or workers with little or no changes to the code.
  - [Quick visualization](https://optuna.readthedocs.io/en/stable/tutorial/10_key_features/005_visualization.html)
    - Inspect optimization histories from a variety of plotting functions.




  We use the terms *study* and *trial* as follows:

  - Study: optimization based on an objective function
  - Trial: a single execution of the objective function

  Please refer to sample code below. The goal of a *study* is to find out the optimal set of
  hyperparameter values (e.g., `regressor` and `svr_c`) through multiple *trials* (e.g.,
  `n_trials=100`). Optuna is a framework designed for the automation and the acceleration of the
  optimization *studies*.

  [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](http://colab.research.google.com/github/optuna/optuna-examples/blob/main/quickstart.ipynb)

  ```python
  import ...


  def objective(trial):

      
      regressor_name = trial.suggest_categorical('regressor', ['SVR', 'RandomForest'])
      if regressor_name == 'SVR':
          svr_c = trial.suggest_float('svr_c', 1e-10, 1e10, log=True)
          regressor_obj = sklearn.svm.SVR(C=svr_c)
      else:
          rf_max_depth = trial.suggest_int('rf_max_depth', 2, 32)
          regressor_obj = sklearn.ensemble.RandomForestRegressor(max_depth=rf_max_depth)

      X, y = sklearn.datasets.fetch_california_housing(return_X_y=True)
      X_train, X_val, y_train, y_val = sklearn.model_selection.train_test_split(X, y, random_state=0)

      regressor_obj.fit(X_train, y_train)
      y_pred = regressor_obj.predict(X_val)

      error = sklearn.metrics.mean_squared_error(y_val, y_pred)

      return error  # An objective value linked with the Trial object.

  study = optuna.create_study()  # Create a new study.
  study.optimize(objective, n_trials=100)  # Invoke optimization of the objective function.
  ```



  Examples can be found in [optuna/optuna-examples](https://github.com/optuna/optuna-examples).



  [Integrations modules](https://optuna.readthedocs.io/en/stable/tutorial/10_key_features/003_efficient_optimization_algorithms.html#integration-modules-for-pruning), which allow pruning, or early stopping, of unpromising trials are available for the following libraries:

  * [AllenNLP](https://github.com/optuna/optuna-examples/tree/main/allennlp)
  * [Catalyst](https://github.com/optuna/optuna-examples/tree/main/pytorch/catalyst_simple.py)
  * [Catboost](https://github.com/optuna/optuna-examples/tree/main/catboost/catboost_pruning.py)
  * [Chainer](https://github.com/optuna/optuna-examples/tree/main/chainer/chainer_integration.py)
  * FastAI ([V1](https://github.com/optuna/optuna-examples/tree/main/fastai/fastaiv1_simple.py), [V2](https://github.com/optuna/optuna-examples/tree/main/fastai/fastaiv2_simple.py))
  * [Keras](https://github.com/optuna/optuna-examples/tree/main/keras/keras_integration.py)
  * [LightGBM](https://github.com/optuna/optuna-examples/tree/main/lightgbm/lightgbm_integration.py)
  * [MXNet](https://github.com/optuna/optuna-examples/tree/main/mxnet/mxnet_integration.py)
  * [PyTorch](https://github.com/optuna/optuna-examples/tree/main/pytorch/pytorch_simple.py)
  * [PyTorch Ignite](https://github.com/optuna/optuna-examples/tree/main/pytorch/pytorch_ignite_simple.py)
  * [PyTorch Lightning](https://github.com/optuna/optuna-examples/tree/main/pytorch/pytorch_lightning_simple.py)
  * [TensorFlow](https://github.com/optuna/optuna-examples/tree/main/tensorflow/tensorflow_estimator_integration.py)
  * [tf.keras](https://github.com/optuna/optuna-examples/tree/main/tfkeras/tfkeras_integration.py)
  * [XGBoost](https://github.com/optuna/optuna-examples/tree/main/xgboost/xgboost_integration.py)




  [Optuna Dashboard](https://github.com/optuna/optuna-dashboard) is a real-time web dashboard for Optuna.
  You can check the optimization history, hyperparameter importances, etc. in graphs and tables.
  You don't need to create a Python script to call [Optuna's visualization](https://optuna.readthedocs.io/en/stable/reference/visualization/index.html) functions.
  Feature requests and bug reports welcome!

  ![optuna-dashboard](https://user-images.githubusercontent.com/5564044/204975098-95c2cb8c-0fb5-4388-abc4-da32f56cb4e5.gif)

  Install `optuna-dashboard` via pip:

  ```
  $ pip install optuna-dashboard
  $ optuna-dashboard sqlite:///db.sqlite3
  ...
  Listening on http://localhost:8080/
  Hit Ctrl-C to quit.
  ```



  Optuna is available at [the Python Package Index](https://pypi.org/project/optuna/) and on [Anaconda Cloud](https://anaconda.org/conda-forge/optuna).

  ```bash

  $ pip install optuna
  ```

  ```bash

  $ conda install -c conda-forge optuna
  ```

  Optuna supports Python 3.7 or newer.

  Also, we also provide Optuna docker images on [DockerHub](https://hub.docker.com/r/optuna/optuna).



  - [GitHub Discussions] for questions.
  - [GitHub Issues] for bug reports and feature requests.

  [GitHub Discussions]: https://github.com/optuna/optuna/discussions
  [GitHub issues]: https://github.com/optuna/optuna/issues




  Any contributions to Optuna are more than welcome!

  If you are new to Optuna, please check the [good first issues](https://github.com/optuna/optuna/labels/good%20first%20issue). They are relatively simple, well-defined and are often good starting points for you to get familiar with the contribution workflow and other developers.

  If you already have contributed to Optuna, we recommend the other [contribution-welcome issues](https://github.com/optuna/optuna/labels/contribution-welcome).

  For general guidelines how to contribute to the project, take a look at [CONTRIBUTING.md](./CONTRIBUTING.md).




  Takuya Akiba, Shotaro Sano, Toshihiko Yanase, Takeru Ohta, and Masanori Koyama. 2019.
  Optuna: A Next-generation Hyperparameter Optimization Framework. In KDD ([arXiv](https://arxiv.org/abs/1907.10902)).


pkgId: fdb0815ebb5bf058a17eeefad42a1849bd60f49e62dc88092ac0dc9fac75b4d9
name: python-ordered-set
arch: src
version: 4.1.0
epoch: 0
release: 1
summary: An OrderedSet is a custom MutableSet that remembers its order, so that every
url: https://pypi.org/project/ordered-set/
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-1119fd21-f034-4c1d-8b6b-cc1bd7742b24
location_href: 00009221-python-ordered-set/python-ordered-set-4.1.0-1.src.rpm
checksum_type: sha256
description:
  [![Pypi](https://img.shields.io/pypi/v/ordered-set.svg)](https://pypi.python.org/pypi/ordered-set)

  An OrderedSet is a mutable data structure that is a hybrid of a list and a set.
  It remembers the order of its entries, and every entry has an index number that
  can be looked up.



  `ordered_set` is available on PyPI and packaged as a wheel. You can list it
  as a dependency of your project, in whatever form that takes.

  To install it into your current Python environment:

      pip install ordered-set

  To install the code for development, after checking out the repository:

      pip install flit
      flit install



  An OrderedSet is created and used like a set:

      >>> from ordered_set import OrderedSet

      >>> letters = OrderedSet('abracadabra')

      >>> letters
      OrderedSet(['a', 'b', 'r', 'c', 'd'])

      >>> 'r' in letters
      True

  It is efficient to find the index of an entry in an OrderedSet, or find an
  entry by its index. To help with this use case, the `.add()` method returns
  the index of the added item, whether it was already in the set or not.

      >>> letters.index('r')
      2

      >>> letters[2]
      'r'

      >>> letters.add('r')
      2

      >>> letters.add('x')
      5

  OrderedSets implement the union (`|`), intersection (`&`), and difference (`-`)
  operators like sets do.

      >>> letters |= OrderedSet('shazam')

      >>> letters
      OrderedSet(['a', 'b', 'r', 'c', 'd', 'x', 's', 'h', 'z', 'm'])

      >>> letters & set('aeiou')
      OrderedSet(['a'])

      >>> letters -= 'abcd'

      >>> letters
      OrderedSet(['r', 'x', 's', 'h', 'z', 'm'])

  The `__getitem__()` and `index()` methods have been extended to accept any
  iterable except a string, returning a list, to perform NumPy-like "fancy
  indexing".

      >>> letters = OrderedSet('abracadabra')

      >>> letters[[0, 2, 3]]
      ['a', 'r', 'c']

      >>> letters.index(['a', 'r', 'c'])
      [0, 2, 3]

  OrderedSet implements `__getstate__` and `__setstate__` so it can be pickled,
  and implements the abstract base classes `collections.MutableSet` and
  `collections.Sequence`.

  OrderedSet can be used as a generic collection type, similar to the collections
  in the `typing` module like List, Dict, and Set. For example, you can annotate
  a variable as having the type `OrderedSet[str]` or `OrderedSet[Tuple[int,
  str]]`.




  An OrderedSet can be used as a bi-directional mapping between a sparse
  vocabulary and dense index numbers. As of version 3.1, it accepts NumPy arrays
  of index numbers as well as lists.

  This combination of features makes OrderedSet a simple implementation of many
  of the things that `pandas.Index` is used for, and many of its operations are
  faster than the equivalent pandas operations.

  For further compatibility with pandas.Index, `get_loc` (the pandas method for
  looking up a single index) and `get_indexer` (the pandas method for fancy
  indexing in reverse) are both aliases for `index` (which handles both cases
  in OrderedSet).




  OrderedSet was implemented by Elia Robyn Lake (maiden name: Robyn Speer).
  Jon Crall contributed changes and tests to make it fit the Python set API.
  Roman Inflianskas added the original type annotations.




  The original implementation of OrderedSet was a [recipe posted to ActiveState
  Recipes][recipe] by Raymond Hettiger, released under the MIT license.

  [recipe]: https://code.activestate.com/recipes/576694-orderedset/

  Hettiger's implementation kept its content in a doubly-linked list referenced by a
  dict. As a result, looking up an item by its index was an O(N) operation, while
  deletion was O(1).

  This version makes different trade-offs for the sake of efficient lookups. Its
  content is a standard Python list instead of a doubly-linked list. This
  provides O(1) lookups by index at the expense of O(N) deletion, as well as
  slightly faster iteration.

  In Python 3.6 and later, the built-in `dict` type is inherently ordered. If you
  ignore the dictionary values, that also gives you a simple ordered set, with
  fast O(1) insertion, deletion, iteration and membership testing. However, `dict`
  does not provide the list-like random access features of OrderedSet. You
  would have to convert it to a list in O(N) to look up the index of an entry or
  look up an entry by its index.


pkgId: d12a0eab9f42c8602d9b6ec04c5168b8a6f5a46b01b2ae3b8a7b2fe294483601
name: python-ordereddict
arch: src
version: 1.1
epoch: 0
release: 1
summary: A drop-in substitute for Py2.7's new collections.OrderedDict that works in Python 2.4-2.6.
url: UNKNOWN
rpm_license: UNKNOWN
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-3cac0172-1707-4d66-962f-bb88930cd3cf
location_href: 00009812-python-ordereddict/python-ordereddict-1.1-1.src.rpm
checksum_type: sha256
description:
  Drop-in substitute for Py2.7's new collections.OrderedDict. The recipe has big-oh
  performance that matches regular dictionaries (amortized O(1)
  insertion/deletion/lookup and O(n) iteration/repr/copy/equality_testing).

  Originally based on http://code.activestate.com/recipes/576693/


pkgId: 80cf5f49f0aa44db716ddad2175e2dcf56c7bec4a02e742002837253c60f1373
name: python-orderedmultidict
arch: src
version: 1.0.1
epoch: 0
release: 1
summary: Ordered Multivalue Dictionary
url: https://github.com/gruns/orderedmultidict
rpm_license: Unlicense
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-526d1c41-42c8-4148-8a23-bf9634d09b38
location_href: 00004451-python-orderedmultidict/python-orderedmultidict-1.0.1-1.src.rpm
checksum_type: sha256
description:
  A multivalue dictionary is a dictionary that can store multiple values for the
  same key. An ordered multivalue dictionary is a multivalue dictionary that
  retains the order of insertions and deletions.

  omdict retains method parity with dict.

  Information and documentation at https://github.com/gruns/orderedmultidict.


pkgId: 111101f6853b062831a1c75c5d607300d5f20e480d31a9d07488d7cd4336c44e
name: python-oscrypto
arch: src
version: 1.3.0
epoch: 0
release: 1
url: https://github.com/wbond/oscrypto
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-ca22b796-9012-4ba0-a07d-e8bd8c6386d1
location_href: 00009074-python-oscrypto/python-oscrypto-1.3.0-1.src.rpm
checksum_type: sha256
summary:
  TLS (SSL) sockets, key generation, encryption, decryption, signing, verification and KDFs using the OS crypto libraries. Does not require a compiler, and relies on the OS for patching. Works on Windows, OS X and Linux/BSD.

description:
  A compilation-free, always up-to-date encryption library for Python that works
  on Windows, OS X, Linux and BSD. Supports the following versions of Python:
  2.6, 2.7, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 and pypy.

   - [Supported Operating Systems](#supported-operationg-systems)
   - [Features](#features)
   - [Why Another Python Crypto Library?](#why-another-python-crypto-library)
   - [Related Crypto Libraries](#related-crypto-libraries)
   - [Current Release](#current-release)
   - [Dependencies](#dependencies)
   - [Installation](#installation)
   - [License](#license)
   - [Documentation](#documentation)
   - [Continuous Integration](#continuous-integration)
   - [Testing](#testing)
   - [Development](#development)
   - [CI Tasks](#ci-tasks)

  [![GitHub Actions CI](https://github.com/wbond/oscrypto/workflows/CI/badge.svg)](https://github.com/wbond/oscrypto/actions?workflow=CI)
  [![CircleCI](https://circleci.com/gh/wbond/oscrypto.svg?style=shield)](https://circleci.com/gh/wbond/oscrypto)
  [![PyPI](https://img.shields.io/pypi/v/oscrypto.svg)](https://pypi.python.org/pypi/oscrypto)



  The library integrates with the encryption library that is part of the operating
  system. This means that a compiler is never needed, and OS security updates take
  care of patching vulnerabilities. Supported operating systems include:

   - Windows XP or newer
     - Uses:
       - [Cryptography API: Next Generation (CNG)](https://msdn.microsoft.com/en-us/library/windows/desktop/aa376210(v=vs.85).aspx)
       - [Secure Channel](https://msdn.microsoft.com/en-us/library/windows/desktop/aa380123(v=vs.85).aspx) for TLS
       - [CryptoAPI](https://msdn.microsoft.com/en-us/library/windows/desktop/aa380256(v=vs.85).aspx) for trust lists and XP support
     - Tested on:
       - Windows XP (no SNI)
       - Windows 7
       - Windows 8.1
       - Windows Server 2012
       - Windows 10
   - OS X 10.7 or newer
     - Uses:
       - [Security.framework](https://developer.apple.com/library/prerelease/mac/documentation/Security/Reference/SecurityFrameworkReference/index.html)
       - [Secure Transport](https://developer.apple.com/library/prerelease/mac/documentation/Security/Reference/secureTransportRef/index.html#//apple_ref/doc/uid/TP30000155) for TLS
       - [CommonCrypto](http://www.opensource.apple.com/source/CommonCrypto/CommonCrypto-55010/CommonCrypto/) for PBKDF2
       - OpenSSL (or LibreSSL on macOS 10.13) for the PKCS #12 KDF
     - Tested on:
       - OS X 10.7
       - OS X 10.8
       - OS X 10.9
       - OS X 10.10
       - OS X 10.11
       - OS X 10.11 with OpenSSL 1.1.0
       - macOS 10.12
       - macOS 10.13 with LibreSSL 2.2.7
       - macOS 10.14
       - macOS 10.15
       - macOS 10.15 with OpenSSL 3.0
       - macOS 11
       - macOS 12
   - Linux or BSD
     - Uses one of:
       - [OpenSSL 0.9.8](https://www.openssl.org/docs/man0.9.8/)
       - [OpenSSL 1.0.x](https://www.openssl.org/docs/man1.0.0/)
       - [OpenSSL 1.1.0](https://www.openssl.org/docs/man1.1.0/)
       - [OpenSSL 3.0](https://www.openssl.org/docs/man3.0/)
       - [LibreSSL](http://www.libressl.org/)
     - Tested on:
       - Arch Linux with OpenSSL 1.0.2
       - OpenBSD 5.7 with LibreSSL
       - Ubuntu 10.04 with OpenSSL 0.9.8
       - Ubuntu 12.04 with OpenSSL 1.0.1
       - Ubuntu 15.04 with OpenSSL 1.0.1
       - Ubuntu 16.04 with OpenSSL 1.0.2 on Raspberry Pi 3 (armhf)
       - Ubuntu 18.04 with OpenSSL 1.1.x (amd64, arm64, ppc64el)
       - Ubuntu 22.04 with OpenSSL 3.0 (amd64)

  *OS X 10.6 will not be supported due to a lack of available
  cryptographic primitives and due to lack of vendor support.*



  Currently the following features are implemented. Many of these should only be
  used for integration with existing/legacy systems. If you don't know which you
  should, or should not use, please see [Learning](docs/readme.md#learning).

   - [TLSv1.x socket wrappers](docs/tls.md)
     - Certificate verification performed by OS trust roots
     - Custom CA certificate support
     - SNI support (except Windows XP)
     - Session reuse via IDs/tickets
     - Modern cipher suites (RC4, DES, anon and NULL ciphers disabled)
     - Weak DH parameters and certificate signatures rejected
     - SSLv3 disabled by default, SSLv2 unimplemented
     - CRL/OCSP revocation checks consistenty disabled
   - [Exporting OS trust roots](docs/trust_list.md)
     - PEM-formatted CA certs from the OS for OpenSSL-based code
   - [Encryption/decryption](docs/symmetric.md)
     - AES (128, 192, 256), CBC mode, PKCS7 padding
     - AES (128, 192, 256), CBC mode, no padding
     - TripleDES 3-key, CBC mode, PKCS5 padding
     - TripleDes 2-key, CBC mode, PKCS5 padding
     - DES, CBC mode, PKCS5 padding
     - RC2 (40-128), CBC mode, PKCS5 padding
     - RC4 (40-128)
     - RSA PKCSv1.5
     - RSA OAEP (SHA1 only)
   - [Generating public/private key pairs](docs/asymmetric.md)
     - RSA (1024, 2048, 3072, 4096 bit)
     - DSA (1024 bit on all platforms - 2048, 3072 bit with OpenSSL 1.x or
       Windows 8)
     - EC (secp256r1, secp384r1, secp521r1 curves)
   - [Generating DH parameters](docs/asymmetric.md)
   - [Signing and verification](docs/asymmetric.md)
     - RSA PKCSv1.5
     - RSA PSS
     - DSA
     - EC
   - [Loading and normalizing DER and PEM formatted keys](docs/keys.md)
     - RSA public and private keys
     - DSA public and private keys
     - EC public and private keys
     - X.509 Certificates
     - PKCS#12 archives (`.pfx`/`.p12`)
   - [Key derivation](docs/kdf.md)
     - PBKDF2
     - PBKDF1
     - PKCS#12 KDF
   - [Random byte generation](docs/util.md)

  The feature set was largely driven by the technologies used related to
  generating and validating X.509 certificates. The various CBC encryption schemes
  and KDFs are used to load encrypted private keys, and the various RSA padding
  schemes are part of X.509 signatures.

  For modern cryptography not tied to an existing system, please see the
  [Modern Cryptography](docs/readme.md#modern-cryptography) section of the docs.

  *Please note that this library does not include modern block modes such as CTR
  and GCM due to lack of support from both OS X and OpenSSL 0.9.8.*



  In short, the existing cryptography libraries for Python didn't fit the needs of
  a couple of projects I was working on. Primarily these are applications
  distributed to end-users who aren't programmers, that need to handle TLS and
  various technologies related to X.509 certificates.

  If your system is not tied to AES, TLS, X.509, or related technologies, you
  probably want [more modern cryptography](docs/readme.md#modern-cryptography).

  Depending on your needs, the [cryptography](https://cryptography.io) package may
  be a good (or better) fit.

  Some things that make oscrypto unique:

   - No compiler needed, ever. No need to pre-compile shared libraries. Just
     distribute the Python source files, any way you want.
   - Uses the operating system's crypto library - does not require OpenSSL on
     Windows or OS X.
   - Relies on the operating system for security patching. You don't need to
     rebuild all of your apps every time there is a new TLS vulnerability.
   - Intentionally limited in scope to crypto primitives. Other libraries
     built upon it deal with certificate path validation, creating certificates
     and CSRs, constructing CMS structures.
   - Built on top of a fast, pure-Python ASN.1 parser,
     [asn1crypto](https://github.com/wbond/asn1crypto).
   - TLS functionality uses the operating system's trust list/CA certs and is
     pre-configured with sane defaults
   - Public APIs are simple and use strict type checks to avoid errors

  Some downsides include:

   - Does not currently implement:
     - standalone DH key exchange
     - various encryption modes such as GCM, CCM, CTR, CFB, OFB, ECB
     - key wrapping
     - CMAC
     - HKDF
   - Non-TLS functionality is architected for dealing with data that fits in
     memory and is available all at once
   - Developed by a single developer



  *oscrypto* is part of the modularcrypto family of Python packages:

   - [asn1crypto](https://github.com/wbond/asn1crypto)
   - [oscrypto](https://github.com/wbond/oscrypto)
   - [csrbuilder](https://github.com/wbond/csrbuilder)
   - [certbuilder](https://github.com/wbond/certbuilder)
   - [crlbuilder](https://github.com/wbond/crlbuilder)
   - [ocspbuilder](https://github.com/wbond/ocspbuilder)
   - [certvalidator](https://github.com/wbond/certvalidator)



  1.2.1 - [changelog](changelog.md)



   - [*asn1crypto*](https://github.com/wbond/asn1crypto)
   - Python 2.6, 2.7, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 or pypy
   - OpenSSL/LibreSSL if on Linux¹

  *¹ On Linux, `ctypes.util.find_library()` is used to located OpenSSL. Alpine Linux does not have an appropriate install by default for `find_library()` to work properly. Instead, `oscrypto.use_openssl()` must be called with the path to the OpenSSL shared libraries.*



  ```bash
  pip install oscrypto
  ```



  *oscrypto* is licensed under the terms of the MIT license. See the
  [LICENSE](LICENSE) file for the exact license text.



  [*oscrypto* documentation](docs/readme.md)



  Various combinations of platforms and versions of Python are tested via:

   - [macOS, Linux, Windows](https://github.com/wbond/oscrypto/actions/workflows/ci.yml) via GitHub Actions
   - [arm64](https://circleci.com/gh/wbond/oscrypto) via CircleCI



  Tests are written using `unittest` and require no third-party packages.

  Depending on what type of source is available for the package, the following
  commands can be used to run the test suite.



  When working within a Git working copy, or an archive of the Git repository,
  the full test suite is run via:

  ```bash
  python run.py tests
  ```

  To run only some tests, pass a regular expression as a parameter to `tests`.

  ```bash
  python run.py tests aes
  ```

  To run tests multiple times, in order to catch edge-case bugs, pass an integer
  to `tests`. If combined with a regular expression for filtering, pass the
  repeat count after the regular expression.

  ```bash
  python run.py tests 20
  python run.py tests aes 20
  ```



  To run tests using a custom build of OpenSSL, or to use OpenSSL on Windows or
  Mac, add `use_openssl` after `run.py`, like:

  ```bash
  python run.py use_openssl=/path/to/libcrypto.so,/path/to/libssl.so tests
  ```

  To run tests forcing the use of ctypes, even if cffi is installed, add
  `use_ctypes` after `run.py`:

  ```bash
  python run.py use_ctypes=true tests
  ```

  To run tests using the legacy Windows crypto functions on Windows 7+, add
  `use_winlegacy` after `run.py`:

  ```bash
  python run.py use_winlegacy=true tests
  ```



  To skip tests that require an internet connection, add `skip_internet` after
  `run.py`:

  ```bash
  python run.py skip_internet=true tests
  ```



  When working within an extracted source distribution (aka `.tar.gz`) from
  PyPi, the full test suite is run via:

  ```bash
  python setup.py test
  ```



  The following env vars can control aspects of running tests:



  Setting the env var `OSCRYPTO_USE_OPENSSL` to a string in the form:

  ```
  /path/to/libcrypto.so,/path/to/libssl.so
  ```

  will force use of specific OpenSSL shared libraries.

  This also works on Mac and Windows to force use of OpenSSL instead of using
  native crypto libraries.



  By default, oscrypto will use the `cffi` module for FFI if it is installed.

  To use the slightly slower, but more widely-tested, `ctypes` FFI layer, set
  the env var `OPENSSL_USE_CTYPES=true`.



  On Windows 7 and newer, oscrypto will use the CNG backend by default.

  To force use of the older CryptoAPI, set the env var
  `OPENSSL_USE_WINLEGACY=true`.



  Some of the TLS tests require an active internet connection to ensure that
  various "bad" server certificates are rejected.

  To skip tests requiring an internet connection, set the env var
  `OPENSSL_SKIP_INTERNET_TESTS=true`.



  When the package has been installed via pip (or another method), the package
  `oscrypto_tests` may be installed and invoked to run the full test suite:

  ```bash
  pip install oscrypto_tests
  python -m oscrypto_tests
  ```



  To install the package used for linting, execute:

  ```bash
  pip install --user -r requires/lint
  ```

  The following command will run the linter:

  ```bash
  python run.py lint
  ```

  Support for code coverage can be installed via:

  ```bash
  pip install --user -r requires/coverage
  ```

  Coverage is measured by running:

  ```bash
  python run.py coverage
  ```

  To install the packages requires to generate the API documentation, run:

  ```bash
  pip install --user -r requires/api_docs
  ```

  The documentation can then be generated by running:

  ```bash
  python run.py api_docs
  ```

  To install the necessary packages for releasing a new version on PyPI, run:

  ```bash
  pip install --user -r requires/release
  ```

  Releases are created by:

   - Making a git tag in [semver](http://semver.org/) format
   - Running the command:

     ```bash
     python run.py release
     ```

  Existing releases can be found at https://pypi.python.org/pypi/oscrypto.



  A task named `deps` exists to download and stage all necessary testing
  dependencies. On posix platforms, `curl` is used for downloads and on Windows
  PowerShell with `Net.WebClient` is used. This configuration sidesteps issues
  related to getting pip to work properly and messing with `site-packages` for
  the version of Python being used.

  The `ci` task runs `lint` (if flake8 is available for the version of Python) and
  `coverage` (or `tests` if coverage is not available for the version of Python).
  If the current directory is a clean git working copy, the coverage data is
  submitted to codecov.io.

  ```bash
  python run.py deps
  python run.py ci
  ```


pkgId: e9cf6778d061271385f66e675c00850af09fbf8d0e457a9d18d3e2fd84b4b981
name: python-oslo.sphinx
arch: src
version: 1.1
epoch: 0
release: 1
summary: OpenStack Sphinx Extensions
url: http://www.openstack.org/
rpm_license: None
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-49949fad-346f-405a-b364-48ee32d8135f
location_href: 00004472-python-oslo-sphinx/python-oslo.sphinx-1.1-1.src.rpm
checksum_type: sha256
description:
  Theme and extension support for Sphinx documentation from the
  OpenStack project.
  To use the theme, add ``'oslo.sphinx'`` to the ``extensions`` list in
  the ``conf.py`` file in your Sphinx project.


pkgId: ea0ef7dd4c0ef3f23b5a6a824be64abdb9e577bab0d13d859694e293632b71bd
name: python-osmnx
arch: src
version: 1.3.0
epoch: 0
release: 1
summary: Retrieve, model, analyze, and visualize OpenStreetMap street networks and other spatial data
url: https://github.com/gboeing/osmnx
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-35d92fb5-019b-47ad-b068-4496aa596335
location_href: 00012716-python-osmnx/python-osmnx-1.3.0-1.src.rpm
checksum_type: sha256
description:
  **OSMnx** is a Python package that lets you download spatial data and
  model, project, visualize, and analyze real-world street networks from
  OpenStreetMap's APIs. Users can download and model walkable, drivable, or
  bikeable urban networks with a single line of Python code, and then easily
  analyze and visualize them. You can just as easily download and work with
  amenities/points of interest, building footprints, elevation data, street
  bearings/orientations, speed/travel time, and network routing.

  Citation info: Boeing, G. 2017. `OSMnx: New Methods for Acquiring,
  Constructing, Analyzing, and Visualizing Complex Street Networks`_.
  *Computers, Environment and Urban Systems* 65, 126-139.
  doi:10.1016/j.compenvurbsys.2017.05.004

  Read the `docs`_ or see usage examples and demos on `GitHub`_.

  .. _GitHub: https://github.com/gboeing/osmnx-examples
  .. _docs: https://osmnx.readthedocs.io
  .. _OSMnx\: New Methods for Acquiring, Constructing, Analyzing, and Visualizing Complex Street Networks: http://geoffboeing.com/publications/osmnx-complex-street-networks/


pkgId: 0638c9ba5460bfa5e128a7c11779fd955d878e7fdf924dcc194816215dab5f7a
name: python-ouimeaux
arch: src
version: 0.8.2
epoch: 0
release: 1
summary: Open source control for Belkin WeMo devices
url: https://github.com/iancmcc/ouimeaux
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e3801b17-f88e-4277-92d6-7a6d36300c17
location_href: 00004479-python-ouimeaux/python-ouimeaux-0.8.2-1.src.rpm
checksum_type: sha256
description:
  Release 0.8.0 (July 30, 2016)
  +++++++++++++++++++++++++++++
  - Randomize subscription ports to enable simultaneous ouimeaux scripts (thanks @bennytheshap)
  - Fix for WeMo LED Light support (thanks @sstangle73)
  - #32: Removed address cache, broke server out into optional feature
  - Fix for Maker state reporting (thanks @pavoni)
  - Filter by SSDP location, fixing case where multiple devices respond from the same IP (thanks @szakharchenko)
  - Fix Maker event handlers, which were being passed as bridges (thanks @maxlazarov)
  - Work around gevent-socketio bug by explicitly casting header value as string
  - Fix for inconsistent Light state (thanks @canduuk)
  - StateChange signals are now a separate class and do not fire if value is unchanged (thanks @esecules)
  - Python 3 support (thanks to @drock371)
  Release 0.7.9 (March 17, 2015)
  ++++++++++++++++++++++++++++++
  - Command line support for WeMo LED Light (thanks @fritz-fritz)
  - Command line support for WeMo Maker (thanks @logjames)
  - Support for 2.0.0 firmware (thanks @fritz-fritz)
  - Bug fixes
  Release 0.7.3 (August 10, 2014)
  ++++++++++++++++++++++++++++++++
  - Fixed #18: Error when run as root
  - Fixed #26: Evict devices from cache when unreachable
  - Fixed #29: GetPower stopped working for Insight devices
  - Fixed #31: Add blink method on switches, include in REST API
  - Fixed #33, #37: Handle invalid devices without dying
  - Fixed #35: Require requests >= 2.3.0
  - Fixed #40: Retry requests in the event of failure
  - Fixed #47: Don't choke on invalid newlines in XML returned by switches
               (thanks to @fingon)
  Release 0.7.2 (January 28, 2014)
  ++++++++++++++++++++++++++++++++
  - Fix a bug with using query parameters on /api/device
  Release 0.7 (January 27, 2014)
  ++++++++++++++++++++++++++++++
  - Added REST API
  - Added Web app
  Release 0.6 (January 25, 2014)
  ++++++++++++++++++++++++++++++++
  - Added signals framework
  - Fixed #16, #19, #22: Defensively resubscribe to events when device responds with an error
  - Fixed #15: Signals framework includes relevant device when sending signal
  - Refactored structure, added Sphinx docs
  Release 0.5.3 (January 25, 2014)
  ++++++++++++++++++++++++++++++++
  - Fixed #20: Allow timeout in environment.wait()
  - Fixed #21: Add Insight support
  Release 0.5.2 (November 23, 2013)
  +++++++++++++++++++++++++++++++++
  - Fixed #14: Indicate Connection:close header to avoid logging when WeMo sends
    invalid HTTP response.
  Release 0.5.1 (November 9, 2013)
  ++++++++++++++++++++++++++++++++
  - Fixed #10: Updated subscriber listener to use more reliable method of
    retrieving non-loopback IP address; updated docs to fix typo in listener
    registration example (thanks to @benhoyle, @francxk)
  - Fixed #11: Remove instancemethod objects before attempting to pickle devices
    in the cache (thanks @piperde, @JonPenner, @tomtomau, @masilu77)
  Release 0.5 (October 14, 2013)
  +++++++++++++++++++++++++++++++
  - Added fuzzy matching of device name when searching/toggling from command line
  - Added ``status`` mode to print status for all devices
  - Added ``switch status`` mode to print status for specific device
  - Added flags for all command-line options
  - Fixed #9: Removed unused fcntl import that precluded Windows usage (thanks to
    @deepseven)
  Release 0.4.3 (August 31, 2013)
  +++++++++++++++++++++++++++++++
  - Used new method of obtaining local IP for discovery that is less likely to
    return loopback
  - Exit with failure and instructions for solution if loopback IP is used
  - Updated installation docs to include python-dev and pip instructions (patch
    by @fnaard)
  - Fixed README inclusion bug that occasionally broke installation via pip.
  - Added ``--debug`` option to enable debug logging to stdout
  Release 0.4 (August 17, 2013)
  +++++++++++++++++++++++++++++
  - Fixed #7: Added support for light switch devices (patch by nschrenk).
  - Fixed #6: Added "wemo clear" command to clear the device cache.
  Release 0.3 (May 25, 2013)
  ++++++++++++++++++++++++++
  - Fixed #4: Added ability to specify ip:port for discovery server binding. Removed
    documentation describing need to disable SSDP service on Windows.
  - Fixed #5: Added device cache for faster results.
  - Added configuration file.
  - Added ability to configure aliases for devices to avoid quoting strings on
    the command line.
  - Added 'toggle' command to command line switch control.
  Release 0.2 (April 21, 2013)
  ++++++++++++++++++++++++++++++
  - Fixed #1: Added ability to subscribe to motion and switch state change events.
  - Added Windows installation details to README (patch by @brianpeiris)
  - Cleaned up UDP server lifecycle so rediscovery doesn't try to start it back up.
  Release 0.1 (February 2, 2013)
  ++++++++++++++++++++++++++++++
  - Initial release.
  * First release on PyPI.


pkgId: e53b1efcec7de9b666023750aaa2567f2857172c274c92ba8d252fbef03feea0
name: python-outcome
arch: src
version: 1.2.0
epoch: 0
release: 1
summary: Capture the outcome of Python function calls.
url: https://github.com/python-trio/outcome
rpm_license: MIT OR Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d7c5f5f9-59a1-49fc-b9b6-bd3e5e93cfe0
location_href: 00004480-python-outcome/python-outcome-1.2.0-1.src.rpm
checksum_type: sha256
description:
  Welcome to `outcome <https://github.com/python-trio/outcome>`__!
  Capture the outcome of Python function calls. Extracted from the
  `Trio <https://github.com/python-trio/trio>`__ project.
  License: Your choice of MIT or Apache License 2.0


pkgId: c144db1820b84670e27dffb870b706d78033b0af327018aa223bcb8a20a5af1f
name: python-outdated
arch: src
version: 0.2.2
epoch: 0
release: 1
summary: Check if a version of a PyPI package is outdated
url: http://github.com/alexmojaki/outdated
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-3cec9501-991c-4ae9-b852-348b62a2873d
location_href: 00004481-python-outdated/python-outdated-0.2.2-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://travis-ci.org/alexmojaki/outdated.svg?branch=master)](https://travis-ci.org/alexmojaki/outdated) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/outdated/badge.svg?branch=master&uncache)](https://coveralls.io/github/alexmojaki/outdated?branch=master) [![Supports Python versions 2.7 and 3.5+](https://img.shields.io/pypi/pyversions/outdated.svg)](https://pypi.python.org/pypi/outdated)

  This is a mini-library which, given a package name and a version, checks if it's the latest version available on PyPI.

  To install:

      pip install outdated



      from outdated import warn_if_outdated

      warn_if_outdated('my-package-name', '1.2.3')

  This will:

  - Show a warning if the given version is not the latest. The warning includes the package name, the given version, and the latest version.
  - Perform the check in a background thread (so it doesn't delay anything)
  - Make at most one HTTP call (unless there is an HTTP error, in which case it will try 3 times) to the PyPI server for that specific package
  - Cache the result of the HTTP call on disk for 24 hours
  - Show a warning if any exception occurs during the check

  This will *not* check what version is currently installed, it will only use the given version. Library authors must make sure that the version in their `setup.py` matches the version here.

  The package name argument must be exactly the name used on PyPI, so that e.g. https://pypi.python.org/pypi/my-package-name is a valid URL.

  Optional arguments:

  - `background` (default `True`): run the check in a separate thread. Set to `False` to run immediately.
  - `raise_exceptions` (default: `False`): if `True`, allow exceptions to bubble to the top. Otherwise, show a warning including the exception message. If `background` is `True` and this is `True` then this will result in a full traceback showing but the process continuing.



      from outdated import check_outdated

      is_outdated, latest_version = check_outdated('my-package-name', '1.2.3')

  `is_outdated` is a boolean which is True if the given version is earlier than the latest version, which is the string `latest_version`.

  Optional arguments:

  - `repository_url` (default `https://pypi.python.org/pypi/%s/json`): a `%` style format string to use a different repository PyPI repository URL, e.g. test.pypi.org or a private repository. The string is formatted with the package name.

  This still makes the HTTP call with retries and caches the result on disk. It doesn't use a separate thread or emit any warnings (unless there is an exception specifically while using the cache, in which case the check will be done without the cache).



  To disable all warnings from this library, set the environment variable `OUTDATED_IGNORE` to any non-empty value.

  To always raise exceptions instead of converting them to warnings (both in general in `warn_if_outdated` and more specifically when there's a caching problem) set the environment variable `OUTDATED_RAISE_EXCEPTION=1`.

  The warnings are also categorised so that you can easily control them with standard [warning filters](https://docs.python.org/3/library/warnings.html#the-warnings-filter). The classes are [here](https://github.com/alexmojaki/outdated/blob/master/outdated/mywarnings.py) and can be imported directly from the `outdated` module.



  This library works by fetching a URL such as [this](https://pypi.python.org/pypi/requests/json) - the time it takes to visit that link is essentially the speed of the library. This is much faster than the command `pip list --outdated` or any equivalent code.


pkgId: 47bd30980886772429e815d11f02dfa6166f26e2bbb9d987a8c1cf05f7129c0f
name: python-overrides
arch: src
version: 7.3.1
epoch: 0
release: 1
summary: A decorator to automatically detect mismatch when overriding a method.
url: https://github.com/mkorpela/overrides
rpm_license: Apache License, Version 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e94fe1aa-f404-47e0-ab62-991a10ddc468
location_href: 00010488-python-overrides/python-overrides-7.3.1-1.src.rpm
checksum_type: sha256
description:
  A decorator ``@override`` that verifies that a method that should override an inherited method actually does it.
  Copies the docstring of the inherited method to the overridden method.
  Since signature validation and docstring inheritance are performed on class creation and not on class instantiation,
  this library significantly improves the safety and experience of creating class hierarchies in
  Python without significantly impacting performance. See https://stackoverflow.com/q/1167617 for the
  initial inspiration for this library.


pkgId: 2c781e31cff2f8fdcab83f030f69e02dd696a1238a3006d207988586974a686c
name: python-oyaml
arch: src
version: 1.0
epoch: 0
release: 1
summary: Ordered YAML: drop-in replacement for PyYAML which preserves dict ordering
url: https://github.com/wimglenn/oyaml
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-c6a76b48-ab17-41dd-9efb-4576e85768ff
location_href: 00009574-python-oyaml/python-oyaml-1.0-1.src.rpm
checksum_type: sha256
description:
  oyaml is a drop-in replacement for `PyYAML <http://pyyaml.org/wiki/PyYAML>`_ which preserves dict ordering.  Both Python 2 and Python 3 are supported. Just ``pip install oyaml``, and import as shown below:
     import oyaml as yaml
  You'll no longer be annoyed by screwed-up mappings when dumping/loading.


pkgId: e96f8756a2cc2349d4f284ca68c20e900f10a225d781156bc0e0307914b85dd5
name: python-packit
arch: src
version: 0.30.0
epoch: 0
release: 1
summary: Python packaging in declarative way (wrapping pbr to make it flexible)
url: https://pypi.python.org/pypi/packit
rpm_license: Public Domain
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-b9868eca-134e-4bf2-b303-c933d299a12c
location_href: 00004483-python-packit/python-packit-0.30.0-1.src.rpm
checksum_type: sha256
description:
  _Contents:_
  - [Rationale](#rationale)
  - [Overview](#overview)
  - [Usage](#usage)
  - [Facilities](#facilities)
  - [Including Files Other than Python Libraries](#including-files)
  - [Further Development](#development)

  <a name="rationale"></a>


  Creating python packages is routine operation that involves a lot of
  actions that could be automated. Although there are petty good tools
  like [pbr](http://docs.openstack.org/developer/pbr/) for that purpose,
  they miss some features and lack flexibility by trying to enforce some
  strongly opinionated decisions upon you. PacKit tries to solve this by
  providing a simple, convenient, and flexible way to create and build
  packages while aiming for following goals:

    - simple declarative way to configure your package through `setup.cfg`
      following [distutils2 setup.cfg
      syntax](http://alexis.notmyidea.org/distutils2/setupcfg.html)
    - reasonable defaults
    - open for extension

  <a name="overview"></a>


  PacKit is wrapper around [pbr](http://docs.openstack.org/developer/pbr/)
  though it only uses it for interaction with setuptools/distutils through
  simplified interface. None of
  [pbr](http://docs.openstack.org/developer/pbr/) functions are exposed
  but instead PacKit provides its own interface.



  Here's a brief overview of currently implemented facilities and the list
  will be extended as new ones will be added.

    - **auto-version** - set package version depending on selected
      versioning strategy.
    - **auto-description** - set package long description
    - **auto-license** - include license file into distribution
    - **auto-dependencies** - populate `install_requires` and
      *test\_requires* from requirement files
    - **auto-packages** - discover packages to include in distribution.
    - **auto-extra-meta** - add useful options to the metadata config
      section
    - **auto-package-data** - include all files tracked by `git` from
      package dirs only.
    - **auto-tests** - make `python setup.py test` run tests with `tox` or
      `pytest` (depending on `tox.ini` presence).

  On top of that PacKit forces easy\_install to honor following [PIP's
  fetch
  directives](https://pip.pypa.io/en/latest/user_guide.html#configuration):

    - index\_url
    - find\_links



    - **auto-plate** - integration with
      [platter](http://platter.pocoo.org/)
    - **auto-license** - fill out license information
    - **auto-pep8** - produce style-check reports
    - **auto-docs** - API docs generation
    - **auto-clean** - configurable clean jobs
    - **auto-coverage** (?) - produce coverage reports while running tests

  If you don't see desired facilities or have cool features in mind feel
  free to contact us and tell about your ideas.

  <a name="usage"></a>


  Create a `setup.py` in your project dir: :

      from setuptools import setup

      setup(setup_requires='packit', packit=True)

  That was the first and the last time you touched that file for your
  project.

  Now let's create a `setup.cfg` that you will use in order to configure
  your package:

      [metadata]
      name = cool-package

  And... if you're not doing anything tricky in your package then that's
  enough\! And if you do, take a look at the section below.

  <a name="facilities"></a>


  Currently all available facilities are enabled by default. Though you
  can easily turn them off by using `facilities` section in your
  `setup.cfg`:

      [facilities]
      auto-version = 0
      auto-dependencies = f
      auto-packages = false
      auto-package-data = n
      auto-tests = no

  If facility is explicitly disabled it won't be used even if
  facility-specific configuration section is present.

  Facility-specific defaults and configuration options described below.



  When enabled, `auto-version` will generate and set package version
  according to selected versioning strategy.

  Versioning strategy can be selected using `type` field under
  `auto-version` section within `setup.cfg`. The default is:

      [auto-version]
      type = git-pep440
      output = src/templates/version.html

  You can use `output` field to ask PacKit to write generated version
  value into specified filename. The specified filename do not need to
  exist but the parent directories should exist. Provided path should
  always use forward slashes.



  Generate [PEP440](https://www.python.org/dev/peps/pep-0440/)-compliant
  version from **annotated** `git` tags. It's expected that you are using
  git tags that follow [public version
  identifier](https://www.python.org/dev/peps/pep-0440/#public-version-identifiers)
  description and `git-pep440` will just append number of commits since
  tag was applied to your tag value (the `N` in [public version
  identifier](https://www.python.org/dev/peps/pep-0440/#public-version-identifiers)
  description).

  If number of commits since tag equal to 0 (your building the tagged
  version) the `N` value won't be appended. Otherwise, it will be appended
  and [local version
  identifier](https://www.python.org/dev/peps/pep-0440/#local-version-identifiers)
  equal to first 7 chars of commit hash will be also added.

  Please note: you must create an **annotated** tag, otherwise it will be
  ignored.

  Example: 1. \<git tag -a 1.2.3.dev -m "dev release 1.2.3.dev"\> -\>
  version is `1.2.3.dev`

  2.  \<git commit\> -\> version is `1.2.3.dev.post1`
  3.  \<git commit\> -\> version is `1.2.3.dev.post2`
  4.  \<git tag -a 1.2.3.a -m "Release 1.2.3.a"\> -\> version is `1.2.3.a`
  5.  \<git commit\> -\> version is `1.2.3.a.post1`
  6.  \<git tag -a 1.2.3 -m "Release 1.2.3"\> -\> version is `1.2.3`
  7.  \<git commit\> -\> version is `1.2.3.post1`
  8.  \<git commit\> -\> version is `1.2.3.post2`



  Use value specified in `value` (it's required when this strategy is
  used) under `auto-version` section in `setup.cfg`:

      [auto-version]
      type = fixed
      value = 3.3



  Read a line using UTF-8 encoding from the file specified in `value`
  (it's required when this strategy is used) under `auto-version` section
  in `setup.cfg`, strip it and use as a version.

      [auto-version]
      type = file
      value = VERSION.txt



  Execute command specified in `value` (it's required when this strategy
  is used) under `auto-version` section in `setup.cfg`, read a line from
  `stdout`, strip it and use as a version



  The most advanced version strategy designed for special cases. It allows
  you to generate complex version values based on other version
  strategies. The usage is pretty simple though:

      [auto-version]
      type = composite
      value = {foo}.{bar}+{git}
      output = main.version

      [auto-version:foo]
      type = fixed
      value = 42
      output = 1st.version

      [auto-version:bar]
      type = shell
      value = echo $RANDOM

      [auto-version:git]
      type = git-pep440
      output = 3rd.version

  The `value` field in composite version strategy should be a valid
  [string format
  expression](https://docs.python.org/2/library/string.html#string-formatting).

  Please note that `output` directives used here only for reference (to
  show that they can be used anywhere) and are not required.

  It's OK to define 'extra' version components and not use them but it's
  an error to not define any of components mentioned in composite version
  template.



  When enabled will fill out `long_description` for package from a readme.

  The `readme` file name could be specified with `file` field under
  `auto-description` section.

  If no file name provided, it will be discovered automatically by trying
  following list of files:

    - README
    - readme
    - CHANGELOG
    - changelog

  Each of these files will be tried with following extensions:

    - \<without extension\>
    - .md
    - .markdown
    - .mkdn
    - .text
    - .rst
    - .txt

  The readme file will be included in the package data.



  When enabled will include the license file into the distribution.

  The license file name could be specified by the `file` field within
  `auto-license` section.

  If license file name is not provided the facility will try to discover
  it in the current dir trying following file names:

    - LICENSE
    - license

  Each of these files will be tried with following extensions:

    - \<without extension\>
    - .md
    - .markdown
    - .mkdn
    - .text
    - .rst
    - .txt



  When enabled will fill `install_requires` and `test_requires` from
  requirement files.

  Requirement files could be specified by `install` and `test` fields
  under the `auto-dependencies` section of the `setup.cfg`.

  If requirements file names not provided then the facility will try to
  discover them automatically.

  For installation requirements following paths will be tried:

    - requires
    - requirements
    - requirements/prod
    - requirements/release
    - requirements/install
    - requirements/main
    - requirements/base

  For testing requirements following paths will be tried:

    - test-requires
    - test\_requires
    - test-requirements
    - test\_requirements
    - requirements\_test
    - requirements-test
    - requirements/test

  For each path following extensions will be tried

    - \<without extension\>
    - .pip
    - .txt

  Once a file is found, PacKit stops looking for more files.

  **You can use vcs project urls and/or archive urls/paths** as described
  in [pip
  usage](https://pip.pypa.io/en/latest/reference/pip_install.html#usage) -
  they will be split in dependency links and package names during package
  creation and will be properly handled by pip/easyinstall during
  installation. Remember that you can also make "includes" relationships
  between `requirements.txt` files by including a line like `-r
  other-requires-file.txt`.



  When enabled and no packages provided in `setup.cfg` through `packages`
  option under `files` section will try to automatically find out all
  packages in current dir recursively.

  It operates using `exclude` and `include` values that can be specified
  under `auto-packages` section within `setup.cfg`.

  If `exclude` not provided the following defaults will be used: `test`,
  `docs`, `.tox` and `env`.

  If `include` not provided, `auto-packages` will try the following steps
  in order to generate it:

  1.  If `packages_root` value provided under `files` section in
      `setup.cfg`, it will be used.
  2.  Otherwise the current working dir will be scanned for any python
      packages (dirs with \_\_init\_\_.py) while honoring exclude `value`.
      *This packages also will be included into the resulting list of
      packages.*

  Once `include` value is determined, the resulting packages list will be
  generated using following algorithm:

      for path in include:
          found_packages |= set(find_packages(path, exclude))



  When enabled, adds a number of additional options to 'metadata' section.

  Right now, only 1 extra option supported:

    - **is\_pure** - allows you to override 'purity' flag for
      distribution, i.e. you can explicitly say whether your distribution
      is platform-specific or no.



  Has no additional configuration options \[yet\].

  When enabled, the `python setup.py test` is equal to running:

    - **tox** if `tox.ini` is present
    - **pytest** with
      [pytest-gitignore](https://pypi.python.org/pypi/pytest-gitignore/)
      and
      [teamcity-messages](https://pypi.python.org/pypi/teamcity-messages/)
      plugins enabled by default otherwise (if you need any other plugins
      just add them to test requirements) and activate them with
      additional options (see below)

  The facility automatically downloads underlying test framework and
  install it - you don't need to worry about it.

  You can pass additional parameters to the underlying test framework with
  '-a' or '--additional-test-args='.



  See the next section.

  <a name="including-files"></a>


  Often, you need to include a data file, or another program, or some
  other kind of file, with your Python package. Here are a number of
  common situations, and how to accomplish them using packit:



  The default is that the `auto-package-data` facility is enabled. In this
  configuration, you can include data files for your python library very
  easily by just:

    - Placing them inside a Python package directory (so next to an `__init__.py`
      or in a subdirectory), and
    - Adding them to git version control.

  ```
  setup.cfg
  src/
  src/nicelib/
  src/nicelib/__init__.py
  src/nicelib/things.py
  src/nicelib/somedata.csv
  ```

  __No change in setup.cfg is required.__ Putting the files here will cause the
  packaging system to notice them and install them in the same arrangement next
  to your Python files, but inside the virtualenv where your package is
  installed.

  Once this is done, you have several easy options for accessing them, and all of
  these should work the same way in development and once installed:
  * The least magical way is `pathlib.Path(__file__).parent / 'somedata.csv'`,
    or some equivalent with `os.path` calls.  This makes your package non-zip-safe,
    so it can't be used in a `pex` or `zipapp` application.
  * The new hotness is `importlib.resources.open_text('nicelib',
    'somedata.csv')` and [related
    functions](https://docs.python.org/3/library/importlib.html#module-importlib.resources),
    available in the stdlib in Python 3.7+ or as a backport in the
    `importlib_resources` PyPI package.  One limitation is this does *not*
    support putting resources deeper in subdirectories.
  * The previous standard has been `pkg_resources.resource_stream('nicelib',
    'somedata.csv')` and [related
    functions](https://setuptools.readthedocs.io/en/latest/pkg_resources.html#basic-resource-access).
    This supports deeper subdirectories, but is *much* slower than
    `importlib.resources`.  You shouldn't need to install `pkg_resources`,
    it's part of `setuptools`, which is always available these days.

  You can turn off the `auto-package-data` facility if you **don't** want this
  file inclusion mechanism to happen:

      [facilities]
      auto-package-data = no

  `auto-package-data` will not work if your Python package is not at the
  root of your git repository (`setup.py` is not next to `.git`).



  You can also place files relative to the virtualenv, rather than inside
  the package hierarchy (which would be in
  `virtualenv/lib/python*/site-packages/something`). This is often used
  for things like static files in a Django project, so that they are easy
  to find for an external web server. The syntax for this is:

      [files]
      data_files =
          dest_dir = src_dir/**
          dest_dir = file_to_put_there

  In this example, `dest_dir` will be created within the top level of the
  virtualenv. The contents of `src_dir` will be placed inside it, along
  with `file_to_put_there`.

  If you need to include a **compiled executable file** in your package, this
  is a convenient way to do it - include `bin = bin/**` for example. See
  the `fastatools` package for an example of this.  There is also a
  [confluence page with more details on including compiled
  programs](https://confluence.ncbi.nlm.nih.gov/x/TVA0Aw).



  Scripts need to be treated specially, and not just dropped into `bin`
  using `data_files`, because Python changes the shebang (`#!`) line to
  match the virtualenv's python interpreter. This means you can directly
  run a script without activating a virtualenv - e.g. `env/bin/pip install
  attrs` will work even if `env` isn't activated.\[1\]

  If you have some scripts already, the easiest thing is to collect them
  in one directory, then use `scripts`:

      [files]
      scripts =
        bin/*

  Alternatively, setuptools has a special way to directly invoke a Python
  function from the command line, called the `console_scripts` entry
  point. `pull-sp-sub` is an internal package that uses this:

      [entry_points]
      console_scripts =
        pull-sp-sub = pull_sp_sub:main

  To explain that last line, it's *name-of-the-script* `=`
  *dotted-path-of-the-python-module*`:`*name-of-the-python-function*. So
  with this configuration, once the package is installed, setuptools
  creates a script at `$VIRTUAL_ENV/bin/pull-sp-sub` which activates the
  virtualenv and then calls the `main` function in the `pull_sp_sub`
  module.

  Scripts created this way are slightly slower to start up than scripts
  that directly run a Python file. Also, setuptools seems to do more
  dependency checking when starting a script like this, so if you
  regularly live with broken dependencies inside your virtualenv, this
  will be frustrating for you. On the other hand, scripts made this way
  will work better on Windows, if that's one of your target environments.



  This works because the NCBI Python/Linux environment is so homogeneous,
  but it does cause problems - these compiled items are linux- and
  architecture-specific, but this doesn't tell Python's packaging system
  about that.  So for example if you run `pip install applog` on a Mac,
  it will claim to succeed, but the library won't work.  See the next
  section for how to do this in a more robust way.

  This includes things that use the C++ Toolkit (see `python-applog` and
  `cpp-toolkit-validators` for examples). These `.so` files should get
  placed inside the python package hierarchy. Presumably, if you're
  compiling them, they are build artifacts that won't be tracked by git,
  so they won't be included automatically by `auto-package-data`. Instead,
  once they are there, use `extra_files` to have the packaging system
  notice them:

      [files]
      extra_files =
          ncbilog/libclog.so
          ncbilog/libclog.version

  If your packages live inside a `src` directory, you do need to include
  that in the `extra_files` path:

      [files]
      extra_files =
          src/mypkg/do_something_quickly.so

  Notice that `extra_files` is different from `data_files` which we used
  above.



  Packit can coexist with setuptools's support for C extensions. Here is
  an [example with a C file that will be compiled on the user's
  system](https://bitbucket.ncbi.nlm.nih.gov/projects/PY/repos/is_xml_encodable/browse/setup.py).
  In that particular package, the author chose to require Cython for
  developers but not for end users, so the distribution and the git repo
  include both the `.pyx` file and the `.c` file it's translated to.



    - If your Python package is not in the root of your Git repository (so
      `setup.py` is not in the same directory as `.git`), then
      `auto-package-data` will not work.
    - The `auto-package-data` section has configuration options, but they
      don't do anything right now
      ([PY-504](https://jira.ncbi.nlm.nih.gov/browse/PY-504)).

  <a name="development"></a>


    - Add tests
    - Improve docs
    - More configuration options for existing facilities
    - New facilities
    - Allow extension through entry points

  <!-- end list -->

  1.  Unlike `source env/bin/activate`, this does not change the `$PATH`
      or set `$VIRTUAL_ENV`, so there are a few rare circumstances where
      it's not good enough: if your script needs to start another script
      using `subprocess` or `popen`, or if it tries to access data using a
      path relative to `$VIRTUAL_ENV`. Take a look at
      `env/bin/activate_this.py` if you encounter this problem.


pkgId: 2985e61ea2b39712c2ef39002678a70d631bd3c861129cde1304f38516e5539c
name: python-pagure-messages
arch: src
version: 0.0.6
epoch: 0
release: 1
summary: A schema package for messages sent by pagure
url: https://pagure.io/pagure
rpm_license: GPLv2+
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-634572d0-960f-4e33-b696-c6a147236882
location_href: 00004485-python-pagure-messages/python-pagure-messages-0.0.6-1.src.rpm
checksum_type: sha256
description:
  A schema package for [pagure](https://pagure.io/pagure).

  See the [detailed documentation](https://fedora-messaging.readthedocs.io/en/latest/messages.html) on packaging your schemas.


pkgId: 824dff34bb85a7db42767a342b8dbcb96e53ce147f33080133e3ce80c0d209df
name: python-paho-mqtt
arch: src
version: 1.6.1
epoch: 0
release: 1
summary: MQTT version 5.0/3.1.1 client class
url: http://eclipse.org/paho
rpm_license: Eclipse Public License v2.0 / Eclipse Distribution License v1.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-7f276584-72c4-4f1a-976c-18dfb841e135
location_href: 00004486-python-paho-mqtt/python-paho-mqtt-1.6.1-1.src.rpm
checksum_type: sha256
description:
  This document describes the source code for the `Eclipse Paho <http://eclipse.org/paho/>`_ MQTT Python client library, which implements versions 5.0, 3.1.1, and 3.1 of the MQTT protocol.
  This code provides a client class which enable applications to connect to an `MQTT <http://mqtt.org/>`_ broker to publish messages, and to subscribe to topics and receive published messages. It also provides some helper functions to make publishing one off messages to an MQTT server very straightforward.
  It supports Python 2.7.9+ or 3.6+.
  The MQTT protocol is a machine-to-machine (M2M)/"Internet of Things" connectivity protocol. Designed as an extremely lightweight publish/subscribe messaging transport, it is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium.
  Paho is an `Eclipse Foundation <https://www.eclipse.org/org/foundation/>`_ project.


pkgId: 3a04ddb141d7fd093d5e799a5d34e917e6a0289ec1a8f4eeff24352dd487da2c
name: python-pamela
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: PAM interface using ctypes
url: https://github.com/minrk/pamela
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-87362d41-59a0-42f6-a109-315b1f21a38b
location_href: 00004488-python-pamela/python-pamela-1.0.0-1.src.rpm
checksum_type: sha256
description:
  There seems to be a glut of Python wrappers for PAM that have since been abandoned.
  This repo merges two separate efforts:

  - [gnosek/python-pam](https://github.com/gnosek/python-pam)
    - adds wrappers for a few more calls, e.g. opening sessions
    - raises PamError on failure instead of returning False, with informative error messages
  - [simplepam](https://github.com/leonnnn/python3-simplepam)
    - adds Python 3 support
    - resets credentials after authentication, apparently for kerberos users



  Both projects appear to be abandoned, with no response to issues or pull requests in at least a year, and I need it for [JupyterHub](https://github.com/jupyter/jupyterhub).



  Install:

      pip install pamela

  Test:

      python -m pamela -a `whoami`


pkgId: eeefba3679f84e817a07376adabebb8921703d7377b8e87f20b6b7ed5b203c66
name: python-pandarallel
arch: src
version: 1.6.4
epoch: 0
release: 1
summary: An easy to use library to speed up computation (by parallelizing on multi CPUs) with pandas.
url: https://nalepae.github.io/pandarallel
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0ecba2d5-f8df-4e8f-816e-1be8b0eda39b
location_href: 00010849-python-pandarallel/python-pandarallel-1.6.4-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version fury.io](https://badge.fury.io/py/pandarallel.svg)](https://pypi.python.org/pypi/pandarallel/)
  [![PyPI license](https://img.shields.io/pypi/l/pandarallel.svg)](https://pypi.python.org/pypi/pandarallel/)
  [![PyPI download month](https://img.shields.io/pypi/dm/pandarallel.svg)](https://pypi.python.org/pypi/pandarallel/)

  | Without parallelization  | ![Without Pandarallel](https://github.com/nalepae/pandarallel/blob/master/docs/progress_apply.gif?raw=true)       |
  | :----------------------: | ----------------------------------------------------------------------------------------------------------------- |
  | **With parallelization** | ![With Pandarallel](https://github.com/nalepae/pandarallel/blob/master/docs/progress_parallel_apply.gif?raw=true) |

  **Pandaral.lel** provides a simple way to parallelize your pandas operations on all your
  CPUs by changing only one line of code. It also displays progress bars.


  - [Manu NALEPA](https://github.com/nalepae/)
  - [till-m](https://github.com/till-m)



  ```bash
  pip install pandarallel [--upgrade] [--user]
  ```



  ```python
  from pandarallel import pandarallel

  pandarallel.initialize(progress_bar=True)


  df.parallel_apply(func)
  ```



  Be sure to check out the [documentation](https://nalepae.github.io/pandarallel).



  An example of each available `pandas` API is available:

  - For [Mac & Linux](https://github.com/nalepae/pandarallel/blob/master/docs/examples_mac_linux.ipynb)
  - For [Windows](https://github.com/nalepae/pandarallel/blob/master/docs/examples_windows.ipynb)


pkgId: fc68220f33dfde592b484f8982452d266c7bc6f289e264c3a665aea3f6c592ed
name: python-pandas-datareader
arch: src
version: 0.10.0
epoch: 0
release: 1
summary: Data readers extracted from the pandas codebase,should be compatible with recent pandas versions
url: https://github.com/pydata/pandas-datareader
rpm_license: BSD License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-ecf6ce67-c395-4f40-b366-45e7eec6b95e
location_href: 00004489-python-pandas-datareader/python-pandas-datareader-0.10.0-1.src.rpm
checksum_type: sha256
description:
  Up to date remote data access for pandas, works for multiple versions of
  pandas.

  [![image](https://img.shields.io/pypi/v/pandas-datareader.svg)](https://pypi.python.org/pypi/pandas-datareader/)
  [![image](https://codecov.io/gh/pydata/pandas-datareader/branch/master/graph/badge.svg)](https://codecov.io/gh/pydata/pandas-datareader)
  [![image](https://readthedocs.org/projects/pandas-datareader/badge/?version=latest)](https://pandas-datareader.readthedocs.io/en/latest/)
  [![image](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
  [![License](https://img.shields.io/pypi/l/pandas-datareader)](https://pypi.org/project/pandas-datareader/)



  Install using `pip`

  ``` shell
  pip install pandas-datareader
  ```



  ``` python
  import pandas_datareader as pdr
  pdr.get_data_fred('GS10')
  ```



  [Stable documentation](https://pydata.github.io/pandas-datareader/) is available on
  [github.io](https://pydata.github.io/pandas-datareader/). A second copy of the stable
  documentation is hosted on [read the docs](https://pandas-datareader.readthedocs.io/)
  for more details.

  [Development documentation](https://pydata.github.io/pandas-datareader/devel/) is available
  for the latest changes in master.



  Using pandas datareader requires the following packages:

  -   pandas>=1.0
  -   lxml
  -   requests>=2.19.0

  Building the documentation additionally requires:

  -   matplotlib
  -   ipython
  -   requests_cache
  -   sphinx
  -   pydata_sphinx_theme

  Development and testing additionally requires:

  -   black
  -   coverage
  -   codecov
  -   coveralls
  -   flake8
  -   pytest
  -   pytest-cov
  -   wrapt



  ``` shell
  python -m pip install git+https://github.com/pydata/pandas-datareader.git
  ```

  or

  ``` shell
  git clone https://github.com/pydata/pandas-datareader.git
  cd pandas-datareader
  python setup.py install
  ```


pkgId: 040944bafd62d6267bc2b764e5c61abdf438886bdb55d4424907787357932c1f
name: python-pandas-flavor
arch: src
version: 0.5.0
epoch: 0
release: 1
summary: The easy way to write your own Pandas flavor.
url: https://github.com/Zsailer/pandas_flavor
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d9e9e855-a1d7-4366-a1ec-87d10ac70c4e
location_href: 00004490-python-pandas_flavor/python-pandas-flavor-0.5.0-1.src.rpm
checksum_type: sha256
description:
  **The easy way to write your own flavor of Pandas**

  Pandas 0.23 added a (simple) API for registering accessors with Pandas objects.

  Pandas-flavor extends Pandas' extension API by:
  1. adding support for registering methods as well.
  2. making each of these functions backwards compatible with older versions of Pandas.

  ***What does this mean?***

  It is now simpler to add custom functionality to Pandas DataFrames and Series.

  Import this package. Write a simple python function. Register the function using one of the following decorators.

  ***Why?***

  Pandas is super handy. Its general purpose is to be a "flexible and powerful data analysis/manipulation library".

  **Pandas Flavor** allows you add functionality that tailors Pandas to specific fields or use cases.

  Maybe you want to add new write methods to the Pandas DataFrame? Maybe you want custom plot functionality? Maybe something else?



  Accessors (in pandas) are objects attached to a attribute on the Pandas DataFrame/Series
  that provide extra, specific functionality. For example, `pandas.DataFrame.plot` is an
  accessor that provides plotting functionality.

  Add an accessor by registering the function with the following decorator
  and passing the decorator an accessor name.


  ```python


  import pandas_flavor as pf

  @pf.register_dataframe_accessor('my_flavor')
  class MyFlavor(object):

    def __init__(self, data):
      self._data = data

    def row_by_value(self, col, value):
      """Slice out row from DataFrame by a value."""
      return self._data[self._data[col] == value].squeeze()

  ```

  Every dataframe now has this accessor as an attribute.
  ```python
  import my_flavor


  df = pd.DataFrame(data={
    "x": [10, 20, 25],
    "y": [0, 2, 5]
  })


  print(df)







  df.my_flavor.row_by_value('x', 10)




  ```

  To see this in action, check out [pdvega](https://github.com/jakevdp/pdvega),
  [PhyloPandas](https://github.com/Zsailer/phylopandas), and [pyjanitor](https://github.com/ericmjl/pyjanitor)!




  Using this package, you can attach functions directly to Pandas objects. No
  intermediate accessor is needed.

  ```python


  import pandas_flavor as pf

  @pf.register_dataframe_method
  def row_by_value(df, col, value):
      """Slice out row from DataFrame by a value."""
      return df[df[col] == value].squeeze()

  ```

  ```python
  import pandas as pd
  import my_flavor


  df = pd.DataFrame(data={
    "x": [10, 20, 25],
    "y": [0, 2, 5]
  })


  print(df)







  df.row_by_value('x', 10)




  ```



  - **register_dataframe_method**: register a method directly with a pandas DataFrame.
  - **register_dataframe_accessor**: register an accessor (and it's methods) with a pandas DataFrame.
  - **register_series_method**: register a methods directly with a pandas Series.
  - **register_series_accessor**: register an accessor (and it's methods) with a pandas Series.



  You can install using **pip**:
  ```
  pip install pandas_flavor
  ```
  or conda (thanks @ericmjl)!
  ```
  conda install -c conda-forge pandas-flavor
  ```



  Pull requests are always welcome! If you find a bug, don't hestitate to open an issue or submit a PR. If you're not sure how to do that, check out this [simple guide](https://github.com/Zsailer/guide-to-working-as-team-on-github).

  If you have a feature request, please open an issue or submit a PR!



  Pandas 0.23 introduced a simpler API for [extending Pandas](https://pandas.pydata.org/pandas-docs/stable/development/extending.html#extending-pandas). This API provided two key decorators, `register_dataframe_accessor` and `register_series_accessor`, that enable users to register **accessors** with Pandas DataFrames and Series.

  Pandas Flavor originated as a library to backport these decorators to older versions of Pandas (<0.23). While doing the backporting, it became clear that registering **methods** directly to Pandas objects might be a desired feature as well.[*](#footnote)

  <a name="footnote">*</a>*It is likely that Pandas deliberately chose not implement to this feature. If everyone starts monkeypatching DataFrames with their custom methods, it could lead to confusion in the Pandas community. The preferred Pandas approach is to namespace your methods by registering an accessor that contains your custom methods.*

  **So how does method registration work?**

  When you register a method, Pandas flavor actually creates and registers a (this is subtle, but important) **custom accessor class that mimics** the behavior of a method by:
  1. inheriting the docstring of your function
  2. overriding the `__call__` method to call your function.


pkgId: c46bc7a5608ceda20618d35075bcaf8575d95d77c2c1701e61c0a08718ad18a0
name: python-pandas-profiling
arch: src
version: 3.6.6
epoch: 0
release: 1
summary: Deprecated 'pandas-profiling' package, use 'ydata-profiling' instead
url: https://github.com/ydataai/pandas-profiling
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-764c3330-eda4-45b1-a35b-15800be44cfd
location_href: 00009194-python-pandas-profiling/python-pandas-profiling-3.6.6-1.src.rpm
checksum_type: sha256
description:
  ⚠️ **`pandas-profiling` package naming was changed. To continue profiling data use [`ydata-profiling`](https://github.com/ydataai/ydata-profiling) instead!**


pkgId: 09b06b57347b7c96e7a8240bc5fba8525ed1a38056668300f7e6c962030ebd53
name: python-pandevice
arch: src
version: 0.14.0
epoch: 0
release: 1
summary: Framework for interacting with Palo Alto Networks devices via API
url: https://github.com/PaloAltoNetworks/pandevice
rpm_license: ISC
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-5114d89d-0910-4730-b819-7f295a735ec7
location_href: 00014045-python-pandevice/python-pandevice-0.14.0-1.src.rpm
checksum_type: sha256
description:
  The Palo Alto Networks Device Framework is a way to interact with Palo Alto Networks devices (including Next-generation Firewalls and Panorama) using the device API that is object oriented and conceptually similar to interaction with the device via the GUI or CLI.


pkgId: 1ddba11308f9712b669807047a88f4727aef12c12034ac7ac4d47565209b411f
name: python-pangres
arch: src
version: 4.1.4
epoch: 0
release: 1
summary: Postgres insert update with pandas DataFrames.
url: https://github.com/ThibTrip/pangres
rpm_license: The Unlicense
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-ec08b8f5-4ce5-43f0-b439-ad469438df9c
location_href: 00013493-python-pangres/python-pangres-4.1.4-1.src.rpm
checksum_type: sha256
description:
  [![CircleCI](https://circleci.com/gh/ThibTrip/pangres.svg?style=svg&circle-token=3e39be6b969ed02b41d259c279da0d9e63751506)](https://circleci.com/gh/ThibTrip/pangres)
  [![codecov](https://codecov.io/gh/ThibTrip/pangres/branch/master/graph/badge.svg)](https://codecov.io/gh/ThibTrip/pangres)
  [![PyPI version](https://img.shields.io/pypi/v/pangres)](https://img.shields.io/pypi/v/pangres)
  [![Documentation](https://img.shields.io/badge/wiki-documentation-forestgreen)](https://github.com/ThibTrip/pangres/wiki)
  [![Made withJupyter](https://img.shields.io/badge/Made%20with-Jupyter-orange?logo=Jupyter)](https://jupyter.org/try)


  ![pangres logo](https://raw.githubusercontent.com/ThibTrip/pangres/master/logo.png)

  _Thanks to [freesvg.org](https://freesvg.org/) for the logo assets_

  Upsert with pandas DataFrames (<code>ON CONFLICT DO NOTHING</code> or <code>ON CONFLICT DO UPDATE</code>) for PostgreSQL, MySQL, SQlite and potentially other databases behaving like SQlite (untested) with some additional optional features (see features). Upserting can be done with **primary keys** or **unique keys**.
  Pangres also handles the creation of non-existing SQL tables and schemas.




  1. <i>(optional)</i> Automatical column creation (when a column exists in the DataFrame but not in the SQL table)
  2. <i>(optional)</i> Automatical column type alteration for columns that are empty in the SQL table (except for SQlite where alteration is limited)
  3. <i>(optional)</i> Creates the table if it is missing
  4. <i>(optional)</i> Creates missing schemas in Postgres (and potentially other databases that have a schema system)
  5. JSON is supported (with pd.to_sql it does not work) with some exceptions (see [Gotchas and caveats](#Gotchas-and-caveats))
  6. Fast (except for SQlite where some help is needed)
  7. Will work even if not all columns defined in the SQL table are there
  8. SQL injection safe (schema, table and column names are escaped and values are given as parameters)
  9. _New in version 4.1_: **asynchronous support**. Tested using `aiosqlite` for SQlite, `asyncpg` for PostgreSQL and `aiomysql` for MySQL



  * SQlite >= 3.24.4
  * Python >= 3.6.4
  * See also ./pangres/requirements.txt



  For using `pangres` together with **`sqlalchemy>=2.0`** (sqlalchemy is one of pangres dependencies
  listed in requirements.txt) - you will need the following base requirements:
  * `alembic>=1.7.2`
  * `pandas>=1.4.0`
  * Python >= 3.8 (`pandas>=1.4.0` only supports Python >=3.8)



  For using asynchronous engines (such as `aiosqlite`, `asyncpg` or `aiomysql`) you will need **Python >= 3.8**.




  1. We can't create JSON columns automatically, but we can insert JSON like objects (list, dict) in existing JSON columns.



  1. "%", ")" and "(" in column names will most likely cause errors with PostgreSQL (this is due to psycopg2 and also affect pd.to_sql). Use the function pangres.fix_psycopg2_bad_cols to "clean" the columns in the DataFrame. You'll also have to rename columns in the SQL table accordingly (if the table already exists).
  2. Even though we only do data type alteration on empty columns, since we don't want to lose column information (e.g. constraints) we use true column alteration (instead of drop+create) so the old data type must be castable to the new data type. Postgres seems a bit restrictive in this regard even when the columns are empty (e.g. BOOLEAN to TIMESTAMP is impossible).


  1. **SQlite must be version 3.24.4 or higher**! UPSERT syntax did not exist before.
  2. Column type alteration is not possible for SQlite.
  3. SQlite inserts can be at worst 5 times slower than pd.to_sql for some reasons. If you can help please contact me!
  4. Inserts with 1000 columns (or 32767 columns for SQlite >= 3.32.0) or more are not supported because one could not even insert one row without exceeding the max number of parameters per queries. One way to fix this would inserting the columns progressively but this seems quite tricky. If you know a better way please contact me.



  1. MySQL will often change the order of the primary keys in the SQL table when using INSERT... ON CONFLICT.. DO NOTHING/UPDATE. This seems to be the expected behavior so nothing we can do about it but please mind that!
  2. You may need to provide SQL dtypes e.g. if you have a primary key with text you will need to provide a character length (e.g. VARCHAR(50)) because MySQL does not support indices/primary keys with flexible text length. pd.to_sql has the same issue.




  This is a library I was using in production in private with very good results and decided to publish.

  Ideally such features will be integrated into pandas since there is already a [PR on the way](https://github.com/pandas-dev/pandas/pull/29636) and I would like to give the option to add columns via another PR.

  There is also [pandabase](https://github.com/notsambeck/pandabase) which does almost the same thing (plus lots of extra features) but my implementation is different.
  Btw big thanks to pandabase and the sql part of pandas which helped a lot.


  ```
  pip install pangres
  ```
  Additionally depending on which database you want to work with you will need to install the corresponding library (note that SQlite is included in the standard library):

  * Postgres
  ```
  pip install psycopg2
  ```

  * MySQL
  ```
  pip install pymysql
  ```

  * Postgres (asynchronous)
  ```
  pip install asyncpg
  ```

  * MySQL (asynchronous)
  ```
  pip install aiomysql
  ```

  * SQLite (asynchronous)
  ```
  pip install aiosqlite
  ```



  Head over to [pangres' wiki](https://github.com/ThibTrip/pangres/wiki)! Note that the wiki is also available
  locally under the [wiki folder](https://github.com/ThibTrip/pangres/tree/master/wiki).

  Note:

  The wiki is generated with a command which uses my library [npdoc_to_md](https://github.com/ThibTrip/npdoc_to_md).
  It must be installed with `pip install npdoc_to_md` and you will also need the extra dependency `fire` which you
  can install with `pip install fire`. Replace `$DESTINATION_FOLDER` with the folder of you choice in the command below:

  ```bash
  npdoc-to-md render-folder ./wiki_templates $DESTINATION_FOLDER
  ```



  Pull requests/issues are welcome.



  I develop the library inside of **Jupyter Lab** using the [**jupytext**](https://github.com/mwouts/jupytext) extension.

  I recommend using this extension for the best experience.
  It will split code blocks within modules in notebook cells and will allow **interactive development**.

  If you wish you can also use the provided **conda environment** (see `environment.yml` file) inside of Jupyter Lab/Notebook
  thanks to [**nb_conda_kernels**](https://github.com/Anaconda-Platform/nb_conda_kernels).





  You can test one or multiple of the following SQL flavors (you will of course need a live database for this): PostgreSQL, SQlite or MySQL.

  NOTE: in one of the tests of `pangres` we will try to drop and then create a PostgreSQL schema called `pangres_create_schema_test`. If the schema existed and was not empty an error will be raised.

  Clone pangres then set your curent working directory to the root of the cloned repository folder. Then use the commands below. You will have to replace the following variables in those commands:
  * `SQLITE_CONNECTION_STRING`: replace with a SQlite sqlalchemy connection string (e.g. "sqlite:///test.db")
  * `ASYNC_SQLITE_CONNECTION_STRING`: replace with an asynchronous SQlite sqlalchemy connection string (e.g. "sqlite+aiosqlite:///test.db")
  * `POSTGRES_CONNECTION_STRING`: replace with a Postgres sqlalchemy connection string (e.g. "postgres:///user:password@localhost:5432/database"). Specifying schema is optional for postgres (will default to public)
  * `ASYNC_POSTGRES_CONNECTION_STRING`: replace with an asynchronous Postgres sqlalchemy connection string (e.g. "postgres+asyncpg:///user:password@localhost:5432/database"). Specifying schema is optional for postgres (will default to public)
  * `MYSQL_CONNECTION_STRING`: replace with a MySQL sqlalchemy connection string (e.g. "mysql+pymysql:///user:password@localhost:3306/database")
  * `ASYNC_MYSQL_CONNECTION_STRING`: replace with an asynchronous MySQL sqlalchemy connection string (e.g. "mysql+aiomysql:///user:password@localhost:3306/database")
  * `PG_SCHEMA` (optional): schema for postgres (defaults to public)

  ```bash

  conda env create -f environment.yml
  conda activate pangres-dev

  pip install -e .






  pytest -s -v pangres --cov=pangres --doctest-modules --async_sqlite_conn=$ASYNC_SQLITE_CONNECTION_STRING --sqlite_conn=$SQLITE_CONNECTION_STRING --async_pg_conn=$ASYNC_POSTGRES_CONNECTION_STRING --pg_conn=$POSTGRES_CONNECTION_STRING --async_mysql_conn=$ASYNC_MYSQL_CONNECTION_STRING --mysql_conn=$MYSQL_CONNECTION_STRING --pg_schema=tests --benchmark-group-by=func,param:engine,param:nb_rows --benchmark-columns=min,max,mean,rounds --benchmark-sort=name --benchmark-name=short
  ```

  Additionally, the following flags could be of interest for you:
  * `-x` for stopping at the first failure
  * `--benchmark-only` for only testing benchmarks
  * `--benchmark-skip` for skipping benchmarks



  flake8 must run without errors for pipelines to succeed.
  If you are not using the conda environment, you can install flake8 with: `pip install flake8`.

  To test flake8 locally you can simply execute this command:

  ```
  flake8 .
  ```


