# packages

pkgId: 8b5573a185237c7da7a20129132d9433f259aaa863084db03a276aa095b32676
name: python-schedule
arch: src
version: 1.1.0
epoch: 0
release: 1
summary: Job scheduling for humans.
url: https://github.com/dbader/schedule
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-79cfcdb3-6ea2-4aff-96e6-ba7e25fc898d
location_href: 00005038-python-schedule/python-schedule-1.1.0-1.src.rpm
checksum_type: sha256
description:
  Python job scheduling for humans. Run Python functions (or any other callable) periodically using a friendly syntax.
  - A simple to use API for scheduling jobs, made for humans.
  - In-process scheduler for periodic jobs. No extra processes needed!
  - Very lightweight and no external dependencies.
  - Excellent test coverage.
  - Tested on Python and 3.6, 3.7, 3.8, 3.9


pkgId: 6f5542b93e3b1b4020edb6e56db1f7b21816a0b699f01dcb28342dffb93a13a1
name: python-scikit-plot
arch: src
version: 0.3.7
epoch: 0
release: 1
summary: An intuitive library to add plotting functionality to scikit-learn objects.
url: https://github.com/reiinakano/scikit-plot
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-100f7c20-a928-4e20-866d-aa097f4ef346
location_href: 00010114-python-scikit-plot/python-scikit-plot-0.3.7-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://badge.fury.io/py/scikit-plot.svg)](https://badge.fury.io/py/scikit-plot)
  [![license](https://img.shields.io/github/license/mashape/apistatus.svg)]()
  [![Build Status](https://travis-ci.org/reiinakano/scikit-plot.svg?branch=master)](https://travis-ci.org/reiinakano/scikit-plot)
  [![PyPI](https://img.shields.io/pypi/pyversions/scikit-plot.svg)]()
  [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.293191.svg)](https://doi.org/10.5281/zenodo.293191)





  ![roc_curves](docs/_static/readme_collage.jpg)



  Scikit-plot is the result of an unartistic data scientist's dreadful realization that *visualization is one of the most crucial components in the data science process, not just a mere afterthought*.

  Gaining insights is simply a lot easier when you're looking at a colored heatmap of a confusion matrix complete with class labels rather than a single-line dump of numbers enclosed in brackets. Besides, if you ever need to present your results to someone (virtually any time anybody hires you to do data science), you show them visualizations, not a bunch of numbers in Excel.

  That said, there are a number of visualizations that frequently pop up in machine learning. Scikit-plot is a humble attempt to provide aesthetically-challenged programmers (such as myself) the opportunity to generate quick and beautiful graphs and plots with as little boilerplate as possible.



  Say we use Naive Bayes in multi-class classification and decide we want to visualize the results of a common classification metric, the Area under the Receiver Operating Characteristic curve. Since the ROC is only valid in binary classification, we want to show the respective ROC of each class if it were the positive class. As an added bonus, let's show the micro-averaged and macro-averaged curve in the plot as well.

  Let's use scikit-plot with the sample digits dataset from scikit-learn.

  ```python

  from sklearn.datasets import load_digits
  from sklearn.model_selection import train_test_split
  from sklearn.naive_bayes import GaussianNB

  X, y = load_digits(return_X_y=True)
  X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)
  nb = GaussianNB()
  nb.fit(X_train, y_train)
  predicted_probas = nb.predict_proba(X_test)


  import matplotlib.pyplot as plt
  import scikitplot as skplt
  skplt.metrics.plot_roc(y_test, predicted_probas)
  plt.show()
  ```
  ![roc_curves](examples/roc_curves.png)

  Pretty.

  And... That's it. Encaptured in that small example is the entire philosophy of Scikit-plot: **single line functions for detailed visualization**. You simply browse the plots available in the documentation, and call the function with the necessary arguments. Scikit-plot tries to stay out of your way as much as possible. No unnecessary bells and whistles. And when you *do* need the bells and whistles, each function offers a myriad of parameters for customizing various elements in your plots.

  Finally, compare and [view the non-scikit-plot way of plotting the multi-class ROC curve](http://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html). Which one would you rather do?



  Although Scikit-plot is loosely based around the scikit-learn interface, you don't actually need Scikit-learn objects to use the available functions. As long as you provide the functions what they're asking for, they'll happily draw the plots for you.

  Here's a quick example to generate the precision-recall curves of a Keras classifier on a sample dataset.

  ```python

  import matplotlib.pyplot as plt
  import scikitplot as skplt


  keras_clf.fit(X_train, y_train, batch_size=64, nb_epoch=10, verbose=2)
  probas = keras_clf.predict_proba(X_test, batch_size=64)


  skplt.metrics.plot_precision_recall_curve(y_test, probas)
  plt.show()
  ```
  ![p_r_curves](examples/p_r_curves.png)

  You can see clearly here that `skplt.metrics.plot_precision_recall_curve` needs only the ground truth y-values and the predicted probabilities to generate the plot. This lets you use *anything* you want as the classifier, from Keras NNs to NLTK Naive Bayes to that groundbreaking classifier algorithm you just wrote.

  The possibilities are endless.



  Installation is simple! First, make sure you have the dependencies [Scikit-learn](http://scikit-learn.org) and [Matplotlib](http://matplotlib.org/) installed.

  Then just run:
  ```bash
  pip install scikit-plot
  ```

  Or if you want the latest development version, clone this repo and run
  ```bash
  python setup.py install
  ```
  at the root folder.

  If using conda, you can install Scikit-plot by running:
  ```bash
  conda install -c conda-forge scikit-plot
  ```



  Explore the full features of Scikit-plot.

  You can find detailed documentation [here](http://scikit-plot.readthedocs.io).

  Examples are found in the [examples folder of this repo](examples/).



  Reporting a bug? Suggesting a feature? Want to add your own plot to the library? Visit our [contributor guidelines](CONTRIBUTING.md).



  Are you using Scikit-plot in an academic paper? You should be! Reviewers love eye candy.

  If so, please consider citing Scikit-plot with DOI [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.293191.svg)](https://doi.org/10.5281/zenodo.293191)



  > Reiichiro Nakano. (2018). reiinakano/scikit-plot: 0.3.7 [Data set]. Zenodo. http://doi.org/10.5281/zenodo.293191



  > [1]Reiichiro Nakano, “reiinakano/scikit-plot: 0.3.7”. Zenodo, 19-Feb-2017.



  > [1]Reiichiro Nakano 2018. reiinakano/scikit-plot: 0.3.7. Zenodo.

  Happy plotting!


pkgId: b4d45a0e455236a33ee4d03f4dba7574360256c85f04d24f80eb041a7027dc01
name: python-scikit-posthocs
arch: src
version: 0.7.0
epoch: 0
release: 1
summary: Statistical post-hoc analysis and outlier detection algorithms
url: https://github.com/maximtrp/scikit-posthocs
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-c6f45730-3c29-4eae-a13d-7affe971f953
location_href: 00013406-python-scikit-posthocs/python-scikit-posthocs-0.7.0-1.src.rpm
checksum_type: sha256
description:
  **scikit-posthocs** is a Python package that provides post hoc tests for
  pairwise multiple comparisons that are usually performed in statistical
  data analysis to assess the differences between group levels if a statistically
  significant result of ANOVA test has been obtained.
  **scikit-posthocs** is tightly integrated with Pandas DataFrames and NumPy
  arrays to ensure fast computations and convenient data import and storage.
  This package will be useful for statisticians, data analysts, and
  researchers who use Python in their work.


pkgId: fd836a2668b7f564d3d4b01e730c121ed6b4df2f110794eedccb07562f440ac6
name: python-scikit-spark
arch: src
version: 0.4.0
epoch: 0
release: 1
summary: Spark acceleration for Scikit-Learn cross validation techniques
url: https://github.com/scikit-spark/scikit-spark
rpm_license: Apache 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-04985401-e272-4c7e-9a9a-cf0469a16f34
location_href: 00013869-python-scikit-spark/python-scikit-spark-0.4.0-1.src.rpm
checksum_type: sha256
description:
  This project is a major re-write of the
  [spark-sklearn](https://github.com/databricks/spark-sklearn) project, which
  seems to no longer be under development. It focuses specifically on the
  acceleration of Scikit-Learn's cross validation functionality using PySpark.


  `scikit-spark` supports `scikit-learn` versions past 0.19, `spark-sklearn` [have stated that they are probably not
  going to support newer versions](https://github.com/databricks/spark-sklearn/issues/113).

  The functionality in `scikit-spark` is based on `sklearn.model_selection` module rather than the
  deprecated and soon to be removed `sklearn.grid_search`. The new `model_selection` versions
  contain several nicer features and `scikit-spark` maintains full compatibility.


  The package can be installed through pip:
  ```bash
  pip install scikit-spark
  ```

  It has so far only been tested with Spark 2.2.0 and up, but may work with
  older versions.


  - 0.18 untested, likely doesn't work
  - 0.19 supported
  - 0.20 supported
  - 0.21 supported (Python 3 only)
  - 0.22 supported (Python 3 only)



  The functionality here is meant to as closely resemble using Scikit-Learn as
  possible. By default (with `spark=True`) the `SparkSession` is obtained
  internally by calling `SparkSession.builder.getOrCreate()`, so the instantiation
  and calling of the functions is the same (You will preferably have already
  created a `SparkSession`).

  This example is adapted from the Scikit-Learn documentation. It instantiates
  a local `SparkSession`, and distributes the cross validation folds and
  iterations using this. In actual use, to get the benefit of this package it
  should be used distributed across several machines with Spark as running it
  locally is slower than the `Scikit-Learn` parallelisation implementation.

  ```python
  from sklearn import svm, datasets
  from pyspark.sql import SparkSession

  iris = datasets.load_iris()
  parameters = {'kernel':('linear', 'rbf'), 'C':[0.01, 0.1, 1, 10, 100]}
  svc = svm.SVC()

  spark = SparkSession.builder\
      .master("local[*]")\
      .appName("skspark-grid-search-doctests")\
      .getOrCreate()


  from skspark.model_selection import GridSearchCV

  gs = GridSearchCV(svc, parameters)
  gs.fit(iris.data, iris.target)


  from skspark.model_selection import RandomizedSearchCV

  rs = RandomizedSearchCV(spark, svc, parameters)
  rs.fit(iris.data, iris.target)
  ```


  - Current
      - model_selection.RandomizedSearchCV
      - model_selection.GridSearchCV
  - Upcoming
      - model_selection.cross_val_predict
      - model_selection.cross_val_score

  *The docstrings are modifications of the Scikit-Learn ones and are still being
  converted to specifically refer to this project.*




  *Coming soon*


pkgId: 083731e5ede651a03eb32767e74cb25dd97ecb42b1319610f9380fb5d231ed1d
name: python-sciunit
arch: src
version: 0.2.7
epoch: 0
release: 1
summary: A test-driven framework for formally validating scientific models against data.
url: http://sciunit.scidash.org
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-1a95fa50-bd9d-48e4-bb31-f2e288cf705e
location_href: 00005041-python-sciunit/python-sciunit-0.2.7-1.src.rpm
checksum_type: sha256
description:
  [![Python package](https://github.com/scidash/sciunit/actions/workflows/python-package.yml/badge.svg)](https://github.com/scidash/sciunit/actions/workflows/python-package.yml)
  [![RTFD](https://readthedocs.org/projects/sciunit/badge/?version=master&x=1)](http://sciunit.readthedocs.io/en/latest/?badge=master)
  [![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/scidash/sciunit/master?filepath=docs%2Fchapter1.ipynb)
  [![Coveralls](https://coveralls.io/repos/github/scidash/sciunit/badge.svg?branch=master&x=1)](https://coveralls.io/github/scidash/sciunit?branch=master)
  [![Repos using Sciunit](https://img.shields.io/librariesio/dependent-repos/pypi/sciunit.svg?x=3)](https://github.com/scidash/sciunit/network/dependents?dependent_type=REPOSITORY)
  ![Downloads from PyPI](https://img.shields.io/pypi/dm/sciunit?x=1)

  <img src="https://raw.githubusercontent.com/scidash/assets/master/logos/SciUnit/sci-unit-square-small.png" alt="SciUnit Logo" width="400px">




  [The conference paper](https://github.com/cyrus-/papers/raw/master/sciunit-icse14/sciunit-icse14.pdf)


  [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/scidash/sciunit/blob/master/docs/chapter1.ipynb) <br>
  [Jupyter Tutorials](https://scidash.org/sciunit/README.html)<br>
  [API Documentation](http://sciunit.rtfd.io)


  ```python
  pip install sciunit
  ```
  or
  ```python
  conda install -c conda-forge sciunit
  ```


  ```python
  my_model = MyModel(**my_args) # Instantiate a class that wraps your model of interest.
  my_test = MyTest(**my_params) # Instantiate a test that you write.
  score = my_test.judge() # Runs the test and return a rich score containing test results and more.
  ```


  [NeuronUnit](https://github.com/scidash/neuronunit) for neuron and ion channel physiology<br>
  See others [here](https://github.com/scidash/sciunit/network/dependents?dependent_type=REPOSITORY)


  There is a [mailing list](https://groups.google.com/forum/?fromgroups#!forum/sciunit) for announcements and discussion.
  Please join it if you are at all interested!


   * [Rick Gerkin](http://rick.gerk.in), Arizona State University (School of Life Science)
   * [Cyrus Omar](http://cs.cmu.edu/~comar), Carnegie Mellon University (Dept. of Computer Science)


  RRID:[SCR_014528](https://scicrunch.org/resources/Any/record/nlx_144509-1/3faed1d9-6579-5da6-b4b4-75a5077656bb/search?q=sciunit&l=sciunit)


  SciUnit is released under the permissive [MIT license](https://opensource.org/licenses/MIT), requiring only attribution in derivative works. See the LICENSE file for terms.


pkgId: 335e1d259b5b71aa8c926640a431423466a8abd85c7cbd9d48aa6fac912e361c
name: python-scour
arch: src
version: 0.38.2
epoch: 0
release: 1
summary: Scour SVG Optimizer
url: https://github.com/scour-project/scour
rpm_license: Apache License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-6b252b87-7e58-4dbe-9a79-e1176fc57104
location_href: 00005042-python-scour/python-scour-0.38.2-1.src.rpm
checksum_type: sha256
description:
  Scour is an SVG optimizer/cleaner that reduces the size of scalable
  vector graphics by optimizing structure and removing unnecessary data.

  It can be used to create streamlined vector graphics suitable for web
  deployment, publishing/sharing or further processing.

  The goal of Scour is to output a file that renderes identically at a
  fraction of the size by removing a lot of redundant information created
  by most SVG editors. Optimization options are typically lossless but can
  be tweaked for more agressive cleaning.

  Website
    - http://www.codedread.com/scour/ (original website)
    - https://github.com/scour-project/scour (today)

  Authors:
    - Jeff Schiller, Louis Simard (original authors)
    - Tobias Oberstein (maintainer)
    - Patrick Storz (maintainer)


pkgId: 0fc0fa7a2c7702cddf55ea1cf3e350108392052f139289c2ce6832ebe0921652
name: python-scp
arch: src
version: 0.14.5
epoch: 0
release: 1
summary: scp module for paramiko
url: https://github.com/jbardin/scp.py
rpm_license: LGPL-2.1-or-later
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a0e79a68-b44d-4029-9e10-cdc78d36ef91
location_href: 00009426-python-scp/python-scp-0.14.5-1.src.rpm
checksum_type: sha256
description:
  The scp.py module uses a paramiko transport to send and receive files via the
  scp1 protocol. This is the protocol as referenced from the openssh scp program,
  and has only been tested with this implementation.


pkgId: 7f293ff187f6de1ea6c586db2af25e84361cfb35bdf31bcea50ea89c21ceb20c
name: python-scrapy-random-useragent
arch: src
version: 0.2
epoch: 0
release: 1
summary: Scrapy Middleware to set a random User-Agent for every Request.
url: https://github.com/cnu/scrapy-random-useragent
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-03cea6aa-2d86-43aa-8e2c-3511aea5e770
location_href: 00014302-python-scrapy-random-useragent/python-scrapy-random-useragent-0.2-1.src.rpm
checksum_type: sha256
description:
  Does your scrapy spider get identified and blocked by servers because
  you use the default user-agent or a generic one?
  Use this ``random_useragent`` module and set a random user-agent for
  every request. You are limited only by the number of different
  user-agents you set in a text file.


pkgId: 6e4aecb9b34d0309adfd648ce6374542ef65f5c037a4713ac458fae0b24bfe70
name: python-screeninfo
arch: src
version: 0.8.1
epoch: 0
release: 1
summary: Fetch location and size of physical screens.
url: https://github.com/rr-/screeninfo
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-c362a76e-601d-4de7-94b4-c34aea1f9bca
location_href: 00014245-python-screeninfo/python-screeninfo-0.8.1-1.src.rpm
checksum_type: sha256
description:
  [![Build](https://github.com/rr-/screeninfo/actions/workflows/build.yml/badge.svg)](https://github.com/rr-/screeninfo/actions/workflows/build.yml)
  Fetch location and size of physical screens.

  - MS Windows
  - MS Windows: Cygwin
  - GNU/Linux: X11 (through Xinerama)
  - GNU/Linux: DRM (experimental)
  - OSX: (through AppKit)
  I don't plan on testing OSX or other environments myself. For this reason,
  I strongly encourage pull requests.

  ```
  pip install screeninfo
  ```

  ```python
  from screeninfo import get_monitors
  for m in get_monitors():
      print(str(m))
  ```
  **Output**:
  ```python console
  Monitor(x=3840, y=0, width=3840, height=2160, width_mm=1420, height_mm=800, name='HDMI-0', is_primary=False)
  Monitor(x=0, y=0, width=3840, height=2160, width_mm=708, height_mm=399, name='DP-0', is_primary=True)
  ```

  In some cases (emulating X server on Cygwin etc.) you might want to specify the
  driver directly. You can do so by passing extra parameter to `get_monitors()`
  like this:
  ```python
  from screeninfo import get_monitors, Enumerator
  for m in get_monitors(Enumerator.OSX):
      print(str(m))
  ```
  Available drivers: `windows`, `cygwin`, `x11`, `osx`.

  ```sh
  git clone https://github.com/rr-/screeninfo.git # clone this repo
  cd screeninfo
  poetry install # to install the local venv
  poetry run pre-commit install # to setup pre-commit hooks
  poetry shell # to enter the venv
  ```
  This project uses [poetry](https://python-poetry.org/) for packaging,
  install instructions at [poetry#installation](https://python-poetry.org/docs/#installation)


pkgId: b3b4a503590cac2da9055b9aac966f388d518058ba0f47ce7166e9c8eaad7782
name: python-scripttest
arch: src
version: 1.3
epoch: 0
release: 1
summary: Helper to test command-line scripts
url: http://pythonpaste.org/scripttest/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a669c79e-3452-4136-a4cb-4747178c9ef4
location_href: 00005046-python-scripttest/python-scripttest-1.3-1.src.rpm
checksum_type: sha256
description:
  scripttest is a library to help you test your interactive command-line
  applications.
  With it you can easily run the command (in a subprocess) and see the
  output (stdout, stderr) and any file modifications.
  * The `source repository <https://github.com/pypa/scripttest>`_.
  * The `documentation <https://scripttest.readthedocs.org/>`_.


pkgId: bfa9ee968a1760a1814b41989d8a8c794fbc0dba4dae85ebebf00667e8d049ab
name: python-scripttester
arch: src
version: 0.1
epoch: 0
release: 1
summary: Utility for testing command line scripts
url: http://github.com/matthew-brett/scripttester
rpm_license: BSD license
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-60d975b8-af92-4b4d-ad58-d47ccfb4da98
location_href: 00005047-python-scripttester/python-scripttester-0.1-1.src.rpm
checksum_type: sha256
description:
  ScriptTester - utility for testing command line scripts


  .. shared-text-body

  **********
  Quickstart
  **********

  Provides class to be instantiated in tests that check that scripts can be run
  and give correct output.  Usually works something like this in a test module::

      import mymodule
      from scripttester import ScriptTester
      runner = ScriptTester(mymodule)

  Then, in the tests, something like::

      code, stdout, stderr = runner.run_command(['my-script', my_arg])
      assert code == 0
      assert stdout == b'This script ran OK'

  The class aims to find your scripts whether you have installed (with ``pip
  install .`` or ``pip install -e .`` or ``python setup.py install``), or not.
  If you have not installed, the scripts will not be on your system PATH, and we
  have to find them.  The heuristic is to look (by default) in the directory
  containing ``mymodule``; if there is a ``setup.py`` file there, and a
  ``scripts`` sub-directory, assume that directory contains the scripts.

  Note there is no way of using this not-installed mechanism to find entrypoint
  scripts, that have not been installed. To find these, we would have to run the
  ``setup.py`` file.

  ************
  Installation
  ************

  ::

      pip install scripttester

  ****
  Code
  ****

  See https://github.com/matthew-brett/scripttester

  Released under the BSD two-clause license - see the file ``LICENSE`` in the
  source distribution.

  `travis-ci <https://travis-ci.org/matthew-brett/scripttester>`_ kindly tests
  the code automatically under Python versions 2.7, and 3.3 through 3.6.

  The latest released version is at https://pypi.python.org/pypi/scripttester

  *****
  Tests
  *****

  * Install ``scripttester``
  * Install the pytest_ testing framework::

      pip install pytest

  * Run the tests with::

      py.test --pyargs scripttester

  *******
  Support
  *******

  Please put up issues on the `scripttester issue tracker`_.

  .. standalone-references

  .. |scripttester-documentation| replace:: `scripttester documentation`_
  .. _scripttester documentation:
      https://matthew-brett.github.com/scripttester/scripttester.html
  .. _documentation: https://matthew-brett.github.com/scripttester
  .. _pandoc: http://pandoc.org
  .. _jupyter: jupyter.org
  .. _homebrew: brew.sh
  .. _sphinx: http://sphinx-doc.org
  .. _rest: http://docutils.sourceforge.net/rst.html
  .. _scripttester issue tracker: https://github.com/matthew-brett/scripttester/issues
  .. _pytest: https://pytest.readthedocs.io
  .. _mock: https://github.com/testing-cabal/mock


pkgId: 17dd3684eb59eaaf48dcf8c03d5dc0a128433b0951542014b1c37a28c693a452
name: python-scs
arch: src
version: 3.2.3
epoch: 0
release: 1
summary: scs: splitting conic solver
url: http://github.com/cvxgrp/scs
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-2b281777-1ded-4f1a-9be0-66242afd6605
location_href: 00010001-python-scs/python-scs-3.2.3-1.src.rpm
checksum_type: sha256
description:
  Solves convex quadratic cone programs via operator splitting. Can solve: linear programs (LPs), second-order cone programs (SOCPs), semidefinite programs (SDPs), exponential cone programs (ECPs), and power cone programs (PCPs), or problems with any combination of those cones. See https://www.cvxgrp.org/scs/ for more details.


pkgId: df7cf28341df6296e13afa9c6499b33f65ae1fd91106ad6962d0cdcd732d3cd4
name: python-scs-debuginfo
arch: aarch64
version: 3.2.3
epoch: 0
release: 1
summary: Debug information for package python-scs
url: http://github.com/cvxgrp/scs
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-2b281777-1ded-4f1a-9be0-66242afd6605
rpm_sourcerpm: python-scs-3.2.3-1.src.rpm
location_href: 00010001-python-scs/python-scs-debuginfo-3.2.3-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug information for package python-scs.
  Debug information is useful when developing applications that use this
  package or when debugging this package.


pkgId: a4172738724ebc97f666e3507eb6ac3d2365cee6fea860102132728c0813bb8c
name: python-scs-debugsource
arch: aarch64
version: 3.2.3
epoch: 0
release: 1
summary: Debug sources for package python-scs
url: http://github.com/cvxgrp/scs
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-2b281777-1ded-4f1a-9be0-66242afd6605
rpm_sourcerpm: python-scs-3.2.3-1.src.rpm
location_href: 00010001-python-scs/python-scs-debugsource-3.2.3-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug sources for package python-scs.
  Debug sources are useful when developing applications that use this
  package or when debugging this package.


pkgId: ae287af23cb3c7db3a211303ad685df2fb358eabf357336f1d2e0a3597bb0ae3
name: python-sdnotify
arch: src
version: 0.3.2
epoch: 0
release: 1
summary: A pure Python implementation of systemd's service notification protocol (sd_notify)
url: https://github.com/bb4242/sdnotify
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-59a7c1a6-db41-4d6d-b5db-d3dd07c34383
location_href: 00013494-python-sdnotify/python-sdnotify-0.3.2-1.src.rpm
checksum_type: sha256
description:
  systemd Service Notification

  This is a pure Python implementation of the systemd sd_notify protocol. This protocol can be used to inform systemd about service start-up completion, watchdog events, and other service status changes. Thus, this package can be used to write system services in Python that play nicely with systemd. sdnotify is compatible with both Python 2 and Python 3.


pkgId: 3364df881eb40da26b2d35c0987bfed4c6e27d25023969aa333c61f5b0685682
name: python-search-engine-parser
arch: src
version: 0.6.8
epoch: 0
release: 1
summary: scrapes search engine pages for query titles, descriptions and links
url: https://github.com/bisoncorps/search-engine-parser
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-53e4a93b-4e23-4a57-bdfa-9b37a2594f3c
location_href: 00010204-python-search-engine-parser/python-search-engine-parser-0.6.8-1.src.rpm
checksum_type: sha256
description:
  <span><i>"If it is a search engine, then it can be parsed"</i> - some random guy</span>

  ![Demo](https://github.com/bisoncorps/search-engine-parser/raw/master/assets/animate.gif)

  [![Python 3.6|3.7|3.8|3.9](https://img.shields.io/badge/python-3.5%7C3.6%7C3.7%7C3.8-blue)](https://www.python.org/downloads/)
  [![PyPI version](https://img.shields.io/pypi/v/search-engine-parser)](https://pypi.org/project/search-engine-parser/)
  [![PyPI - Downloads](https://img.shields.io/pypi/dm/search-engine-parser)](https://pypi.org/project/search-engine-parser/)
  [![Deploy to Pypi](https://github.com/bisohns/search-engine-parser/actions/workflows/deploy.yml/badge.svg)](https://github.com/bisohns/search-engine-parser/actions/workflows/deploy.yml)
  [![Test](https://github.com/bisohns/search-engine-parser/actions/workflows/test.yml/badge.svg)](https://github.com/bisohns/search-engine-parser/actions/workflows/test.yml)
  [![Documentation Status](https://readthedocs.org/projects/search-engine-parser/badge/?version=latest)](https://search-engine-parser.readthedocs.io/en/latest/?badge=latest)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  [![All Contributors](https://img.shields.io/badge/all_contributors-10-orange.svg)](#contributors)
  <hr/>

  search-engine-parser is a package that lets you query popular search engines and scrape for result titles, links, descriptions and more. It aims to scrape the widest range of search engines.
  View all supported engines [here.](https://github.com/bisoncorps/search-engine-parser/blob/master/docs/supported_engines.md)

  - [Search Engine Parser](#search-engine-parser)
    - [Popular Supported Engines](#popular-supported-engines)
    - [Installation](#installation)
    - [Development](#development)
    - [Code Documentation](#code-documentation)
    - [Running the tests](#running-the-tests)
    - [Usage](#usage)
      - [Code](#code)
      - [Command line](#command-line)
    - [FAQ](docs/faq.md)
    - [Code of Conduct](#code-of-conduct)
    - [Contribution](#contribution)
    - [License (MIT)](#license-mit)


  Popular search engines supported include:

  - Google
  - DuckDuckGo
  - GitHub
  - StackOverflow
  - Baidu
  - YouTube

  View all supported engines [here.](docs/supported_engines.md)


  Install from PyPi:

  ```bash
      
      pip install search-engine-parser
      
      pip install "search-engine-parser[cli]"
  ```

  or from master:
  ```bash
    pip install git+https://github.com/bisoncorps/search-engine-parser
  ```


  Clone the repository:

  ```bash
      git clone git@github.com:bisoncorps/search-engine-parser.git
  ```

  Then create a virtual environment and install the required packages:

  ```bash
      mkvirtualenv search_engine_parser
      pip install -r requirements/dev.txt
  ```



  Code docs can be found on [Read the Docs](https://search-engine-parser.readthedocs.io/en/latest).


  ```bash
      pytest
  ```




  Query results can be scraped from popular search engines, as shown in the example snippet below.

  ```python
    import pprint

    from search_engine_parser.core.engines.bing import Search as BingSearch
    from search_engine_parser.core.engines.google import Search as GoogleSearch
    from search_engine_parser.core.engines.yahoo import Search as YahooSearch

    search_args = ('preaching to the choir', 1)
    gsearch = GoogleSearch()
    ysearch = YahooSearch()
    bsearch = BingSearch()
    gresults = gsearch.search(*search_args)
    yresults = ysearch.search(*search_args)
    bresults = bsearch.search(*search_args)
    a = {
        "Google": gresults,
        "Yahoo": yresults,
        "Bing": bresults
        }

    
    for k, v in a.items():
        print(f"-------------{k}------------")
        for result in v:
            pprint.pprint(result)

    
    print(gresults["titles"][0])
    
    print(yresults["links"][9])
    
    print(bresults["descriptions"][5])

    
    print(gresults[0])
  ```

  For localization, you can pass the `url` keyword and a localized url. This queries and parses the localized url using the same engine's parser:
  ```python
    
    results = gsearch.search(*search_args, url="google.de")
  ```

  If you need results in a specific language you can pass the 'hl' keyword and the 2-letter country abbreviation (here's a [handy list](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)):
  ```python
    
    results = gsearch.search(*search_args, hl="it")
  ```


  The results are automatically cached for engine searches. You can either bypass the cache by adding `cache=False` to the `search` or `async_search` method or clear the engine's cache
  ```python
      from search_engine_parser.core.engines.github import Search as GitHub
      github = GitHub()
      
      github.search("search-engine-parser", cache=False)

      
      
      github.clear_cache()
      github.search("search-engine-parser")
  ```


  Adding a proxy entails sending details to the search function
  ```python
      from search_engine_parser.core.engines.github import Search as GitHub
      github = GitHub()
      github.search("search-engine-parser",
          
          proxy='http://123.12.1.0',
          proxy_auth=('username', 'password'))
  ```



  search-engine-parser supports `async`:
  ```python
     results = await gsearch.async_search(*search_args)
  ```


  The `SearchResults` after searching:
  ```python
    >>> results = gsearch.search("preaching to the choir", 1)
    >>> results
    <search_engine_parser.core.base.SearchResult object at 0x7f907426a280>
    
    >>> results[0] # returns the first <SearchItem>
    >>> results[0]["description"] # gets the description of the first item
    >>> results[0]["link"] # gets the link of the first item
    >>> results["descriptions"] # returns a list of all descriptions from all results
  ```
  It can be iterated like a normal list to return individual `SearchItem`s.



  search-engine-parser comes with a CLI tool known as `pysearch`. You can use it as such:

  ```bash
  pysearch --engine bing  --type descriptions "Preaching to the choir"
  ```

  Result:

  ```bash
  'Preaching to the choir' originated in the USA in the 1970s. It is a variant of the earlier 'preaching to the converted', which dates from England in the late 1800s and has the same meaning. Origin - the full story 'Preaching to the choir' (also sometimes spelled quire) is of US origin.
  ```

  ![Demo](https://github.com/bisoncorps/search-engine-parser/raw/master/assets/example.gif)

  ```bash
  usage: pysearch [-h] [-V] [-e ENGINE] [--show-summary] [-u URL] [-p PAGE]
                  [-t TYPE] [-cc] [-r RANK] [--proxy PROXY]
                  [--proxy-user PROXY_USER] [--proxy-password PROXY_PASSWORD]
                  query

  SearchEngineParser

  positional arguments:
    query                 Query string to search engine for

  optional arguments:
    -h, --help            show this help message and exit
    -V, --version         show program's version number and exit
    -e ENGINE, --engine ENGINE
                          Engine to use for parsing the query e.g google, yahoo,
                          bing,duckduckgo (default: google)
    --show-summary        Shows the summary of an engine
    -u URL, --url URL     A custom link to use as base url for search e.g
                          google.de
    -p PAGE, --page PAGE  Page of the result to return details for (default: 1)
    -t TYPE, --type TYPE  Type of detail to return i.e full, links, desciptions
                          or titles (default: full)
    -cc, --clear-cache    Clear cache of engine before searching
    -r RANK, --rank RANK  ID of Detail to return e.g 5 (default: 0)
    --proxy PROXY         Proxy address to make use of
    --proxy-user PROXY_USER
                          Proxy user to make use of
    --proxy-password PROXY_PASSWORD
                          Proxy password to make use of
  ```




  Make sure to adhere to the [code of conduct](CODE_OF_CONDUCT.md) at all times.


  Before making any contributions, please read the [contribution guide](CONTRIBUTING.md).


  This project is licensed under the [MIT 2.0 License](LICENSE) which allows very broad use for both academic and commercial purposes.



  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/Rexogamer"><img src="https://avatars0.githubusercontent.com/u/42586271?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ed Luff</b></sub></a><br /><a href="https://github.com/bisoncorps/search-engine-parser/commits?author=Rexogamer" title="Code">💻</a></td>
      <td align="center"><a href="http://diretnandomnan.webnode.com"><img src="https://avatars3.githubusercontent.com/u/23453888?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Diretnan Domnan</b></sub></a><br /><a href="#infra-deven96" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/bisoncorps/search-engine-parser/commits?author=deven96" title="Tests">⚠️</a> <a href="#tool-deven96" title="Tools">🔧</a> <a href="https://github.com/bisoncorps/search-engine-parser/commits?author=deven96" title="Code">💻</a></td>
      <td align="center"><a href="http://mensaah.github.io"><img src="https://avatars3.githubusercontent.com/u/24734308?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MeNsaaH</b></sub></a><br /><a href="#infra-MeNsaaH" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/bisoncorps/search-engine-parser/commits?author=MeNsaaH" title="Tests">⚠️</a> <a href="#tool-MeNsaaH" title="Tools">🔧</a> <a href="https://github.com/bisoncorps/search-engine-parser/commits?author=MeNsaaH" title="Code">💻</a></td>
      <td align="center"><a href="https://github.com/PalAditya"><img src="https://avatars2.githubusercontent.com/u/25523604?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Aditya Pal</b></sub></a><br /><a href="https://github.com/bisoncorps/search-engine-parser/commits?author=PalAditya" title="Tests">⚠️</a> <a href="https://github.com/bisoncorps/search-engine-parser/commits?author=PalAditya" title="Code">💻</a> <a href="https://github.com/bisoncorps/search-engine-parser/commits?author=PalAditya" title="Documentation">📖</a></td>
      <td align="center"><a href="http://energized.pro"><img src="https://avatars1.githubusercontent.com/u/27774996?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Avinash Reddy</b></sub></a><br /><a href="https://github.com/bisoncorps/search-engine-parser/issues?q=author%3AAvinashReddy3108" title="Bug reports">🐛</a></td>
      <td align="center"><a href="https://github.com/Iamdavidonuh"><img src="https://avatars3.githubusercontent.com/u/37768509?v=4?s=100" width="100px;" alt=""/><br /><sub><b>David Onuh</b></sub></a><br /><a href="https://github.com/bisoncorps/search-engine-parser/commits?author=Iamdavidonuh" title="Code">💻</a> <a href="https://github.com/bisoncorps/search-engine-parser/commits?author=Iamdavidonuh" title="Tests">⚠️</a></td>
      <td align="center"><a href="http://simakis.me"><img src="https://avatars2.githubusercontent.com/u/8322266?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Panagiotis Simakis</b></sub></a><br /><a href="https://github.com/bisoncorps/search-engine-parser/commits?author=sp1thas" title="Code">💻</a> <a href="https://github.com/bisoncorps/search-engine-parser/commits?author=sp1thas" title="Tests">⚠️</a></td>
    </tr>
    <tr>
      <td align="center"><a href="https://github.com/reiarthur"><img src="https://avatars2.githubusercontent.com/u/20190646?v=4?s=100" width="100px;" alt=""/><br /><sub><b>reiarthur</b></sub></a><br /><a href="https://github.com/bisoncorps/search-engine-parser/commits?author=reiarthur" title="Code">💻</a></td>
      <td align="center"><a href="http://ashokkumarta.blogspot.com/"><img src="https://avatars0.githubusercontent.com/u/5450267?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ashokkumar TA</b></sub></a><br /><a href="https://github.com/bisoncorps/search-engine-parser/commits?author=ashokkumarta" title="Code">💻</a></td>
      <td align="center"><a href="https://github.com/ateuber"><img src="https://avatars2.githubusercontent.com/u/44349054?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Andreas Teuber</b></sub></a><br /><a href="https://github.com/bisoncorps/search-engine-parser/commits?author=ateuber" title="Code">💻</a></td>
      <td align="center"><a href="https://github.com/mi096684"><img src="https://avatars3.githubusercontent.com/u/22032932?v=4?s=100" width="100px;" alt=""/><br /><sub><b>mi096684</b></sub></a><br /><a href="https://github.com/bisoncorps/search-engine-parser/issues?q=author%3Ami096684" title="Bug reports">🐛</a></td>
      <td align="center"><a href="https://github.com/devajithvs"><img src="https://avatars1.githubusercontent.com/u/29475282?v=4?s=100" width="100px;" alt=""/><br /><sub><b>devajithvs</b></sub></a><br /><a href="https://github.com/bisoncorps/search-engine-parser/commits?author=devajithvs" title="Code">💻</a></td>
      <td align="center"><a href="https://github.com/zakaryan2004"><img src="https://avatars3.githubusercontent.com/u/29994884?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Geg Zakaryan</b></sub></a><br /><a href="https://github.com/bisoncorps/search-engine-parser/commits?author=zakaryan2004" title="Code">💻</a> <a href="https://github.com/bisoncorps/search-engine-parser/issues?q=author%3Azakaryan2004" title="Bug reports">🐛</a></td>
      <td align="center"><a href="https://www.hakanbogan.com"><img src="https://avatars1.githubusercontent.com/u/24498747?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Hakan Boğan</b></sub></a><br /><a href="https://github.com/bisoncorps/search-engine-parser/issues?q=author%3Aredrussianarmy" title="Bug reports">🐛</a></td>
    </tr>
    <tr>
      <td align="center"><a href="https://github.com/NicKoehler"><img src="https://avatars3.githubusercontent.com/u/53040044?v=4?s=100" width="100px;" alt=""/><br /><sub><b>NicKoehler</b></sub></a><br /><a href="https://github.com/bisoncorps/search-engine-parser/issues?q=author%3ANicKoehler" title="Bug reports">🐛</a> <a href="https://github.com/bisoncorps/search-engine-parser/commits?author=NicKoehler" title="Code">💻</a></td>
      <td align="center"><a href="https://github.com/chris4540"><img src="https://avatars1.githubusercontent.com/u/12794588?v=4?s=100" width="100px;" alt=""/><br /><sub><b>ChrisLin</b></sub></a><br /><a href="https://github.com/bisoncorps/search-engine-parser/issues?q=author%3Achris4540" title="Bug reports">🐛</a> <a href="https://github.com/bisoncorps/search-engine-parser/commits?author=chris4540" title="Code">💻</a></td>
      <td align="center"><a href="http://pete.world"><img src="https://avatars.githubusercontent.com/u/10454135?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Pietro</b></sub></a><br /><a href="https://github.com/bisoncorps/search-engine-parser/commits?author=pgrandinetti" title="Code">💻</a> <a href="https://github.com/bisoncorps/search-engine-parser/issues?q=author%3Apgrandinetti" title="Bug reports">🐛</a></td>
    </tr>
  </table>

  <!-- markdownlint-restore -->
  <!-- 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: 572fd73e9136904cbb2afb03d8ad2d800d81a7976768f34c32d5e15e9598c9fd
name: python-secure-cookie
arch: src
version: 0.2.0
epoch: 0
release: 1
summary: Secure cookie and session interface for WSGI applications.
url: https://secure-cookie.readthedocs.io/
rpm_license: BSD-3-Clause
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-933027e5-05b1-4c25-a935-1a50d6aaf132
location_href: 00005052-python-secure_cookie/python-secure-cookie-0.2.0-1.src.rpm
checksum_type: sha256
description:
  Provides interfaces for secure cookies and sessions in WSGI
  applications. Secure cookies are cryptographically signed (but not
  encrypted) to prevent tampering. Sessions are data associated with a
  given user across requests and responses.


pkgId: f2f62b7c13c6a1c8b855d67fc3428a7071a15c266cb49cde945289e684aa43e8
name: python-selectolax
arch: src
version: 0.3.12
epoch: 0
release: 1
summary: Fast HTML5 parser with CSS selectors.
url: https://github.com/rushter/selectolax
rpm_license: MIT license
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-91d7fb88-413d-4cc5-b912-c9923fded778
location_href: 00013800-python-selectolax/python-selectolax-0.3.12-1.src.rpm
checksum_type: sha256
description:
  A fast HTML5 parser with CSS selectors using `Modest <https://github.com/lexborisov/Modest/>`_ and
  `Lexbor <https://github.com/lexbor/lexbor>`_ engines.


pkgId: 8345065c332def5545d739f40d82549e73d770aaacbb227282af1a58cfeb8659
name: python-selectolax-debuginfo
arch: aarch64
version: 0.3.12
epoch: 0
release: 1
summary: Debug information for package python-selectolax
url: https://github.com/rushter/selectolax
rpm_license: MIT license
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-91d7fb88-413d-4cc5-b912-c9923fded778
rpm_sourcerpm: python-selectolax-0.3.12-1.src.rpm
location_href: 00013800-python-selectolax/python-selectolax-debuginfo-0.3.12-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug information for package python-selectolax.
  Debug information is useful when developing applications that use this
  package or when debugging this package.


pkgId: f2708e1e9dafbaa84ebb643d89a60636681b8135391170e63d11b99c59df91fb
name: python-selectolax-debugsource
arch: aarch64
version: 0.3.12
epoch: 0
release: 1
summary: Debug sources for package python-selectolax
url: https://github.com/rushter/selectolax
rpm_license: MIT license
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-91d7fb88-413d-4cc5-b912-c9923fded778
rpm_sourcerpm: python-selectolax-0.3.12-1.src.rpm
location_href: 00013800-python-selectolax/python-selectolax-debugsource-0.3.12-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug sources for package python-selectolax.
  Debug sources are useful when developing applications that use this
  package or when debugging this package.


pkgId: a1481a692f8b126a8bdc2b8e15c8fc2929fccde937c22878d6f6681925c13008
name: python-selectors2
arch: src
version: 2.0.2
epoch: 0
release: 1
summary: Back-ported, durable, and portable selectors
url: https://www.github.com/sethmlarson/selectors2
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-31273dca-ee33-43e8-9668-36e5e38f9f40
location_href: 00011028-python-selectors2/python-selectors2-2.0.2-1.src.rpm
checksum_type: sha256
description:
  Backported, durable, and portable selectors designed to replace
  the standard library selectors module.


pkgId: 5316cd2c805a741b9345f09c1cc8baadbdea81d7d95898af92667b63a184a290
name: python-selinux
arch: src
version: 0.3.0
epoch: 0
release: 1
summary: shim selinux module
url: https://github.com/pycontribs/selinux
rpm_license: MIT license
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-14b0ef95-39e6-43b1-9e41-b64a65082c53
location_href: 00010550-python-selinux/python-selinux-0.3.0-1.src.rpm
checksum_type: sha256
description:
  Pure-python selinux **shim** module for use in virtualenvs in order to avoid
  failure to load selinux in Ansible modules.
  You still need to have libselinux python bindings package installed on your
  system for it to work but you no longer have the problem of not being able
  to import it from inside isolated (default) virtualenvs.
  This package was also tested as installed outside virtualenvs and seems not
  to interfere with the original library.
  The change-list can be accessed at `releases`__.
  __ https://github.com/pycontribs/selinux/releases


pkgId: d86f9600c2ea2a5156b952ff7c11610c7560a95f44aa6f5cdd4ba9be4a0d04da
name: python-semver
arch: src
version: 2.13.0
epoch: 0
release: 1
summary: Python helper for Semantic Versioning (http://semver.org/)
url: https://github.com/python-semver/python-semver
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-ba78bf2a-547a-4974-b1fc-aaf97da5c85d
location_href: 00005054-python-semver/python-semver-2.13.0-1.src.rpm
checksum_type: sha256
description:
  A Python module for `semantic versioning`_. Simplifies comparing versions.
  |build-status| |python-support| |downloads| |license| |docs| |black|
     As anything comes to an end, this project will focus on Python 3.x only.
     New features and bugfixes will be integrated into the 3.x.y branch only.
     Major version 3 of semver will contain some incompatible changes:
     * removes support for Python 2.7 and 3.3
     * removes deprecated functions.
     The last version of semver which supports Python 2.7 and 3.4 will be
     2.10.x. However, keep in mind, version 2.10.x is frozen: no new
     features nor backports will be integrated.
     We recommend to upgrade your workflow to Python 3.x to gain support,
     bugfixes, and new features.
  The module follows the ``MAJOR.MINOR.PATCH`` style:
  * ``MAJOR`` version when you make incompatible API changes,
  * ``MINOR`` version when you add functionality in a backwards compatible manner, and
  * ``PATCH`` version when you make backwards compatible bug fixes.
  Additional labels for pre-release and build metadata are supported.
  To import this library, use:
      >>> import semver
  Working with the library is quite straightforward. To turn a version string into the
  different parts, use the ``semver.VersionInfo.parse`` function:
      >>> ver = semver.VersionInfo.parse('1.2.3-pre.2+build.4')
      >>> ver.major
      1
      >>> ver.minor
      2
      >>> ver.patch
      3
      >>> ver.prerelease
      'pre.2'
      >>> ver.build
      'build.4'
  To raise parts of a version, there are a couple of functions available for
  you. The function ``semver.VersionInfo.bump_major`` leaves the original object untouched, but
  returns a new ``semver.VersionInfo`` instance with the raised major part:
      >>> ver = semver.VersionInfo.parse("3.4.5")
      >>> ver.bump_major()
      VersionInfo(major=4, minor=0, patch=0, prerelease=None, build=None)
  It is allowed to concatenate different "bump functions":
      >>> ver.bump_major().bump_minor()
      VersionInfo(major=4, minor=1, patch=0, prerelease=None, build=None)
  To compare two versions, semver provides the ``semver.compare`` function.
  The return value indicates the relationship between the first and second
  version:
      >>> semver.compare("1.0.0", "2.0.0")
      -1
      >>> semver.compare("2.0.0", "1.0.0")
      1
      >>> semver.compare("2.0.0", "2.0.0")
      0
  There are other functions to discover. Read on!


pkgId: 9811b5d36b7fe1fc09fed53b6ac9538648a53030195ed4d2780a42022800c952
name: python-sendgrid
arch: src
version: 6.10.0
epoch: 0
release: 1
summary: Twilio SendGrid library for Python
url: https://github.com/sendgrid/sendgrid-python/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-37b2ca5c-0c46-40c6-bdb8-6c87864b7ac1
location_href: 00008386-python-sendgrid/python-sendgrid-6.10.0-1.src.rpm
checksum_type: sha256
description:
  -  `Installation <#installation>`__
  -  `Quick Start <#quick-start>`__
  -  `Common Use Cases <#use-cases>`__
  -  `General Usage <#usage>`__
  -  `Processing Inbound Email <#processing-inbound-email>`__
  -  `Announcements <#announcements>`__
  -  `How to Contribute <#how-to-contribute>`__
  -  `Troubleshooting <#troubleshooting>`__
  -  `About <#about>`__
  -  `License <#license>`__


pkgId: 449037d3a1f11cfdeecb0ee26461a98474e2df0074bc939531cc4eceace71276
name: python-sentence-transformers
arch: src
version: 2.2.2
epoch: 0
release: 1
summary: Multilingual text embeddings
url: https://github.com/UKPLab/sentence-transformers
rpm_license: Apache License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0304eac9-1d95-4fa2-ac67-467d8bd5808d
location_href: 00009990-python-sentence-transformers/python-sentence-transformers-2.2.2-1.src.rpm
checksum_type: sha256
description:
  [#github-license]: https://github.com/UKPLab/sentence-transformers/blob/master/LICENSE
  [#pypi-package]: https://pypi.org/project/sentence-transformers/
  [#conda-forge-package]: https://anaconda.org/conda-forge/sentence-transformers
  [#docs-package]: https://www.sbert.net/
  <!--- BADGES: END --->

  This framework provides an easy method to compute dense vector representations for **sentences**, **paragraphs**, and **images**. The models are based on transformer networks like BERT / RoBERTa / XLM-RoBERTa etc. and achieve state-of-the-art performance in various task. Text is embedding in vector space such that similar text is close and can efficiently be found using cosine similarity.
  We provide an increasing number of **[state-of-the-art pretrained models](https://www.sbert.net/docs/pretrained_models.html)** for more than 100 languages, fine-tuned for various use-cases.
  Further, this framework allows an easy  **[fine-tuning of custom embeddings models](https://www.sbert.net/docs/training/overview.html)**, to achieve maximal performance on your specific task.
  For the **full documentation**, see **[www.SBERT.net](https://www.sbert.net)**.
  The following publications are integrated in this framework:
  - [Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks](https://arxiv.org/abs/1908.10084) (EMNLP 2019)
  - [Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation](https://arxiv.org/abs/2004.09813) (EMNLP 2020)
  - [Augmented SBERT: Data Augmentation Method for Improving Bi-Encoders for Pairwise Sentence Scoring Tasks](https://arxiv.org/abs/2010.08240) (NAACL 2021)
  - [The Curse of Dense Low-Dimensional Information Retrieval for Large Index Sizes](https://arxiv.org/abs/2012.14210) (arXiv 2020)
  - [TSDAE: Using Transformer-based Sequential Denoising Auto-Encoder for Unsupervised Sentence Embedding Learning](https://arxiv.org/abs/2104.06979) (arXiv 2021)
  - [BEIR: A Heterogenous Benchmark for Zero-shot Evaluation of Information Retrieval Models](https://arxiv.org/abs/2104.08663) (arXiv 2021)

  We recommend **Python 3.6** or higher, **[PyTorch 1.6.0](https://pytorch.org/get-started/locally/)** or higher and **[transformers v4.6.0](https://github.com/huggingface/transformers)** or higher. The code does **not** work with Python 2.7.
  **Install with pip**
  Install the *sentence-transformers* with `pip`:
  ```
  pip install -U sentence-transformers
  ```
  **Install with conda**
  You can install the *sentence-transformers* with `conda`:
  ```
  conda install -c conda-forge sentence-transformers
  ```
  **Install from sources**
  Alternatively, you can also clone the latest version from the [repository](https://github.com/UKPLab/sentence-transformers) and install it directly from the source code:
  ````
  pip install -e .
  ````
  **PyTorch with CUDA**
  If you want to use a GPU / CUDA, you must install PyTorch with the matching CUDA Version. Follow
  [PyTorch - Get Started](https://pytorch.org/get-started/locally/) for further details how to install PyTorch.

  See [Quickstart](https://www.sbert.net/docs/quickstart.html) in our documenation.
  [This example](https://github.com/UKPLab/sentence-transformers/tree/master/examples/applications/computing-embeddings/computing_embeddings.py) shows you how to use an already trained Sentence Transformer model to embed sentences for another task.
  First download a pretrained model.
  ````python
  from sentence_transformers import SentenceTransformer
  model = SentenceTransformer('all-MiniLM-L6-v2')
  ````
  Then provide some sentences to the model.
  ````python
  sentences = ['This framework generates embeddings for each input sentence',
      'Sentences are passed as a list of string.',
      'The quick brown fox jumps over the lazy dog.']
  sentence_embeddings = model.encode(sentences)
  ````
  And that's it already. We now have a list of numpy arrays with the embeddings.
  ````python
  for sentence, embedding in zip(sentences, sentence_embeddings):
      print("Sentence:", sentence)
      print("Embedding:", embedding)
      print("")
  ````

  We provide a large list of [Pretrained Models](https://www.sbert.net/docs/pretrained_models.html) for more than 100 languages. Some models are general purpose models, while others produce embeddings for specific use cases. Pre-trained models can be loaded by just passing the model name: `SentenceTransformer('model_name')`.
  [»  Full list of pretrained models](https://www.sbert.net/docs/pretrained_models.html)

  This framework allows you to fine-tune your own sentence embedding methods, so that you get task-specific sentence embeddings. You have various options to choose from in order to get perfect sentence embeddings for your specific task.
  See [Training Overview](https://www.sbert.net/docs/training/overview.html) for an introduction how to train your own embedding models. We provide [various examples](https://github.com/UKPLab/sentence-transformers/tree/master/examples/training) how to train models on various datasets.
  Some highlights are:
  - Support of various transformer networks including BERT, RoBERTa, XLM-R, DistilBERT, Electra, BART, ...
  - Multi-Lingual and multi-task learning
  - Evaluation during training to find optimal model
  - [10+ loss-functions](https://www.sbert.net/docs/package_reference/losses.html) allowing to tune models specifically for semantic search, paraphrase mining, semantic similarity comparison, clustering, triplet loss, contrastive loss.

  Our models are evaluated extensively on 15+ datasets including challening domains like Tweets, Reddit, emails. They achieve by far the **best performance** from all available sentence embedding methods. Further, we provide several **smaller models** that are **optimized for speed**.
  [» Full list of pretrained models](https://www.sbert.net/docs/pretrained_models.html)

  You can use this framework for:
  - [Computing Sentence Embeddings](https://www.sbert.net/examples/applications/computing-embeddings/README.html)
  - [Semantic Textual Similarity](https://www.sbert.net/docs/usage/semantic_textual_similarity.html)
  - [Clustering](https://www.sbert.net/examples/applications/clustering/README.html)
  - [Paraphrase Mining](https://www.sbert.net/examples/applications/paraphrase-mining/README.html)
   - [Translated Sentence Mining](https://www.sbert.net/examples/applications/parallel-sentence-mining/README.html)
   - [Semantic Search](https://www.sbert.net/examples/applications/semantic-search/README.html)
   - [Retrieve & Re-Rank](https://www.sbert.net/examples/applications/retrieve_rerank/README.html)
   - [Text Summarization](https://www.sbert.net/examples/applications/text-summarization/README.html)
  - [Multilingual Image Search, Clustering & Duplicate Detection](https://www.sbert.net/examples/applications/image-search/README.html)
  and many more use-cases.
  For all examples, see [examples/applications](https://github.com/UKPLab/sentence-transformers/tree/master/examples/applications).

  If you find this repository helpful, feel free to cite our publication [Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks](https://arxiv.org/abs/1908.10084):
  ```bibtex
  @inproceedings{reimers-2019-sentence-bert,
      title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
      author = "Reimers, Nils and Gurevych, Iryna",
      booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
      month = "11",
      year = "2019",
      publisher = "Association for Computational Linguistics",
      url = "https://arxiv.org/abs/1908.10084",
  }
  ```
  If you use one of the multilingual models, feel free to cite our publication [Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation](https://arxiv.org/abs/2004.09813):
  ```bibtex
  @inproceedings{reimers-2020-multilingual-sentence-bert,
      title = "Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation",
      author = "Reimers, Nils and Gurevych, Iryna",
      booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing",
      month = "11",
      year = "2020",
      publisher = "Association for Computational Linguistics",
      url = "https://arxiv.org/abs/2004.09813",
  }
  ```
  Please have a look at [Publications](https://www.sbert.net/docs/publications.html) for our different publications that are integrated into SentenceTransformers.
  Contact person: [Nils Reimers](https://www.nils-reimers.de), [info@nils-reimers.de](mailto:info@nils-reimers.de)
  https://www.ukp.tu-darmstadt.de/
  Don't hesitate to send us an e-mail or report an issue, if something is broken (and it shouldn't be) or if you have further questions.
  > This repository contains experimental software and is published for the sole purpose of giving additional background details on the respective publication.


pkgId: bcfb7f076667139004389a8f958dff3208020f97546268383fd4de1f90c35ab6
name: python-sentencepiece
arch: src
version: 0.1.97
epoch: 0
release: 1
summary: SentencePiece python wrapper
url: https://github.com/google/sentencepiece
rpm_license: Apache
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e52fe591-668f-4619-953e-795393861b0c
location_href: 00005058-python-sentencepiece/python-sentencepiece-0.1.97-1.src.rpm
checksum_type: sha256
description:
  Python wrapper for SentencePiece. This API will offer the encoding, decoding and training of Sentencepiece.


  For Linux (x64/i686), macOS, and Windows(win32/x64) environment, you can simply use pip command to install SentencePiece python module.

  ```
  % pip install sentencepiece
  ```

  To build and install the Python wrapper from source, try the following commands to build and install wheel package.
  ```
  % git clone https://github.com/google/sentencepiece.git
  % cd sentencepiece
  % mkdir build
  % cd build
  % cmake .. -DSPM_ENABLE_SHARED=OFF -DCMAKE_INSTALL_PREFIX=./root
  % make install
  % cd ../python
  % python setup.py bdist_wheel
  % pip install dist/sentencepiece*.whl
  ```

  If you don’t have write permission to the global site-packages directory or don’t want to install into it, please try:
  ```
  % python setup.py install --user
  ```



  See [this google colab page](https://github.com/google/sentencepiece/blob/master/python/sentencepiece_python_module_example.ipynb) to run sentencepiece interactively.


  ```
  % python
  >>> import sentencepiece as spm
  >>> sp = spm.SentencePieceProcessor(model_file='test/test_model.model')

  >>> sp.encode('This is a test')
  [284, 47, 11, 4, 15, 400]

  >>> sp.encode(['This is a test', 'Hello world'], out_type=int)
  [[284, 47, 11, 4, 15, 400], [151, 88, 21, 887]]

  >>> sp.encode_as_ids(['This is a test', 'Hello world'])
  [[284, 47, 11, 4, 15, 400], [151, 88, 21, 887]]

  >>> sp.encode('This is a test', out_type=str)
  ['▁This', '▁is', '▁a', '▁', 't', 'est']

  >>> sp.encode(['This is a test', 'Hello world'], out_type=str)
  [['▁This', '▁is', '▁a', '▁', 't', 'est'], ['▁He', 'll', 'o', '▁world']]

  >>> sp.encode_as_pieces(['This is a test', 'Hello world'])
  [['▁This', '▁is', '▁a', '▁', 't', 'est'], ['▁He', 'll', 'o', '▁world']]

  >>> proto = sp.encode('This is a test', out_type='immutable_proto')
  >>> for n in proto.pieces:
  ...     print('piece="{}" surface="{}" id={} begin={} end={}'.format(n.piece, n.surface, n.id, n.begin, n.end))
  ...
  piece="▁This" surface="This" id=284 begin=0 end=4
  piece="▁is" surface=" is" id=47 begin=4 end=7
  piece="▁a" surface=" a" id=11 begin=7 end=9
  piece="▁" surface=" " id=4 begin=9 end=10
  piece="t" surface="t" id=15 begin=10 end=11
  piece="est" surface="est" id=400 begin=11 end=14

  >>> [[x.id for x in proto.pieces], [x.piece for x in proto.pieces], [x.begin for x in proto.pieces], [x.end for x in proto.pieces]]
  [[284, 47, 11, 4, 15, 400], ['▁This', '▁is', '▁a', '▁', 't', 'est'], [0, 4, 7, 9, 10, 11], [4, 7, 9, 10, 11, 14]]

  >>> proto2 = sp.encode_as_immutable_proto('This is a test')
  >>> proto2 == proto
  True

  >>> for _ in range(10):
  ...     sp.encode('This is a test', out_type=str, enable_sampling=True, alpha=0.1, nbest_size=-1)
  ...
  ['▁', 'This', '▁', 'is', '▁a', '▁', 't', 'e', 'st']
  ['▁T', 'h', 'i', 's', '▁is', '▁a', '▁', 'te', 's', 't']
  ['▁T', 'h', 'is', '▁', 'is', '▁', 'a', '▁', 't', 'est']
  ['▁', 'This', '▁is', '▁', 'a', '▁', 't', 'e', 'st']
  ['▁', 'This', '▁', 'is', '▁', 'a', '▁', 't', 'e', 's', 't']
  ['▁This', '▁is', '▁a', '▁', 'te', 's', 't']
  ['▁This', '▁is', '▁', 'a', '▁', 't', 'e', 'st']
  ['▁', 'T', 'h', 'is', '▁', 'is', '▁', 'a', '▁', 'te', 'st']
  ['▁', 'This', '▁', 'i', 's', '▁a', '▁', 't', 'e', 'st']
  ['▁This', '▁', 'is', '▁a', '▁', 't', 'est']

  >> sp.nbest_encode('This is a test', nbest_size=5, out_type=str)
  [['▁This', '▁is', '▁a', '▁', 't', 'est'],
  ['▁This', '▁is', '▁a', '▁', 'te', 'st'],
  ['▁This', '▁is', '▁a', '▁', 'te', 's', 't'],
  ['▁This', '▁is', '▁a', '▁', 't', 'e', 'st'],
  ['▁This', '▁is', '▁a', '▁', 't', 'es', 't']]

  >>> sp.sample_encode_and_score('This is a test', num_samples=5, alpha=0.1, out_type=str, wor=True)
  [(['▁This', '▁', 'i', 's', '▁a', '▁', 'te', 's', 't'], -3.043105125427246),
  (['▁This', '▁', 'i', 's', '▁a', '▁', 'te', 'st'], -2.8475849628448486),
  (['▁', 'This', '▁is', '▁', 'a', '▁', 'te', 'st'], -3.043248176574707),
  (['▁', 'This', '▁is', '▁a', '▁', 't', 'e', 'st'], -2.87727689743042),
  (['▁', 'This', '▁', 'i', 's', '▁', 'a', '▁', 't', 'est'], -3.6284031867980957)]

  >>> sp.decode([284, 47, 11, 4, 15, 400])
  'This is a test'

  >>> sp.decode([[284, 47, 11, 4, 15, 400], [151, 88, 21, 887]])
  ['This is a test', 'Hello world']

  >>> proto = sp.decode([284, 47, 11, 4, 15, 400], out_type='immutable_proto')
  >>> proto.text
  'This is a test'

  >>> sp.decode(['▁', 'This', '▁', 'is', '▁a', '▁', 't', 'e', 'st'])
  'This is a test'

  >>> sp.decode([['▁This', '▁is', '▁a', '▁', 't', 'est'], ['▁He', 'll', 'o', '▁world']])
  ['This is a test', 'Hello world']

  >>> sp.get_piece_size()
  1000

  >>> sp.id_to_piece(2)
  '</s>'

  >>> sp.id_to_piece([2, 3, 4])
  ['</s>', '\r', '▁']

  >>> sp.piece_to_id('<s>')
  1

  >>> sp.piece_to_id(['</s>', '\r', '▁'])
  [2, 3, 4]

  >>> len(sp)
  1000

  >>> sp['</s>']
  2
  ```


  Training is performed by passing parameters of [spm_train](https://github.com/google/sentencepiece#train-sentencepiece-model) to  SentencePieceTrainer.train() function.

  ```
  >>> import sentencepiece as spm
  >>> spm.SentencePieceTrainer.train(input='test/botchan.txt', model_prefix='m', vocab_size=1000, user_defined_symbols=['foo', 'bar'])
  sentencepiece_trainer.cc(73) LOG(INFO) Starts training with :
  trainer_spec {
    input: test/botchan.txt
    .. snip
  unigram_model_trainer.cc(500) LOG(INFO) EM sub_iter=1 size=1188 obj=10.2839 num_tokens=32182 num_tokens/piece=27.0892
  unigram_model_trainer.cc(500) LOG(INFO) EM sub_iter=0 size=1100 obj=10.4269 num_tokens=33001 num_tokens/piece=30.0009
  unigram_model_trainer.cc(500) LOG(INFO) EM sub_iter=1 size=1100 obj=10.4069 num_tokens=33002 num_tokens/piece=30.0018
  trainer_interface.cc(595) LOG(INFO) Saving model: m.model
  trainer_interface.cc(619) LOG(INFO) Saving vocabs: m.vocab
  >>>
  ```


  Sentencepiece trainer can receive any iterable object to feed training sentences. You can also pass a file object (instance with write() method) to emit the output model to any devices. These features are useful to run sentencepiece on environment that have limited access to the local file system (e.g., Google colab.)

  ```
  import urllib.request
  import io
  import sentencepiece as spm


  model = io.BytesIO()
  with urllib.request.urlopen(
      'https://raw.githubusercontent.com/google/sentencepiece/master/data/botchan.txt'
  ) as response:
    spm.SentencePieceTrainer.train(
        sentence_iterator=response, model_writer=model, vocab_size=1000)






  sp = spm.SentencePieceProcessor(model_proto=model.getvalue())
  print(sp.encode('this is test'))
  ```


pkgId: 630e7b0c8fad5e6cac723682c8e99c6bc3f266f5b9091f604e4db38925512858
name: python-sentry-sdk
arch: src
version: 1.19.1
epoch: 0
release: 1
summary: Python client for Sentry (https://sentry.io)
url: https://github.com/getsentry/sentry-python
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-1e1821c4-f2db-4786-affc-9fddfa56d1fb
location_href: 00009068-python-sentry-sdk/python-sentry-sdk-1.19.1-1.src.rpm
checksum_type: sha256
description:
  ```bash
  pip install --upgrade sentry-sdk
  ```

  ```python
  import sentry_sdk
  sentry_sdk.init(
      "https://12927b5f211046b575ee51fd8b1ac34f@o1.ingest.sentry.io/1",
      
      
      
      traces_sample_rate=1.0,
  )
  ```

  ```python
  from sentry_sdk import capture_message
  capture_message("Hello World")  # Will create an event in Sentry.
  raise ValueError()  # Will also create an event in Sentry.
  ```
  - To learn more about how to use the SDK [refer to our docs](https://docs.sentry.io/platforms/python/)
  - Are you coming from raven-python? [Use this migration guide](https://docs.sentry.io/platforms/python/migration/)
  - To learn about internals use the [API Reference](https://getsentry.github.io/sentry-python/)

  (If you want to create a new integration have a look at the [Adding a new integration checklist](CONTRIBUTING.md#adding-a-new-integration-checklist).)
  - [Django](https://docs.sentry.io/platforms/python/guides/django/)
  - [Flask](https://docs.sentry.io/platforms/python/guides/flask/)
  - [Bottle](https://docs.sentry.io/platforms/python/guides/bottle/)
  - [AWS Lambda](https://docs.sentry.io/platforms/python/guides/aws-lambda/)
  - [Google Cloud Functions](https://docs.sentry.io/platforms/python/guides/gcp-functions/)
  - [WSGI](https://docs.sentry.io/platforms/python/guides/wsgi/)
  - [ASGI](https://docs.sentry.io/platforms/python/guides/asgi/)
  - [Starlette](https://docs.sentry.io/platforms/python/guides/starlette/)
  - [FastAPI](https://docs.sentry.io/platforms/python/guides/fastapi/)
  - [AIOHTTP](https://docs.sentry.io/platforms/python/guides/aiohttp/)
  - [RQ (Redis Queue)](https://docs.sentry.io/platforms/python/guides/rq/)
  - [Celery](https://docs.sentry.io/platforms/python/guides/celery/)
  - [Chalice](https://docs.sentry.io/platforms/python/guides/chalice/)
  - [Falcon](https://docs.sentry.io/platforms/python/guides/falcon/)
  - [Quart](https://docs.sentry.io/platforms/python/guides/quart/)
  - [Sanic](https://docs.sentry.io/platforms/python/guides/sanic/)
  - [Tornado](https://docs.sentry.io/platforms/python/guides/tornado/)
  - [Tryton](https://docs.sentry.io/platforms/python/guides/tryton/)
  - [Pyramid](https://docs.sentry.io/platforms/python/guides/pyramid/)
  - [Logging](https://docs.sentry.io/platforms/python/guides/logging/)
  - [Apache Airflow](https://docs.sentry.io/platforms/python/guides/airflow/)
  - [Apache Beam](https://docs.sentry.io/platforms/python/guides/beam/)
  - [Apache Spark](https://docs.sentry.io/platforms/python/guides/pyspark/)

  The old `raven-python` client has entered maintenance mode and was moved [here](https://github.com/getsentry/raven-python).
  If you're using `raven-python`, we recommend you to migrate to this new SDK. You can find the benefits of migrating and how to do it in our [migration guide](https://docs.sentry.io/platforms/python/migration/).

  Please refer to [CONTRIBUTING.md](CONTRIBUTING.md).

  If you need help setting up or configuring the Python SDK (or anything else in the Sentry universe) please head over to the [Sentry Community on Discord](https://discord.com/invite/Ww9hbqr). There is a ton of great people in our Discord community ready to help you!

  - [![Documentation](https://img.shields.io/badge/documentation-sentry.io-green.svg)](https://docs.sentry.io/quickstart/)
  - [![Forum](https://img.shields.io/badge/forum-sentry-green.svg)](https://forum.sentry.io/c/sdks)
  - [![Discord](https://img.shields.io/discord/621778831602221064)](https://discord.gg/Ww9hbqr)
  - [![Stack Overflow](https://img.shields.io/badge/stack%20overflow-sentry-green.svg)](http://stackoverflow.com/questions/tagged/sentry)
  - [![Twitter Follow](https://img.shields.io/twitter/follow/getsentry?label=getsentry&style=social)](https://twitter.com/intent/follow?screen_name=getsentry)

  Licensed under the MIT license, see [`LICENSE`](LICENSE)


pkgId: edab824267b662d9bf16bc286745e371abc82649e8e0cfdd29cb1c9233d7bbbc
name: python-seqdiag
arch: src
version: 3.0.0
epoch: 0
release: 1
summary: seqdiag generates sequence-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-ffd6cb6c-d12d-4098-b3c3-176ab2b7ec92
location_href: 00005061-python-seqdiag/python-seqdiag-3.0.0-1.src.rpm
checksum_type: sha256
description:
  * Generate sequence-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/seqdiag/index.html>`__ .


pkgId: f337b46aa631926b1738116c4c35f2b7c114320dc87d0b6b2dfc876a24d58544
name: python-serpent
arch: src
version: 1.41
epoch: 0
release: 1
summary: Serialization based on ast.literal_eval
url: https://github.com/irmen/Serpent
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-c1aa3307-3265-4f01-ad1f-314e79f9b467
location_href: 00005062-python-serpent/python-serpent-1.41-1.src.rpm
checksum_type: sha256
description:
  Serpent is a simple serialization library based on ast.literal_eval.

  Because it only serializes literals and recreates the objects using ast.literal_eval(),
  the serialized data is safe to transport to other machines (over the network for instance)
  and de-serialize it there.

  *There is also a Java and a .NET (C#) implementation available. This allows for easy data transfer between the various ecosystems.
  You can get the full source distribution, a Java .jar file, and a .NET assembly dll.*
  The java library can be obtained from Maven central (groupid ``net.razorvine`` artifactid ``serpent``),
  and the .NET assembly can be obtained from Nuget.org (package ``Razorvine.Serpent``).


  **API**

  - ``ser_bytes = serpent.dumps(obj, indent=False, module_in_classname=False):``      # serialize obj tree to bytes
  - ``obj = serpent.loads(ser_bytes)``     # deserialize bytes back into object tree
  - You can use ``ast.literal_eval`` yourself to deserialize, but ``serpent.deserialize``
    works around a few corner cases. See source for details.

  Serpent is more sophisticated than a simple repr() + literal_eval():

  - it serializes directly to bytes (utf-8 encoded), instead of a string, so it can immediately be saved to a file or sent over a socket
  - it encodes byte-types as base-64 instead of inefficient escaping notation that repr would use (this does mean you have
    to base-64 decode these strings manually on the receiving side to get your bytes back.
    You can use the serpent.tobytes utility function for this.)
  - it contains a few custom serializers for several additional Python types such as uuid, datetime, array and decimal
  - it tries to serialize unrecognised types as a dict (you can control this with __getstate__ on your own types)
  - it can create a pretty-printed (indented) output for readability purposes
  - it outputs the keys of sets and dicts in alphabetical order (when pretty-printing)
  - it works around a few quirks of ast.literal_eval() on the various Python implementations

  Serpent allows comments in the serialized data (because it is just Python source code).
  Serpent can't serialize object graphs (when an object refers to itself); it will then crash with a ValueError pointing out the problem.

  Works with Python 3 recent versions.

  **FAQ**

  - Why not use XML? Answer: because XML.
  - Why not use JSON? Answer: because JSON is quite limited in the number of datatypes it supports, and you can't use comments in a JSON file.
  - Why not use pickle? Answer: because pickle has security problems.
  - Why not use ``repr()``/``ast.literal_eval()``? See above; serpent is a superset of this and provides more convenience.
    Serpent provides automatic serialization mappings for types other than the builtin primitive types.
    ``repr()`` can't serialize these to literals that ``ast.literal_eval()`` understands.
  - Why not a binary format? Answer: because binary isn't readable by humans.
  - But I don't care about readability. Answer: doesn't matter, ``ast.literal_eval()`` wants a literal string, so that is what we produce.
  - But I want better performance. Answer: ok, maybe you shouldn't use serpent in this case. Find an efficient binary protocol (protobuf?)
  - Why only Python, Java and C#/.NET, but no bindings for insert-favorite-language-here? Answer: I don't speak that language.
    Maybe you could port serpent yourself?
  - Where is the source?  It's on Github: https://github.com/irmen/Serpent
  - Can I use it everywhere?  Sure, as long as you keep the copyright and disclaimer somewhere. See the LICENSE file.

  **Demo**

  .. code:: python

   
   import ast
   import uuid
   import datetime
   import pprint
   import serpent


   class DemoClass:
       def __init__(self):
           self.i=42
           self.b=False

   data = {
       "names": ["Harry", "Sally", "Peter"],
       "big": 2**200,
       "colorset": { "red", "green" },
       "id": uuid.uuid4(),
       "timestamp": datetime.datetime.now(),
       "class": DemoClass(),
       "unicode": "€"
   }

   
   ser = serpent.dumps(data, indent=True)
   open("data.serpent", "wb").write(ser)

   print("Serialized form:")
   print(ser.decode("utf-8"))

   
   data = serpent.load(open("data.serpent", "rb"))
   print("Data:")
   pprint.pprint(data)

   
   ser_string = open("data.serpent", "r", encoding="utf-8").read()
   data2 = ast.literal_eval(ser_string)

   assert data2==data


  When you run this it prints:

  .. code:: python

   Serialized form:
   
   {
     'big': 1606938044258990275541962092341162602522202993782792835301376,
     'class': {
       '__class__': 'DemoClass',
       'b': False,
       'i': 42
     },
     'colorset': {
       'green',
       'red'
     },
     'id': 'e461378a-201d-4844-8119-7c1570d9d186',
     'names': [
       'Harry',
       'Sally',
       'Peter'
     ],
     'timestamp': '2013-04-02T00:23:00.924000',
     'unicode': '€'
   }
   Data:
   {'big': 1606938044258990275541962092341162602522202993782792835301376,
    'class': {'__class__': 'DemoClass', 'b': False, 'i': 42},
    'colorset': {'green', 'red'},
    'id': 'e461378a-201d-4844-8119-7c1570d9d186',
    'names': ['Harry', 'Sally', 'Peter'],
    'timestamp': '2013-04-02T00:23:00.924000',
    'unicode': '€'}


pkgId: 48796211cbbd722ccd173fee8475934ea820dc6cb05174aad1390001f096b2e2
name: python-serverless-wsgi
arch: src
version: 3.0.2
epoch: 0
release: 1
summary: Amazon AWS API Gateway WSGI wrapper
url: https://github.com/logandk/serverless-wsgi
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-bd75cb94-e291-4c21-ac6c-80df12a9af6d
location_href: 00013866-python-serverless-wsgi/python-serverless-wsgi-3.0.2-1.src.rpm
checksum_type: sha256
description:
  <p align="center">
    <img src="https://logandk.github.io/serverless-wsgi/assets/header.svg">
  </p>

  [![npm package](https://nodei.co/npm/serverless-wsgi.svg?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/serverless-wsgi/)

  [![serverless](http://public.serverless.com/badges/v3.svg)](http://www.serverless.com)
  [![Build Status](https://travis-ci.org/logandk/serverless-wsgi.svg?branch=master)](https://travis-ci.org/logandk/serverless-wsgi)
  [![Coverage Status](https://codecov.io/gh/logandk/serverless-wsgi/branch/master/graph/badge.svg)](https://codecov.io/gh/logandk/serverless-wsgi)
  [![Dependency Status](https://david-dm.org/logandk/serverless-wsgi.svg)](https://david-dm.org/logandk/serverless-wsgi)
  [![Dev Dependency Status](https://david-dm.org/logandk/serverless-wsgi/dev-status.svg)](https://david-dm.org/logandk/serverless-wsgi?type=dev)

  A Serverless Framework plugin to build your deploy Python WSGI applications using Serverless. Compatible
  WSGI application frameworks include Flask, Django and Pyramid - for a complete list, see:
  http://wsgi.readthedocs.io/en/latest/frameworks.html.



  - Transparently converts API Gateway and ALB requests to and from standard WSGI requests
  - Supports anything you'd expect from WSGI such as redirects, cookies, file uploads etc.
  - Automatically downloads Python packages that you specify in `requirements.txt` and deploys them along with your application
  - Convenient `wsgi serve` command for serving your application locally during development
  - Includes CLI commands for remote execution of Python code (`wsgi exec`), shell commands (`wsgi command`), Flask CLI commands (`wsgi flask`) and Django management commands (`wsgi manage`)
  - Supports both APIGatewayV1 and APIGatewayV2 payloads



  ```
  sls plugin install -n serverless-wsgi
  ```

  This will automatically add the plugin to `package.json` and the plugins section of `serverless.yml`.



  <p align="center">
    <img src="https://logandk.github.io/serverless-wsgi/assets/hello-world.svg">
  </p>

  This example assumes that you have intialized your application as `app` inside `api.py`.

  ```
  project
  ├── api.py
  ├── requirements.txt
  └── serverless.yml
  ```



  A regular Flask application.

  ```python
  from flask import Flask
  app = Flask(__name__)


  @app.route("/cats")
  def cats():
      return "Cats"


  @app.route("/dogs/<id>")
  def dog(id):
      return "Dog"
  ```



  Load the plugin and set the `custom.wsgi.app` configuration in `serverless.yml` to the
  module path of your Flask application.

  All functions that will use WSGI need to have `wsgi_handler.handler` set as the Lambda handler and
  use the default `lambda-proxy` integration for API Gateway. This configuration example treats
  API Gateway as a transparent proxy, passing all requests directly to your Flask application,
  and letting the application handle errors, 404s etc.

  _Note: The WSGI handler was called `wsgi.handler` earlier, but was renamed to `wsgi_handler.handler`
  in `1.7.0`. The old name is still supported but using it will cause a deprecation warning._

  ```yaml
  service: example

  provider:
    name: aws
    runtime: python3.6

  plugins:
    - serverless-wsgi

  functions:
    api:
      handler: wsgi_handler.handler
      events:
        - http: ANY /
        - http: ANY /{proxy+}

  custom:
    wsgi:
      app: api.app
  ```



  Add Flask to the application bundle.

  ```
  Flask==1.0.2
  ```



  Simply run the serverless deploy command as usual:

  ```
  $ sls deploy
  Serverless: Using Python specified in "runtime": python3.6
  Serverless: Packaging Python WSGI handler...
  Serverless: Packaging required Python packages...
  Serverless: Linking required Python packages...
  Serverless: Packaging service...
  Serverless: Excluding development dependencies...
  Serverless: Unlinking required Python packages...
  Serverless: Uploading CloudFormation file to S3...
  Serverless: Uploading artifacts...
  Serverless: Uploading service .zip file to S3 (864.57 KB)...
  Serverless: Validating template...
  Serverless: Updating Stack...
  Serverless: Checking Stack update progress...
  ..............
  Serverless: Stack update finished...
  ```



  Set `custom.wsgi.app` in `serverless.yml` according to your WSGI callable:

  - For Pyramid, use [make_wsgi_app](http://docs.pylonsproject.org/projects/pyramid/en/latest/api/config.html#pyramid.config.Configurator.make_wsgi_app) to intialize the callable
  - Django is configured for WSGI by default, set the callable to `<project_name>.wsgi.application`. See https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/ for more information.





  You'll need to include any packages that your application uses in the bundle
  that's deployed to AWS Lambda. This plugin helps you out by doing this automatically,
  as long as you specify your required packages in a `requirements.txt` file in the root
  of your Serverless service path:

  ```
  Flask==1.0.2
  requests==2.21.0
  ```

  For more information, see https://pip.pypa.io/en/latest/user_guide/#requirements-files.

  The `serverless-wsgi` plugin itself depends on `werkzeug` and will package it automatically,
  even if `werkzeug` is not present in your `requirements.txt`.

  You can use the requirement packaging functionality of _serverless-wsgi_ without the WSGI
  handler itself by including the plugin in your `serverless.yml` configuration, without specifying
  the `custom.wsgi.app` setting. This will omit the WSGI handler from the package, but include
  any requirements specified in `requirements.txt`.

  If you don't want to use automatic requirement packaging you can set `custom.wsgi.packRequirements` to false:

  ```yaml
  custom:
    wsgi:
      app: api.app
      packRequirements: false
  ```

  In order to pass additional arguments to `pip` when installing requirements, the `pipArgs` configuration
  option is available:

  ```yaml
  custom:
    wsgi:
      app: api.app
      pipArgs: --no-deps
  ```

  For a more advanced approach to packaging requirements, consider using https://github.com/UnitedIncome/serverless-python-requirements.
  When the `serverless-python-requirements` is added to `serverless.yml`, the `packRequirements` option
  is set to `false` by default.

  If you have `packRequirements` set to `false`, or if you use `serverless-python-requirements`, remember to add
  `werkzeug` explicitly in your `requirements.txt`.



  Python is used for packaging requirements and serving the app when invoking `sls wsgi serve`. By
  default, the current runtime setting is expected to be the name of the Python binary in `PATH`,
  for instance `python3.6`. If this is not the name of your Python binary, override it using the
  `pythonBin` option:

  ```yaml
  custom:
    wsgi:
      app: api.app
      pythonBin: python3
  ```



  <p align="center">
    <img src="https://logandk.github.io/serverless-wsgi/assets/serve.svg">
  </p>

  For convenience, a `sls wsgi serve` command is provided to run your WSGI application
  locally. This command requires the `werkzeug` Python package to be installed,
  and acts as a simple wrapper for starting werkzeug's built-in HTTP server.

  By default, the server will start on port 5000.
  (Note: macOS [reserves port 5000](https://twitter.com/mitsuhiko/status/1462734023164416009)
  for AirPlay by default, see below for instructions on changing the port.)

  ```
  $ sls wsgi serve
   * Running on http://localhost:5000/ (Press CTRL+C to quit)
   * Restarting with stat
   * Debugger is active!
  ```

  Configure the port using the `-p` parameter:

  ```
  $ sls wsgi serve -p 8000
   * Running on http://localhost:8000/ (Press CTRL+C to quit)
   * Restarting with stat
   * Debugger is active!
  ```

  When running locally, an environment variable named `IS_OFFLINE` will be set to `True`.
  So, if you want to know when the application is running locally, check `os.environ["IS_OFFLINE"]`.



  <p align="center">
    <img src="https://logandk.github.io/serverless-wsgi/assets/command.svg">
  </p>

  The `wsgi exec` command lets you execute Python code remotely:

  ```
  $ sls wsgi exec -c "import math; print((1 + math.sqrt(5)) / 2)"
  1.618033988749895

  $ cat count.py
  for i in range(3):
      print(i)

  $ sls wsgi exec -f count.py
  0
  1
  2
  ```

  The `wsgi command` command lets you execute shell commands remotely:

  ```
  $ sls wsgi command -c "pwd"
  /var/task

  $ cat script.sh

  echo "dlrow olleh" | rev

  $ sls wsgi command -f script.sh
  hello world
  ```

  The `wsgi flask` command lets you execute [Flask CLI custom commands](http://flask.pocoo.org/docs/latest/cli/#custom-commands) remotely:

  ```
  $ sls wsgi flask -c "my command"
  Hello world!
  ```

  The `wsgi manage` command lets you execute Django management commands remotely:

  ```
  $ sls wsgi manage -c "check --list-tags"
  admin
  caches
  database
  models
  staticfiles
  templates
  urls
  ```

  All commands have `local` equivalents that let you run commands through `sls invoke local` rather
  than `sls invoke`, i.e. on the local machine instead of through Lambda. The `local` commands (`sls wsgi command local`,
  `sls wsgi exec local`, `sls wsgi flask local` and `sls wsgi manage local`) take the same arguments
  as their remote counterparts documented above.



  If you'd like to be explicit about which routes and HTTP methods should pass through to your
  application, see the following example:

  ```yaml
  service: example

  provider:
    name: aws
    runtime: python3.6

  plugins:
    - serverless-wsgi

  functions:
    api:
      handler: wsgi_handler.handler
      events:
        - http:
            path: cats
            method: get
            integration: lambda-proxy
        - http:
            path: dogs/{id}
            method: get
            integration: lambda-proxy

  custom:
    wsgi:
      app: api.app
  ```



  If you use custom domain names with API Gateway, you might have a base path that is
  at the beginning of your path, such as the stage (`/dev`, `/stage`, `/prod`). In this case, set
  the `API_GATEWAY_BASE_PATH` environment variable to let `serverless-wsgi` know.
  E.g, if you deploy your WSGI application to https://mydomain.com/api/myservice,
  set `API_GATEWAY_BASE_PATH` to `api/myservice` (no `/` first).

  The example below uses the [serverless-domain-manager](https://github.com/amplify-education/serverless-domain-manager)
  plugin to handle custom domains in API Gateway:

  ```yaml
  service: example

  provider:
    name: aws
    runtime: python3.6
    environment:
      API_GATEWAY_BASE_PATH: ${self:custom.customDomain.basePath}

  plugins:
    - serverless-wsgi
    - serverless-domain-manager

  functions:
    api:
      handler: wsgi_handler.handler
      events:
        - http: ANY /
        - http: ANY {proxy+}

  custom:
    wsgi:
      app: api.app
    customDomain:
      basePath: ${opt:stage}
      domainName: mydomain.name.com
      stage: ${opt:stage}
      createRoute53Record: true
  ```

  **Note**: The **API_GATEWAY_BASE_PATH** configuration is only needed when using the payload V1. In the V2, the path does not have the **basePath** in the beginning.



  If you're configuring CloudFront manually in front of your API and setting
  the Path in the CloudFront Origin to include your stage name, you'll need
  to strip it out from the path supplied to WSGI. This is so that your app
  doesn't generate URLs starting with `/production`.

  Pass the `STRIP_STAGE_PATH=yes` environment variable to your application
  to set this:

  ```yaml
  service: example

  provider:
    name: aws
    runtime: python3.6
    environment:
      STRIP_STAGE_PATH: yes
  ```



  In order to accept file uploads from HTML forms, make sure to add `multipart/form-data` to
  the list of content types with _Binary Support_ in your API Gateway API. The
  [serverless-apigw-binary](https://github.com/maciejtreder/serverless-apigw-binary)
  Serverless plugin can be used to automate this process.

  Keep in mind that, when building Serverless applications, uploading
  [directly to S3](http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingHTTPPOST.html)
  from the browser is usually the preferred approach.



  The raw context and event from AWS Lambda are both accessible through the WSGI
  request. The following example shows how to access them when using Flask:

  ```python
  from flask import Flask, request
  app = Flask(__name__)


  @app.route("/")
  def index():
      print(request.environ['serverless.context'])
      print(request.environ['serverless.event'])
  ```

  For more information on these objects, read the documentation on [events](https://docs.aws.amazon.com/lambda/latest/dg/lambda-services.html)
  and the [invocation context](https://docs.aws.amazon.com/lambda/latest/dg/python-context.html).



  By default, all MIME types starting with `text/` and the following whitelist are sent
  through API Gateway in plain text. All other MIME types will have their response body
  base64 encoded (and the `isBase64Encoded` API Gateway flag set) in order to be
  delivered by API Gateway as binary data (remember to add any binary MIME types that
  you're using to the _Binary Support_ list in API Gateway).

  This is the default whitelist of plain text MIME types:

  - `application/json`
  - `application/javascript`
  - `application/xml`
  - `application/vnd.api+json`
  - `image/svg+xml`

  In order to add additional plain text MIME types to this whitelist, use the
  `textMimeTypes` configuration option:

  ```yaml
  custom:
    wsgi:
      app: api.app
      textMimeTypes:
        - application/custom+json
        - application/vnd.company+json
  ```



  Common ways to keep lambda functions warm include [scheduled events](https://serverless.com/framework/docs/providers/aws/events/schedule/)
  and the [WarmUP plugin](https://github.com/FidelLimited/serverless-plugin-warmup). Both these event sources
  are supported by default and will be ignored by `serverless-wsgi`.



  If you have several functions in `serverless.yml` and want to organize them in
  directories, e.g.:

  ```
  project
  ├── web
  │   ├── api.py
  │   └── requirements.txt
  ├── serverless.yml
  └── another_function.py
  ```

  In this case, tell `serverless-wsgi` where to find the handler by prepending the
  directory:

  ```yaml
  service: example

  provider:
    name: aws
    runtime: python3.6

  plugins:
    - serverless-wsgi

  functions:
    api:
      handler: wsgi_handler.handler
      events:
        - http: ANY /
        - http: ANY {proxy+}

    another_function:
      handler: another_function.handler

  custom:
    wsgi:
      app: web/api.app
  ```

  Requirements will now be installed into `web/`, rather than at in the service root directory.

  The same rule applies when using the `individually: true` flag in the `package` settings, together
  with the `module` option provided by `serverless-python-requirements`. In that case, both the requirements
  and the WSGI handler will be installed into `web/`, if the function is configured with `module: "web"`.



  The AWS API Gateway to WSGI mapping module is available on PyPI in the
  `serverless-wsgi` package.

  Use this package if you need to deploy Python Lambda functions to handle
  API Gateway events directly, without using the Serverless framework.

  ```
  pip install serverless-wsgi
  ```

  Initialize your WSGI application and in your Lambda event handler, call
  the request mapper:

  ```python
  import app  # Replace with your actual application
  import serverless_wsgi






  def handler(event, context):
      return serverless_wsgi.handle_request(app.app, event, context)
  ```



  Thanks to [Zappa](https://github.com/Miserlou/Zappa), which has been both the
  inspiration and source of several implementations that went into this project.

  Thanks to [chalice](https://github.com/awslabs/chalice) for the
  requirement packaging implementation.


pkgId: 447912f9d12d6e10cdc9dc5c583a90982d14999c28554674e23d9b531bba1b71
name: python-setproctitle
arch: src
version: 1.3.2
epoch: 0
release: 1
summary: A Python module to customize the process title
url: https://github.com/dvarrazzo/py-setproctitle
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f8464db9-5ea9-4d52-8c7c-533654751e23
location_href: 00005065-python-setproctitle/python-setproctitle-1.3.2-1.src.rpm
checksum_type: sha256
description:
  The ``setproctitle`` module allows a process to change its title (as displayed
  by system tools such as ``ps``, ``top`` or MacOS Activity Monitor).
  Changing the title is mostly useful in multi-process systems, for example
  when a master process is forked: changing the children's title allows to
  identify the task each process is busy with.  The technique is used by
  PostgreSQL_ and the `OpenSSH Server`_ for example.
  The procedure is hardly portable across different systems.  PostgreSQL provides
  a good `multi-platform implementation`__:  this package was born as a wrapper
  around PostgreSQL code.
  - `Homepage <https://github.com/dvarrazzo/py-setproctitle>`__
  - `Download <http://pypi.python.org/pypi/setproctitle/>`__
  - `Bug tracker <https://github.com/dvarrazzo/py-setproctitle/issues>`__


pkgId: 22643d82b8aa41a49445cc86d0b832b13892c5ea305c367d70d040b437665d75
name: python-setproctitle-debuginfo
arch: aarch64
version: 1.3.2
epoch: 0
release: 1
summary: Debug information for package python-setproctitle
url: https://github.com/dvarrazzo/py-setproctitle
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-f8464db9-5ea9-4d52-8c7c-533654751e23
rpm_sourcerpm: python-setproctitle-1.3.2-1.src.rpm
location_href: 00005065-python-setproctitle/python-setproctitle-debuginfo-1.3.2-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug information for package python-setproctitle.
  Debug information is useful when developing applications that use this
  package or when debugging this package.


pkgId: 945ccabbc4b8a632cb48ef7a46ef8e1236afd9a30c65da4711efd82466d35a7d
name: python-setproctitle-debugsource
arch: aarch64
version: 1.3.2
epoch: 0
release: 1
summary: Debug sources for package python-setproctitle
url: https://github.com/dvarrazzo/py-setproctitle
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-f8464db9-5ea9-4d52-8c7c-533654751e23
rpm_sourcerpm: python-setproctitle-1.3.2-1.src.rpm
location_href: 00005065-python-setproctitle/python-setproctitle-debugsource-1.3.2-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug sources for package python-setproctitle.
  Debug sources are useful when developing applications that use this
  package or when debugging this package.


pkgId: 2ff18f52a1b960bdf8d67e0c7121cfd927160a36791dfcd47a6a7fd8868618fe
name: python-setuptools-git
arch: src
version: 1.2
epoch: 0
release: 1
summary: Setuptools revision control system plugin for Git
url: https://github.com/msabramo/setuptools-git
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-5a81bfc8-6815-445c-a8e1-1ecaf12a37e5
location_href: 00009405-python-setuptools-git/python-setuptools-git-1.2-1.src.rpm
checksum_type: sha256
description:
  This is a plugin for setuptools that enables git integration. Once
  installed, Setuptools can be told to include in a package distribution
  all the files tracked by git. This is an alternative to explicit
  inclusion specifications with ``MANIFEST.in``.
  A package distribution here refers to a package that you create using
  setup.py, for example::
    $> python setup.py sdist
    $> python setup.py bdist_rpm
    $> python setup.py bdist_egg
  This package was formerly known as gitlsfiles. The name change is the
  result of an effort by the setuptools plugin developers to provide a
  uniform naming convention.


pkgId: 4bd6892760690dbd5da9a3a9438d8900d63048e5b36f85ca79a02710b9cd6b49
name: python-setuptools-scm-git-archive
arch: src
version: 1.4
epoch: 0
release: 1
summary: setuptools_scm plugin for git archives
url: https://github.com/Changaco/setuptools_scm_git_archive/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-2ba13006-bb19-4d71-a8ff-9450f4a1e2fb
location_href: 00005070-python-setuptools_scm_git_archive/python-setuptools-scm-git-archive-1.4-1.src.rpm
checksum_type: sha256
description:
  Change the contents of the ``.git_archival.txt`` file in the root directory of your repository from::
      ref-names: $Format:%D$
  to::
      node: $Format:%H$
      node-date: $Format:%cI$
      describe-name: $Format:$
      ref-names: $Format:%D$
  Remove ``setuptools_scm_git_archive`` from your project's dependencies (e.g. the
  ``setup_requires`` list in your ``setup.py`` file).


pkgId: 84dbb0a6eea78989583f3a4aa7cc5b7a7fa443e881a7c14c670eaa086ad3c1a6
name: python-setuptools_hg
arch: src
version: 0.4
epoch: 0
release: 1
summary: Setuptools/distribute plugin for finding files under Mercurial version control.
url: http://bitbucket.org/jezdez/setuptools_hg/
rpm_license: GPL2
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-6a0abc56-e6ef-443e-8fdc-2e01dbaf8797
location_href: 00005068-python-setuptools_hg/python-setuptools_hg-0.4-1.src.rpm
checksum_type: sha256
description:
  setuptools_hg is a plugin for setuptools/distribute to enable it to find
  files under the Mercurial version control system.
  It uses the Mercurial Python library by default and falls back to use the
  command line programm `hg(1)`_. That's especially useful inside virtualenvs
  that don't have access to the system wide installed Mercurial lib (e.g. when
  created with ``--no-site-packages``).
    You can read about the hooks used by setuptool_hg in the setuptools_ or
    distribute_ documentation. It basically returns a list of files that are
    under Mercurial version control when running the ``setup`` function, e.g. if
    you create a source and binary distribution. It's a simple yet effective way
    of not having to define package data (non-Python files) manually in MANIFEST
    templates (``MANIFEST.in``).
  Usage
  *****
  Here's an example of a setup.py that uses setuptools_hg::
      from setuptools import setup, find_packages
      setup(
          name="HelloWorld",
          version="0.1",
          packages=find_packages(),
          setup_requires=["setuptools_hg"],
      )
  If you run this setup.py setuptools will automatically download setuptools_hg
  to the directory where the setup.py is located at (and won't install it
  anywhere else) to get all package data files from the Mercurial repository.
  Options
  *******
  Set the ``HG_SETUPTOOLS_FORCE_CMD`` environment variable before running
  setup.py if you want to enforce the use of the hg command.
  """
  CHANGES
  *******


pkgId: 97265cbb57f674dcdbea9daf417ff24369ee19a05326219c9cfe8053a4223eb8
name: python-sexpdata
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: S-expression parser for Python
url: https://github.com/jd-boyd/sexpdata
rpm_license: BSD License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-7395508a-c04c-4d65-b3f8-3a37d47eae22
location_href: 00005071-python-sexpdata/python-sexpdata-1.0.0-1.src.rpm
checksum_type: sha256
description:
  `sexpdata` is a simple S-expression parser/serializer.  It has
  simple `load` and `dump` functions like `pickle`, `json` or `PyYAML`
  module.
  >>> from sexpdata import loads, dumps
  >>> loads('("a" "b")')
  ['a', 'b']
  >>> print(dumps(['a', 'b']))
  ("a" "b")
  You can install `sexpdata` from PyPI_::
    pip install sexpdata
  Links:
  * `Documentation (at Read the Docs) <http://sexpdata.readthedocs.org/>`_
  * `Repository (at GitHub) <https://github.com/jd-boyd/sexpdata>`_
  * `Issue tracker (at GitHub) <https://github.com/jd-boyd/sexpdata/issues>`_
  * `PyPI <http://pypi.python.org/pypi/sexpdata>`_
  * `Travis CI <https://travis-ci.org/#!/jd-boyd/sexpdata>`_


pkgId: 8f86a7cb7b56211cd6067ad1f05afbf6552df9dbc32828b456966b6145f7826e
name: python-sgp4
arch: src
version: 2.21
epoch: 0
release: 1
summary: Track Earth satellites given TLE data, using up-to-date 2020 SGP4 routines.
url: https://github.com/brandon-rhodes/python-sgp4
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f9504091-481f-491d-b491-3e10da2fe9c6
location_href: 00011007-python-sgp4/python-sgp4-2.21-1.src.rpm
checksum_type: sha256
description:
  This library uses the same function names as the official C++ code, to
  help users who may already be familiar with SGP4 in other languages.
  Here is how to compute the x,y,z position and velocity for the
  International Space Station at 12:50:19 on 29 June 2000:
  >>> from sgp4.api import Satrec
  >>>
  >>> s = '1 25544U 98067A   19343.69339541  .00001764  00000-0  38792-4 0  9991'
  >>> t = '2 25544  51.6439 211.2001 0007417  17.6667  85.6398 15.50103472202482'
  >>> satellite = Satrec.twoline2rv(s, t)
  >>>
  >>> jd, fr = 2458827, 0.362605
  >>> e, r, v = satellite.sgp4(jd, fr)
  >>> e
  0
  >>> print(r)  # True Equator Mean Equinox position (km)
  (-6102.44..., -986.33..., -2820.31...)
  >>> print(v)  # True Equator Mean Equinox velocity (km/s)
  (-1.45..., -5.52..., 5.10...)
  As input, you can provide either:
  * A simple floating-point Julian Date for ``jd`` and the value 0.0 for
    ``fr``, if you are happy with the precision of a 64-bit floating point
    number.  Note that modern Julian Dates are greater than 2,450,000
    which means that nearly half of the precision of a 64-bit float will
    be consumed by the whole part that specifies the day.  The remaining
    digits will provide a precision for the fraction of around 20.1 µs.
    This should be no problem for the accuracy of your result — satellite
    positions usually off by a few kilometers anyway, far less than a
    satellite moves in 20.1 µs — but if you run a solver that dives down
    into the microseconds while searching for a rising or setting time,
    the solver might be bothered by the 20.1 µs plateau between each jump
    in the satellite’s position.
  * Or, you can provide a coarse date ``jd`` plus a very precise fraction
    ``fr`` that supplies the rest of the value.  The Julian Date for which
    the satellite position is computed is the sum of the two values.  One
    common practice is to provide the whole number as ``jd`` and the
    fraction as ``fr``; another is to have ``jd`` carry the fraction 0.5
    since UTC midnight occurs halfway through each Julian Date.  Either
    way, splitting the value allows a solver to run all the way down into
    the nanoseconds and still see SGP4 respond smoothly to tiny date
    adjustments with tiny changes in the resulting satellite position.
  Here is how to intrepret the results:
  * ``e`` will be a non-zero error code if the satellite position could
    not be computed for the given date.  You can ``from sgp4.api import
    SGP4_ERRORS`` to access a dictionary mapping error codes to error
    messages explaining what each code means.
  * ``r`` measures the satellite position in **kilometers** from the
    center of the earth in the idiosyncratic True Equator Mean Equinox
    coordinate frame used by SGP4.
  * ``v`` velocity is the rate at which the position is changing,
    expressed in **kilometers per second**.
  If your application does not natively handle Julian dates, you can
  compute ``jd`` and ``fr`` from calendar dates using ``jday()``.
  >>> from sgp4.api import jday
  >>> jd, fr = jday(2019, 12, 9, 12, 0, 0)
  >>> jd
  2458826.5
  >>> fr
  0.5


pkgId: bc5009e58c08cad095a2883a117f2ec0f69954fabc0298375b5a43841443f1e7
name: python-sgp4-debuginfo
arch: aarch64
version: 2.21
epoch: 0
release: 1
summary: Debug information for package python-sgp4
url: https://github.com/brandon-rhodes/python-sgp4
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-f9504091-481f-491d-b491-3e10da2fe9c6
rpm_sourcerpm: python-sgp4-2.21-1.src.rpm
location_href: 00011007-python-sgp4/python-sgp4-debuginfo-2.21-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug information for package python-sgp4.
  Debug information is useful when developing applications that use this
  package or when debugging this package.


pkgId: fac3450e07e62778c9a8bea862d71489806c8ff50f0b5d5c6a94ed2f4555cbed
name: python-sgp4-debugsource
arch: aarch64
version: 2.21
epoch: 0
release: 1
summary: Debug sources for package python-sgp4
url: https://github.com/brandon-rhodes/python-sgp4
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-f9504091-481f-491d-b491-3e10da2fe9c6
rpm_sourcerpm: python-sgp4-2.21-1.src.rpm
location_href: 00011007-python-sgp4/python-sgp4-debugsource-2.21-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug sources for package python-sgp4.
  Debug sources are useful when developing applications that use this
  package or when debugging this package.


pkgId: ad4a689e86dfe73e446e59abdff4a67d7ac0f3deb269e1e8f0c448f67d8df0a7
name: python-shade
arch: src
version: 1.33.0
epoch: 0
release: 1
summary: Simple client library for interacting with OpenStack clouds
url: http://docs.openstack.org/shade/latest
rpm_license: Apache Software License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a4042364-1ce2-447a-bb47-1ef62ae12f48
location_href: 00005073-python-shade/python-shade-1.33.0-1.src.rpm
checksum_type: sha256
description:
    shade has been superceded by `openstacksdk`_ and no longer takes new
    features. The existing code will continue to be maintained indefinitely
    for bugfixes as necessary, but improvements will be deferred to
    `openstacksdk`_. Please update your applications to use `openstacksdk`_
    directly.
  shade is a simple client library for interacting with OpenStack clouds. The
  key word here is *simple*. Clouds can do many many many things - but there are
  probably only about 10 of them that most people care about with any
  regularity. If you want to do complicated things, you should probably use
  the lower level client libraries - or even the REST API directly. However,
  if what you want is to be able to write an application that talks to clouds
  no matter what crazy choices the deployer has made in an attempt to be
  more hipster than their self-entitled narcissist peers, then shade is for you.
  shade started its life as some code inside of ansible. ansible has a bunch
  of different OpenStack related modules, and there was a ton of duplicated
  code. Eventually, between refactoring that duplication into an internal
  library, and adding logic and features that the OpenStack Infra team had
  developed to run client applications at scale, it turned out that we'd written
  nine-tenths of what we'd need to have a standalone library.


pkgId: 8eb5038cdc53f6d4299c0ae89e668371fe9f827a4998c50ac52be2dfc062d214
name: python-shadowsocks
arch: src
version: 2.8.2
epoch: 0
release: 1
summary: A fast tunnel proxy that help you get through firewalls
url: https://github.com/shadowsocks/shadowsocks
rpm_license: http://www.apache.org/licenses/LICENSE-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-6786afb1-5e3f-4ad8-bd39-17115936019e
location_href: 00005074-python-shadowsocks/python-shadowsocks-2.8.2-1.src.rpm
checksum_type: sha256
description:
  |PyPI version| |Build Status| |Coverage Status|
  A fast tunnel proxy that helps you bypass firewalls.


pkgId: ebf2372bdbf4edbaba307647b67b3bdce44260bead80db72b7ceb01d207c0351
name: python-sharepy
arch: src
version: 2.0.0
epoch: 0
release: 1
summary: Simple SharePoint Online authentication for Python
url: https://github.com/JonathanHolvey/sharepy
rpm_license: GPLv3
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-fb2252a5-3826-4c92-9e24-1e1edfd5837c
location_href: 00011755-python-sharepy/python-sharepy-2.0.0-1.src.rpm
checksum_type: sha256
description:
  This module will handle authentication for your SharePoint Online/O365 site, allowing you to make straightforward HTTP requests from Python. It extends the commonly used *Requests* module, meaning that returned objects are familliar, easy to work with and well documented.



  SharePy can be installed from the Python Package Index, PyPI.

  ```
  pip install sharepy
  ```



  ```python
  import sharepy
  s = sharepy.connect("example.sharepoint.com")
  ```

  You will be prompted to enter your username and password, which are used to request a security token from Microsoft. An access cookie and request digest token are then retrieved and saved to properties for later use. The digest token will be refreshed automatically as it expires.

  A username and password can also be provided as arguments of the `connect` function, if prompts are not desirable.



  ```python
  r = s.get("https://example.sharepoint.com/_api/web/lists/GetByTitle('Test Library')")
  ```

  This will return a *Requests* `response` object. See the [requests documentation](http://docs.python-requests.org/en/master/) for details. By default, the headers `Accept: application/json; odata=verbose` and `Content-type: application/json; odata=verbose` are sent with all requests, so API responses will be formatted as JSON where available.

  Headers can be added or overridden by supplying a dictionary to the relevant method:

  ```python
  r = s.get("https://example.sharepoint.com/_api/...", headers={"Accept": "application/atom+xml"})
  ```

  The request will send a digest header, allowing modifications to be made to SharePoint objects.



  ```python
  r = s.getfile("https://example.sharepoint.com/Library/Test%20File.pdf")
  ```

  This will download the file to the current directory and return a `response` object. Alternatively you can specify a location to save the file to:

  ```python
  r = s.getfile("https://example.sharepoint.com/Library/Test%20File.pdf", filename="downloads/file.pdf")
  ```



  Properties of the authentication session can be saved to a file using the `save` method, so the session can be used without having to re-authenticate each time a program is run:

  ```python
  s.save()
  ```

  Later, the `load` function can be used to restore the session:

  ```python
  s = sharepy.load()
  ```

  The default file name for saving and loading sessions is `sp-session.pkl`, however an alternative location can be provided as an argument to `save()` and `load()`.





  SharePy implements Requests authentication classes that can also be used directly with Requests itself:

  ```python
  import requests
  import sharepy

  auth = sharepy.auth.SharePointOnline(username="user@example.com")
  auth.login(site="example.sharepoint.com")
  r = requests.get("https://example.sharepoint.com", auth=auth)
  ```

  Available authentication classes are:

  - `SharepointOnline` - For normal SharePoint Online sites
  - `SharepointADFS` - For ADFS-enabled sites



  The authentication URL is detected automatically when using `sharepy.connect()`. If a different URL is required for a region-specific account, it can be specified by manually creating an auth object and setting its `login_url` property:

  ```python
  import sharepy

  auth = sharepy.auth.SharePointOnline(username="user@example.com")
  auth.login_url = "https://login.microsoftonline.de/extSES.srf"
  s = sharepy.SharePointSession("example.sharepoint.com", auth)
  ```



  - Constructing SharePoint API calls: [SharePoint REST API documentation](https://msdn.microsoft.com/en-us/library/office/dn292552.aspx)
  - Handling JSON objects in Python: [Python JSON module documentation](https://docs.python.org/3.4/library/json.html)



  This software is distributed under the GNU General Public License v3. Copyright 2016-2021 Jonathan Holvey.



  1. The authentication method used here is based on [this post](https://allthatjs.com/2012/03/28/remote-authentication-in-sharepoint-online/) by Luc Stakenborg.
  2. Additional help regarding request digests from sadegh's comment on [this post](http://paulryan.com.au/2014/spo-remote-authentication-rest/) by Paul Ryan.
  3. Contributed code from @joemeneses for ADFS authentication.


pkgId: ec8f2fbf17b2a41e2b4b1f25940a45f174c86ed4beff15530447ca13f102f7ef
name: python-shelly
arch: src
version: 0.2.1
epoch: 0
release: 1
summary: Standalone tools to make the shell better.
url: http://bitbucket.org/larsyencken/shelly/
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-aba145dc-5933-4a71-a7dc-7e7823e0b3b0
location_href: 00005078-python-shelly/python-shelly-0.2.1-1.src.rpm
checksum_type: sha256
description:
  Shelly makes processing line-by-line data in the shell easier, by providing
  access to useful functional programming primitives and interactive tools.


pkgId: efd1149aab1acd56915afd6f488d3640bbd9262cd3340acd3e0fca0b6eba7262
name: python-shodan
arch: src
version: 1.28.0
epoch: 0
release: 1
summary: Python library and command-line utility for Shodan (https://developer.shodan.io)
url: https://github.com/achillean/shodan-python
rpm_license: None
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-9eb7b8d4-5c85-40b6-bacd-82a92822ab84
location_href: 00005083-python-shodan/python-shodan-1.28.0-1.src.rpm
checksum_type: sha256
description:
  Shodan is a search engine for Internet-connected devices. Google lets you search for websites,
  Shodan lets you search for devices. This library provides developers easy access to all of the
  data stored in Shodan in order to automate tasks and integrate into existing tools.


pkgId: cfa95417caab197fc6ec3dd61021398ee4933ed111361688f63272ba2419f680
name: python-shortuuid
arch: src
version: 1.0.11
epoch: 0
release: 1
summary: A generator library for concise, unambiguous and URL-safe UUIDs.
url: https://github.com/skorokithakis/shortuuid/
rpm_license: License :: OSI Approved :: BSD License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-413fde49-214e-40bd-8f5d-2352e6c0dff1
location_href: 00005084-python-shortuuid/python-shortuuid-1.0.11-1.src.rpm
checksum_type: sha256
description:
  `shortuuid` is a simple python library that generates concise, unambiguous, URL-safe
  UUIDs.
  Often, one needs to use non-sequential IDs in places where users will see them, but the
  IDs must be as concise and easy to use as possible.  `shortuuid` solves this problem by
  generating uuids using Python's built-in `uuid` module and then translating them to
  base57 using lowercase and uppercase letters and digits, and removing similar-looking
  characters such as l, 1, I, O and 0.
  [![image](https://travis-ci.org/skorokithakis/shortuuid.svg?branch=master)](https://travis-ci.org/skorokithakis/shortuuid)


pkgId: 2584578c5d8e5d508b00afc37133986ad04ac81c45a12f84ee6997c5eacd5895
name: python-shtab
arch: src
version: 1.6.1
epoch: 0
release: 1
summary: Automagic shell tab completion for Python CLI applications
url: https://github.com/iterative/shtab
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f9b09aa2-b096-4a93-9a51-134f45666e03
location_href: 00010670-python-shtab/python-shtab-1.6.1-1.src.rpm
checksum_type: sha256
description:
  |Tests| |Coverage| |Conda| |PyPI|
  - What: Automatically generate shell tab completion scripts for Python CLI apps
  - Why: Speed & correctness. Alternatives like
    `argcomplete <https://pypi.org/project/argcomplete>`_ and
    `pyzshcomplete <https://pypi.org/project/pyzshcomplete>`_ are slow and have
    side-effects
  - How: ``shtab`` processes an ``argparse.ArgumentParser`` object to generate a
    tab completion script for your shell


pkgId: 16aba12022cc4c9c51f591d04dddd081cc73a2a39f5005d8b39bb21cdc1e397b
name: python-shutilwhich
arch: src
version: 1.1.0
epoch: 0
release: 1
summary: shutil.which for those not using Python 3.3 yet.
url: http://github.com/mbr/shutilwhich
rpm_license: PSF
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-832cd720-6d49-4121-8190-bddf78edd2bf
location_href: 00011780-python-shutilwhich/python-shutilwhich-1.1.0-1.src.rpm
checksum_type: sha256
description:
  First, install the package: ``pip install shutilwhich``
  Importing the package::
    import shutilwhich
  will monkey-patch the ``shutil`` package, so from that point on you can simply
  import the ``which`` function::
    from shutil import which
  To keep things a little more concise, you can also import ``which`` directly
  from ``shutilwhich``::
    from shutilwhich import which
  This will still monkeypatch the ``shutil`` module. On Python 3.3 and above, the
  module never do anything but return the stdlib ``shutil.which`` function.


pkgId: 8c7e5463644df879400ba8fe613f86a4fec6488b855787063a3e44e1506fa125
name: python-sieve
arch: src
version: 0.1.9
epoch: 0
release: 1
summary: XML Comparison Utils
url: http://github.com/ralphbean/sieve
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-b30db596-5161-4367-b7d2-a4b80b5d436c
location_href: 00005086-python-sieve/python-sieve-0.1.9-1.src.rpm
checksum_type: sha256
description:
  +----------+-----------+
  | Branch   | Status    |
  +==========+===========+
  | master   | |master|  |
  +----------+-----------+
  | develop  | |develop| |
  +----------+-----------+


pkgId: 36cfbe37f2642ce4c83febc769b21eea6359aacf0bf8e5ef15c55f7679554afb
name: python-sievelib
arch: src
version: 1.2.1
epoch: 0
release: 1
summary: Client-side SIEVE library
url: https://github.com/tonioo/sievelib
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-95749311-cd42-4b29-89ce-96ca33f7fcc5
location_href: 00005087-python-sievelib/python-sievelib-1.2.1-1.src.rpm
checksum_type: sha256
description:
  |travis| |codecov| |latest-version|
  Client-side Sieve and Managesieve library written in Python.
  * Sieve : An Email Filtering Language
    (`RFC 5228 <http://tools.ietf.org/html/rfc5228>`_)
  * ManageSieve : A Protocol for Remotely Managing Sieve Scripts
    (`RFC 5804 <http://tools.ietf.org/html/rfc5804>`_)


pkgId: 3d2c0fb06a556ee5ebdcdce01d6df8a0ce617e4fb8cd248bdb6554fa54f7b94e
name: python-simple-crypt
arch: src
version: 4.1.7
epoch: 0
release: 1
summary: Simple, secure encryption and decryption for Python 2.7 and 3
url: https://github.com/andrewcooke/simple-crypt
rpm_license: UNKNOWN
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-18235483-3551-4346-9a56-02cbcbe7481c
location_href: 00011591-python-simple-crypt/python-simple-crypt-4.1.7-1.src.rpm
checksum_type: sha256
description:
  Simple Crypt encrypts and decrypts data.  It has two functions, ``encrypt``
  and ``decrypt``::
      from simplecrypt import encrypt, decrypt
      ciphertext = encrypt('password', plaintext)
      plaintext = decrypt('password', ciphertext)
  That's it.  You can see the implementation on
  `github <https://github.com/andrewcooke/simple-crypt/blob/master/src/simplecrypt/__init__.py>`_.


pkgId: 74826d3ca190da931c1d9029a16d56b1934c62f1b21bcb239b845ee60a117b6c
name: python-simple-ddl-parser
arch: src
version: 0.30.0
epoch: 0
release: 1
url: https://github.com/xnuinside/simple-ddl-parser
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-c90dcb0a-c4f7-4cad-aa44-c512407d2ed0
location_href: 00010490-python-simple-ddl-parser/python-simple-ddl-parser-0.30.0-1.src.rpm
checksum_type: sha256
summary:
  Simple DDL Parser to parse SQL & dialects like HQL, TSQL (MSSQL), Oracle, AWS Redshift, Snowflake, MySQL, PostgreSQL, etc ddl files to json/python dict with full information about columns: types, defaults, primary keys, etc.; sequences, alters, custom types & other entities from ddl.

description:
  Build with ply (lex & yacc in python). A lot of samples in 'tests/.
  Is it Stable?
  ^^^^^^^^^^^^^
  Yes, library already has about 7000+ downloads per day  - https://pypistats.org/packages/simple-ddl-parser..
  As maintainer, I guarantee that any backward incompatible changes will not be done in patch or minor version. But! Pay attention that sometimes output in keywords can be changed in minor version because of fixing wrong behaviour in past. For example, previously 'auto_increment' was a part of column type, but later it became a separate column property. So, please read for minor versions changedlog.
  However, in process of adding support for new statements & features I see that output can be structured more optimal way and I hope to release version ``1.0.*`` with more struct output result. But, it will not be soon, first of all, I want to add support for so much statements as I can. So I don't think make sense to expect version 1.0.* before, for example, version ``0.26.0`` :)
  How does it work?
  ^^^^^^^^^^^^^^^^^
  Parser supports:
  * SQL
  * HQL (Hive)
  * MSSQL dialec
  * Oracle dialect
  * MySQL dialect
  * PostgreSQL dialect
  * BigQuery
  * Redshift
  * Snowflake
  * SparkSQL
  * IBM DB2 dialect
  You can check dialects sections after ``Supported Statements`` section to get more information that statements from dialects already supported by parser. If you need to add more statements or new dialects - feel free to open the issue.
  Feel free to open Issue with DDL sample
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Pay attentions that I'm adding functional tests for all supported statement, so if you see that your statement is failed and you didn't see it in the test 99,9% that I did n't have sample with such SQL statement - so feel free to open the issue and I will add support for it.
  **If you need some statement, that not supported by parser yet**\ : please provide DDL example & information about that is it SQL dialect or DB.
  Types that are used in your DB does not matter, so parser must also work successfuly to any DDL for SQL DB. Parser is NOT case sensitive, it did not expect that all queries will be in upper case or lower case. So you can write statements like this:
         Alter Table Persons ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');
  It will be parsed as is without errors.
  If you have samples that cause an error - please open the issue (but don't forget to add ddl example), I will be glad to fix it.
  A lot of statements and output result you can find in tests on the github - https://github.com/xnuinside/simple-ddl-parser/tree/main/tests .
  How to install
  ^^^^^^^^^^^^^^
         pip install simple-ddl-parser


pkgId: 34cbc607849b65c5607dbc63a40b05299e6d6fd9a12e02417f47725650e02a49
name: python-simple-salesforce
arch: src
version: 1.12.3
epoch: 0
release: 1
summary: A basic Salesforce.com REST API client.
url: https://github.com/simple-salesforce/simple-salesforce
rpm_license: Apache 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-2ca3e98d-690c-4250-b8d7-ca85f3ac3600
location_href: 00009217-python-simple-salesforce/python-simple-salesforce-1.12.3-1.src.rpm
checksum_type: sha256
description:
  You can find out more regarding the format of the results in the `Official Salesforce.com REST API Documentation`_


pkgId: 07edded986e796f6be755e8d4b858f88d7d74f91fbaedc1bd2a7b1e5dcc7c68b
name: python-simpleaudio
arch: src
version: 1.0.4
epoch: 0
release: 1
summary: Simple, asynchronous audio playback for Python 3.
url: https://github.com/hamiltron/py-simple-audio
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-8bbf2943-bdce-4e25-9127-2af12f22083b
location_href: 00005091-python-simpleaudio/python-simpleaudio-1.0.4-1.src.rpm
checksum_type: sha256
description:
  The simplaudio package provides cross-platform, dependency-free audio playback
  capability for Python 3 on OSX, Windows, and Linux.
  MIT Licensed.


pkgId: 20825e7a9df9509553f381e2336cd538adfaa95fdb1908619d7bd9b4b3dd721d
name: python-simpleeval
arch: src
version: 0.9.13
epoch: 0
release: 1
summary: A simple, safe single expression evaluator library.
url: https://github.com/danthedeckie/simpleeval
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0fb9e333-a23c-448a-9aa3-f7dd92603063
location_href: 00005093-python-simpleeval/python-simpleeval-0.9.13-1.src.rpm
checksum_type: sha256
description:
  A single file library for easily adding evaluatable expressions into
  python projects.  Say you want to allow a user to set an alarm volume, which
  could depend on the time of day, alarm level, how many previous alarms had gone
  off, and if there is music playing at the time.
  Or if you want to allow simple formulae in a web application, but don't want to
  give full eval() access, or don't want to run in javascript on the client side.
  It's deliberately trying to stay simple to use and not have millions of features,
  pull it in from PyPI (pip or easy_install), or even just a single file you can dump
  into a project.
  Internally, it's using the amazing python ``ast`` module to parse the
  expression, which allows very fine control of what is and isn't allowed.  It
  should be completely safe in terms of what operations can be performed by the
  expression.
  The only issue I know to be aware of is that you can create an expression which
  takes a long time to evaluate, or which evaluating requires an awful lot of
  memory, which leaves the potential for DOS attacks.  There is basic protection
  against this, and you can lock it down further if you desire. (see the
  Operators_ section below)
  You should be aware of this when deploying in a public setting.
  The defaults are pretty locked down and basic, and it's easy to add
  whatever extra specific functionality you need (your own functions,
  variable/name lookup, etc).


pkgId: ddaf20369b0ea5e16c3e5c6546ceafba99758a03d90f0ca93333610aa98a1da1
name: python-simplegeneric
arch: src
version: 0.8.1
epoch: 0
release: 1
summary: Simple generic functions (similar to Python's own len(), pickle.dump(), etc.)
url: http://cheeseshop.python.org/pypi/simplegeneric
rpm_license: ZPL 2.1
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-3de831ff-4a48-46f2-93c5-5677773910a4
location_href: 00009572-python-simplegeneric/python-simplegeneric-0.8.1-1.src.rpm
checksum_type: sha256
description:
  Defining and using a generic function is straightforward::
      >>> from simplegeneric import generic
      >>> @generic
      >>> @move.when_type(int)
      >>> @move.when_type(str)
      >>> zig = object()
      >>> @move.when_object(zig)
      >>> move(2101, "war")
      In AD 2101, war was beginning.
      >>> move("gentlemen", "base")
      How are you gentlemen!!
      All your base are belong to us.
      >>> move(zig, "doing")
      You know what you doing.
      For great justice!
      >>> move(27.0, 56.2)
      what you say?!


pkgId: 8712999868d5f80cb2588876ed1f1c2bfcf7c5900eb5f6cd2387e7d44778a3c2
name: python-simplejson
arch: src
version: 3.19.1
epoch: 0
release: 1
summary: Simple, fast, extensible JSON encoder/decoder for Python
url: https://github.com/simplejson/simplejson
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-620013bf-d3ee-4dac-918c-09815ddada08
location_href: 00009055-python-simplejson/python-simplejson-3.19.1-1.src.rpm
checksum_type: sha256
description:
  simplejson is a simple, fast, complete, correct and extensible
  JSON <http://json.org> encoder and decoder for Python 3.3+
  with legacy support for Python 2.5+.  It is pure Python code
  with no dependencies, but includes an optional C extension
  for a serious speed boost.
  The latest documentation for simplejson can be read online here:
  https://simplejson.readthedocs.io/
  simplejson is the externally maintained development version of the
  json library included with Python (since 2.6). This version is tested
  with the latest Python 3.8 and maintains backwards compatibility
  with Python 3.3+ and the legacy Python 2.5 - Python 2.7 releases.
  The encoder can be specialized to provide serialization in any kind of
  situation, without any special support by the objects to be serialized
  (somewhat like pickle). This is best done with the ``default`` kwarg
  to dumps.
  The decoder can handle incoming JSON strings of any specified encoding
  (UTF-8 by default). It can also be specialized to post-process JSON
  objects with the ``object_hook`` or ``object_pairs_hook`` kwargs. This
  is particularly useful for implementing protocols such as JSON-RPC
  that have a richer type system than JSON itself.
  For those of you that have legacy systems to maintain, there is a
  very old fork of simplejson in the `python2.2`_ branch that supports
  Python 2.2. This is based on a very old version of simplejson,
  is not maintained, and should only be used as a last resort.


pkgId: 7fac9d4c59bcd037777810015c42ce89c3a386982fe943a2df7ee98cdf89499c
name: python-simplejson-debuginfo
arch: aarch64
version: 3.19.1
epoch: 0
release: 1
summary: Debug information for package python-simplejson
url: https://github.com/simplejson/simplejson
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-620013bf-d3ee-4dac-918c-09815ddada08
rpm_sourcerpm: python-simplejson-3.19.1-1.src.rpm
location_href: 00009055-python-simplejson/python-simplejson-debuginfo-3.19.1-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug information for package python-simplejson.
  Debug information is useful when developing applications that use this
  package or when debugging this package.


pkgId: 50115391be9617dd7578bc6780cbf4e79ae65060cb03fa0f9d0da574b2e0ad50
name: python-simplejson-debugsource
arch: aarch64
version: 3.19.1
epoch: 0
release: 1
summary: Debug sources for package python-simplejson
url: https://github.com/simplejson/simplejson
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-620013bf-d3ee-4dac-918c-09815ddada08
rpm_sourcerpm: python-simplejson-3.19.1-1.src.rpm
location_href: 00009055-python-simplejson/python-simplejson-debugsource-3.19.1-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug sources for package python-simplejson.
  Debug sources are useful when developing applications that use this
  package or when debugging this package.


pkgId: 0ed44c4529573ce748290e7f9eb1ffe0801604f1700a7d72f5ba4fe4452525c8
name: python-simplekml
arch: src
version: 1.3.6
epoch: 0
release: 1
summary: A Simple KML creator
url: http://readthedocs.org/projects/simplekml/
rpm_license: GNU Lesser General Public License v3+
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e34d1d33-9ee3-4355-a30e-33931bc29885
location_href: 00013378-python-simplekml/python-simplekml-1.3.6-1.src.rpm
checksum_type: sha256
description:
  Simplekml is a python package which enables you to generate KML with as little effort as possible.

  At the time of making this package nothing was available (at least I could not find anything) that could create KML files easily. You needed a lot of bloated code to even create a simple point. This is understandable because the KML standard is quite extensive, but what if you just work with the simple elements of KML like Document, Folder, Point, LineString and Polygon? This package supports those elements and everything documented in the KML Reference. With simplekml creating a KML file containing a point as simple as:

  ```python
  import simplekml
  kml = simplekml.Kml()
  kml.newpoint(name="Kirstenbosch", coords=[(18.432314,-33.988862)])
  kml.save("botanicalgarden.kml")
  ```

  See the [Homepage](http://readthedocs.org/projects/simplekml/) for usage, documentation and a reference.


pkgId: b6faa66dd45ddc9aff802702c5a4fcfadafa63cd3ed97d994d4257fcb593f244
name: python-simplepam
arch: src
version: 0.1.5
epoch: 0
release: 1
url: https://github.com/leonnnn/python3-simplepam
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-4ea2d08a-7dfb-4e5b-b021-368ce76f6aa2
location_href: 00005095-python-simplepam/python-simplepam-0.1.5-1.src.rpm
checksum_type: sha256
summary:
  An interface to the Pluggable Authentication Modules (PAM) library on linux, written in pure python (using ctypes)

description:
  An interface to the Pluggable Authentication Modules (PAM) library on
  linux, written in pure python (using ctypes)


pkgId: da88acd7e0becb3bfb7a5812838c2e86d52a67092f2d61161dfbf98c6a98169f
name: python-simpletransformers
arch: src
version: 0.63.9
epoch: 0
release: 1
summary: An easy-to-use wrapper library for the Transformers library.
url: https://github.com/ThilinaRajapakse/simpletransformers/
rpm_license: Apache Software License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-085725e3-76ce-40b0-836d-0c066c3b2105
location_href: 00012860-python-simpletransformers/python-simpletransformers-0.63.9-1.src.rpm
checksum_type: sha256
description:
  For a list of pretrained models, see [Hugging Face docs](https://huggingface.co/pytorch-transformers/pretrained_models.html).
  The `model_types` available for each task can be found under their respective section. Any pretrained model of that type
  found in the Hugging Face docs should work. To use any of them set the correct `model_type` and `model_name` in the `args`


pkgId: da8e0a5b468f6c96ac86f20ba8bcd40de547c2eb7bf7b2bcee9f5663a0a77208
name: python-simplevisor
arch: src
version: 1.3
epoch: 0
release: 1
summary: Simple daemon supervisor
url: https://github.com/cern-mig/python-simplevisor
rpm_license: ASL 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-196eec32-51c3-4547-bd82-54e2a76991ae
location_href: 00005098-python-simplevisor/python-simplevisor-1.3-1.src.rpm
checksum_type: sha256
description:
  Simplevisor is a simple daemons supervisor, it is inspired by
  Erlang OTP and it can supervise hierarchies of services.


pkgId: ac5340282cc71694f439ccdc5396db7c949b908529ad6672f80f1aaba4baae7a
name: python-simpy
arch: src
version: 4.0.1
epoch: 0
release: 1
summary: Event discrete, process based simulation for Python.
url: https://simpy.readthedocs.io
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e6d9526a-ccd6-49bb-bbbd-17ae6f3b0bd7
location_href: 00005100-python-simpy/python-simpy-4.0.1-1.src.rpm
checksum_type: sha256
description:
  SimPy is a process-based discrete-event simulation framework based on standard
  Python. Processes in SimPy are defined by Python `generator`__ functions and
  can, for example, be used to model active components like customers, vehicles or
  agents.  SimPy also provides various types of shared resources to model
  limited capacity congestion points (like servers, checkout counters and
  tunnels).
  Simulations can be performed “as fast as possible”, in real time (wall clock
  time) or by manually stepping through the events.
  Though it is theoretically possible to do continuous simulations with SimPy, it
  has no features that help you with that. Also, SimPy is not really required for
  simulations with a fixed step size and where your processes don’t interact with
  each other or with shared resources.
  The `documentation`__ contains a `tutorial`__, `several guides`__ explaining key
  concepts, a number of `examples`__ and the `API reference`__.
  SimPy is released under the MIT License. Simulation model developers are
  encouraged to share their SimPy modeling techniques with the SimPy community.
  Please post a message to the `SimPy mailing list`__.
  There is an introductory talk that explains SimPy’s concepts and provides some
  examples: `watch the video`__ or `get the slides`__.
  __ http://docs.python.org/3/glossary.html#term-generator
  __ https://simpy.readthedocs.io/en/latest/
  __ https://simpy.readthedocs.io/en/latest/simpy_intro/index.html
  __ https://simpy.readthedocs.io/en/latest/topical_guides/index.html
  __ https://simpy.readthedocs.io/en/latest/examples/index.html
  __ https://simpy.readthedocs.io/en/latest/api_reference/index.html
  __ https://groups.google.com/forum/#!forum/python-simpy
  __ https://www.youtube.com/watch?v=Bk91DoAEcjY
  __ http://stefan.sofa-rockers.org/downloads/simpy-ep14.pdf


pkgId: 41d41647689e8208cdecd67551a8d33c95dbc71d25e639b1850327db47fc1e35
name: python-single-source
arch: src
version: 0.3.0
epoch: 0
release: 1
summary: Access to the project version in Python code for PEP 621-style projects
url: https://github.com/rabbit72/single-source
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-63fd8206-fc40-4148-a29d-d4164199619b
location_href: 00012504-python-single-source/python-single-source-0.3.0-1.src.rpm
checksum_type: sha256
description:
  > `single-source` helps to reduce the entropy in your Python project by keeping
  > single source of truth.

  The targets of this library are modern Python projects which want to have
  one source of truth for version, name and etc.

  At the moment, the library provides the single point for a package version.

  It supports Python 3.6+.



  ```python

  from pathlib import Path
  from single_source import get_version

  __version__ = get_version(__name__, Path(__file__).parent.parent)
  ```



  You use modern `pyproject.toml` and want to keep the version of your package
  here:
  ```toml

  [tool.poetry]
  name = "modern-project"
  version = "0.1.0"
  ```

  Let's imagine the version of your package is required in some place of the code.

  Since you need the version in your Python code, you may want to duplicate the version by putting it as a string variable to some python file:
  ```python

  __version__ = "0.1.0"


  version = "0.1.0"
  ```

  Then you realize you don't want to have the version in a python file and in pyproject.toml at the same time. It's harder to keep them consistent and easier to forget to bump both versions before release.

  Also, you don't want to build the wheel by creating some script for auto incrementing the version in both places (and use it in your CI flow, for example). Instead you want use `poetry version` commands.


  You can install `single-source` via [pip](https://pip.pypa.io/en/stable/)
  ```bash
  pip3 install single-source
  ```

  or via [poetry](https://python-poetry.org/docs/#installation)
  ```bash
  poetry add single-source
  ```

  The library also available as
  [a conda package](https://docs.conda.io/projects/conda/en/latest/) in
  [conda-forge](https://anaconda.org/conda-forge/repo) channel
  ```bash
  conda install single-source --channel conda-forge
  ```



  If it's not possible to get the version from package metadata or
  there is no pyproject.toml `get_version` returns `""` - empty string by default.
  You can change this value by providing a value as a `default_return` keyword argument.

  ```python
  from pathlib import Path
  from single_source import get_version

  path_to_pyproject_dir = Path(__file__).parent.parent
  __version__ = get_version(__name__, path_to_pyproject_dir, default_return=None)
  ```


  You may want to raise an exception in case the version of the package
  has not been found.
  ```python
  from pathlib import Path
  from single_source import get_version, VersionNotFoundError

  path_to_pyproject_dir = Path(__file__).parent.parent
  try:
      __version__ = get_version(__name__, path_to_pyproject_dir, fail=True)
  except VersionNotFoundError:
      pass
  ```



  You can use `single-source` even if you still store the version of your library
  in `setup.py` or in any other `utf-8` encoded text file.

  >First, try without custom `regex`, probably it can parse the version

  If the default internal `regex` does not find the version in your file,
  the only thing you need to provide is a custom `regex` to `get_version`:
  ```python
  from single_source import get_version

  custom_regex = r"\s*version\s*=\s*[\"']\s*([-.\w]{3,})\s*[\"']\s*"

  path_to_file = "~/my-project/some_file_with_version.txt"
  __version__ = get_version(__name__, path_to_file, version_regex=custom_regex)
  ```
  Version must be in the first group `()` in the custom regex.


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

  Please make sure to update tests as appropriate.


  [MIT](https://choosealicense.com/licenses/mit/)


pkgId: 41c6a34347367c3a36c61c1bfaf03e76aae187a2b1c29449bd9c55347fa6ffe3
name: python-singleton-decorator
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: A testable singleton decorator
url: https://github.com/Kemaweyan/singleton_decorator
rpm_license: GPLv3
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d936524c-1338-4857-9e6a-3b863705f51c
location_href: 00010798-python-singleton-decorator/python-singleton-decorator-1.0.0-1.src.rpm
checksum_type: sha256
description:
  A testable singleton decorator allows easily create a singleton objects
  just adding a decorator to class definition but also allows easily write
  unit tests for those classes.


pkgId: bd87bb598e1a0ba5f97ad1501f0cdf0deb321af363dcb87572e7972106c1ffa3
name: python-siosocks
arch: src
version: 0.3.0
epoch: 0
release: 1
summary: sans-io socks proxy client/server with couple io backends
url: https://github.com/pohmelie/siosocks
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-2da42974-ae4f-4aa2-a4d1-a49f9fc55972
location_href: 00005101-python-siosocks/python-siosocks-0.3.0-1.src.rpm
checksum_type: sha256
description:
  asyncio | + | +
  trio | + | +
  socket | | +
  Feel free to make it bigger :wink:

  End user implementations mimic «parent» library api.

  - asyncio: [`open_connection`](https://docs.python.org/3/library/asyncio-stream.html#asyncio.open_connection)
  - trio: [`open_tcp_stream`](https://trio.readthedocs.io/en/stable/reference-io.html#trio.open_tcp_stream)
  Extra keyword-only arguments:
  - `socks_host`: string
  - `socks_port`: integer
  - `socks_version`: integer (4 or 5)
  - `username`: optional string (default: `None`)
  - `password`: optional string (default: `None`)
  - `encoding`: optional string (default: `"utf-8"`)
  - `socks4_extras`: optional dictionary
  - `socks5_extras`: optional dictionary
  Extras:
  - socks4
      - `user_id`: string (default: `""`)
  - socks5
      - None at this moment, added for uniform api

  End user implementations mimic «parent» library server request handlers.
  - asyncio: [`start_server`](https://docs.python.org/3/library/asyncio-stream.html#asyncio.start_server)
  - trio: [`serve_tcp`](https://trio.readthedocs.io/en/stable/reference-io.html#trio.serve_tcp)
  - socketserver: [`ThreadingTCPServer`](https://docs.python.org/3/library/socketserver.html#socketserver.ThreadingTCPServer)
  You should use [`partial`](https://docs.python.org/3/library/functools.html#functools.partial) to bind socks specific arguments:
  - `allowed_versions`: set of integers (default: `{4, 5}`)
  - `username`: optional string (default: `None`)
  - `password`: optional string (default: `None`)
  - `strict_security_policy`: boolean, if `True` exception will be raised if authentication required and 4 is in allowed versions set (default: `True`)
  - `encoding`: optional string (default: `"utf-8"`)
  Nothing to say more. Typical usage can be found at [`__main__.py`](https://github.com/pohmelie/siosocks/blob/master/siosocks/__main__.py)


  This section will use `asyncio` as backend, since it is main target/reason for `siosocks`

  ``` python
  import asyncio
  from siosocks.io.asyncio import open_connection
  HOST = "api.ipify.org"
  REQ = """GET /?format=json HTTP/1.1
  Host: api.ipify.org
  User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:67.0) Gecko/20100101 Firefox/67.0
  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  Accept-Language: en,en-US;q=0.7,ru;q=0.3
  Accept-Encoding: gzip, deflate
  DNT: 1
  Connection: keep-alive
  Upgrade-Insecure-Requests: 1
  Cache-Control: max-age=0
  """
  async def main():
      
      r, w = await open_connection(HOST, 80, socks_host="localhost", socks_port=9050, socks_version=5)
      w.write(REQ.replace("\n", "\r\n").encode())
      await w.drain()
      print(await r.read(8192))
      w.close()
  loop = asyncio.get_event_loop()
  loop.run_until_complete(main())
  ```

  ``` python
  import socket
  import asyncio
  import contextlib
  from siosocks.io.asyncio import socks_server_handler
  loop = asyncio.get_event_loop()
  server = loop.run_until_complete(asyncio.start_server(socks_server_handler, port=1080))
  addresses = []
  for sock in server.sockets:
      if sock.family in (socket.AF_INET, socket.AF_INET6):
          host, port, *_ = sock.getsockname()
          addresses.append(f"{host}:{port}")
  print(f"Socks4/5 proxy serving on {', '.join(addresses)}")
  with contextlib.suppress(KeyboardInterrupt):
      loop.run_forever()
  ```
  But if you just want one-shot socks server then try:
  ``` bash
  python -m siosocks
  ```
  This will start socks 4, 5 server on all interfaces on 1080 port. For more information try `--help`
  ``` bash
  python -m siosocks --help
  usage: siosocks [-h] [--backend {asyncio,socketserver,trio}] [--host HOST]
                  [--port PORT] [--family {ipv4,ipv6,auto}] [--socks SOCKS]
                  [--username USERNAME] [--password PASSWORD]
                  [--encoding ENCODING] [--no-strict] [-v]
  Socks proxy server
  optional arguments:
    -h, --help            show this help message and exit
    --backend {asyncio,socketserver,trio}
                          Socks server backend [default: asyncio]
    --host HOST           Socks server host [default: None]
    --port PORT           Socks server port [default: 1080]
    --family {ipv4,ipv6,auto}
                          Socket family [default: auto]
    --socks SOCKS         Socks protocol version [default: []]
    --username USERNAME   Socks auth username [default: None]
    --password PASSWORD   Socks auth password [default: None]
    --encoding ENCODING   String encoding [default: utf-8]
    --no-strict           Allow multiversion socks server, when socks5 used with
                          username/password auth [default: False]
    -v, --version         Show siosocks version
  ```

  `siosocks` have unified exception for all types of socks-related errors:
  ``` python
  import asyncio
  from siosocks.exceptions import SocksException
  from siosocks.io.asyncio import open_connection
  async def main():
      try:
          r, w = await open_connection("127.0.0.1", 80, socks_host="localhost", socks_port=9050, socks_version=5)
      except SocksException:
      else:
          
          
  loop = asyncio.get_event_loop()
  loop.run_until_complete(main())
  ```

  Shadowsocks-like [client/server](https://github.com/pohmelie/siosocks/blob/master/examples/shadowsocks-like.py). Shadowsocks-like built on top of socks5 and encryption. It have «client», which is actually socks server and «server». So, precisely there are two servers: client side and server side. Purpose of shadowsocks is to encrypt data between «incoming» and «outgoing» servers. In common this looks like:
  ```
  client (non-encrypted socks) «incoming» socks server (encrypted socks) «outgoing» socks server (non-socks connection) target server
  ```
  Example above use Caesar cipher for simplicity (and security of course).

  - [ ] add more backends (average)
  - [ ] speed up `passthrough` implementation (seems hard)
  - [ ] add client redirection


pkgId: aa6b10d9de85834186e3379c3113d84d91f59d1fa3128cfcc952bdd48109fb11
name: python-sip-debuginfo
arch: aarch64
version: 6.7.8
epoch: 0
release: 1
summary: Debug information for package python-sip
url: https://www.riverbankcomputing.com/software/sip/
rpm_license: SIP
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-03f14522-a59a-429d-ac40-a3b15b9a6b67
rpm_sourcerpm: python-sip-6.7.8-1.src.rpm
location_href: 00011936-python-sip/python-sip-debuginfo-6.7.8-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug information for package python-sip.
  Debug information is useful when developing applications that use this
  package or when debugging this package.


pkgId: f1ec3f04cb44ba359a4572d85c5ff544b10473020b3658a28835f1a1e42aee81
name: python-sip-debugsource
arch: aarch64
version: 6.7.8
epoch: 0
release: 1
summary: Debug sources for package python-sip
url: https://www.riverbankcomputing.com/software/sip/
rpm_license: SIP
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-03f14522-a59a-429d-ac40-a3b15b9a6b67
rpm_sourcerpm: python-sip-6.7.8-1.src.rpm
location_href: 00011936-python-sip/python-sip-debugsource-6.7.8-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug sources for package python-sip.
  Debug sources are useful when developing applications that use this
  package or when debugging this package.


pkgId: 1827fa5506000c12636c83235e6e4ceffaf6710dc2632d2b0d91a9268587e71e
name: python-siphash
arch: src
version: 0.0.1
epoch: 0
release: 1
summary: siphash - python siphash implementation
url: http://github.com/majek/pysiphash#readme
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-af920f24-af96-4f7a-9da1-c5c9006939ab
location_href: 00005103-python-siphash/python-siphash-0.0.1-1.src.rpm
checksum_type: sha256
description:
  A Python implementation of [SipHash](https://131002.net/siphash/), a
  fast short-input PRF.
  Extract from the description:
  ```
  SipHash is a family of pseudorandom functions (a.k.a. keyed hash
  functions) optimized for speed on short messages.
  Target applications include network traffic authentication and defense
  against hash-flooding DoS attacks.
  SipHash is secure, fast, and simple (for real):
  * SipHash is simpler and faster than previous cryptographic algorithms
    (e.g. MACs based on universal hashing)
  * SipHash is competitive in performance with insecure
    non-cryptographic algorithms (e.g. MurmurHash)
  * We propose that hash tables switch to SipHash as a hash
    function. Users of SipHash already include OpenDNS, Perl 5, Ruby, or
    Rust.
  ```


pkgId: d44582d344dc543e6845b44d800673ecc6eb142afcefa85d3a774247ebfc6b8a
name: python-sipvicious
arch: src
version: 0.3.4
epoch: 0
release: 1
summary: SIPVicious suite is a set of tools that can be used to audit SIP based VoIP systems.
url: https://github.com/EnableSecurity/sipvicious
rpm_license: GPL
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-23477fe0-4195-4d28-9e17-142bd2fc8461
location_href: 00005104-python-sipvicious/python-sipvicious-0.3.4-1.src.rpm
checksum_type: sha256
description:
  ![SIPVicious mascot](https://repository-images.githubusercontent.com/32133566/55b41300-12d9-11eb-89d8-58f60930e3fa)

  SIPVicious OSS is a set of security tools that can be used to audit SIP based VoIP systems. Specifically, it allows you to find SIP servers, enumerate SIP extensions and finally, crack their password.

  To get started read the following:

  - [Getting started on the Wiki](https://github.com/enablesecurity/sipvicious/wiki/Getting-Started)
  - Communication Breakdown blog: [Attacking a real VoIP System with SIPVicious OSS](https://www.rtcsec.com/2020/06/02-attacking-voip-system-with-sipvicious/).

  For usage help make use of `-h` or `--help` switch.



  If you are looking for a professional grade toolset to test your RTC systems, please consider [SIPVicious PRO](https://www.sipvicious.pro).




  The SIPVicious OSS toolset consists of the following tools:

  - svmap
  - svwar
  - svcrack
  - svreport
  - svcrash



  	this is a sip scanner. When launched against
  	ranges of ip address space, it will identify any SIP servers
  	which it finds on the way. Also has the option to scan hosts
  	on ranges of ports.

  	Usage: <https://github.com/EnableSecurity/sipvicious/wiki/SVMap-Usage>



  	identifies working extension lines on a PBX. A working
  	extension is one that can be registered.
  	Also tells you if the extension line requires authentication or not.

  	Usage: <https://github.com/EnableSecurity/sipvicious/wiki/SVWar-Usage>



  	a password cracker making use of digest authentication.
  	It is able to crack passwords on both registrar servers and proxy
  	servers. Current cracking modes are either numeric ranges or
  	words from dictionary files.

  	Usage: <https://github.com/EnableSecurity/sipvicious/wiki/SVCrack-Usage>



  	able to manage sessions created by the rest of the tools
  	and export to pdf, xml, csv and plain text.

  	Usage: <https://github.com/EnableSecurity/sipvicious/wiki/SVReport-Usage>



  	responds to svwar and svcrack SIP messages with a message that
  	causes old versions to crash.

  	Usage: <https://github.com/EnableSecurity/sipvicious/wiki/SVCrash-FAQ>




  Please refer to the [installation documentation](https://github.com/EnableSecurity/sipvicious/wiki/Basics#installation).



  Check out the [wiki](https://github.com/enablesecurity/sipvicious/wiki) for documentation.


pkgId: e75d974079bdcc3cb43495f009d7d4e8f648cea78e38225d81e2bb27c894e42c
name: python-siuba
arch: src
version: 0.4.2
epoch: 0
release: 1
summary: A package for quick, scrappy analyses with pandas and SQL
url: https://github.com/machow/siuba
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-6e0ee115-b34c-41af-b877-87ad0e1ef26a
location_href: 00014076-python-siuba/python-siuba-0.4.2-1.src.rpm
checksum_type: sha256
description:
  *scrappy data analysis, with seamless support for pandas and SQL*
  [![CI](https://github.com/machow/siuba/workflows/CI/badge.svg)](https://github.com/machow/siuba/actions?query=workflow%3ACI+branch%3Amain)
  [![Documentation Status](https://img.shields.io/badge/docs-siuba.org-blue.svg)](https://siuba.org)
  [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/machow/siuba/master)
  <img width="30%" align="right" src="./docs/siuba_small.svg">
  siuba ([小巴](http://www.cantonese.sheik.co.uk/dictionary/words/9139/)) is a port of [dplyr](https://github.com/tidyverse/dplyr) and other R libraries. It supports a tabular data analysis workflow centered on 5 common actions:
  * `select()` - keep certain columns of data.
  * `filter()` - keep certain rows of data.
  * `mutate()` - create or modify an existing column of data.
  * `summarize()` - reduce one or more columns down to a single number.
  * `arrange()` - reorder the rows of data.
  These actions can be preceded by a `group_by()`, which causes them to be applied individually to grouped rows of data. Moreover, many SQL concepts, such as `distinct()`, `count()`, and joins are implemented.
  Inputs to these functions can be a pandas `DataFrame` or SQL connection (currently postgres, redshift, or sqlite).
  For more on the rationale behind tools like dplyr, see this [tidyverse paper](https://tidyverse.tidyverse.org/articles/paper.html).
  For examples of siuba in action, see the [siuba guide](https://siuba.org/guide).


pkgId: b64bd46fc09ea1a00948c925f81e6517b57b8cf974a9d67f671a83878de3fa43
name: python-six
arch: src
version: 1.16.0
epoch: 0
release: 1
summary: Python 2 and 3 compatibility utilities
url: https://github.com/benjaminp/six
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-26c926f4-ed71-4fc7-86c0-1103e6194351
location_href: 00008879-python-six/python-six-1.16.0-1.src.rpm
checksum_type: sha256
description:
  .. image:: https://img.shields.io/pypi/v/six.svg
     :target: https://pypi.org/project/six/
     :alt: six on PyPI

  .. image:: https://travis-ci.org/benjaminp/six.svg?branch=master
     :target: https://travis-ci.org/benjaminp/six
     :alt: six on TravisCI

  .. image:: https://readthedocs.org/projects/six/badge/?version=latest
     :target: https://six.readthedocs.io/
     :alt: six's documentation on Read the Docs

  .. image:: https://img.shields.io/badge/license-MIT-green.svg
     :target: https://github.com/benjaminp/six/blob/master/LICENSE
     :alt: MIT License badge

  Six is a Python 2 and 3 compatibility library.  It provides utility functions
  for smoothing over the differences between the Python versions with the goal of
  writing Python code that is compatible on both Python versions.  See the
  documentation for more information on what is provided.

  Six supports Python 2.7 and 3.3+.  It is contained in only one Python
  file, so it can be easily copied into your project. (The copyright and license
  notice must be retained.)

  Online documentation is at https://six.readthedocs.io/.

  Bugs can be reported to https://github.com/benjaminp/six.  The code can also
  be found there.


pkgId: cfb7d344be85d3c8c81203e289642710941e9d2e41ad205fde9548775cf32a95
name: python-skl2onnx
arch: src
version: 1.14.0
epoch: 0
release: 1
summary: Convert scikit-learn models to ONNX
url: https://github.com/onnx/sklearn-onnx
rpm_license: Apache License v2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-979e7451-1492-492d-ba27-502603588a37
location_href: 00010859-python-skl2onnx/python-skl2onnx-1.14.0-1.src.rpm
checksum_type: sha256
description:
  *sklearn-onnx* converts [scikit-learn](https://scikit-learn.org/stable/) models to [ONNX](https://github.com/onnx/onnx).
  Once in the ONNX format, you can use tools like [ONNX Runtime](https://github.com/Microsoft/onnxruntime) for high performance scoring.
  All converters are tested with [onnxruntime](https://onnxruntime.ai/).


  Full documentation including tutorials is available at [https://onnx.ai/sklearn-onnx/](https://onnx.ai/sklearn-onnx/).
  [Supported scikit-learn Models](https://onnx.ai/sklearn-onnx/supported.html)
  Last supported opset is 15.

  You may also find answers in [existing issues](https://github.com/onnx/sklearn-onnx/issues?utf8=%E2%9C%93&q=is%3Aissue)
  or submit a new one.


  You can install from [PyPi](https://pypi.org/project/skl2onnx/):
  ```
  pip install skl2onnx
  ```
  Or you can install from the source with the latest changes.
  ```
  pip install git+https://github.com/onnx/sklearn-onnx.git
  ```


  We welcome contributions in the form of feedback, ideas, or code.


  [Apache License v2.0](LICENSE)


pkgId: 2dd6ef62f067847ba8ae4965355edadced743ad8a19add96e35a7c3707b46af0
name: python-sklearn-nature-inspired-algorithms
arch: src
version: 0.11.0
epoch: 0
release: 1
summary: Search using nature inspired algorithms over specified parameter values for an sklearn estimator.
url: https://github.com/timzatko/Sklearn-Nature-Inspired-Algorithms
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-fa87458d-f770-4aff-92e0-c885415d24ee
checksum_type: sha256
description:
  [![CI](https://github.com/timzatko/Sklearn-Nature-Inspired-Algorithms/workflows/CI/badge.svg?branch=master)](https://github.com/timzatko/Sklearn-Nature-Inspired-Algorithms/actions?query=workflow:CI+branch:master)
  [![Maintainability](https://api.codeclimate.com/v1/badges/ed99e5c765bf5c95d716/maintainability)](https://codeclimate.com/github/timzatko/Sklearn-Nature-Inspired-Algorithms/maintainability)
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/sklearn-nature-inspired-algorithms)
  [![PyPI version](https://badge.fury.io/py/sklearn-nature-inspired-algorithms.svg)](https://pypi.org/project/sklearn-nature-inspired-algorithms/)
  [![PyPI downloads](https://img.shields.io/pypi/dm/sklearn-nature-inspired-algorithms)](https://pypi.org/project/sklearn-nature-inspired-algorithms/)
  [![Fedora package](https://img.shields.io/fedora/v/python3-sklearn-nature-inspired-algorithms?color=blue&label=Fedora%20Linux&logo=fedora)](https://src.fedoraproject.org/rpms/python-sklearn-nature-inspired-algorithms)

  Nature-inspired algorithms for hyper-parameter tuning of [scikit-learn](https://github.com/scikit-learn/scikit-learn) models. This package uses algorithms implementation from [NiaPy](https://github.com/NiaOrg/NiaPy).



  ```shell script
  $ pip install sklearn-nature-inspired-algorithms
  ```

  To install this package on Fedora, run:

  ```sh
  $ dnf install python3-sklearn-nature-inspired-algorithms
  ```



  The usage is similar to using sklearn's `GridSearchCV`. Refer to the [documentation](https://sklearn-nature-inspired-algorithms.readthedocs.io/en/stable/) for more detailed guides and more examples.

  ```python
  from sklearn_nature_inspired_algorithms.model_selection import NatureInspiredSearchCV
  from sklearn.ensemble import RandomForestClassifier

  param_grid = {
      'n_estimators': range(20, 100, 20),
      'max_depth': range(2, 40, 2),
      'min_samples_split': range(2, 20, 2),
      'max_features': ["auto", "sqrt", "log2"],
  }

  clf = RandomForestClassifier(random_state=42)

  nia_search = NatureInspiredSearchCV(
      clf,
      param_grid,
      algorithm='hba', # hybrid bat algorithm
      population_size=50,
      max_n_gen=100,
      max_stagnating_gen=10,
      runs=3,
      random_state=None, # or any number if you want same results on each run
  )

  nia_search.fit(X_train, y_train)



  new_clf = RandomForestClassifier(**nia_search.best_params_, random_state=42)
  ```

  Also you plot the search process with _line plot_ or _violin plot_.

  ```python
  from sklearn_nature_inspired_algorithms.helpers import score_by_generation_lineplot, score_by_generation_violinplot


  score_by_generation_lineplot(nia_search, metric='max')


  score_by_generation_violinplot(nia_search, run=0)
  ```

  Jupyter notebooks with full examples are available in [here](examples/notebooks).



  If you do not want to use any of the pre-defined algorithm configurations, you can use any algorithm from the  [NiaPy](https://github.com/NiaOrg/NiaPy) collection.
  This will allow you to have more control of the algorithm behavior.
  Refer to their [documentation](https://niapy.readthedocs.io/en/latest/) and [examples](https://github.com/NiaOrg/NiaPy/tree/master/examples) for the usage.

  __Note:__ Use version >2.x.x of NiaPy package

  ```python
  from niapy.algorithms.basic import GeneticAlgorithm

  algorithm = GeneticAlgorithm() # when custom algorithm is provided random_state is ignored
  algorithm.set_parameters(NP=50, Ts=5, Mr=0.25)

  nia_search = NatureInspiredSearchCV(
      clf,
      param_grid,
      algorithm=algorithm,
      population_size=50,
      max_n_gen=100,
      max_stagnating_gen=20,
      runs=3,
  )

  nia_search.fit(X_train, y_train)
  ```



  Detailed information on the contribution guidelines are in the [CONTRIBUTING.md](./CONTRIBUTING.md).

location_href:
  00005105-python-sklearn-nature-inspired-algorithms/python-sklearn-nature-inspired-algorithms-0.11.0-1.src.rpm


pkgId: 9c69d7af41d8c862d4a189b16eca4da7d32bcc8aa59a4737a2ca5dac655e74e0
name: python-skyfield-data
arch: src
version: 4.0.0
epoch: 0
release: 1
summary: Data package for Skyfield
url: https://github.com/brunobord/skyfield-data
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-6ef03872-1d4b-4911-be0b-670f9d1eec3b
location_href: 00011693-python-skyfield-data/python-skyfield-data-4.0.0-1.src.rpm
checksum_type: sha256
description:
  [![Tests](https://github.com/brunobord/skyfield-data/actions/workflows/tests.yml/badge.svg)](https://github.com/brunobord/skyfield-data/actions/workflows/tests.yml)



  [Skyfield](https://rhodesmill.org/skyfield/) is a Python library for astronomical computations. It depends on various data files to accurately compute moon phases, planet positions, etc.

  Several issues are raised by these data files:

  * If they're not found in the path of the ``Loader``, they're **downloaded at runtime**. Depending on the archive you're requesting, some files might be very large, causing a long delay (directly related to your network bandwidth). In the case of a web server app, you'd cause a timeout on client's end.
  * They come mainly from 2 sources: NASA's JPL, and the IERS. **If one of them is temporarily unavailable**, you couldn't perform any computation.
  * In some countries, or behind some filtering proxies, some hosts may be **blocked**.
  * These files have **an expiration date** (in a more or less distant future). As a consequence, even if the files are already downloaded in the right path, at each runtime you could possibly have to download one or more files before making any computation using them.



  |      File       |    Date    |
  |:---------------:|:----------:|
  | finals2000A.all | 2023-04-09 |
  |    de421.bsp    | 2053-10-08 |


  **Deprecation warning**: As of ``python-skyfield>=1.31``, `Leap_Second.dat`, `deltat.data` and `deltat.preds` files are not used anymore. They were not maintained anymore, and Brandon Rhodes switched to other source files for ∆T computations.



  * Providing at least the most common of these assets in Python Package.
  * Make regular releases to refresh the files before they expire.
  * Provide a warning / logging mechanism when the files are about to expire (or when they are outdated) to still allow you to compute things with the loaded assets, but being informed you need to upgrade.

  This way, you could **install or upgrade** this data package via ``pip``.

  Once all the files are on your disk space, you can instantiate your ``skyfield`` loader pointing at their path, without having to worry about anything.



  Install the packages using:

  ```sh
  pip install skyfield skyfield-data
  ```

  To create a custom Skyfield loader, use the following code:

  ```python
  from skyfield_data import get_skyfield_data_path
  from skyfield.api import Loader
  load = Loader(get_skyfield_data_path())
  planets = load('de421.bsp')  # this command won't download this file
  ts = load.timescale(builtin=False)  # this command won't download the IERS file
  ```

  For the record, using `buitin=True` as an argument to load the timescale data won't trigger the download of the file, because python-skyfield embeds its own data files as a built-in data source.

  If you want to make sure that the data files would **never** be downloaded, you can also use the ``expire`` option like this:

  ```python
  load = Loader(get_skyfield_data_path(), expire=False)
  ```

  Whenever a file contained in the catalog has expired, you're going to receive a warning when loading the `skyfield-data` path:

  ```python
  >>> from skyfield_data import get_skyfield_data_path
  >>> from skyfield.api import Loader
  >>> load = Loader(get_skyfield_data_path())
  /home/[redacted]/skyfield_data/expirations.py:25: RuntimeWarning: The file de421.bsp has expired. Please upgrade your version of `skyfield-data` or expect computation errors
    RuntimeWarning
  ```

  By default, the loading isn't blocked, but it's strongly recommended to upgrade to a more recent version, to make sure you're not going to make wrong astronomical computations.



  By default, the ``RuntimeWarning`` is raised when the file **has** expired. You may want to be aware of this warning **in advance**, that is to say a few days or weeks before, in order to eventually upgrade your version of ``skyfield-data``.

  In order to trigger this warning, you can use the ``expiration_limit`` argument, like this:

  ```python
  >>> from skyfield_data import get_skyfield_data_path
  >>> from skyfield.api import Loader
  >>> load = Loader(get_skyfield_data_path(expiration_limit=30))
  /home/[redacted]/skyfield_data/expirations.py:25: RuntimeWarning: The file de421.bsp would expire in less than 30 days. Please upgrade your version of `skyfield-data` or expect computation errors
    RuntimeWarning
  ```

  **Note:** The ``expiration_limit`` argument should be a positive integer (or zero).



  We assume that you'll be using a Python3.6+ version for all regular operations.

  We're providing a ``Makefile`` with basic targets to play around with the toolkit. use ``make help`` to get more details.

  In order to be able to run the `download.py` script, we recommend to run it **from a virtualenv** where you'd have installed the "dev" dependencies, using:

  ```sh
  make install-dev
  ```



  *Important:* This project is, and should stay compatible with Python 2.6, 2.7 and Python 3.5+ up to 3.9, to keep the same Python compatibility that `skyfield` has.



  Improving or fixing `skyfield-data` will require you to have at least a virtualenv with `tox` installed on it.

  We'll ask you to add tests along your patch, to make sure that no regression or bug would be introduced by your patch or further ones.

  To make a quick'n'dirty test, inside your "tox-ready" virtualenv, run:

  ```sh
  make test
  ```

  to launch the Python 2.7 and Python 3.5+ test jobs.

  If you want to test your branch against Python 2.6, you'll have to setup a Python 2.6-ready tox environment, by doing something similar to:

  ```sh
  sudo apt install python2.6 python2.6-dev  # dev headers to compile numpy
  mkvirtualenv TOX26 --python=`which python2.6`  # You will activate this venv with `workon TOX26`
  pip install tox
  tox -c tox-py26.ini
  ```

  **Known issues**: on Ubuntu, you may be unable to build numpy at this point, due to misplaced C header files in your system. I've had hard times on Ubuntu, but your mileage may vary.

  Note: At the moment, we can't prove that skyfield-data is 100% compatible with Python 2.6, because of a defunct CI. Although, we're pretty confident it is. Fingers crossed!



  The online CI relies on Github Actions:

  [![Tests](https://github.com/brunobord/skyfield-data/actions/workflows/tests.yml/badge.svg)](https://github.com/brunobord/skyfield-data/actions/workflows/tests.yml)





  * `de421.bsp` is provided by the *Jet Propulsion Laboratory*,
  * `finals2000A.all` is provided by the *International Earth Rotation and Reference Systems Service*.



  This Python Package code is published under the terms of the MIT license. See the ``COPYING`` file for more details.


pkgId: 00579c2f61b65b8d2a6ebe0e6fec891d3ffe0c748bb16e5eb8fa237da310d5cf
name: python-slack-webhook
arch: src
version: 1.0.7
epoch: 0
release: 1
url: https://github.com/10mohi6/slack-webhook-python
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-35c9bdc1-634d-4783-86dd-edbdd584be39
location_href: 00011617-python-slack-webhook/python-slack-webhook-1.0.7-1.src.rpm
checksum_type: sha256
summary:
  slack-webhook is a python client library for slack api         Incoming Webhooks on Python 3.6 and above.

description:
  [![PyPI](https://img.shields.io/pypi/v/slack-webhook)](https://pypi.org/project/slack-webhook/)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  [![codecov](https://codecov.io/gh/10mohi6/slack-webhook-python/branch/master/graph/badge.svg)](https://codecov.io/gh/10mohi6/slack-webhook-python)
  [![Build Status](https://travis-ci.com/10mohi6/slack-webhook-python.svg?branch=master)](https://travis-ci.com/10mohi6/slack-webhook-python)
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/slack-webhook)](https://pypi.org/project/slack-webhook/)
  [![Downloads](https://pepy.tech/badge/slack-webhook)](https://pepy.tech/project/slack-webhook)

  slack-webhook is a python client library for slack api Incoming Webhooks on Python 3.6 and above.




      $ pip install slack-webhook




  ```python
  from slack_webhook import Slack

  slack = Slack(url='https://hooks.slack.com/services/T00/B00/XXX')
  slack.post(text="Hello, world.")
  ```


  ```python
  from slack_webhook import Slack

  slack = Slack(url='https://hooks.slack.com/services/T00/B00/XXX')
  slack.post(text="Robert DeSoto added a new task",
      attachments = [{
          "fallback": "Plan a vacation",
          "author_name": "Owner: rdesoto",
          "title": "Plan a vacation",
          "text": "I've been working too hard, it's time for a break.",
          "actions": [
              {
                  "name": "action",
                  "type": "button",
                  "text": "Complete this task",
                  "style": "",
                  "value": "complete"
              },
              {
                  "name": "tags_list",
                  "type": "select",
                  "text": "Add a tag...",
                  "data_source": "static",
                  "options": [
                      {
                          "text": "Launch Blocking",
                          "value": "launch-blocking"
                      },
                      {
                          "text": "Enhancement",
                          "value": "enhancement"
                      },
                      {
                          "text": "Bug",
                          "value": "bug"
                      }
                  ]
              }
          ]
      }]
  )
  ```



  For help getting started with Incoming Webhooks, view our online [documentation](https://api.slack.com/incoming-webhooks).




  1. Fork it
  2. Create your feature branch (`git checkout -b my-new-feature`)
  3. Commit your changes (`git commit -am 'Add some feature'`)
  4. Push to the branch (`git push origin my-new-feature`)
  5. Create new Pull Request


pkgId: e01d02ecf016191b3f28bddee7b9a0eb0361262c4b84490380503eda2257e573
name: python-slackclient
arch: src
version: 2.9.4
epoch: 0
release: 1
url: https://github.com/slackapi/python-slack-sdk
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-05c1d059-6dcb-4c90-8b14-6b888700c3ea
location_href: 00005106-python-slackclient/python-slackclient-2.9.4-1.src.rpm
checksum_type: sha256
summary:
  Slack API clients for Web API and RTM API (Legacy) - Please use https://pypi.org/project/slack-sdk/ instead.

description:
  This library requires Python 3.6 and above. If you require Python 2, please use our [SlackClient - v1.x][slackclientv1]. If you're unsure how to check what version of Python you're on, you can check it using the following:
  > **Note:** You may need to use `python3` before your commands to ensure you use the correct Python path. e.g. `python3 --version`
  ```bash
  python --version
  -- or --
  python3 --version
  ```

  We recommend using [PyPI][pypi] to install the Slack Developer Kit for Python.
  ```bash
  $ pip3 install slackclient
  ```


pkgId: bb869dbf99298a07df225e6d4279e744c4ca26e82cdc69680306614c622b5e50
name: python-slackeventsapi
arch: src
version: 3.0.1
epoch: 0
release: 1
summary: Python Slack Events API adapter for Flask
url: http://github.com/slackapi/python-slack-events-api
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-2c823a7c-f460-4fba-9c1f-b874603c4d95
location_href: 00011069-python-slackeventsapi/python-slackeventsapi-3.0.1-1.src.rpm
checksum_type: sha256
description:
  The Slack Events Adapter is a Python-based solution to receive and parse events
  from Slack’s Events API. This library uses an event emitter framework to allow
  you to easily process Slack events by simply attaching functions
  to event listeners.
  This adapter enhances and simplifies Slack's Events API by incorporating useful best practices, patterns, and opportunities to abstract out common tasks.
  💡  We wrote a `blog post which explains how`_ the Events API can help you, why we built these tools, and how you can use them to build production-ready Slack apps.


pkgId: 9891c31b2c567008d9a90adc3bcafc270b7fb1b98a4a2fa497758f865e5400e2
name: python-slicer
arch: src
version: 0.0.7
epoch: 0
release: 1
summary: A small package for big slicing.
url: https://github.com/interpretml/slicer
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-096781f0-f6fa-406d-875e-2ff7b5efa7c8
location_href: 00009266-python-slicer/python-slicer-0.0.7-1.src.rpm
checksum_type: sha256
description:
  ![License](https://img.shields.io/github/license/interpretml/slicer.svg?style=flat-square)
  ![Python Version](https://img.shields.io/pypi/pyversions/slicer.svg?style=flat-square)
  ![Package Version](https://img.shields.io/pypi/v/slicer.svg?style=flat-square)
  ![Build Status](https://img.shields.io/azure-devops/build/ms/interpret/405/master?style=flat-square)
  ![Coverage](https://img.shields.io/azure-devops/coverage/ms/interpret/405/master.svg?style=flat-square)
  ![Maintenance](https://img.shields.io/maintenance/yes/2020.svg?style=flat-square)

  *(Equal Contribution) Samuel Jenkins & Harsha Nori & Scott Lundberg*

  **slicer** wraps tensor-like objects and provides a uniform slicing interface via `__getitem__`.

  <br/>
  It supports many data types including:

  &nbsp;&nbsp;
  [numpy](https://github.com/numpy/numpy) |
  [pandas](https://github.com/pandas-dev/pandas) |
  [scipy](https://docs.scipy.org/doc/scipy/reference/sparse.html) |
  [pytorch](https://github.com/pytorch/pytorch) |
  [list](https://github.com/python/cpython) |
  [tuple](https://github.com/python/cpython) |
  [dict](https://github.com/python/cpython)

  And enables upgraded slicing functionality on its objects:
  ```python

  S(df)[:, ["Age", "Income"]]


  S(nested_list)[..., :5]
  ```

  It can also simultaneously slice many objects at once:
  ```python

  S(first=df, second=ar)[0, :]
  ```

  This package has **0** dependencies. Not even one.



  Python 3.6+ | Linux, Mac, Windows
  ```sh
  pip install slicer
  ```



  Basic anonymous slicing:
  ```python
  from slicer import Slicer as S
  li = [[1, 2, 3], [4, 5, 6]]
  S(li)[:, 0:2].o

  di = {'x': [1, 2, 3], 'y': [4, 5, 6]}
  S(di)[:, 0:2].o

  ```

  Basic named slicing:
  ```python
  import pandas as pd
  import numpy as np
  df = pd.DataFrame({'A': [1, 3], 'B': [2, 4]})
  ar = np.array([[5, 6], [7, 8]])
  sliced = S(first=df, second=ar)[0, :]
  sliced.first



  sliced.second

  ```

  Real example:
  ```python
  from slicer import Slicer as S
  from slicer import Alias as A

  data = [[1, 2], [3, 4]]
  values = [[5, 6], [7, 8]]
  identifiers = ["id1", "id1"]
  instance_names = ["r1", "r2"]
  feature_names = ["f1", "f2"]
  full_name = "A"

  slicer = S(
      data=data,
      values=values,
      
      
      identifiers=A(identifiers, 0),
      instance_names=A(instance_names, 0),
      feature_names=A(feature_names, 1),
      full_name=full_name,
  )

  sliced = slicer[:, 1]  # Tensor-like parallel slicing on all objects
  assert sliced.data == [2, 4]
  assert sliced.instance_names == ["r1", "r2"]
  assert sliced.feature_names == "f2"
  assert sliced.values == [6, 8]

  sliced = slicer["r1", "f2"]  # Example use of aliasing
  assert sliced.data == 2
  assert sliced.feature_names == "f2"
  assert sliced.instance_names == "r1"
  assert sliced.values == 6
  ```


  Raise an issue on GitHub, or contact us at interpret@microsoft.com


pkgId: f9be123c7fabd6ab1c46f645a113c79a57a1cfc3bd60bb897f1f682d74e6935f
name: python-slimit
arch: src
version: 0.8.1
epoch: 0
release: 1
summary: SlimIt - JavaScript minifier
url: http://slimit.readthedocs.org
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-23465f4b-d134-4a1f-9be8-e365320777d5
location_href: 00013436-python-slimit/python-slimit-0.8.1-1.src.rpm
checksum_type: sha256
description:
  `SlimIt` is a JavaScript minifier written in Python.
  It compiles JavaScript into more compact code so that it downloads
  and runs faster.
  `SlimIt` also provides a library that includes a JavaScript parser,
  lexer, pretty printer and a tree visitor.
  `http://slimit.readthedocs.org/ <http://slimit.readthedocs.org/>`_


pkgId: 3f255d5aeb76441436bdfc69e433f2889512ae8c0bfe0c2c3d620044521de073
name: python-slixmpp
arch: src
version: 1.8.3
epoch: 0
release: 1
summary: Slixmpp is an elegant Python library for XMPP (aka Jabber).
url: https://lab.louiz.org/poezio/slixmpp
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-8315b79f-5324-4eca-a689-3dad4f11b2fb
location_href: 00005110-python-slixmpp/python-slixmpp-1.8.3-1.src.rpm
checksum_type: sha256
description:
  Slixmpp can make use of cython to improve performance on critical modules.
  To do that, **cython3** is necessary along with **libidn** headers.
  Otherwise, no compilation is needed. Building is done by running setup.py::
      python3 setup.py build_ext --inplace


pkgId: 7c91607eee951bb80d94e1c4b7c49c440c386ff7e16340a1fdf24edc05626486
name: python-smbprotocol
arch: src
version: 1.10.1
epoch: 0
release: 1
summary: Interact with a server using the SMB 2/3 Protocol
url: https://pypi.org/project/smbprotocol/
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e39f9ae4-2e15-4b3a-8dde-e0f85629a3b8
location_href: 00010516-python-smbprotocol/python-smbprotocol-1.10.1-1.src.rpm
checksum_type: sha256
description:
  SMBv2 and v3 Client for Python.


  [![Test workflow](https://github.com/jborean93/smbprotocol/actions/workflows/ci.yml/badge.svg)](https://github.com/jborean93/smbprotocol/actions/workflows/ci.yml)
  [![codecov](https://codecov.io/gh/jborean93/smbprotocol/branch/master/graph/badge.svg)](https://codecov.io/gh/jborean93/smbprotocol)
  [![PyPI version](https://badge.fury.io/py/smbprotocol.svg)](https://badge.fury.io/py/smbprotocol)
  [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/jborean93/smbprotocol/blob/master/LICENSE)

  SMB is a network file sharing protocol and has numerous iterations over the
  years. This library implements the SMBv2 and SMBv3 protocol based on the
  [MS-SMB2](https://msdn.microsoft.com/en-us/library/cc246482.aspx) document.




  * Negotiation of the SMB 2.0.2 protocol to SMB 3.1.1 (Windows 10/Server 2016)
  * Authentication with both NTLM and Kerberos
  * Message signing
  * Message encryption (SMB 3.x.x+)
  * Connect to a Tree/Share
  * Opening of files, pipes and directories
  * Set create contexts when opening files
  * Read and writing of files and pipes
  * Sending IOCTL commands
  * Sending of multiple messages in one packet (compounding)
  * Experimental support for both standalone and DFS server shares

  This is definitely not feature complete as SMB is quite a complex protocol, see
  backlog for features that would be nice to have in this library.




  * Python 3.7+
  * For Kerberos auth on Linux
      * [python-gssapi](https://github.com/pythongssapi/python-gssapi)
      * [pykrb5](https://github.com/jborean93/pykrb5)

  To use Kerberos authentication on Linux, further dependencies are required, to install these dependencies run

  ```bash

  sudo apt-get install gcc python-dev libkrb5-dev
  pip install smbprotocol[kerberos]


  sudo yum install gcc python-devel krb5-devel krb5-workstation python-devel
  pip install smbprotocol[kerberos]
  ```

  Kerberos auth with Windows should just work out of the box with the `pyspnego` library but on Linux, the
  `python-gssapi` library must be installed and `smbprotocol` requires a particular GSSAPI extension to be available to
  work. This extension should be installed on the majority of MIT or Heimdal Kerberos installs but that is not a
  guarantee. To verify that Kerberos is available on Linux you can run the following check in a Python console:

  ```python
  try:
      from gssapi.raw import inquire_sec_context_by_oid
      print("python-gssapi extension is available")
  except ImportError as exc:
      print("python-gssapi extension is not available: %s" % str(exc))
  ```

  If it isn't available, then either a newer version of the system's gssapi implementation needs to be setup and
  python-gssapi compiled against that newer version. In the absence of this extension, only NTLM auth is used.




  To install smbprotocol, simply run

  ```bash
  pip install smbprotocol


  pip install smbprotocol[kerberos]
  ```

  This will download the required packages that are used in this package and get
  your Python environment ready to go.




  One of the first steps as part of the SMB protocol is to negotiate the dialect
  used and other features that are available. Currently smbprotocol supports
  the following dialects;

  * `2.0.0`: Added with Server 2008/Windows Vista
  * `2.1.0`: Added with Server 2008 R2/Windows 7
  * `3.0.0`: Added with Server 2012/Windows 8
  * `3.0.2`: Added with Server 2012 R2/Windows 8.1
  * `3.1.1`: Added with Server 2016/Windows10

  Each dialect adds in more features to the protocol where some are minor but
  some are major. One major changes is in Dialect 3.x where it added message
  encryption. Message encryption is set to True by default and needs to be
  overridden when creating a Session object for the older dialects.

  By default, the negotiation process will use the latest dialect that is
  supported by the server but this can be overridden if required. When this is
  done by the following code

  ```python
  import uuid

  from smbprotocol.connection import Connection, Dialects

  connection = Connection(uuid.uuid4(), "server", 445)
  connection.connect(Dialects.SMB_3_0_2)
  ```

  While you shouldn't want to downgrade to an earlier version, this does allow
  you to set a minimum dialect version if required.




  There are 2 different APIs you can use with this library.

  * `smbprotocol`: Low level interface that can do whatever you want but quite verbose
  * `smbclient`: Higher level interface that implements the builtin `os` and `os.path` file system functions but for SMB support

  The `examples` folder contains some examples of both the high and low level
  interface but for everyday user's it is recommended to use `smbclient` as it
  is a lot simpler.



  The higher level interface `smbclient` is designed to make this library easier
  for people to use for simple and common use cases. It is designed to replicate
  the builtin `os` and `os.path` filesystem functions like `os.open()`,
  `os.stat()`, and `os.path.exists()`. It is also designed to handle connections
  to a DFS target unlike `smbprotocol`.

  A connection made by `smbclient` is kept in a pool and re-used for future
  requests to the same server until the Python process exists. This makes
  authentication simple and only required for the first call to the server. Any
  DFS referrals are also cached in that Python process. This optimises any
  future requests to that same DFS namespace.

  The functions in `smbclient` have a global config object that can be used to
  set any connection defaults to use for any future connections. It can also be
  used to specify any domain based DFS settings for more advanced setups. It is
  recommended to use `ClientConfig()` to set any global credentials like so:

  ```python
  import smbclient

  smbclient.ClientConfig(username='user', password='password')
  ```

  The `ClientConfig` is a singleton and any future instanciations of that
  object will just update the keys being set. You can set the following keys on
  the `ClientConfig`:

  * `client_guid`: The client GUID to identify the client to the server on a new connection
  * `username`: The default username to use when creating a new SMB session if explicit credentials weren't set
  * `password`: The default password to use for authentication
  * `domain_controller`: The domain controller hostname. This is useful for environments with DFS servers as it is used to identify the DFS domain information automatically
  * `skip_dfs`: Whether to skip doing any DFS resolution, useful if there is a bug or you don't want to waste any roundtrip requesting referrals
  * `auth_protocol`: The authentication protocol to use; `negotiate` (default), `kerberos`, or `ntlm`
  * `require_secure_negotiate`: Control whether the client validates the negotiation info when connecting to a share (default: `True`).
      * More information can be found on [SMB3 Secure Dialect Negotiation](https://docs.microsoft.com/en-us/archive/blogs/openspecification/smb3-secure-dialect-negotiation)

  As well as setting the default credentials on the `ClientConfig` you can also
  specify the credentials and other connection parameters on each `smbclient`
  function or when registering a new server. These functions accept the
  following kwargs:

  * `username`: The username used to connect to the share
  * `password`: The password used to connect to the share
  * `port`: Override the default port (`445`) to connect to
  * `encrypt`: Whether to force encryption on the connection, requires SMBv3 or newer on the remote server (default: `False`)
  * `connection_timeout`: Override the connection timeout in seconds (default: `60`)

  If using Kerberos authentication and a Kerberos ticket has already set by
  `kinit` then `smbclient` will automatically use those credentials without
  having to be explicitly set. If no ticket has been retrieved or you wish to use
  different credentials then set the default credentials on the `ClientConfig`
  or specify `username` and `password` on the first request to the server.

  For example I only need to set the credentials on the first request to create
  the directory and not for the subsequent file creation in that dir.

  ```python
  import smbclient


  smbclient.ClientConfig(username='user', password='pass')


  smbclient.register_session("server", username="user", password="pass")

  smbclient.mkdir(r"\\server\share\directory", username="user", password="pass")

  with smbclient.open_file(r"\\server\share\directory\file.txt", mode="w") as fd:
      fd.write(u"file contents")
  ```

  If you wish to reset the cache you can either start a new Python process or
  call `smbclient.reset_connection_cache()` to close all the connections that
  have been cached by the client.




  This library makes use of the builtin Python logging facilities. Log messages
  are logged to the `smbprotocol` named logger as well as `smbprotocol.*` where
  `*` is each python script in the `smbprotocol` directory.

  These logs are really useful when debugging issues as they give you a more
  step by step snapshot of what it is doing and what may be going wrong. The
  debug side will also print out a human readable string of each SMB packet that
  is sent out from the client so it can get very verbose.




  To this module, you need to install some pre-requisites first. This can be done
  by running;

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


  pip install tox
  ```

  From there to run the basic tests run;

  ```bash
  py.test -v --pep8 --cov smbprotocol --cov-report term-missing


  tox
  ```

  There are extra tests that only run when certain environment variables are set.
  To run these tests set the following variables;

  * `SMB_USER`: The username to authenticate with
  * `SMB_PASSWORD`: The password to authenticate with
  * `SMB_SERVER`: The IP or hostname of the server to authenticate with
  * `SMB_PORT`: The port the SMB server is listening on, default is `445`
  * `SMB_SHARE`: The name of the share to connect to, a share with this name must exist as well as a share with the name`$SMB_SHARE-encrypted` must also exist that forces encryption

  From here running `tox` or `py.test` with these environment variables set will
  activate the integration tests.

  This requires either Windows 10 or Server 2016 as they support Dialect 3.1.1
  which is required by the tests.

  If you don't have access to a Windows host, you can use Docker to setup a
  Samba container and use that as part of the tests. To do so run the following
  bash commands;

  ```bash
  source ./build_helpers/lib.sh

  lib::setup::smb_server
  ```

  This command will also set the required `SMB_*` env vars used in testing.




  Here is a list of features that I would like to incorporate, PRs are welcome
  if you want to implement them yourself;

  * Multiple channel support to speed up large data transfers
  * Lots and lots more...

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


pkgId: b754c3e48ec5e68fda2b3594a6eaffdb028c7dc1753f57fb4ff5943cf37185e7
name: python-smbus2
arch: src
version: 0.4.2
epoch: 0
release: 1
summary: smbus2 is a drop-in replacement for smbus-cffi/smbus-python in pure Python
url: https://github.com/kplindegaard/smbus2
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d435ecff-22d5-45f5-9a0e-40b8d6198a7f
location_href: 00013647-python-smbus2/python-smbus2-0.4.2-1.src.rpm
checksum_type: sha256
description:
  A drop-in replacement for smbus-cffi/smbus-python in pure Python

  [![Build Status](https://github.com/kplindegaard/smbus2/actions/workflows/python-build-test.yml/badge.svg?branch=master)](https://github.com/kplindegaard/smbus2/actions/workflows/python-build-test.yml)
  [![Documentation Status](https://readthedocs.org/projects/smbus2/badge/?version=latest)](http://smbus2.readthedocs.io/en/latest/?badge=latest)
  [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=kplindegaard_smbus2&metric=alert_status)](https://sonarcloud.io/dashboard?id=kplindegaard_smbus2)

  ![Python Verions](https://img.shields.io/pypi/pyversions/smbus2.svg)
  [![PyPi Version](https://img.shields.io/pypi/v/smbus2.svg)](https://pypi.org/project/smbus2/)
  [![PyPI - Downloads](https://img.shields.io/pypi/dm/smbus2)](https://pypi.org/project/smbus2/)



  smbus2 is (yet another) pure Python implementation of of the [python-smbus](http://www.lm-sensors.org/browser/i2c-tools/trunk/py-smbus/) package.

  It was designed from the ground up with two goals in mind:

  1. It should be a drop-in replacement of smbus. The syntax shall be the same.
  2. Use the inherent i2c structs and unions to a greater extent than other pure Python implementations like [pysmbus](https://github.com/bjornt/pysmbus) does. By doing so, it will be more feature complete and easier to extend.

  Currently supported features are:

  * Get i2c capabilities (I2C_FUNCS)
  * SMBus Packet Error Checking (PEC) support
  * read_byte
  * write_byte
  * read_byte_data
  * write_byte_data
  * read_word_data
  * write_word_data
  * read_i2c_block_data
  * write_i2c_block_data
  * write_quick
  * process_call
  * read_block_data
  * write_block_data
  * block_process_call
  * i2c_rdwr - *combined write/read transactions with repeated start*

  It is developed on Python 2.7 but works without any modifications in Python 3.X too.

  More information about updates and general changes are recorded in the [change log](https://github.com/kplindegaard/smbus2/blob/master/CHANGELOG.md).



  smbus2 installs next to smbus as the package, so it's not really a 100% replacement. You must change the module name.



  ```python
  from smbus2 import SMBus


  bus = SMBus(1)
  b = bus.read_byte_data(80, 0)
  print(b)
  bus.close()
  ```



  This is the very same example but safer to use since the smbus will be closed automatically when exiting the with block.

  ```python
  from smbus2 import SMBus

  with SMBus(1) as bus:
      b = bus.read_byte_data(80, 0)
      print(b)
  ```



  Same example with Packet Error Checking enabled.

  ```python
  from smbus2 import SMBus

  with SMBus(1) as bus:
      bus.pec = 1  # Enable PEC
      b = bus.read_byte_data(80, 0)
      print(b)
  ```



  You can read up to 32 bytes at once.

  ```python
  from smbus2 import SMBus

  with SMBus(1) as bus:
      
      block = bus.read_i2c_block_data(80, 0, 16)
      
      print(block)
  ```



  ```python
  from smbus2 import SMBus

  with SMBus(1) as bus:
      
      data = 45
      bus.write_byte_data(80, 0, data)
  ```



  It is possible to write 32 bytes at the time, but I have found that error-prone. Write less and add a delay in between if you run into trouble.

  ```python
  from smbus2 import SMBus

  with SMBus(1) as bus:
      
      data = [1, 2, 3, 4, 5, 6, 7, 8]
      bus.write_i2c_block_data(80, 0, data)
  ```



  Starting with v0.2, the smbus2 library also has support for combined read and write transactions. *i2c_rdwr* is not really a SMBus feature but comes in handy when the master needs to:

  1. read or write bulks of data larger than SMBus' 32 bytes limit.
  1. write some data and then read from the slave with a repeated start and no stop bit between.

  Each operation is represented by a *i2c_msg* message object.




  ```python
  from smbus2 import SMBus, i2c_msg

  with SMBus(1) as bus:
      
      msg = i2c_msg.read(80, 64)
      bus.i2c_rdwr(msg)

      
      msg = i2c_msg.write(80, [65])
      bus.i2c_rdwr(msg)

      
      msg = i2c_msg.write(80, [65, 66, 67, 68])
      bus.i2c_rdwr(msg)
  ```



  To perform dual operations just add more i2c_msg instances to the bus call:

  ```python
  from smbus2 import SMBus, i2c_msg


  write = i2c_msg.write(80, [40, 50])
  read = i2c_msg.read(80, 2)
  with SMBus(1) as bus:
      bus.i2c_rdwr(write, read)
  ```



  All data is contained in the i2c_msg instances. Here are some data access alternatives.

  ```python

  msg = i2c_msg.write(60, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
  data = list(msg)  # data = [1, 2, 3, ...]
  print(len(data))  # => 10


  for value in msg:
      print(value)


  for k in range(msg.len):
      print(msg.buf[k])
  ```



  From [PyPi](https://pypi.org/) with `pip`:

  ```
  pip install smbus2
  ```

  From [conda-forge](https://anaconda.org/conda-forge) using `conda`:

  ```
  conda install -c conda-forge smbus2
  ```

  Installation from source code is straight forward:

  ```
  python setup.py install
  ```


pkgId: 34f6a0fd9c9786d13bb32b8aac82501e9ae789ba08b275f2dfc0257eaf3d4905
name: python-smmap
arch: src
version: 5.0.0
epoch: 0
release: 1
summary: A pure Python implementation of a sliding window memory map manager
url: https://github.com/gitpython-developers/smmap
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-bc34ba88-8ae0-4101-9fcf-26cbb08631a3
location_href: 00005118-python-smmap/python-smmap-5.0.0-1.src.rpm
checksum_type: sha256
description:
  When reading from many possibly large files in a fashion similar to random access, it is usually the fastest and most efficient to use memory maps.

  Although memory maps have many advantages, they represent a very limited system resource as every map uses one file descriptor, whose amount is limited per process. On 32 bit systems, the amount of memory you can have mapped at a time is naturally limited to theoretical 4GB of memory, which may not be enough for some applications.




  * **System resources (file-handles) are likely to be leaked!** This is due to the library authors reliance on a deterministic `__del__()` destructor.
  * The memory access is read-only by design.




  ![Python package](https://github.com/gitpython-developers/smmap/workflows/Python%20package/badge.svg)

  Smmap wraps an interface around mmap and tracks the mapped files as well as the amount of clients who use it. If the system runs out of resources, or if a memory limit is reached, it will automatically unload unused maps to allow continued operation.

  To allow processing large files even on 32 bit systems, it allows only portions of the file to be mapped. Once the user reads beyond the mapped region, smmap will automatically map the next required region, unloading unused regions using a LRU algorithm.

  Although the library can be used most efficiently with its native interface, a Buffer implementation is provided to hide these details behind a simple string-like interface.

  For performance critical 64 bit applications, a simplified version of memory mapping is provided which always maps the whole file, but still provides the benefit of unloading unused mappings on demand.





  * Python 3.6+
  * OSX, Windows or Linux

  The package was tested on all of the previously mentioned configurations.



  [![Documentation Status](https://readthedocs.org/projects/smmap/badge/?version=latest)](https://readthedocs.org/projects/smmap/?badge=latest)

  Its easiest to install smmap using the [pip](http://www.pip-installer.org/en/latest) program:

  ```bash
  $ pip install smmap
  ```

  As the command will install smmap in your respective python distribution, you will most likely need root permissions to authorize the required changes.

  If you have downloaded the source archive, the package can be installed by running the `setup.py` script:

  ```bash
  $ python setup.py install
  ```

  It is advised to have a look at the **Usage Guide** for a brief introduction on the different database implementations.





  The project is home on github at https://github.com/gitpython-developers/smmap .

  The latest source can be cloned from github as well:

  * git://github.com/gitpython-developers/smmap.git


  For support, please use the git-python mailing list:

  * http://groups.google.com/group/git-python


  Issues can be filed on github:

  * https://github.com/gitpython-developers/smmap/issues

  A link to the pypi page related to this repository:

  * https://pypi.org/project/smmap/




  *smmap* is licensed under the New BSD License.


pkgId: 2b9039e6215cb4d2e7f0f8e4d2f2832aa136ca829eceec73edc637632db33834
name: python-smtpapi
arch: src
version: 0.4.12
epoch: 0
release: 1
summary: Simple wrapper to use SendGrid SMTP API
url: https://github.com/sendgrid/smtpapi-python/
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-409f0ca2-0d7f-4eac-bfa0-94c78e4a479c
location_href: 00012700-python-smtpapi/python-smtpapi-0.4.12-1.src.rpm
checksum_type: sha256
description:
  **The default branch name for this repository has been changed to `main` as of 07/27/2020.**
  All the updates to this module are documented in our `CHANGELOG`_.


pkgId: 101fb053a16efa9519c0a4a7abfd71a2e8c8574a66af2c303da2c1e53785cd75
name: python-snack
arch: src
version: 0.0.3
epoch: 0
release: 1
description: Quick and dirty visualization of large-scale datasets via concept embeddings
url: http://vision.cornell.edu/se3/projects/concept-embeddings/
rpm_license: BSD License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d9ecf5f8-2201-4306-b3f2-a6e5c0170e6a
location_href: 00005119-python-snack/python-snack-0.0.3-1.src.rpm
checksum_type: sha256
summary:
  Stochastic Neighbor and Crowd Kernel (SNaCK) embeddings: Quick and dirty visualization of large-scale datasets via concept embeddings


pkgId: 0c07fb03086d8bc625b0eef8841cad6aec98970b14e411dde48ede2f0458cf7d
name: python-snallygaster
arch: src
version: 0.0.12
epoch: 0
release: 1
summary: Tool to scan for secret files on HTTP servers
url: https://github.com/hannob/snallygaster
rpm_license: CC0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-40a7fae8-3998-416a-83fa-f1be993f6bbe
location_href: 00005120-python-snallygaster/python-snallygaster-0.0.12-1.src.rpm
checksum_type: sha256
description:
  snallygaster is a tool that looks for files accessible on web servers that shouldn't be public
  and can pose a security risk.
  Typical examples include publicly accessible git repositories, backup files potentially containing
  passwords or database dumps. In addition, it contains a few checks for other security vulnerabilities.
  As an introduction to these kinds of issues you may want to watch this talk:
  * [Attacking with HTTP Requests](https://www.youtube.com/watch?v=Bppr9rbmwz4)
  See the [TESTS.md](TESTS.md) file for an overview of all tests and links to further information
  about the issues.


pkgId: 3ba2779b1691e6377030ab615b0af4f46721ebd604501ebc4860d12bd4ad33ef
name: python-snappy
arch: src
version: 3.0.3
epoch: 0
release: 1
summary: Studying the topology and geometry of 3-manifolds, with a focus on hyperbolic structures.
url: http://snappy.computop.org
rpm_license: GPLv2+
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-32e50441-4aec-448c-9e32-9c3eb97883c8
location_href: 00005121-python-snappy/python-snappy-3.0.3-1.src.rpm
checksum_type: sha256
description:
  SnapPy is a package for studying the topology and geometry of
  3-manifolds, with a focus on hyperbolic structures.  It is based on
  the SnapPea kernel written by `Jeff Weeks
  <http://www.geometrygames.org>`_.
  Complete documentation is available on the web including the `main
  page <http://snappy.computop.org>`_ and an `installation guide
  <http://snappy.computop.org/installing.html>`_.  You can also browse
  the `source code <https://github.com/3-manifolds/SnapPy>`_.


pkgId: 90de1e85d33a06f3a30d4b8d69d02d8077922148779d0b55f4433f715c06c1e4
name: python-snapshottest
arch: src
version: 0.6.0
epoch: 0
release: 1
summary: Snapshot testing for pytest, unittest, Django, and Nose
url: https://github.com/syrusakbary/snapshottest
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-813d08c0-5dc6-4d56-8ed1-fc1be7f94e55
location_href: 00010100-python-snapshottest/python-snapshottest-0.6.0-1.src.rpm
checksum_type: sha256
description:
  [travis-image]: https://img.shields.io/travis/syrusakbary/snapshottest.svg?style=flat
  [travis-url]: https://travis-ci.org/syrusakbary/snapshottest
  [pypi-image]: https://img.shields.io/pypi/v/snapshottest.svg?style=flat
  [pypi-url]: https://pypi.python.org/pypi/snapshottest


  Snapshot testing is a way to test your APIs without writing actual test cases.

  1. A snapshot is a single state of your API, saved in a file.
  2. You have a set of snapshots for your API endpoints.
  3. Once you add a new feature, you can generate *automatically* new snapshots for the updated API.



      $ pip install snapshottest




  ```python
  from snapshottest import TestCase

  class APITestCase(TestCase):
      def test_api_me(self):
          """Testing the API for /me"""
          my_api_response = api.client.get('/me')
          self.assertMatchSnapshot(my_api_response)

          
          my_gpg_response = api.client.get('/me?gpg_key')
          self.assertMatchSnapshot(my_gpg_response, 'gpg_response')
  ```

  If you want to update the snapshots automatically you can use the `nosetests --snapshot-update`.

  Check the [Unittest example](https://github.com/syrusakbary/snapshottest/tree/master/examples/unittest).



  ```python
  def test_mything(snapshot):
      """Testing the API for /me"""
      my_api_response = api.client.get('/me')
      snapshot.assert_match(my_api_response)

      
      my_gpg_response = api.client.get('/me?gpg_key')
      snapshot.assert_match(my_gpg_response, 'gpg_response')
  ```

  If you want to update the snapshots automatically you can use the `--snapshot-update` config.

  Check the [Pytest example](https://github.com/syrusakbary/snapshottest/tree/master/examples/pytest).


  Add to your settings:
  ```python
  TEST_RUNNER = 'snapshottest.django.TestRunner'
  ```
  To create your snapshottest:
  ```python
  from snapshottest.django import TestCase

  class APITestCase(TestCase):
      def test_api_me(self):
          """Testing the API for /me"""
          my_api_response = api.client.get('/me')
          self.assertMatchSnapshot(my_api_response)
  ```
  If you want to update the snapshots automatically you can use the `python manage.py test --snapshot-update`.
  Check the [Django example](https://github.com/syrusakbary/snapshottest/tree/master/examples/django_project).



  Set the environment variable `ANSI_COLORS_DISABLED` (to any value), e.g.

      ANSI_COLORS_DISABLED=1 pytest




  After cloning this repo and configuring a virtualenv for snapshottest (optional, but highly recommended), ensure dependencies are installed by running:

  ```sh
  make install
  ```

  After developing, the full test suite can be evaluated by running:

  ```sh
  make lint

  make test
  ```



  This package is heavily inspired in [jest snapshot testing](https://facebook.github.io/jest/docs/snapshot-testing.html).



  > Most of this content is taken from the [Jest snapshot blogpost](https://facebook.github.io/jest/blog/2016/07/27/jest-14.html).

  We want to make it as frictionless as possible to write good tests that are useful.
  We observed that when engineers are provided with ready-to-use tools, they end up writing more tests, which in turn results in stable and healthy code bases.

  However engineers frequently spend more time writing a test than the component itself. As a result many people stopped writing tests altogether which eventually led to instabilities.

  A typical snapshot test case for a mobile app renders a UI component, takes a screenshot, then compares it to a reference image stored alongside the test. The test will fail if the two images do not match: either the change is unexpected, or the screenshot needs to be updated to the new version of the UI component.




  A similar approach can be taken when it comes to testing your APIs.
  Instead of rendering the graphical UI, which would require building the entire app, you can use a test renderer to quickly generate a serializable value for your API response.




  [MIT License](https://github.com/syrusakbary/snapshottest/blob/master/LICENSE)

  [![coveralls][coveralls-image]][coveralls-url]

  [coveralls-image]: https://coveralls.io/repos/syrusakbary/snapshottest/badge.svg?branch=master&service=github
  [coveralls-url]: https://coveralls.io/github/syrusakbary/snapshottest?branch=master


pkgId: e33e6499b92c67567205324347cea1e191fcfdc73ba6b7a3349c4698241e6437
name: python-snorkel
arch: src
version: 0.9.9
epoch: 0
release: 1
summary: A system for quickly generating training data with weak supervision
url: https://snorkel.org
rpm_license: Apache License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0ee37b36-1a1e-43c0-8518-8d6718ef7707
location_href: 00012847-python-snorkel/python-snorkel-0.9.9-1.src.rpm
checksum_type: sha256
description:
  <img src="figs/logo_01.png" width="150"/>

  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/snorkel)
  ![PyPI](https://img.shields.io/pypi/v/snorkel)
  ![Conda](https://img.shields.io/conda/v/conda-forge/snorkel)
  [![CircleCI](https://circleci.com/gh/snorkel-team/snorkel/tree/master.svg?style=svg)](https://circleci.com/gh/snorkel-team/snorkel/tree/master)
  [![docs](https://readthedocs.org/projects/snorkel/badge/?version=master)](https://snorkel.readthedocs.io/en/master)
  [![coverage](https://codecov.io/gh/snorkel-team/snorkel/branch/master/graph/badge.svg)](https://codecov.io/gh/snorkel-team/snorkel/branch/master)
  [![license](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
  [![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/snorkel)

  ***Programmatically Build and Manage Training Data***



  **The Snorkel team is now focusing their efforts on Snorkel Flow, an end-to-end AI application development platform based on the core ideas behind Snorkel—you can check it out [here](https://snorkel.ai) or [join us](www.snorkel.ai/careers) in building it!**

  The [Snorkel project](https://snorkel.ai/how-to-use-snorkel-to-build-ai-applications/) started at Stanford in 2015 with a simple technical bet: that it would increasingly be the **training data**, not the models, algorithms, or infrastructure, that decided whether a machine learning project succeeded or failed. Given this premise, we set out to explore the radical idea that you could bring mathematical and systems structure to the messy and often entirely manual process of training data creation and management, starting by empowering users to **programmatically label, build, and manage** training data.

  To say that the Snorkel project succeeded and expanded beyond what we had ever expected would be an understatement. The basic goals of a research repo like Snorkel are to provide a minimum viable framework for testing and validating hypotheses. Four years later, we’ve been fortunate to do not just this, but to develop and deploy early versions of Snorkel in partnership with some of the world’s leading organizations like [Google](https://ai.googleblog.com/2019/03/harnessing-organizational-knowledge-for.html), [Intel](https://dl.acm.org/doi/abs/10.1145/3329486.3329492), [Stanford Medicine](https://www.cell.com/patterns/fulltext/S2666-3899(20)30019-2), and many more; author over [thirty-six peer-reviewed publications](https://snorkel.ai/technology.html) on our findings around Snorkel and related innovations in weak supervision modeling, data augmentation, multi-task learning, and more; be included in courses at top-tier universities; support production deployments in systems that you’ve likely used in the last few hours; and work with an amazing community of researchers and practitioners from industry, medicine, government, academia, and beyond.

  However, we realized increasingly–from conversations with users in weekly office hours, workshops, online discussions, and industry partners–that the Snorkel project was just the very first step. The ideas behind Snorkel change not just how you label training data, but so much of the entire lifecycle and pipeline of building, deploying, and managing ML: how users inject their knowledge; how models are constructed, trained, inspected, versioned, and monitored; how entire pipelines are developed iteratively; and how the full set of stakeholders in any ML deployment, from subject matter experts to ML engineers, are incorporated into the process.

  Over the last year, we have been building the platform to support this broader vision: [Snorkel Flow](https://snorkel.ai/snorkel-flow-platform/), an end-to-end machine learning platform for developing and deploying AI applications. Snorkel Flow incorporates many of the concepts of the Snorkel project with a range of newer techniques around weak supervision modeling, data augmentation, multi-task learning, data slicing and structuring, monitoring and analysis, and more, all of which integrate in a way that is greater than the sum of its parts–and that we believe makes ML truly faster, more flexible, and more practical than ever before.

  Moving forward, we will be focusing our efforts on Snorkel Flow. We are extremely grateful for all of you that have contributed to the Snorkel project, and are excited for you to check out our next chapter [here](https://snorkel.ai).



  * [Snorkel website](https://snorkel.org)
  * [Snorkel tutorials](https://github.com/snorkel-team/snorkel-tutorials)
  * [Snorkel documentation](https://snorkel.readthedocs.io/)
  * [Snorkel community forum](https://spectrum.chat/snorkel)
  * [Snorkel mailing list](https://groups.google.com/forum/#!forum/snorkel-ml)
  * [Snorkel Twitter](https://twitter.com/SnorkelAI)


  The quickest way to familiarize yourself with the Snorkel library is to walk through the [Get Started](https://snorkel.org/get-started/) page on the Snorkel website, followed by the full-length tutorials in the [Snorkel tutorials](https://github.com/snorkel-team/snorkel-tutorials) repository.
  These tutorials demonstrate a variety of tasks, domains, labeling techniques, and integrations that can serve as templates as you apply Snorkel to your own applications.




  Snorkel requires Python 3.6 or later. To install Snorkel, we recommend using `pip`:

  ```bash
  pip install snorkel
  ```

  or `conda`:

  ```bash
  conda install snorkel -c conda-forge
  ```

  For information on installing from source and contributing to Snorkel, see our
  [contributing guidelines](./CONTRIBUTING.md).

  <details><summary><b>Details on installing with <tt>conda</tt></b></summary>
  <p>

  The following example commands give some more color on installing with `conda`.
  These commands assume that your `conda` installation is Python 3.6,
  and that you want to use a virtual environment called `snorkel-env`.

  ```bash

  conda create --yes -n snorkel-env python=3.6
  conda activate snorkel-env


  conda install pytorch==1.1.0 -c pytorch
  conda install snorkel==0.9.0 -c conda-forge
  ```

  </p>
  </details>

  <details><summary><b>A quick note for Windows users</b></summary>
  <p>

  If you're using Windows, we highly recommend using Docker
  (you can find an example in our
  [tutorials repo](https://github.com/snorkel-team/snorkel-tutorials/blob/master/Dockerfile))
  or the [Linux subsystem](https://docs.microsoft.com/en-us/windows/wsl/faq).
  We've done limited testing on Windows, so if you want to contribute instructions
  or improvements, feel free to open a PR!

  </p>
  </details>




  We use [GitHub Issues](https://github.com/snorkel-team/snorkel/issues) for posting bugs and feature requests — anything code-related.
  Just make sure you search for related issues first and use our Issues templates.
  We may ask for contributions if a prompt fix doesn't fit into the immediate roadmap of the core development team.


  We welcome contributions from the Snorkel community!
  This is likely the fastest way to get a change you'd like to see into the library.

  Small contributions can be made directly in a pull request (PR).
  If you would like to contribute a larger feature, we recommend first creating an issue with a proposed design for discussion.
  For ideas about what to work on, we've labeled specific issues as [`help wanted`](https://github.com/snorkel-team/snorkel/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+).

  To set up a development environment for contributing back to Snorkel, see our [contributing guidelines](./CONTRIBUTING.md).
  All PRs must pass the continuous integration tests and receive approval from a member of the Snorkel development team before they will be merged.


  For broader Q&A, discussions about using Snorkel, tutorial requests, etc., use the [Snorkel community forum](https://spectrum.chat/snorkel) hosted on Spectrum.
  We hope this will be a venue for you to interact with other Snorkel users — please don't be shy about posting!


  To stay up-to-date on Snorkel-related announcements (e.g. version releases, upcoming workshops), subscribe to the [Snorkel mailing list](https://groups.google.com/forum/#!forum/snorkel-ml). We promise to respect your inboxes — communication will be sparse!


  Follow us on Twitter [@SnorkelAI](https://twitter.com/SnorkelAI).


pkgId: 3ba324be9565a2074acddb5a9124b54cae90454893fdb04eb55a12d1cda7d3bd
name: python-snowballstemmer
arch: src
version: 2.2.0
epoch: 0
release: 1
summary: This package provides 29 stemmers for 28 languages generated from Snowball algorithms.
url: https://github.com/snowballstem/snowball
rpm_license: BSD-3-Clause
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-8722d6ac-bf51-4729-958d-5380bbe6203c
location_href: 00009155-python-snowballstemmer/python-snowballstemmer-2.2.0-1.src.rpm
checksum_type: sha256
description:
  Python 3 (>= 3.3) is supported.  We no longer actively support Python 2 as
  the Python developers stopped supporting it at the start of 2020.  Snowball
  2.1.0 was the last release to officially support Python 2.


pkgId: 4ba63f4d9e278d559d2cd75156913770a299641112cf0de74f9df5be92d22f20
name: python-snowflake-sqlalchemy
arch: src
version: 1.4.7
epoch: 0
release: 1
summary: Snowflake SQLAlchemy Dialect
url: https://www.snowflake.com/
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-610f9da4-80e5-424a-9856-dada30b1c496
location_href: 00009279-python-snowflake-sqlalchemy/python-snowflake-sqlalchemy-1.4.7-1.src.rpm
checksum_type: sha256
description:
  This package includes the Snowflake SQLAlchemy, which supports Snowsql dialects for SQLAlchemy
  <http://www.sqlalchemy.org/>

  Snowflake Documentation is available at:
  <https://docs.snowflake.net/>

  Source code is also available at:
  <https://github.com/snowflakedb/snowflake-sqlalchemy>



  - v1.4.7(Mar 22, 2023)

    - Re-applied the application name of driver connection `SnowflakeConnection` to `SnowflakeSQLAlchemy`.
    - `SnowflakeDialect.get_columns` now throws a `NoSuchTableError` exception when the specified table doesn't exist, instead of the more vague `KeyError`.
    - Fixed a bug that dialect can not be created with empty host name.
    - Fixed a bug that `sqlalchemy.func.now` is not rendered correctly.

  - v1.4.6(Feb 8, 2023)

    - Bumped snowflake-connector-python dependency to newest version which supports Python 3.11.
    - Reverted the change of application name introduced in v1.4.5 until support gets added.

  - v1.4.5(Dec 7, 2022)

    - Updated the application name of driver connection `SnowflakeConnection` to `SnowflakeSQLAlchemy`.

  - v1.4.4(Nov 16, 2022)

    - Fixed a bug that percent signs in a non-compiled statement should not be interpolated with emtpy sequence when executed.

  - v1.4.3(Oct 17, 2022)

    - Fixed a bug that `SnowflakeDialect.normalize_name` and `SnowflakeDialect.denormalize_name` could not handle empty string.
    - Fixed a compatibility issue to vendor function `sqlalchemy.engine.url._rfc_1738_quote` as it is removed from SQLAlchemy v1.4.42.

  - v1.4.2(Sep 19, 2022)

    - Improved performance by standardizing string interpolations to f-strings.
    - Improved reliability by always using context managers.

  - v1.4.1(Aug 18, 2022)

    - snowflake-sqlalchemy is now SQLAlchemy 2.0 compatible.
    - Fixed a bug that `DATE` should not be removed from `SnowflakeDialect.ischema_names`.
    - Fixed breaking changes introduced in release 1.4.0 that:
      - changed the behavior of processing numeric, datetime and timestamp values returned from service.
      - changed the sequence order of primary/foreign keys in list returned by `inspect.get_foreign_keys` and `inspect.get_pk_constraint`.

  - v1.4.0(July 20, 2022)

    - Added support for `regexp_match`, `regexp_replace` in `sqlalchemy.sql.expression.ColumnOperators`.
    - Added support for Identity Column.
    - Added support for handling literals value of sql type `Date`, `DateTime`, `Time`, `Float` and `Numeric`, and converting the values into corresponding Python objects.
    - Added support for `get_sequence_names` in `SnowflakeDialect`.
    - Fixed a bug where insert with autoincrement failed due to incompatible column type affinity #124.
    - Fixed a bug when creating a column with sequence, default value was set incorrectly.
    - Fixed a bug that identifier having percents in a compiled statement was not interpolated.
    - Fixed a bug when visiting sequence value from another schema, the sequence name is not formatted with the schema name.
    - Fixed a bug where the sequence order of columns were not maintained when retrieving primary keys and foreign keys for a table.

  - v1.3.4(April 27,2022)

    - Fixed a bug where identifier max length was set to the wrong value and added relevant schema introspection
    - Add support for geography type
    - Fixed a bug where foreign key's referred schema was set incorrectly
    - Disabled new SQLAlchemy option for statement caching until support gets added

  - v1.3.3(December 19,2021)

    - Fixed an issue where quote arguments were stripped from identifiers.

  - v1.3.2 (September 14,2021)

    - Fixed a breaking change introduced in SQLAlchemy 1.4 that changed the behavior of returns_unicode_strings.

  - v1.3.1 (July 23,2021)

    - Raising minimum version of SQLAlchemy to match used features.

  - v1.2.5 (July 20,2021)

    - Various custom command bug fixes and additions.

  - v1.2.4 (October 05,2020)

    - Fixed an issue where inspector would not properly switch to table wide column retrieving when schema wide column retrieving was taking too long to respond.

  - v1.2.3 (March 30, 2020)

    - Update tox.ini
    - Add external stage to COPY INTO custom command.
    - Bumped pandas to newest versions

  - v1.2.2 (March 9, 2020)

    - Allow get_table_comment to fetch view comments too

  - v1.2.1 (February 18,2020)

    - Add driver property to SnowflakeDialect #140
    - Suppress deprecation warning by fixing import

  - v1.2.0 (January 27, 2020)

    - Fix typo in README Connection Parameters #141
    - Fix sqlalchemy and possibly python-connector warnings
    - Fix handling of empty table comments #137
    - Fix handling spaces in connection string passwords #149

  - v1.1.18 (January 6,2020)

    - Set current schema in connection string containing special characters
    - Calling str on custom_types throws Exception

  - v1.1.17 (December 2,2019)

    - Comments not created when creating new table #118
    - SQLAlchemy Column Metadata Cache not working
    - Timestamp DDL renders wrong when precision value passed
    - Fixed special character handling in snowflake-sqlalchemy from URL string
    - Added development optional dependencies to Python packages

  - v1.1.16 (October 21,2019)

    - Fix SQLAlchemy not working with global url

  - v1.1.15 (September 30, 2019)

    - Incorrect SQL generated for INSERT with CTE
    - Type Synonyms not exported to top-level module #109

  - v1.1.14 (August 12, 2019)

    - Fix CSVFormatter class has `FIELD_DELIMETER` spelled incorrectly

  - v1.1.13 (May 20,2019)

    - CopyInto's maxfilesize method expects a bool instead of an int
    - CopyInto statement doesn't compile correctly when the source is storage and the destination is a table

  - v1.1.12 (April 8,2019)

    - Add ability to inspect column comments
    - Restricting index creation checking to only SnowflakeDialect tables

  - v1.1.11 (March 25, 2019)

    - Remove relative reference to connector from SQLAlchemy dialect

  - v1.1.10 (February 22, 2019)

    - Separated base.py file into smaller files and fixed import statements
    - Prevent creating tables with indexes in SQLAlchemy
    - Add tox support

  - v1.1.9 (February 11, 2019)

    - Fix an issue in v1.1.8

  - v1.1.8 (February 8, 2019)

    - Fixed a dependency

  - v1.1.7 (February 8, 2019)

    - Added Upsert in sql-alchemy
    - CopyIntoS3 command in SQLAlchemy

  - v1.1.6 (January 3, 2019)

    - Fixed 'module' object is not callable in csvsql

  - v1.1.5 (December 19, 2018)

    - Added multivalue_support feature flag
    - Deprecate get_primary_keys

  - v1.1.4 (November 13, 2018)

    - Fixed lable/alias by honoring quote_name.

  - v1.1.3 (October 30, 2018)

    - SQLAlchemy 1.2 multi table support.
    - TIMESTAMP_LTZ, TIMESTAMP_NTZ and TIMESTAMP_TZ support.
    - Fixed relative import issue in SQLAlchemy

  - v1.1.2 (June 7, 2018)

    - Removes username restriction for OAuth

  - v1.1.1 (May 17, 2018)

    - Made password as optional parameter for SSO support
    - Fixed paramstyl=qmark mode where the data are bound in the server instead of client side
    - Fixed multipart schema support. Now db.schema can be specified in the schema parameters.
    - Added ``region`` parameter support to ``URL`` utility method.

  - v1.1.0 (February 1, 2018)

    - Updated doc including ``role`` example.
    - Fixed the return value of ``get_pk_constraint`` and ``get_primary_keys``. Those applications that depend on the old behaviors must update codes. Issue #38 (@nrth)
    - Updated doc including a note about ``open`` and ``close`` connections.

  - v1.0.9 (January 4, 2018)

    - Fixed foreign key names that should be normalized. Issue #24 (@cladden)
    - Set the default schema Issue #25 (@cladden)
    - Improved performance by caching current database and schema for inspector. Issue #30 (@cladden)

  - v1.0.8 (December 21, 2017)

    - Added ``get_schema_names`` method to Snowflake SQLAlchemy dialect. PR #20(andrewsali)
    - Fixed the column metadata including length for string/varchar and precision and scale for numeric data type. Issue #22(@cladden)

  - v1.0.7 (May 18, 2017)

    - Fixed COPY command transaction issue. PR #16(Pangstar) and Issue #17(Pangstar)

  - v1.0.6 (April 20, 2017)

    - Fixed account with subdomain issue. Issue #15(Pangstar)

  - v1.0.5 (April 13, 2017)

    - Added ``snowflake_clusterby`` option support to ``Table`` object so that the user can create a table with clustering keys

  - v1.0.4 (March 9, 2017)

    - Added SQLAlchemy 1.1 support

  - v1.0.3 (October 20, 2016)

    - Added ``VARIANT``, ``OBJECT`` and ``ARRAY`` data type supports for fetch

  - v1.0.2 (July 5, 2016)

    - Fixed the development status in classifiers. 5 - Production/Stable

  - v1.0.1 (July 4, 2016)

    - Fixed URL method in case of including warehouse without database.

  - v1.0.0 (June 28, 2016)

    - General Availability


pkgId: 45bc5a8990ea6874dcb7642ef33a61327ceafca23842255b128cb82b1157be5a
name: python-social-auth-app-django
arch: src
version: 5.2.0
epoch: 0
release: 1
summary: Python Social Authentication, Django integration.
url: https://github.com/python-social-auth/social-app-django
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-c5cddfaa-6a1a-4f27-86ee-9b0f2732eb85
location_href: 00009972-python-social-auth-app-django/python-social-auth-app-django-5.2.0-1.src.rpm
checksum_type: sha256
description:
  ![Build Status](https://github.com/python-social-auth/social-app-django/workflows/Flake8/badge.svg)
  ![Build Status](https://github.com/python-social-auth/social-app-django/workflows/Tests/badge.svg)
  [![PyPI version](https://badge.fury.io/py/social-auth-app-django.svg)](https://badge.fury.io/py/social-auth-app-django)
  [![Donate](https://img.shields.io/badge/Donate-PayPal-orange.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=matiasaguirre%40gmail%2ecom&lc=US&item_name=Python%20Social%20Auth&no_note=0&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHostedGuest)

  Python Social Auth is an easy to setup social authentication/registration
  mechanism with support for several frameworks and auth providers.



  This is the [Django](https://www.djangoproject.com/) component of the
  [python-social-auth ecosystem](https://github.com/python-social-auth/social-core),
  it implements the needed functionality to integrate
  [social-auth-core](https://github.com/python-social-auth/social-core)
  in a Django based project.



  This project will focus on the currently supported Django releases as
  stated on the [Django Project Supported Versions table](https://www.djangoproject.com/download/#supported-versions).

  Backward compatibility with unsupported versions won't be enforced.



  Project documentation is available at https://python-social-auth.readthedocs.org/.



  ```shell
  $ pip install social-auth-app-django
  ```



  See the [CONTRIBUTING.md](CONTRIBUTING.md) document for details.



  This project follows [Semantic Versioning 2.0.0](http://semver.org/spec/v2.0.0.html).



  This project follows the BSD license. See the [LICENSE](LICENSE) for details.



  This project is maintained on my spare time, consider donating to keep
  it improving.

  [![Donate](https://img.shields.io/badge/Donate-PayPal-orange.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=matiasaguirre%40gmail%2ecom&lc=US&item_name=Python%20Social%20Auth&no_note=0&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHostedGuest)


pkgId: e9aef74de3a40309ef6778bfbd375798024b30b24a78d646a618308177703bbb
name: python-social-auth-core
arch: src
version: 4.3.0
epoch: 0
release: 1
summary: Python social authentication made simple.
url: https://github.com/python-social-auth/social-core
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f869ac06-2d07-43b7-8dde-c95c6ac67b2a
location_href: 00005125-python-social-auth-core/python-social-auth-core-4.3.0-1.src.rpm
checksum_type: sha256
description:
  > ## THIS PROJECT IS OPEN FOR MAINTAINERS
  > Development on the python-social-auth projects has been stagnated for a while,
  > #445 was open a long time ago to discuss this matter and a plan (failed) was
  > presented to fix the situation. For that reason, I'm opening the organization to
  > new maintainers that will have the proper permissions to unstuck development.
  >
  > Those willing to join, contact me by email with the subject `[PSA Maintainer]
  > <your name>` and please let me know what motivates you to join in such role.


  ![Build Status](https://github.com/python-social-auth/social-core/workflows/Flake8/badge.svg)
  ![Build Status](https://github.com/python-social-auth/social-core/workflows/Tests/badge.svg)
  [![Build Status](https://travis-ci.org/python-social-auth/social-core.svg?branch=master)](https://travis-ci.org/python-social-auth/social-core)
  [![PyPI version](https://badge.fury.io/py/social-auth-core.svg)](https://badge.fury.io/py/social-auth-core)
  [![Donate](https://img.shields.io/badge/Donate-PayPal-orange.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=matiasaguirre%40gmail%2ecom&lc=US&item_name=Python%20Social%20Auth&no_note=0&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHostedGuest)

  Python Social Auth is an easy to setup social authentication/registration
  mechanism with support for several frameworks and auth providers.



  This is the core component of the python-social-auth ecosystem, it
  implements the common interface to define new authentication backends
  to third parties services, implement integrations with web frameworks
  and storage solutions.



  Project documentation is available at http://python-social-auth.readthedocs.org/.



  ```shell
  $ pip install social-auth-core
  ```



  See the [CONTRIBUTING.md](CONTRIBUTING.md) document for details.



  This project follows [Semantic Versioning 2.0.0](http://semver.org/spec/v2.0.0.html).



  This project follows the BSD license. See the [LICENSE](LICENSE) for details.



  This project is maintained on my spare time, consider donating to keep
  it improving.

  [![Donate](https://img.shields.io/badge/Donate-PayPal-orange.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=matiasaguirre%40gmail%2ecom&lc=US&item_name=Python%20Social%20Auth&no_note=0&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHostedGuest)


pkgId: 109d913da70036dc05eb6605fa7df5a2cc3fa09b3acdb2979cd7f8ed8fc3d310
name: python-socialscan
arch: src
version: 2.0.0
epoch: 0
release: 1
summary: Open-source intelligence tool for checking email address and username usage on online platforms
url: https://github.com/iojw/socialscan
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-2423045d-6628-4626-aa8c-efd68d68733b
location_href: 00005128-python-socialscan/python-socialscan-2.0.0-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://travis-ci.com/iojw/socialscan.svg?token=4yLRbSuqAQqrjanbzeXs&branch=master)](https://travis-ci.com/iojw/socialscan)
  [![Downloads](https://pepy.tech/badge/socialscan)](https://pepy.tech/project/socialscan/)
  [![MPL 2.0 license](https://img.shields.io/badge/License-MPL%202.0-blue.svg)](https://www.mozilla.org/en-US/MPL/2.0/)
  [![Python 3.6+](https://img.shields.io/badge/python-3.6+-green.svg)](https://www.python.org/downloads/)
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

  socialscan offers **accurate** and **fast** checks for email address and username usage on online platforms.

  Given an email address or username, socialscan returns whether it is available, taken or invalid on online platforms.

  Features that differentiate socialscan from similar tools (e.g. knowem.com, Namechk, and Sherlock):

  1. **100% accuracy**: socialscan's query method eliminates the false positives and negatives that often occur in similar tools, ensuring that results are always accurate.

  2. **Speed**: socialscan uses [asyncio](https://docs.python.org/3/library/asyncio.html) along with [aiohttp](https://aiohttp.readthedocs.io/en/stable/) to conduct all queries concurrently, providing fast searches even with bulk queries involving hundreds of usernames and email addresses. On a test computer with average specs and Internet speed, 100 queries were executed in ~4 seconds.

  3. **Library / CLI**: socialscan can be executed through a CLI, or imported as a Python library to be used with existing code.

  4. **Email support**: socialscan supports queries for both email addresses and usernames.

  The following platforms are currently supported:

  |           | Username | Email |
  |:---------:|:--------:|:--------:|
  | Instagram |     ✔️    |   ✔️   |
  | Twitter   |     ✔️    |   ✔️   |
  |  GitHub   |     ✔️    |   ✔️   |
  |   Tumblr  |     ✔️    |   ✔️   |
  |  Lastfm   |     ✔️    |   ✔️   |
  |  Snapchat |     ✔️    |        |
  | GitLab    |     ✔️    |        |
  | Reddit    |     ✔️    |        |
  |  Yahoo    |     ✔️    |        |
  | Pinterest |            |   ✔️  |
  |  Firefox  |            |   ✔️  |

  ![](https://github.com/iojw/socialscan/raw/master/demo/demo.gif)
  ![](https://github.com/iojw/socialscan/raw/master/demo/demo100.gif)



  Other similar tools check username availability by requesting the profile page of the username in question and based on information like the HTTP status code or error text on the requested page, determine whether a username is already taken. This is a naive approach that fails in the following cases:

  - Reserved keywords: Most platforms have a set of keywords that they don't allow to be used in usernames
  (A simple test: try checking reserved words like 'admin' or 'home' or 'root' and see if other services mark them as available)

  - Deleted/banned accounts: Deleted/banned account usernames tend to be unavailable even though the profile pages might not exist

  Therefore, these tools tend to come up with false positives and negatives. This method of checking is also dependent on platforms having web-based profile pages and cannot be extended to email addresses.

  socialscan aims to plug these gaps by directly querying the registration servers of the platforms instead, retrieving the appropriate CSRF tokens, headers, and cookies.




  ```
  > pip install socialscan
  ```


  ```
  > git clone https://github.com/iojw/socialscan.git
  > cd socialscan
  > pip install .
  ```


  ```
  usage: socialscan [list of usernames/email addresses to check]

  optional arguments:
    -h, --help            show this help message and exit
    --platforms [platform [platform ...]], -p [platform [platform ...]]
                          list of platforms to query (default: all platforms)
    --view-by {platform,query}
                          view results sorted by platform or by query (default:
                          query)
    --available-only, -a  only print usernames/email addresses that are
                          available and not in use
    --cache-tokens, -c    cache tokens for platforms requiring more than one
                          HTTP request (Snapchat, GitHub, Instagram. Lastfm &
                          Tumblr), reducing total number of requests sent
    --input input.txt, -i input.txt
                          file containg list of queries to execute
    --proxy-list proxy_list.txt
                          file containing list of HTTP proxy servers to execute
                          queries with
    --verbose, -v         show query responses as they are received
    --show-urls           display profile URLs for usernames on supported platforms
                          (profiles may not exist if usernames are reserved or belong to deleted/banned accounts)
    --json json.txt       output results in JSON format to the specified file
    --version             show program's version number and exit
  ```


  socialscan can also be imported into existing code and used as a library.

  v1.0.0 introduces the async method `execute_queries` and the corresponding synchronous wrapper `sync_execute_queries` that takes a list of queries and optional list of platforms and proxies, executing all queries concurrently. The method then returns a list of results in the same order.

  ```python
  from socialscan.util import Platforms, sync_execute_queries

  queries = ["username1", "email2@gmail.com", "mail42@me.com"]
  platforms = [Platforms.GITHUB, Platforms.LASTFM]
  results = sync_execute_queries(queries, platforms)
  for result in results:
      print(f"{result.query} on {result.platform}: {result.message} (Success: {result.success}, Valid: {result.valid}, Available: {result.available})")
  ```
  Output:
  ```
  username1 on GitHub: Username is already taken (Success: True, Valid: True, Available: False)
  username1 on Lastfm: Sorry, this username isn't available. (Success: True, Valid: True, Available: False)
  email2@gmail.com on GitHub: Available (Success: True, Valid: True, Available: True)
  email2@gmail.com on Lastfm: Sorry, that email address is already registered to another account. (Success: True, Valid: True, Available: False)
  mail42@me.com on GitHub: Available (Success: True, Valid: True, Available: True)
  mail42@me.com on Lastfm: Looking good! (Success: True, Valid: True, Available: True)
  ```


  For bulk queries with the `--input` option, place one username/email on each line in the .txt file:
  ```
  username1
  email2@mail.com
  username3
  ```



  If you find this tool useful and would like to support its continued development, you can donate here. Thank you for your support.

  [![Donate Via PayPal](https://www.paypal.com/en_US/i/btn/btn_donate_LG.gif)](https://paypal.me/isaacong)

  BTC: bc1qwrnukyc6xh9aygu5ps2geh8stmvagsj5u4v7j6
  ETH: 0x45a0F91666391078eA521A6123559E49DAb1275f


  Errors, suggestions or want a site added? [Submit an issue](https://github.com/iojw/socialscan/issues).

  PRs are always welcome 🙂

  Please ensure that the code is formatted with `black` using the config in `pyproject.toml` before submitting a PR.


  MPL 2.0


pkgId: 3ccfa100e6dc267c7f9e582e13776d7cd1c3180500674ea34eade6bc49157fc0
name: python-socketIO-client
arch: src
version: 0.7.2
epoch: 0
release: 1
summary: A socket.io client library
url: https://github.com/invisibleroads/socketIO-client
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f068935d-0121-4287-8f0e-9682888ccc11
location_href: 00011485-python-socketio-client/python-socketIO-client-0.7.2-1.src.rpm
checksum_type: sha256
description:
  Here is a `socket.io <http://socket.io>`_ client library for Python.  You can use it to write test code for your socket.io server.
  Please note that this version implements `socket.io protocol 1.x <https://github.com/automattic/socket.io-protocol>`_, which is not backwards compatible.  If you want to communicate using `socket.io protocol 0.9 <https://github.com/learnboost/socket.io-spec>`_ (which is compatible with `gevent-socketio <https://github.com/abourget/gevent-socketio>`_), please use `socketIO-client 0.5.7.2 <https://pypi.python.org/pypi/socketIO-client/0.5.7.2>`_.


pkgId: 45c45abefba0231ddc4a1ef5691be1d5196d8363c0ed81a5c98891783ab01363
name: python-sockjs-tornado
arch: src
version: 1.0.7
epoch: 0
release: 1
summary: SockJS python server implementation on top of Tornado framework
url: http://github.com/mrjoes/sockjs-tornado/
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-5a5ce5f1-ee4f-479a-8bb3-8ac60f60dd5c
location_href: 00005130-python-sockjs-tornado/python-sockjs-tornado-1.0.7-1.src.rpm
checksum_type: sha256
description:
  SockJS-tornado is a Python server side counterpart of `SockJS-client browser library <https://github.com/sockjs/sockjs-client>`_
  running on top of `Tornado <http://tornadoweb.org>`_ framework.
  Simplified echo SockJS server could look more or less like::
      from tornado import web, ioloop
      from sockjs.tornado import SockJSRouter, SockJSConnection
      class EchoConnection(SockJSConnection):
          def on_message(self, msg):
              self.send(msg)
      if __name__ == '__main__':
          EchoRouter = SockJSRouter(EchoConnection, '/echo')
          app = web.Application(EchoRouter.urls)
          app.listen(9999)
          ioloop.IOLoop.instance().start()
  (Take look at `examples <https://github.com/MrJoes/sockjs-tornado/tree/master/examples>`_ for a complete version).
  Subscribe to `SockJS mailing list <https://groups.google.com/forum/#!forum/sockjs>`_ for discussions and support.


pkgId: 74a77339a7b4da35f2b259b0029f73ca0977655d90adcb5428a67b15368b88d0
name: python-soco
arch: src
version: 0.29.1
epoch: 0
release: 1
summary: SoCo (Sonos Controller) is a simple library to control Sonos speakers.
url: https://github.com/SoCo/SoCo
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-b5eb233b-e6ba-4ee4-8573-0d9696bd67ca
location_href: 00005132-python-soco/python-soco-0.29.1-1.src.rpm
checksum_type: sha256
description:
  SoCo (Sonos Controller) is a Python library that allows you to
  control `Sonos speakers`_ programmatically. It was originally created at `Music
  Hack Day Sydney`_ by `Rahim Sonawalla`_ and is now developed by a `team of
  people`_ at its `GitHub repository`_
  For more background on the project, please see Rahim's `blog post
  <http://www.hirahim.com/blog/2012/04/29/dissecting-the-sonos-controller/>`_.
  Visit the `SoCo documentation`_ for a more detailed overview of the functionailty.


pkgId: 97defaf182250cdb88f050f8979d0a96ec18f0e72c05ae1c08f77109145fe351
name: python-solrq
arch: src
version: 1.1.2
epoch: 0
release: 1
summary: Python Solr query utility
url: https://github.com/swistakm/solrq
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-cfaeedeb-4618-40f6-91fe-330464b77d1d
location_href: 00012437-python-solrq/python-solrq-1.1.2-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://travis-ci.org/swistakm/solrq.svg?branch=master)](https://travis-ci.org/swistakm/solrq)
  [![Coverage Status](https://coveralls.io/repos/swistakm/solrq/badge.svg)](https://coveralls.io/r/swistakm/solrq)
  [![Documentation Status](https://readthedocs.org/projects/solrq/badge/?version=latest)](https://readthedocs.org/projects/solrq/?badge=latest)


  `solrq` is a Python Solr query utility. It helps making query strings for Solr
  and also helps with escaping reserved characters. `solrq` is has no external
  dependencies and is compatibile with `python3.7`, `python3,8`, `python3.9`, `python3.10`, `python3.11`, `pypy` and `pypy3`.
  It might be compatibile with other python releases/implentations but this has
  not been tested yet or is no longer tested (e.g `python3.2` or `python2.7`).

      pip install solrq

  And you're ready to go!




  Everything in `solrq` is about `Q()` object. Drop into python repl and just
  feed it with bunch of field and search terms to see how it works:

  ```python
  >>> from solrq import Q
  >>> # note: all terms in single Q object are implicitely joined with 'AND'
  >>> query = Q(type="animal", species="dog")
  >>> query
  <Q: type:animal AND species:dog>

  >>> # ohh, forgot about cats?
  >>> query | Q(type="animal", species="cat")
  <Q: (type:animal AND species:dog) OR (type:animal AND species:cat)>

  >>># more a cat lover? Let's give them a boost boost
  >>> Q(type="animal") & (Q(species="cat")^2 | Q(species="dog"))
  <Q: type:animal AND ((species:cat^2) OR species:dog)>
  ```

  But what to do with this `Q`? Simply pass it to your Solr library of choice,
  like [pysolr](https://github.com/toastdriven/pysolr) or
  [mysolr](https://github.com/RedTuna/mysolr). Most of python Solr libraries
  expect simple string as a query parameter and do not bother with escaping
  of reserved characters so you must take care of that by yourself. This is why
  `solrq` integrates so easily. Here is an example how you can use it with
  [pysolr](https://github.com/toastdriven/pysolr):

  ```python
  from solrq import Q
  import pysolr

  solr = Solr("<your solr url>")


  solr.search(Q(text="easy as f***"))


  solr.search(str(Q(text="easy as f***")))
  ```



  Full reference can be found in [API reference documentation page](http://solrq.readthedocs.org/en/latest/api-reference.html)
  but here is a short reference.



  Use python `^` operator:

  ```python
  >>> Q(text='cat') ^ 2
  <Q: text:cat^2>
  ```



  Use python `&` operator:

  ```python
  >>> Q(text='cat') & Q(text='dog')
  <Q: text:cat AND text:dog>
  ```



  Use python `|` operator:

  ```python
  >>> Q(text='cat') | Q(text='dog')
  <Q: text:cat OR text:dog>
  ```



  Use python `~` operator:

  ```python
  >>> ~ Q(text='cat')
  <Q: !text:cat>
  ```



  Use `solrq.Range` wrapper:

  ```python
  >>> from solrq import Range
  >>> Q(age=Range(18, 25))
  <Q: age:[18 TO 25]>
  ```



  Use `solrq.Proximity` wrapper:

  ```python
  >>> from solrq import Proximity
  >>> Q(age=Proximity("cat dogs", 5))
  <Q: age:"cat\ dogs"~5>
  ```



  All raw string values are treated as unsafe by default and will be escaped to
  ensure that final query string will not be broken by some rougue search value.
  This of course can be disabled if you know what you're doing using
  `Value` wrapper:

  ```python
  >>> from solrq import Q, Value
  >>> Q(type='foo bar[]')
  <Q: type:foo\ bar\[\]>
  >>> Q(type=Value('foo bar[]', safe=True))
  <Q: type:foo bar[]>
  ```



  Simply as:

  ```python
  >>> from datetime import datetime, timedelta
  >>> Q(date=datetime(1970, 1, 1))
  <Q: date:"1970-01-01T00:00:00Z">
  >>> # note that timedeltas has any sense mostly with ranges
  >>> Q(delta=timedelta(days=1))
  <Q: delta:NOW+1DAYS+0SECONDS+0MILLISECONDS>
  ```



  If you need to use wildcards in field names just use dict and unpack it inside
  of `Q()` instead of using keyword arguments:

  ```python
      >>> Q(**{"*_t": "text_to_search"})
      <Q: *_t:text_to_search>
  ```



  Any contribution is welcome. Issues, suggestions, pull requests - whatever.
  There are no strict contribution guidelines beyond PEP-8 and sanity.
  Code style is checked with flakes8 and any PR that has failed build
  will not be merged.

  One thing: if you submit a PR please do not rebase it later unless you
  are asked for that explicitely. Reviewing pull requests that suddenly had
  their history rewritten just drives me crazy.



  Tests are run using tox. Simply install it and run:

      pip install tox
      tox

  And that's all.


pkgId: 6be9b54876689b2b131de78dbfdf7176194c5087b336efd54f25f7c108bd4ac7
name: python-sops
arch: src
version: 1.18
epoch: 0
release: 1
summary: Secrets OPerationS (sops) is an editor of encrypted files
url: https://github.com/mozilla/sops
rpm_license: MPL
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-914f894b-ae9f-4cdc-b0a1-cbc6964ff7f5
location_href: 00010855-python-sops/python-sops-1.18-1.src.rpm
checksum_type: sha256
description:
  This is the Python version of SOPS that is no longer maintained. We fix the occasional bug, but all improvements happen in the Go version of SOPS, over in the Master branch. You have been warned!
  **sop** is an editor of encrypted files that supports YAML, JSON and BINARY formats and encrypts with AWS KMS and PGP (via GnuPG). Watch `the demo <https://www.youtube.com/watch?v=YTEVyLXFiq0>`_.
  **Questions?** ping "ulfr" in `#security` on `irc.mozilla.org <https://wiki.mozilla.org/IRC>`_
  (use a web client like `mibbit <https://chat.mibbit.com>`_ ).


pkgId: 8c36357ddd8951b341d160136c86f0b746bb3200b58437dc202d15ac1b3efc55
name: python-sorl-thumbnail
arch: src
version: 12.9.0
epoch: 0
release: 1
summary: Thumbnails for Django
url: https://github.com/jazzband/sorl-thumbnail
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-75968e6d-3b9a-4398-a45f-6e3216351dc5
location_href: 00011344-python-sorl-thumbnail/python-sorl-thumbnail-12.9.0-1.src.rpm
checksum_type: sha256
description:
  - Support for Django 3.2, 4.0 and 4.1 following the `Django supported versions policy`_
  - Python 3 support
  - Storage support
  - Pluggable Engine support for `Pillow`_, `ImageMagick`_, `PIL`_, `Wand`_, `pgmagick`_, and `vipsthumbnail`_
  - Pluggable Key Value Store support (cached db, redis, and dynamodb by AWS)
  - Pluggable Backend support
  - Admin integration with possibility to delete
  - Dummy generation (placeholders)
  - Flexible, simple syntax, generates no html
  - ImageField for model that deletes thumbnails (only compatible with django 1.2.5 or less)
  - CSS style cropping options
  - Back smart cropping, and remove borders from the images when cropping
  - Margin calculation for vertical positioning
  - Alternative resolutions versions of a thumbnail
  Read more in `the documentation (latest version) <https://sorl-thumbnail.readthedocs.io/>`_


pkgId: b930d0731d91a9c2697209f98bb4a7ad468cc2f5530b5ea21010c79da59a76d5
name: python-sortedcontainers
arch: src
version: 2.4.0
epoch: 0
release: 1
summary: Sorted Containers -- Sorted List, Sorted Dict, Sorted Set
url: http://www.grantjenks.com/docs/sortedcontainers/
rpm_license: Apache 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-463d07a2-79ef-4e2b-9bc4-a6743cdbfe4c
location_href: 00009080-python-sortedcontainers/python-sortedcontainers-2.4.0-1.src.rpm
checksum_type: sha256
description:
  `Sorted Containers`_ is an Apache2 licensed `sorted collections library`_,
  written in pure-Python, and fast as C-extensions.
  Python's standard library is great until you need a sorted collections
  type. Many will attest that you can get really far without one, but the moment
  you **really need** a sorted list, sorted dict, or sorted set, you're faced
  with a dozen different implementations, most using C-extensions without great
  documentation and benchmarking.
  In Python, we can do better. And we can do it in pure-Python!
      >>> from sortedcontainers import SortedList
      >>> sl = SortedList(['e', 'a', 'c', 'd', 'b'])
      >>> sl
      SortedList(['a', 'b', 'c', 'd', 'e'])
      >>> sl *= 10_000_000
      >>> sl.count('c')
      10000000
      >>> sl[-3:]
      ['e', 'e', 'e']
      >>> from sortedcontainers import SortedDict
      >>> sd = SortedDict({'c': 3, 'a': 1, 'b': 2})
      >>> sd
      SortedDict({'a': 1, 'b': 2, 'c': 3})
      >>> sd.popitem(index=-1)
      ('c', 3)
      >>> from sortedcontainers import SortedSet
      >>> ss = SortedSet('abracadabra')
      >>> ss
      SortedSet(['a', 'b', 'c', 'd', 'r'])
      >>> ss.bisect_left('c')
      2
  All of the operations shown above run in faster than linear time. The above
  demo also takes nearly a gigabyte of memory to run. When the sorted list is
  multiplied by ten million, it stores ten million references to each of "a"
  through "e". Each reference requires eight bytes in the sorted
  container. That's pretty hard to beat as it's the cost of a pointer to each
  object. It's also 66% less overhead than a typical binary tree implementation
  (e.g. Red-Black Tree, AVL-Tree, AA-Tree, Splay-Tree, Treap, etc.) for which
  every node must also store two pointers to children nodes.
  `Sorted Containers`_ takes all of the work out of Python sorted collections -
  making your deployment and use of Python easy. There's no need to install a C
  compiler or pre-build and distribute custom extensions. Performance is a
  feature and testing has 100% coverage with unit tests and hours of stress.


pkgId: 4c13d529f4819a3f2252713d9424a01977ce749c7719d3a434be5c0458f4df30
name: python-sox
arch: src
version: 1.4.1
epoch: 0
release: 1
summary: Python wrapper around SoX.
url: https://github.com/rabitt/pysox
rpm_license: BSD-3-Clause
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a30c6fd7-316b-4b4d-b7bb-1dc8624edac7
location_href: 00012836-python-sox/python-sox-1.4.1-1.src.rpm
checksum_type: sha256
description:
  Python wrapper around sox. [Read the Docs here](http://pysox.readthedocs.org).

  [![PyPI version](https://badge.fury.io/py/sox.svg)](https://badge.fury.io/py/sox)
  [![Documentation Status](https://readthedocs.org/projects/resampy/badge/?version=latest)](http://pysox.readthedocs.io/en/latest/?badge=latest)
  [![GitHub license](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://raw.githubusercontent.com/rabitt/pysox/master/LICENSE.md)
  [![PyPI](https://img.shields.io/pypi/pyversions/Django.svg?maxAge=2592000)]()

  [![Build Status](https://travis-ci.org/rabitt/pysox.svg?branch=master)](https://travis-ci.org/rabitt/pysox)
  [![Coverage Status](https://coveralls.io/repos/github/rabitt/pysox/badge.svg?branch=master)](https://coveralls.io/github/rabitt/pysox?branch=master)

  ![PySocks](https://s-media-cache-ak0.pinimg.com/736x/62/6f/bc/626fbcae9618eccee1c4c7c947bf9d94.jpg)

  This library was presented in the following paper:

  [R. M. Bittner](https://github.com/rabitt), [E. J. Humphrey](https://github.com/ejhumphrey) and J. P. Bello, "[pysox: Leveraging the Audio Signal Processing Power of SoX in Python](https://wp.nyu.edu/ismir2016/wp-content/uploads/sites/2294/2016/08/bittner-pysox.pdf)", in Proceedings of the 17th International Society for Music Information Retrieval Conference Late Breaking and Demo Papers, New York City, USA, Aug. 2016.




  This requires that [SoX](http://sox.sourceforge.net/) version 14.4.2 or higher is installed.

  To install SoX on Mac with Homebrew:

  ```brew install sox```

  If you want support for `mp3`, `flac`, or `ogg` files, add the following flags:

  ```brew install sox --with-lame --with-flac --with-libvorbis```

  on Linux:

  ```apt-get install sox```

  or install [from source](https://sourceforge.net/projects/sox/files/sox/).



  To install the most up-to-date release of this module via PyPi:

  ```pip install sox```

  To install the master branch:

  ```pip install git+https://github.com/rabitt/pysox.git```

  or

  ```
  git clone https://github.com/rabitt/pysox.git
  cd pysox
  python setup.py install
  ```




  If you have a different version of SoX installed, it's recommended that you run
  the tests locally to make sure everything behaves as expected, by simply running:

  ```
  pytest
  ```



  ```python
  import sox

  tfm = sox.Transformer()

  tfm.trim(5, 10.5)

  tfm.compand()

  tfm.fade(fade_in_len=1.0, fade_out_len=0.5)

  tfm.build_file('path/to/input_audio.wav', 'path/to/output/audio.aiff')

  tfm.build('path/to/input_audio.wav', 'path/to/output/audio.aiff')


  array_out = tfm.build_array(input_filepath='path/to/input_audio.wav')

  tfm.effects_log
  > ['trim', 'compand', 'fade']

  ```

  Transform in-memory arrays:
  ```python
  import numpy
  import sox

  sample_rate = 44100

  y = np.sin(2 * np.pi * 440.0 * np.arange(sample_rate * 1.0) / sample_rate)

  tfm = sox.Transformer()

  tfm.pitch(2)

  y_out = tfm.build_array(input_array=y, sample_rate_in=sample_rate)

  tfm.build_file(
      input_array=y, sample_rate_in=sample_rate,
      output_filepath='path/to/output.wav'
  )

  tfm.set_output_format(rate=8000)
  tfm.build_file(
      input_array=y, sample_rate_in=sample_rate,
      output_filepath='path/to/output_8k.wav'
  )
  ```

  Concatenate 3 audio files:
  ```python
  import sox

  cbn = sox.Combiner()

  cbn.pitch(3.0)

  cbn.convert(samplerate=8000, n_channels=2)

  cbn.build(
      ['input1.wav', 'input2.wav', 'input3.wav'], 'output.wav', 'concatenate'
  )

  ```

  Get file information:
  ```python
  import sox

  sample_rate = sox.file_info.sample_rate('path/to/file.mp3')

  n_samples = sox.file_info.num_samples('path/to/file.wav')

  is_silent = sox.file_info.silent('path/to/file.aiff')

  ```


pkgId: f721a42ffcf272c3e8ea49537da22d0a7145be8ace7306991c86e61236a740d3
name: python-spacy-legacy
arch: src
version: 3.0.12
epoch: 0
release: 1
summary: Legacy registered functions for spaCy backwards compatibility
url: https://spacy.io
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-3e8ad08d-9007-45c5-912c-59a153ee4ddc
location_href: 00009419-python-spacy-legacy/python-spacy-legacy-3.0.12-1.src.rpm
checksum_type: sha256
description:
  <a href="https://explosion.ai"><img src="https://explosion.ai/assets/img/logo.svg" width="125" height="125" align="right" /></a>



  This package includes outdated registered functions for [spaCy](https://spacy.io) v3.x, for example model architectures, pipeline components and utilities. It's **installed automatically** as a dependency of spaCy, and allows us to provide backwards compatibility, while keeping the core library tidy and up to date. All of this happens under the hood, so you typically shouldn't have to care about this package.

  [![Azure Pipelines](https://img.shields.io/azure-devops/build/explosion-ai/public/21/master.svg?logo=azure-pipelines&style=flat-square&label=build)](https://dev.azure.com/explosion-ai/public/_build?definitionId=21)
  [![pypi Version](https://img.shields.io/pypi/v/spacy-legacy.svg?style=flat-square&logo=pypi&logoColor=white)](https://pypi.org/project/spacy-legacy/)




  Whenever a new backwards-incompatible version of a registered function is available, e.g. `spacy.Tok2Vec.v1` &rarr; `spacy.Tok2Vec.v2`, the legacy version is moved to `spacy-legacy`, and exposed via [entry points](setup.cfg). This means that it will still be available if your config files use it, even though the core library only includes the latest version.

  Legacy functions are exposed with the prefix `spacy-legacy`, e.g. `spacy-legacy.Tok2Vec.v1`. When spaCy resolves your config and a function is not available in the core library, e.g. `spacy.Tok2Vec.v1`, it will check if there's a legacy function available and fall back to that. You can also explicitly refer to legacy functions in your config, to indicate that a newer version is available.


pkgId: 463b036b65cc02e95be612a23b35e292cdbe3c7056978e27ede976c251ef074c
name: python-spanishconjugator
arch: src
version: 2.3.4608
epoch: 0
release: 1
summary: A python library to conjugate spanish words with parameters tense, mood and pronoun
url: https://github.com/Benedict-Carling/spanish-conjugator
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-8c54bafd-3402-4854-8ab3-8e59dbf1ce37
location_href: 00011650-python-spanishconjugator/python-spanishconjugator-2.3.4608-1.src.rpm
checksum_type: sha256
description:
  ![GitHub Workflow Status](https://img.shields.io/github/workflow/status/Imperial-iGEM/DJANGO-Assembly-Methods/Django%20CI)
  ![GitHub repo size](https://img.shields.io/github/repo-size/Benedict-Carling/spanish-conjugator)
  ![PyPI - Downloads](https://img.shields.io/pypi/dm/spanishconjugator)
  ![GitHub top language](https://img.shields.io/github/languages/top/Benedict-Carling/spanish-conjugator)
  ![GitHub](https://img.shields.io/github/license/Benedict-Carling/spanish-conjugator)
  ![PyPI](https://img.shields.io/pypi/v/spanishconjugator)


  A class Conjugator containing a function conjugate which conjugates spanish verbs by tense, mood and pronoun.


  `pip install spanishconjugator`


  Example python usage; the `conjugate` function of the `Conjugator` Class takes 4 parameters being root-verb, tense, mood, pronoun respectively

  ```python
  from spanishconjugator import Conjugator
  imperfect_conjugation = Conjugator().conjugate('hablar','imperfect','indicative','yo')
  print(imperfect_conjugation)
  >>> hablaba
  ```


  All pronouns are implemented
  ```yo, tu, usted, nosotros, vosotros, ustedes```

  All moods currently implemented are
  ```indicative, conditional```

  All tenses currently implemented are
  ```present, imperfect, preterite, future, present_perfect, past_anterior, future_perfect, conditional_simple```

  Exaple usage of different moods/tenses with hablar and yo



  ```python
  Conjugator().conjugate('hablar','present','indicative','yo')
  >>> hablo
  ```

  In case of indicative present, 4th param pronoun is optional.
  ```python
  from spanishconjugator import Conjugator
  present_indicative_conjugation = Conjugator().conjugate('hablar','present','indicative')
  print(present_indicative_conjugation)
  >>> {'el/ella/usted': 'habla', 'ellos/ellas/ustedes': 'hablan', 'tu': 'hablas', 'vosotros': 'hablÃ¡is', 'yo': 'hablo', 'nosotros': 'hablamos'}
  ```



  ```python
  Conjugator().conjugate('hablar','imperfect','indicative','yo')
  >>> hablaba
  ```


  ```python
  Conjugator().conjugate('hablar','preterite','indicative','yo')
  >>> hablé
  ```


  ```python
  Conjugator().conjugate('hablar','future','indicative','yo')
  >>> hablaré
  ```


  ```python
  Conjugator().conjugate('hablar','present_perfect','indicative','yo')
  >>> he hablado
  ```


  ```python
  Conjugator().conjugate('hablar','past_anterior','indicative','yo')
  >>> hube hablado
  ```


  ```python
  Conjugator().conjugate('hablar','future_perfect','indicative','yo')
  >>> habré hablado
  ```


  ```python
  Conjugator().conjugate('hablar','simple_conditional','conditional','yo')
  >>> hablaría
  ```


  ```python
  Conjugator().conjugate('hablar','perfect','conditional','yo')
  >>> habría hablado
  ```


  ```python
  Conjugator().conjugate('hablar','affirmative','imperative','tu')
  >>> habla
  ```


  ```python
  Conjugator().conjugate('hablar','negative','imperative','tu')
  >>> hables
  ```


  ```python
  Conjugator().conjugate('hablar','present','subjunctive','yo')
  >>> hable
  ```


  ```python
  Conjugator().conjugate('hablar','imperfect','subjunctive','yo')
  >>> hablara
  ```


  ```python
  Conjugator().conjugate('hablar','imperfect_se','subjunctive','yo')
  >>> hablase
  ```


  ```python
  Conjugator().conjugate('hablar','future','subjunctive','yo')
  >>> hablare
  ```


  if you would like to help develop spanishconjugator, follow succeeding code

  Whilst in command line create a folder in which you would like to work (name only reccommended)

  `$ mkdir spanish_conjugator_enviroment`

  change directory into the enviroment you have just made

  `$ cd spanish_conjugator_enviroment`

  install virtualenv

  `$ pip install virtualenv`

  create a virtual enviroment from path of python3

  `$ virtualenv -p $(which python3) my_venv`

  activate virtual enviroment

  `$ source my_venv/bin/activate`

  > tip: once you want to disactivate your virtual enviroment simply run `$ deactivate`

  Clone Spanish-Conjugator

  `$ git clone https://github.com/Benedict-Carling/spanish-conjugator.git`

  Install developer dependencies for unit test e.g pytest and for other library tools

  `pip install -e .[dev]`



  We have chosen to use the library pytest for our unit test
  At this point in the developing guide you can check the code works by running it against out current unit tests located in the `/tests` folder

  `$ pytest`

  output should show the different tenses implemented should pass their unit tests as below.(27/08/2020)
  ![alt text](https://github.com/Benedict-Carling/spanish-conjugator/blob/master/images/pytest.png?raw=true)



  To submit code to this repositry please fork and submit a pull request 🚀


  Check out the Javascript npm version of the library if you are working in a node or browser enviroment

  https://github.com/Benedict-Carling/spanish-conjugatorjs


pkgId: 92a2227c3e844851f776e73c808da826084989c20c94a974cc560164f466997c
name: python-spark-nlp
arch: src
version: 4.3.2
epoch: 0
release: 1
url: https://github.com/JohnSnowLabs/spark-nlp
rpm_license: Apache Software License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-c4711f39-7014-4cc6-ae6e-67ca0f975912
location_href: 00009534-python-spark-nlp/python-spark-nlp-4.3.2-1.src.rpm
checksum_type: sha256
summary:
  John Snow Labs Spark NLP is a natural language processing library built on top of Apache Spark ML. It provides simple, performant & accurate NLP annotations for machine learning pipelines, that scale easily in a distributed environment.

description:
  <p align="center">
      <a href="https://github.com/JohnSnowLabs/spark-nlp/actions" alt="build">
          <img src="https://github.com/JohnSnowLabs/spark-nlp/workflows/build/badge.svg" /></a>
      <a href="https://github.com/JohnSnowLabs/spark-nlp/releases" alt="Current Release Version">
          <img src="https://img.shields.io/github/v/release/JohnSnowLabs/spark-nlp.svg?style=flat-square&logo=github" /></a>
      <a href="https://search.maven.org/artifact/com.johnsnowlabs.nlp/spark-nlp_2.12" alt="Maven Central">
          <img src="https://maven-badges.herokuapp.com/maven-central/com.johnsnowlabs.nlp/spark-nlp_2.12/badge.svg" /></a>
      <a href="https://badge.fury.io/py/spark-nlp" alt="PyPI version">
          <img src="https://badge.fury.io/py/spark-nlp.svg" /></a>
      <a href="https://anaconda.org/JohnSnowLabs/spark-nlp" alt="Anaconda-Cloud">
          <img src="https://anaconda.org/johnsnowlabs/spark-nlp/badges/version.svg" /></a>
      <a href="https://github.com/JohnSnowLabs/spark-nlp/blob/master/LICENSE" alt="License">
          <img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" /></a>
      <a href="https://pypi.org/project/spark-nlp/" alt="PyPi downloads">
          <img src="https://static.pepy.tech/personalized-badge/spark-nlp?period=total&units=international_system&left_color=grey&right_color=orange&left_text=pip%20downloads" /></a>
  </p>

  Spark NLP is a state-of-the-art Natural Language Processing library built on top of Apache Spark. It provides **simple
  **, **performant** & **accurate** NLP annotations for machine learning pipelines that **scale** easily in a distributed
  environment.
  Spark NLP comes with **11000+** pretrained **pipelines** and **models** in more than **200+** languages.
  It also offers tasks such as **Tokenization**, **Word Segmentation**, **Part-of-Speech Tagging**, Word and Sentence **Embeddings**, **Named Entity Recognition**, **Dependency Parsing**, **Spell Checking**, **Text Classification**, **Sentiment Analysis**, **Token Classification**, **Machine Translation** (+180 languages), **Summarization**, **Question Answering**, **Table Question Answering**, **Text Generation**, **Image Classification**, **Automatic Speech Recognition
  **, and many more [NLP tasks](#features).

  **Spark NLP** is the only open-source NLP library in **production** that offers state-of-the-art transformers such as **BERT**, **CamemBERT**, **ALBERT**, **ELECTRA**, **XLNet**, **DistilBERT**, **RoBERTa**, **DeBERTa**, **XLM-RoBERTa**, **Longformer**, **ELMO**, **Universal Sentence Encoder**, **Google T5**, **MarianMT**, **GPT2**, and **Vision Transformers (ViT)** not only to **Python** and **R**, but also to **JVM** ecosystem (**Java**, **Scala**, and **Kotlin**) at **scale** by extending **Apache Spark** natively.



  Take a look at our official Spark NLP page: [http://nlp.johnsnowlabs.com/](http://nlp.johnsnowlabs.com/) for user
  documentation and examples



  - [Slack](https://join.slack.com/t/spark-nlp/shared_invite/zt-198dipu77-L3UWNe_AJ8xqDk0ivmih5Q) For live discussion with the Spark NLP community and the team
  - [GitHub](https://github.com/JohnSnowLabs/spark-nlp) Bug reports, feature requests, and contributions
  - [Discussions](https://github.com/JohnSnowLabs/spark-nlp/discussions) Engage with other community members, share ideas,
    and show off how you use Spark NLP!
  - [Medium](https://medium.com/spark-nlp) Spark NLP articles
  - [YouTube](https://www.youtube.com/channel/UCmFOjlpYEhxf_wJUDuz6xxQ/videos) Spark NLP video tutorials



  - [Features](#features)
  - [Requirements](#requirements)
  - [Quick Start](#quick-start)
  - [Apache Spark Support](#apache-spark-support)
  - [Scala & Python Support](#scala-and-python-support)
  - [Databricks Support](#databricks-support)
  - [EMR Support](#emr-support)
  - [Using Spark NLP](#usage)
      - [Packages Cheatsheet](#packages-cheatsheet)
      - [Spark Packages](#spark-packages)
      - [Scala](#scala)
          - [Maven](#maven)
          - [SBT](#sbt)
      - [Python](#python)
          - [Pip/Conda](#pipconda)
      - [Compiled JARs](#compiled-jars)
      - [Apache Zeppelin](#apache-zeppelin)
      - [Jupyter Notebook](#jupyter-notebook-python)
      - [Google Colab Notebook](#google-colab-notebook)
      - [Kaggle Kernel](#kaggle-kernel)
      - [Databricks Cluster](#databricks-cluster)
      - [EMR Cluster](#emr-cluster)
      - [GCP Dataproc](#gcp-dataproc)
      - [Spark NLP Configuration](#spark-nlp-configuration)
  - [Pipelines & Models](#pipelines-and-models)
      - [Pipelines](#pipelines)
      - [Models](#models)
  - [Offline](#offline)
  - [Examples](#examples)
  - [FAQ](#faq)
  - [Citation](#citation)
  - [Contributing](#contributing)



  - Tokenization
  - Trainable Word Segmentation
  - Stop Words Removal
  - Token Normalizer
  - Document Normalizer
  - Stemmer
  - Lemmatizer
  - NGrams
  - Regex Matching
  - Text Matching
  - Chunking
  - Date Matcher
  - Sentence Detector
  - Deep Sentence Detector (Deep learning)
  - Dependency parsing (Labeled/unlabeled)
  - SpanBertCorefModel (Coreference Resolution)
  - Part-of-speech tagging
  - Sentiment Detection (ML models)
  - Spell Checker (ML and DL models)
  - Word Embeddings (GloVe and Word2Vec)
  - Doc2Vec (based on Word2Vec)
  - BERT Embeddings (TF Hub & HuggingFace models)
  - DistilBERT Embeddings (HuggingFace models)
  - CamemBERT Embeddings (HuggingFace models)
  - RoBERTa Embeddings (HuggingFace models)
  - DeBERTa Embeddings (HuggingFace v2 & v3 models)
  - XLM-RoBERTa Embeddings (HuggingFace models)
  - Longformer Embeddings (HuggingFace models)
  - ALBERT Embeddings (TF Hub & HuggingFace models)
  - XLNet Embeddings
  - ELMO Embeddings (TF Hub models)
  - Universal Sentence Encoder (TF Hub models)
  - BERT Sentence Embeddings (TF Hub & HuggingFace models)
  - RoBerta Sentence Embeddings (HuggingFace models)
  - XLM-RoBerta Sentence Embeddings (HuggingFace models)
  - Sentence Embeddings
  - Chunk Embeddings
  - Unsupervised keywords extraction
  - Language Detection & Identification (up to 375 languages)
  - Multi-class Sentiment analysis (Deep learning)
  - Multi-label Sentiment analysis (Deep learning)
  - Multi-class Text Classification (Deep learning)
  - BERT for Token & Sequence Classification
  - DistilBERT for Token & Sequence Classification
  - CamemBERT for Token & Sequence Classification
  - ALBERT for Token & Sequence Classification
  - RoBERTa for Token & Sequence Classification
  - DeBERTa for Token & Sequence Classification
  - XLM-RoBERTa for Token & Sequence Classification
  - XLNet for Token & Sequence Classification
  - Longformer for Token & Sequence Classification
  - BERT for Token & Sequence Classification
  - BERT for Question Answering
  - CamemBERT for Question Answering
  - DistilBERT for Question Answering
  - ALBERT for Question Answering
  - RoBERTa for Question Answering
  - DeBERTa for Question Answering
  - XLM-RoBERTa for Question Answering
  - Longformer for Question Answering
  - Table Question Answering (TAPAS)
  - Zero-Shot NER Model
  - Neural Machine Translation (MarianMT)
  - Text-To-Text Transfer Transformer (Google T5)
  - Generative Pre-trained Transformer 2 (OpenAI GPT2)
  - Vision Transformer (ViT)
  - Swin Image Classification
  - Automatic Speech Recognition (Wav2Vec2)
  - Automatic Speech Recognition (HuBERT)
  - Named entity recognition (Deep learning)
  - Easy TensorFlow integration
  - GPU Support
  - Full integration with Spark ML functions
  - +9400 pre-trained models in +200 languages!
  - +3200 pre-trained pipelines in +200 languages!
  - Multi-lingual NER models: Arabic, Bengali, Chinese, Danish, Dutch, English, Finnish, French, German, Hebrew, Italian,
    Japanese, Korean, Norwegian, Persian, Polish, Portuguese, Russian, Spanish, Swedish, Urdu, and more.



  To use Spark NLP you need the following requirements:

  - Java 8 and 11
  - Apache Spark 3.3.x, 3.2.x, 3.1.x, 3.0.x

  **GPU (optional):**

  Spark NLP 4.3.2 is built with TensorFlow 2.7.1 and the following NVIDIA® software are only required for GPU support:

  - NVIDIA® GPU drivers version 450.80.02 or higher
  - CUDA® Toolkit 11.2
  - cuDNN SDK 8.1.0



  This is a quick example of how to use Spark NLP pre-trained pipeline in Python and PySpark:

  ```sh
  $ java -version

  $ conda create -n sparknlp python=3.7 -y
  $ conda activate sparknlp

  $ pip install spark-nlp==4.3.2 pyspark==3.3.1
  ```

  In Python console or Jupyter `Python3` kernel:

  ```python

  from sparknlp.base import *
  from sparknlp.annotator import *
  from sparknlp.pretrained import PretrainedPipeline
  import sparknlp






  spark = sparknlp.start()


  pipeline = PretrainedPipeline('explain_document_dl', lang='en')


  text = """
  The Mona Lisa is a 16th century oil painting created by Leonardo.
  It's held at the Louvre in Paris.
  """


  result = pipeline.annotate(text)


  list(result.keys())
  Output: ['entities', 'stem', 'checked', 'lemma', 'document',
           'pos', 'token', 'ner', 'embeddings', 'sentence']


  result['entities']
  Output: ['Mona Lisa', 'Leonardo', 'Louvre', 'Paris']
  ```

  For more examples, you can visit our dedicated [examples](https://github.com/JohnSnowLabs/spark-nlp/tree/master/examples) to showcase all Spark NLP use cases!



  Spark NLP *4.3.2* has been built on top of Apache Spark 3.2 while fully supports Apache Spark 3.0.x, 3.1.x, 3.2.x, and
  3.3.x:

  | Spark NLP | Apache Spark 2.3.x | Apache Spark 2.4.x | Apache Spark 3.0.x | Apache Spark 3.1.x | Apache Spark 3.2.x | Apache Spark 3.3.x |
  |-----------|--------------------|--------------------|--------------------|--------------------|--------------------|--------------------|
  | 4.3.x     | NO                 | NO                 | YES                | YES                | YES                | YES                |
  | 4.2.x     | NO                 | NO                 | YES                | YES                | YES                | YES                |
  | 4.1.x     | NO                 | NO                 | YES                | YES                | YES                | YES                |
  | 4.0.x     | NO                 | NO                 | YES                | YES                | YES                | YES                |
  | 3.4.x     | YES                | YES                | YES                | YES                | Partially          | N/A                |
  | 3.3.x     | YES                | YES                | YES                | YES                | NO                 | NO                 |
  | 3.2.x     | YES                | YES                | YES                | YES                | NO                 | NO                 |
  | 3.1.x     | YES                | YES                | YES                | YES                | NO                 | NO                 |
  | 3.0.x     | YES                | YES                | YES                | YES                | NO                 | NO                 |
  | 2.7.x     | YES                | YES                | NO                 | NO                 | NO                 | NO                 |

  NOTE: Starting 4.0.0 release, the default `spark-nlp` and `spark-nlp-gpu` packages are based on Scala 2.12.15 and Apache
  Spark 3.2 by default.

  Find out more about `Spark NLP` versions from our [release notes](https://github.com/JohnSnowLabs/spark-nlp/releases).



  | Spark NLP | Python 3.6 | Python 3.7 | Python 3.8 | Python 3.9 | Scala 2.11 | Scala 2.12 |
  |-----------|------------|------------|------------|------------|------------|------------|
  | 4.3.x     | YES        | YES        | YES        | YES        | NO         | YES        |
  | 4.2.x     | YES        | YES        | YES        | YES        | NO         | YES        |
  | 4.1.x     | YES        | YES        | YES        | YES        | NO         | YES        |
  | 4.0.x     | YES        | YES        | YES        | YES        | NO         | YES        |
  | 3.4.x     | YES        | YES        | YES        | YES        | YES        | YES        |
  | 3.3.x     | YES        | YES        | YES        | NO         | YES        | YES        |
  | 3.2.x     | YES        | YES        | YES        | NO         | YES        | YES        |
  | 3.1.x     | YES        | YES        | YES        | NO         | YES        | YES        |
  | 3.0.x     | YES        | YES        | YES        | NO         | YES        | YES        |
  | 2.7.x     | YES        | YES        | NO         | NO         | YES        | NO         |



  Spark NLP 4.3.2 has been tested and is compatible with the following runtimes:

  **CPU:**

  - 7.3
  - 7.3 ML
  - 9.1
  - 9.1 ML
  - 10.1
  - 10.1 ML
  - 10.2
  - 10.2 ML
  - 10.3
  - 10.3 ML
  - 10.4
  - 10.4 ML
  - 10.5
  - 10.5 ML
  - 11.0
  - 11.0 ML
  - 11.1
  - 11.1 ML
  - 11.2
  - 11.2 ML
  - 11.3
  - 11.3 ML

  **GPU:**

  - 9.1 ML & GPU
  - 10.1 ML & GPU
  - 10.2 ML & GPU
  - 10.3 ML & GPU
  - 10.4 ML & GPU
  - 10.5 ML & GPU
  - 11.0 ML & GPU
  - 11.1 ML & GPU
  - 11.2 ML & GPU
  - 11.3 ML & GPU

  NOTE: Spark NLP 4.x is based on TensorFlow 2.7.x which is compatible with CUDA11 and cuDNN 8.0.2. The only Databricks
  runtimes supporting CUDA 11 are 9.x and above as listed under GPU.



  Spark NLP 4.3.2 has been tested and is compatible with the following EMR releases:

  - emr-6.2.0
  - emr-6.3.0
  - emr-6.3.1
  - emr-6.4.0
  - emr-6.5.0
  - emr-6.6.0
  - emr-6.7.0

  Full list of [Amazon EMR 6.x releases](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-release-6x.html)

  NOTE: The EMR 6.1.0 and 6.1.1 are not supported.





  This is a cheatsheet for corresponding Spark NLP Maven package to Apache Spark / PySpark major version:

  | Apache Spark    | Spark NLP on CPU   | Spark NLP on GPU           | Spark NLP on AArch64 (linux)   | Spark NLP on Apple Silicon           |
  |-----------------|--------------------|----------------------------|--------------------------------|--------------------------------------|
  | 3.0/3.1/3.2/3.3 | `spark-nlp`        | `spark-nlp-gpu`            | `spark-nlp-aarch64`            | `spark-nlp-silicon`                  |
  | Start Function  | `sparknlp.start()` | `sparknlp.start(gpu=True)` | `sparknlp.start(aarch64=True)` | `sparknlp.start(apple_silicon=True)` |

  NOTE: `M1/M2` and `AArch64` are under `experimental` support. Access and support to these architectures are limited by the
  community and we had to build most of the dependencies by ourselves to make them compatible. We support these two
  architectures, however, they may not work in some environments.





  Spark NLP supports all major releases of Apache Spark 3.0.x, Apache Spark 3.1.x, Apache Spark 3.2.x, and Apache Spark
  3.3.x.



  ```sh


  spark-shell --packages com.johnsnowlabs.nlp:spark-nlp_2.12:4.3.2

  pyspark --packages com.johnsnowlabs.nlp:spark-nlp_2.12:4.3.2

  spark-submit --packages com.johnsnowlabs.nlp:spark-nlp_2.12:4.3.2
  ```

  The `spark-nlp` has been published to
  the [Maven Repository](https://mvnrepository.com/artifact/com.johnsnowlabs.nlp/spark-nlp).

  ```sh


  spark-shell --packages com.johnsnowlabs.nlp:spark-nlp-gpu_2.12:4.3.2

  pyspark --packages com.johnsnowlabs.nlp:spark-nlp-gpu_2.12:4.3.2

  spark-submit --packages com.johnsnowlabs.nlp:spark-nlp-gpu_2.12:4.3.2

  ```

  The `spark-nlp-gpu` has been published to
  the [Maven Repository](https://mvnrepository.com/artifact/com.johnsnowlabs.nlp/spark-nlp-gpu).

  ```sh


  spark-shell --packages com.johnsnowlabs.nlp:spark-nlp-aarch64_2.12:4.3.2

  pyspark --packages com.johnsnowlabs.nlp:spark-nlp-aarch64_2.12:4.3.2

  spark-submit --packages com.johnsnowlabs.nlp:spark-nlp-aarch64_2.12:4.3.2

  ```

  The `spark-nlp-aarch64` has been published to
  the [Maven Repository](https://mvnrepository.com/artifact/com.johnsnowlabs.nlp/spark-nlp-aarch64).

  ```sh


  spark-shell --packages com.johnsnowlabs.nlp:spark-nlp-silicon_2.12:4.3.2

  pyspark --packages com.johnsnowlabs.nlp:spark-nlp-silicon_2.12:4.3.2

  spark-submit --packages com.johnsnowlabs.nlp:spark-nlp-silicon_2.12:4.3.2

  ```

  The `spark-nlp-silicon` has been published to
  the [Maven Repository](https://mvnrepository.com/artifact/com.johnsnowlabs.nlp/spark-nlp-silicon).

  **NOTE**: In case you are using large pretrained models like UniversalSentenceEncoder, you need to have the following
  set in your SparkSession:

  ```sh
  spark-shell \
    --driver-memory 16g \
    --conf spark.kryoserializer.buffer.max=2000M \
    --packages com.johnsnowlabs.nlp:spark-nlp_2.12:4.3.2
  ```



  Spark NLP supports Scala 2.12.15 if you are using Apache Spark 3.0.x, 3.1.x, 3.2.x, and 3.3.x versions. Our packages are
  deployed to Maven central. To add any of our packages as a dependency in your application you can follow these
  coordinates:



  **spark-nlp** on Apache Spark 3.0.x, 3.1.x, 3.2.x, and 3.3.x:

  ```xml
  <!-- https://mvnrepository.com/artifact/com.johnsnowlabs.nlp/spark-nlp -->
  <dependency>
      <groupId>com.johnsnowlabs.nlp</groupId>
      <artifactId>spark-nlp_2.12</artifactId>
      <version>4.3.2</version>
  </dependency>
  ```

  **spark-nlp-gpu:**

  ```xml
  <!-- https://mvnrepository.com/artifact/com.johnsnowlabs.nlp/spark-nlp-gpu -->
  <dependency>
      <groupId>com.johnsnowlabs.nlp</groupId>
      <artifactId>spark-nlp-gpu_2.12</artifactId>
      <version>4.3.2</version>
  </dependency>
  ```

  **spark-nlp-aarch64:**

  ```xml
  <!-- https://mvnrepository.com/artifact/com.johnsnowlabs.nlp/spark-nlp-aarch64 -->
  <dependency>
      <groupId>com.johnsnowlabs.nlp</groupId>
      <artifactId>spark-nlp-aarch64_2.12</artifactId>
      <version>4.3.2</version>
  </dependency>
  ```

  **spark-nlp-silicon:**

  ```xml
  <!-- https://mvnrepository.com/artifact/com.johnsnowlabs.nlp/spark-nlp-silicon -->
  <dependency>
      <groupId>com.johnsnowlabs.nlp</groupId>
      <artifactId>spark-nlp-silicon_2.12</artifactId>
      <version>4.3.2</version>
  </dependency>
  ```



  **spark-nlp** on Apache Spark 3.0.x, 3.1.x, 3.2.x, and 3.3.x:

  ```sbtshell
  // https://mvnrepository.com/artifact/com.johnsnowlabs.nlp/spark-nlp
  libraryDependencies += "com.johnsnowlabs.nlp" % "spark-nlp" % "4.3.2"
  ```

  **spark-nlp-gpu:**

  ```sbtshell
  // https://mvnrepository.com/artifact/com.johnsnowlabs.nlp/spark-nlp-gpu
  libraryDependencies += "com.johnsnowlabs.nlp" % "spark-nlp-gpu" % "4.3.2"
  ```

  **spark-nlp-aarch64:**

  ```sbtshell
  // https://mvnrepository.com/artifact/com.johnsnowlabs.nlp/spark-nlp-aarch64
  libraryDependencies += "com.johnsnowlabs.nlp" % "spark-nlp-aarch64" % "4.3.2"
  ```

  **spark-nlp-silicon:**

  ```sbtshell
  // https://mvnrepository.com/artifact/com.johnsnowlabs.nlp/spark-nlp-silicon
  libraryDependencies += "com.johnsnowlabs.nlp" % "spark-nlp-silicon" % "4.3.2"
  ```

  Maven
  Central: [https://mvnrepository.com/artifact/com.johnsnowlabs.nlp](https://mvnrepository.com/artifact/com.johnsnowlabs.nlp)

  If you are interested, there is a simple SBT project for Spark NLP to guide you on how to use it in your
  projects [Spark NLP SBT Starter](https://github.com/maziyarpanahi/spark-nlp-starter)



  Spark NLP supports Python 3.6.x and above depending on your major PySpark version.





  If you installed pyspark through pip/conda, you can install `spark-nlp` through the same channel.

  Pip:

  ```bash
  pip install spark-nlp==4.3.2
  ```

  Conda:

  ```bash
  conda install -c johnsnowlabs spark-nlp
  ```

  PyPI [spark-nlp package](https://pypi.org/project/spark-nlp/) /
  Anaconda [spark-nlp package](https://anaconda.org/JohnSnowLabs/spark-nlp)

  Then you'll have to create a SparkSession either from Spark NLP:

  ```python
  import sparknlp

  spark = sparknlp.start()
  ```

  or manually:

  ```python
  spark = SparkSession.builder
      .appName("Spark NLP")
      .master("local[*]")
      .config("spark.driver.memory", "16G")
      .config("spark.driver.maxResultSize", "0")
      .config("spark.kryoserializer.buffer.max", "2000M")
      .config("spark.jars.packages", "com.johnsnowlabs.nlp:spark-nlp_2.12:4.3.2")
      .getOrCreate()
  ```

  If using local jars, you can use `spark.jars` instead for comma-delimited jar files. For cluster setups, of course,
  you'll have to put the jars in a reachable location for all driver and executor nodes.

  **Quick example:**

  ```python
  import sparknlp
  from sparknlp.pretrained import PretrainedPipeline



  spark = sparknlp.start()

  sparknlp.version()
  spark.version



  pipeline = PretrainedPipeline('recognize_entities_dl', 'en')
  result = pipeline.annotate('The Mona Lisa is a 16th century oil painting created by Leonardo')
  ```







  - FAT-JAR for CPU on Apache Spark 3.0.x, 3.1.x, 3.2.x, and 3.3.x

  ```bash
  sbt assembly
  ```

  - FAT-JAR for GPU on Apache Spark 3.0.x, 3.1.x, 3.2.x, and 3.3.x

  ```bash
  sbt -Dis_gpu=true assembly
  ```

  - FAT-JAR for M! on Apache Spark 3.0.x, 3.1.x, 3.2.x, and 3.3.x

  ```bash
  sbt -Dis_silicon=true assembly
  ```



  If for some reason you need to use the JAR, you can either download the Fat JARs provided here or download it
  from [Maven Central](https://mvnrepository.com/artifact/com.johnsnowlabs.nlp).

  To add JARs to spark programs use the `--jars` option:

  ```sh
  spark-shell --jars spark-nlp.jar
  ```

  The preferred way to use the library when running spark programs is using the `--packages` option as specified in
  the `spark-packages` section.



  Use either one of the following options

  - Add the following Maven Coordinates to the interpreter's library list

  ```bash
  com.johnsnowlabs.nlp:spark-nlp_2.12:4.3.2
  ```

  - Add a path to pre-built jar from [here](#compiled-jars) in the interpreter's library list making sure the jar is
    available to driver path



  Apart from the previous step, install the python module through pip

  ```bash
  pip install spark-nlp==4.3.2
  ```

  Or you can install `spark-nlp` from inside Zeppelin by using Conda:

  ```bash
  python.conda install -c johnsnowlabs spark-nlp
  ```

  Configure Zeppelin properly, use cells with %spark.pyspark or any interpreter name you chose.

  Finally, in Zeppelin interpreter settings, make sure you set properly zeppelin.python to the python you want to use and
  install the pip library with (e.g. `python3`).

  An alternative option would be to set `SPARK_SUBMIT_OPTIONS` (zeppelin-env.sh) and make sure `--packages` is there as
  shown earlier since it includes both scala and python side installation.



  **Recommended:**

  The easiest way to get this done on Linux and macOS is to simply install `spark-nlp` and `pyspark` PyPI packages and
  launch the Jupyter from the same Python environment:

  ```sh
  $ conda create -n sparknlp python=3.8 -y
  $ conda activate sparknlp

  $ pip install spark-nlp==4.3.2 pyspark==3.3.1 jupyter
  $ jupyter notebook
  ```

  Then you can use `python3` kernel to run your code with creating SparkSession via `spark = sparknlp.start()`.

  **Optional:**

  If you are in different operating systems and require to make Jupyter Notebook run by using pyspark, you can follow
  these steps:

  ```bash
  export SPARK_HOME=/path/to/your/spark/folder
  export PYSPARK_PYTHON=python3
  export PYSPARK_DRIVER_PYTHON=jupyter
  export PYSPARK_DRIVER_PYTHON_OPTS=notebook

  pyspark --packages com.johnsnowlabs.nlp:spark-nlp_2.12:4.3.2
  ```

  Alternatively, you can mix in using `--jars` option for pyspark + `pip install spark-nlp`

  If not using pyspark at all, you'll have to run the instructions
  pointed [here](#python-without-explicit-Pyspark-installation)



  Google Colab is perhaps the easiest way to get started with spark-nlp. It requires no installation or setup other than
  having a Google account.

  Run the following code in Google Colab notebook and start using spark-nlp right away.

  ```sh

  !wget https://setup.johnsnowlabs.com/colab.sh -O - | bash
  ```

  This script comes with the two options to define `pyspark` and `spark-nlp` versions via options:

  ```sh




  !wget https://setup.johnsnowlabs.com/colab.sh -O - | bash /dev/stdin -p 3.2.3 -s 4.3.2
  ```

  [Spark NLP quick start on Google Colab](https://colab.research.google.com/github/JohnSnowLabs/spark-nlp/blob/master/examples/python/quick_start_google_colab.ipynb)
  is a live demo on Google Colab that performs named entity recognitions and sentiment analysis by using Spark NLP
  pretrained pipelines.



  Run the following code in Kaggle Kernel and start using spark-nlp right away.

  ```sh

  !wget https://setup.johnsnowlabs.com/kaggle.sh -O - | bash
  ```

  This script comes with the two options to define `pyspark` and `spark-nlp` versions via options:

  ```sh




  !wget https://setup.johnsnowlabs.com/colab.sh -O - | bash /dev/stdin -p 3.2.3 -s 4.3.2
  ```

  [Spark NLP quick start on Kaggle Kernel](https://www.kaggle.com/mozzie/spark-nlp-named-entity-recognition) is a live
  demo on Kaggle Kernel that performs named entity recognitions by using Spark NLP pretrained pipeline.



  1. Create a cluster if you don't have one already

  2. On a new cluster or existing one you need to add the following to the `Advanced Options -> Spark` tab:

      ```bash
      spark.kryoserializer.buffer.max 2000M
      spark.serializer org.apache.spark.serializer.KryoSerializer
      ```

  3. In `Libraries` tab inside your cluster you need to follow these steps:

     3.1. Install New -> PyPI -> `spark-nlp==4.3.2` -> Install

     3.2. Install New -> Maven -> Coordinates -> `com.johnsnowlabs.nlp:spark-nlp_2.12:4.3.2` -> Install

  4. Now you can attach your notebook to the cluster and use Spark NLP!

  NOTE: Databricks' runtimes support different Apache Spark major releases. Please make sure you choose the correct Spark
  NLP Maven package name (Maven Coordinate) for your runtime from
  our [Packages Cheatsheet](https://github.com/JohnSnowLabs/spark-nlp#packages-cheatsheet)



  To launch EMR clusters with Apache Spark/PySpark and Spark NLP correctly you need to have bootstrap and software
  configuration.

  A sample of your bootstrap script

  ```.sh

  set -x -e

  echo -e 'export PYSPARK_PYTHON=/usr/bin/python3
  export HADOOP_CONF_DIR=/etc/hadoop/conf
  export SPARK_JARS_DIR=/usr/lib/spark/jars
  export SPARK_HOME=/usr/lib/spark' >> $HOME/.bashrc && source $HOME/.bashrc

  sudo python3 -m pip install awscli boto spark-nlp

  set +x
  exit 0

  ```

  A sample of your software configuration in JSON on S3 (must be public access):

  ```.json
  [{
    "Classification": "spark-env",
    "Configurations": [{
      "Classification": "export",
      "Properties": {
        "PYSPARK_PYTHON": "/usr/bin/python3"
      }
    }]
  },
  {
    "Classification": "spark-defaults",
      "Properties": {
        "spark.yarn.stagingDir": "hdfs:///tmp",
        "spark.yarn.preserve.staging.files": "true",
        "spark.kryoserializer.buffer.max": "2000M",
        "spark.serializer": "org.apache.spark.serializer.KryoSerializer",
        "spark.driver.maxResultSize": "0",
        "spark.jars.packages": "com.johnsnowlabs.nlp:spark-nlp_2.12:4.3.2"
      }
  }]
  ```

  A sample of AWS CLI to launch EMR cluster:

  ```.sh
  aws emr create-cluster \
  --name "Spark NLP 4.3.2" \
  --release-label emr-6.2.0 \
  --applications Name=Hadoop Name=Spark Name=Hive \
  --instance-type m4.4xlarge \
  --instance-count 3 \
  --use-default-roles \
  --log-uri "s3://<S3_BUCKET>/" \
  --bootstrap-actions Path=s3://<S3_BUCKET>/emr-bootstrap.sh,Name=custome \
  --configurations "https://<public_access>/sparknlp-config.json" \
  --ec2-attributes KeyName=<your_ssh_key>,EmrManagedMasterSecurityGroup=<security_group_with_ssh>,EmrManagedSlaveSecurityGroup=<security_group_with_ssh> \
  --profile <aws_profile_credentials>
  ```



  1. Create a cluster if you don't have one already as follows.

  At gcloud shell:

  ```bash
  gcloud services enable dataproc.googleapis.com \
    compute.googleapis.com \
    storage-component.googleapis.com \
    bigquery.googleapis.com \
    bigquerystorage.googleapis.com
  ```

  ```bash
  REGION=<region>
  ```

  ```bash
  BUCKET_NAME=<bucket_name>
  gsutil mb -c standard -l ${REGION} gs://${BUCKET_NAME}
  ```

  ```bash
  REGION=<region>
  ZONE=<zone>
  CLUSTER_NAME=<cluster_name>
  BUCKET_NAME=<bucket_name>
  ```

  You can set image-version, master-machine-type, worker-machine-type,
  master-boot-disk-size, worker-boot-disk-size, num-workers as your needs.
  If you use the previous image-version from 2.0, you should also add ANACONDA to optional-components.
  And, you should enable gateway.
  Don't forget to set the maven coordinates for the jar in properties.

  ```bash
  gcloud dataproc clusters create ${CLUSTER_NAME} \
    --region=${REGION} \
    --zone=${ZONE} \
    --image-version=2.0 \
    --master-machine-type=n1-standard-4 \
    --worker-machine-type=n1-standard-2 \
    --master-boot-disk-size=128GB \
    --worker-boot-disk-size=128GB \
    --num-workers=2 \
    --bucket=${BUCKET_NAME} \
    --optional-components=JUPYTER \
    --enable-component-gateway \
    --metadata 'PIP_PACKAGES=spark-nlp spark-nlp-display google-cloud-bigquery google-cloud-storage' \
    --initialization-actions gs://goog-dataproc-initialization-actions-${REGION}/python/pip-install.sh \
    --properties spark:spark.serializer=org.apache.spark.serializer.KryoSerializer,spark:spark.driver.maxResultSize=0,spark:spark.kryoserializer.buffer.max=2000M,spark:spark.jars.packages=com.johnsnowlabs.nlp:spark-nlp_2.12:4.3.2
  ```

  2. On an existing one, you need to install spark-nlp and spark-nlp-display packages from PyPI.

  3. Now, you can attach your notebook to the cluster and use the Spark NLP!



  You can change the following Spark NLP configurations via Spark Configuration:

  | Property Name                                          | Default              | Meaning                                                                                                                                                                                                                                                                            |
  |--------------------------------------------------------|----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | `spark.jsl.settings.pretrained.cache_folder`           | `~/cache_pretrained` | The location to download and extract pretrained `Models` and `Pipelines`. By default, it will be in User's Home directory under `cache_pretrained` directory                                                                                                                       |
  | `spark.jsl.settings.storage.cluster_tmp_dir`           | `hadoop.tmp.dir`     | The location to use on a cluster for temporarily files such as unpacking indexes for WordEmbeddings. By default, this locations is the location of `hadoop.tmp.dir` set via Hadoop configuration for Apache Spark. NOTE: `S3` is not supported and it must be local, HDFS, or DBFS |
  | `spark.jsl.settings.annotator.log_folder`              | `~/annotator_logs`   | The location to save logs from annotators during training such as `NerDLApproach`, `ClassifierDLApproach`, `SentimentDLApproach`, `MultiClassifierDLApproach`, etc. By default, it will be in User's Home directory under `annotator_logs` directory                               |
  | `spark.jsl.settings.aws.credentials.access_key_id`     | `None`               | Your AWS access key to use your S3 bucket to store log files of training models or access tensorflow graphs used in `NerDLApproach`                                                                                                                                                |
  | `spark.jsl.settings.aws.credentials.secret_access_key` | `None`               | Your AWS secret access key to use your S3 bucket to store log files of training models or access tensorflow graphs used in `NerDLApproach`                                                                                                                                         |
  | `spark.jsl.settings.aws.credentials.session_token`     | `None`               | Your AWS MFA session token to use your S3 bucket to store log files of training models or access tensorflow graphs used in `NerDLApproach`                                                                                                                                         |
  | `spark.jsl.settings.aws.s3_bucket`                     | `None`               | Your AWS S3 bucket to store log files of training models or access tensorflow graphs used in `NerDLApproach`                                                                                                                                                                       |
  | `spark.jsl.settings.aws.region`                        | `None`               | Your AWS region to use your S3 bucket to store log files of training models or access tensorflow graphs used in `NerDLApproach`                                                                                                                                                    |



  **SparkSession:**

  You can use `.config()` during SparkSession creation to set Spark NLP configurations.

  ```python
  from pyspark.sql import SparkSession

  spark = SparkSession.builder
      .master("local[*]")
      .config("spark.driver.memory", "16G")
      .config("spark.driver.maxResultSize", "0")
      .config("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
      .config("spark.kryoserializer.buffer.max", "2000m")
      .config("spark.jsl.settings.pretrained.cache_folder", "sample_data/pretrained")
      .config("spark.jsl.settings.storage.cluster_tmp_dir", "sample_data/storage")
      .config("spark.jars.packages", "com.johnsnowlabs.nlp:spark-nlp_2.12:4.3.2")
      .getOrCreate()
  ```

  **spark-shell:**

  ```sh
  spark-shell \
    --driver-memory 16g \
    --conf spark.driver.maxResultSize=0 \
    --conf spark.serializer=org.apache.spark.serializer.KryoSerializer
    --conf spark.kryoserializer.buffer.max=2000M \
    --conf spark.jsl.settings.pretrained.cache_folder="sample_data/pretrained" \
    --conf spark.jsl.settings.storage.cluster_tmp_dir="sample_data/storage" \
    --packages com.johnsnowlabs.nlp:spark-nlp_2.12:4.3.2
  ```

  **pyspark:**

  ```sh
  pyspark \
    --driver-memory 16g \
    --conf spark.driver.maxResultSize=0 \
    --conf spark.serializer=org.apache.spark.serializer.KryoSerializer
    --conf spark.kryoserializer.buffer.max=2000M \
    --conf spark.jsl.settings.pretrained.cache_folder="sample_data/pretrained" \
    --conf spark.jsl.settings.storage.cluster_tmp_dir="sample_data/storage" \
    --packages com.johnsnowlabs.nlp:spark-nlp_2.12:4.3.2
  ```

  **Databricks:**

  On a new cluster or existing one you need to add the following to the `Advanced Options -> Spark` tab:

  ```bash
  spark.kryoserializer.buffer.max 2000M
  spark.serializer org.apache.spark.serializer.KryoSerializer
  spark.jsl.settings.pretrained.cache_folder dbfs:/PATH_TO_CACHE
  spark.jsl.settings.storage.cluster_tmp_dir dbfs:/PATH_TO_STORAGE
  spark.jsl.settings.annotator.log_folder dbfs:/PATH_TO_LOGS
  ```

  NOTE: If this is an existing cluster, after adding new configs or changing existing properties you need to restart it.



  In Spark NLP we can define S3 locations to:

  - Export log files of training models
  - Store tensorflow graphs used in `NerDLApproach`

  **Logging:**

  To configure S3 path for logging while training models. We need to set up AWS credentials as well as an S3 path

  ```bash
  spark.conf.set("spark.jsl.settings.annotator.log_folder", "s3://my/s3/path/logs")
  spark.conf.set("spark.jsl.settings.aws.credentials.access_key_id", "MY_KEY_ID")
  spark.conf.set("spark.jsl.settings.aws.credentials.secret_access_key", "MY_SECRET_ACCESS_KEY")
  spark.conf.set("spark.jsl.settings.aws.s3_bucket", "my.bucket")
  spark.conf.set("spark.jsl.settings.aws.region", "my-region")
  ```

  Now you can check the log on your S3 path defined in *spark.jsl.settings.annotator.log_folder* property.
  Make sure to use the prefix *s3://*, otherwise it will use the default configuration.

  **Tensorflow Graphs:**

  To reference S3 location for downloading graphs. We need to set up AWS credentials

  ```bash
  spark.conf.set("spark.jsl.settings.aws.credentials.access_key_id", "MY_KEY_ID")
  spark.conf.set("spark.jsl.settings.aws.credentials.secret_access_key", "MY_SECRET_ACCESS_KEY")
  spark.conf.set("spark.jsl.settings.aws.region", "my-region")
  ```

  **MFA Configuration:**

  In case your AWS account is configured with MFA. You will need first to get temporal credentials and add session token
  to the configuration as shown in the examples below
  For logging:

  ```bash
  spark.conf.set("spark.jsl.settings.aws.credentials.session_token", "MY_TOKEN")
  ```

  An example of a bash script that gets temporal AWS credentials can be
  found [here](https://github.com/JohnSnowLabs/spark-nlp/blob/master/scripts/aws_tmp_credentials.sh)
  This script requires three arguments:

  ```bash
  ./aws_tmp_credentials.sh iam_user duration serial_number
  ```





  **Quick example:**

  ```scala
  import com.johnsnowlabs.nlp.pretrained.PretrainedPipeline
  import com.johnsnowlabs.nlp.SparkNLP

  SparkNLP.version()

  val testData = spark.createDataFrame(Seq(
    (1, "Google has announced the release of a beta version of the popular TensorFlow machine learning library"),
    (2, "Donald John Trump (born June 14, 1946) is the 45th and current president of the United States")
  )).toDF("id", "text")

  val pipeline = PretrainedPipeline("explain_document_dl", lang = "en")

  val annotation = pipeline.transform(testData)

  annotation.show()
  /*
  import com.johnsnowlabs.nlp.pretrained.PretrainedPipeline
  import com.johnsnowlabs.nlp.SparkNLP
  2.5.0
  testData: org.apache.spark.sql.DataFrame = [id: int, text: string]
  pipeline: com.johnsnowlabs.nlp.pretrained.PretrainedPipeline = PretrainedPipeline(explain_document_dl,en,public/models)
  annotation: org.apache.spark.sql.DataFrame = [id: int, text: string ... 10 more fields]
  +---+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+
  | id|                text|            document|               token|            sentence|             checked|               lemma|                stem|                 pos|          embeddings|                 ner|            entities|
  +---+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+
  |  1|Google has announ...|[[document, 0, 10...|[[token, 0, 5, Go...|[[document, 0, 10...|[[token, 0, 5, Go...|[[token, 0, 5, Go...|[[token, 0, 5, go...|[[pos, 0, 5, NNP,...|[[word_embeddings...|[[named_entity, 0...|[[chunk, 0, 5, Go...|
  |  2|The Paris metro w...|[[document, 0, 11...|[[token, 0, 2, Th...|[[document, 0, 11...|[[token, 0, 2, Th...|[[token, 0, 2, Th...|[[token, 0, 2, th...|[[pos, 0, 2, DT, ...|[[word_embeddings...|[[named_entity, 0...|[[chunk, 4, 8, Pa...|
  +---+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+
  */

  annotation.select("entities.result").show(false)

  /*
  +----------------------------------+
  |result                            |
  +----------------------------------+
  |[Google, TensorFlow]              |
  |[Donald John Trump, United States]|
  +----------------------------------+
  */
  ```



  There are functions in Spark NLP that will list all the available Pipelines
  of a particular language for you:

  ```scala
  import com.johnsnowlabs.nlp.pretrained.ResourceDownloader

  ResourceDownloader.showPublicPipelines(lang = "en")
  /*
  +--------------------------------------------+------+---------+
  | Pipeline                                   | lang | version |
  +--------------------------------------------+------+---------+
  | dependency_parse                           |  en  | 2.0.2   |
  | analyze_sentiment_ml                       |  en  | 2.0.2   |
  | check_spelling                             |  en  | 2.1.0   |
  | match_datetime                             |  en  | 2.1.0   |
                                 ...
  | explain_document_ml                        |  en  | 3.1.3   |
  +--------------------------------------------+------+---------+
  */
  ```

  Or if we want to check for a particular version:

  ```scala
  import com.johnsnowlabs.nlp.pretrained.ResourceDownloader

  ResourceDownloader.showPublicPipelines(lang = "en", version = "3.1.0")
  /*
  +---------------------------------------+------+---------+
  | Pipeline                              | lang | version |
  +---------------------------------------+------+---------+
  | dependency_parse                      |  en  | 2.0.2   |
                                 ...
  | clean_slang                           |  en  | 3.0.0   |
  | clean_pattern                         |  en  | 3.0.0   |
  | check_spelling                        |  en  | 3.0.0   |
  | dependency_parse                      |  en  | 3.0.0   |
  +---------------------------------------+------+---------+
  */
  ```





  **Some selected languages:
  ** `Afrikaans, Arabic, Armenian, Basque, Bengali, Breton, Bulgarian, Catalan, Czech, Dutch, English, Esperanto, Finnish, French, Galician, German, Greek, Hausa, Hebrew, Hindi, Hungarian, Indonesian, Irish, Italian, Japanese, Latin, Latvian, Marathi, Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Somali, Southern Sotho, Spanish, Swahili, Swedish, Tswana, Turkish, Ukrainian, Zulu`

  **Quick online example:**

  ```python

  ner_dl = NerDLModel.pretrained('ner_dl')

  ner_bert = NerDLModel.pretrained('ner_dl_bert')
  ```

  ```scala
  // load French POS tagger model trained by Universal Dependencies
  val french_pos = PerceptronModel.pretrained("pos_ud_gsd", lang = "fr")
  // load Italian LemmatizerModel
  val italian_lemma = LemmatizerModel.pretrained("lemma_dxc", lang = "it")
  ````

  **Quick offline example:**

  - Loading `PerceptronModel` annotator model inside Spark NLP Pipeline

  ```scala
  val french_pos = PerceptronModel.load("/tmp/pos_ud_gsd_fr_2.0.2_2.4_1556531457346/")
    .setInputCols("document", "token")
    .setOutputCol("pos")
  ```



  There are functions in Spark NLP that will list all the available Models
  of a particular Annotator and language for you:

  ```scala
  import com.johnsnowlabs.nlp.pretrained.ResourceDownloader

  ResourceDownloader.showPublicModels(annotator = "NerDLModel", lang = "en")
  /*
  +---------------------------------------------+------+---------+
  | Model                                       | lang | version |
  +---------------------------------------------+------+---------+
  | onto_100                                    |  en  | 2.1.0   |
  | onto_300                                    |  en  | 2.1.0   |
  | ner_dl_bert                                 |  en  | 2.2.0   |
  | onto_100                                    |  en  | 2.4.0   |
  | ner_conll_elmo                              |  en  | 3.2.2   |
  +---------------------------------------------+------+---------+
  */
  ```

  Or if we want to check for a particular version:

  ```scala
  import com.johnsnowlabs.nlp.pretrained.ResourceDownloader

  ResourceDownloader.showPublicModels(annotator = "NerDLModel", lang = "en", version = "3.1.0")
  /*
  +----------------------------+------+---------+
  | Model                      | lang | version |
  +----------------------------+------+---------+
  | onto_100                   |  en  | 2.1.0   |
  | ner_aspect_based_sentiment |  en  | 2.6.2   |
  | ner_weibo_glove_840B_300d  |  en  | 2.6.2   |
  | nerdl_atis_840b_300d       |  en  | 2.7.1   |
  | nerdl_snips_100d           |  en  | 2.7.3   |
  +----------------------------+------+---------+
  */
  ```

  And to see a list of available annotators, you can use:

  ```scala
  import com.johnsnowlabs.nlp.pretrained.ResourceDownloader

  ResourceDownloader.showAvailableAnnotators()
  /*
  AlbertEmbeddings
  AlbertForTokenClassification
  AssertionDLModel
  ...
  XlmRoBertaSentenceEmbeddings
  XlnetEmbeddings
  */
  ```





  Spark NLP library and all the pre-trained models/pipelines can be used entirely offline with no access to the Internet.
  If you are behind a proxy or a firewall with no access to the Maven repository (to download packages) or/and no access
  to S3 (to automatically download models and pipelines), you can simply follow the instructions to have Spark NLP without
  any limitations offline:

  - Instead of using the Maven package, you need to load our Fat JAR
  - Instead of using PretrainedPipeline for pretrained pipelines or the `.pretrained()` function to download pretrained
    models, you will need to manually download your pipeline/model from [Models Hub](https://nlp.johnsnowlabs.com/models),
    extract it, and load it.

  Example of `SparkSession` with Fat JAR to have Spark NLP offline:

  ```python
  spark = SparkSession.builder
      .appName("Spark NLP")
      .master("local[*]")
      .config("spark.driver.memory", "16G")
      .config("spark.driver.maxResultSize", "0")
      .config("spark.kryoserializer.buffer.max", "2000M")
      .config("spark.jars", "/tmp/spark-nlp-assembly-4.3.2.jar")
      .getOrCreate()
  ```

  - You can download provided Fat JARs from each [release notes](https://github.com/JohnSnowLabs/spark-nlp/releases),
    please pay attention to pick the one that suits your environment depending on the device (CPU/GPU) and Apache Spark
    version (3.0.x, 3.1.x, 3.2.x, and 3.3.x)
  - If you are local, you can load the Fat JAR from your local FileSystem, however, if you are in a cluster setup you need
    to put the Fat JAR on a distributed FileSystem such as HDFS, DBFS, S3, etc. (
    i.e., `hdfs:///tmp/spark-nlp-assembly-4.3.2.jar`)

  Example of using pretrained Models and Pipelines in offline:

  ```python



  french_pos = PerceptronModel.load("/tmp/pos_ud_gsd_fr_2.0.2_2.4_1556531457346/")
      .setInputCols("document", "token")
      .setOutputCol("pos")





  PipelineModel.load("/tmp/explain_document_dl_en_2.0.2_2.4_1556530585689/")
  ```

  - Since you are downloading and loading models/pipelines manually, this means Spark NLP is not downloading the most
    recent and compatible models/pipelines for you. Choosing the right model/pipeline is on you
  - If you are local, you can load the model/pipeline from your local FileSystem, however, if you are in a cluster setup
    you need to put the model/pipeline on a distributed FileSystem such as HDFS, DBFS, S3, etc. (
    i.e., `hdfs:///tmp/explain_document_dl_en_2.0.2_2.4_1556530585689/`)



  Need more **examples**? Check out our dedicated [Spark NLP Examples](https://github.com/JohnSnowLabs/spark-nlp/tree/master/examples)
  repository to showcase all Spark NLP use cases!

  Also, don't forget to check [Spark NLP in Action](https://nlp.johnsnowlabs.com/demo) built by Streamlit.





  [Check our Articles and Videos page here](https://nlp.johnsnowlabs.com/learn)



  We have published a [paper](https://www.sciencedirect.com/science/article/pii/S2665963821000063) that you can cite for
  the Spark NLP library:

  ```bibtex
  @article{KOCAMAN2021100058,
      title = {Spark NLP: Natural language understanding at scale},
      journal = {Software Impacts},
      pages = {100058},
      year = {2021},
      issn = {2665-9638},
      doi = {https://doi.org/10.1016/j.simpa.2021.100058},
      url = {https://www.sciencedirect.com/science/article/pii/S2665963.2.300063},
      author = {Veysel Kocaman and David Talby},
      keywords = {Spark, Natural language processing, Deep learning, Tensorflow, Cluster},
      abstract = {Spark NLP is a Natural Language Processing (NLP) library built on top of Apache Spark ML. It provides simple, performant & accurate NLP annotations for machine learning pipelines that can scale easily in a distributed environment. Spark NLP comes with 1100+ pretrained pipelines and models in more than 192+ languages. It supports nearly all the NLP tasks and modules that can be used seamlessly in a cluster. Downloaded more than 2.7 million times and experiencing 9x growth since January 2020, Spark NLP is used by 54% of healthcare organizations as the world’s most widely used NLP library in the enterprise.}
      }
  }
  ```



  We appreciate any sort of contributions:

  - ideas
  - feedback
  - documentation
  - bug reports
  - NLP training and testing corpora
  - Development and testing

  Clone the repo and submit your pull-requests! Or directly create issues in this repo.



  [http://johnsnowlabs.com](http://johnsnowlabs.com)


pkgId: cc139dcdb029327331eeddb77cce6cd99b6ae28f268df931c37e13ef2bc87517
name: python-spark-nlp-display
arch: src
version: 4.4
epoch: 0
release: 1
summary: Visualization package for Spark NLP
url: http://nlp.johnsnowlabs.com
rpm_license: Apache Software License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-5069383f-74af-408c-af34-4648a5be2fdd
location_href: 00011691-python-spark-nlp-display/python-spark-nlp-display-4.4-1.src.rpm
checksum_type: sha256
description:
  A library for the simple visualization of different types of Spark NLP annotations.


  - Dependency Parser
  - Named Entity Recognition
  - Entity Resolution
  - Relation Extraction
  - Assertion Status


  [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/JohnSnowLabs/spark-nlp-display/blob/main/tutorials/Spark_NLP_Display.ipynb)

  https://github.com/JohnSnowLabs/spark-nlp-display/blob/main/tutorials/Spark_NLP_Display.ipynb


  - spark-nlp
  - ipython
  - svgwrite
  - pandas
  - numpy


  ```bash
  pip install spark-nlp-display
  ```





  ```python
  from sparknlp_display import NerVisualizer

  ner_vis = NerVisualizer()


  ner_vis.set_label_colors({'LOC':'#800080', 'PER':'#77b5fe'}) #set label colors by specifying hex codes

  pipeline_result = ner_light_pipeline.fullAnnotate(text) ##light pipeline


  vis_html = ner_vis.display(pipeline_result[0], #should be the results of a single example, not the complete dataframe
                      label_col='entities', #specify the entity column
                      document_col='document', #specify the document column (default: 'document')
                      labels=['PER'], #only allow these labels to be displayed. (default: [] - all labels will be displayed)
                      return_html=True)

  displayHTML(vis_html)
  ```
  ![title](https://raw.githubusercontent.com/JohnSnowLabs/spark-nlp-display/main/assets/ner_viz.png)



  To save the visualization as html, provide the export file path: `save_path='./export.html'` for each visualizer.



  ```python
  from sparknlp_display import DependencyParserVisualizer

  dependency_vis = DependencyParserVisualizer()

  pipeline_result = dp_pipeline.fullAnnotate(text)


  dependency_vis.display(pipeline_result[0], #should be the results of a single example, not the complete dataframe.
                         pos_col = 'pos', #specify the pos column
                         dependency_col = 'dependency', #specify the dependency column
                         dependency_type_col = 'dependency_type', #specify the dependency type column
                         save_path='./export.html' # optional - to save viz as html. (default: None)
                         )
  ```

  ![title](https://raw.githubusercontent.com/JohnSnowLabs/spark-nlp-display/main/assets/dp_viz.png)



  ```python
  from sparknlp_display import NerVisualizer

  ner_vis = NerVisualizer()

  pipeline_result = ner_light_pipeline.fullAnnotate(text)


  ner_vis.display(pipeline_result[0], #should be the results of a single example, not the complete dataframe
                      label_col='entities', #specify the entity column
                      document_col='document', #specify the document column (default: 'document')
                      labels=['PER'], #only allow these labels to be displayed. (default: [] - all labels will be displayed)
                      save_path='./export.html' # optional - to save viz as html. (default: None)
                      )


  ner_vis.set_label_colors({'LOC':'#800080', 'PER':'#77b5fe'}) #set label colors by specifying hex codes

  ```

  ![title](https://raw.githubusercontent.com/JohnSnowLabs/spark-nlp-display/main/assets/ner_viz.png)



  ```python
  from sparknlp_display import EntityResolverVisualizer

  er_vis = EntityResolverVisualizer()

  pipeline_result = er_light_pipeline.fullAnnotate(text)

  er_vis.display(pipeline_result[0], #should be the results of a single example, not the complete dataframe
                 label_col='entities', #specify the ner result column
                 resolution_col = 'resolution',
                 document_col='document', #specify the document column (default: 'document')
                 save_path='./export.html' # optional - to save viz as html. (default: None)
                 )


  er_vis.set_label_colors({'TREATMENT':'#800080', 'PROBLEM':'#77b5fe'}) #set label colors by specifying hex codes

  ```

  ![title](https://raw.githubusercontent.com/JohnSnowLabs/spark-nlp-display/main/assets/er_viz.png)


  ```python
  from sparknlp_display import RelationExtractionVisualizer

  re_vis = RelationExtractionVisualizer()

  pipeline_result = re_light_pipeline.fullAnnotate(text)

  re_vis.display(pipeline_result[0], #should be the results of a single example, not the complete dataframe
                 relation_col = 'relations', #specify relations column
                 document_col = 'document', #specify document column
                 show_relations=True, #display relation names on arrows (default: True)
                 save_path='./export.html' # optional - to save viz as html. (default: None)
                 )

  ```

  ![title](https://raw.githubusercontent.com/JohnSnowLabs/spark-nlp-display/main/assets/re_viz.png)


  ```python
  from sparknlp_display import AssertionVisualizer

  assertion_vis = AssertionVisualizer()

  pipeline_result = ner_assertion_light_pipeline.fullAnnotate(text)

  assertion_vis.display(pipeline_result[0],
                        label_col = 'entities', #specify the ner result column
                        assertion_col = 'assertion', #specify assertion column
                        document_col = 'document', #specify the document column (default: 'document')
                        save_path='./export.html' # optional - to save viz as html. (default: None)
                        )


  assertion_vis.set_label_colors({'TREATMENT':'#008080', 'problem':'#800080'}) #set label colors by specifying hex codes

  ```

  ![title](https://raw.githubusercontent.com/JohnSnowLabs/spark-nlp-display/main/assets/assertion_viz.png)


pkgId: 8f57d2bf5b76edf576186fcc0fd6d3325232b3fb2bb1a45c789253f55ce2b3f1
name: python-spark-sklearn
arch: src
version: 0.3.0
epoch: 0
release: 1
summary: Integration tools for running scikit-learn on Spark
url: https://github.com/databricks/spark-sklearn
rpm_license: Apache 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-4557a62c-8031-457e-8068-712a8226c514
location_href: 00010287-python-spark-sklearn/python-spark-sklearn-0.3.0-1.src.rpm
checksum_type: sha256
description:
  This package contains some tools to integrate the `Spark computing framework <https://spark.apache.org/>`_
  with the popular `scikit-learn machine library <https://scikit-learn.org/stable/>`_. Among other things, it can:
  - train and evaluate multiple scikit-learn models in parallel. It is a distributed analog to the
    `multicore implementation <https://pythonhosted.org/joblib/parallel.html>`_ included by default in ``scikit-learn``
  - convert Spark's Dataframes seamlessly into numpy ``ndarray`` or sparse matrices
  - (experimental) distribute Scipy's sparse matrices as a dataset of sparse vectors
  It focuses on problems that have a small amount of data and that can be run in parallel.
  For small datasets, it distributes the search for estimator parameters (``GridSearchCV`` in scikit-learn),
  using Spark. For datasets that do not fit in memory, we recommend using the `distributed implementation in
  `Spark MLlib <https://spark.apache.org/docs/latest/api/python/pyspark.mllib.html>`_.
  This package distributes simple tasks like grid-search cross-validation.
  It does not distribute individual learning algorithms (unlike Spark MLlib).


pkgId: bdbde9e36dcbcd1455d0f294f550709659fb900e490bdc50b606449ff38a6ef3
name: python-sparkaid
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: Utils for working with Spark
url: https://github.com/lvhuyen/SparkAid
rpm_license: GNU Lesser General Public License v3 or later (LGPLv3+)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-ad31d4fc-98d3-4ce8-8ab9-695f785d6cc3
location_href: 00010926-python-sparkaid/python-sparkaid-1.0.0-1.src.rpm
checksum_type: sha256
description:
  Sample DataFrame:
      from pyspark.sql import Row
      from pyspark.sql.functions import col
      df_struct = spark.createDataFrame([Row(structA=Row(field1=10, field2=1.5),
                                             structB=Row(field3="one",field4=False))])
  	df_struct.printSchema()
  	root
  	 |-- structA: struct (nullable = true)
  	 |    |-- field1: long (nullable = true)
  	 |    |-- field2: double (nullable = true)
  	 |-- structB: struct (nullable = true)
  	 |    |-- field3: string (nullable = true)
  	 |    |-- field4: boolean (nullable = true)
  Spark allows selecting nested columns by using the dot `.` notation:
  	df_struct.select("structA.*", "structB.field3").printSchema()
  	root
       |-- field1: long (nullable = true)
       |-- field2: double (nullable = true)
       |-- field3: string (nullable = true)
  Please note here that the current Spark implementation (2.4.3 or below) doesn't keep the outer layer fieldname (e.g: structA) in the output dataframe

  To select only some elements from an ArrayType column, either *`getItem()`* or using brackets (as selecting elements from a legacy array: `[]` in Python `()` in Scala)  would do the trick:
  	df_array = spark.createDataFrame([Row(arrayA=[1,2,3,4,5],fieldB="foo")])
  	df_array.select(col("arrayA").getItem(0).alias("element0"), col("arrayA")[4].alias("element5"), col("fieldB")).show()
  	+--------+--------+------+
      |element0|element5|fieldB|
      +--------+--------+------+
      |       1|       5|   foo|
      +--------+--------+------+

  Elements from a MapType column can be selected the same way as in the case of ArrayType, but using the key instead of index number. The dot notation (`.`) could also be used instead of `getItem()` or brackets:
      df_map = spark.createDataFrame([Row(mapA={2: "TWO", 3: "THREE", 0: "ZERO"}, fieldB="foo")])
      df_map.select(col("mapA")[3].alias("element3"), col("mapA").getItem(2).alias("element2"), col("mapA.0").alias("element0"), col("mapA").getItem(1).alias("element1")).show()
  	+--------+--------+--------+--------+
      |element3|element2|element0|element1|
      +--------+--------+--------+--------+
      |   THREE|     TWO|    ZERO|    null|
      +--------+--------+--------+--------+

  As Spark DataFrame.select() supports passing an array of columns to be selected, to fully unflatten a multi-layer nested dataframe, a recursive call would do the trick.
  Here is a detailed discussion on StackOverFlow on how to do this:
  https://stackoverflow.com/questions/37471346/automatically-and-elegantly-flatten-dataframe-in-spark-sql

  	df_nested = spark.createDataFrame([
  	    Row(
  	        arrayA=[
  	            Row(childStructB=Row(field1=1, field2="foo")),
  	            Row(childStructB=Row(field1=2, field2="bar"))
  	        ]
  	    )])
  	df_nested.printSchema()
  	root
       |-- arrayA: array (nullable = true)
       |    |-- element: struct (containsNull = true)
       |    |    |-- childStructB: struct (nullable = true)
       |    |    |    |-- field1: long (nullable = true)
       |    |    |    |-- field2: string (nullable = true)
      df_nested.show(1, False)
      +------------------------+
      |arrayA                  |
      +------------------------+
      |[[[1, foo]], [[2, bar]]]|
      +------------------------+
  Selecting *field1* or *field2* can be done as with normal structs (not nested inside an array), by using that dot `.` annotation. The result would be of the type `ArrayType[ChildFieldType]`, which has been **_vertically sliced_** from the original array
  	df_child = df_nested.select("arrayA.childStructB.field1", "arrayA.childStructB.field2")
  	df_child.printSchema()
  	root
       |-- field1: array (nullable = true)
       |    |-- element: long (containsNull = true)
       |-- field2: array (nullable = true)
       |    |-- element: string (containsNull = true)
      df_child.show()
      +------+----------+
      |field1|    field2|
      +------+----------+
      |[1, 2]|[foo, bar]|
      +------+----------+

  As each MapType column has two components, the keys and the values, selecting nested column inside a MapType column is not straight forward - we cannot just use that `.` to take the nested fields as that has already been used for denoting the key.
      df_map_nested = spark.createDataFrame([Row(mapA={"2": Row(type_name="Arabic number", equivalent=2), "THREE": Row(type_name="English Text", equivalent=3)}, fieldB="foo")])
      df_map_nested.select(col("mapA.type_name"), col("mapA.THREE.type_name")).show()
      +---------+------------+
      |type_name|   type_name|
      +---------+------------+
      |     null|English Text|
      +---------+------------+
  A solution for this is to use the builtin function `map_values()` which has been introduced since Spark 2.3. Note the type of the result column: ArrayType
      from pyspark.sql.functions import map_values
      result = df_map_nested.select(map_values("mapA")["type_name"], col("mapA.THREE.type_name"))
      result.show(2,False)
      result.printSchema()
      +-----------------------------+------------+
      |map_values(mapA).type_name   |type_name   |
      +-----------------------------+------------+
      |[Arabic number, English Text]|English Text|
      +-----------------------------+------------+
      root
       |-- map_values(mapA).type_name: array (nullable = true)
       |    |-- element: string (containsNull = true)
       |-- type_name: string (nullable = true)

  The above steps would work well for most of dataframes. The only dataframes that it fails (as of Spark 2.4.3 or lower) are the ones with a StructType nested inside MORE THAN ONE layers of ArrayType.
  Like this one:
  	df_nested_B = spark.createDataFrame([
          Row(
              arrayA=[[
                  Row(childStructB=Row(field1=1, field2="foo")),
                  Row(childStructB=Row(field1=2, field2="bar"))
              ]]
          )])
      df_nested_B.printSchema()
      root
       |-- arrayA: array (nullable = true)
       |    |-- element: array (containsNull = true)
       |    |    |-- element: struct (containsNull = true)
       |    |    |    |-- childStructB: struct (nullable = true)
       |    |    |    |    |-- field1: long (nullable = true)
       |    |    |    |    |-- field2: string (nullable = true)
  Or this one
  	df_nested_C = spark.createDataFrame([
          Row(
              arrayA=[
                  Row(childStructB=Row(childArrayC=[Row(field1=1, field2="foo")])),
                  Row(childStructB=Row(childArrayC=[Row(field1=2, field2="bar")])),
              ]
          )])
      df_nested_C.printSchema()
      root
       |-- arrayA: array (nullable = true)
       |    |-- element: struct (containsNull = true)
       |    |    |-- childStructB: struct (nullable = true)
       |    |    |    |-- childArrayC: array (nullable = true)
       |    |    |    |    |-- element: struct (containsNull = true)
       |    |    |    |    |    |-- field1: long (nullable = true)
       |    |    |    |    |    |-- field2: string (nullable = true)
  Selecting `arrayA.childStructB.field1` from `df_nested_B` fails with the error message: `AnalysisException: No such struct field field1 in childStructB`.<br>
  While selecting `arrayA.childStructB.childArrayC.field1` from `df_nested_C` throws the `AnalysisException`: `cannot resolve 'arrayA.childStructB.childArrayC['field1']' due to data type mismatch: argument 2 requires integral type, however, ''field1'' is of string type.`

  With the introduction of the SQL function `transform` in Spark 2.4, the error above can be solved by applying `transform` on every layer of the array.
  A comprehensive implementation of a flatten function can be found in the Python package `sparkaid`:
  	from sparkaid import flatten
  	flatten(df_nested_B).printSchema()
  	root
  	 |-- arrayA__childStructB_field1: array (nullable = true)
  	 |    |-- element: array (containsNull = true)
  	 |    |    |-- element: long (containsNull = true)
  	 |-- arrayA__childStructB_field2: array (nullable = true)
  	 |    |-- element: array (containsNull = true)
  	 |    |    |-- element: string (containsNull = true)
  <p>
  	flatten(df_nested_B).show()
  	+---------------------------+---------------------------+
      |arrayA__childStructB_field1|arrayA__childStructB_field2|
      +---------------------------+---------------------------+
      |                   [[1, 2]]|               [[foo, bar]]|
      +---------------------------+---------------------------+
  <p>
      flatten(df_nested_C).printSchema()
      root
       |-- arrayA_childStructB_childArrayC_field1: array (nullable = true)
       |    |-- element: array (containsNull = true)
       |    |    |-- element: long (containsNull = true)
       |-- arrayA_childStructB_childArrayC_field2: array (nullable = true)
       |    |-- element: array (containsNull = true)
       |    |    |-- element: string (containsNull = true)
  []: https://spark.apache.org/docs/2.4.0/api/java/org/apache/spark/sql/functions.html#flatten-org.apache.spark.sql.Column


pkgId: 933b8e3825d772839b0cccaf4b08ffcb19f5559c00e5bb5d507fd2169f72e49f
name: python-sparkmeasure
arch: src
version: 0.21.1
epoch: 0
release: 1
summary: Python API for sparkMeasure, a tool for performance troubleshooting of Apache Spark workloads
url: https://github.com/lucacanali/sparkMeasure
rpm_license: Apache License, Version 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-ca7c60d5-bdd3-45f0-ba2d-a0735d2df0a5
location_href: 00010658-python-sparkmeasure/python-sparkmeasure-0.21.1-1.src.rpm
checksum_type: sha256
description:
  SparkMeasure is a tool for performance troubleshooting of Apache Spark workloads.
  It simplifies the collection and analysis of Spark performance metrics. The bulk of sparkMeasure is written in Scala.
  This package contains the Python API for sparkMeasure and is intended to work in conjunction with PySpark.
  Use from python command line or in Jupyter notebook environments, or as a tool to instrument Python code running Spark workloads.
  **[Link to sparkMeasure GitHub page and documentation](https://github.com/lucacanali/sparkMeasure)**


pkgId: bfdf0c089595f3361664aa2eb4868b71f214dfc5266fc81acc23dc3a7cc483c4
name: python-sparse
arch: src
version: 0.14.0
epoch: 0
release: 1
summary: Sparse n-dimensional arrays
url: https://github.com/pydata/sparse/
rpm_license: BSD 3-Clause License (Revised)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f27103cc-43e6-434e-9a1f-d6ed9fbc319a
location_href: 00011890-python-sparse/python-sparse-0.14.0-1.src.rpm
checksum_type: sha256
description:
  |Build Status| |Docs Status| |Coverage|
  This library provides multi-dimensional sparse arrays.
  * `Documentation <http://sparse.pydata.org/>`_
  * `Contributing <https://github.com/pydata/sparse/blob/master/docs/contributing.rst>`_
  * `Bug Reports/Feature Requests <https://github.com/pydata/sparse/issues>`_


pkgId: f3e2f5a8641bed39c9f912c8f57b127bdec0849c912f5ab4843498d0580f01dd
name: python-spdx
arch: src
version: 2.5.1
epoch: 0
release: 1
summary: SPDX license list database
url: https://github.com/bbqsrc/spdx-python
rpm_license: CC0-1.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e01d7e85-d6e2-4229-88c3-0a16c24c19c7
location_href: 00005135-python-spdx/python-spdx-2.5.1-1.src.rpm
checksum_type: sha256
description:
  A Python module incorporating an interface to the SPDX license database.
  This library serves purely as a holder for the database that can be
  found on `the SPDX website <https://spdx.org/licenses/>`__.
  To more easily query this database or detect licenses, consider using
  something like
  `spdx-lookup <https://pypi.python.org/pypi/spdx-lookup>`__.


pkgId: 49ba14293060adb0e88bd22f9b124760872a453a95cb11a38f59a7d22803d53e
name: python-speaklater
arch: src
version: 1.3
epoch: 0
release: 1
summary: implements a lazy string for python useful for use with gettext
url: http://github.com/mitsuhiko/speaklater
rpm_license: UNKNOWN
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a69a4bb6-bd6f-414c-bdc9-c30c902ef7e3
location_href: 00005137-python-speaklater/python-speaklater-1.3-1.src.rpm
checksum_type: sha256
description:
  speaklater
  ~~~~~~~~~~

  A module that provides lazy strings for translations.  Basically you
  get an object that appears to be a string but changes the value every
  time the value is evaluated based on a callable you provide.

  For example you can have a global `lazy_gettext` function that returns
  a lazy string with the value of the current set language.

  Example:

  >>> from speaklater import make_lazy_string
  >>> sval = u'Hello World'
  >>> string = make_lazy_string(lambda: sval)

  This lazy string will evaluate to the value of the `sval` variable.

  >>> string
  lu'Hello World'
  >>> unicode(string)
  u'Hello World'
  >>> string.upper()
  u'HELLO WORLD'

  If you change the value, the lazy string will change as well:

  >>> sval = u'Hallo Welt'
  >>> string.upper()
  u'HALLO WELT'

  This is especially handy when combined with a thread local and gettext
  translations or dicts of translatable strings:

  >>> from speaklater import make_lazy_gettext
  >>> from threading import local
  >>> l = local()
  >>> l.translations = {u'Yes': 'Ja'}
  >>> lazy_gettext = make_lazy_gettext(lambda: l.translations.get)
  >>> yes = lazy_gettext(u'Yes')
  >>> print yes
  Ja
  >>> l.translations[u'Yes'] = u'Si'
  >>> print yes
  Si

  Lazy strings are no real strings so if you pass this sort of string to
  a function that performs an instance check, it will fail.  In that case
  you have to explicitly convert it with `unicode` and/or `string` depending
  on what string type the lazy string encapsulates.

  To check if a string is lazy, you can use the `is_lazy_string` function:

  >>> from speaklater import is_lazy_string
  >>> is_lazy_string(u'yes')
  False
  >>> is_lazy_string(yes)
  True

  New in version 1.2: It's now also possible to pass keyword arguments to
  the callback used with `make_lazy_string`.


pkgId: b22f53d29ad8cb195bd452b406320b919e5848e32a44e60180984f73c7998c93
name: python-spglib-debuginfo
arch: aarch64
version: 2.0.2
epoch: 0
release: 1
summary: Debug information for package python-spglib
url: http://spglib.github.io/spglib/
rpm_license: BSD-3-Clause
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-3fc385ba-5f4d-48f3-8726-7611e6844cd4
rpm_sourcerpm: python-spglib-2.0.2-1.src.rpm
location_href: 00005141-python-spglib/python-spglib-debuginfo-2.0.2-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug information for package python-spglib.
  Debug information is useful when developing applications that use this
  package or when debugging this package.


pkgId: 17937090e4b5d3b59a638697787dc1bc6d8ed2e11be845b4e37cace46b45fae5
name: python-spglib-debugsource
arch: aarch64
version: 2.0.2
epoch: 0
release: 1
summary: Debug sources for package python-spglib
url: http://spglib.github.io/spglib/
rpm_license: BSD-3-Clause
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-3fc385ba-5f4d-48f3-8726-7611e6844cd4
rpm_sourcerpm: python-spglib-2.0.2-1.src.rpm
location_href: 00005141-python-spglib/python-spglib-debugsource-2.0.2-1.aarch64.rpm
checksum_type: sha256
description:
  This package provides debug sources for package python-spglib.
  Debug sources are useful when developing applications that use this
  package or when debugging this package.


pkgId: 45834aeb715da477bd8f922275b9c016caa83af46aca9ff781b7987c5c007cd5
name: python-sphinx-ansible-theme
arch: src
version: 0.10.1
epoch: 0
release: 1
summary: Ansible Sphinx Theme
url: https://pypi.org/project/sphinx-ansible-theme/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-7ad6fed4-407e-4d2b-af8e-acf20e9e93f9
location_href: 00005159-python-sphinx_ansible_theme/python-sphinx-ansible-theme-0.10.1-1.src.rpm
checksum_type: sha256
description:
  A reusable Ansible Sphinx Theme.
  Demo-site at https://sphinx-ansible-theme.readthedocs.io/en/latest/
  Logos in ``sphinx_ansible_theme/static/images/``
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  The Ansible logos are taken from `the official Ansible Community logo download page <https://www.ansible.com/logos>`_. The files are slightly modified as follows:
  * The SVG logos' bounding boxes are modified from ``0 0 300 300`` to ``30 30 240 240``.
  * The PNG files are rescaled to 180x180 using ImageMagick as follows:
      convert Ansible-Mark-Large-RGB-Black.png -resize 180x180 Ansible-Mark-RGB_Black.png
      convert Ansible-Mark-Large-RGB-White.png -resize 180x180 Ansible-Mark-RGB_White.png


pkgId: 897c08285b25d3e3ef72b2867e8fe39aec22827d7bbe5250f8381d0d8992a325
name: python-sphinx-argparse
arch: src
version: 0.4.0
epoch: 0
release: 1
summary: A sphinx extension that automatically documents argparse commands and options
url: https://github.com/ashb/sphinx-argparse
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-08e73a11-f59f-4ce7-8771-f03fac35e26e
location_href: 00005142-python-sphinx-argparse/python-sphinx-argparse-0.4.0-1.src.rpm
checksum_type: sha256
description:
  A sphinx extension that automatically documents argparse commands and options.
  For installation and usage details see the [documentation](http://sphinx-argparse.readthedocs.org/en/latest/). The changelog is also [found there](http://sphinx-argparse.readthedocs.org/en/latest/changelog.html).
  This project used to live at [alex-rudakov/sphinx-argparse](https://github.com/alex-rudakov/sphinx-argparse/) that the original maintainer disappears so I have taken over the project under this new home.


pkgId: 3ccd759853569ea9a46f817153f7809d658d0ea5ee4df8d3e03f46531def7656
name: python-sphinx-autoapi
arch: src
version: 2.1.0
epoch: 0
release: 1
summary: Sphinx API documentation generator
url: http://github.com/readthedocs/sphinx-autoapi
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f9d9ca97-eacb-4817-b37a-5311f3d065bd
location_href: 00011852-python-sphinx-autoapi/python-sphinx-autoapi-2.1.0-1.src.rpm
checksum_type: sha256
description:
  Sphinx AutoAPI provides "autodoc" style documentation for multiple programming languages
  without needing to load, run, or import the project being documented.
  In contrast to the traditional `Sphinx autodoc <https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html>`_,
  which is Python-only and uses code imports,
  AutoAPI finds and generates documentation by parsing source code.


pkgId: 1115f0a212de9ac733b3c94c3b1be8c29926526d92d29a5ec79ca279938fb64e
name: python-sphinx-autobuild
arch: src
version: 2021.3.14
epoch: 0
release: 1
summary: Rebuild Sphinx documentation on changes, with live-reload in the browser.
url: https://github.com/executablebooks/sphinx-autobuild
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-1f352d6c-c04b-4ab6-9dce-a1bec1f9ec10
location_href: 00010732-python-sphinx-autobuild/python-sphinx-autobuild-2021.3.14-1.src.rpm
checksum_type: sha256
description:
  Rebuild Sphinx documentation on changes, with live-reload in the browser.

  <p align="center">

  ![preview screenshot](./docs/_static/demo.png)

  </p>



  sphinx-autobuild is available on [PyPI](https://pypi.org/p/sphinx-autobuild/). It can be installed using pip:

  ```
  pip install sphinx-autobuild
  ```



  To build a classical Sphinx documentation set, run:

  ```
  sphinx-autobuild docs docs/_build/html
  ```

  This will start a server at http://127.0.0.1:8000 and start watching for changes in the `docs/` directory. When a change is detected in `docs/`, the documentation is rebuilt and any open browser windows are reloaded automatically. `KeyboardInterrupt` (<kbd>ctrl</kbd>+<kbd>c</kbd>) will stop the server.



  sphinx-autobuild accepts the same arguments as `sphinx-build` (these get passed to sphinx-build on each build). It also has a few additional options, which can seen by running `sphinx-autobuild --help`:

  ```sh-session
  $ sphinx-autobuild --help
  usage: sphinx-autobuild [-h] [--port PORT] [--host HOST] [--re-ignore RE_IGNORE] [--ignore IGNORE] [--no-initial] [--open-browser]
                          [--delay DELAY] [--watch DIR] [--pre-build COMMAND] [--version]
                          sourcedir outdir [filenames [filenames ...]]

  positional arguments:
    sourcedir             source directory
    outdir                output directory for built documentation
    filenames             specific files to rebuild on each run (default: None)

  optional arguments:
    -h, --help            show this help message and exit
    --port PORT           port to serve documentation on. 0 means find and use a free port (default: 8000)
    --host HOST           hostname to serve documentation on (default: 127.0.0.1)
    --re-ignore RE_IGNORE
                          regular expression for files to ignore, when watching for changes (default: [])
    --ignore IGNORE       glob expression for files to ignore, when watching for changes (default: [])
    --no-initial          skip the initial build (default: False)
    --open-browser        open the browser after building documentation (default: False)
    --delay DELAY         how long to wait before opening the browser (default: 5)
    --watch DIR           additional directories to watch (default: [])
    --pre-build COMMAND   additional command(s) to run prior to building the documentation (default: [])
    --version             show program's version number and exit

  sphinx's arguments:
    The following arguments are forwarded as-is to Sphinx. Please look at `sphinx --help` for more information.
      -b=builder, -a, -E, -d=path, -j=N, -c=path, -C, -D=setting=value, -t=tag, -A=name=value, -n, -v, -q, -Q, -w=file, -W, -T, -N, -P
  ```



  > FYI: Sphinx is planning to [move away from using `Makefile`](https://github.com/sphinx-doc/sphinx/issues/5618#issuecomment-502415633).

  To use sphinx-autobuild with the Makefile generated by Sphinx, add the following to the end of the Makefile:

  ```make
  livehtml:
  	sphinx-autobuild "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
  ```

  `make livehtml` will now invoke sphinx-autobuild.

  > If you generated the `Makefile` with an older version of sphinx, this syntax might not work for you. Consider [updating to the newer `Makefile`](https://github.com/sphinx-doc/sphinx/blob/af62fa61e6cbd88d0798963211e73e5ba0d55e6d/sphinx/templates/quickstart/Makefile.new_t) structure.



  sphinx-autobuild can open the homepage of the generated documentation in your default browser. Passing `--open-browser` will enable this behaviour.



  sphinx-autobuild asks the operating system for a free port number and use that for its server. Passing `--port=0` will enable this behaviour.





  When working on a Sphinx HTML theme, add the source directory of the theme as a watch directory. It is also recommended to disable Sphinx's incremental builds by passing the `-a` option to sphinx-autobuild.

  ```
  sphinx-autobuild -a docs docs/_build/html --watch path/to/theme
  ```

  This results in slower builds, but it ensures that all pages are built from the same state of the HTML theme. It also works around a [known issue in Sphinx](#user-content-relevant-sphinx-bugs) which causes significant problems during theme development.



  When working on multiple Sphinx documentation projects simultaneously, it is required to use different output directories for each project. It is also recommended to use `--port=0` and `--open-browser` to avoid needing to manually manage ports and opening browser windows (which can get tedious quickly).

  ```
  sphinx-autobuild --port=0 --open-browser pikachu/docs pikachu/docs/_build/html &
  sphinx-autobuild --port=0 --open-browser magickarp/docs magickarp/docs/_build/html &
  ```



  Sphinx does not [detect changes in non-document files in incremental mode](https://github.com/GaretJax/sphinx-autobuild/issues/34), like theme files, static files and source code used with autodoc.

  At the time of writing, the only known workaround is to instruct Sphinx to rebuild the relevant pages. This can be done by disabling incremental mode (with `-a`) or passing relevant `filenames` in addition to source and output directory in the CLI.



  This project stands on the shoulders of giants like [Sphinx], [LiveReload] and [python-livereload], without whom this project would not be possible.

  Many thanks to everyone who has [contributed code](https://github.com/GaretJax/sphinx-autobuild/graphs/contributors) as well as participated in [discussions on the issue tracker](https://github.com/GaretJax/sphinx-autobuild/issues). This project is better thanks to your contribution. :smile:

  [Sphinx]: https://sphinx-doc.org/
  [LiveReload]: https://livereload.com/
  [python-livereload]: https://github.com/lepture/python-livereload


pkgId: 3f23084828945fceaf20346c22a38a4d4ecae986a03cde17df11a3e81349573c
name: python-sphinx-automodapi
arch: src
version: 0.15.0
epoch: 0
release: 1
summary: Sphinx extension for auto-generating API documentation for entire modules
url: https://github.com/astropy/sphinx-automodapi
rpm_license: BSD 3-Clause License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-656122ce-90ee-4f7a-a263-f0b45310cf99
location_href: 00013371-python-sphinx-automodapi/python-sphinx-automodapi-0.15.0-1.src.rpm
checksum_type: sha256
description:
  This is a Sphinx extension to automatically generate API pages for whole
  modules. It was originally developed for the Astropy project but is now
  available as a standalone package since it can be used for any other
  package. The documentation can be found on
  `ReadTheDocs <http://sphinx-automodapi.readthedocs.io/en/latest/>`_.


pkgId: cfb2a100a0e4a7aa2b03ce118a7c6699b9efc96b0e428d7bf778e8192201a0a8
name: python-sphinx-copybutton
arch: src
version: 0.5.1
epoch: 0
release: 1
summary: Add a copy button to each of your code cells.
url: https://github.com/executablebooks/sphinx-copybutton
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-bc86ed0e-ae5f-4868-b18f-192168283ab2
location_href: 00005145-python-sphinx-copybutton/python-sphinx-copybutton-0.5.1-1.src.rpm
checksum_type: sha256
description:
  [![PyPI](https://img.shields.io/pypi/v/sphinx-copybutton.svg)](https://pypi.org/project/sphinx_copybutton/) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/sphinx-copybutton.svg)](https://anaconda.org/conda-forge/sphinx-copybutton) | [![Documentation](https://readthedocs.org/projects/sphinx-copybutton/badge/?version=latest)](https://sphinx-copybutton.readthedocs.io/en/latest/?badge=latest)

  A small sphinx extension to add a "copy" button to code blocks.

  See [the sphinx-copybutton documentation](https://sphinx-copybutton.readthedocs.io/en/latest/) for more details!

  ![Copy Button Demo](https://user-images.githubusercontent.com/1839645/150200219-73663c59-08fd-4185-b157-62f3769c02ac.gif)



  You can install `sphinx-copybutton` with `pip`:

  ```bash
  pip install sphinx-copybutton
  ```

  Or with `conda` via `conda-forge`:

  ```bash
  conda install -c conda-forge sphinx-copybutton
  ```




  In your `conf.py` configuration file, add `sphinx_copybutton` to your extensions list.
  E.g.:

  ```python
  extensions = [
      ...
      'sphinx_copybutton'
      ...
  ]
  ```

  When you build your site, your code blocks should now have little copy buttons to their
  right. Clicking the button will copy the code inside!



  If you'd like to customize the look of the copy buttons, you can over-write any of the
  CSS rules specified in the Sphinx-CopyButton CSS file ([link](sphinx_copybutton/_static/copybutton.css))



  Development should principally adhere to the [EBP Developer Conventions](https://github.com/executablebooks/.github/blob/master/CONTRIBUTING.md)

  Sphinx-Copybutton is [hosted on the pypi repository](https://pypi.org/project/sphinx-copybutton/).
  After a release - following the [EBP release instructions](https://github.com/executablebooks/.github/blob/master/CONTRIBUTING.md#releases-and-change-logs) - confirm that the new version of Sphinx-Copybutton [is posted to pypi](https://pypi.org/project/sphinx-copybutton/).



  Many thanks to the excellent [clipboard.js library](https://clipboardjs.com/) for the lightweight javascript code that powers the copy button!


pkgId: e0e0fbf69e7b0822b43951d4dae220e254e510fa0c80c8ab782fa46c375a9ff6
name: python-sphinx-epytext
arch: src
version: 0.0.4
epoch: 0
release: 1
summary: Sphinx "epytext" extension.
url: https://github.com/jayvdb/sphinx-epytext
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d4cd214f-2976-4a0b-8c03-4102744befc4
location_href: 00005146-python-sphinx-epytext/python-sphinx-epytext-0.0.4-1.src.rpm
checksum_type: sha256
description:
  sphinx-epytext provides basic support for epytext docstrings
  <http://epydoc.sourceforge.net/epytext.html>
  in Sphinx autodoc <http://sphinx-doc.org/ext/autodoc.html>.
  It connects to the 'autodoc-process-docstring' hook of Sphinx, to perform the following:
  - Replaces '@' with ':' for epydoc fields. <http://epydoc.sourceforge.net/fields.html>
  - Replaces L{..} and C{..} with :py:obj:`..`
  - Removes U{..} from around links


pkgId: 7de5c683575b2236cc8c98e7d3a2064d9586c85133df76221b3623a0445b5b01
name: python-sphinx-gallery
arch: src
version: 0.12.0
epoch: 0
release: 1
url: https://sphinx-gallery.github.io
rpm_license: 3-clause BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0c38e14c-2753-41f8-8f67-e4883127c37c
location_href: 00005147-python-sphinx-gallery/python-sphinx-gallery-0.12.0-1.src.rpm
checksum_type: sha256
summary:
  A `Sphinx <https://www.sphinx-doc.org/en/master/>`_ extension that builds an HTML gallery of examples from any set of Python scripts.


pkgId: f7c6518ced83ed995a7a7730d80b8d007c0b3e840e031475c76296facf5c289a
name: python-sphinx-kr-theme
arch: src
version: 0.2.1
epoch: 0
release: 1
summary: The third-part package of kennethreitz/kr-sphinx-themes.
url: https://github.com/tonyseek/sphinx-kr-theme
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-504e530f-2f9b-43f3-9e9a-8e7dabd42a8b
location_href: 00005151-python-sphinx-kr-theme/python-sphinx-kr-theme-0.2.1-1.src.rpm
checksum_type: sha256
description:
  This is the third-part package of Kenneth Reitz's krTheme_. You will not have
  to copy the theme files into VCS or register it as submodule anymore.


pkgId: e56c60eaef938485c34054dc038f27c7f66e47b3f1022311543780e635c6740c
name: python-sphinx-last-updated-by-git
arch: src
version: 0.3.4
epoch: 0
release: 1
summary: Get the "last updated" time for each Sphinx page from Git
url: https://github.com/mgeier/sphinx-last-updated-by-git/
rpm_license: BSD-2-Clause
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-53cb217c-7218-4124-8904-0db19d39cdab
location_href: 00005152-python-sphinx-last-updated-by-git/python-sphinx-last-updated-by-git-0.3.4-1.src.rpm
checksum_type: sha256
description:
  This is a little Sphinx_ extension that does exactly that.
  It also checks for included files and other dependencies and
  uses their "last updated" time if it's more recent.
  For each file, the "author date" of the Git commit where it was last changed
  is taken to be its "last updated" time.  Uncommitted changes are ignored.
  If a page doesn't have a source file, its last_updated_ time is set to ``None``.
  The default value for html_last_updated_fmt_ is changed
  from ``None`` to the empty string.
  Usage
      
      
      
  Options
      * If a source file is not tracked by Git (e.g. because it has been
        auto-generated on demand by autosummary_generate_) but its dependencies
        are, the last_updated_ time is taken from them.  If you don't want this
        to happen, use ``git_untracked_check_dependencies = False``.
      * If a source file is not tracked by Git, its HTML page doesn't get a
        source link.  If you do want those pages to have a sourcelink, set
        ``git_untracked_show_sourcelink = True``.  Of course, in this case
        html_copy_source_ and html_show_sourcelink_ must also be ``True``, and
        the theme you are using must support source links in the first place.
      * By default, timestamps are displayed using the local time zone.
        You can specify a datetime.timezone_ object (or any ``tzinfo`` subclass
        instance) with the configuration option ``git_last_updated_timezone``.
        You can also use any string recognized by babel_,
        e.g.  ``git_last_updated_timezone = 'NZ'``.
      * By default, the "last updated" timestamp is added as an HTML ``<meta>``
        tag.  This can be disabled by setting the configuration option
        ``git_last_updated_metatags`` to ``False``.
      * Files can be excluded from the last updated date calculation by passing
        a list of exclusion patterns to the configuration option
        ``git_exclude_patterns``.
        These patterns are checked on both source files and dependencies
        and are treated the same way as Sphinx's exclude_patterns_.
      * Individual commits can be excluded from the last updated date
        calculation by passing a list of commit hashes to the configuration
        option ``git_exclude_commits``.
  Caveats
      * When using a "Git shallow clone" (with the ``--depth`` option),
        the "last updated" commit for a long-unchanged file
        might not have been checked out.
        In this case, the last_updated_ time is set to ``None``
        (and a warning is shown during the build).
        This might happen on https://readthedocs.org/
        because they use shallow clones by default.
        The ``DONT_SHALLOW_CLONE`` `feature flag`_ should fix this.
        If you want to get rid of the warning, use this in your ``conf.py``::
            suppress_warnings = ['git.too_shallow']
      * When a project on https://readthedocs.org/ using their default theme
        ``sphinx_rtd_theme`` was created before October 20th 2020,
        the date will not be displayed in the footer.
        One work-around is to enable the (undocumented) `feature flag`_
        ``USE_SPHINX_LATEST``.
        Another work-around is to override the defaults
        by means of a ``requirements.txt`` file containing something like this::
            sphinx>=2
            sphinx_rtd_theme>=0.5
        See also `issue #1`_.
      * Starting with Sphinx version 5.0, there has been a
        (most likely unintentional) change in how dependencies are determined.
        This may lead to spurious dependencies which means that some
        "last changed" dates might be wrong.
        This will hopefully be fixed in a future Sphinx version.
        In the meantime, Sphinx version 4.5.0  (with docutils 0.17.1)
        can be used.
        See also `issue #40`_.
  License
      BSD-2-Clause (same as Sphinx itself),
      for more information take a look at the ``LICENSE`` file.
  Similar stuff
      | https://github.com/jdillard/sphinx-gitstamp
      | https://github.com/OddBloke/sphinx-git
      | https://github.com/MestreLion/git-tools (``git-restore-mtime``)
      | https://github.com/TYPO3-Documentation/sphinxcontrib-gitloginfo
      templating.html#last_updated
      configuration.html#confval-exclude_patterns
      usage/extensions/autosummary.html#confval-autosummary_generate
      usage/configuration.html#confval-html_copy_source
      usage/configuration.html#confval-html_show_sourcelink
      usage/configuration.html#confval-html_last_updated_fmt
      datetime.html#timezone-objects
      guides/feature-flags.html


pkgId: 9ee86fb8dd6f8c63f27eb22f5efa5101318e5d8d0e187809ba45332b2154c678
name: python-sphinx-last-updated-by-git-help
arch: noarch
version: 0.3.4
epoch: 0
release: 1
summary: Development documents and examples for sphinx-last-updated-by-git
url: https://github.com/mgeier/sphinx-last-updated-by-git/
rpm_license: BSD-2-Clause
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-53cb217c-7218-4124-8904-0db19d39cdab
rpm_sourcerpm: python-sphinx-last-updated-by-git-0.3.4-1.src.rpm
checksum_type: sha256
description:
  This is a little Sphinx_ extension that does exactly that.
  It also checks for included files and other dependencies and
  uses their "last updated" time if it's more recent.
  For each file, the "author date" of the Git commit where it was last changed
  is taken to be its "last updated" time.  Uncommitted changes are ignored.
  If a page doesn't have a source file, its last_updated_ time is set to ``None``.
  The default value for html_last_updated_fmt_ is changed
  from ``None`` to the empty string.
  Usage
      
      
      
  Options
      * If a source file is not tracked by Git (e.g. because it has been
        auto-generated on demand by autosummary_generate_) but its dependencies
        are, the last_updated_ time is taken from them.  If you don't want this
        to happen, use ``git_untracked_check_dependencies = False``.
      * If a source file is not tracked by Git, its HTML page doesn't get a
        source link.  If you do want those pages to have a sourcelink, set
        ``git_untracked_show_sourcelink = True``.  Of course, in this case
        html_copy_source_ and html_show_sourcelink_ must also be ``True``, and
        the theme you are using must support source links in the first place.
      * By default, timestamps are displayed using the local time zone.
        You can specify a datetime.timezone_ object (or any ``tzinfo`` subclass
        instance) with the configuration option ``git_last_updated_timezone``.
        You can also use any string recognized by babel_,
        e.g.  ``git_last_updated_timezone = 'NZ'``.
      * By default, the "last updated" timestamp is added as an HTML ``<meta>``
        tag.  This can be disabled by setting the configuration option
        ``git_last_updated_metatags`` to ``False``.
      * Files can be excluded from the last updated date calculation by passing
        a list of exclusion patterns to the configuration option
        ``git_exclude_patterns``.
        These patterns are checked on both source files and dependencies
        and are treated the same way as Sphinx's exclude_patterns_.
      * Individual commits can be excluded from the last updated date
        calculation by passing a list of commit hashes to the configuration
        option ``git_exclude_commits``.
  Caveats
      * When using a "Git shallow clone" (with the ``--depth`` option),
        the "last updated" commit for a long-unchanged file
        might not have been checked out.
        In this case, the last_updated_ time is set to ``None``
        (and a warning is shown during the build).
        This might happen on https://readthedocs.org/
        because they use shallow clones by default.
        The ``DONT_SHALLOW_CLONE`` `feature flag`_ should fix this.
        If you want to get rid of the warning, use this in your ``conf.py``::
            suppress_warnings = ['git.too_shallow']
      * When a project on https://readthedocs.org/ using their default theme
        ``sphinx_rtd_theme`` was created before October 20th 2020,
        the date will not be displayed in the footer.
        One work-around is to enable the (undocumented) `feature flag`_
        ``USE_SPHINX_LATEST``.
        Another work-around is to override the defaults
        by means of a ``requirements.txt`` file containing something like this::
            sphinx>=2
            sphinx_rtd_theme>=0.5
        See also `issue #1`_.
      * Starting with Sphinx version 5.0, there has been a
        (most likely unintentional) change in how dependencies are determined.
        This may lead to spurious dependencies which means that some
        "last changed" dates might be wrong.
        This will hopefully be fixed in a future Sphinx version.
        In the meantime, Sphinx version 4.5.0  (with docutils 0.17.1)
        can be used.
        See also `issue #40`_.
  License
      BSD-2-Clause (same as Sphinx itself),
      for more information take a look at the ``LICENSE`` file.
  Similar stuff
      | https://github.com/jdillard/sphinx-gitstamp
      | https://github.com/OddBloke/sphinx-git
      | https://github.com/MestreLion/git-tools (``git-restore-mtime``)
      | https://github.com/TYPO3-Documentation/sphinxcontrib-gitloginfo
      templating.html#last_updated
      configuration.html#confval-exclude_patterns
      usage/extensions/autosummary.html#confval-autosummary_generate
      usage/configuration.html#confval-html_copy_source
      usage/configuration.html#confval-html_show_sourcelink
      usage/configuration.html#confval-html_last_updated_fmt
      datetime.html#timezone-objects
      guides/feature-flags.html

location_href:
  00005152-python-sphinx-last-updated-by-git/python-sphinx-last-updated-by-git-help-0.3.4-1.noarch.rpm


pkgId: 15e417581575162a2b4e1d61c36d578d6b947a448b00e00e47088d18974d5ce0
name: python-sphinx-last-updated-by-git-help
arch: noarch
version: 0.3.4
epoch: 0
release: 1
summary: Development documents and examples for sphinx-last-updated-by-git
url: https://github.com/mgeier/sphinx-last-updated-by-git/
rpm_license: BSD-2-Clause
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f896f0a2-b6aa-4673-8542-91951727486d
rpm_sourcerpm: python-sphinx-last-updated-by-git-0.3.4-1.src.rpm
checksum_type: sha256
description:
[cell repeats an earlier one in this file: 4460 characters]

location_href:
  00008478-python-sphinx-last-updated-by-git/python-sphinx-last-updated-by-git-help-0.3.4-1.noarch.rpm


pkgId: 764f39cd34b8135283a12eb6d2e8f66d6ddb511fed0382fa5908bf77055992e8
name: python-sphinx-press-theme
arch: src
version: 0.8.0
epoch: 0
release: 1
summary: A Sphinx-doc theme based on Vuepress
url: https://schettino72.github.io/sphinx_press_site/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-2d14431c-f226-4c82-9186-04513ffa241c
location_href: 00005155-python-sphinx-press-theme/python-sphinx-press-theme-0.8.0-1.src.rpm
checksum_type: sha256
description:
  [![PyPI](https://img.shields.io/pypi/v/sphinx_press_theme.svg)](https://pypi.python.org/pypi/sphinx_press_theme)

  Please help me keep this project alive [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/A0A23ZL4A)


  A modern responsive theme for python's [Sphinx](http://www.sphinx-doc.org) documentation generator.

  See it in action on Press Theme own [website](https://schettino72.github.io/sphinx_press_site/)


  This theme is based on [VuePress](https://vuepress.vuejs.org/).
  It uses [Vue.js](https://vuejs.org/) & [Stylus](http://stylus-lang.com/) managed by
  [vite](http://vitejs.dev/).



  **Press** theme is still in **BETA**.
  Contributions are welcome.



  First install the theme:

  ```
  $ pip install sphinx_press_theme
  ```

  Sphinx version compatibility

  |Sphinx |Press Theme|
  |-------|-----------|
  |4.X    | latest    |
  |3.X    | 0.6.1     |
  |2.X    | 0.5.1     |




  On Sphinx project's ``conf.py``: set the theme name to ``press``.

  ```
  html_theme = "press"
  ```

  See details on [configuration](https://schettino72.github.io/sphinx_press_site/configuration.html).




  First build web assets:

  ```
  cd ui
  yarn build
  ```

  Sphinx theme has a soft link to built assets...
  Install theme locally with `pip install -e .`.

  `docs` folder contains theme's own documentantion.

  ```
  cd docs
  make clean html
  ```



  Set version on:

  - `setup.py`
  - `sphinx_press_theme/__init__.py`
  - `sphinx_press_theme/theme.conf`
  - `docs/source/conf.py`




  To update website:

  ```
  cd ../press_site
  rsync -rvi ../sphinx_press_theme/docs/build/html/ .
  git add --all
  ```


pkgId: 25fd495f8d05f2be84c7fda947df058e61eb9e1023bac4fd13173cb3645b5f59
name: python-sphinx-removed-in
arch: src
version: 0.2.1
epoch: 0
release: 1
summary: versionremoved and removed-in directives for Sphinx
url: https://github.com/MrSenko/sphinx-removed-in
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-c8dbaed3-b35f-4076-8118-d2e5202bb5b1
location_href: 00005156-python-sphinx-removed-in/python-sphinx-removed-in-0.2.1-1.src.rpm
checksum_type: sha256
description:
  This is a Sphinx extension which recognizes the ``.. versionremoved::`` and
  ``.. removed-in::`` directives. These are missing from Sphinx'es
  `core markup <http://www.sphinx-doc.org/en/stable/markup/para.html>`_.


pkgId: 3e8b3150fa1626c0c958016ac20d257bbb35667c9c833736d9ce10aa2c9eb2d9
name: python-sphinx-selective-exclude
arch: src
version: 1.0.3
epoch: 0
release: 1
summary: Sphinx eager ".. only::" directive and other selective rendition extensions
url: https://github.com/pfalcon/sphinx_selective_exclude
rpm_license: MIT license
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d09e60f7-eb87-465e-9bcb-93fc8c0e94cb
location_href: 00005160-python-sphinx_selective_exclude/python-sphinx-selective-exclude-1.0.3-1.src.rpm
checksum_type: sha256
description:
  Project home page: https://github.com/pfalcon/sphinx_selective_exclude
  The implementation of ".. only::" directive in Sphinx documentation
  generation tool is known to violate principles of least user surprise
  and user expectations in general. Instead of excluding content early
  in the pipeline (pre-processor style), Sphinx defers exclusion until
  output phase, and what's the worst, various stages processing ignore
  "only" blocks and their exclusion status, so they may leak unexpected
  information into ToC, indexes, etc.
  There's multiple issues submitted upstream on this matter:
  * https://github.com/sphinx-doc/sphinx/issues/2150
  * https://github.com/sphinx-doc/sphinx/issues/1717
  * https://github.com/sphinx-doc/sphinx/issues/1488
  * etc.
  They are largely ignored by Sphinx maintainers.
  This projects tries to rectify situation on users' side. It actually
  changes the way Sphinx processes "only" directive, but does this
  without forking the project, and instead is made as a standard
  Sphinx extension, which a user may add to their documentation config.
  Unlike normal extensions, extensions provided in this package
  monkey-patch Sphinx core to work in a way expected by users.


pkgId: d900fe76bca5f89d6ce06d4e83c8ebb7a565bce27945691808f7448b4abd3bc8
name: python-sphinxcontrib-asyncio
arch: src
version: 0.3.0
epoch: 0
release: 1
summary: sphinx extension to support coroutines in markup
url: https://github.com/aio-libs/sphinxcontrib-asyncio
rpm_license: Apache 2
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-fcd15fdf-3a48-404f-adea-56c6fa1f26ea
location_href: 00005165-python-sphinxcontrib-asyncio/python-sphinxcontrib-asyncio-0.3.0-1.src.rpm
checksum_type: sha256
description:
  Sphinx extension for adding asyncio-specific markups
  Read docs https://sphinxcontrib-asyncio.readthedocs.io/en/latest/ for more details


pkgId: d835ac596a9e505893fdb873e6fac1d06c2da49077adaf4ec17af40ef22e7f67
name: python-sphinxcontrib-autoprogram
arch: src
version: 0.1.8
epoch: 0
release: 1
summary: Documenting CLI programs
url: https://github.com/sphinx-contrib/autoprogram
rpm_license: 2-Clause BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-70940746-6d24-4699-a29c-9564069eef9c
location_href: 00005166-python-sphinxcontrib-autoprogram/python-sphinxcontrib-autoprogram-0.1.8-1.src.rpm
checksum_type: sha256
description:
  This contrib extension, ``sphinxcontrib.autoprogram``, provides an automated
  way to document CLI programs.  It scans ``argparse.ArgumentParser`` object,
  and then expands it into a set of ``.. program::`` and ``.. option::``
  directives.
  Install using ``pip``:
     $ pip install sphinxcontrib-autoprogram
  You can find the documentation from the following URL:
  https://sphinxcontrib-autoprogram.readthedocs.io/


pkgId: 75d43a45e5d98dca2d6148642a13b406b6bc1c20b8d99edc9bfbc0e284e5fd68
name: python-sphinxcontrib-bibtex
arch: src
version: 2.5.0
epoch: 0
release: 1
summary: Sphinx extension for BibTeX style citations.
url: https://github.com/mcmtroffaes/sphinxcontrib-bibtex
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f2d7858f-fd5d-4050-b760-3e86d4d53b47
location_href: 00005167-python-sphinxcontrib-bibtex/python-sphinxcontrib-bibtex-2.5.0-1.src.rpm
checksum_type: sha256
description:
  The bibtex extension allows `BibTeX <http://www.bibtex.org/>`_
  citations to be inserted into documentation generated by
  `Sphinx <https://www.sphinx-doc.org/en/master/>`_, via
  a ``bibliography`` directive,
  along with ``:cite:p:`` and ``:cite:t:`` roles.
  These work similarly to LaTeX's ``thebibliography`` environment
  and the ``\citet`` and ``\citep`` commands.
  For formatting, the extension relies on
  `pybtex <https://pybtex.org/>`_
  written by Andrey Golovizin.
  The extension is inspired by Matthew Brett's
  `bibstuff.sphinxext.bibref <https://github.com/matthew-brett/bibstuff>`_
  and Weston Nielson's
  `sphinx-natbib <https://github.com/mcmtroffaes/sphinxcontrib-bibtex/blob/develop/test/natbib.py>`_.
  * Download: https://pypi.org/project/sphinxcontrib-bibtex/#files
  * Documentation: https://sphinxcontrib-bibtex.readthedocs.io/en/latest/
  * Development: https://github.com/mcmtroffaes/sphinxcontrib-bibtex/


pkgId: c28540c5b5b9b34f5f1b7006f1ff15c93b623d289d824c38e200c6c76dab16e8
name: python-sphinxcontrib-httpdomain
arch: src
version: 1.8.1
epoch: 0
release: 1
summary: Sphinx domain for documenting HTTP APIs
url: https://github.com/sphinx-contrib/httpdomain
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-8ea61ddf-0604-47bd-adac-5f6e3a7b66bb
location_href: 00005171-python-sphinxcontrib-httpdomain/python-sphinxcontrib-httpdomain-1.8.1-1.src.rpm
checksum_type: sha256
description:
  This contrib extension, ``sphinxcontrib.httpdomain``, provides a Sphinx
  domain for describing HTTP APIs.
  You can find the documentation from the following URL:
  https://sphinxcontrib-httpdomain.readthedocs.io/


pkgId: cf0f94f455596ffe7137948de7f24226ecd2fc3f94e8d78215c40efdd4784da6
name: python-sphinxcontrib-issuetracker
arch: src
version: 0.11
epoch: 0
release: 1
summary: Sphinx integration with different issuetrackers
url: http://sphinxcontrib-issuetracker.readthedocs.org/
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-08f664b5-0fa5-44d0-9612-876bab50bd31
location_href: 00005173-python-sphinxcontrib-issuetracker/python-sphinxcontrib-issuetracker-0.11-1.src.rpm
checksum_type: sha256
description:
  This extension can be installed from the `Python Package Index`_::
     pip install sphinxcontrib-issuetracker
  This extension requires Sphinx 1.1 and Pythonn 2.6 or Python 3.1.


pkgId: 8178db67984b2eccec2d19e0c8ad0ff96c1bc1faeb7d23753b056a794e65f3f0
name: python-sphinxcontrib-mermaid
arch: src
version: 0.8.1
epoch: 0
release: 1
summary: Mermaid diagrams in yours Sphinx powered docs
url: https://github.com/mgaitan/sphinxcontrib-mermaid
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-eb5d3c52-d5c8-421f-b48e-dfdc35c44628
location_href: 00012910-python-sphinxcontrib-mermaid/python-sphinxcontrib-mermaid-0.8.1-1.src.rpm
checksum_type: sha256
description:
  You can install it using pip
      pip install sphinxcontrib-mermaid
  Then add ``sphinxcontrib.mermaid`` in ``extensions`` list of your project's ``conf.py``::
      extensions = [
          'sphinxcontrib.mermaid'
      ]


pkgId: 377fc02f4d0ddb64a2ba2952df147670d3468b49ad59b9483022c8220c75b680
name: python-sphinxcontrib-napoleon
arch: src
version: 0.7
epoch: 0
release: 1
summary: Sphinx "napoleon" extension.
url: https://sphinxcontrib-napoleon.readthedocs.io
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-77a6c9c5-31d9-40ff-a971-2f1965a72e63
location_href: 00011345-python-sphinxcontrib-napoleon/python-sphinxcontrib-napoleon-0.7-1.src.rpm
checksum_type: sha256
description:
     Sphinx under `sphinx.ext.napoleon`. The `sphinxcontrib.napoleon` extension
     will continue to work with Sphinx <= 1.2.
  Are you tired of writing docstrings that look like this::
         instance is destructed
  `ReStructuredText`_ is great, but it creates visually dense, hard to read
  `docstrings`_. Compare the jumble above to the same thing rewritten
  according to the `Google Python Style Guide`_::
      Args:
          path (str): The path of the file to wrap
          field_storage (FileStorage): The :class:`FileStorage` instance to wrap
          temporary (bool): Whether or not to delete the file when the File
             instance is destructed
      Returns:
          BufferedFileStorage: A buffered writable file descriptor
  Much more legible, no?
  Napoleon is a `Sphinx extension`_ that enables Sphinx to parse both `NumPy`_
  and `Google`_ style docstrings - the style recommended by `Khan Academy`_.
  Napoleon is a pre-processor that parses `NumPy`_ and `Google`_ style
  docstrings and converts them to reStructuredText before Sphinx attempts to
  parse them. This happens in an intermediate step while Sphinx is processing
  the documentation, so it doesn't modify any of the docstrings in your actual
  source code files.
     http://google.github.io/styleguide/pyguide.html
     http://google.github.io/styleguide/pyguide.html#Comments
     https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt
     https://sites.google.com/a/khanacademy.org/forge/for-developers/styleguide/python#TOC-Docstrings


pkgId: 017245e46b372f4dafce5972d4adcf72846cd7b106db847dc5c19a391e290baf
name: python-sphinxcontrib-phpdomain
arch: src
version: 0.11.0
epoch: 0
release: 1
summary: Sphinx extension to enable documenting PHP code
url: https://github.com/markstory/sphinxcontrib-phpdomain
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-80030d12-bfad-4d7c-b24c-8d5c8e2b442a
location_href: 00008502-python-sphinxcontrib-phpdomain/python-sphinxcontrib-phpdomain-0.11.0-1.src.rpm
checksum_type: sha256
description:
  This package provides a Sphinx extension for documenting PHP projects.

  PHP Domain supports following objects:

  * Global variable
  * Global function
  * Constants
  * Namespaces

      * Functions
      * Class

  * Class

      * Class constant
      * Instance methods
      * Static methods
      * Properties

  * Enums


pkgId: 5f7a63979284c43992461057241f50c4da0d38ac74c2bb43f7a366f0af7ff2c1
name: python-sphinxcontrib-phpdomain
arch: src
version: 0.9.0
epoch: 0
release: 1
summary: Sphinx extension to enable documenting PHP code
url: https://github.com/markstory/sphinxcontrib-phpdomain
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-16e21056-78a7-401a-adb9-9fdc5b9c40af
location_href: 00005176-python-sphinxcontrib-phpdomain/python-sphinxcontrib-phpdomain-0.9.0-1.src.rpm
checksum_type: sha256
description:
  This package contains the phpdomain Sphinx extension.

  This extension provides a PHP domain for sphinx


pkgId: f01d80629981f12ebf783e51a3cc6903cf0f1c3f0c036e9fa0643d55ab8f2bbe
name: python-sphinxcontrib-programoutput-help
arch: noarch
version: 0.17
epoch: 0
release: 1
summary: Development documents and examples for sphinxcontrib-programoutput
url: https://sphinxcontrib-programoutput.readthedocs.org/
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d182833a-918c-4475-932b-da89f7199e34
rpm_sourcerpm: python-sphinxcontrib-programoutput-0.17-1.src.rpm
checksum_type: sha256
location_href:
  00005177-python-sphinxcontrib-programoutput/python-sphinxcontrib-programoutput-help-0.17-1.noarch.rpm


pkgId: fec0958b5cc6b0195eeb29fda06d649f3617d78f7c4fa5025fc100dce60b336e
name: python-sphinxcontrib-programoutput-help
arch: noarch
version: 0.17
epoch: 0
release: 1
summary: Development documents and examples for sphinxcontrib-programoutput
url: https://sphinxcontrib-programoutput.readthedocs.org/
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-68aa3337-3e1c-44e2-8987-2ea0e078b125
rpm_sourcerpm: python-sphinxcontrib-programoutput-0.17-1.src.rpm
checksum_type: sha256
location_href:
  00008503-python-sphinxcontrib-programoutput/python-sphinxcontrib-programoutput-help-0.17-1.noarch.rpm


pkgId: f412bef1d52609581120067966148228ef7fd977b25fab945574df002a97dbaa
name: python-sphinxcontrib-redoc
arch: src
version: 1.6.0
epoch: 0
release: 1
summary: ReDoc powered OpenAPI (fka Swagger) spec renderer for Sphinx
url: https://github.com/ikalnytskyi/sphinxcontrib-redoc
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-00fb72d3-b0b2-4b6b-b8f4-a645d918b542
location_href: 00013904-python-sphinxcontrib-redoc/python-sphinxcontrib-redoc-1.6.0-1.src.rpm
checksum_type: sha256
description:
  |pypi-version| |travis-ci|
  The Sphinx_ extension that renders OpenAPI_ (fka Swagger) specs with love
  (❤️) using amazing ReDoc_. Don't believe it? Here's `the proof`_. Now stop
  frustrating and start moving your projects to OpenAPI and ReDoc with this
  small first step:
      $ pip install sphinxcontrib-redoc
  * Free software: BSD License
  * Documentation: https://sphinxcontrib-redoc.readthedocs.io
  * Source: https://github.com/ikalnytskyi/sphinxcontrib-redoc
  * Bugs: https://github.com/ikalnytskyi/sphinxcontrib-redoc/issues
  Any feedback, any contribution is really appreciated!


pkgId: 2882044ecb540ebaa2267ad16d5dfbf99c1368e3390ceec04bb03db9f2b39514
name: python-sphinxcontrib-serializinghtml
arch: src
version: 1.1.5
epoch: 0
release: 1
url: http://sphinx-doc.org/
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f864fd22-9cb1-4782-920d-5ad06a851253
location_href: 00009236-python-sphinxcontrib-serializinghtml/python-sphinxcontrib-serializinghtml-1.1.5-1.src.rpm
checksum_type: sha256
summary:
  sphinxcontrib-serializinghtml is a sphinx extension which outputs "serialized" HTML files (json and pickle).

description:
  sphinxcontrib-serializinghtml is a sphinx extension which outputs
  "serialized" HTML files (json and pickle).


pkgId: e4c52e5e6f5d7e0eb030b57164aae009b0325499c6e12df66c2112ba7ace718d
name: python-sphinxcontrib-serializinghtml-help
arch: noarch
version: 1.1.5
epoch: 0
release: 1
summary: Development documents and examples for sphinxcontrib-serializinghtml
url: http://sphinx-doc.org/
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f864fd22-9cb1-4782-920d-5ad06a851253
rpm_sourcerpm: python-sphinxcontrib-serializinghtml-1.1.5-1.src.rpm
checksum_type: sha256
description:
  sphinxcontrib-serializinghtml is a sphinx extension which outputs
  "serialized" HTML files (json and pickle).

location_href:
  00009236-python-sphinxcontrib-serializinghtml/python-sphinxcontrib-serializinghtml-help-1.1.5-1.noarch.rpm


pkgId: 865c7d8b0b5158e007de7ad8bc2a56d2de9680dd74e88f22e652ec75cf40946a
name: python-sphinxcontrib-svg2pdfconverter
arch: src
version: 1.2.2
epoch: 0
release: 1
summary: Sphinx SVG to PDF converter extension
url: https://github.com/missinglinkelectronics/sphinxcontrib-svg2pdfconverter
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-098cf352-0774-4754-bdc0-affd4ac3c4b8
checksum_type: sha256
description:
  Just install via ``pip``:
     $ pip install sphinxcontrib-svg2pdfconverter
  You can choose between Inkscape, libRSVG and CairoSVG by adding
  ``sphinxcontrib.inkscapeconverter``, ``sphinxcontrib.rsvgconverter`` or
  ``sphinxcontrib.cairosvgconverter`` to the ``extensions`` list in your
  ``conf.py``.
  Make sure to have either ``inkscape`` or the ``rsvg-convert`` command available
  in your systems ``PATH`` and, if necessary, adapt the
  ``inkscape_converter_bin`` or ``rsvg_converter_bin`` config value respectively.
  CairoSVG requires additional dependencies to be installed with:
     $ pip install sphinxcontrib-svg2pdfconverter[CairoSVG]
  CairoSVG and its dependencies may require additional tools during the
  installation depending on the OS you are using; see the `CairoSVG documentation
  <https://cairosvg.org/documentation/#installation>`_ for further details.

location_href:
  00012263-python-sphinxcontrib-svg2pdfconverter/python-sphinxcontrib-svg2pdfconverter-1.2.2-1.src.rpm


pkgId: 35ea326d6937384f5b1fc65a6d73e301e543d8e454f83bf94ef3dea2eeb91393
name: python-sphinxcontrib-svg2pdfconverter-help
arch: noarch
version: 1.2.2
epoch: 0
release: 1
summary: Development documents and examples for sphinxcontrib-svg2pdfconverter
url: https://github.com/missinglinkelectronics/sphinxcontrib-svg2pdfconverter
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-098cf352-0774-4754-bdc0-affd4ac3c4b8
rpm_sourcerpm: python-sphinxcontrib-svg2pdfconverter-1.2.2-1.src.rpm
checksum_type: sha256
description:
  Just install via ``pip``:
     $ pip install sphinxcontrib-svg2pdfconverter
  You can choose between Inkscape, libRSVG and CairoSVG by adding
  ``sphinxcontrib.inkscapeconverter``, ``sphinxcontrib.rsvgconverter`` or
  ``sphinxcontrib.cairosvgconverter`` to the ``extensions`` list in your
  ``conf.py``.
  Make sure to have either ``inkscape`` or the ``rsvg-convert`` command available
  in your systems ``PATH`` and, if necessary, adapt the
  ``inkscape_converter_bin`` or ``rsvg_converter_bin`` config value respectively.
  CairoSVG requires additional dependencies to be installed with:
     $ pip install sphinxcontrib-svg2pdfconverter[CairoSVG]
  CairoSVG and its dependencies may require additional tools during the
  installation depending on the OS you are using; see the `CairoSVG documentation
  <https://cairosvg.org/documentation/#installation>`_ for further details.

location_href:
  00012263-python-sphinxcontrib-svg2pdfconverter/python-sphinxcontrib-svg2pdfconverter-help-1.2.2-1.noarch.rpm


pkgId: 4c5467ce2ff128f2ee27b5624b06893d6b5dfa1c5da377a50bacefc094ad10d9
name: python-sphinxcontrib-trio
arch: src
version: 1.1.2
epoch: 0
release: 1
summary: Make Sphinx better at documenting Python functions and methods
url: https://github.com/python-trio/sphinxcontrib-trio
rpm_license: MIT -or- Apache License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-17bfb043-2224-4453-b94d-e0477727d93c
location_href: 00005181-python-sphinxcontrib-trio/python-sphinxcontrib-trio-1.1.2-1.src.rpm
checksum_type: sha256
description:
  This sphinx extension helps you document Python code that uses
  async/await, or abstract methods, or context managers, or generators,
  or ... you get the idea. It works by making sphinx's regular
  directives for documenting Python functions and methods smarter and
  more powerful. The name is because it was originally written for the
  `Trio <https://trio.readthedocs.io>`__ project, and I'm not very
  creative. But don't be put off – there's nothing Trio- or
  async-specific about this extension; any Python project can
  benefit. (Though projects using async/await probably benefit the most,
  since sphinx's built-in tools are especially inadequate in this case.)


pkgId: 1a98ce71b7b543e150c225f2ae3196e45be412c9d90119ebdb75271221eede2d
name: python-sphinxcontrib_github_alt
arch: src
version: 1.2
epoch: 0
release: 1
summary: Link to GitHub issues, pull requests, commits and users from Sphinx docs.
url: https://github.com/jupyter/sphinxcontrib_github_alt
rpm_license: BSD License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-b7347a58-848b-4ab7-9df5-8787affd1129
location_href: 00005170-python-sphinxcontrib-github-alt/python-sphinxcontrib_github_alt-1.2-1.src.rpm
checksum_type: sha256
description:
  Link to GitHub issues, pull requests, commits and users for a particular project.

  To use this extension, add it to the ``extensions`` list in ``conf.py``,
  and set the variable ``github_project_url``:

  .. code-block:: python

      extensions = [...
                    'sphinxcontrib_github_alt',
                   ]

      github_project_url = "https://github.com/ipython/ipython"

  Then use these roles in your documentation:

  .. code-block:: rst

      * :ghissue:`12` - link to issue #12
      * :ghpull:`35` - link to pull request #35
      * :ghcommit:`3a1cb54` - link to commit
      * :ghuser:`ipython` - link to a user or organisation


  It's called 'alt' because `sphinxcontrib-github
  <https://pypi.python.org/pypi/sphinxcontrib-github/>`__ already exists. IPython
  & Jupyter projects have been using the syntax defined in this extension for some
  time before we made it into its own package, so we didn't want to switch to
  ``sphinxcontrib-github``.


pkgId: 406e2ba9619c7c743bf9befe12833730e46978e97c71fa7011c4b04527ca1ed2
name: python-sphinxtesters
arch: src
version: 0.2.3
epoch: 0
release: 1
summary: Utilities for testing Sphinx extensions
url: http://github.com/matthew-brett/sphinxtesters
rpm_license: BSD license
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a5a6433d-66b6-4017-8cc1-5c06dd816092
location_href: 00005183-python-sphinxtesters/python-sphinxtesters-0.2.3-1.src.rpm
checksum_type: sha256
description:
  Sphinxtesters - utilities for testing Sphinx extensions


  .. shared-text-body

  **********
  Quickstart
  **********

  If you have a directory containing a sphinx project, test that it builds with
  something like:

  .. code:: python

      class TestMyProject(SourcesBuilder):

          page_source_template = 'path/to/sphinx_dir'

          def test_basic_build(self):
              
              doctree = self.get_doctree('a_page')
              
              html = self.get_built_file('a_page.html')
              

  You can try adding other page content by using the ``rst_sources`` dictionary:

  .. code:: python

      class TestChangedProject(SourcesBuilder):

          page_source_template = 'path/to/sphinx_dir'
          rst_sources = {'a_page': """Replacement text for page""",
                         'b_page': """An entirely new page"""}

          def test_basic_build(self):
              a_doctree = self.get_doctree('a_page')
              b_doctree = self.get_doctree('b_page')
              

  Set the text of the ``conf.py`` file with the ``conf_source`` attribute:

  .. code:: python

      class TestConfeddProject(SourcesBuilder):

          page_source_template = 'path/to/sphinx_dir'
          rst_sources = {'a_page': """Replacement text for page""",
                         'b_page': """An entirely new page"""}
          conf_source = """ # This overwrites existing conf.py """

          def test_basic_build(self):
              a_doctree = self.get_doctree('a_page')
              b_doctree = self.get_doctree('b_page')
              

  You don't need to set ``page_source_template``; if you don't, you start with a
  fresh project, where the only pages are the ones you specify in
  ``rst_sources``.

  .. code:: python

      class TestFreshProject(SourcesBuilder):

          rst_sources = {'a_page': """A new page""",
                         'b_page': """Another new page"""}
          conf_source = """ # Stuff for the conf.py file """

          def test_basic_build(self):
              a_doctree = self.get_doctree('a_page')
              b_doctree = self.get_doctree('b_page')
              

  See the tests for examples of using Sphinxtesters for testing builds of Sphinx
  projects.

  ************
  Installation
  ************

  ::

      pip install sphinxtesters

  ****
  Code
  ****

  See https://github.com/matthew-brett/sphinxtesters

  Released under the BSD two-clause license - see the file ``LICENSE`` in the
  source distribution.

  `travis-ci <https://travis-ci.org/matthew-brett/sphinxtesters>`_ kindly tests the
  code automatically under Python versions 2.7, and 3.3 through 3.6.

  The latest released version is at https://pypi.python.org/pypi/sphinxtesters

  *****
  Tests
  *****

  * Install ``sphinxtesters``
  * Install the pytest_ testing framework::

      pip install pytest

  * Run the tests with::

      pytest sphinxtesters

  *******
  Support
  *******

  Please put up issues on the `sphinxtesters issue tracker`_.

  .. standalone-references

  .. |sphinxtesters-documentation| replace:: `sphinxtesters documentation`_
  .. _sphinxtesters documentation:
      https://matthew-brett.github.com/sphinxtesters/sphinxtesters.html
  .. _documentation: https://matthew-brett.github.com/sphinxtesters
  .. _pandoc: http://pandoc.org
  .. _jupyter: jupyter.org
  .. _homebrew: brew.sh
  .. _sphinx: http://sphinx-doc.org
  .. _rest: http://docutils.sourceforge.net/rst.html
  .. _sphinxtesters issue tracker: https://github.com/matthew-brett/sphinxtesters/issues
  .. _pytest: https://pytest.org
  .. _mock: https://github.com/testing-cabal/mock


