# packages

pkgId: 1d59f9c96ad86191e38b17eebd5d321214fdd8088d39d579b7e8bcbf3cdbcfe4
name: python-PyScaffold
arch: src
version: 4.4
epoch: 0
release: 1
summary: Template tool for putting up the scaffold of a Python project
url: https://github.com/pyscaffold/pyscaffold/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-6b33b9ac-875f-4c89-8574-c99912e03a06
location_href: 00004790-python-pyscaffold/python-PyScaffold-4.4-1.src.rpm
checksum_type: sha256
description:
  Just pick your favourite installation method::
      
      
      pip install pyscaffold
      
      conda install -c conda-forge pyscaffold
      
      pipx install pyscaffold
  If you want to install all PyScaffold's *extensions* you can even::
      pip install pyscaffold[all]
  (More details of each method are available in the `installation docs`_)
  After the installation, a new ``putup`` command will be available and you can just type::
      putup my_project
  This will create a new folder called ``my_project`` containing a perfect *project
  template* with everything you need for some serious coding.
  After ``cd``-ing into your new project and creating (or activating) an `isolated
  development environment`_ (with virtualenv_, conda_ or your preferred tool),
  you can do the usual `editable install`_::
      pip install -e .
  … all set and ready to go!
  We also recommend using tox_, so you can take advantage of the automation tasks
  we have setup for you, like::
     tox -e build  # to build your package distribution
     tox -e publish  # to test your project uploads correctly in test.pypi.org
     tox -e publish -- --repository pypi  # to release your package to PyPI
     tox -av  # to list all the tasks available
  The following figure demonstrates the usage of ``putup`` with the new experimental
  interactive mode for setting up a simple project.
  It uses the `--cirrus` flag to add CI support (via `Cirrus CI`_), and
  tox_ to run automated project tasks like building a package file for
  distribution (or publishing).
  Type ``putup -h`` to learn about more configuration options. PyScaffold assumes
  that you have Git_ installed and set up on your PC,
  meaning at least your name and email are configured.
  The project template provides you with following features:


pkgId: 49d133f4bda3bc8b5a9f4a86cccf80a1a34c3a933a663394c0d757fedaab58a0
name: python-PySimpleGUI
arch: src
version: 4.60.4
epoch: 0
release: 1
url: https://github.com/PySimpleGUI/PySimpleGUI
rpm_license: GNU Lesser General Public License v3 or later (LGPLv3+)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-929ea775-3033-4c6e-ac30-ef7955b279d0
location_href: 00011788-python-pysimplegui/python-PySimpleGUI-4.60.4-1.src.rpm
checksum_type: sha256
summary:
  Python GUIs for Humans. Launched in 2018. It's 2022 & PySimpleGUI is an ACTIVE & supported project. Super-simple to create custom GUI's. 325+ Demo programs & Cookbook for rapid start. Extensive documentation. Main docs at www.PySimpleGUI.org. Fun & your success are the focus. Examples using Machine Learning (GUI, OpenCV Integration), Rainmeter Style Desktop Widgets, Matplotlib + Pyplot, PIL support, add GUI to command line scripts, PDF & Image Viewers. Great for beginners & advanced GUI programmers.

description:
  |  Issues | Commit Activity | Stars | Docs |
  | -- | -- | -- | -- |
  | ![GitHub issues](https://img.shields.io/github/issues-raw/PySimpleGUI/PySimpleGUI?color=blue)  | ![commit activity](https://img.shields.io/github/commit-activity/m/PySimpleGUI/PySimpleGUI.svg?color=blue) | ![stars](https://img.shields.io/github/stars/PySimpleGUI/PySimpleGUI.svg?label=stars&maxAge=2592000) | ![Documentation Status](https://readthedocs.org/projects/pysimplegui/badge/?version=latest) |
  |  ![GitHub closed issues](https://img.shields.io/github/issues-closed-raw/PySimpleGUI/PySimpleGUI?color=blue) | ![last commit](https://img.shields.io/github/last-commit/PySimpleGUI/PySimpleGUI.svg?color=blue)  |  |
  <p align="center">
    <img src="https://github-readme-stats.vercel.app/api/?username=PySimpleGUI&bg_color=3e7bac&title_color=ffdd55&icon_color=ffdd55&text_color=ffdd55&show_icons=true&count_private=true">
  </p>
  <hr>

  PySimpleGUI is a Python package that enables Python programmers of all levels to create GUIs.  You specify your GUI window using a "layout" which contains widgets (they're called "Elements" in PySimpleGUI).  Your layout is used to create a window using one of the 4 supported frameworks to display and interact with your window.  Supported frameworks include tkinter, Qt, WxPython, or Remi. The term "wrapper" is sometimes used for these kinds of packages.
  Your PySimpleGUI code is simpler and shorter than writing directly using the underlying framework because PySimpleGUI implements much of the "boilerplate code" for you.  Additionally, interfaces are simplified to require as little code as possible to get the desired result.  Depending on the program and framework used, a PySimpleGUI program may require 1/2 to 1/10th amount of code to create an identical window using one of the frameworks directly.
  While the goal is to encapsulate/hide the specific objects and code used by the GUI framework you are running on top of, if needed you can access the frameworks' dependent widgets and windows directly. If a setting or feature is not yet exposed or accessible using the PySimpleGUI APIs, you are not walled off from the framework. You can expand capabilities without directly modifying the PySimpleGUI package itself.

  Python has brought a large number of people into the programming community. The number of programs and the range of areas it touches is mindboggling.  But more often than not, these technologies are out of reach of all but a handful of people.  The majority of Python programs are "command line" based. This isn't a problem for programmer-types as we're all used to interacting with computers through a text interface.  While programmers don't have a problem with command-line interfaces, most "normal people" do.  This creates a digital divide, a "GUI Gap".
  Adding a GUI to a program opens that program up to a wider audience. It becomes more approachable. GUIs can also make interacting with some programs easier, even for those that are comfortable with a command-line interface.  And finally, some problems require a GUI.
  <p align="center">
    <img src="https://raw.githubusercontent.com/PySimpleGUI/PySimpleGUI/master/images/for_readme/GUI%20Gap%202020.png" width="600px">
  </p>

  In the Demo Programs or one of the PySimpleGUI Account's Repos these packages were used at least one time. Some of your are the goodies on the right of the GUI gap.
   If you use Open Source software in your project, be sure and supply information about the packages you used.
  - chatterbot
  - cv2
  - fitz
  - forecastio
  - gtts
  - matplotlib
  - mido
  - mpl_toolkits
  - notifypy
  - numpy
  - pandas
  - PIL
  - praw
  - psgtray
  - psutil
  - pyfiglet
  - pygame
  - pylab
  - pymunk
  - requests
  - vlc
  - win32api
  - win32con
  - win32gui
  - win32process

  The licensing terms in the LLC3 Licensing, it states:
  >   4. Combined Works.
  > You may convey a Combined Work under terms of your choice that,
  > taken together, effectively do not restrict modification of the
  > portions of the Library contained in the Combined Work and reverse
  > engineering for debugging such modifications, if you also do each of
  > the following:
  >
  >    a) Give prominent notice with each copy of the Combined Work that
  >    the Library is used in it and that the Library and its use are
  >    covered by this License.
  >
  >    b) Accompany the Combined Work with a copy of the GNU GPL and this license
  >    document.
  Since the above packages each have a similar license clause, I'm listing them here, in what I would consider a "prominent notice" location, that I'm using the fine works of these groups or individuals.  They are used in the Demo Programs most likely or one of the Repos that are under this account as this list is all inclusive.
  You all have my respect and admiration.  You're enabling bigger things. What a special kind of thing to make. Who knows what you've enabled. I believe more people are getting over to your creations and getting to experience them.
  tkinter team - PySimpleGUI would be nowhere without your lengthy work & continuous dedication. ONE GUI API for 3 different OS's? Really? With no code changes to move between? That's a huge accomplishment. You're #1 to me.  Thank you for your hard work.

  It's been said by some that "the bar is pretty high" when it comes to learning GUI programming in Python.
  >	 What happens when the bar is placed on the ground and can be stepped over?
  This is one of the questions that the PySimpleGUI project has tried to answer.  Here's a humorous look at what's been a not funny situation.
  <p align="center">
    <img src="https://raw.githubusercontent.com/PySimpleGUI/PySimpleGUI/master/images/for_readme/GettingOverThe%20GUILearningBar.jpg" width="600px">
  </p>
  The results have been fascinating to witness and it's been touching to read the accounts of the journeys of users.
  Nothing prepared me for the emails that started to arrive soon after the first release of PySimpleGUI. They are heartwarming and heartbreaking tales of life-long dreams of creating a program that required a GUI. Some made a few attempts, giving up each time. Others never started once they started to research what was required.
  After recounting the varied and long road to finding PySimpleGUI, the stories became similar. They each found success and expressed joy and gratitude. The joy expressed in these messages was unlike anything I had encountered in the entirety of career in the computing field.
  It's been these emails and the messages of gratitude seen here in the GitHub Issues that made dedicating my life to his project a non-decision.
  <hr>

  If you click the "Subscribe" button in [the Announcements GitHub Issue](https://github.com/PySimpleGUI/PySimpleGUI/issues/142), then you'll be notified when project news is published.  This Issue is **the official location** to get the latest PySimpleGUI information.  Information is posted frequently including release contents, tips & tricks, documentation updates, etc. There have been over 1,000 posts since the project started.
  <hr>

  Hi there!  I'm Mike.  You'll find me right here, on the PySimpleGUI GitHub, solving problems and continuously pushing PySimpleGUI forward.  I've dedicated my days, nights, and weekends to the project and PySimpleGUI users.  Our successes are ultimately shared.  I'm successful when you're successful.
  While I'm a relative newcomer to Python, I've been writing software since the 70s.  The majority of my career was spent creating products in Silicon Valley. I bring to PySimpleGUI the same professionalism and dedication as I did to the corporate products I developed. You are my customers now.

  Two of the most important goals of the PySimpleGUI project:
  * Having fun
  * Your success
  **Fun** as a goal on a serious project sounds odd, but it's a serious goal. I find writing these GUI programs to be a lot of fun. One reason is how little time it takes to write a complete solution. If we're not enjoying the process then someone's going to give up.
  There is a significant amount of documentation, a cookbook, 100's of demo programs to get you immediately running, a detailed call reference, YouTube videos, online Trinket demos, and more... all working to create... a fun experience.
  **Your Success** is a shared goal.  PySimpleGUI was built for developers. You're my peeps. It's been an unexpected reward to see the results of the combined effort of users and PySimpleGUI. Use the documentation & other materials to help build your application.  If you run into trouble, help is available by opening on [Issue on the PySimpleGUI GitHub](http://Issues.PySimpleGUI.org).  Take a look at the section on Support below.
  <hr>

  PySimpleGUI now has an official Udemy course!  Check the header of this readme and the PySimpleGUI documentation for a coupon code.  The course can be found at [www.udemy.com/PySimpleGUI](https://www.udemy.com/PySimpleGUI).  **This course** is currently the only income source for the PySimpleGUI project other than sponsorships and donations.
  [www.PySimpleGUI.org](http://www.PySimpleGUI.org)
  is easy to remember and is where the documentation is located. You'll find tabs across the top that represent several different documents. The documentation is located on "Read The Docs" so that there is a table of contents for each document and they are easy to search.
  There are 100s of pages of written documentation and 100s of example programs that will help you be effective very quickly.  Rather than requiring days or weeks of investment to learn a single GUI package, you may be able to complete your project in a single afternoon when using PySimpleGUI.

  This type of program is called a "one-shot" window because the window is displayed one time, the values collected, and then it is closed.  It doesn't remain open for a long time like you would in a Word Processor.

  There are 5 sections to a PySimpleGUI program
  ```python
  import PySimpleGUI as sg                        # Part 1 - The import

  layout = [  [sg.Text("What's your name?")],     # Part 2 - The Layout
              [sg.Input()],
              [sg.Button('Ok')] ]

  window = sg.Window('Window Title', layout)      # Part 3 - Window Defintion

  event, values = window.read()                   # Part 4 - Event loop or Window.read call

  print('Hello', values[0], "! Thanks for trying PySimpleGUI")

  window.close()                                  # Part 5 - Close the Window
  ```
  The code produces this window
  <p align="center">
    <img src="https://raw.githubusercontent.com/PySimpleGUI/PySimpleGUI/master/images/for_readme/ex1-tkinter.jpg">
  </p>
  <hr>

  In this example, our window will remain on the screen until the user closes the window or clicks the Quit button.  The main difference between the one-shot window you saw earlier and an interactive window is the addition of an "Event Loop". The Event Loop reads events and inputs from your window.  The heart of your application lives in the event loop.
  ```python
  import PySimpleGUI as sg

  layout = [[sg.Text("What's your name?")],
            [sg.Input(key='-INPUT-')],
            [sg.Text(size=(40,1), key='-OUTPUT-')],
            [sg.Button('Ok'), sg.Button('Quit')]]

  window = sg.Window('Window Title', layout)

  while True:
      event, values = window.read()
      
      if event == sg.WINDOW_CLOSED or event == 'Quit':
          break
      
      window['-OUTPUT-'].update('Hello ' + values['-INPUT-'] + "! Thanks for trying PySimpleGUI")

  window.close()
  ```
  This is the window that Example 2 produces.
  <p align="center">
    <img src="https://raw.githubusercontent.com/PySimpleGUI/PySimpleGUI/master/images/for_readme/Example2-1.jpg">
  </p>
  And here's what it looks like after you enter a value into the Input field and click the Ok button.
  <p align="center">
    <img src="https://raw.githubusercontent.com/PySimpleGUI/PySimpleGUI/master/images/for_readme/Example2-2.jpg">
  </p>
  Let's take a quick look at some of the differences between this example and the one-shot window.
  First, you'll notice differences in the layout.  Two changes in particular are important.  One is the addition of the `key` parameter to the `Input` element and one of the `Text` elements.  A `key` is like a name for an element.  Or, in Python terms, it's like a dictionary key.  The `Input` element's key will be used as a dictionary key later in the code.
  Another difference is the addition of this `Text` element:
  ```python
            [sg.Text(size=(40,1), key='-OUTPUT-')],
  ```
  There are 2 parameters, the `key` we already covered.  The `size` parameter defines the size of the element in characters.  In this case, we're indicating that this `Text` element is 40 characters wide, by 1 character high.  Notice that there is no text string specified which means it'll be blank.  You can easily see this blank row in the window that's created.
  We also added a button,  "Quit".
  The Event Loop has our familiar `window.read()` call.
  Following the read is this if statement:
  ```python
      if event == sg.WINDOW_CLOSED or event == 'Quit':
          break
  ```
  This code is checking to see if the user closed the window by clicking the "X" or if they clicked the "Quit" button.  If either of these happens, then the code will break out of the event loop.
  If the window wasn't closed nor the Quit button clicked, then execution continues.  The only thing that could have happened is the user clicked the "Ok" button.  The last statement in the Event Loop is this one:
  ```python
      window['-OUTPUT-'].update('Hello ' + values['-INPUT-'] + "! Thanks for trying PySimpleGUI")
  ```
  This statement updates the `Text` element that has the key `-OUTPUT-` with a string.  `window['-OUTPUT-']` finds the element with the key `-OUTPUT-`.  That key belongs to our blank `Text` element.  Once that element is returned from the lookup, then its `update` method is called.  Nearly all elements have an `update` method.  This method is used to change the value of the element or to change some configuration of the element.
  If we wanted the text to be yellow, then that can be accomplished by adding a `text_color` parameter to the `update` method so that it reads:
  ```python
      window['-OUTPUT-'].update('Hello ' + values['-INPUT-'] + "! Thanks for trying PySimpleGUI",
                                text_color='yellow')
  ```
  After adding the `text_color` parameter, this is our new resulting window:
  <p align="center">
    <img src="https://raw.githubusercontent.com/PySimpleGUI/PySimpleGUI/master/images/for_readme/Example2-3.jpg">
  </p>
  The parameters available for each element are documented in both the [call reference documentation](http://calls.PySimpleGUI.org) as well as the docstrings.  PySimpleGUI has extensive documentation to help you understand all of the options available to you. If you lookup the `update` method for the `Text` element, you'll find this definition for the call:
  <p align="center">
    <img src="https://raw.githubusercontent.com/PySimpleGUI/PySimpleGUI/master/images/for_readme/TextUpdate.jpg">
  </p>
  As you can see several things can be changed for a `Text` element.  The call reference documentation is a valuable resource that will make programming in PySimpleGUI, uhm, simple.
  <hr>

  The over 300 Demo Programs will give you a jump-start and provide many design patterns for you to learn how to use PySimpleGUI and how to integrate PySimpleGUI with other packages.  By far the best way to experience these demos is using the Demo Browser.  This tool enables you to search, edit and run the Demo Programs.
  To get them installed quickly along with the Demo Browser, use `pip` to install `psgdemos`:
  `python -m pip install psgdemos`
  or if you're in Linux, Mac, etc, that uses `python3` instead of `python` to launch Python:
  `python3 -m pip install psgdemos`
  Once installed, launch the demo browser by typing `psgdemos` from the command line"
  `psgdemos`


pkgId: bcf5bd11509a360e8a6aa8dc5d42410339b009523e81a2337ee197afaf550485
name: python-PySimpleSOAP
arch: src
version: 1.16.2
epoch: 0
release: 1
summary: Python simple and lightweight SOAP Library (master branch)
url: https://github.com/pysimplesoap/pysimplesoap
rpm_license: LGPL 3.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-84f59fd0-872d-47cf-bbeb-a8433cc34a55
location_href: 00004804-python-pysimplesoap/python-PySimpleSOAP-1.16.2-1.src.rpm
checksum_type: sha256
description:
  Python simple and lightweight SOAP library for client and server
  webservices interfaces, aimed to be as small and easy as possible,
  supporting most common functionality. Initially it was inspired by `PHP
  Soap Extension <http://php.net/manual/en/book.soap.php>`__ (mimicking
  its functionality, simplicity and ease of use), with many advanced
  features added.
  **Supports Python 3** (same codebase, no need to run 2to3)


pkgId: 2db0db555f59626f66394bfff8af9f7518293418f9424080bced50ebf6fa9df3
name: python-PySnooper
arch: src
version: 1.1.1
epoch: 0
release: 1
summary: A poor man's debugger for Python.
url: https://github.com/cool-RR/PySnooper
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-62c020fa-d620-4a05-9822-4c135b9cb57a
location_href: 00004809-python-pysnooper/python-PySnooper-1.1.1-1.src.rpm
checksum_type: sha256
description:
  **PySnooper** is a poor man's debugger. If you've used Bash, it's like `set -x` for Python, except it's fancier.

  Your story: You're trying to figure out why your Python code isn't doing what you think it should be doing. You'd love to use a full-fledged debugger with breakpoints and watches, but you can't be bothered to set one up right now.

  You want to know which lines are running and which aren't, and what the values of the local variables are.

  Most people would use `print` lines, in strategic locations, some of them showing the values of variables.

  **PySnooper** lets you do the same, except instead of carefully crafting the right `print` lines, you just add one decorator line to the function you're interested in. You'll get a play-by-play log of your function, including which lines ran and   when, and exactly when local variables were changed.

  What makes **PySnooper** stand out from all other code intelligence tools? You can use it in your shitty, sprawling enterprise codebase without having to do any setup. Just slap the decorator on, as shown below, and redirect the output to a dedicated log file by specifying its path as the first argument.



  We're writing a function that converts a number to binary, by returning a list of bits. Let's snoop on it by adding the `@pysnooper.snoop()` decorator:

  ```python
  import pysnooper

  @pysnooper.snoop()
  def number_to_bits(number):
      if number:
          bits = []
          while number:
              number, remainder = divmod(number, 2)
              bits.insert(0, remainder)
          return bits
      else:
          return [0]

  number_to_bits(6)
  ```
  The output to stderr is:

  ![](https://i.imgur.com/TrF3VVj.jpg)

  Or if you don't want to trace an entire function, you can wrap the relevant part in a `with` block:

  ```python
  import pysnooper
  import random

  def foo():
      lst = []
      for i in range(10):
          lst.append(random.randrange(1, 1000))

      with pysnooper.snoop():
          lower = min(lst)
          upper = max(lst)
          mid = (lower + upper) / 2
          print(lower, mid, upper)

  foo()
  ```

  which outputs something like:

  ```
  New var:....... i = 9
  New var:....... lst = [681, 267, 74, 832, 284, 678, ...]
  09:37:35.881721 line        10         lower = min(lst)
  New var:....... lower = 74
  09:37:35.882137 line        11         upper = max(lst)
  New var:....... upper = 832
  09:37:35.882304 line        12         mid = (lower + upper) / 2
  74 453.0 832
  New var:....... mid = 453.0
  09:37:35.882486 line        13         print(lower, mid, upper)
  Elapsed time: 00:00:00.000344
  ```



  If stderr is not easily accessible for you, you can redirect the output to a file:

  ```python
  @pysnooper.snoop('/my/log/file.log')
  ```

  You can also pass a stream or a callable instead, and they'll be used.

  See values of some expressions that aren't local variables:

  ```python
  @pysnooper.snoop(watch=('foo.bar', 'self.x["whatever"]'))
  ```

  Show snoop lines for functions that your function calls:

  ```python
  @pysnooper.snoop(depth=2)
  ```

  **See [Advanced Usage](https://github.com/cool-RR/PySnooper/blob/master/ADVANCED_USAGE.md) for more options.** <------




  The best way to install **PySnooper** is with Pip:

  ```console
  $ pip install pysnooper
  ```



  Conda with conda-forge channel:

  ```console
  $ conda install -c conda-forge pysnooper
  ```

  Arch Linux:

  ```console
  $ yay -S python-pysnooper
  ```

  Fedora Linux:

  ```console
  $ dnf install python3-pysnooper
  ```



  Copyright (c) 2019 Ram Rachum and collaborators, released under the MIT license.




  [Hacker News thread](https://news.ycombinator.com/item?id=19717786)
  and [/r/Python Reddit thread](https://www.reddit.com/r/Python/comments/bg0ida/pysnooper_never_use_print_for_debugging_again/) (22 April 2019)


pkgId: 542b8de60186c9b34592355aecae1cfc379b3b100c53aedf3e0589f125a09309
name: python-PySocks
arch: src
version: 1.7.1
epoch: 0
release: 1
summary: A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information.
url: https://github.com/Anorov/PySocks
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-fee393f2-a5f3-4d5f-8546-86091ef818f1
location_href: 00009328-python-pysocks/python-PySocks-1.7.1-1.src.rpm
checksum_type: sha256
description:
  PySocks lets you send traffic through SOCKS and HTTP proxy servers. It is a modern fork of [SocksiPy](http://socksipy.sourceforge.net/) with bug fixes and extra features.


pkgId: 6bfb930b438a82577819504b467f6ddf14523cb0220ee52e76ea9a23535502a1
name: python-PyTurboJPEG
arch: src
version: 1.7.0
epoch: 0
release: 1
summary: A Python wrapper of libjpeg-turbo for decoding and encoding JPEG image.
url: https://github.com/lilohuang/PyTurboJPEG
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0ed03e09-b87d-4ce5-a530-52adae232b81
location_href: 00011238-python-pyturbojpeg/python-PyTurboJPEG-1.7.0-1.src.rpm
checksum_type: sha256
description:
  A Python wrapper of libjpeg-turbo for decoding and encoding JPEG image.


  - [libjpeg-turbo](https://github.com/libjpeg-turbo/libjpeg-turbo/releases)
  - [numpy](https://github.com/numpy/numpy)



  ```python
  import cv2
  from turbojpeg import TurboJPEG, TJPF_GRAY, TJSAMP_GRAY, TJFLAG_PROGRESSIVE, TJFLAG_FASTUPSAMPLE, TJFLAG_FASTDCT







  jpeg = TurboJPEG()


  in_file = open('input.jpg', 'rb')
  bgr_array = jpeg.decode(in_file.read())
  in_file.close()
  cv2.imshow('bgr_array', bgr_array)
  cv2.waitKey(0)


  in_file = open('input.jpg', 'rb')
  bgr_array = jpeg.decode(in_file.read(), flags=TJFLAG_FASTUPSAMPLE|TJFLAG_FASTDCT)
  in_file.close()
  cv2.imshow('bgr_array', bgr_array)
  cv2.waitKey(0)


  in_file = open('input.jpg', 'rb')
  bgr_array_half = jpeg.decode(in_file.read(), scaling_factor=(1, 2))
  in_file.close()
  cv2.imshow('bgr_array_half', bgr_array_half)
  cv2.waitKey(0)


  scaling_factors = jpeg.scaling_factors


  in_file = open('input.jpg', 'rb')
  width, height, jpeg_subsample, jpeg_colorspace = jpeg.decode_header(in_file.read())
  in_file.close()


  in_file = open('input.jpg', 'rb')
  buffer_array, plane_sizes = jpeg.decode_to_yuv(in_file.read())
  in_file.close()


  in_file = open('input.jpg', 'rb')
  planes = jpeg.decode_to_yuv_planes(in_file.read())
  in_file.close()


  out_file = open('output.jpg', 'wb')
  out_file.write(jpeg.encode(bgr_array))
  out_file.close()


  out_file = open('output_gray.jpg', 'wb')
  out_file.write(jpeg.encode(bgr_array, jpeg_subsample=TJSAMP_GRAY))
  out_file.close()


  out_file = open('output_quality_50.jpg', 'wb')
  out_file.write(jpeg.encode(bgr_array, quality=50))
  out_file.close()


  out_file = open('output_quality_100_progressive.jpg', 'wb')
  out_file.write(jpeg.encode(bgr_array, quality=100, flags=TJFLAG_PROGRESSIVE))
  out_file.close()


  in_file = open('input.jpg', 'rb')
  gray_array = jpeg.decode(in_file.read(), pixel_format=TJPF_GRAY)
  in_file.close()
  cv2.imshow('gray_array', gray_array)
  cv2.waitKey(0)


  in_file = open('input.jpg', 'rb')
  out_file = open('scaled_output.jpg', 'wb')
  out_file.write(jpeg.scale_with_quality(in_file.read(), scaling_factor=(1, 4), quality=70))
  out_file.close()
  in_file.close()


  out_file = open('lossless_cropped_output.jpg', 'wb')
  out_file.write(jpeg.crop(open('input.jpg', 'rb').read(), 8, 8, 320, 240))
  out_file.close()
  ```

  ```python





  import cv2
  import numpy as np
  import exifread
  from turbojpeg import TurboJPEG

  def transposeImage(image, orientation):
      """See Orientation in https://www.exif.org/Exif2-2.PDF for details."""
      if orientation == None: return image
      val = orientation.values[0]
      if val == 1: return image
      elif val == 2: return np.fliplr(image)
      elif val == 3: return np.rot90(image, 2)
      elif val == 4: return np.flipud(image)
      elif val == 5: return np.rot90(np.flipud(image), -1)
      elif val == 6: return np.rot90(image, -1)
      elif val == 7: return np.rot90(np.flipud(image))
      elif val == 8: return np.rot90(image)


  turbo_jpeg = TurboJPEG()

  in_file = open('foobar.jpg', 'rb')

  orientation = exifread.process_file(in_file).get('Image Orientation', None)

  in_file.seek(0)

  image = turbo_jpeg.decode(in_file.read())

  transposed_image = transposeImage(image, orientation)

  in_file.close()

  cv2.imshow('transposed_image', transposed_image)
  cv2.waitKey(0)
  ```




  - brew install jpeg-turbo
  - pip install -U git+https://github.com/lilohuang/PyTurboJPEG.git


  - Download [libjpeg-turbo official installer](https://sourceforge.net/projects/libjpeg-turbo/files)
  - pip install -U git+https://github.com/lilohuang/PyTurboJPEG.git


  - RHEL/CentOS/Fedora
    - Download [libjpeg-turbo.repo](https://libjpeg-turbo.org/pmwiki/uploads/Downloads/libjpeg-turbo.repo) to /etc/yum.repos.d/
    - sudo yum install libjpeg-turbo-official
    - pip install -U git+https://github.com/lilohuang/PyTurboJPEG.git

  - Ubuntu
    - sudo apt-get update
    - sudo apt-get install libturbojpeg
    - pip install -U git+https://github.com/lilohuang/PyTurboJPEG.git




  - macOS Sierra 10.12.6
  - Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
  - opencv-python 3.4.0.12 (pre-built)
  - turbo-jpeg 1.5.3 (pre-built)

  | Function              | Wall-clock time |
  | ----------------------|-----------------|
  | cv2.imdecode()        |   0.528 sec     |
  | TurboJPEG.decode()    |   0.191 sec     |
  | cv2.imencode()        |   0.875 sec     |
  | TurboJPEG.encode()    |   0.176 sec     |


  - Windows 7 Ultimate 64-bit
  - Intel(R) Xeon(R) E3-1276 v3 CPU @ 3.60 GHz
  - opencv-python 3.4.0.12 (pre-built)
  - turbo-jpeg 1.5.3 (pre-built)

  | Function              | Wall-clock time |
  | ----------------------|-----------------|
  | cv2.imdecode()        |   0.358 sec     |
  | TurboJPEG.decode()    |   0.135 sec     |
  | cv2.imencode()        |   0.581 sec     |
  | TurboJPEG.encode()    |   0.140 sec     |


pkgId: 568af30d9c6bd2baab4b40593599bd72f2621501c9a594e3d5678fc2a09be822
name: python-PyVISA
arch: src
version: 1.13.0
epoch: 0
release: 1
summary: Python VISA bindings for GPIB, RS232, TCPIP and USB instruments
url: https://pypi.org/project/PyVISA/
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-76706f68-b1bc-48ab-ae56-cf7f3e5fcab0
location_href: 00012466-python-pyvisa/python-PyVISA-1.13.0-1.src.rpm
checksum_type: sha256
description:
  A Python package for support of the "Virtual Instrument Software
  Architecture" (VISA), in order to control measurement devices and
  test equipment via GPIB, RS232, Ethernet or USB.

rpm_license:
  The MIT License  Copyright (c) 2005-2022 PyVISA Authors and contributors. See AUTHORS  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: 0ef63c1a31c6cbc1160314aa707bc1074883919c66961457be0ad27f66bd49f9
name: python-PyVISA-py
arch: src
version: 0.6.3
epoch: 0
release: 1
summary: Pure Python implementation of a VISA library.
url: https://pypi.org/project/PyVISA-py/
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-977aadf3-5e8a-4ae2-ba7e-3d565dacbc4e
location_href: 00014186-python-pyvisa-py/python-PyVISA-py-0.6.3-1.src.rpm
checksum_type: sha256
description:
  A PyVISA backend that implements a large part of the "Virtual Instrument Software
  Architecture" (VISA_) in pure Python (with the help of some nice cross platform
  libraries python packages!).

rpm_license:
  The MIT License  Copyright (c) 2014 PyVISA-py Authors and contributors. See AUTHORS  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: 434cfe5f73ed160f6122ce57b8c8dc22a7f9c7e775d60fda2732dcbf6d136554
name: python-PyVirtualDisplay
arch: src
version: 3.0
epoch: 0
release: 1
summary: python wrapper for Xvfb, Xephyr and Xvnc
url: https://github.com/ponty/pyvirtualdisplay
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e147217b-1642-487d-abf1-7281d2ff9ccc
location_href: 00009840-python-pyvirtualdisplay/python-PyVirtualDisplay-3.0-1.src.rpm
checksum_type: sha256
description:
  pyvirtualdisplay is a python wrapper for Xvfb, Xephyr and Xvnc

  Documentation: https://github.com/ponty/pyvirtualdisplay/tree/3.0


pkgId: cf048d36019ad690ba0d82884e9ad8faad4a9f75283f7572718b7a5ebae573ce
name: python-PyWebDAV
arch: src
version: 0.9.8
epoch: 0
release: 1
summary: WebDAV library including a standalone server for python
url: http://code.google.com/p/pywebdav/
rpm_license: GPL v2
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-11896a05-4d33-4418-9cfb-ce918ffa98db
location_href: 00004888-python-pywebdav/python-PyWebDAV-0.9.8-1.src.rpm
checksum_type: sha256
description:
  After installation of this package you will have a new script in you
  $PYTHON/bin directory called *davserver*. This serves as the main entry point
  to the server.


pkgId: 09661d3792ebcd714230adaa9c560868f98406af2b179683c006bbb8f0a14c86
name: python-PyYAML
arch: src
version: 6.0
epoch: 0
release: 1
summary: YAML parser and emitter for Python
url: https://pyyaml.org/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-9cbcffed-60d2-4fab-8f78-d3d09532817d
location_href: 00008883-python-pyyaml/python-PyYAML-6.0-1.src.rpm
checksum_type: sha256
description:
  YAML is a data serialization format designed for human readability
  and interaction with scripting languages.  PyYAML is a YAML parser
  and emitter for Python.

  PyYAML features a complete YAML 1.1 parser, Unicode support, pickle
  support, capable extension API, and sensible error messages.  PyYAML
  supports standard YAML tags and provides Python-specific tags that
  allow to represent an arbitrary Python object.

  PyYAML is applicable for a broad range of tasks from complex
  configuration files to object serialization and persistence.


pkgId: 4391ab934a447c77e67a47eda3b26c90c6390e6cd2893fa74d3d54edfae346ef
name: python-PyYAML-debuginfo
arch: x86_64
version: 6.0
epoch: 0
release: 1
summary: Debug information for package python-PyYAML
url: https://pyyaml.org/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-9cbcffed-60d2-4fab-8f78-d3d09532817d
rpm_sourcerpm: python-PyYAML-6.0-1.src.rpm
location_href: 00008883-python-pyyaml/python-PyYAML-debuginfo-6.0-1.x86_64.rpm
checksum_type: sha256
description:
  This package provides debug information for package python-PyYAML.
  Debug information is useful when developing applications that use this
  package or when debugging this package.


pkgId: c5c8984c84fd4c9d7860271d9d6abf3fe418af061c5b993587ad52a3c97867e0
name: python-PyYAML-debugsource
arch: x86_64
version: 6.0
epoch: 0
release: 1
summary: Debug sources for package python-PyYAML
url: https://pyyaml.org/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-9cbcffed-60d2-4fab-8f78-d3d09532817d
rpm_sourcerpm: python-PyYAML-6.0-1.src.rpm
location_href: 00008883-python-pyyaml/python-PyYAML-debugsource-6.0-1.x86_64.rpm
checksum_type: sha256
description:
  This package provides debug sources for package python-PyYAML.
  Debug sources are useful when developing applications that use this
  package or when debugging this package.


pkgId: a298984feb8a8647fc0918b77a872fd7f7ca767b0a12f2c957abdf3e6a002fd6
name: python-Pympler
arch: src
version: 1.0.1
epoch: 0
release: 1
summary: A development tool to measure, monitor and analyze the memory behavior of Python objects.
url: https://github.com/pympler/pympler
rpm_license: Apache License, Version 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-b71078f2-7627-4b0d-b78a-9048224f4cf9
location_href: 00002878-python-Pympler/python-Pympler-1.0.1-1.src.rpm
checksum_type: sha256
description:
  Pympler is a development tool to measure, monitor and analyze the memory
  behavior of Python objects in a running Python application.
  By pympling a Python application, detailed insight in the size and the lifetime
  of Python objects can be obtained.  Undesirable or unexpected runtime behavior
  like memory bloat and other "pymples" can easily be identified.
  Pympler integrates three previously separate projects into a single,
  comprehensive profiling tool. Asizeof provides basic size information for one
  or several Python objects, muppy is used for on-line monitoring of a Python
  application and the class tracker provides off-line analysis of the lifetime of
  selected Python objects. A web profiling frontend exposes process statistics,
  garbage visualisation and class tracker statistics.
  Pympler is written entirely in Python, with no dependencies to external
  libraries. It has been tested with Python 3.6, 3.7, 3.8, 3.9, 3.10 on Linux,
  Windows and MacOS X.


pkgId: 2b7e6cb12ee6ba5ee7c5ec4eb01ceb61a7b2dbec387a510526ea7ea309c92dc0
name: python-Pyped
arch: src
version: 1.4
epoch: 0
release: 1
url: http://github.com/ksamuel/Pyped
rpm_license: GPL2
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-2ec09272-1395-4cdd-89da-7f6a6bf4029a
location_href: 00002879-python-Pyped/python-Pyped-1.4-1.src.rpm
checksum_type: sha256
summary:
  Replace sed/grep/cut/awk by letting you execute Python one-liners in your ordinary shell, like perl does.

description:
  *WARNING: since the last version the command line name "py" has been
  renamed to "pyp" to avoid conflict with the new tool in the Python
  stdlib named "py". It means pyped is now incompatible with the
  "Python Power at the Prompt" project sharing the same name and goals.*
  Pyped is a command-line tool that let you process another command
  output with a Python one-liner like Perl or AWK.
  Ever wish you could do this::
      $ ps aux | pyp "line = x.split()" "print(line[1], line[-1])" | grep worker
      18921 [kworker/1:2]
      22489 [kworker/3:0]
      24065 [kworker/3:3]
      24869 [kworker/u:3]
      25463 [kworker/u:1]
      25511 [kworker/2:2]
      25720 [kworker/0:2]
      26343 [kworker/0:1]
      26491 [kworker/2:0]
      26569 [kworker/1:0]
      26592 [kworker/u:0]
      26861 worker
  Or this::
      $ ls -1 | pyp -i "for x in Counter(path(x.split()[-1]).ext for x in l).items(): print(x)"
      (u'.sh', 2)
      ('', 3)
      (u'.sh~', 3)
      (u'.py', 4)
      (u'.desktop', 1)
  Pyped make that possible by giving you the `py` commande.


pkgId: 038287fc5c80a8bc7a56b0172cd201e2ec7b272bc672e00fee6a4efececf0842
name: python-Pyro
arch: src
version: 3.16
epoch: 0
release: 1
summary: distributed object middleware for Python (IPC/RPC), version 3.x
url: https://pypi.org/project/Pyro/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-fc5ad450-f043-4b24-80df-d3d0e20c737e
location_href: 00004786-python-pyro/python-Pyro-3.16-1.src.rpm
checksum_type: sha256
description:
  Pyro stands for PYthon Remote Objects. It is an advanced and powerful Distributed Object Technology system written entirely in Python, that is designed to be very easy to use.

  This is version 3.x of Pyro, which is no longer being maintained.
  For the current version with new features, look at `Pyro4 <http://pypi.python.org/pypi/Pyro4>`_ instead.


pkgId: 137c13bf490ae996dcb4d1483ed0dd0325544ff723b9af7aa6e9519a5ca1350b
name: python-Pyro4
arch: src
version: 4.82
epoch: 0
release: 1
summary: distributed object middleware for Python (RPC)
url: http://pyro4.readthedocs.io
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-becc2d20-93d3-4182-80a3-9285eaa6710d
location_href: 00011193-python-pyro4/python-Pyro4-4.82-1.src.rpm
checksum_type: sha256
description:
  Pyro means PYthon Remote Objects.
  It is a library that enables you to build applications in which
  objects can talk to eachother over the network, with minimal programming effort.
  You can just use normal Python method calls, with almost every possible parameter
  and return value type, and Pyro takes care of locating the right object on the right
  computer to execute the method. It is designed to be very easy to use, and to
  generally stay out of your way. But it also provides a set of powerful features that
  enables you to build distributed applications rapidly and effortlessly.
  Pyro is a pure Python library and runs on many different platforms and Python versions.

  The source code repository is on Github: https://github.com/irmen/Pyro4

  The documentation can be found here: http://pyro4.readthedocs.io


pkgId: 5627e1f8f108d08ee8cbd4a87dbeeb6357ba0d57fc9b7b597defdcc7c29fb521
name: python-Pyrogram
arch: src
version: 2.0.103
epoch: 0
release: 1
summary: Elegant, modern and asynchronous Telegram MTProto API framework in Python for users and bots
url: https://github.com/pyrogram
rpm_license: LGPLv3
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-db9e84d6-46a2-4902-ad13-e0ca0c011a9a
location_href: 00010305-python-pyrogram/python-Pyrogram-2.0.103-1.src.rpm
checksum_type: sha256
description:
  <p align="center">
      <a href="https://github.com/pyrogram/pyrogram">
          <img src="https://docs.pyrogram.org/_static/pyrogram.png" alt="Pyrogram" width="128">
      </a>
      <br>
      <b>Telegram MTProto API Framework for Python</b>
      <br>
      <a href="https://pyrogram.org">
          Homepage
      </a>
      •
      <a href="https://docs.pyrogram.org">
          Documentation
      </a>
      •
      <a href="https://docs.pyrogram.org/releases">
          Releases
      </a>
      •
      <a href="https://t.me/pyrogram">
          News
      </a>
  </p>



  > Elegant, modern and asynchronous Telegram MTProto API framework in Python for users and bots

  ``` python
  from pyrogram import Client, filters

  app = Client("my_account")


  @app.on_message(filters.private)
  async def hello(client, message):
      await message.reply("Hello from Pyrogram!")


  app.run()
  ```

  **Pyrogram** is a modern, elegant and asynchronous [MTProto API](https://docs.pyrogram.org/topics/mtproto-vs-botapi)
  framework. It enables you to easily interact with the main Telegram API through a user account (custom client) or a bot
  identity (bot API alternative) using Python.



  If you'd like to support Pyrogram, you can consider:

  - [Become a GitHub sponsor](https://github.com/sponsors/delivrance).
  - [Become a LiberaPay patron](https://liberapay.com/delivrance).
  - [Become an OpenCollective backer](https://opencollective.com/pyrogram).



  - **Ready**: Install Pyrogram with pip and start building your applications right away.
  - **Easy**: Makes the Telegram API simple and intuitive, while still allowing advanced usages.
  - **Elegant**: Low-level details are abstracted and re-presented in a more convenient way.
  - **Fast**: Boosted up by [TgCrypto](https://github.com/pyrogram/tgcrypto), a high-performance cryptography library written in C.
  - **Type-hinted**: Types and methods are all type-hinted, enabling excellent editor support.
  - **Async**: Fully asynchronous (also usable synchronously if wanted, for convenience).
  - **Powerful**: Full access to Telegram's API to execute any official client action and more.



  ``` bash
  pip3 install pyrogram
  ```



  - Check out the docs at https://docs.pyrogram.org to learn more about Pyrogram, get started right
  away and discover more in-depth material for building your client applications.
  - Join the official channel at https://t.me/pyrogram and stay tuned for news, updates and announcements.


pkgId: 7500963aefc8a64f5f0d275c3339185d12aba91edd9088069775e318ddaf208d
name: python-QDarkStyle
arch: src
version: 3.1
epoch: 0
release: 1
summary: The most complete dark/light style sheet for C++/Python and Qt applications
url: https://github.com/ColinDuquesnoy/QDarkStyleSheet
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-dc3b1a01-d84e-4cc6-95ce-c803e597ba4d
location_href: 00004897-python-qdarkstyle/python-QDarkStyle-3.1-1.src.rpm
checksum_type: sha256
description:
  The most complete dark/light style sheet for Qt applications (Qt4, Qt5,
  PySide, PySide2, PyQt4, PyQt5, QtPy, PyQtGraph, Qt.Py) for Python 2/3 and C++.

  Python 2, as well as Qt4 (PyQt4 and PySide), will not be supported anymore.
  They still there as it is, but no back-compatibility, fixes, nor features
  will be implemented.

  We still preparing the portability to Qt6 since we need changes in
  `QtPy <https://github.com/spyder-ide/qtpy>`__ dependency project.

  Check the `documentation <https://qdarkstylesheet.readthedocs.io/en/stable>`__
  to see how to set the desirable theme palette.

  This module provides a function to load the stylesheets transparently
  with the right resources file.

  First, start importing our module

  .. code-block:: python

      import qdarkstyle

  Then you can get stylesheet provided by QDarkStyle for various Qt wrappers
  as shown below

  .. code-block:: python

      
      dark_stylesheet = qdarkstyle.load_stylesheet_pyside()
      
      dark_stylesheet = qdarkstyle.load_stylesheet_pyside2()
      
      dark_stylesheet = qdarkstyle.load_stylesheet_pyqt()
      
      dark_stylesheet = qdarkstyle.load_stylesheet_pyqt5()

  Alternatively, from environment variables provided by QtPy, PyQtGraph, Qt.Py

  .. code-block:: python

      
      dark_stylesheet = qdarkstyle.load_stylesheet()
      
      dark_stylesheet = qdarkstyle.load_stylesheet(qt_api=os.environ('PYQTGRAPH_QT_LIB'))
      
      dark_stylesheet = qdarkstyle.load_stylesheet(qt_api=Qt.__binding__)

  Finally, set your QApplication with it

  .. code-block:: python

      app.setStyleSheet(dark_stylesheet)

  Enjoy!


pkgId: 9951175978dc1773f89a1ddd4a4e99706a43db2a092a400adea8faf8186c0755
name: python-QtAwesome
arch: src
version: 1.2.2
epoch: 0
release: 1
summary: FontAwesome icons in PyQt and PySide applications
url: https://github.com/spyder-ide/qtawesome
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-03cefee4-f35a-4c06-a416-7de356fba3c3
location_href: 00002880-python-QtAwesome/python-QtAwesome-1.2.2-1.src.rpm
checksum_type: sha256
description:
  [![license](https://img.shields.io/pypi/l/qtawesome.svg)](./LICENSE)
  [![pypi version](https://img.shields.io/pypi/v/qtawesome.svg)](https://pypi.org/project/qtawesome/)
  [![conda version](https://img.shields.io/conda/vn/conda-forge/qtawesome.svg)](https://www.anaconda.com/download/)
  [![download count](https://img.shields.io/conda/d/conda-forge/qtawesome.svg)](https://www.anaconda.com/download/)
  [![OpenCollective Backers](https://opencollective.com/spyder/backers/badge.svg?color=blue)](#backers)
  [![Join the chat at https://gitter.im/spyder-ide/public](https://badges.gitter.im/spyder-ide/spyder.svg)](https://gitter.im/spyder-ide/public)<br>
  [![PyPI status](https://img.shields.io/pypi/status/qtawesome.svg)](https://github.com/spyder-ide/qtawesome)
  [![Github Windows build status](https://github.com/spyder-ide/qtawesome/workflows/Windows%20tests/badge.svg)](https://github.com/spyder-ide/qtawesome/actions)
  [![Github Linux build status](https://github.com/spyder-ide/qtawesome/workflows/Linux%20tests/badge.svg)](https://github.com/spyder-ide/qtawesome/actions)
  [![Github MacOS build status](https://github.com/spyder-ide/qtawesome/workflows/Macos%20tests/badge.svg)](https://github.com/spyder-ide/qtawesome/actions)
  [![Documentation Status](https://readthedocs.org/projects/qtawesome/badge/?version=latest)](https://qtawesome.readthedocs.io/en/latest/?badge=latest)

  *Copyright © 2015–2022 Spyder Project Contributors*




  QtAwesome enables iconic fonts such as Font Awesome and Elusive Icons
  in PyQt and PySide applications.

  It started as a Python port of the [QtAwesome](
  https://github.com/Gamecreature/qtawesome)
  C++ library by Rick Blommers.




  Using `conda`:

  ```
  conda install qtawesome
  ```

  or using `pip` (only if you don't have conda installed):

  ```
  pip install qtawesome
  ```






  QtAwesome identifies icons by their **prefix** and their **icon name**, separated by a *period* (`.`) character.

  The following prefixes are currently available to use:

  - [**FontAwesome**](https://fontawesome.com):

    - FA 5.15.4 features 1,608 free icons in different styles:

      - `fa5` prefix has [151 icons in the "**regular**" style.](https://fontawesome.com/v5/search?o=r&m=free&s=regular)
      - `fa5s` prefix has [1001 icons in the "**solid**" style.](https://fontawesome.com/v5/search?o=r&m=free&s=solid)
      - `fa5b` prefix has [456 icons of various **brands**.](https://fontawesome.com/v5/search?o=r&m=free&f=brands)

    - `fa` is the legacy [FA 4.7 version with its 675 icons](https://fontawesome.com/v4.7.0/icons/) but **all** of them (*and more!*) are part of FA 5.x so you should probably use the newer version above.

  - `ei` prefix holds [**Elusive Icons** 2.0 with its 304 icons](http://elusiveicons.com/icons/).

  - [**Material Design Icons**](https://cdn.materialdesignicons.com)

    - `mdi6` prefix holds [**Material Design Icons** 6.3.95 with its 6395 icons.](https://cdn.materialdesignicons.com/6.3.95/)

    - `mdi` prefix holds [**Material Design Icons** 5.9.55 with its 5955 icons.](https://cdn.materialdesignicons.com/5.9.55/)

  - `ph` prefix holds [**Phosphor** 1.3.0 with its 4470 icons (894 icons * 5 weights: Thin, Light, Regular, Bold and Fill).](https://github.com/phosphor-icons/phosphor-icons)

  - `ri` prefix holds [**Remix Icon** 2.5.0 with its 2271 icons.](https://github.com/Remix-Design/RemixIcon)

  - `msc` prefix holds Microsoft's [**Codicons** 0.0.32 with its 421 icons.](https://github.com/microsoft/vscode-codicons)



  ```python
  import qtawesome as qta
  ```

  - Use Font Awesome, Elusive Icons, Material Design Icons, Phosphor, Remix Icon or Microsoft's Codicons.

  ```python

  fa5_icon = qta.icon('fa5.flag')
  fa5_button = QtWidgets.QPushButton(fa5_icon, 'Font Awesome! (regular)')
  fa5s_icon = qta.icon('fa5s.flag')
  fa5s_button = QtWidgets.QPushButton(fa5s_icon, 'Font Awesome! (solid)')
  fa5b_icon = qta.icon('fa5b.github')
  fa5b_button = QtWidgets.QPushButton(fa5b_icon, 'Font Awesome! (brands)')


  asl_icon = qta.icon('ei.asl')
  elusive_button = QtWidgets.QPushButton(asl_icon, 'Elusive Icons!')


  apn_icon = qta.icon('mdi6.access-point-network')
  mdi6_button = QtWidgets.QPushButton(apn_icon, 'Material Design Icons!')


  mic_icon = qta.icon('ph.microphone-fill')
  ph_button = QtWidgets.QPushButton(mic_icon, 'Phosphor!')


  truck_icon = qta.icon('ri.truck-fill')
  ri_button = QtWidgets.QPushButton(truck_icon, 'Remix Icon!')


  squirrel_icon = qta.icon('msc.squirrel')
  msc_button = QtWidgets.QPushButton(squirrel_icon, 'Codicons!')

  ```

  - Apply some styling

  ```python

  styling_icon = qta.icon('fa5s.music',
                          active='fa5s.balance-scale',
                          color='blue',
                          color_active='orange')
  music_button = QtWidgets.QPushButton(styling_icon, 'Styling')
  ```

  - Set alpha in colors

  ```python


  icon_with_alpha = qta.icon('mdi.heart',
                             color=('red', 120))
  heart_button = QtWidgets.QPushButton(icon_with_alpha, 'Setting alpha')
  ```

  - Stack multiple icons

  ```python

  camera_ban = qta.icon('fa5s.camera', 'fa5s.ban',
                        options=[{'scale_factor': 0.5,
                                  'active': 'fa5s.balance-scale'},
                                 {'color': 'red'}])
  stack_button = QtWidgets.QPushButton(camera_ban, 'Stack')
  stack_button.setIconSize(QtCore.QSize(32, 32))
  ```

  - Define the way to draw icons (`text`- default for icons without animation, `path` - default for icons with animations, `glyphrun` and `image`)

  ```python

  drawn_image_icon = qta.icon('ri.truck-fill',
                              options=[{'draw': 'image'}])
  drawn_image_button = QtWidgets.QPushButton(drawn_image_icon,
                                             'Icon drawn as an image')
  ```

  - Animations

  ```python

  spin_button = QtWidgets.QPushButton(' Spinning icon')
  spin_icon = qta.icon('fa5s.spinner', color='red',
                       animation=qta.Spin(spin_button))
  spin_button.setIcon(spin_icon)
  ```

  - Display Icon as a widget

  ```python

  spin_widget = qta.IconWidget()
  spin_icon = qta.icon('mdi.loading', color='red',
                       animation=qta.Spin(spin_widget))
  spin_widget.setIcon(spin_icon)


  simple_widget = qta.IconWidget('mdi.web', color='blue')
  ```

  - Screenshot

  ![QtAwesome screenshot](qtawesome-screenshot.gif)


  To check these options you can launch the `example.py` script and pass to it the options as arguments. For example, to test how the icons could look using the `glyphrun` draw option, you can run something like:

  ```
  python example.py draw=glyphrun
  ```



  - QtAwesome comes bundled with _Font Awesome_, _Elusive Icons_, _Material Design_
    _Icons_, _Phosphor_, _Remix Icon_ and Microsoft's _Codicons_
    but it can also be used with other iconic fonts. The `load_font`
    function allows to load other fonts dynamically.
  - QtAwesome relies on the [QtPy](https://github.com/spyder-ide/qtpy.git)
    project as a compatibility layer on the top ot PyQt or PySide.



  QtAwesome ships with a browser that displays all the available icons.  You can
  use this to search for an icon that suits your requirements and then copy the
  name that should be used to create that icon!

  Once installed, run `qta-browser` from a shell to start the browser.

  ![QtAwesomeIconbrowser](qtawesome-browser.png)




  MIT License. Copyright 2015 - The Spyder development team.
  See the [LICENSE](LICENSE) file for details.

  The [Font Awesome](https://github.com/FortAwesome/Font-Awesome/blob/master/LICENSE.txt) and [Elusive Icons](http://elusiveicons.com/license/) fonts are licensed under the [SIL Open Font License](http://scripts.sil.org/OFL).

  The Phosphor font is licensed under the [MIT License](https://github.com/phosphor-icons/phosphor-icons/blob/master/LICENSE).

  The [Material Design Icons](https://github.com/Templarian/MaterialDesign/blob/master/LICENSE) font is licensed under the [Apache License Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).

  The Remix Icon font is licensed under the [Apache License Version 2.0](https://github.com/Remix-Design/remixicon/blob/master/License).

  Microsoft's Codicons are licensed under a [Creative Commons Attribution 4.0 International Public License](https://github.com/microsoft/vscode-codicons/blob/master/LICENSE).



  Spyder and its subprojects are funded thanks to the generous support of

  [![Quansight](https://user-images.githubusercontent.com/16781833/142477716-53152d43-99a0-470c-a70b-c04bbfa97dd4.png)](https://www.quansight.com/)[![Numfocus](https://i2.wp.com/numfocus.org/wp-content/uploads/2017/07/NumFocus_LRG.png?fit=320%2C148&ssl=1)](https://numfocus.org/)

  and the donations we have received from our users around the world through [Open Collective](https://opencollective.com/spyder/):

  [![Sponsors](https://opencollective.com/spyder/sponsors.svg)](https://opencollective.com/spyder#support)


pkgId: 690f00f881d06918e37981153e1f906ef12ace3ff6d47af3b51bcb7cffce9483
name: python-QtPy
arch: src
version: 2.3.0
epoch: 0
release: 1
summary: Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6).
url: https://github.com/spyder-ide/qtpy
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-86d52da4-67d6-432f-b260-c7c3489fbede
location_href: 00002881-python-QtPy/python-QtPy-2.3.0-1.src.rpm
checksum_type: sha256
description:
  [![license](https://img.shields.io/pypi/l/qtpy.svg)](./LICENSE)
  [![pypi version](https://img.shields.io/pypi/v/qtpy.svg)](https://pypi.org/project/QtPy/)
  [![conda version](https://img.shields.io/conda/vn/conda-forge/qtpy.svg)](https://www.anaconda.com/download/)
  [![download count](https://img.shields.io/conda/dn/conda-forge/qtpy.svg)](https://www.anaconda.com/download/)
  [![OpenCollective Backers](https://opencollective.com/spyder/backers/badge.svg?color=blue)](#backers)
  [![Join the chat at https://gitter.im/spyder-ide/public](https://badges.gitter.im/spyder-ide/spyder.svg)](https://gitter.im/spyder-ide/public)<br>
  [![PyPI status](https://img.shields.io/pypi/status/qtpy.svg)](https://github.com/spyder-ide/qtpy)
  [![Github build status](https://github.com/spyder-ide/qtpy/workflows/Tests/badge.svg)](https://github.com/spyder-ide/qtpy/actions)
  [![Coverage Status](https://coveralls.io/repos/github/spyder-ide/qtpy/badge.svg?branch=master)](https://coveralls.io/github/spyder-ide/qtpy?branch=master)

  *Copyright © 2009–2022 The Spyder Development Team*




  **QtPy** is a small abstraction layer that lets you
  write applications using a single API call to either PyQt or PySide.

  It provides support for PyQt5, PyQt6, PySide6, PySide2 using the Qt5 layout
  (where the QtGui module has been split into QtGui and QtWidgets).

  Basically, you can write your code as if you were using PyQt or PySide directly,
  but import Qt modules from `qtpy` instead of `PyQt5`, `PySide2`, `PyQt6` or `PySide6`.

  Accordingly, when porting code between different Qt bindings (PyQt vs PySide) or Qt versions (Qt5 vs Qt6), QtPy makes this much more painless, and allows you to easily and incrementally transition between them. QtPy handles incompatibilities and differences between bindings or Qt versions for you while keeping your project running, so you can focus more on your own code and less on keeping track of supporting every Qt version and binding. Furthermore, when you do want to upgrade or support new bindings, it allows you to update your project module by module rather than all at once.  You can check out examples of this approach in projects using QtPy, like [git-cola](https://github.com/git-cola/git-cola/issues/232).



  This project is based on the [pyqode.qt](https://github.com/pyQode/pyqode.qt)
  project and the [spyderlib.qt](https://github.com/spyder-ide/spyder/tree/2.3/spyderlib/qt)
  module from the [Spyder](https://github.com/spyder-ide/spyder) project, and
  also includes contributions adapted from
  [qt-helpers](https://github.com/glue-viz/qt-helpers), developed as part of the
  [glue](http://glueviz.org) project.

  Unlike `pyqode.qt` this is not a namespace package, so it is not tied
  to a particular project or namespace.




  This project is released under the MIT license.




  You need PyQt5, PySide2, PyQt6 or PySide6 installed in your system to make use
  of QtPy. If several of these packages are found, PyQt5 is used by
  default unless you set the `QT_API` environment variable.

  `QT_API` can take the following values:

  * `pyqt5` (to use PyQt5).
  * `pyside2` (to use PySide2).
  * `pyqt6` (to use PyQt6).
  * `pyside6` (to use PySide6).




  * `QtCore.pyqtSignal`, `QtCore.pyqtSlot` and `QtCore.pyqtProperty` (available on PyQt5/6) are instead exposed as `QtCore.Signal`, `QtCore.Slot` and `QtCore.Property`, respectively, following the Qt5 module layout.

  * The Qt version being used can be checked with `QtCore.__version__` (instead of `QtCore.QT_VERSION_STR`) as well as from `qtpy.QT_VERSION`.

  * For PyQt6 enums, unscoped enum access was added by promoting the enums of the `QtCore`, `QtGui`, `QtTest` and `QtWidgets` modules.

  * Compatibility is added between the `QtGui` and `QtOpenGL` modules for the `QOpenGL*` classes.

  * To check the current binding version, you can use `qtpy.PYSIDE_VERSION` for PySide2/6 and `qtpy.PYQT_VERSION` for PyQt5/6. If the respective binding is not being used, the value of its attribute will be `None`.

  * To check the current selected binding, you can use `qtpy.API_NAME`

  * There are boolean values to check if Qt5/6, PyQt5/6 or PySide2/6 are being used: `qtpy.QT5`, `qtpy.QT6`, `qtpy.PYQT5`, `qtpy.PYQT6`, `qtpy.PYSIDE2` and `qtpy.PYSIDE6`. `True` if currently being used, `False` otherwise.



  In the `qtpy.compat` module, you can find wrappers for `QFileDialog` static methods and SIP/Shiboken functions, such as:

  * `QFileDialog.getExistingDirectory` wrapped with `qtpy.compat.getexistingdirectory`

  * `QFileDialog.getOpenFileName` wrapped with `qtpy.compat.getopenfilename`

  * `QFileDialog.getOpenFileNames` wrapped with `qtpy.compat.getopenfilenames`

  * `QFileDialog.getSaveFileName` wrapped with `qtpy.compat.getsavefilename`

  * `sip.isdeleted` and `shiboken.isValid` wrapped with `qtpy.compat.isalive`




  ```bash
  pip install qtpy
  ```

  or

  ```bash
  conda install qtpy
  ```




  A Command Line Interface (CLI) is offered to help with usage of QtPy.
  Presently, its only feature is to generate command line arguments for Mypy
  that will enable it to process the QtPy source files with the same API
  as QtPy itself would have selected.

  If you run

  ```bash
  qtpy mypy-args
  ```

  QtPy will output a string of Mypy CLI args that will reflect the currently
  selected Qt API.
  For example, in an environment where PyQt5 is installed and selected
  (or the default fallback, if no binding can be found in the environment),
  this would output the following:

  ```text
  --always-true=PYQT5 --always-false=PYSIDE2 --always-false=PYQT6 --always-false=PYSIDE6
  ```

  Using Bash or a similar shell, this can be injected into
  the Mypy command line invocation as follows:

  ```bash
  mypy --package mypackage $(qtpy mypy-args)
  ```

  For Pyright support and other usage notes, see [this comment](https://github.com/spyder-ide/qtpy/issues/352#issuecomment-1170684412).




  Everyone is welcome to contribute!




  QtPy is funded thanks to the generous support of


  [![Quansight](https://user-images.githubusercontent.com/16781833/142477716-53152d43-99a0-470c-a70b-c04bbfa97dd4.png)](https://www.quansight.com/)[![Numfocus](https://i2.wp.com/numfocus.org/wp-content/uploads/2017/07/NumFocus_LRG.png?fit=320%2C148&ssl=1)](https://numfocus.org/)

  and the donations we have received from our users around the world through [Open Collective](https://opencollective.com/spyder/):

  [![Sponsors](https://opencollective.com/spyder/sponsors.svg)](https://opencollective.com/spyder#support)


pkgId: c4d1d7fc578864b0edcb6f807a7b905484f7d7a868336c7fa145fe13d8003a8c
name: python-RESTinstance
arch: src
version: 1.3.0
epoch: 0
release: 1
summary: Robot Framework library for RESTful JSON APIs
url: https://github.com/asyrjasalo/RESTinstance
rpm_license: Apache License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-9a2f515f-ec6f-43fc-b50d-873c86d9141f
location_href: 00013220-python-restinstance/python-RESTinstance-1.3.0-1.src.rpm
checksum_type: sha256
description:
  [Robot Framework](http://robotframework.org) library for RESTful JSON APIs

  [Keyword Documentation](https://asyrjasalo.github.io/RESTinstance)



  1.  **RESTinstance relies on Robot Framework's language-agnostic, clean
      and minimal syntax, for API tests.** It is neither tied to any
      particular programming language nor development framework. Using
      RESTinstance requires little, if any, programming knowledge. It
      builts on long-term technologies with well established communities,
      such as HTTP, JSON (Schema), Swagger/OpenAPI and Robot Framework.
  2.  **It validates JSON using JSON Schema, guiding you to write API
      tests to base on properties** rather than on specific values (e.g.
      "email must be valid" vs "email is foo@bar.com"). This approach
      reduces test maintenance when the values responded by the API are
      prone to change. Although values are not required, you can still
      test them whenever they make sense (e.g. GET response body from one
      endpoint, then POST some of its values to another endpoint and
      verify the results).
  3.  **It generates JSON Schema for requests and responses automatically,
      and the schema gets more accurate by your tests.** Output the schema
      to a file and reuse it as expectations to test the other methods, as
      most of them respond similarly with only minor differences. Or
      extend the schema further to a full Swagger spec (version 2.0,
      OpenAPI 3.0 also planned), which RESTinstance can test requests and
      responses against. All this leads to reusability, getting great test
      coverage with minimum number of keystrokes and very clean tests.





  On 3.6, 3.7 you can install and upgrade
  [from PyPi](https://pypi.org/project/RESTinstance):

      python3 -m venv venv
      source venv/bin/activate
      pip install --upgrade RESTinstance

  On 2.7 series the package works as well, but using 2.7 is
  [not preferred 2020 onwards](https://pythonclock.org/):

      pip install --user --upgrade virtualenv
      virtualenv venv
      source venv/bin/activate
      pip install --upgrade RESTinstance

  These also install [Robot Framework](https://pypi.org/project/robotframework)
  if you do not have it already.





  There is a
  [step-by-step tutorial](https://github.com/asyrjasalo/RESTinstance/blob/master/examples)
  in the making, best accompanied with
  [the keyword documentation](https://asyrjasalo.github.io/RESTinstance).



  1.  Create two new empty directories, `atest` and `results`.
  2.  Create a new file `atest/YOURNAME.robot` with the content:

  ``` robotframework
  *** Settings ***
  Library         REST    https://jsonplaceholder.typicode.com
  Documentation   Test data can be read from variables and files.
  ...             Both JSON and Python type systems are supported for inputs.
  ...             Every request creates a so-called instance. Can be `Output`.
  ...             Most keywords are effective only for the last instance.
  ...             Initial schemas are autogenerated for request and response.
  ...             You can make them more detailed by using assertion keywords.
  ...             The assertion keywords correspond to the JSON types.
  ...             They take in either path to the property or a JSONPath query.
  ...             Using (enum) values in tests optional. Only type is required.
  ...             All the JSON Schema validation keywords are also supported.
  ...             Thus, there is no need to write any own validation logic.
  ...             Not a long path from schemas to full Swagger/OpenAPI specs.
  ...             The persistence of the created instances is the test suite.
  ...             Use keyword `Rest instances` to output the created instances.


  *** Variables ***
  ${json}         { "id": 11, "name": "Gil Alexander" }
  &{dict}         name=Julie Langford


  *** Test Cases ***
  GET an existing user, notice how the schema gets more accurate
      GET         /users/1                  # this creates a new instance
      Output schema   response body
      Object      response body             # values are fully optional
      Integer     response body id          1
      String      response body name        Leanne Graham
      [Teardown]  Output schema             # note the updated response schema

  GET existing users, use JSONPath for very short but powerful queries
      GET         /users?_limit=5           # further assertions are to this
      Array       response body
      Integer     $[0].id                   1           # first id is 1
      String      $[0]..lat                 -37.3159    # any matching child
      Integer     $..id                     maximum=5   # multiple matches
      [Teardown]  Output  $[*].email        # outputs all emails as an array

  POST with valid params to create a new user, can be output to a file
      POST        /users                    ${json}
      Integer     response status           201
      [Teardown]  Output  response body     ${OUTPUTDIR}/new_user.demo.json

  PUT with valid params to update the existing user, values matter here
      PUT         /users/2                  { "isCoding": true }
      Boolean     response body isCoding    true
      PUT         /users/2                  { "sleep": null }
      Null        response body sleep
      PUT         /users/2                  { "pockets": "", "money": 0.02 }
      String      response body pockets     ${EMPTY}
      Number      response body money       0.02
      Missing     response body moving      # fails if property moving exists

  PATCH with valid params, reusing response properties as a new payload
      &{res}=     GET   /users/3
      String      $.name                    Clementine Bauch
      PATCH       /users/4                  { "name": "${res.body['name']}" }
      String      $.name                    Clementine Bauch
      PATCH       /users/5                  ${dict}
      String      $.name                    ${dict.name}

  DELETE the existing successfully, save the history of all requests
      DELETE      /users/6                  # status can be any of the below
      Integer     response status           200    202     204
      Rest instances  ${OUTPUTDIR}/all.demo.json  # all the instances so far
  ```

  3.  Make JSON API testing great again:
  ```
  robot --outputdir results atest/
  ```




  Bug reports and feature requests are tracked in
  [GitHub](https://github.com/asyrjasalo/RESTinstance/issues).
  We do respect pull request(er)s.



  The logic is detaching the enving from system level (dependencies) as following:
  1. We use [pyenv](https://github.com/pyenv/pyenv) to manage n Pythons user-wide.
  2. With Pyenv installed Pythons, we never mess with the system's default Python.
  3. We ended up to [Nox](https://nox.thea.codes/en/stable/) after evaluating
  Bash scripts, `make`, `invoke` and `tox` to achieve automated virtualenving.

  To understand the first two of the practices, these are worth reading:
  - [Real Python's intro to pyenv](https://realpython.com/intro-to-pyenv)
  - [Real Python's virtualenvs primer](https://realpython.com/python-virtual-environments-a-primer/)
  - [virtualenv compatibility with the stdlib venv module](https://virtualenv.pypa.io/en/latest/reference/#compatibility-with-the-stdlib-venv-module)

  Third, unlike Tox, Nox uses Python file (`noxfile.py`) for configuration, yet:
  - Supports multiple Python versions, each session is ran on some `pythonX.X`.
  - A session is a single virtualenv which is stored in `.venv/<session_name>`.
  - Every `nox` recreates session, thus virtualenv, unless `reuse_venv=True`.



  The pyenv setup works on OS X and on the common Linux distros out of the box:

      curl https://pyenv.run | bash
      export PATH="$HOME/.pyenv/bin:$PATH"
      eval "$(pyenv init -)"

  The first script installs it user-wide, thus it never requires `sudo` rights.

  If you are on Windows, using pyenv might or might not be an option. Regardless,
  you want to check [pyenv-win](https://github.com/pyenv-win/pyenv-win) instead.

  We test, develop, build and publish on Python 3.6.9, and use venvs as preferred:

      git clone git@github.com:asyrjasalo/RESTinstance.git
      cd RESTinstance
      pyenv install --skip-existing 3.6.9 && pyenv rehash
      python3 -m venv .venv/dev
      source .venv/dev/bin/activate
      pip install -e .



  Nox automates handling `.venv/<task>`s for workflows, that on Windows as well:

      pip install --upgrade nox

  The actual tasks are defined in `noxfile.py`, as well as our settings like:
  - The default Python interpreter to run all the development tasks is `python3.6`
  - We explicitly use [venv module](https://docs.python.org/3/library/venv.html)
  now for virtualenving, as we develop on Python >= 3.3 anyway
  - Whether a new virtualenv is always recreated when the respective task is run
  (which is default for most of our tasks)

  Session is a task, running in the `.venv/<task>`. To list all possible sessions:

      nox -l

  Sessions defined in `RESTinstance/noxfile.py`:

      * test -> Run development tests for the package.
      - testenv -> Run development server for acceptance tests.
      * atest -> Run acceptance tests for the project.
      - docs -> Regenerate documentation for the project.
      - black -> Reformat/unify/"blacken" Python source code in-place.
      - prospector -> Run various static analysis tools for the package.
      - build -> Build sdist and wheel dists.
      - release_testpypi -> Publish dist/* to TestPyPI.
      - install_testpypi -> Install the latest (pre-)release from TestPyPI.
      - release -> Tag, build and publish a new release to PyPI.
      - install -> Install the latest release from PyPI.
      - clean -> Remove all .venv's, build files and caches in the directory.

  Sessions marked with `*` are selected, sessions marked with `-` are skipped.

  That is, to run both `test`s and `atest`s:

      nox

  Session `nox -s atest` assumes you have started `testapi/` on
  [mountebank](https://www.mbtest.org):

      nox -s testenv

  Running the above assumes you have `node` (>= 6) installed in your system.

  After started, you can debug requests and responses by tests in web browser at
  [localhost:2525](http://localhost:2525/imposters).

  Both `nox -s test` and `nox -s atest` allow passing arguments to `pytest`
  and `robot`, respectively:

      nox -s test -- test/<test_modulename>.py
      nox -s atest -- atest/<atest_suitedir>/<atest_suitefile>.robot

  You know, having a virtualenv even for generating `docs/` - why not a bad idea:

      nox -s docs



  Remove all sessions (`.venv/`s) as well as temporary files in your working copy:

      nox -s clean

  Our PyPI distributions are known to work well on Python 3.7 and 2.7 series too:

      nox -s clean build

  We use [zest.releaser](https://github.com/zestsoftware/zest.releaser) for
  versioning, tagging and building (universal) `bdist_wheel`s.

  It uses [twine](https://pypi.org/project/twine/) underneath to upload to PyPIs
  securely over HTTPS, which can't be done with `python setup.py` commands.



  This workflow is preferred for distributing a new (pre-)release to TestPyPI:

      nox -s test atest docs clean build release_testpypi install_testpypi

  If that installed well, all will be fine to let the final release to PyPI:

      nox -s release

  To install the latest release from PyPI, and in a dedicated venv of course:

      nox -s install



  For intermediate `nox` arguments usage, you'll advance by enabling
  [shell completion](https://nox.thea.codes/en/stable/usage.html#shell-completion):

      eval "$(register-python-argcomplete nox)"

  On `zsh`, ensure you have bash compatibility enabled in `.zshrc` or similar:

      autoload -U bashcompinit
      bashcompinit

  These completions likely do not work on vanilla PowerShell, but can be used on
  [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10).



  Catching errors already write-time, regardless of the editor, is advantaged by
  [Palantir's Python Language Server](https://github.com/palantir/python-language-server):

      python3 -m venv .venv/dev
      source .venv/dev/bin/activate
      pip install --upgrade python-language-server[all]

  Installing the all bundle, and the LSP plugin for your editor, enables to run
  useful linters real-time, like:

  - Either `autopep8` or `black` (preferred) for automated code formatting
  - `isort` for sorting code import statements
  - McCabe for code complexity checking
  - `mypy` for static type checking on Python 3
  - `pycodestyle` for coding style checking
  - `pyflakes` for detecting various coding errors

  Remember to (auto-)start the language server on background via your editor.



  We want our static analysis checks ran before code even ends up in a commit.

  Thus both `nox` and `nox -s test` commands bootstrap
  [pre-commit](https://pre-commit.com/) hooks in your git working copy.

  The actual hooks are configured in `.pre-commit-commit.yaml`.



  - export `mb` recorded responses to CI (pre-commit hook: `nox -s save_testenv`)
  - change `nox -s testenv` to load the saved testenv -> rid of `--allowInjection`
  - add CI (GitHub Actions? GitLab?)
  - add Python types to pass `prospector --with-tool mypy`
  - enable pre-commit hook for prospector





  RESTinstance is under
  [Apache License 2.0](https://github.com/asyrjasalo/RESTinstance/blob/master/LICENSE)
  and was originally written by [Anssi Syrjäsalo](https://github.com/asyrjasalo).

  It was first presented at the first [RoboCon](https://robocon.io), 2018.

  Contributors:

  - [jjwong](https://github.com/jjwong) for helping with keyword
  documentation and examples (also check
  [RESTinstance_starter_project](https://github.com/jjwong/RESTinstance_starter_project))
  - [Przemysław "sqilz" Hendel](https://github.com/sqilz) for using and
  testing RESTinstance in early phase (also check
  [RESTinstance-wrapper](https://github.com/sqilz/RESTinstance-wrapper))
  - [Vinh "vinhntb" Nguyen](https://github.com/vinhntb),
  [#52](https://github.com/asyrjasalo/RESTinstance/pull/52).
  - [Stavros "stdedos" Ntentos](https://github.com/stdedos),
  [#75](https://github.com/asyrjasalo/RESTinstance/pull/75).
  - [Nicholas "bollwyvl" Bollweg](https://github.com/bollwyvl),
  [#84](https://github.com/asyrjasalo/RESTinstance/pull/84).
  - [Trey Turner](https://github.com/treyturner), [#86](https://github.com/asyrjasalo/RESTinstance/pull/86)

  We use following Python excellence under the hood:

  - [Flex](https://github.com/pipermerriam/flex), by Piper Merriam, for
  Swagger 2.0 validation
  - [GenSON](https://github.com/wolverdude/GenSON), by Jon "wolverdude"
  Wolverton, for JSON Schema generator
  - [jsonpath-ng](https://github.com/h2non/jsonpath-ng), by Tomas
  Aparicio and Kenneth Knowles, for handling JSONPath queries
  - [jsonschema](https://github.com/Julian/jsonschema), by Julian
  Berman, for JSON Schema validator
  - [pygments](http://pygments.org), by Georg Brandl et al., for JSON
  syntax coloring, in terminal <span class="title-ref">Output</span>
  - [requests](https://github.com/requests/requests), by Kenneth Reitz
  et al., for making HTTP requests

  See
  [requirements.txt](https://github.com/asyrjasalo/RESTinstance/blob/master/requirements.txt)
  for all the direct run time dependencies.

  REST your mind, OSS got your back.


pkgId: 915e48f71f0b6d88b5ae8e969bf1a1f45087bdf3c1ef4e35b3d0c2ea13fad826
name: python-ROPGadget
arch: src
version: 7.2
epoch: 0
release: 1
summary: This tool lets you search your gadgets on your binaries to facilitate your ROP exploitation.
url: https://github.com/JonathanSalwan/ROPgadget
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-13460499-6804-4593-a818-3b2fa623c8a6
location_href: 00002882-python-ROPGadget/python-ROPGadget-7.2-1.src.rpm
checksum_type: sha256
description:
  ROPgadget supports ELF, PE and Mach-O format on x86, x64, ARM, ARM64, PowerPC, SPARC and MIPS architectures.
  http://www.shell-storm.org/project/ROPgadget/


pkgId: 04a63435045d8db684de46c225adba56a9a1c1afc2a707da3640f10f0565895a
name: python-ROPGadget
arch: src
version: 7.3
epoch: 0
release: 1
summary: This tool lets you search your gadgets on your binaries to facilitate your ROP exploitation.
url: https://github.com/JonathanSalwan/ROPgadget
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-3986050d-04e6-45a9-992e-29ecc729cbf4
location_href: 00006262-python-ROPGadget/python-ROPGadget-7.3-1.src.rpm
checksum_type: sha256
description:
  ROPgadget supports ELF, PE, Mach-O, and Raw formats on x86, x64, ARM, ARM64, PowerPC, SPARC, MIPS, RISC-V 64, and RISC-V Compressed architectures.
  https://github.com/JonathanSalwan/ROPgadget


pkgId: a6c71935e63d33f0dda7df41ce66cd52d7638aace0726427e0fc5d3bbe7195bf
name: python-RUST
arch: src
version: 0.1.1
epoch: 0
release: 1
summary: Ribo-Seq Unit Step Transformation
url: http://ribogalaxy.ucc.ie
rpm_license: GPL
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-ed5e8381-8e31-4bb4-94c3-789dcd21d7c0
location_href: 00013949-python-rust/python-RUST-0.1.1-1.src.rpm
checksum_type: sha256
description:
  This tool is designed for ribo-seq data and produces a metafootprint profile
  that reveals the influence of mRNA features such as codons/amino acids on
  the relative read density in the sample across the entire ribosome and nascent
  peptide region. The Kullback-Leibler divergence across these sites is also provided.
  An online version is available on `RiboGalaxy <http://ribogalaxy.ucc.ie>`_.
  Author: Patrick O'Connor
  **Citation**
  Surveying the relative impact of mRNA features on local ribosome profiling read density in 28 datasets.
  Patrick O'Connor, Dmitry Andreev, Pavel Baranov
  bioRxiv doi: http://dx.doi.org/10.1101/018762


pkgId: b5fdce9a0e5d621662922f5f35f99bb864158bd26c173043618916697cf6b8b0
name: python-Represent
arch: src
version: 1.6.0.post0
epoch: 0
release: 1
summary: Create __repr__ automatically or declaratively.
url: https://github.com/RazerM/represent
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f2f910f5-f805-477e-8606-3fb802f398f1
location_href: 00004955-python-represent/python-Represent-1.6.0.post0-1.src.rpm
checksum_type: sha256
description:
  [![PyPI Version][ppi]][ppl] [![Documentation][di]][dl] [![CI Status][gai]][gal] [![Coverage][cvi]][cvl] [![Python Version][pvi]][pvl] [![MIT License][mli]][mll]

    [ppi]: https://img.shields.io/pypi/v/represent.svg?style=flat-square
    [ppl]: https://pypi.python.org/pypi/represent/
    [pvi]: https://img.shields.io/badge/python-2.7%2C%203-brightgreen.svg?style=flat-square
    [pvl]: https://www.python.org/downloads/
    [mli]: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square
    [mll]: https://raw.githubusercontent.com/RazerM/represent/master/LICENSE
    [di]: https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat-square
    [dl]: https://represent.readthedocs.io/en/latest/
    [gai]: https://github.com/RazerM/represent/workflows/CI/badge.svg?branch=master
    [gal]: https://github.com/RazerM/represent/actions?workflow=CI
    [cvi]: https://img.shields.io/codecov/c/github/RazerM/represent/master.svg?style=flat-square
    [cvl]: https://codecov.io/github/RazerM/represent?branch=master



  ```bash
  $ pip install represent
  ```



  ```python
  from represent import autorepr


  @autorepr
  class Rectangle:
      def __init__(self, name, color, width, height):
          self.name = name
          self.color = color
          self.width = width
          self.height = height

  rect = Rectangle('Timothy', 'red', 15, 4.5)
  print(rect)
  ```

  ```
  Rectangle(name='Timothy', color='red', width=15, height=4.5)
  ```



  ```python
  from represent import ReprHelperMixin


  class ContrivedExample(ReprHelperMixin, object):
      def __init__(self, description, radians, shape, color, miles):
          self.description = description
          self.degrees = radians * 180 / 3.141592654
          self.shape = shape
          self._color = color
          self.km = 1.60934 * miles

      def _repr_helper_(self, r):
          r.positional_from_attr('description')
          r.positional_with_value(self.degrees * 3.141592654 / 180)
          r.keyword_from_attr('shape')
          r.keyword_from_attr('color', '_color')
          r.keyword_with_value('miles', self.km / 1.60934)

  ce = ContrivedExample('does something', 0.345, 'square', 'red', 22)

  print(ce)
  from IPython.lib.pretty import pprint
  pprint(ce)
  ```

  ```
  ContrivedExample('does something', 0.345, shape='square', color='red', miles=22.0)
  ContrivedExample('does something',
                   0.345,
                   shape='square',
                   color='red',
                   miles=22.0)
  ```


pkgId: d95c7f7684c456c3aeea010e869add5cc9c1e344981892d8bbb2e1d52bbebef2
name: python-RestrictedPython
arch: src
version: 6.0
epoch: 0
release: 1
url: https://github.com/zopefoundation/RestrictedPython
rpm_license: ZPL 2.1
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d764657f-d3e6-4406-b63f-6be901579698
location_href: 00011400-python-restrictedpython/python-RestrictedPython-6.0-1.src.rpm
checksum_type: sha256
summary:
  RestrictedPython is a defined subset of the Python language which allows to provide a program input into a trusted environment.


pkgId: 5021135a432d3a1ee1b284e546d88999bc841c666ebeebf9c2f08ec89f7447c3
name: python-Rtree
arch: src
version: 1.0.1
epoch: 0
release: 1
summary: R-Tree spatial index for Python GIS
url: https://github.com/Toblerity/rtree
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-4b199e89-f239-4ea3-bad4-d03e63981b58
location_href: 00005019-python-rtree/python-Rtree-1.0.1-1.src.rpm
checksum_type: sha256
description:
  ![Build](https://github.com/Toblerity/rtree/workflows/Build/badge.svg)
  [![PyPI version](https://badge.fury.io/py/Rtree.svg)](https://badge.fury.io/py/Rtree)


  Rtree is a [ctypes](http://docs.python.org/library/ctypes.html) Python wrapper of [libspatialindex](https://libspatialindex.org/) that provides a
  number of advanced spatial indexing features for the spatially curious Python
  user.  These features include:

  * Nearest neighbor search
  * Intersection search
  * Multi-dimensional indexes
  * Clustered indexes (store Python pickles directly with index entries)
  * Bulk loading
  * Deletion
  * Disk serialization
  * Custom storage implementation (to implement spatial indexing in ZODB, for example)


  Wheels are available for most major platforms, and `rtree` with bundled `libspatialindex` can be installed via pip:

  ```
  pip install rtree
  ```





  * Fix up type hints #243 (thanks @oderby)
  * Python 3.11 wheels #250 (thanks @ewouth)




  * Python 3.7+ is now required (#212) (thanks @adamjstewart!)
  * Type hints (#215 and others) (thanks @adamjstewart!)
  * Python 3.10 wheels, including osx-arm64 #224
  * Clean up libspatialindex C API mismatches #222 (thanks @musicinmybrain!)
  * Many doc updates, fixes, and type hints (thanks @adamjstewart!) #212 #221 #217 #215
  * __len__ method for index #194
  * Prevent get_coordinate_pointers from mutating inputs #205 (thanks @sjones94549!)
  * linux-aarch64 wheels #183 (thanks @odidev!)
  * black (#218) and flake8 (#145) linting

  https://github.com/Toblerity/rtree/releases/1.0.0


pkgId: 3922afa457eead362e3f4318b5662067009b9135aba4e46f05d0f901909ee294
name: python-SPARQLWrapper
arch: src
version: 2.0.0
epoch: 0
release: 1
summary: SPARQL Endpoint interface to Python
url: http://rdflib.github.io/sparqlwrapper
rpm_license: W3C SOFTWARE NOTICE AND LICENSE
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-edeeb51a-4237-4a40-8add-d6fe3634859f
location_href: 00012159-python-sparqlwrapper/python-SPARQLWrapper-2.0.0-1.src.rpm
checksum_type: sha256
description:
  This is a wrapper around a SPARQL service. It helps in creating the query URI and, possibly, convert the result into a more manageable format.


pkgId: 2b070e77b89e50f70d74d3046f6c1e3df3d8d6d9211d3ba98f1e8aa21c3e67b1
name: python-SPF2IP
arch: src
version: 1.0.5
epoch: 0
release: 1
summary: Python module to get IP addresses from an SPF record
url: https://github.com/nathandines/SPF2IP
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e5651f57-c0ee-4386-ab7c-7cd400745407
location_href: 00013755-python-spf2ip/python-SPF2IP-1.0.5-1.src.rpm
checksum_type: sha256
description:
  This is a Python module which iterates through a domain's SPF record data, and
  lists all of the IP addresses found within the SPF record itself, all
  "included" SPF records, and IP addresses resolved from the "A/AAAA" records found
  in the SPF records and any "MX" records.
  This module supports returning both IPv4 and IPv6 addresses.
  The output of this module can be used to configure a firewall dynamically when
  SMTP traffic should only be received from trusted sources such as in the event
  that you want to get email from your cloud provider to your on-premises mail


pkgId: 9e81d83208be1287a61d91516784e6d65c72aa6ebf789b24d8c4931cc2f4200a
name: python-SQLObject
arch: src
version: 3.10.1
epoch: 0
release: 1
summary: Object-Relational Manager, aka database wrapper
url: http://sqlobject.org/
rpm_license: LGPL
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-616464bf-d471-4794-8b87-1dc0a5440023
location_href: 00005197-python-sqlobject/python-SQLObject-3.10.1-1.src.rpm
checksum_type: sha256
description:
  SQLObject is a popular *Object Relational Manager* for providing an
  object interface to your database, with tables as classes, rows as
  instances, and columns as attributes.

  SQLObject includes a Python-object-based query language that makes SQL
  more abstract, and provides substantial database independence for
  applications.

  Supports MySQL, PostgreSQL, SQLite, Firebird, Sybase, MSSQL and MaxDB (SAPDB).
  Python 2.7 or 3.4+ is required.

  For development see the projects at
  `SourceForge <https://sourceforge.net/projects/sqlobject/>`_
  and `GitHub <https://github.com/sqlobject>`_.

  .. image:: https://github.com/sqlobject/sqlobject/actions/workflows/run-tests.yaml/badge.svg?branch=github-actions
     :target: https://github.com/sqlobject/sqlobject/actions/workflows/run-tests.yaml


pkgId: 1a8e4faf413db8bb5ba2ddf691f344dd6e06365a54bb5c46dcbec06f111fb03c
name: python-STEPS
arch: src
version: 2.2.0
epoch: 0
release: 1
summary: STochastic Engine for Pathway Simulation
url: http://steps.sourceforge.net
rpm_license: GNU General Public License Version 3.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-b1732743-8f7e-4c6e-9780-3cb6f50fa654
location_href: 00005220-python-steps/python-STEPS-2.2.0-1.src.rpm
checksum_type: sha256
description:
      We provide precompiled binary packages for various operating
  systems. The user is recommended to use these packages when possible.
      For systems which a precomplied binary is unavailable, the user may
  install STEPS following the steps in the Basic Installation section.


pkgId: 1eab254554a3c94d0305415786e16eb573529d413a5c72178a68f8676323ef13
name: python-Salesforce-FuelSDK
arch: src
version: 1.3.0
epoch: 0
release: 1
summary: Salesforce Marketing Cloud Fuel SDK for Python
url: https://github.com/salesforce-marketingcloud/FuelSDK-Python
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-b6b391fe-526a-481c-bd06-05682fe162cc
location_href: 00011940-python-salesforce-fuelsdk/python-Salesforce-FuelSDK-1.3.0-1.src.rpm
checksum_type: sha256
description:
  * Added Refresh Token support for OAuth2 authentication
  * Added Web/Public App support for OAuth2 authentication
     More details on Access Tokens for Web/Public Apps can be found [here](https://developer.salesforce.com/docs/atlas.en-us.mc-app-development.meta/mc-app-development/access-token-app.htm)
     Sample config:
     ```
    [Web Services]
    appsignature: none
    clientid: <CLIENT_ID>
    clientsecret: <CLIENT_SECRET>
    defaultwsdl: https://webservice.exacttarget.com/etframework.wsdl
    authenticationurl: <AUTH TENANT SPECIFIC ENDPOINT>
    baseapiurl: <REST TENANT SPECIFIC ENDPOINT>
    soapendpoint: <SOAP TENANT SPECIFIC ENDPOINT>
    wsdl_file_local_loc: <WSDL_PATH>/ExactTargetWSDL.xml
    [Auth Service]
    useOAuth2Authentication: True
    accountId: <TARGET_ACCOUNT_ID>
    scope: <PERMISSION_LIST>
    applicationType: <APPLICATION_TYPE>
    redirectURI: <REDIRECT_URI_FOR_PUBLIC/WEB_APP>
    authorizationCode: <AUTHORIZATION_CODE_FOR_PUBLIC/WEB_APP>
    ```
    Example passing config as a parameter to ET_Client constructor:
    ```
    stubObj = ET_Client.ET_Client(
      False, False,
      {
          'clientid': '<CLIENT_ID>',
          'clientsecret': '<CLIENT_SECRET>',
          'defaultwsdl': 'https://webservice.exacttarget.com/etframework.wsdl',
          'authenticationurl': '<AUTH TENANT SPECIFIC ENDPOINT>',
          'baseapiurl': '<REST TENANT SPECIFIC ENDPOINT>',
          'soapendpoint': '<SOAP TENANT SPECIFIC ENDPOINT>',
          'wsdl_file_local_loc': r'<WSDL_PATH>/ExactTargetWSDL.xml',
          'useOAuth2Authentication': 'True',
          'accountId': '<TARGET_ACCOUNT_ID>',
          'scope': '<PERMISSION_LIST>'
          'applicationType': '<APPLICATION_TYPE>'
          'redirectURI': '<REDIRECT_URI_FOR_PUBLIC/WEB_APP>'
          'authorizationCode': '<AUTHORIZATION_CODE_FOR_PUBLIC/WEB_APP>'
      })
    ```
  * applicationType can have one of the following values: `server`, `public`, `web`. The default value of applicationType is `server`.


pkgId: c77b2f86d64a30f8caf082db1198301a35721853d2d5ed2bc356a5a2786e14dc
name: python-Sanic-Cors
arch: src
version: 2.2.0
epoch: 0
release: 1
summary: A Sanic extension adding a decorator for CORS support. Based on flask-cors by Cory Dolphin.
url: https://github.com/ashleysommer/sanic-cors
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-7e34fd46-f75b-4fc3-b3dc-285aacbb7d4c
location_href: 00011118-python-sanic-cors/python-Sanic-Cors-2.2.0-1.src.rpm
checksum_type: sha256
description:
  |Build Status| |Latest Version| |Supported Python versions|
  |License|
  A Sanic extension for handling Cross Origin Resource Sharing (CORS),
  making cross-origin AJAX possible. Based on
  `flask-cors <https://github.com/corydolphin/flask-cors>`__ by Cory Dolphin.
  This package has a simple philosophy, when you want to enable CORS, you
  wish to enable it for all use cases on a domain. This means no mucking
  around with different allowed headers, methods, etc. By default,
  submission of cookies across domains is disabled due to the security
  implications, please see the documentation for how to enable
  credential'ed requests, and please make sure you add some sort of
  `CSRF <http://en.wikipedia.org/wiki/Cross-site_request_forgery>`__
  protection before doing so!
  **Sept 2022 Notice:**
  If you are having unexpected results in Sanic v22.9+, upgrade to Sanic-CORS v2.2.0
  **December 2021 Notice:**
  If you need compatibility with Sanic v21.12+, upgrade to Sanic-CORS v2.0
  **Sept 2021 Notice:**
  Please upgrade to Sanic-CORS v1.0.1 if you need compatibility with Sanic v21.9,<21.12


pkgId: d50cad147f1fd68bf3d35f2430295aca94e0cbe010d4458beb3393f9a79532f6
name: python-SecretStorage
arch: src
version: 3.3.3
epoch: 0
release: 1
summary: Python bindings to FreeDesktop.org Secret Service API
url: https://github.com/mitya57/secretstorage
rpm_license: BSD 3-Clause License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-adcdea6f-1c53-4c64-809f-8fd156e92f13
location_href: 00005050-python-secretstorage/python-SecretStorage-3.3.3-1.src.rpm
checksum_type: sha256
description:
  This module provides a way for securely storing passwords and other secrets.
  It uses D-Bus `Secret Service`_ API that is supported by GNOME Keyring,
  KWallet (since version 5.97) and KeePassXC.
  The main classes provided are ``secretstorage.Item``, representing a secret
  item (that has a *label*, a *secret* and some *attributes*) and
  ``secretstorage.Collection``, a place items are stored in.
  SecretStorage supports most of the functions provided by Secret Service,
  including creating and deleting items and collections, editing items,
  locking and unlocking collections (asynchronous unlocking is also supported).
  The documentation can be found on `secretstorage.readthedocs.io`_.


pkgId: ca971bcf79cc4b2a651942eff1b67ad5e7ae89bc73d06e817f18d72cf9da9d2b
name: python-ShopifyAPI
arch: src
version: 12.2.0
epoch: 0
release: 1
summary: Shopify API for Python
url: https://github.com/Shopify/shopify_python_api
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-ae55ada0-9522-4dc0-9659-b850b3173752
location_href: 00010992-python-shopifyapi/python-ShopifyAPI-12.2.0-1.src.rpm
checksum_type: sha256
description:
  The ShopifyAPI library allows python developers to programmatically
  access the admin section of stores using an ActiveResource like
  interface similar the ruby Shopify API gem. The library makes HTTP
  requests to Shopify in order to list, create, update, or delete
  resources (e.g. Order, Product, Collection).


pkgId: 7b96fd0d4495f710d7db3654548441fbdb76461270e08eacdc0a160d532951e0
name: python-SocksiPy-branch
arch: src
version: 1.01
epoch: 0
release: 1
summary: A Python SOCKS module
url: http://code.google.com/p/socksipy-branch/
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-dbc47054-7584-44d4-84ab-6bf9d3f92fa1
location_href: 00011781-python-socksipy-branch/python-SocksiPy-branch-1.01-1.src.rpm
checksum_type: sha256
description:
  This Python module allows you to create TCP connections through a SOCKS proxy
  without any special effort.


pkgId: 4fc4ca926ed82729813e7b24bce17bb3c16a1137c346212ad93babd46a5949aa
name: python-South
arch: src
version: 1.0.2
epoch: 0
release: 1
summary: South: Migrations for Django
url: http://south.aeracode.org/
rpm_license: UNKNOWN
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-6ea44c9b-7125-414f-87b8-0d28ebe4642f
location_href: 00012486-python-south/python-South-1.0.2-1.src.rpm
checksum_type: sha256
description:
  South is an intelligent database migrations library for the Django web framework. It is database-independent and DVCS-friendly, as well as a whole host of other features.


pkgId: 92a7f9387bd4554a818dc15f369ec3bf525a57f4903d3a0fa5e2265972b2139c
name: python-SudachiDict-core
arch: src
version: 20230110
epoch: 0
release: 1
summary: Sudachi Dictionary for SudachiPy - Core Edition
url: https://github.com/WorksApplications/SudachiDict
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-5b3672b9-c3c9-4077-bdef-5a7d13e44e4d
location_href: 00013766-python-sudachidict-core/python-SudachiDict-core-20230110-1.src.rpm
checksum_type: sha256
description:
  - [WorksApplications/SudachiDict](https://github.com/WorksApplications/SudachiDict)
  - [WorksApplications/SudachiPy](https://github.com/WorksApplications/SudachiPy)

  Managing the dictionary resources as Python packages.

  - [SudachiDict-small · PyPI](https://pypi.org/project/SudachiDict-small/)
  - [SudachiDict-core · PyPI](https://pypi.org/project/SudachiDict-core/)
  - [SudachiDict-full · PyPI](https://pypi.org/project/SudachiDict-full/)

  The dictionary files are not included in the packages; It will be downloaded upon installation (the procedure in `setup.py`).

  The version (e.g., `20200330`) and the edition (`small`, `core`, or `full`) is specified in `INFO.json`.



  In SudachiPy v0.5.2 and later, you can specify a dictionary directly from a command line or program.

  **WARNING: `sudachipy link` is no longer available in SudachiPy v0.5.2 and later.**

  Please see the following links for more details on the dictionary option.

  - english
    - [https://github.com/WorksApplications/SudachiPy#dictionary-edition](https://github.com/WorksApplications/SudachiPy#dictionary-edition)
  - japanese
    - [https://github.com/WorksApplications/SudachiPy/blob/develop/docs/tutorial.md#辞書の種類](https://github.com/WorksApplications/SudachiPy/blob/develop/docs/tutorial.md#%E8%BE%9E%E6%9B%B8%E3%81%AE%E7%A8%AE%E9%A1%9E)



  ```bash
  pip install sudachidict_core
  ```

  ```bash
  pip install sudachidict_small
  ```

  ```bash
  pip install sudachidict_full
  ```



  In case you are using SudachiPy before v0.5.2, please visit the old SudachiPy documentation.

  - english
    - [https://github.com/WorksApplications/SudachiPy/tree/v0.5.1#dictionary-edition](https://github.com/WorksApplications/SudachiPy/tree/v0.5.1#dictionary-edition)
  - japanese
    - [https://github.com/WorksApplications/SudachiPy/blob/v0.5.1/docs/tutorial.md#%辞書の種類](https://github.com/WorksApplications/SudachiPy/blob/v0.5.1/docs/tutorial.md#%E8%BE%9E%E6%9B%B8%E3%81%AE%E7%A8%AE%E9%A1%9E)


pkgId: 077cb20456d9cd1b14d9ac78f98c4bca58703e6f50d30b279d36b8f0baf13ce5
name: python-SuperSuit
arch: src
version: 3.7.2
epoch: 0
release: 1
summary: Wrappers for Gymnasium and PettingZoo
url: https://github.com/Farama-Foundation/SuperSuit
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-ec45cc58-5034-44fa-b863-588c8633ba41
location_href: 00012500-python-supersuit/python-SuperSuit-3.7.2-1.src.rpm
checksum_type: sha256
description:
  <p align="center">
      <img src="https://raw.githubusercontent.com/Farama-Foundation/SuperSuit/master/supersuit-text.png" width="500px"/>
  </p>


  SuperSuit introduces a collection of small functions which can wrap reinforcement learning environments to do preprocessing ('microwrappers').
  We support Gymnasium for single agent environments and PettingZoo for multi-agent environments (both AECEnv and ParallelEnv environments).


  Using it with Gymnasium to convert space invaders to have a grey scale observation space and stack the last 4 frames looks like:

  ```
  import gymnasium
  from supersuit import color_reduction_v0, frame_stack_v1

  env = gymnasium.make('SpaceInvaders-v0')

  env = frame_stack_v1(color_reduction_v0(env, 'full'), 4)
  ```

  Similarly, using SuperSuit with PettingZoo environments looks like

  ```
  from pettingzoo.butterfly import pistonball_v0
  env = pistonball_v0.env()

  env = frame_stack_v1(color_reduction_v0(env, 'full'), 4)
  ```


  **Please note**: Once the planned wrapper rewrite of Gymnasium is complete and the vector API is stabilized, this project will be deprecated and rewritten as part of a new wrappers package in PettingZoo and the vectorized API will be redone, taking inspiration from the functionality currently in Gymnasium.


  To install SuperSuit from pypi:

  ```
  python3 -m venv env
  source env/bin/activate
  pip install --upgrade pip
  pip install supersuit
  ```

  Alternatively, to install SuperSuit from source, clone this repo, `cd` to it, and then:

  ```
  python3 -m venv env
  source env/bin/activate
  pip install --upgrade pip
  pip install -e .
  ```


pkgId: bebb9fbc4d3bd642ca60242ec089f596b6bc96550851c131692c8c6d94c5ceb3
name: python-TGScheduler
arch: src
version: 1.7.0
epoch: 0
release: 1
summary: Pure Python Scheduler
url: https://bitbucket.org/xcg/tgscheduler
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-6af2ccaa-378c-4553-865c-7212b2fbc387
location_href: 00002885-python-TGScheduler/python-TGScheduler-1.7.0-1.src.rpm
checksum_type: sha256
description:
  This is a pure Python scheduler that can be used in any application. Tasks can be run in-process
  (within threads), forked (as new processes) or synchronously into the code.
  The scheduler makes it easy to have one-time or recurring tasks run as needed.


pkgId: 2077b9b1a1851ba8bff525e1eb6a0ee77480bdcf04069665707ee292973b4b8a
name: python-Telethon
arch: src
version: 1.28.2
epoch: 0
release: 1
summary: Full-featured Telegram client library for Python 3
url: https://github.com/LonamiWebs/Telethon
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a1b9341b-c311-483b-916c-ea7dad0d727a
location_href: 00009326-python-telethon/python-Telethon-1.28.2-1.src.rpm
checksum_type: sha256
description:
    ⭐️ Thanks **everyone** who has starred the project, it means a lot!
  |logo| **Telethon** is an asyncio_ **Python 3**
  MTProto_ library to interact with Telegram_'s API
  as a user or through a bot account (bot API alternative).
      If you have code using Telethon before its 1.0 version, you must
      read `Compatibility and Convenience`_ to learn how to migrate.


pkgId: b9bba32ad4349b697fa041178bf02da8265fc8736708c253ac115c3cfa16449f
name: python-TestSlide
arch: src
version: 2.7.0
epoch: 0
release: 1
summary: A test framework for Python that makes mocking and iterating over code with tests a breeze
url: https://github.com/facebook/TestSlide
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d70ee663-9155-4ca1-87f6-582b4fae9202
location_href: 00002886-python-TestSlide/python-TestSlide-2.7.0-1.src.rpm
checksum_type: sha256
description:
  ![TestSlide](./docs/testslide_logo.png)

  [![Build Status](https://github.com/facebook/TestSlide/workflows/CI/badge.svg)](https://github.com/facebook/TestSlide/actions?query=workflow%3ACI)
  [![Coverage Status](https://coveralls.io/repos/github/facebook/TestSlide/badge.svg?branch=main)](https://coveralls.io/github/facebook/TestSlide?branch=main)
  [![Documentation Status](https://readthedocs.org/projects/testslide/badge/?version=main)](https://testslide.readthedocs.io/en/main/?badge=main)
  [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
  [![PyPI version](https://badge.fury.io/py/TestSlide.svg)](https://badge.fury.io/py/TestSlide)
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)

  A test framework for Python that enable [unit testing](https://docs.python.org/3/library/unittest.html) / [TDD](https://en.wikipedia.org/wiki/Test-driven_development) / [BDD](https://en.wikipedia.org/wiki/Behavior-driven_development) to be productive and enjoyable.

  Its well behaved mocks with thorough API validations catches bugs both when code is first written or long in the future when it is changed.

  The flexibility of using them with existing `unittest.TestCase` or TestSlide's own test runner let users get its benefits without requiring refactoring existing code.



  Install:

  ```
  pip install TestSlide
  ```

  Scaffold the code you want to test `backup.py`:

  ```python
  class Backup:
    def delete(self, path):
      pass
  ```

  Write a test case `backup_test.py` describing the expected behavior:

  ```python
  import testslide, backup, storage

  class TestBackupDelete(testslide.TestCase):
    def setUp(self):
      super().setUp()
      self.storage_mock = testslide.StrictMock(storage.Client)
      
      self.mock_constructor(storage, 'Client')\
        .for_call(timeout=60)\
        .to_return_value(self.storage_mock)

    def test_delete_from_storage(self):
      
      self.mock_callable(self.storage_mock, 'delete')\
        .for_call('/file/to/delete')\
        .to_return_value(True)\
        .and_assert_called_once()
      backup.Backup().delete('/file/to/delete')
  ```

  TestSlide's `StrictMock`, `mock_constructor()` and `mock_callable()` are seamlessly integrated with Python's TestCase.

  Run the test and see the failure:

  ![Failing test](https://raw.githubusercontent.com/facebook/TestSlide/main/docs/test_fail.png)

  TestSlide's mocks failure messages guide you towards the solution, that you can now implement:

  ```python
  import storage

  class Backup:
    def __init__(self):
      self.storage = storage.Client(timeout=60)

    def delete(self, path):
      self.storage.delete(path)
  ```

  And watch the test go green:

  ![Passing test](https://raw.githubusercontent.com/facebook/TestSlide/main/docs/test_pass.png)

  It is all about letting the failure messages guide you towards the solution. There's a plethora of validation inside TestSlide's mocks, so you can trust they will help you iterate quickly when writing code and also cover you when breaking changes are introduced.



  There's a lot more that TestSlide can offer, please check the full documentation at https://testslide.readthedocs.io/ to learn more.



  * Linux
  * Python 3



  TestSlide is open source software, contributions are very welcome!

  See the [CONTRIBUTING](CONTRIBUTING.md) file for how to help out.



  TestSlide is MIT licensed, as found in the [LICENSE](LICENSE) file.




  https://opensource.facebook.com/legal/terms




  https://opensource.facebook.com/legal/privacy


pkgId: fb8afd60a4de51f014f5fc0802cb67ee4afad1a8c1c00269bde52ac4a642f4ed
name: python-TestSlide
arch: src
version: 2.7.1
epoch: 0
release: 1
summary: A test framework for Python that makes mocking and iterating over code with tests a breeze
url: https://github.com/facebook/TestSlide
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-2bb82def-932a-4324-9186-89bfe834b169
location_href: 00006266-python-TestSlide/python-TestSlide-2.7.1-1.src.rpm
checksum_type: sha256
description:
  ![TestSlide](./docs/testslide_logo.png)

  [![Build Status](https://github.com/facebook/TestSlide/workflows/CI/badge.svg)](https://github.com/facebook/TestSlide/actions?query=workflow%3ACI)
  [![Coverage Status](https://coveralls.io/repos/github/facebook/TestSlide/badge.svg?branch=main)](https://coveralls.io/github/facebook/TestSlide?branch=main)
  [![Documentation Status](https://readthedocs.org/projects/testslide/badge/?version=main)](https://testslide.readthedocs.io/en/main/?badge=main)
  [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
  [![PyPI version](https://badge.fury.io/py/TestSlide.svg)](https://badge.fury.io/py/TestSlide)
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)

  A test framework for Python that enable [unit testing](https://docs.python.org/3/library/unittest.html) / [TDD](https://en.wikipedia.org/wiki/Test-driven_development) / [BDD](https://en.wikipedia.org/wiki/Behavior-driven_development) to be productive and enjoyable.

  Its well behaved mocks with thorough API validations catches bugs both when code is first written or long in the future when it is changed.

  The flexibility of using them with existing `unittest.TestCase` or TestSlide's own test runner let users get its benefits without requiring refactoring existing code.



  Install:

  ```
  pip install TestSlide
  ```

  Scaffold the code you want to test `backup.py`:

  ```python
  class Backup:
    def delete(self, path):
      pass
  ```

  Write a test case `backup_test.py` describing the expected behavior:

  ```python
  import testslide, backup, storage

  class TestBackupDelete(testslide.TestCase):
    def setUp(self):
      super().setUp()
      self.storage_mock = testslide.StrictMock(storage.Client)
      
      self.mock_constructor(storage, 'Client')\
        .for_call(timeout=60)\
        .to_return_value(self.storage_mock)

    def test_delete_from_storage(self):
      
      self.mock_callable(self.storage_mock, 'delete')\
        .for_call('/file/to/delete')\
        .to_return_value(True)\
        .and_assert_called_once()
      backup.Backup().delete('/file/to/delete')
  ```

  TestSlide's `StrictMock`, `mock_constructor()` and `mock_callable()` are seamlessly integrated with Python's TestCase.

  Run the test and see the failure:

  ![Failing test](https://raw.githubusercontent.com/facebook/TestSlide/main/docs/test_fail.png)

  TestSlide's mocks failure messages guide you towards the solution, that you can now implement:

  ```python
  import storage

  class Backup:
    def __init__(self):
      self.storage = storage.Client(timeout=60)

    def delete(self, path):
      self.storage.delete(path)
  ```

  And watch the test go green:

  ![Passing test](https://raw.githubusercontent.com/facebook/TestSlide/main/docs/test_pass.png)

  It is all about letting the failure messages guide you towards the solution. There's a plethora of validation inside TestSlide's mocks, so you can trust they will help you iterate quickly when writing code and also cover you when breaking changes are introduced.



  There's a lot more that TestSlide can offer, please check the full documentation at https://testslide.readthedocs.io/ to learn more.



  * Linux
  * Python 3



  TestSlide is open source software, contributions are very welcome!

  See the [CONTRIBUTING](CONTRIBUTING.md) file for how to help out.



  TestSlide is MIT licensed, as found in the [LICENSE](LICENSE) file.




  https://opensource.facebook.com/legal/terms




  https://opensource.facebook.com/legal/privacy



  Copyright © 2021 Meta Platforms, Inc


pkgId: 8569183b55afeaaec945d2b9a15718215543f24f29ae92f0989f1a0a1429c729
name: python-TgCrypto
arch: src
version: 1.2.5
epoch: 0
release: 1
summary: Fast and Portable Cryptography Extension Library for Pyrogram
url: https://github.com/pyrogram
rpm_license: LGPLv3+
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-b992306f-740a-4415-93a5-b4511e59a808
location_href: 00009692-python-tgcrypto/python-TgCrypto-1.2.5-1.src.rpm
checksum_type: sha256
description:
  > Fast and Portable Cryptography Extension Library for Pyrogram

  **TgCrypto** is a Cryptography Library written in C as a Python extension. It is designed to be portable, fast,
  easy to install and use. TgCrypto is intended for [Pyrogram](https://github.com/pyrogram/pyrogram) and implements the
  cryptographic algorithms Telegram requires, namely:

  - **`AES-256-IGE`** - used in [MTProto v2.0](https://core.telegram.org/mtproto).
  - **`AES-256-CTR`** - used for [CDN encrypted files](https://core.telegram.org/cdn).
  - **`AES-256-CBC`** - used for [encrypted passport credentials](https://core.telegram.org/passport).



  - Python 3.7 or higher.



  ``` bash
  $ pip3 install -U tgcrypto
  ```



  TgCrypto API consists of these six methods:

  ```python
  def ige256_encrypt(data: bytes, key: bytes, iv: bytes) -> bytes: ...
  def ige256_decrypt(data: bytes, key: bytes, iv: bytes) -> bytes: ...

  def ctr256_encrypt(data: bytes, key: bytes, iv: bytes, state: bytes) -> bytes: ...
  def ctr256_decrypt(data: bytes, key: bytes, iv: bytes, state: bytes) -> bytes: ...

  def cbc256_encrypt(data: bytes, key: bytes, iv: bytes) -> bytes: ...
  def cbc256_decrypt(data: bytes, key: bytes, iv: bytes) -> bytes: ...
  ```





  **Note**: Data must be padded to match a multiple of the block size (16 bytes).

  ``` python
  import os

  import tgcrypto

  data = os.urandom(10 * 1024 * 1024 + 7)  # 10 MB of random data + 7 bytes to show padding
  key = os.urandom(32)  # Random Key
  iv = os.urandom(32)  # Random IV


  data += bytes(-len(data) % 16)

  ige_encrypted = tgcrypto.ige256_encrypt(data, key, iv)
  ige_decrypted = tgcrypto.ige256_decrypt(ige_encrypted, key, iv)

  print(data == ige_decrypted)  # True
  ```



  ``` python
  import os

  import tgcrypto

  data = os.urandom(10 * 1024 * 1024)  # 10 MB of random data

  key = os.urandom(32)  # Random Key

  enc_iv = bytearray(os.urandom(16))  # Random IV
  dec_iv = enc_iv.copy()  # Keep a copy for decryption

  ctr_encrypted = tgcrypto.ctr256_encrypt(data, key, enc_iv, bytes(1))
  ctr_decrypted = tgcrypto.ctr256_decrypt(ctr_encrypted, key, dec_iv, bytes(1))

  print(data == ctr_decrypted)  # True
  ```



  ``` python
  import os
  from io import BytesIO

  import tgcrypto

  data = BytesIO(os.urandom(10 * 1024 * 1024))  # 10 MB of random data

  key = os.urandom(32)  # Random Key

  enc_iv = bytearray(os.urandom(16))  # Random IV
  dec_iv = enc_iv.copy()  # Keep a copy for decryption

  enc_state = bytes(1)  # Encryption state, starts from 0
  dec_state = bytes(1)  # Decryption state, starts from 0

  encrypted_data = BytesIO()  # Encrypted data buffer
  decrypted_data = BytesIO()  # Decrypted data buffer

  while True:
      chunk = data.read(1024)

      if not chunk:
          break

      
      encrypted_data.write(tgcrypto.ctr256_encrypt(chunk, key, enc_iv, enc_state))


  encrypted_data.seek(0)

  while True:
      chunk = encrypted_data.read(1024)

      if not chunk:
          break

      
      decrypted_data.write(tgcrypto.ctr256_decrypt(chunk, key, dec_iv, dec_state))

  print(data.getvalue() == decrypted_data.getvalue())  # True
  ```



  **Note**: Data must be padded to match a multiple of the block size (16 bytes).

  ``` python
  import os

  import tgcrypto

  data = os.urandom(10 * 1024 * 1024 + 7)  # 10 MB of random data + 7 bytes to show padding
  key = os.urandom(32)  # Random Key

  enc_iv = bytearray(os.urandom(16))  # Random IV
  dec_iv = enc_iv.copy()  # Keep a copy for decryption


  data += bytes(-len(data) % 16)

  cbc_encrypted = tgcrypto.cbc256_encrypt(data, key, enc_iv)
  cbc_decrypted = tgcrypto.cbc256_decrypt(cbc_encrypted, key, dec_iv)

  print(data == cbc_decrypted)  # True
  ```



  1. Clone this repository: `git clone https://github.com/pyrogram/tgcrypto`.
  2. Enter the directory: `cd tgcrypto`.
  3. Install `tox`: `pip3 install tox`
  4. Run tests: `tox`.



  [LGPLv3+](COPYING.lesser) © 2017-present [Dan](https://github.com/delivrance)


pkgId: 90a0f3e40c902416b85a0930a950d63f58b0bb028269651cb1a5785bf9da22be
name: python-TgCrypto-debuginfo
arch: x86_64
version: 1.2.5
epoch: 0
release: 1
summary: Debug information for package python-TgCrypto
url: https://github.com/pyrogram
rpm_license: LGPLv3+
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-b992306f-740a-4415-93a5-b4511e59a808
rpm_sourcerpm: python-TgCrypto-1.2.5-1.src.rpm
location_href: 00009692-python-tgcrypto/python-TgCrypto-debuginfo-1.2.5-1.x86_64.rpm
checksum_type: sha256
description:
  This package provides debug information for package python-TgCrypto.
  Debug information is useful when developing applications that use this
  package or when debugging this package.


pkgId: 2b7ebbf7b9ee94ca98ace72b99c2f23b3830460113899d8e2fa6fb03ed74c928
name: python-TgCrypto-debugsource
arch: x86_64
version: 1.2.5
epoch: 0
release: 1
summary: Debug sources for package python-TgCrypto
url: https://github.com/pyrogram
rpm_license: LGPLv3+
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-b992306f-740a-4415-93a5-b4511e59a808
rpm_sourcerpm: python-TgCrypto-1.2.5-1.src.rpm
location_href: 00009692-python-tgcrypto/python-TgCrypto-debugsource-1.2.5-1.x86_64.rpm
checksum_type: sha256
description:
  This package provides debug sources for package python-TgCrypto.
  Debug sources are useful when developing applications that use this
  package or when debugging this package.


pkgId: 2f6c81a88912dc1d9e2fcb796fccc491b5ba902d0c1ee26fddb706f22821b76a
name: python-Theano-PyMC
arch: src
version: 1.1.2
epoch: 0
release: 1
summary: Optimizing compiler for evaluating mathematical expressions on CPUs and GPUs.
url: http://deeplearning.net/software/theano/
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-7e875d2a-a1da-4eaf-b3b0-4b67beeef85f
location_href: 00010761-python-theano-pymc/python-Theano-PyMC-1.1.2-1.src.rpm
checksum_type: sha256
description:
  Theano is a Python library that allows you to define, optimize, and efficiently evaluate mathematical expressions involving multi-dimensional arrays. It is built on top of NumPy_. Theano features:

   * **tight integration with NumPy:** a similar interface to NumPy's. numpy.ndarrays are also used internally in Theano-compiled functions.
   * **transparent use of a GPU:** perform data-intensive computations up to 140x faster than on a CPU (support for float32 only).
   * **efficient symbolic differentiation:** Theano can compute derivatives for functions of one or many inputs.
   * **speed and stability optimizations:** avoid nasty bugs when computing expressions such as log(1 + exp(x)) for large values of x.
   * **dynamic C code generation:** evaluate expressions faster.
   * **extensive unit-testing and self-verification:** includes tools for detecting and diagnosing bugs and/or potential problems.

  Theano has been powering large-scale computationally intensive scientific
  research since 2007, but it is also approachable enough to be used in the
  classroom (IFT6266 at the University of Montreal).

  .. _NumPy: http://numpy.scipy.org/


pkgId: adc76d2698d45beb5840c900f274fd67093d496b9529043912199482e148135d
name: python-TikTokApi
arch: src
version: 5.2.2
epoch: 0
release: 1
summary: The Unofficial TikTok API Wrapper in Python 3.
url: https://github.com/davidteather/tiktok-api
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0d60eb7b-fa2d-4278-8222-593d4fb20ce3
location_href: 00013973-python-tiktokapi/python-TikTokApi-5.2.2-1.src.rpm
checksum_type: sha256
description:
  This is an unofficial api wrapper for TikTok.com in python. With this api you are able to call most trending and fetch specific user information as well as much more.

   [![DOI](https://zenodo.org/badge/188710490.svg)](https://zenodo.org/badge/latestdoi/188710490) [![LinkedIn](https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white&style=flat-square)](https://www.linkedin.com/in/davidteather/) [![Sponsor Me](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub)](https://github.com/sponsors/davidteather)  [![GitHub release (latest by date)](https://img.shields.io/github/v/release/davidteather/TikTok-Api)](https://github.com/davidteather/TikTok-Api/releases) [![Build Status](https://img.shields.io/github/workflow/status/davidteather/tiktok-api/TikTokApi%20CI/master)](https://github.com/davidteather/TikTok-Api/actions/workflows/package-test.yml) [![GitHub](https://img.shields.io/github/license/davidteather/TikTok-Api)](https://github.com/davidteather/TikTok-Api/blob/master/LICENSE) [![Downloads](https://pepy.tech/badge/tiktokapi)](https://pypi.org/project/TikTokApi/) ![](https://visitor-badge.laobi.icu/badge?page_id=davidteather.TikTok-Api) [![Support Server](https://img.shields.io/discord/783108952111579166.svg?color=7289da&logo=discord&style=flat-square)](https://discord.gg/yyPhbfma6f)


  These sponsors have paid to be placed here and beyond that I do not have any affiliation with them, the TikTokAPI package will always be free and open-source. If you wish to be a sponsor of this project check out my [GitHub sponsors page](https://github.com/sponsors/davidteather).

  <div align="center">
      <p>
      <a href="https://tikapi.io/?ref=davidteather" target="_blank">
  			<div>
  				<img src="https://raw.githubusercontent.com/davidteather/TikTok-Api/master/imgs/tikapi.png" width="100" alt="TikApi">
  			</div>
  			<b></b>
  			<div>
  				<b>TikAPI</b> is a paid TikTok API service providing a full out-of-the-box solution, making life easier for developers — trusted by 500+ companies.
  			</div>
  		</a>
      </p>
  </div>

  <br>

  <div align="center">
      <p>
      <a href="https://trendpop.social/?ref=github-davidteather-tiktokapi" target="_blank">
  			<div>
  				<img src="https://raw.githubusercontent.com/davidteather/TikTok-Api/master/imgs/trendpop.png" width="100" alt="Trendpop">
  			</div>
  			<div>
  				Trendpop builds software to help creators and businesses go viral on social video platforms.
  			</div>
              <div>
                  <sub>
                      Excited about building in this space?
                      <a href="https://trendpop.social/careers?ref=github-davidteather-tiktokapi">
                          <sub>We're hiring engineers across all roles</sub>
                      </a>
                      <a href="https://trendpop.social/careers?ref=github-davidteather-tiktokapi" target="_blank">
                      <sub>- shoot us a message at </sub>
                      </a>
                      <a href="mailto:founders@trendpop.social" target="_blank">
                      <sub><code>founders@trendpop.social</code></sub>
                      </a>
                  </sub>
              </div>
  		</a>
      </p>
  </div>

  <br>

  <div align="center">
      <p>
      <a href="https://influencerhunters.com/docs.html?utm_source=github&utm_medium=githubpage&utm_campaign=david_thea_github&utm_id=david_t" target="_blank">
  			<div>
  				<img src="https://raw.githubusercontent.com/andrearama/TikTok-Api/master/imgs/IH_LOGO.png" width="100" alt="IH_logo">
  			</div>
  			<b></b>
  			<div>
  				TikTok data through APIs, providing 10+ Million posts / day to the largest Marketing and Social listening platforms.
  			</div>
  		</a>
      </p>
  </div>


  - [Documentation](#documentation)
  - [Getting Started](#getting-started)
      - [How to Support The Project](#how-to-support-the-project)
      - [Installing](#installing)
      - [Common Issues](#common-issues)
  - [Quick Start Guide](#quick-start-guide)
      - [Examples](https://github.com/davidteather/TikTok-Api/tree/master/examples)

  [**Upgrading from V4 to V5**](#upgrading-from-v4-to-v5)



  You can find the full documentation [here](https://davidteather.github.io/TikTok-Api/docs/TikTokApi.html), the [TikTokApi Class](https://davidteather.github.io/TikTok-Api/docs/TikTokApi/tiktok.html) is where you'll probably spend most of your time.


  To get started using this api follow the instructions below.

  **Note:** If you want to learn how to web scrape websites check my [free and open-source course for web scraping](https://github.com/davidteather/web-scraping-with-reverse-engineering)


  * Star the repo 😎
  * Consider [sponsoring](https://github.com/sponsors/davidteather) me on GitHub
  * Send me an email or a [LinkedIn](https://www.linkedin.com/in/davidteather/) message telling me what you're using the API for, I really like hearing what people are using it for.
  * Submit PRs for issues :)



  If you run into an issue please check the closed issues on the github, although feel free to re-open a new issue if you find an issue that's been closed for a few months. The codebase can and does run into similar issues as it has before, because TikTok changes things up.

  ```sh
  pip install TikTokApi
  python -m playwright install
  ```
  If you would prefer a video walk through of setting up this package [YouTube video](https://www.youtube.com/watch?v=-uCt1x8kINQ) just for that.

  If you want a quick video to listen for [TikTok Live](https://www.youtube.com/watch?v=307ijmA3_lc) events in python.



  Clone this repository onto a local machine (or just the Dockerfile since it installs TikTokApi from pip) then run the following commands.

  ```sh
  docker pull mcr.microsoft.com/playwright:focal
  docker build . -t tiktokapi:latest
  docker run -v TikTokApi --rm tiktokapi:latest python3 your_script.py
  ```

  **Note** this assumes your script is named your_script.py and lives in the root of this directory.



  Please don't open an issue if you're experiencing one of these just comment if the provided solution do not work for you.

  * **Browser Has no Attribute** - make sure you ran `python3 -m playwright install`, if your error persists try the [playwright-python](https://github.com/microsoft/playwright-python) quickstart guide and diagnose issues from there.



  Here's a quick bit of code to get the most recent trending videos on TikTok. There's more examples in the [examples](https://github.com/davidteather/TikTok-Api/tree/master/examples) directory.

  **Note:** If you want to learn how to web scrape websites check my [free and open-source course for web scraping](https://github.com/davidteather/web-scraping-with-reverse-engineering)

  ```py
  from TikTokApi import TikTokApi


  with TikTokApi() as api:
      for trending_video in api.trending.videos(count=50):
          
          print(trending_video.author.username)
  ```

  **Note**: Jupyter (ipynb) only works on linux, see [microsoft/playwright-python #178](https://github.com/microsoft/playwright-python/issues/178)

  To run the example scripts from the repository root, make sure you use the `-m` option on python.
  ```sh
  python -m examples.get_trending
  ```

  You can access the dictionary type of an object using `.as_dict`. On a video this may look like
  [this](https://gist.github.com/davidteather/7c30780bbc30772ba11ec9e0b909e99d), although TikTok changes their structure from time to time so it's worth investigating the structure of the dictionary when you use this package.



  All changes will be noted on [#803](https://github.com/davidteather/TikTok-Api/pull/803) if you want more information.



  This package has been difficult to maintain due to it's structure, difficult to work with since the user of the package must write parsing methods to extract information from dictionaries, more memory intensive than it needs to be (although this can be further improved), and in general just difficult to work with for new users.

  As a result, I've decided to at least attempt to remedy some of these issues, the biggest changes are that
  1. The package has shifted to using classes for different TikTok objects resulting in an easier, higher-level programming experience.
  2. All methods that used to return a list of objects have been switched to using iterators, to hopefully decrease memory utilization for most users.







  You'll probably need to use this beyond just for legacy support, since not all attributes are parsed out and attached
  to the different objects.

  You may want to use this as a workaround for legacy applications while you upgrade the rest of the app. I'd suggest that you do eventually upgrade to using the higher-level approach fully.
  ```py
  user = api.user(username='therock')
  user.as_dict # -> dict of the user_object
  for video in user.videos():
      video.as_dict # -> dict of TikTok's video object as found when requesting the videos endpoint
  ```

  Here's a few more examples that help illustrate the differences in the flow of the usage of the package with V5.

  ```py

  api = TikTokApi.get_instance()
  trending_videos = api.by_trending()


  with TikTokApi() as api: # .get_instance no longer exists
      for trending_video in api.trending.videos():
          
  ```

  Where in V4 you had to extract information yourself, the package now handles that for you. So it's much easier to do chained related function calls.
  ```py

  trending_videos = api.by_trending()
  for video in trending_videos:
      
      
      trending_user = api.get_user(id=video['author']['id'], secUid=video['author']['secUid'])




  for trending_video in api.trending.videos():
      user_stats = trending_video.author.info_full['stats']
      if user_stats['followerCount'] >= 10000:
          
  ```


pkgId: b4ba9623bd5e7bf8c2574c160188c20ab7da102960c425c97254fa59d1c40eaa
name: python-Tornado-JSON
arch: src
version: 1.3.4
epoch: 0
release: 1
summary: A simple JSON API framework based on Tornado
url: https://github.com/hfaran/Tornado-JSON
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-b972626d-8e66-4093-aa37-3bf1bfde8c1d
location_href: 00012699-python-tornado-json/python-Tornado-JSON-1.3.4-1.src.rpm
checksum_type: sha256
description:
  [![Join the chat at https://gitter.im/hfaran/Tornado-JSON](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/hfaran/Tornado-JSON?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

  [![Build Status](https://travis-ci.org/hfaran/Tornado-JSON.png?branch=master)](https://travis-ci.org/hfaran/Tornado-JSON)
  [![Coverage Status](https://coveralls.io/repos/hfaran/Tornado-JSON/badge.png)](https://coveralls.io/r/hfaran/Tornado-JSON?branch=master)
  [![Documentation Status](https://readthedocs.org/projects/tornado-json/badge/?version=latest)](https://readthedocs.org/projects/tornado-json/?badge=latest)
  [![Stories in Ready](https://badge.waffle.io/hfaran/Tornado-JSON.png?label=In_Progress)](http://waffle.io/hfaran/Tornado-JSON)

  [![Latest Version](https://img.shields.io/pypi/v/Tornado-JSON.svg)](https://pypi.python.org/pypi/Tornado-JSON/)
  [![Supported Python versions](https://img.shields.io/pypi/pyversions/Tornado-JSON.svg)](https://pypi.python.org/pypi/Tornado-JSON/)
  [![Development Status](https://img.shields.io/pypi/status/Tornado-JSON.svg)](https://pypi.python.org/pypi/Tornado-JSON/)
  [![Download format](https://img.shields.io/pypi/format/Tornado-JSON.svg)](https://pypi.python.org/pypi/Tornado-JSON/)
  [![License](https://img.shields.io/pypi/l/Tornado-JSON.svg)](https://pypi.python.org/pypi/Tornado-JSON/)




  Tornado-JSON is a small extension of [Tornado](http://www.tornadoweb.org/en/stable/) with the intent of providing the tools necessary to get a JSON API up and running quickly.

  Some of the key features the included modules provide:

  * Input and output **[JSON Schema](http://json-schema.org/) validation** by decorating RequestHandlers with `@schema.validate`
  * **Automated route generation** with `routes.get_routes(package)`
  * **Automated [GFM](https://help.github.com/articles/github-flavored-markdown)-formatted API documentation** using schemas and provided descriptions
  * **Standardized JSON output** using the **[JSend](http://labs.omniti.com/labs/jsend)** specification




  Check out the [Hello World demo](https://github.com/hfaran/Tornado-JSON/tree/master/demos/helloworld) for a quick example and the [accompanying walkthrough](http://tornado-json.readthedocs.org/en/latest/using_tornado_json.html) in the documentation. And then [**explore Tornado-JSON on readthedocs for the rest!**](http://tornado-json.readthedocs.org/en/latest/index.html#)

  ```python
  import tornado.ioloop
  from tornado_json.routes import get_routes
  from tornado_json.application import Application

  import mywebapp


   
  routes = get_routes(mywebapp)

  application = Application(routes=routes, settings={})
  application.listen(8888)
  tornado.ioloop.IOLoop.instance().start()
  ```



  * https://github.com/hfaran/CitySportsLeague-Server
  * https://github.com/hfaran/LivesPool




  * For the possibly stable

  ```bash
  pip install Tornado-JSON
  ```

  * For the latest and greatest

  ```bash
  git clone https://github.com/hfaran/Tornado-JSON.git
  cd Tornado-JSON
  python setup.py develop
  ```




  If there is something you would like to see improved, you would be awesome for [opening an issue about it](https://github.com/hfaran/Tornado-JSON/issues/new), and I'll promise my best to take a look.

  Pull requests are absolutely welcome as well!




  This project is licensed under the MIT License.




  ```bash
  sudo pip2 install tox
  sudo pip3 install tox
  tox  # Will run test matrix
  ```


pkgId: 937644026c5837ac43a6e44fc4ff9a3b3a89a219950f339c1cb3cd0bf666efd8
name: python-Trololio
arch: src
version: 1.0
epoch: 0
release: 1
summary: Trollius and asyncio compatibility library
url: http://github.com/ThinkChaos/Trololio/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-4f4f9c96-d713-45de-87b3-c67997f4a1a0
location_href: 00005341-python-trololio/python-Trololio-1.0-1.src.rpm
checksum_type: sha256
description:
  Trololio: Trollius and asyncio compatibility library


  Trololio provides a compatibility layer for Trollius and asyncio (aka Tulip).
  It addresses the differences listed in `Trollius and Tulip
  <http://trollius.readthedocs.org/asyncio.html>`_:

  * Allows the use of Trollius' syntax with asyncio.
  * Provides missing objects and aliases for the others.
  * Synchronizes debug environnement variables.

  *****
  Links
  *****

  * `Trololio documentation <http://trololio.readthedocs.org/>`_
  * `Trollius documentation <http://trollius.readthedocs.org/>`_
  * `asyncio documentation <https://docs.python.org/3/library/asyncio.html>`_


pkgId: 69cc2153a1fba77b5401fc18d1a59bed2a6722ae9883901326833b775cc23097
name: python-TurboGears2
arch: src
version: 2.4.3
epoch: 0
release: 1
summary: Next generation TurboGears
url: http://www.turbogears.org/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-17074baf-cb48-4a9b-90fb-acd08c0c769e
location_href: 00002889-python-TurboGears2/python-TurboGears2-2.4.3-1.src.rpm
checksum_type: sha256
description:
  TurboGears brings together a best of breed python tools
  to create a flexible, full featured, and easy to use web
  framework.

  TurboGears 2 provides an integrated and well tested set of tools for
  everything you need to build dynamic, database driven applications.
  It provides a full range of tools for front end javascript
  develeopment, back database development and everything in between:

   * dynamic javascript powered widgets (ToscaWidgets2)
   * automatic JSON generation from your controllers
   * powerful, designer friendly XHTML based templating
   * object or route based URL dispatching
   * powerful Object Relational Mappers (SQLAlchemy)

  The latest development version is available in the
  `TurboGears Git repositories`_.

  .. _TurboGears Git repositories:
      https://github.com/TurboGears


pkgId: 6cda2b3caa19a671faa99e415797f14a6bb4a876dc84695ea93629b84441018e
name: python-Twiggy
arch: src
version: 0.5.1
epoch: 0
release: 1
summary: a Pythonic logger
url: https://github.com/wearpants/twiggy/
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-51740a54-18ec-4209-a9ab-bd83273e2dbc
location_href: 00005348-python-twiggy/python-Twiggy-0.5.1-1.src.rpm
checksum_type: sha256
description:
  Twiggy is a Pythonic logger.
      >>> from twiggy import quick_setup, log
      >>> quick_setup()
      >>> log.name('frank') \
                   'sunny',
                   who='world')
      INFO:frank:number=42:hello world, it's a sunny day
  You should use Twiggy because it is awesome. For more information, read the
  `documentation <https://twiggy.readthedocs.io/en/latest/>`_ or `see this blog post
  <https://wearpants.org/petecode/meet-twiggy/>`_.


pkgId: e3ffce0bc0229cb7866e3d611ea70fc4ff52a154780cda224bba407c62e6695f
name: python-UPnPy
arch: src
version: 1.1.8
epoch: 0
release: 1
summary: Lightweight UPnP client library for Python.
url: https://github.com/5kyc0d3r/upnpy
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-569bfc47-b4e5-42a3-9e76-560386ec9342
location_href: 00005376-python-upnpy/python-UPnPy-1.1.8-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://travis-ci.org/5kyc0d3r/upnpy.svg?branch=master)](https://travis-ci.org/5kyc0d3r/upnpy)
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/upnpy.svg)](https://pypi.org/project/UPnPy/)
  [![PyPI package version](https://img.shields.io/pypi/v/upnpy.svg)](https://pypi.org/project/UPnPy/)
  [![MIT License](https://img.shields.io/badge/license-MIT-red.svg)](https://github.com/5kyc0d3r/upnpy/blob/master/LICENSE)

  Lightweight UPnP client library for Python.


  ```
  $ pip install upnpy
  ```




  ```python
  import upnpy

  upnp = upnpy.UPnP()



  devices = upnp.discover()




  device = upnp.get_igd()




  device.get_services()







  service = device['WANPPPConnection.1']














  service.get_actions()




  service.GetExternalIPAddress()
  ```


  ```python
  import upnpy

  upnp = upnpy.UPnP()



  devices = upnp.discover()




  device = upnp.get_igd()




  device.get_services()







  service = device['WANPPPConnection.1']














  service.get_actions()




















































  service.AddPortMapping.get_input_arguments()



  service.AddPortMapping(
      NewRemoteHost='',
      NewExternalPort=80,
      NewProtocol='TCP',
      NewInternalPort=8000,
      NewInternalClient='192.168.1.3',
      NewEnabled=1,
      NewPortMappingDescription='Test port mapping entry from UPnPy.',
      NewLeaseDuration=0
  )
  ```


  Documentation is available at [https://upnpy.readthedocs.io/en/latest/](https://upnpy.readthedocs.io/en/latest/)


  This project is licensed under the terms of the [MIT License](https://github.com/5kyc0d3r/upnpy/blob/master/LICENSE).


pkgId: 9e9dc6e9a86a9e7c8e07e9aae7607c04285b564a5c6ed5127148b197cef32439
name: python-Unidecode
arch: src
version: 1.3.6
epoch: 0
release: 1
summary: ASCII transliterations of Unicode text
url: https://pypi.org/project/Unidecode/
rpm_license: GPL
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-c88842ce-1645-440b-bad0-93459efa7999
location_href: 00005371-python-unidecode/python-Unidecode-1.3.6-1.src.rpm
checksum_type: sha256
description:
  It often happens that you have text data in Unicode, but you need to
  represent it in ASCII. For example when integrating with legacy code that
  doesn't support Unicode, or for ease of entry of non-Roman names on a US
  keyboard, or when constructing ASCII machine identifiers from human-readable
  Unicode strings that should still be somewhat intelligible. A popular example
  of this is when making an URL slug from an article title.
  **Unidecode is not a replacement for fully supporting Unicode for strings in
  your program. There are a number of caveats that come with its use,
  especially when its output is directly visible to users. Please read the rest
  of this README before using Unidecode in your project.**
  In most of examples listed above you could represent Unicode characters as
  ``???`` or ``\\15BA\\15A0\\1610``, to mention two extreme cases. But that's
  nearly useless to someone who actually wants to read what the text says.
  What Unidecode provides is a middle road: the function ``unidecode()`` takes
  Unicode data and tries to represent it in ASCII characters (i.e., the
  universally displayable characters between 0x00 and 0x7F), where the
  compromises taken when mapping between two character sets are chosen to be
  near what a human with a US keyboard would choose.
  The quality of resulting ASCII representation varies. For languages of
  western origin it should be between perfect and good. On the other hand
  transliteration (i.e., conveying, in Roman letters, the pronunciation
  expressed by the text in some other writing system) of languages like
  Chinese, Japanese or Korean is a very complex issue and this library does
  not even attempt to address it. It draws the line at context-free
  character-by-character mapping. So a good rule of thumb is that the further
  the script you are transliterating is from Latin alphabet, the worse the
  transliteration will be.
  Generally Unidecode produces better results than simply stripping accents from
  characters (which can be done in Python with built-in functions). It is based
  on hand-tuned character mappings that for example also contain ASCII
  approximations for symbols and non-Latin alphabets.
  **Note that some people might find certain transliterations offending.** Most
  common examples include characters that are used in multiple languages. A user
  expects a character to be transliterated in their language but Unidecode uses a
  transliteration for a different language. It's best to not use Unidecode for
  strings that are directly visible to users of your application. See also the
  *Frequently Asked Questions* section for more info on common problems.
  This is a Python port of ``Text::Unidecode`` Perl module by Sean M. Burke
  <sburke@cpan.org>.


pkgId: 1a253cabefa41a14c8343d5166f87c4117d72fc8d8c0e559925e77683ad0777e
name: python-Unipath
arch: src
version: 1.1
epoch: 0
release: 1
summary: Object-oriented alternative to os/os.path/shutil
url: https://github.com/mikeorr/Unipath
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a102f51c-833a-4e1f-b471-12e4f8a5f52d
location_href: 00005373-python-unipath/python-Unipath-1.1-1.src.rpm
checksum_type: sha256
description:
  Unipath is an object-oriented front end to the file/directory functions
  scattered throughout several Python library modules.  It's based on Jason
  Orendorff's *path.py* but has a friendlier API and higher-level features.
  Unipath is stable, well-tested, and has been used in production since 2008.
  It runs on Python 2.6+ and 3.3+.

  **Version 1.1** is a bugfix release. Most notably it fixes a Unicode
  incompatibility on Python 3 under Windows (or operating systems with native
  Unicpde filenames). The license is changed to MIT (from the Python license).


pkgId: a7acfdfead57e57bdfe6981addcbb33d471d85634c50f2430608b4ad90821e55
name: python-WTForms
arch: src
version: 3.0.1
epoch: 0
release: 1
summary: Form validation and rendering for Python web development.
url: https://wtforms.readthedocs.io/
rpm_license: BSD-3-Clause
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-83e82da0-d39d-4305-9203-a132f387461f
location_href: 00005489-python-wtforms/python-WTForms-3.0.1-1.src.rpm
checksum_type: sha256
description:
  WTForms is a flexible forms validation and rendering library for Python
  web development. It can work with whatever web framework and template
  engine you choose. It supports data validation, CSRF protection,
  internationalization (I18N), and more. There are various community
  libraries that provide closer integration with popular frameworks.


pkgId: 3d71ba206303db84354505d8882279601b66136c8cd308c894285ca468acfad0
name: python-Wand
arch: src
version: 0.6.11
epoch: 0
release: 1
summary: Ctypes-based simple MagickWand API binding for Python
url: http://wand-py.org/
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-af8e5a20-5b0d-4a36-95b1-6ee95786c1b9
location_href: 00005451-python-wand/python-Wand-0.6.11-1.src.rpm
checksum_type: sha256
description:
  Wand is a ``ctypes``-based simple ImageMagick_ binding for Python,
  supporting 2.7, 3.3+, and PyPy. All functionalities of MagickWand API are
  implemented in Wand.
  You can install the package from PyPI_ by using ``pip``:
     $ pip install Wand
  Or would you like to enjoy the bleeding edge?  Check out the head
  revision of the source code from the `GitHub repository`__:
     $ git clone git://github.com/emcconville/wand.git
     $ cd wand/
     $ python setup.py install
  __ https://github.com/emcconville/wand


pkgId: 4271cca62a71825134a7061379934bcf64d571ef8e0e35d9eca5bafa9f1a88fb
name: python-WebOb
arch: src
version: 1.8.7
epoch: 0
release: 1
summary: WSGI request and response object
url: http://webob.org/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d809113a-1794-4054-8f0f-29df433c8a14
location_href: 00009294-python-webob/python-WebOb-1.8.7-1.src.rpm
checksum_type: sha256
description:
  WebOb provides objects for HTTP requests and responses.  Specifically
  it does this by wrapping the `WSGI <http://wsgi.readthedocs.io/en/latest/>`_ request
  environment and response status/headers/app_iter(body).
  The request and response objects provide many conveniences for parsing
  HTTP request and forming HTTP responses.  Both objects are read/write:
  as a result, WebOb is also a nice way to create HTTP requests and
  parse HTTP responses.


pkgId: e6d5b211e84df5851b2b1a1deb1c1ea4bfb12042f620218cde56fc4b934182c3
name: python-Werkzeug
arch: src
version: 2.2.3
epoch: 0
release: 1
summary: The comprehensive WSGI web application library.
url: https://palletsprojects.com/p/werkzeug/
rpm_license: BSD-3-Clause
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-3e6be065-f888-48b8-aaf7-1c5fce8ad3ce
location_href: 00008914-python-werkzeug/python-Werkzeug-2.2.3-1.src.rpm
checksum_type: sha256
description:
  *werkzeug* German noun: "tool". Etymology: *werk* ("work"), *zeug* ("stuff")
  Werkzeug is a comprehensive `WSGI`_ web application library. It began as
  a simple collection of various utilities for WSGI applications and has
  become one of the most advanced WSGI utility libraries.
  It includes:
  -   An interactive debugger that allows inspecting stack traces and
      source code in the browser with an interactive interpreter for any
      frame in the stack.
  -   A full-featured request object with objects to interact with
      headers, query args, form data, files, and cookies.
  -   A response object that can wrap other WSGI applications and handle
      streaming data.
  -   A routing system for matching URLs to endpoints and generating URLs
      for endpoints, with an extensible system for capturing variables
      from URLs.
  -   HTTP utilities to handle entity tags, cache control, dates, user
      agents, cookies, files, and more.
  -   A threaded WSGI server for use while developing applications
      locally.
  -   A test client for simulating HTTP requests during testing without
      requiring running a server.
  Werkzeug doesn't enforce any dependencies. It is up to the developer to
  choose a template engine, database adapter, and even how to handle
  requests. It can be used to build all sorts of end user applications
  such as blogs, wikis, or bulletin boards.
  `Flask`_ wraps Werkzeug, using it to handle the details of WSGI while
  providing more structure and patterns for defining powerful
  applications.


pkgId: 3fc32e395979a0c92d5b166df5af8003bb60859593112f12be9b7a29b97367f3
name: python-Whoosh
arch: src
version: 2.7.4
epoch: 0
release: 1
summary: Fast, pure-Python full text indexing, search, and spell checking library.
url: http://bitbucket.org/mchaput/whoosh
rpm_license: Two-clause BSD license
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-05da2562-baa7-4975-8382-8d8a7649ce82
location_href: 00010923-python-whoosh/python-Whoosh-2.7.4-1.src.rpm
checksum_type: sha256
description:
  Whoosh is a fast, featureful full-text indexing and searching library
  implemented in pure Python. Programmers can use it to easily add search
  functionality to their applications and websites. Every part of how Whoosh
  works can be extended or replaced to meet your needs exactly.
  Some of Whoosh's features include:
  * Pythonic API.
  * Pure-Python. No compilation or binary packages needed, no mysterious crashes.
  * Fielded indexing and search.
  * Fast indexing and retrieval -- faster than any other pure-Python, scoring,
    full-text search solution I know of.
  * Pluggable scoring algorithm (including BM25F), text analysis, storage,
    posting format, etc.
  * Powerful query language.
  * Pure Python spell-checker (as far as I know, the only one).
  Whoosh might be useful in the following circumstances:
  * Anywhere a pure-Python solution is desirable to avoid having to build/compile
    native libraries (or force users to build/compile them).
  * As a research platform (at least for programmers that find Python easier to
    read and work with than Java ;)
  * When an easy-to-use Pythonic interface is more important to you than raw
    speed.
  Whoosh was created and is maintained by Matt Chaput. It was originally created
  for use in the online help system of Side Effects Software's 3D animation
  software Houdini. Side Effects Software Inc. graciously agreed to open-source
  the code.
  This software is licensed under the terms of the simplified BSD (A.K.A. "two
  clause" or "FreeBSD") license. See LICENSE.txt for information.


pkgId: 8fec6ddf818ee3e49ff2fe9289704892a0952671e68f81a3dd2b561dd53b53bf
name: python-Wikipedia-API
arch: src
version: 0.5.8
epoch: 0
release: 1
summary: Python Wrapper for Wikipedia
url: https://github.com/martin-majlis/Wikipedia-API
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e9bdb99f-6af6-4c16-8465-94254d10e27d
location_href: 00013126-python-wikipedia-api/python-Wikipedia-API-0.5.8-1.src.rpm
checksum_type: sha256
description:
  ``Wikipedia-API`` is easy to use Python wrapper for `Wikipedias'`_ API. It supports extracting texts, sections, links, categories, translations, etc from Wikipedia. Documentation provides code snippets for the most common use cases.
  |build-status| |docs| |cc-coverage| |version| |pyversions| |github-stars-flat|


pkgId: a75c3ba23044e563f27fecda5e5ffa22d5b7acc0f9be3cef40adebf87a19cef3
name: python-XStatic
arch: src
version: 1.0.2
epoch: 0
release: 1
summary: XStatic base package with minimal support code
url: https://github.com/xstatic-py/xstatic
rpm_license: MIT license
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f22849af-7a96-4aff-8cdf-7157b23fc42a
location_href: 00002890-python-XStatic/python-XStatic-1.0.2-1.src.rpm
checksum_type: sha256
description:
  The goal of XStatic family of packages is to provide static file packages
  with minimal overhead - without selling you some dependencies you don't want.
  XStatic has some minimal support code for working with the XStatic-* packages.
  Docs: https://xstatic.readthedocs.io/
  Repository: https://github.com/xstatic-py/xstatic (base package)
  Find more stuff already packaged as xstatic package there:
  https://github.com/xstatic-py/
  https://pypi.org/search/?q=xstatic
  Licenses:
  * MIT license (for XStatic code)
  * same license as packaged file (for static file packages)


pkgId: 6f1eb622f31b7341587281ba0994d08863bde02de9abb29ce7de4b39d130c05c
name: python-XStatic-Angular
arch: src
version: 1.8.2.2
epoch: 0
release: 1
summary: Angular 1.8.2 (XStatic packaging standard)
url: http://angularjs.org
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-cdfa1f9c-b471-4bc0-8b55-f3053953182c
location_href: 00002891-python-XStatic-Angular/python-XStatic-Angular-1.8.2.2-1.src.rpm
checksum_type: sha256
description:
  Angular JavaScript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: 8775a1b38847349fdfd8c3266d4176ec3eed9e6c0974a46b642f51cefff71f69
name: python-XStatic-Angular-Bootstrap
arch: src
version: 2.5.0.0
epoch: 0
release: 1
summary: Angular-Bootstrap 2.5.0 (XStatic packaging standard)
url: http://angular-ui.github.io/bootstrap/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-55ac18a6-5f98-48ae-8a11-729e81882126
location_href: 00002892-python-XStatic-Angular-Bootstrap/python-XStatic-Angular-Bootstrap-2.5.0.0-1.src.rpm
checksum_type: sha256
description:
  Angular-Bootstrap JavaScript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: 8c08f733a5cbf6c9c53ce53723abffe85dde5a53a041a6c17fa9ee86926eefdb
name: python-XStatic-Angular-Bootstrap-help
arch: noarch
version: 2.5.0.0
epoch: 0
release: 1
summary: Development documents and examples for XStatic-Angular-Bootstrap
url: http://angular-ui.github.io/bootstrap/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-55ac18a6-5f98-48ae-8a11-729e81882126
rpm_sourcerpm: python-XStatic-Angular-Bootstrap-2.5.0.0-1.src.rpm
checksum_type: sha256
description:
  Angular-Bootstrap JavaScript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.

location_href:
  00002892-python-XStatic-Angular-Bootstrap/python-XStatic-Angular-Bootstrap-help-2.5.0.0-1.noarch.rpm


pkgId: 1f12f3acb1b78d559b04f3cb2722fe06597f7d53f8146643facd7d24eac75ac7
name: python-XStatic-Angular-Bootstrap-help
arch: noarch
version: 2.5.0.0
epoch: 0
release: 1
summary: Development documents and examples for XStatic-Angular-Bootstrap
url: http://angular-ui.github.io/bootstrap/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-4a9df2fe-3f9c-4345-9717-37de459b4f38
rpm_sourcerpm: python-XStatic-Angular-Bootstrap-2.5.0.0-1.src.rpm
checksum_type: sha256
description:
[cell repeats an earlier one in this file: 434 characters]

location_href:
  00006272-python-XStatic-Angular-Bootstrap/python-XStatic-Angular-Bootstrap-help-2.5.0.0-1.noarch.rpm


pkgId: c5cbd91ba9955d1e434277b054f2afb96c4f3f6adbd7cfe35470fce2512d4718
name: python-XStatic-Angular-FileUpload
arch: src
version: 12.0.4.0
epoch: 0
release: 1
summary: Angular-FileUpload 12.0.4 (XStatic packaging standard)
url: https://github.com/danialfarid/angular-file-upload
rpm_license: (same as Angular-FileUpload)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-5ed047c1-030f-4408-a125-657eb3e9cfd6
location_href: 00002893-python-XStatic-Angular-FileUpload/python-XStatic-Angular-FileUpload-12.0.4.0-1.src.rpm
checksum_type: sha256
description:
  Angular-FileUpload JavaScript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: 4f8998915a94643e7c9c655f73b20269fe5da21a4b8ccd4212694a30f3842ef1
name: python-XStatic-Angular-FileUpload-help
arch: noarch
version: 12.0.4.0
epoch: 0
release: 1
summary: Development documents and examples for XStatic-Angular-FileUpload
url: https://github.com/danialfarid/angular-file-upload
rpm_license: (same as Angular-FileUpload)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-5ed047c1-030f-4408-a125-657eb3e9cfd6
rpm_sourcerpm: python-XStatic-Angular-FileUpload-12.0.4.0-1.src.rpm
checksum_type: sha256
description:
  Angular-FileUpload JavaScript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.

location_href:
  00002893-python-XStatic-Angular-FileUpload/python-XStatic-Angular-FileUpload-help-12.0.4.0-1.noarch.rpm


pkgId: b3bc3d8f16f96d3f58ea3c8737667bc63c4c1634f85a9d40e11e0b48771b72ab
name: python-XStatic-Angular-FileUpload-help
arch: noarch
version: 12.0.4.0
epoch: 0
release: 1
summary: Development documents and examples for XStatic-Angular-FileUpload
url: https://github.com/danialfarid/angular-file-upload
rpm_license: (same as Angular-FileUpload)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-bee394e2-8d61-402b-ab6c-12defcfa3a02
rpm_sourcerpm: python-XStatic-Angular-FileUpload-12.0.4.0-1.src.rpm
checksum_type: sha256
description:
[cell repeats an earlier one in this file: 435 characters]

location_href:
  00006273-python-XStatic-Angular-FileUpload/python-XStatic-Angular-FileUpload-help-12.0.4.0-1.noarch.rpm


pkgId: 2f4b1eea40bd7652acb71c090663796b4082961aab5616e6bd69e5ed1d338892
name: python-XStatic-Angular-Gettext
arch: src
version: 2.4.1.0
epoch: 0
release: 1
summary: Angular-Gettext 2.4.1 (XStatic packaging standard)
url: https://angular-gettext.rocketeer.be/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0f50b534-68bc-4f35-bfa0-2fbaf075536c
location_href: 00002894-python-XStatic-Angular-Gettext/python-XStatic-Angular-Gettext-2.4.1.0-1.src.rpm
checksum_type: sha256
description:
  Angular-Gettext javascript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: 5d1b3562fcdea722a09e71fb6fda55914243c62b6bc3c11896259d9b29ec2fd5
name: python-XStatic-Angular-Mock
arch: src
version: 1.2.1.1
epoch: 0
release: 1
summary: Angular-Mock 1.2.1 (XStatic packaging standard)
url: http://angularjs.org/
rpm_license: (same as Angular-Mock)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-5a261673-30cf-4d8f-8705-dcf7ae606de3
location_href: 00002895-python-XStatic-Angular-Mock/python-XStatic-Angular-Mock-1.2.1.1-1.src.rpm
checksum_type: sha256
description:
  Angular-Mock JavaScript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: 5a7abce811b549b56fbdd392f112bbaf3dd1d643cc61257bf6f1ba579a4c1a07
name: python-XStatic-Angular-lrdragndrop
arch: src
version: 1.0.2.4
epoch: 0
release: 1
summary: Angular-lrdragndrop 1.0.2 (XStatic packaging standard)
url: https://github.com/lorenzofox3/lrDragNDrop
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-da0593a0-8a31-4acb-8842-0562c8965796
location_href: 00002898-python-XStatic-Angular-lrdragndrop/python-XStatic-Angular-lrdragndrop-1.0.2.4-1.src.rpm
checksum_type: sha256
description:
  lrDragNDrop javascript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package
  `XStatic`.


pkgId: 96a55a854d91389d581130e23cc905361a95f932bab81311a3f20f7bb79818bc
name: python-XStatic-Angular-lrdragndrop-help
arch: noarch
version: 1.0.2.4
epoch: 0
release: 1
summary: Development documents and examples for XStatic-Angular-lrdragndrop
url: https://github.com/lorenzofox3/lrDragNDrop
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-da0593a0-8a31-4acb-8842-0562c8965796
rpm_sourcerpm: python-XStatic-Angular-lrdragndrop-1.0.2.4-1.src.rpm
checksum_type: sha256
description:
  lrDragNDrop javascript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package
  `XStatic`.

location_href:
  00002898-python-XStatic-Angular-lrdragndrop/python-XStatic-Angular-lrdragndrop-help-1.0.2.4-1.noarch.rpm


pkgId: 98a2909de4041aadf338f7602a076e6f39d70fd7e44b9c0589c3266a971aa7b8
name: python-XStatic-Angular-lrdragndrop-help
arch: noarch
version: 1.0.2.4
epoch: 0
release: 1
summary: Development documents and examples for XStatic-Angular-lrdragndrop
url: https://github.com/lorenzofox3/lrDragNDrop
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-52465247-0ed9-4ccf-a5ba-ff082132a91d
rpm_sourcerpm: python-XStatic-Angular-lrdragndrop-1.0.2.4-1.src.rpm
checksum_type: sha256
description:
[cell repeats an earlier one in this file: 428 characters]

location_href:
  00006278-python-XStatic-Angular-lrdragndrop/python-XStatic-Angular-lrdragndrop-help-1.0.2.4-1.noarch.rpm


pkgId: 8e208def479e2636c0ed61819d78a127df5fb7c5b3ed7cd9f28cb08c9ced720a
name: python-XStatic-Bootstrap-Datepicker
arch: src
version: 1.4.0.0
epoch: 0
release: 1
summary: Bootstrap-Datepicker 1.4.0 (XStatic packaging standard)
url: https://github.com/eternicode/bootstrap-datepicker/
rpm_license: (same as Bootstrap-Datepicker)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-059ef6c5-4ea4-4de7-8a8b-32c3a08d1f5b
location_href: 00002899-python-XStatic-Bootstrap-Datepicker/python-XStatic-Bootstrap-Datepicker-1.4.0.0-1.src.rpm
checksum_type: sha256
description:
  Bootstrap-Datepicker JavaScript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: 44f2a3fea4eaa1d0e2ce269d14a0e5af62eaa8136862e601e8a5ebe6ba29214f
name: python-XStatic-Bootstrap-Datepicker-help
arch: noarch
version: 1.4.0.0
epoch: 0
release: 1
summary: Development documents and examples for XStatic-Bootstrap-Datepicker
url: https://github.com/eternicode/bootstrap-datepicker/
rpm_license: (same as Bootstrap-Datepicker)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-059ef6c5-4ea4-4de7-8a8b-32c3a08d1f5b
rpm_sourcerpm: python-XStatic-Bootstrap-Datepicker-1.4.0.0-1.src.rpm
checksum_type: sha256
description:
  Bootstrap-Datepicker JavaScript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.

location_href:
  00002899-python-XStatic-Bootstrap-Datepicker/python-XStatic-Bootstrap-Datepicker-help-1.4.0.0-1.noarch.rpm


pkgId: 96e24eb35e34dd395883243883ed3fad8a517de4f480cb9d9c332fc34649baed
name: python-XStatic-Bootstrap-Datepicker-help
arch: noarch
version: 1.4.0.0
epoch: 0
release: 1
summary: Development documents and examples for XStatic-Bootstrap-Datepicker
url: https://github.com/eternicode/bootstrap-datepicker/
rpm_license: (same as Bootstrap-Datepicker)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-9808528f-a825-4823-8d61-ae60779aa7cb
rpm_sourcerpm: python-XStatic-Bootstrap-Datepicker-1.4.0.0-1.src.rpm
checksum_type: sha256
description:
[cell repeats an earlier one in this file: 437 characters]

location_href:
  00006279-python-XStatic-Bootstrap-Datepicker/python-XStatic-Bootstrap-Datepicker-help-1.4.0.0-1.noarch.rpm


pkgId: 59f312d7bb9c85fb13562327fd80861991e59441b438754b8c34e3c72ccb58a1
name: python-XStatic-Bootstrap-SCSS
arch: src
version: 3.4.1.0
epoch: 0
release: 1
summary: Bootstrap-SCSS 3.4.1 (XStatic packaging standard)
url: https://github.com/twbs/bootstrap-sass
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-9443a555-495c-4772-a156-4cb953b8a2ca
location_href: 00002900-python-XStatic-Bootstrap-SCSS/python-XStatic-Bootstrap-SCSS-3.4.1.0-1.src.rpm
checksum_type: sha256
description:
  Bootstrap style library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: a7cd27e2db170169031cdf6b70a7916ae8d6afdd3a6c7b7b90c24e32d38a18dd
name: python-XStatic-D3
arch: src
version: 3.5.17.0
epoch: 0
release: 1
summary: D3 3.5.17 (XStatic packaging standard)
url: http://d3js.org/
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-234fc8d8-9223-4e84-991b-c9c3bfd5bf39
location_href: 00002901-python-XStatic-D3/python-XStatic-D3-3.5.17.0-1.src.rpm
checksum_type: sha256
description:
  D3 JavaScript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: 861fa2e0f8cdd9212ef94ef11e38a013c5785eabdcf6cc3a1bd8ccc73d330e47
name: python-XStatic-DataTables
arch: src
version: 1.10.15.1
epoch: 0
release: 1
summary: DataTables 1.10.15 (XStatic packaging standard)
url: http://www.datatables.net
rpm_license: (same as DataTables)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-05c0d63e-3851-4447-ad22-2fe750eb6ae4
location_href: 00002902-python-XStatic-DataTables/python-XStatic-DataTables-1.10.15.1-1.src.rpm
checksum_type: sha256
description:
  The DataTables plugin for jQuery packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: af4a510ee0de9fb9061198c9a156b7a92e9ddbf2459904a575215a2cbf9a989b
name: python-XStatic-Font-Awesome
arch: src
version: 6.2.1.1
epoch: 0
release: 1
summary: Font-Awesome 6.2.1 (XStatic packaging standard)
url: https://github.com/FortAwesome/Font-Awesome
rpm_license: (same as Font-Awesome)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-27683492-548e-4869-9db7-48ab23f6e90f
location_href: 00002904-python-XStatic-Font-Awesome/python-XStatic-Font-Awesome-6.2.1.1-1.src.rpm
checksum_type: sha256
description:
  Font Awesome packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: c2edbff0a4795f1fdcd8eb5769964421f637add934162e604c33afa8ff2974de
name: python-XStatic-Hogan
arch: src
version: 2.0.0.3
epoch: 0
release: 1
summary: Hogan 2.0.0 (XStatic packaging standard)
url: http://twitter.github.io/hogan.js/
rpm_license: (same as Hogan)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-baa9b7e6-5908-4614-bcb4-61db73f363ce
location_href: 00002905-python-XStatic-Hogan/python-XStatic-Hogan-2.0.0.3-1.src.rpm
checksum_type: sha256
description:
  Hogan JavaScript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: 6af301ed84c4f91c534d17d8fddf0f63eeb60edc504e62c7f376ebecd83a31e3
name: python-XStatic-JQuery-Migrate
arch: src
version: 3.3.2.1
epoch: 0
release: 1
summary: JQuery-Migrate 3.3.2 (XStatic packaging standard)
url: https://github.com/jquery/jquery-migrate
rpm_license: (same as JQuery-Migrate)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-96217709-c450-4bf2-9502-ad8e492e348a
location_href: 00002906-python-XStatic-JQuery-Migrate/python-XStatic-JQuery-Migrate-3.3.2.1-1.src.rpm
checksum_type: sha256
description:
  JQuery-Migrate JavaScript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: ffec609bc239bac3b851a27f68f8aeaa8e3648ea6d2cec171410fd569c65ca99
name: python-XStatic-JQuery.TableSorter
arch: src
version: 2.14.5.2
epoch: 0
release: 1
summary: JQuery.TableSorter 2.14.5 (XStatic packaging standard)
url: https://github.com/Mottie/tablesorter
rpm_license: (same as JQuery.TableSorter)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-aa6e2d29-021d-454e-b1eb-175a0fd1c42b
location_href: 00002907-python-XStatic-JQuery-TableSorter/python-XStatic-JQuery.TableSorter-2.14.5.2-1.src.rpm
checksum_type: sha256
description:
  JQuery.TableSorter JavaScript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: 4f13c46449b7897e8261b103897f7ad8d034ee6f7b6dba17fba245ed2e1981c3
name: python-XStatic-JQuery.TableSorter-help
arch: noarch
version: 2.14.5.2
epoch: 0
release: 1
summary: Development documents and examples for XStatic-JQuery.TableSorter
url: https://github.com/Mottie/tablesorter
rpm_license: (same as JQuery.TableSorter)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-aa6e2d29-021d-454e-b1eb-175a0fd1c42b
rpm_sourcerpm: python-XStatic-JQuery.TableSorter-2.14.5.2-1.src.rpm
checksum_type: sha256
description:
  JQuery.TableSorter JavaScript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.

location_href:
  00002907-python-XStatic-JQuery-TableSorter/python-XStatic-JQuery.TableSorter-help-2.14.5.2-1.noarch.rpm


pkgId: 7097f31ef713533b6edc4b9e80d7c214fdda5175710628c452feb18ca2ce938e
name: python-XStatic-JQuery.TableSorter-help
arch: noarch
version: 2.14.5.2
epoch: 0
release: 1
summary: Development documents and examples for XStatic-JQuery.TableSorter
url: https://github.com/Mottie/tablesorter
rpm_license: (same as JQuery.TableSorter)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-2874e3a5-ba10-4331-a9da-03f031490bf9
rpm_sourcerpm: python-XStatic-JQuery.TableSorter-2.14.5.2-1.src.rpm
checksum_type: sha256
description:
[cell repeats an earlier one in this file: 435 characters]

location_href:
  00006287-python-XStatic-JQuery-TableSorter/python-XStatic-JQuery.TableSorter-help-2.14.5.2-1.noarch.rpm


pkgId: a9d534d086c53884bc419df07de28b1c3c005796ffc07fc0dd5705586c63bd96
name: python-XStatic-JQuery.quicksearch
arch: src
version: 2.0.3.2
epoch: 0
release: 1
summary: JQuery.quicksearch 2.0.3 (XStatic packaging standard)
url: http://plugins.jquery.com/jquery.quicksearch/
rpm_license: (same as JQuery.quicksearch)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-3c0c4690-ec45-491c-adf9-1efde453ee50
location_href: 00002908-python-XStatic-JQuery-quicksearch/python-XStatic-JQuery.quicksearch-2.0.3.2-1.src.rpm
checksum_type: sha256
description:
  JQuery.quicksearch JavaScript library packaged for setuptools (easy_install)
  / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: 973b3ecc0f19eb730278ff3e21839b74086ace2829eec262a5c91d24a9f0dcf9
name: python-XStatic-JQuery.quicksearch-help
arch: noarch
version: 2.0.3.2
epoch: 0
release: 1
summary: Development documents and examples for XStatic-JQuery.quicksearch
url: http://plugins.jquery.com/jquery.quicksearch/
rpm_license: (same as JQuery.quicksearch)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-3c0c4690-ec45-491c-adf9-1efde453ee50
rpm_sourcerpm: python-XStatic-JQuery.quicksearch-2.0.3.2-1.src.rpm
checksum_type: sha256
description:
  JQuery.quicksearch JavaScript library packaged for setuptools (easy_install)
  / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.

location_href:
  00002908-python-XStatic-JQuery-quicksearch/python-XStatic-JQuery.quicksearch-help-2.0.3.2-1.noarch.rpm


pkgId: e9efea3355e91f0d9f0d57a14cb5a22f81207eca468c5c95f21826e2ca2d296d
name: python-XStatic-JQuery.quicksearch-help
arch: noarch
version: 2.0.3.2
epoch: 0
release: 1
summary: Development documents and examples for XStatic-JQuery.quicksearch
url: http://plugins.jquery.com/jquery.quicksearch/
rpm_license: (same as JQuery.quicksearch)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-c29dc833-253c-4b3a-8e61-ba2cd393afb7
rpm_sourcerpm: python-XStatic-JQuery.quicksearch-2.0.3.2-1.src.rpm
checksum_type: sha256
description:
[cell repeats an earlier one in this file: 435 characters]

location_href:
  00006288-python-XStatic-JQuery-quicksearch/python-XStatic-JQuery.quicksearch-help-2.0.3.2-1.noarch.rpm


pkgId: 1eba3ef5d27392aed781b271ceb9b91426860defc3a23623c5b824981e1fd45e
name: python-XStatic-JSEncrypt
arch: src
version: 2.3.1.1
epoch: 0
release: 1
summary: JSEncrypt 2.3.1 (XStatic packaging standard)
url: http://travistidwell.com/jsencrypt/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-c835674b-6d92-4206-b4a0-cb2e07eddc48
location_href: 00002910-python-XStatic-JSEncrypt/python-XStatic-JSEncrypt-2.3.1.1-1.src.rpm
checksum_type: sha256
description:
  JSEncrypt JavaScript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: 5d7fd53730c50daf747a6aae085bcb18778dcab7a7378f3b595ec520ef0bb4fc
name: python-XStatic-Jasmine
arch: src
version: 2.4.1.2
epoch: 0
release: 1
summary: Jasmine 2.4.1 (XStatic packaging standard)
url: http://jasmine.github.io/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-4405c66a-1a19-4d61-9373-9e059512cd9d
location_href: 00002911-python-XStatic-Jasmine/python-XStatic-Jasmine-2.4.1.2-1.src.rpm
checksum_type: sha256
description:
  Jasmine JavaScript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: 833e0892c00443564409e87b8891188c62749937bbf5c7ae3f81793fdb7b6722
name: python-XStatic-Magic-Search
arch: src
version: 0.2.5.2
epoch: 0
release: 1
summary: Magic-Search 0.2.5 (XStatic packaging standard)
url: https://github.com/eucalyptus/magic-search
rpm_license: (same as Magic-Search)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a88807c9-1bc2-4257-bf38-51142a111726
location_href: 00002913-python-XStatic-Magic-Search/python-XStatic-Magic-Search-0.2.5.2-1.src.rpm
checksum_type: sha256
description:
  MagicSearch is an AngularJS directive that provides a UI for both faceted
  filtering and as-you-type filtering. It is intended for filtering tables,
  such as an AngularJS smart-table, but it can be used in any situation
  where you can provide it with facets/options and consume its events.
  MagicSearch was initially developed by David Kavanagh for Eucalyptus.
  MagicSearch javascript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: 08472b6098e6c84a77e9c9d82381e12c7c77b6cc4a2975662a7a04982dc1547f
name: python-XStatic-Patternfly
arch: src
version: 3.21.0.1
epoch: 0
release: 1
summary: Patternfly 3.21.0 (XStatic packaging standard)
url: https://www.patternfly.org/
rpm_license: Apache v2
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-7f52b1d5-f968-4bd3-bb82-2e5d03220c72
location_href: 00002914-python-XStatic-Patternfly/python-XStatic-Patternfly-3.21.0.1-1.src.rpm
checksum_type: sha256
description:
  Patternfly style library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: e169f35941750757dd8eae5823cc32745e01b6c14d606a5200ffa7474a7821eb
name: python-XStatic-Patternfly-Bootstrap-Treeview
arch: src
version: 2.1.3.2
epoch: 0
release: 1
summary: Patternfly-Bootstrap-Treeview 2.1.3 (XStatic packaging standard)
url: https://www.patternfly.org/
rpm_license: Apache v2
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-774a4195-1db7-4834-b691-b0527893450d
checksum_type: sha256
description:
  Patternfly Bootstrap Treeview library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.

location_href:
  00002915-python-XStatic-Patternfly-Bootstrap-Treeview/python-XStatic-Patternfly-Bootstrap-Treeview-2.1.3.2-1.src.rpm


pkgId: 56ba4b4e358f8a75210d73a31163e1ac679f29bb09f9644c13b8b846a74094fb
name: python-XStatic-Patternfly-Bootstrap-Treeview
arch: src
version: 2.1.3.2
epoch: 0
release: 1
summary: Patternfly-Bootstrap-Treeview 2.1.3 (XStatic packaging standard)
url: https://www.patternfly.org/
rpm_license: Apache v2
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-8d6bee8c-4f9f-4b6e-9775-f46a51a08fd0
checksum_type: sha256
description:
  Patternfly Bootstrap Treeview library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.

location_href:
  00006295-python-XStatic-Patternfly-Bootstrap-Treeview/python-XStatic-Patternfly-Bootstrap-Treeview-2.1.3.2-1.src.rpm


pkgId: 4afcfe54891d50f731c6bde4c7216b86c5370e198251168debfce3fc1f949eb5
name: python-XStatic-Patternfly-Bootstrap-Treeview-help
arch: noarch
version: 2.1.3.2
epoch: 0
release: 1
summary: Development documents and examples for XStatic-Patternfly-Bootstrap-Treeview
url: https://www.patternfly.org/
rpm_license: Apache v2
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-774a4195-1db7-4834-b691-b0527893450d
rpm_sourcerpm: python-XStatic-Patternfly-Bootstrap-Treeview-2.1.3.2-1.src.rpm
checksum_type: sha256
description:
  Patternfly Bootstrap Treeview library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.

location_href:
  00002915-python-XStatic-Patternfly-Bootstrap-Treeview/python-XStatic-Patternfly-Bootstrap-Treeview-help-2.1.3.2-1.noarch.rpm


pkgId: deca5671e61f7236d9104917702a1edebb79b69152b9b2227c4e9c6a9d3b9f78
name: python-XStatic-Patternfly-Bootstrap-Treeview-help
arch: noarch
version: 2.1.3.2
epoch: 0
release: 1
summary: Development documents and examples for XStatic-Patternfly-Bootstrap-Treeview
url: https://www.patternfly.org/
rpm_license: Apache v2
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-8d6bee8c-4f9f-4b6e-9775-f46a51a08fd0
rpm_sourcerpm: python-XStatic-Patternfly-Bootstrap-Treeview-2.1.3.2-1.src.rpm
checksum_type: sha256
description:
[cell repeats an earlier one in this file: 435 characters]

location_href:
  00006295-python-XStatic-Patternfly-Bootstrap-Treeview/python-XStatic-Patternfly-Bootstrap-Treeview-help-2.1.3.2-1.noarch.rpm


pkgId: c95b769fc5a0f849b0cadcb7522b09cc6e89d13a9a64ac7059cc121592b09896
name: python-XStatic-QUnit
arch: src
version: 1.14.0.2
epoch: 0
release: 1
summary: QUnit 1.14.0 (XStatic packaging standard)
url: http://qunitjs.com
rpm_license: (same as QUnit)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-c84f95ed-0c93-43a1-a750-eb44e5f353e5
location_href: 00002916-python-XStatic-QUnit/python-XStatic-QUnit-1.14.0.2-1.src.rpm
checksum_type: sha256
description:
  QUnit JavaScript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: f75b197e72294d04ed19f3292975f508db11264309c27a1104329cbe718a5372
name: python-XStatic-Rickshaw
arch: src
version: 1.5.1.0
epoch: 0
release: 1
summary: Rickshaw 1.5.1 (XStatic packaging standard)
url: http://code.shutterstock.com/rickshaw/
rpm_license: (same as Rickshaw)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-aa9d0fa2-381e-4803-9937-c5f35de3bced
location_href: 00002917-python-XStatic-Rickshaw/python-XStatic-Rickshaw-1.5.1.0-1.src.rpm
checksum_type: sha256
description:
  Rickshaw JavaScript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: e1b6a2e410d24c1dfe5e187db99ae05f5586688823d16903869d8557b12c94db
name: python-XStatic-Spin
arch: src
version: 1.2.5.3
epoch: 0
release: 1
summary: Spin 1.2.5 (XStatic packaging standard)
url: http://fgnass.github.io/spin.js/
rpm_license: (same as Spin)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d6aa8a9c-28de-4f17-963a-1ff1f0fc1bda
location_href: 00002918-python-XStatic-Spin/python-XStatic-Spin-1.2.5.3-1.src.rpm
checksum_type: sha256
description:
  Spin JavaScript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: 230b8cb04734f7992b5d6a0119670e0379196942c07a9b87a03d1ae473104ecc
name: python-XStatic-bootswatch
arch: src
version: 3.3.7.0
epoch: 0
release: 1
summary: bootswatch 3.3.7 (XStatic packaging standard)
url: http://bootswatch.com
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-c9d7d2fb-479d-4328-bcab-0dbca349939b
location_href: 00002919-python-XStatic-bootswatch/python-XStatic-bootswatch-3.3.7.0-1.src.rpm
checksum_type: sha256
description:
  bootswatch javascript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package
  `XStatic`.


pkgId: b394572111b6eebee0dfc80272b795cd4a54c1f99e22b6313458daebcd0df1ef
name: python-XStatic-jquery-ui
arch: src
version: 1.13.0.1
epoch: 0
release: 1
summary: jquery-ui 1.13.0 (XStatic packaging standard)
url: http://jqueryui.com/
rpm_license: (same as jquery-ui)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-33512cb3-c19c-478d-9bc7-9a67edcbf381
location_href: 00002920-python-XStatic-jquery-ui/python-XStatic-jquery-ui-1.13.0.1-1.src.rpm
checksum_type: sha256
description:
  jquery-ui javascript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package `XStatic`.


pkgId: 19a98d92ab999e1acfa8a8dcc80f6b05a5ba622ccba5498057206ef8224ed13c
name: python-XStatic-mdi
arch: src
version: 1.6.50.2
epoch: 0
release: 1
summary: mdi 1.6.50 (XStatic packaging standard)
url: http://materialdesignicons.com
rpm_license: SIL OFL 1.1
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-bab9d130-339a-48ef-b0fe-c8bc8025d3e6
location_href: 00002921-python-XStatic-mdi/python-XStatic-mdi-1.6.50.2-1.src.rpm
checksum_type: sha256
description:
  mdi javascript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package
  `XStatic`.


pkgId: a4822dafc309efb1f09165155f01329db206fd6f80ea189ae7a60256bbb56e5d
name: python-XStatic-roboto-fontface
arch: src
version: 0.5.0.0
epoch: 0
release: 1
summary: roboto-fontface 0.5.0 (XStatic packaging standard)
url: https://github.com/choffmeister/roboto-fontface-bower
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-b5acf963-8f18-408c-9878-bd6dfd8719ad
location_href: 00002922-python-XStatic-roboto-fontface/python-XStatic-roboto-fontface-0.5.0.0-1.src.rpm
checksum_type: sha256
description:
  roboto-fontface javascript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package
  `XStatic`.


pkgId: 33424b0aa1dee0e2fad83ad34289a4d783b882102168c2b199c456850a85d5ab
name: python-XStatic-smart-table
arch: src
version: 1.4.13.2
epoch: 0
release: 1
summary: smart-table 1.4.13 (XStatic packaging standard)
url: https://github.com/lorenzofox3/Smart-Table
rpm_license: (same as smart-table)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-94a719b6-916d-4905-932f-4bd6d0460c70
location_href: 00002923-python-XStatic-smart-table/python-XStatic-smart-table-1.4.13.2-1.src.rpm
checksum_type: sha256
description:
  smart-table javascript library packaged for setuptools (easy_install) / pip.
  This package is intended to be used by **any** project that needs these files.
  It intentionally does **not** provide any extra code except some metadata
  **nor** has any extra requirements. You MAY use some minimal support code from
  the XStatic base package, if you like.
  You can find more info about the xstatic packaging way in the package
  `XStatic`.


pkgId: a73c92c176f65a9824e23ed29c4a7344ab4a4106173217a03f56c13ab40482c1
name: python-XlsxWriter
arch: src
version: 3.0.8
epoch: 0
release: 1
summary: A Python module for creating Excel XLSX files.
url: https://github.com/jmcnamara/XlsxWriter
rpm_license: BSD-2-Clause
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a5a7a9ff-eaf6-404e-b635-353c37da0bde
location_href: 00005505-python-xlsxwriter/python-XlsxWriter-3.0.8-1.src.rpm
checksum_type: sha256
description:
  **XlsxWriter** is a Python module for writing files in the Excel 2007+ XLSX
  file format.
  XlsxWriter can be used to write text, numbers, formulas and hyperlinks to
  multiple worksheets and it supports features such as formatting and many more,
  including:
  * 100% compatible Excel XLSX files.
  * Full formatting.
  * Merged cells.
  * Defined names.
  * Charts.
  * Autofilters.
  * Data validation and drop down lists.
  * Conditional formatting.
  * Worksheet PNG/JPEG/GIF/BMP/WMF/EMF images.
  * Rich multi-format strings.
  * Cell comments.
  * Integration with Pandas.
  * Textboxes.
  * Support for adding Macros.
  * Memory optimization mode for writing large files.
  It supports Python 3.4+ and PyPy3 and uses standard libraries only.
  Here is a simple example:
     import xlsxwriter
     
     workbook = xlsxwriter.Workbook('demo.xlsx')
     worksheet = workbook.add_worksheet()
     
     worksheet.set_column('A:A', 20)
     
     bold = workbook.add_format({'bold': True})
     
     worksheet.write('A1', 'Hello')
     
     worksheet.write('A2', 'World', bold)
     
     worksheet.write(2, 0, 123)
     worksheet.write(3, 0, 123.456)
     
     worksheet.insert_image('B5', 'logo.png')
     workbook.close()
  See the full documentation at: https://xlsxwriter.readthedocs.io
  Release notes: https://xlsxwriter.readthedocs.io/changes.html


pkgId: 338ffe3a4c43a731e96e951e6ec60351a68e88bfbf4761ffdc791708e969dd8f
name: python-XlsxWriter
arch: src
version: 3.0.9
epoch: 0
release: 1
summary: A Python module for creating Excel XLSX files.
url: https://github.com/jmcnamara/XlsxWriter
rpm_license: BSD-2-Clause
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-cbe29f97-7478-42fb-867c-2ecd86ad3af6
location_href: 00008822-python-xlsxwriter/python-XlsxWriter-3.0.9-1.src.rpm
checksum_type: sha256
description:
  **XlsxWriter** is a Python module for writing files in the Excel 2007+ XLSX
  file format.
  XlsxWriter can be used to write text, numbers, formulas and hyperlinks to
  multiple worksheets and it supports features such as formatting and many more,
  including:
  * 100% compatible Excel XLSX files.
  * Full formatting.
  * Merged cells.
  * Defined names.
  * Charts.
  * Autofilters.
  * Data validation and drop down lists.
  * Conditional formatting.
  * Worksheet PNG/JPEG/GIF/BMP/WMF/EMF images.
  * Rich multi-format strings.
  * Cell comments.
  * Integration with Pandas and Polars.
  * Textboxes.
  * Support for adding Macros.
  * Memory optimization mode for writing large files.
  It supports Python 3.4+ and PyPy3 and uses standard libraries only.
  Here is a simple example:
     import xlsxwriter
     
     workbook = xlsxwriter.Workbook('demo.xlsx')
     worksheet = workbook.add_worksheet()
     
     worksheet.set_column('A:A', 20)
     
     bold = workbook.add_format({'bold': True})
     
     worksheet.write('A1', 'Hello')
     
     worksheet.write('A2', 'World', bold)
     
     worksheet.write(2, 0, 123)
     worksheet.write(3, 0, 123.456)
     
     worksheet.insert_image('B5', 'logo.png')
     workbook.close()
  See the full documentation at: https://xlsxwriter.readthedocs.io
  Release notes: https://xlsxwriter.readthedocs.io/changes.html


pkgId: 748bb785f04aff51ff9e605c7fe8fedec9ba6e77b315b0a64546beb51346e0b5
name: python-Yapsy
arch: src
version: 1.12.2
epoch: 0
release: 1
summary: Yet another plugin system
url: http://yapsy.sourceforge.net
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-fa67f62a-f4f1-42cb-a29b-1dfa64697a34
location_href: 00005521-python-yapsy/python-Yapsy-1.12.2-1.src.rpm
checksum_type: sha256
description:
  Yapsy is a small library implementing the core mechanisms needed to
  build a plugin system into a wider application.

  The main purpose is to depend only on Python's standard libraries and
  to implement only the basic functionalities needed to detect, load and
  keep track of several plugins. It supports both Python 2 and 3.

  To use yapsy, make sure that the "yapsy" directory is in your Python
  loading path and just import the needed class from yapsy (e.g. "from
  yapsy.PluginManager import PluginManager").

  To see more examples, you can have a look at the unit tests inside the
  "test" directory or at the "Showcase and tutorials" section of the
  documentation (http://yapsy.sourceforge.net/#showcase-and-tutorials).

  Please let me know if you find this useful.

  Site of the project: http://yapsy.sourceforge.net/

  List of Contributors:
    - Thibauld Nion
    - Rob McMullen
    - Roger Gammans
    - Mathieu Havel
    - Mathieu Clabaut
    - Mark Fickett
    - Agustin Henze
    - qitta
    - Roberto Alsina
    - Josip Delic (delijati)
    - frmdstryr
    - Pierre-Yves Langlois
    - Guillaume Binet (gbin)
    - Blake Oliver (Oliver2213)
    - Xuecheng Zhang (csuzhangxc)
    - Marc Brooks (mbrooks-public)


  Contributions are welcome as pull requests, patches or tickets on the
  forge (https://sourceforge.net/projects/yapsy/) or on github
  (https://github.com/tibonihoo/yapsy).


pkgId: 0a6ba946a43448fa9b7056ec735b97de3f23c55c0826c21bf9f12941f1d6a734
name: python-a-pytube-fork-for-spotdl-users
arch: src
version: 9.6.4
epoch: 0
release: 1
summary: Python 3 library for downloading YouTube Videos.
url: https://github.com/nficano/pytube
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-87e8b7a1-55c8-4811-922a-8bf458a1646e
checksum_type: sha256
description:
  Ping @ronncc if you would like to help out

  <div align="center">
    <p>
    <img src="https://github.com/nficano/pytube/blob/master/images/pytube.png?raw=true" width="350" height="328" alt="pytube logo" />
    </p>
    <p align="center">
  	  <img src="https://img.shields.io/pypi/v/pytube.svg" alt="pypi">
  	  <a href="https://travis-ci.org/nficano/pytube"><img src="https://travis-ci.org/nficano/pytube.svg?branch=master" /></a>
  	  <a href="http://python-pytube.readthedocs.io/en/latest/?badge=latest"><img src="https://readthedocs.org/projects/python-pytube/badge/?version=latest" /></a>
  	  <a href="https://coveralls.io/github/nficano/pytube?branch=master"><img src="https://coveralls.io/repos/github/nficano/pytube/badge.svg?branch=master#23e6f7ac56dd3bde" /></a>
        <a href="https://pypi.org/project/pytube/"><img src="https://img.shields.io/pypi/dm/pytube.svg" alt="pypi"></a>
  	  <a href="https://pypi.python.org/pypi/pytube/"><img src="https://img.shields.io/pypi/pyversions/pytube.svg" /></a>
      <p>
    </p>
  </div>


  *pytube* is a very serious, lightweight, dependency-free Python library (and command-line utility) for downloading YouTube Videos.


  YouTube is the most popular video-sharing platform in the world and as a hacker you may encounter a situation where you want to script something to download videos.  For this I present to you *pytube*.

  *pytube* is a lightweight library written in Python. It has no third party dependencies and aims to be highly reliable.

  *pytube* also makes pipelining easy, allowing you to specify callback functions for different download events, such as  ``on progress`` or ``on complete``.

  Finally *pytube* also includes a command-line utility, allowing you to quickly download videos right from terminal.



  ```python
   >>> YouTube('https://youtu.be/9bZkp7q19f0').streams.first().download()
   >>> yt = YouTube('http://youtube.com/watch?v=9bZkp7q19f0')
   >>> yt.streams
    ... .filter(progressive=True, file_extension='mp4')
    ... .order_by('resolution')
    ... .desc()
    ... .first()
    ... .download()
  ```


  - Support for Both Progressive & DASH Streams
  - Support for downloading complete playlist
  - Easily Register ``on_download_progress`` & ``on_download_complete`` callbacks
  - Command-line Interfaced Included
  - Caption Track Support
  - Outputs Caption Tracks to .srt format (SubRip Subtitle)
  - Ability to Capture Thumbnail URL.
  - Extensively Documented Source Code
  - No Third-Party Dependencies



  Download using pip via pypi.

  ```bash
  $ pip install pytube
  ```



  Let's begin with showing how easy it is to download a video with pytube:

  ```python
  >>> from pytube import YouTube
  >>> YouTube('http://youtube.com/watch?v=9bZkp7q19f0').streams.first().download()
  ```
  This example will download the highest quality progressive download stream available.

  Next, let's explore how we would view what video streams are available:

  ```python
  >>> yt = YouTube('http://youtube.com/watch?v=9bZkp7q19f0')
  >>> yt.streams.all()
   [<Stream: itag="22" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.64001F" acodec="mp4a.40.2">,
   <Stream: itag="43" mime_type="video/webm" res="360p" fps="30fps" vcodec="vp8.0" acodec="vorbis">,
   <Stream: itag="18" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.42001E" acodec="mp4a.40.2">,
   <Stream: itag="36" mime_type="video/3gpp" res="240p" fps="30fps" vcodec="mp4v.20.3" acodec="mp4a.40.2">,
   <Stream: itag="17" mime_type="video/3gpp" res="144p" fps="30fps" vcodec="mp4v.20.3" acodec="mp4a.40.2">,
   <Stream: itag="137" mime_type="video/mp4" res="1080p" fps="30fps" vcodec="avc1.640028">,
   <Stream: itag="248" mime_type="video/webm" res="1080p" fps="30fps" vcodec="vp9">,
   <Stream: itag="136" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.4d401f">,
   <Stream: itag="247" mime_type="video/webm" res="720p" fps="30fps" vcodec="vp9">,
   <Stream: itag="135" mime_type="video/mp4" res="480p" fps="30fps" vcodec="avc1.4d401e">,
   <Stream: itag="244" mime_type="video/webm" res="480p" fps="30fps" vcodec="vp9">,
   <Stream: itag="134" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.4d401e">,
   <Stream: itag="243" mime_type="video/webm" res="360p" fps="30fps" vcodec="vp9">,
   <Stream: itag="133" mime_type="video/mp4" res="240p" fps="30fps" vcodec="avc1.4d4015">,
   <Stream: itag="242" mime_type="video/webm" res="240p" fps="30fps" vcodec="vp9">,
   <Stream: itag="160" mime_type="video/mp4" res="144p" fps="30fps" vcodec="avc1.4d400c">,
   <Stream: itag="278" mime_type="video/webm" res="144p" fps="30fps" vcodec="vp9">,
   <Stream: itag="140" mime_type="audio/mp4" abr="128kbps" acodec="mp4a.40.2">,
   <Stream: itag="171" mime_type="audio/webm" abr="128kbps" acodec="vorbis">,
   <Stream: itag="249" mime_type="audio/webm" abr="50kbps" acodec="opus">,
   <Stream: itag="250" mime_type="audio/webm" abr="70kbps" acodec="opus">,
   <Stream: itag="251" mime_type="audio/webm" abr="160kbps" acodec="opus">]
  ```
  You may notice that some streams listed have both a video codec and audio codec, while others have just video or just audio, this is a result of YouTube supporting a streaming technique called Dynamic Adaptive Streaming over HTTP (DASH).

  In the context of pytube, the implications are for the highest quality streams; you now need to download both the audio and video tracks and then post-process them with software like FFmpeg to merge them.

  The legacy streams that contain the audio and video in a single file (referred to as "progressive download") are still available, but only for resolutions 720p and below.

  To only view these progressive download streams:

  ```python
   >>> yt.streams.filter(progressive=True).all()
    [<Stream: itag="22" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.64001F" acodec="mp4a.40.2">,
    <Stream: itag="43" mime_type="video/webm" res="360p" fps="30fps" vcodec="vp8.0" acodec="vorbis">,
    <Stream: itag="18" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.42001E" acodec="mp4a.40.2">,
    <Stream: itag="36" mime_type="video/3gpp" res="240p" fps="30fps" vcodec="mp4v.20.3" acodec="mp4a.40.2">,
    <Stream: itag="17" mime_type="video/3gpp" res="144p" fps="30fps" vcodec="mp4v.20.3" acodec="mp4a.40.2">]
  ```

  Conversely, if you only want to see the DASH streams (also referred to as "adaptive") you can do:

  ```python
  >>> yt.streams.filter(adaptive=True).all()
   [<Stream: itag="137" mime_type="video/mp4" res="1080p" fps="30fps" vcodec="avc1.640028">,
    <Stream: itag="248" mime_type="video/webm" res="1080p" fps="30fps" vcodec="vp9">,
    <Stream: itag="136" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.4d401f">,
    <Stream: itag="247" mime_type="video/webm" res="720p" fps="30fps" vcodec="vp9">,
    <Stream: itag="135" mime_type="video/mp4" res="480p" fps="30fps" vcodec="avc1.4d401e">,
    <Stream: itag="244" mime_type="video/webm" res="480p" fps="30fps" vcodec="vp9">,
    <Stream: itag="134" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.4d401e">,
    <Stream: itag="243" mime_type="video/webm" res="360p" fps="30fps" vcodec="vp9">,
    <Stream: itag="133" mime_type="video/mp4" res="240p" fps="30fps" vcodec="avc1.4d4015">,
    <Stream: itag="242" mime_type="video/webm" res="240p" fps="30fps" vcodec="vp9">,
    <Stream: itag="160" mime_type="video/mp4" res="144p" fps="30fps" vcodec="avc1.4d400c">,
    <Stream: itag="278" mime_type="video/webm" res="144p" fps="30fps" vcodec="vp9">,
    <Stream: itag="140" mime_type="audio/mp4" abr="128kbps" acodec="mp4a.40.2">,
    <Stream: itag="171" mime_type="audio/webm" abr="128kbps" acodec="vorbis">,
    <Stream: itag="249" mime_type="audio/webm" abr="50kbps" acodec="opus">,
    <Stream: itag="250" mime_type="audio/webm" abr="70kbps" acodec="opus">,
    <Stream: itag="251" mime_type="audio/webm" abr="160kbps" acodec="opus">]
  ```

  You can also download a complete Youtube playlist:

  ```python
  >>> from pytube import Playlist
  >>> pl = Playlist("https://www.youtube.com/watch?v=Edpy1szoG80&list=PL153hDY-y1E00uQtCVCVC8xJ25TYX8yPU")
  >>> pl.download_all()
  >>> # or if you want to download in a specific directory
  >>> pl.download_all('/path/to/directory/')
  ```
  This will download the highest progressive stream available (generally 720p) from the given playlist. Later more options would be given for user's flexibility
  to choose video resolution.

  Pytube allows you to filter on every property available (see the documentation for the complete list), let's take a look at some of the most useful ones.

  To list the audio only streams:

  ```python
  >>> yt.streams.filter(only_audio=True).all()
    [<Stream: itag="140" mime_type="audio/mp4" abr="128kbps" acodec="mp4a.40.2">,
    <Stream: itag="171" mime_type="audio/webm" abr="128kbps" acodec="vorbis">,
    <Stream: itag="249" mime_type="audio/webm" abr="50kbps" acodec="opus">,
    <Stream: itag="250" mime_type="audio/webm" abr="70kbps" acodec="opus">,
    <Stream: itag="251" mime_type="audio/webm" abr="160kbps" acodec="opus">]
  ```

  To list only ``mp4`` streams:

  ```python
  >>> yt.streams.filter(subtype='mp4').all()
   [<Stream: itag="22" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.64001F" acodec="mp4a.40.2">,
    <Stream: itag="18" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.42001E" acodec="mp4a.40.2">,
    <Stream: itag="137" mime_type="video/mp4" res="1080p" fps="30fps" vcodec="avc1.640028">,
    <Stream: itag="136" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.4d401f">,
    <Stream: itag="135" mime_type="video/mp4" res="480p" fps="30fps" vcodec="avc1.4d401e">,
    <Stream: itag="134" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.4d401e">,
    <Stream: itag="133" mime_type="video/mp4" res="240p" fps="30fps" vcodec="avc1.4d4015">,
    <Stream: itag="160" mime_type="video/mp4" res="144p" fps="30fps" vcodec="avc1.4d400c">,
    <Stream: itag="140" mime_type="audio/mp4" abr="128kbps" acodec="mp4a.40.2">]
  ```

  Multiple filters can also be specified:

  ```python
  >>> yt.streams.filter(subtype='mp4', progressive=True).all()
  >>> # this can also be expressed as:
  >>> yt.streams.filter(subtype='mp4').filter(progressive=True).all()
    [<Stream: itag="22" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.64001F" acodec="mp4a.40.2">,
    <Stream: itag="18" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.42001E" acodec="mp4a.40.2">]
  ```
  You also have an interface to select streams by their itag, without needing to filter:

  ```python
  >>> yt.streams.get_by_itag(22)
    <Stream: itag="22" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.64001F" acodec="mp4a.40.2">
  ```

  If you need to optimize for a specific feature, such as the "highest resolution" or "lowest average bitrate":

  ```python
  >>> yt.streams.filter(progressive=True).order_by('resolution').desc().all()
  ```
  Note that ``order_by`` cannot be used if your attribute is undefined in any of the Stream instances, so be sure to apply a filter to remove those before calling it.

  If your application requires post-processing logic, pytube allows you to specify an "on download complete" callback function:

  ```python
   >>> def convert_to_aac(stream, file_handle):
           return  # do work

   >>> yt.register_on_complete_callback(convert_to_aac)
  ```

  Similarly, if your application requires on-download progress logic, pytube exposes a callback for this as well:

  ```python
   >>> def show_progress_bar(stream, chunk, file_handle, bytes_remaining):
           return  # do work

   >>> yt.register_on_progress_callback(show_progress_bar)
  ```



  pytube also ships with a tiny cli interface for downloading and probing videos.

  Let's start with downloading:

  ```bash
  $ pytube http://youtube.com/watch?v=9bZkp7q19f0 --itag=22
  ```
  To view available streams:

  ```bash
  $ pytube http://youtube.com/watch?v=9bZkp7q19f0 --list
  ```

  Finally, if you're filing a bug report, the cli contains a switch called ``--build-playback-report``, which bundles up the state, allowing others to easily replay your issue.

location_href:
  00011372-python-a-pytube-fork-for-spotdl-users/python-a-pytube-fork-for-spotdl-users-9.6.4-1.src.rpm


pkgId: 041f9f255b376faf5847bf8dbb2aa30204b6e0f745b5448d2225b1c07d5ad173
name: python-a-pytube-fork-for-spotdl-users-help
arch: noarch
version: 9.6.4
epoch: 0
release: 1
summary: Development documents and examples for a-pytube-fork-for-spotdl-users
url: https://github.com/nficano/pytube
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-87e8b7a1-55c8-4811-922a-8bf458a1646e
rpm_sourcerpm: python-a-pytube-fork-for-spotdl-users-9.6.4-1.src.rpm
checksum_type: sha256
description:
  Ping @ronncc if you would like to help out

  <div align="center">
    <p>
    <img src="https://github.com/nficano/pytube/blob/master/images/pytube.png?raw=true" width="350" height="328" alt="pytube logo" />
    </p>
    <p align="center">
  	  <img src="https://img.shields.io/pypi/v/pytube.svg" alt="pypi">
  	  <a href="https://travis-ci.org/nficano/pytube"><img src="https://travis-ci.org/nficano/pytube.svg?branch=master" /></a>
  	  <a href="http://python-pytube.readthedocs.io/en/latest/?badge=latest"><img src="https://readthedocs.org/projects/python-pytube/badge/?version=latest" /></a>
  	  <a href="https://coveralls.io/github/nficano/pytube?branch=master"><img src="https://coveralls.io/repos/github/nficano/pytube/badge.svg?branch=master#23e6f7ac56dd3bde" /></a>
        <a href="https://pypi.org/project/pytube/"><img src="https://img.shields.io/pypi/dm/pytube.svg" alt="pypi"></a>
  	  <a href="https://pypi.python.org/pypi/pytube/"><img src="https://img.shields.io/pypi/pyversions/pytube.svg" /></a>
      <p>
    </p>
  </div>


  *pytube* is a very serious, lightweight, dependency-free Python library (and command-line utility) for downloading YouTube Videos.


  YouTube is the most popular video-sharing platform in the world and as a hacker you may encounter a situation where you want to script something to download videos.  For this I present to you *pytube*.

  *pytube* is a lightweight library written in Python. It has no third party dependencies and aims to be highly reliable.

  *pytube* also makes pipelining easy, allowing you to specify callback functions for different download events, such as  ``on progress`` or ``on complete``.

  Finally *pytube* also includes a command-line utility, allowing you to quickly download videos right from terminal.



  ```python
   >>> YouTube('https://youtu.be/9bZkp7q19f0').streams.first().download()
   >>> yt = YouTube('http://youtube.com/watch?v=9bZkp7q19f0')
   >>> yt.streams
    ... .filter(progressive=True, file_extension='mp4')
    ... .order_by('resolution')
    ... .desc()
    ... .first()
    ... .download()
  ```


  - Support for Both Progressive & DASH Streams
  - Support for downloading complete playlist
  - Easily Register ``on_download_progress`` & ``on_download_complete`` callbacks
  - Command-line Interfaced Included
  - Caption Track Support
  - Outputs Caption Tracks to .srt format (SubRip Subtitle)
  - Ability to Capture Thumbnail URL.
  - Extensively Documented Source Code
  - No Third-Party Dependencies



  Download using pip via pypi.

  ```bash
  $ pip install pytube
  ```



  Let's begin with showing how easy it is to download a video with pytube:

  ```python
  >>> from pytube import YouTube
  >>> YouTube('http://youtube.com/watch?v=9bZkp7q19f0').streams.first().download()
  ```
  This example will download the highest quality progressive download stream available.

  Next, let's explore how we would view what video streams are available:

  ```python
  >>> yt = YouTube('http://youtube.com/watch?v=9bZkp7q19f0')
  >>> yt.streams.all()
   [<Stream: itag="22" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.64001F" acodec="mp4a.40.2">,
   <Stream: itag="43" mime_type="video/webm" res="360p" fps="30fps" vcodec="vp8.0" acodec="vorbis">,
   <Stream: itag="18" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.42001E" acodec="mp4a.40.2">,
   <Stream: itag="36" mime_type="video/3gpp" res="240p" fps="30fps" vcodec="mp4v.20.3" acodec="mp4a.40.2">,
   <Stream: itag="17" mime_type="video/3gpp" res="144p" fps="30fps" vcodec="mp4v.20.3" acodec="mp4a.40.2">,
   <Stream: itag="137" mime_type="video/mp4" res="1080p" fps="30fps" vcodec="avc1.640028">,
   <Stream: itag="248" mime_type="video/webm" res="1080p" fps="30fps" vcodec="vp9">,
   <Stream: itag="136" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.4d401f">,
   <Stream: itag="247" mime_type="video/webm" res="720p" fps="30fps" vcodec="vp9">,
   <Stream: itag="135" mime_type="video/mp4" res="480p" fps="30fps" vcodec="avc1.4d401e">,
   <Stream: itag="244" mime_type="video/webm" res="480p" fps="30fps" vcodec="vp9">,
   <Stream: itag="134" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.4d401e">,
   <Stream: itag="243" mime_type="video/webm" res="360p" fps="30fps" vcodec="vp9">,
   <Stream: itag="133" mime_type="video/mp4" res="240p" fps="30fps" vcodec="avc1.4d4015">,
   <Stream: itag="242" mime_type="video/webm" res="240p" fps="30fps" vcodec="vp9">,
   <Stream: itag="160" mime_type="video/mp4" res="144p" fps="30fps" vcodec="avc1.4d400c">,
   <Stream: itag="278" mime_type="video/webm" res="144p" fps="30fps" vcodec="vp9">,
   <Stream: itag="140" mime_type="audio/mp4" abr="128kbps" acodec="mp4a.40.2">,
   <Stream: itag="171" mime_type="audio/webm" abr="128kbps" acodec="vorbis">,
   <Stream: itag="249" mime_type="audio/webm" abr="50kbps" acodec="opus">,
   <Stream: itag="250" mime_type="audio/webm" abr="70kbps" acodec="opus">,
   <Stream: itag="251" mime_type="audio/webm" abr="160kbps" acodec="opus">]
  ```
  You may notice that some streams listed have both a video codec and audio codec, while others have just video or just audio, this is a result of YouTube supporting a streaming technique called Dynamic Adaptive Streaming over HTTP (DASH).

  In the context of pytube, the implications are for the highest quality streams; you now need to download both the audio and video tracks and then post-process them with software like FFmpeg to merge them.

  The legacy streams that contain the audio and video in a single file (referred to as "progressive download") are still available, but only for resolutions 720p and below.

  To only view these progressive download streams:

  ```python
   >>> yt.streams.filter(progressive=True).all()
    [<Stream: itag="22" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.64001F" acodec="mp4a.40.2">,
    <Stream: itag="43" mime_type="video/webm" res="360p" fps="30fps" vcodec="vp8.0" acodec="vorbis">,
    <Stream: itag="18" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.42001E" acodec="mp4a.40.2">,
    <Stream: itag="36" mime_type="video/3gpp" res="240p" fps="30fps" vcodec="mp4v.20.3" acodec="mp4a.40.2">,
    <Stream: itag="17" mime_type="video/3gpp" res="144p" fps="30fps" vcodec="mp4v.20.3" acodec="mp4a.40.2">]
  ```

  Conversely, if you only want to see the DASH streams (also referred to as "adaptive") you can do:

  ```python
  >>> yt.streams.filter(adaptive=True).all()
   [<Stream: itag="137" mime_type="video/mp4" res="1080p" fps="30fps" vcodec="avc1.640028">,
    <Stream: itag="248" mime_type="video/webm" res="1080p" fps="30fps" vcodec="vp9">,
    <Stream: itag="136" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.4d401f">,
    <Stream: itag="247" mime_type="video/webm" res="720p" fps="30fps" vcodec="vp9">,
    <Stream: itag="135" mime_type="video/mp4" res="480p" fps="30fps" vcodec="avc1.4d401e">,
    <Stream: itag="244" mime_type="video/webm" res="480p" fps="30fps" vcodec="vp9">,
    <Stream: itag="134" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.4d401e">,
    <Stream: itag="243" mime_type="video/webm" res="360p" fps="30fps" vcodec="vp9">,
    <Stream: itag="133" mime_type="video/mp4" res="240p" fps="30fps" vcodec="avc1.4d4015">,
    <Stream: itag="242" mime_type="video/webm" res="240p" fps="30fps" vcodec="vp9">,
    <Stream: itag="160" mime_type="video/mp4" res="144p" fps="30fps" vcodec="avc1.4d400c">,
    <Stream: itag="278" mime_type="video/webm" res="144p" fps="30fps" vcodec="vp9">,
    <Stream: itag="140" mime_type="audio/mp4" abr="128kbps" acodec="mp4a.40.2">,
    <Stream: itag="171" mime_type="audio/webm" abr="128kbps" acodec="vorbis">,
    <Stream: itag="249" mime_type="audio/webm" abr="50kbps" acodec="opus">,
    <Stream: itag="250" mime_type="audio/webm" abr="70kbps" acodec="opus">,
    <Stream: itag="251" mime_type="audio/webm" abr="160kbps" acodec="opus">]
  ```

  You can also download a complete Youtube playlist:

  ```python
  >>> from pytube import Playlist
  >>> pl = Playlist("https://www.youtube.com/watch?v=Edpy1szoG80&list=PL153hDY-y1E00uQtCVCVC8xJ25TYX8yPU")
  >>> pl.download_all()
  >>> # or if you want to download in a specific directory
  >>> pl.download_all('/path/to/directory/')
  ```
  This will download the highest progressive stream available (generally 720p) from the given playlist. Later more options would be given for user's flexibility
  to choose video resolution.

  Pytube allows you to filter on every property available (see the documentation for the complete list), let's take a look at some of the most useful ones.

  To list the audio only streams:

  ```python
  >>> yt.streams.filter(only_audio=True).all()
    [<Stream: itag="140" mime_type="audio/mp4" abr="128kbps" acodec="mp4a.40.2">,
    <Stream: itag="171" mime_type="audio/webm" abr="128kbps" acodec="vorbis">,
    <Stream: itag="249" mime_type="audio/webm" abr="50kbps" acodec="opus">,
    <Stream: itag="250" mime_type="audio/webm" abr="70kbps" acodec="opus">,
    <Stream: itag="251" mime_type="audio/webm" abr="160kbps" acodec="opus">]
  ```

  To list only ``mp4`` streams:

  ```python
  >>> yt.streams.filter(subtype='mp4').all()
   [<Stream: itag="22" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.64001F" acodec="mp4a.40.2">,
    <Stream: itag="18" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.42001E" acodec="mp4a.40.2">,
    <Stream: itag="137" mime_type="video/mp4" res="1080p" fps="30fps" vcodec="avc1.640028">,
    <Stream: itag="136" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.4d401f">,
    <Stream: itag="135" mime_type="video/mp4" res="480p" fps="30fps" vcodec="avc1.4d401e">,
    <Stream: itag="134" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.4d401e">,
    <Stream: itag="133" mime_type="video/mp4" res="240p" fps="30fps" vcodec="avc1.4d4015">,
    <Stream: itag="160" mime_type="video/mp4" res="144p" fps="30fps" vcodec="avc1.4d400c">,
    <Stream: itag="140" mime_type="audio/mp4" abr="128kbps" acodec="mp4a.40.2">]
  ```

  Multiple filters can also be specified:

  ```python
  >>> yt.streams.filter(subtype='mp4', progressive=True).all()
  >>> # this can also be expressed as:
  >>> yt.streams.filter(subtype='mp4').filter(progressive=True).all()
    [<Stream: itag="22" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.64001F" acodec="mp4a.40.2">,
    <Stream: itag="18" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.42001E" acodec="mp4a.40.2">]
  ```
  You also have an interface to select streams by their itag, without needing to filter:

  ```python
  >>> yt.streams.get_by_itag(22)
    <Stream: itag="22" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.64001F" acodec="mp4a.40.2">
  ```

  If you need to optimize for a specific feature, such as the "highest resolution" or "lowest average bitrate":

  ```python
  >>> yt.streams.filter(progressive=True).order_by('resolution').desc().all()
  ```
  Note that ``order_by`` cannot be used if your attribute is undefined in any of the Stream instances, so be sure to apply a filter to remove those before calling it.

  If your application requires post-processing logic, pytube allows you to specify an "on download complete" callback function:

  ```python
   >>> def convert_to_aac(stream, file_handle):
           return  # do work

   >>> yt.register_on_complete_callback(convert_to_aac)
  ```

  Similarly, if your application requires on-download progress logic, pytube exposes a callback for this as well:

  ```python
   >>> def show_progress_bar(stream, chunk, file_handle, bytes_remaining):
           return  # do work

   >>> yt.register_on_progress_callback(show_progress_bar)
  ```



  pytube also ships with a tiny cli interface for downloading and probing videos.

  Let's start with downloading:

  ```bash
  $ pytube http://youtube.com/watch?v=9bZkp7q19f0 --itag=22
  ```
  To view available streams:

  ```bash
  $ pytube http://youtube.com/watch?v=9bZkp7q19f0 --list
  ```

  Finally, if you're filing a bug report, the cli contains a switch called ``--build-playback-report``, which bundles up the state, allowing others to easily replay your issue.

location_href:
  00011372-python-a-pytube-fork-for-spotdl-users/python-a-pytube-fork-for-spotdl-users-help-9.6.4-1.noarch.rpm


pkgId: 70c3059df89ecb1566b7e5f61eedf87a606e62ac290b49155d83e4ae94e3d3a7
name: python-aaargh
arch: src
version: 0.7.1
epoch: 0
release: 1
summary: An astonishingly awesome application argument helper
url: https://github.com/wbolster/aaargh
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0a808228-703c-43a7-bec3-a2dcca5e9458
location_href: 00002774-python-aaargh/python-aaargh-0.7.1-1.src.rpm
checksum_type: sha256
description:
  The Python standard library contains the *optparse*, *getopt*, and *argparse*
  modules, and out in the wild you will find many alternative command line
  interface libraries stacked on top of these, such as *cliff*, *cement*,
  *opster*, *plac*, and many others. Some of these libraries separate the command
  line interface setup of your application from the actual code, some force yet
  another argument parsing API upon you, some force you to hide your code in
  non-obvious framework constructs, and some even add dependencies on other
  modules.
  This makes you scream *aaargh*. And, lo and behold, here it is!


pkgId: db62cdb739d55d1c7bbbc031f2df214e09b4d70ad931a2c5699d383243d31b9e
name: python-absl-py
arch: src
version: 1.4.0
epoch: 0
release: 1
summary: Abseil Python Common Libraries, see https://github.com/abseil/abseil-py.
url: https://github.com/abseil/abseil-py
rpm_license: Apache 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-a2da5a56-fd74-4e24-af8a-edea0db928dc
location_href: 00008958-python-absl-py/python-absl-py-1.4.0-1.src.rpm
checksum_type: sha256
description:
  This repository is a collection of Python library code for building Python
  applications. The code is collected from Google's own Python code base, and has
  been extensively tested and used in production.



  * Simple application startup
  * Distributed commandline flags system
  * Custom logging module with additional features
  * Testing utilities





  To install the package, simply run:

  ```bash
  pip install absl-py
  ```

  Or install from source:

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



  To run Abseil tests, you can clone the git repo and run
  [bazel](https://bazel.build/):

  ```bash
  git clone https://github.com/abseil/abseil-py.git
  cd abseil-py
  bazel test absl/...
  ```



  Please refer to
  [smoke_tests/sample_app.py](https://github.com/abseil/abseil-py/blob/main/smoke_tests/sample_app.py)
  as an example to get started.



  See the [Abseil Python Developer Guide](https://abseil.io/docs/python/).



  The current repository includes an initial set of libraries for early adoption.
  More components and interoperability with Abseil C++ Common Libraries
  will come in future releases.



  The Abseil Python library is licensed under the terms of the Apache
  license. See [LICENSE](LICENSE) for more information.


pkgId: 9cf4ebc7e335ca16c9fd0ba53f596e32212015c028551e0cad0bc8e795e99e01
name: python-accuweather
arch: src
version: 0.5.0
epoch: 0
release: 1
summary: Python wrapper for getting weather data from AccuWeather servers.
url: https://github.com/bieniu/accuweather
rpm_license: Apache-2.0 License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d80e2bd3-9dc2-4a26-bb37-3da79c495614
location_href: 00002933-python-accuweather/python-accuweather-0.5.0-1.src.rpm
checksum_type: sha256
description:
  [![GitHub Release][releases-shield]][releases]
  [![PyPI][pypi-releases-shield]][pypi-releases]
  [![PyPI - Downloads][pypi-downloads]][pypi-statistics]
  [![Buy me a coffee][buy-me-a-coffee-shield]][buy-me-a-coffee]
  [![PayPal_Me][paypal-me-shield]][paypal-me]



  Python wrapper for getting weather data from AccuWeather servers for Limited Trial package.




  To generate API key go to https://developer.accuweather.com/user/register and after registration create an app.



  ```python
  import asyncio
  import logging

  from aiohttp import ClientError, ClientSession

  from accuweather import (
      AccuWeather,
      ApiError,
      InvalidApiKeyError,
      InvalidCoordinatesError,
      RequestsExceededError,
  )

  LATITUDE = 52.0677904
  LONGITUDE = 19.4795644
  LOCATION_KEY = "268068"
  API_KEY = "xxxxx"

  logging.basicConfig(level=logging.DEBUG)


  async def main():
      async with ClientSession() as websession:
          try:
              accuweather = AccuWeather(
                  API_KEY, websession, latitude=LATITUDE, longitude=LONGITUDE
              )
              current_conditions = await accuweather.async_get_current_conditions()
              forecast = await accuweather.async_get_forecast(metric=True)
              forecast_hourly = await accuweather.async_get_forecast_hourly(metric=True)
          except (
              ApiError,
              InvalidApiKeyError,
              InvalidCoordinatesError,
              ClientError,
              RequestsExceededError,
          ) as error:
              print(f"Error: {error}")
          else:
              print(f"Location: {accuweather.location_name} ({accuweather.location_key})")
              print(f"Requests remaining: {accuweather.requests_remaining}")
              print(f"Current: {current_conditions}")
              print(f"Forecast: {forecast}")
              print(f"Forecast hourly: {forecast_hourly}")


  loop = asyncio.new_event_loop()
  loop.run_until_complete(main())
  loop.close()

  ```

  [releases]: https://github.com/bieniu/accuweather/releases
  [releases-shield]: https://img.shields.io/github/release/bieniu/accuweather.svg?style=popout
  [pypi-releases]: https://pypi.org/project/accuweather/
  [pypi-statistics]: https://pepy.tech/project/accuweather
  [pypi-releases-shield]: https://img.shields.io/pypi/v/accuweather
  [pypi-downloads]: https://pepy.tech/badge/accuweather/month
  [buy-me-a-coffee-shield]: https://img.shields.io/static/v1.svg?label=%20&message=Buy%20me%20a%20coffee&color=6f4e37&logo=buy%20me%20a%20coffee&logoColor=white
  [buy-me-a-coffee]: https://www.buymeacoffee.com/QnLdxeaqO
  [paypal-me-shield]: https://img.shields.io/static/v1.svg?label=%20&message=PayPal.Me&logo=paypal
  [paypal-me]: https://www.paypal.me/bieniu79


pkgId: 8f6bfa8961fe1be15788d1a45838a53ae8e74b0eeefabc7954fb927c2e3ac803
name: python-actdiag
arch: src
version: 3.0.0
epoch: 0
release: 1
summary: actdiag generates activity-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-4c8ac900-76db-4ca0-8cc6-f556ab01e784
location_href: 00002948-python-actdiag/python-actdiag-3.0.0-1.src.rpm
checksum_type: sha256
description:
  * Generate activity-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/actdiag/build/html/index.html>`_ .


pkgId: 189e9c7afc4de35675d4bb56ad222b50ac8291123575bba5dafe8e9c25d4322f
name: python-adal
arch: src
version: 1.2.7
epoch: 0
release: 1
url: https://github.com/AzureAD/azure-activedirectory-library-for-python
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-228bc510-feb8-4dd9-8e90-164e7436ed6f
location_href: 00002951-python-adal/python-adal-1.2.7-1.src.rpm
checksum_type: sha256
summary:
  Note: This library is already replaced by MSAL Python, available here: https://pypi.org/project/msal/ .ADAL Python remains available here as a legacy. The ADAL for Python library makes it easy for python application to authenticate to Azure Active Directory (AAD) in order to access AAD protected web resources.

description:
  This library, ADAL for Python, will no longer receive new feature improvements. Instead, use the new library
  [MSAL for Python](https://github.com/AzureAD/microsoft-authentication-library-for-python).
  * If you are starting a new project, you can get started with the
    [MSAL Python docs](https://github.com/AzureAD/microsoft-authentication-library-for-python/wiki)
    for details about the scenarios, usage, and relevant concepts.
  * If your application is using the previous ADAL Python library, you can follow this
    [migration guide](https://docs.microsoft.com/en-us/azure/active-directory/develop/migrate-python-adal-msal)
    to update to MSAL Python.


pkgId: 2ebf5c7ddc6db5c697340765b6df541ab1476f0d9eb3fb7dbeffc5bf11fe0773
name: python-adapt
arch: src
version: 0.4.2
epoch: 0
release: 1
summary: Awesome Domain Adaptation Python Toolbox for Tensorflow and Scikit-learn
url: https://github.com/adapt-python/adapt.git
rpm_license: BSD-2
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-190e628a-70ec-4c6b-a94a-d1672cc92f4e
location_href: 00002952-python-adapt/python-adapt-0.4.2-1.src.rpm
checksum_type: sha256
description:
  ADAPT is an open source library providing numerous tools to perform Transfer Learning and Domain Adaptation.
  The purpose of the ADAPT library is to facilitate the access to transfer learning algorithms for a large public, including industrial players. ADAPT is specifically designed for [Scikit-learn](https://scikit-learn.org/stable/) and [Tensorflow](https://www.tensorflow.org/) users with a "user-friendly" approach. All objects in ADAPT implement the ***fit***, ***predict*** and ***score*** methods like any scikit-learn object. A very detailed documentation with several examples is provided:
  <table>
    <tr valign="top">
      <td width="50%" >
          <a href="https://adapt-python.github.io/adapt/examples/Sample_bias_example.html">
              <br>
              <b>Sample bias correction</b>
              <br>
              <br>
              <img src="https://github.com/adapt-python/adapt/raw/41c13055facc0733faf49c4e3979709e82be10e5/docs/_static/images/sample_bias_corr_img.png">
          </a>
      </td>
      <td width="50%">
          <a href="https://adapt-python.github.io/adapt/examples/Flowers_example.html">
              <br>
              <b>Model-based Transfer</b>
              <br>
              <br>
              <img src="https://github.com/adapt-python/adapt/raw/41c13055facc0733faf49c4e3979709e82be10e5/docs/_static/images/finetuned.png">
          </a>
      </td>
    </tr>
    <tr valign="top">
      <td width="50%">
          <a href="https://adapt-python.github.io/adapt/examples/Office_example.html">
              <br>
              <b>Deep Domain Adaptation</b>
              <br>
              <br>
              <img src="https://github.com/adapt-python/adapt/raw/41c13055facc0733faf49c4e3979709e82be10e5/docs/_static/images/office_item.png">
          </a>
      </td>
      <td width="50%">
          <a href="https://adapt-python.github.io/adapt/examples/Multi_fidelity.html">
              <br>
              <b>Multi-Fidelity Transfer</b>
              <br>
              <br>
              <img src="https://raw.githubusercontent.com/adapt-python/adapt/a490a5c4cefb80d6222bc831a8cc25b2f65221ce/docs/_static/images/multifidelity_setup.png">
          </a>
      </td>
    </tr>
  </table>

  This package is available on [Pypi](https://pypi.org/project/adapt) and can be installed with the following command line:
  ```
  pip install adapt
  ```
  The following dependencies are required and will be installed with the library:
  - `numpy`
  - `scipy`
  - `tensorflow` (>= 2.0)
  - `scikit-learn`
  - `cvxopt`
  If for some reason, these packages failed to install, you can do it manually with:
  ```
  pip install numpy scipy tensorflow scikit-learn cvxopt
  ```
  Finally import the module in your python scripts with:
  ```python
  import adapt
  ```
  A simple example of usage is given in the [Qick-Start](#Quick-Start) below.

  The transfer learning methods implemented in ADAPT can be seen as scikit-learn "Meta-estimators" or tensorflow "Custom Model":
  <table>
  <tr valign="top">
  <td width="33%" >
  <br>
  <b>Adapt Estimator</b>
  <br>
  <br>
  ```python
  AdaptEstimator(
  	estimator = """A scikit-learn estimator
  	            (like Ridge(alpha=1.) for example)
  		    or a Tensorflow Model""",
  	Xt = "The target input features",
  	yt = "The target output labels (if any)",
  	**params = "Hyper-parameters of the AdaptEstimator"
  )
  ```
  <td width="33%">
  <br>
  <b>Deep Adapt Estimator</b>
  <br>
  <br>
  ```python
  DeepAdaptEstimator(
  	encoder = "A Tensorflow Model (if required)",
  	task = "A Tensorflow Model (if required)",
  	discriminator = "A Tensorflow Model (if required)",
  	Xt = "The target input features",
  	yt = "The target output labels (if any)",
  	**params = """Hyper-parameters of the DeepAdaptEstimator and
  		      the compile and fit params (optimizer, epochs...)"""
  )
  ```
  </td>
  </td>
  <td width="33%">
  <br>
  <b>Scikit-learn Meta-Estimator</b>
  <br>
  <br>
  ```python
  SklearnMetaEstimator(
  	base_estimator = """A scikit-learn estimator
  			 (like Ridge(alpha=1.) for example)""",
  	**params = "Hyper-parameters of the SklearnMetaEstimator"
  )
  ```
  </td>
  </tr>
  </table>
  As you can see, the main difference between ADAPT models and scikit-learn and tensorflow objects is the two arguments `Xt, yt` which refer to the target data. Indeed, in classical machine learning, one assumes that the fitted model is applied on data distributed according to the training distribution. This is why, in this setting, one performs cross-validation and splits uniformly the training set to evaluate a model.
  In the transfer learning framework, however, one assumes that the target data (on which the model will be used at the end) are not distributed like the source training data. Moreover, one assumes that the target distribution can be estimated and compared to the training distribution. Either because a small sample of labeled target data `Xt, yt` is avalaible or because a large sample of unlabeled target data `Xt` is at one's disposal.
  Thus, the transfer learning models from the ADAPT library can be seen as machine learning models that are fitted with a specific target in mind. This target is different but somewhat related to the training data. This is generally achieved by a transformation of the input features (see [feature-based transfer](https://adapt-python.github.io/adapt/contents.html#adapt-feature-based-feature-based-methods)) or by importance weighting (see [instance-based transfer](https://adapt-python.github.io/adapt/contents.html#adapt-instance-based)). In some cases, the training data are no more available but one aims at fine-tuning a pre-trained source model on a new target dataset (see [parameter-based transfer](https://adapt-python.github.io/adapt/contents.html#adapt-parameter-based)).

  The ADAPT library proposes numerous transfer algorithms and it can be hard to know which algorithm is best suited for a particular problem. If you do not know which algorithm to choose, this [flowchart](https://adapt-python.github.io/adapt/map.html) may help you:
  [<img src="https://github.com/adapt-python/adapt/raw/master/src_docs/_static/images/thumbnai_flowchart.PNG" width=30%>](https://adapt-python.github.io/adapt/map.html)

  Here is a simple usage example of the ADAPT library. This is a simulation of a 1D sample bias problem with binary classfication task. The source input data are distributed according to a Gaussian distribution centered in -1 with standard deviation of 2. The target data are drawn from Gaussian distribution centered in 1 with standard deviation of 2. The output labels are equal to 1 in the interval [-1, 1] and 0 elsewhere. We apply the transfer method [KMM](https://adapt-python.github.io/adapt/generated/adapt.instance_based.KMM.html) which is an unsupervised instance-based algortihm.
  ```python

  import numpy as np
  from sklearn.linear_model import LogisticRegression

  from adapt.instance_based import KMM
  np.random.seed(0)


  Xs = np.random.randn(1000, 1)*2-1
  ys = (Xs[:, 0] > -1.) & (Xs[:, 0] < 1.)

  Xt = np.random.randn(1000, 1)*2+1
  yt = (Xt[:, 0] > -1.) & (Xt[:, 0] < 1.)

  src_only = LogisticRegression(penalty="none")
  src_only.fit(Xs, ys)


  adapt_model = KMM(
      estimator=LogisticRegression(penalty="none"),
      Xt=Xt,
      kernel="rbf",  # Gaussian kernel
      gamma=1.,     # Bandwidth of the kernel
      verbose=0,
      random_state=0
  )

  adapt_model.fit(Xs, ys);

  adapt_model.score(Xt, yt)
  ```
  ```python
  >>> 0.574
  ```
  | <img src="https://github.com/adapt-python/adapt/raw/41c13055facc0733faf49c4e3979709e82be10e5/docs/_static/images/results_qs.png"> |
  |:--:|
  | **Quick-Start Plotting Results**. *The dotted and dashed lines are respectively the class separation of the "source only" and KMM models. Note that the predicted positive class is on the right of the dotted line for the "source only" model but on the left of the dashed line for KMM. (The code for plotting the Figure is available [here](https://adapt-python.github.io/adapt/examples/Quick_start.html))* |

  ADAPT package is divided in three sub-modules containing the following domain adaptation methods:

  <img src="https://raw.githubusercontent.com/adapt-python/adapt/a490a5c4cefb80d6222bc831a8cc25b2f65221ce/docs/_static/images/feature_based.png">
  - [FA](https://adapt-python.github.io/adapt/generated/adapt.feature_based.FA.html) (*Frustratingly Easy Domain Adaptation*) [[paper]](https://arxiv.org/pdf/0907.1815.pdf)
  - [SA](https://adapt-python.github.io/adapt/generated/adapt.feature_based.SA.html) (*Subspace Alignment*) [[paper]](https://arxiv.org/abs/1409.5241)
  - [fMMD](https://adapt-python.github.io/adapt/generated/adapt.feature_based.SA.html) (*feature Selection with MMD*) [[paper]](https://www.cs.cmu.edu/afs/cs/Web/People/jgc/publication/Feature%20Selection%20for%20Transfer%20Learning.pdf)
  - [DANN](https://adapt-python.github.io/adapt/generated/adapt.feature_based.DANN.html) (*Discriminative Adversarial Neural Network*) [[paper]](https://jmlr.org/papers/volume17/15-239/15-239.pdf)
  - [ADDA](https://adapt-python.github.io/adapt/generated/adapt.feature_based.ADDA.html) (*Adversarial Discriminative Domain Adaptation*) [[paper]](https://arxiv.org/pdf/1702.05464.pdf)
  - [CORAL](https://adapt-python.github.io/adapt/generated/adapt.feature_based.CORAL.html) (*CORrelation ALignment*) [[paper]](https://arxiv.org/pdf/1511.05547.pdf)
  - [DeepCORAL](https://adapt-python.github.io/adapt/generated/adapt.feature_based.DeepCORAL.html) (*Deep CORrelation ALignment*) [[paper]](https://arxiv.org/pdf/1607.01719.pdf)
  - [MCD](https://adapt-python.github.io/adapt/generated/adapt.feature_based.MCD.html) (*Maximum Classifier Discrepancy*) [[paper]](https://arxiv.org/pdf/1712.02560.pdf)
  - [MDD](https://adapt-python.github.io/adapt/generated/adapt.feature_based.MDD.html) (*Margin Disparity Discrepancy*) [[paper]](https://arxiv.org/pdf/1904.05801.pdf)
  - [WDGRL](https://adapt-python.github.io/adapt/generated/adapt.feature_based.WDGRL.html) (*Wasserstein Distance Guided Representation Learning*) [[paper]](https://arxiv.org/pdf/1707.01217.pdf)
  - [CDAN](https://adapt-python.github.io/adapt/generated/adapt.feature_based.CDAN.html) (*Conditional Adversarial Domain Adaptation*) [[paper]](https://arxiv.org/pdf/1705.10667.pdf)
  - [CCSA](https://adapt-python.github.io/adapt/generated/adapt.feature_based.CCSA.html) (*Classification and Contrastive Semantic Alignment*) [[paper]](https://arxiv.org/abs/1709.10190)

  <img src="https://raw.githubusercontent.com/adapt-python/adapt/a490a5c4cefb80d6222bc831a8cc25b2f65221ce/docs/_static/images/instance_based.png">
  - [LDM](https://adapt-python.github.io/adapt/generated/adapt.instance_based.LDM.html) (*Linear Discrepancy Minimization*) [[paper]](https://arxiv.org/pdf/0902.3430.pdf)
  - [KMM](https://adapt-python.github.io/adapt/generated/adapt.instance_based.KMM.html) (*Kernel Mean Matching*) [[paper]](https://proceedings.neurips.cc/paper/2006/file/a2186aa7c086b46ad4e8bf81e2a3a19b-Paper.pdf)
  - [KLIEP](https://adapt-python.github.io/adapt/generated/adapt.instance_based.KLIEP.html) (*Kullbackâ€“Leibler Importance Estimation Procedure*) [[paper]](https://proceedings.neurips.cc/paper/2007/file/be83ab3ecd0db773eb2dc1b0a17836a1-Paper.pdf)
  - [TrAdaBoost](https://adapt-python.github.io/adapt/generated/adapt.instance_based.TrAdaBoost.html) (*Transfer AdaBoost*) [[paper]](https://cse.hkust.edu.hk/~qyang/Docs/2007/tradaboost.pdf)
  - [TrAdaBoostR2](https://adapt-python.github.io/adapt/generated/adapt.instance_based.TrAdaBoostR2.html) (*Transfer AdaBoost for Regression*) [[paper]](https://www.cs.utexas.edu/~dpardoe/papers/ICML10.pdf)
  - [TwoStageTrAdaBoostR2](https://adapt-python.github.io/adapt/generated/adapt.instance_based.TwoStageTrAdaBoostR2.html) (*Two Stage Transfer AdaBoost for Regression*) [[paper]](https://www.cs.utexas.edu/~dpardoe/papers/ICML10.pdf)
  - [NearestNeighborsWeighting](https://adapt-python.github.io/adapt/generated/adapt.instance_based.NearestNeighborsWeighting.html) (*Nearest Neighbors Weighting*) [[paper]](https://arxiv.org/pdf/2102.02291.pdf)
  - [WANN](https://adapt-python.github.io/adapt/generated/adapt.instance_based.WANN.html) (*Weighting Adversarial Neural Network*) [[paper]](https://arxiv.org/pdf/2006.08251.pdf)

  <img src="https://raw.githubusercontent.com/adapt-python/adapt/a490a5c4cefb80d6222bc831a8cc25b2f65221ce/docs/_static/images/parameter_based.png">
  - [RegularTransferLR](https://adapt-python.github.io/adapt/generated/adapt.parameter_based.RegularTransferLR.html) (*Regular Transfer with Linear Regression*) [[paper]](https://www.microsoft.com/en-us/research/wp-content/uploads/2004/07/2004-chelba-emnlp.pdf)
  - [RegularTransferLC](https://adapt-python.github.io/adapt/generated/adapt.parameter_based.RegularTransferLC.html) (*Regular Transfer with Linear Classification*) [[paper]](https://www.microsoft.com/en-us/research/wp-content/uploads/2004/07/2004-chelba-emnlp.pdf)
  - [RegularTransferNN](https://adapt-python.github.io/adapt/generated/adapt.parameter_based.RegularTransferNN.html) (*Regular Transfer with Neural Network*) [[paper]](https://hal.inria.fr/hal-00911179v1/document)
  - [FineTuning](https://adapt-python.github.io/adapt/generated/adapt.parameter_based.FineTuning.html) (*Fine-Tuning*) [[paper]](https://hal.inria.fr/hal-00911179v1/document)
  - [TransferTreeClassifier](https://adapt-python.github.io/adapt/generated/adapt.parameter_based.TransferTreeClassifier.html) (*Transfer Tree Classifier*) [[paper]](https://ieeexplore.ieee.org/document/8995296)
  - [TransferTreeForest](https://adapt-python.github.io/adapt/generated/adapt.parameter_based.TransferTreeForest.html) (*Transfer Tree Forest*) [[paper]](https://ieeexplore.ieee.org/document/8995296)

  If you use this library in your research, please cite ADAPT using the following reference: https://arxiv.org/pdf/2107.03049.pdf
  ```
  @article{de2021adapt,
  	  title={ADAPT: Awesome Domain Adaptation Python Toolbox},
  	  author={de Mathelin, Antoine and Deheeger, Fran{\c{c}}ois and Richard, Guillaume and Mougeot, Mathilde and Vayatis, Nicolas},
  	  journal={arXiv preprint arXiv:2107.03049},
  	  year={2021}
  	}
  ```

  This work has been funded by Michelin and the Industrial Data Analytics and Machine Learning chair from ENS Paris-Saclay, Borelli center.
  [<img src="https://github.com/adapt-python/adapt/raw/41c13055facc0733faf49c4e3979709e82be10e5/docs/_static/images/michelin.png" width=200px alt="Michelin">](https://www.michelin.com/) [<img src="https://github.com/adapt-python/adapt/raw/41c13055facc0733faf49c4e3979709e82be10e5/docs/_static/images/idaml.jpg" width=200px alt="IDAML">](https://centreborelli.ens-paris-saclay.fr/fr/chaire-idaml) [<img src="https://github.com/adapt-python/adapt/raw/41c13055facc0733faf49c4e3979709e82be10e5/docs/_static/images/borelli.jpg" alt="Centre Borelli" width=150px>](https://centreborelli.ens-paris-saclay.fr/fr)


pkgId: bff49a7dba8953cd37e3696baf7bc40ceb980a6c33c5c4f3b4084089484acfe8
name: python-adapter-transformers
arch: src
version: 3.2.1
epoch: 0
release: 1
summary: A friendly fork of HuggingFace's Transformers, adding Adapters to PyTorch language models
url: https://github.com/adapter-hub/adapter-transformers
rpm_license: Apache
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-70547103-21c5-4776-a325-7d78b197df06
location_href: 00013326-python-adapter-transformers/python-adapter-transformers-3.2.1-1.src.rpm
checksum_type: sha256
description:
  <!---
  Copyright 2020 The AdapterHub Team. All rights reserved.

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
  -->

  <p align="center">
  <img style="vertical-align:middle" src="https://raw.githubusercontent.com/Adapter-Hub/adapter-transformers/master/adapter_docs/logo.png" />
  </p>
  <h1 align="center">
  <span>adapter-transformers</span>
  </h1>

  <h3 align="center">
  A friendly fork of HuggingFace's <i>Transformers</i>, adding Adapters to PyTorch language models
  </h3>

  ![Tests](https://github.com/Adapter-Hub/adapter-transformers/workflows/Tests/badge.svg)
  [![GitHub](https://img.shields.io/github/license/adapter-hub/adapter-transformers.svg?color=blue)](https://github.com/adapter-hub/adapter-transformers/blob/master/LICENSE)
  [![PyPI](https://img.shields.io/pypi/v/adapter-transformers)](https://pypi.org/project/adapter-transformers/)

  `adapter-transformers` is an extension of [HuggingFace's Transformers](https://github.com/huggingface/transformers) library, integrating adapters into state-of-the-art language models by incorporating **[AdapterHub](https://adapterhub.ml)**, a central repository for pre-trained adapter modules.

  _💡 Important: This library can be used as a drop-in replacement for HuggingFace Transformers and regularly synchronizes new upstream changes.
  Thus, most files in this repository are direct copies from the HuggingFace Transformers source, modified only with changes required for the adapter implementations._



  `adapter-transformers` currently supports **Python 3.8+** and **PyTorch 1.12.1+**.
  After [installing PyTorch](https://pytorch.org/get-started/locally/), you can install `adapter-transformers` from PyPI ...

  ```
  pip install -U adapter-transformers
  ```

  ... or from source by cloning the repository:

  ```
  git clone https://github.com/adapter-hub/adapter-transformers.git
  cd adapter-transformers
  pip install .
  ```



  HuggingFace's great documentation on getting started with _Transformers_ can be found [here](https://huggingface.co/transformers/index.html). `adapter-transformers` is fully compatible with _Transformers_.

  To get started with adapters, refer to these locations:

  - **[Colab notebook tutorials](https://github.com/Adapter-Hub/adapter-transformers/tree/master/notebooks)**, a series notebooks providing an introduction to all the main concepts of (adapter-)transformers and AdapterHub
  - **https://docs.adapterhub.ml**, our documentation on training and using adapters with _adapter-transformers_
  - **https://adapterhub.ml** to explore available pre-trained adapter modules and share your own adapters
  - **[Examples folder](https://github.com/Adapter-Hub/adapter-transformers/tree/master/examples/pytorch)** of this repository containing HuggingFace's example training scripts, many adapted for training adapters



  Currently, adapter-transformers integrates all architectures and methods listed below:

  | Method | Paper(s) | Quick Links |
  | --- | --- | --- |
  | Bottleneck adapters | [Houlsby et al. (2019)](https://arxiv.org/pdf/1902.00751.pdf)<br> [Bapna and Firat (2019)](https://arxiv.org/pdf/1909.08478.pdf) | [Quickstart](https://docs.adapterhub.ml/quickstart.html), [Notebook](https://colab.research.google.com/github/Adapter-Hub/adapter-transformers/blob/master/notebooks/01_Adapter_Training.ipynb) |
  | AdapterFusion | [Pfeiffer et al. (2021)](https://aclanthology.org/2021.eacl-main.39.pdf) | [Docs: Training](https://docs.adapterhub.ml/training.html#train-adapterfusion), [Notebook](https://colab.research.google.com/github/Adapter-Hub/adapter-transformers/blob/master/notebooks/03_Adapter_Fusion.ipynb) |
  | MAD-X,<br> Invertible adapters | [Pfeiffer et al. (2020)](https://aclanthology.org/2020.emnlp-main.617/) | [Notebook](https://colab.research.google.com/github/Adapter-Hub/adapter-transformers/blob/master/notebooks/04_Cross_Lingual_Transfer.ipynb) |
  | AdapterDrop | [Rücklé et al. (2021)](https://arxiv.org/pdf/2010.11918.pdf) | [Notebook](https://colab.research.google.com/github/Adapter-Hub/adapter-transformers/blob/master/notebooks/05_Adapter_Drop_Training.ipynb) |
  | MAD-X 2.0,<br> Embedding training | [Pfeiffer et al. (2021)](https://arxiv.org/pdf/2012.15562.pdf) | [Docs: Embeddings](https://docs.adapterhub.ml/embeddings.html), [Notebook](https://colab.research.google.com/github/Adapter-Hub/adapter-transformers/blob/master/notebooks/08_NER_Wikiann.ipynb) |
  | Prefix Tuning | [Li and Liang (2021)](https://arxiv.org/pdf/2101.00190.pdf) | [Docs](https://docs.adapterhub.ml/overview.html#prefix-tuning) |
  | Parallel adapters,<br> Mix-and-Match adapters | [He et al. (2021)](https://arxiv.org/pdf/2110.04366.pdf) | [Docs](https://docs.adapterhub.ml/overview.html#mix-and-match-adapters) |
  | Compacter | [Mahabadi et al. (2021)](https://arxiv.org/pdf/2106.04647.pdf) | [Docs](https://docs.adapterhub.ml/overview.html#compacter) |
  | LoRA | [Hu et al. (2021)](https://arxiv.org/pdf/2106.09685.pdf) | [Docs](https://docs.adapterhub.ml/overview.html#lora) |
  | (IA)^3 | [Liu et al. (2022)](https://arxiv.org/pdf/2205.05638.pdf) | [Docs](https://docs.adapterhub.ml/overview.html#ia-3) |
  | UniPELT | [Mao et al. (2022)](https://arxiv.org/pdf/2110.07577.pdf) | [Docs](https://docs.adapterhub.ml/overview.html#unipelt) |



  We currently support the PyTorch versions of all models listed on the **[Model Overview](https://docs.adapterhub.ml/model_overview.html) page** in our documentation.



  If you use this library for your work, please consider citing our paper [AdapterHub: A Framework for Adapting Transformers](https://arxiv.org/abs/2007.07779):

  ```
  @inproceedings{pfeiffer2020AdapterHub,
      title={AdapterHub: A Framework for Adapting Transformers},
      author={Pfeiffer, Jonas and
              R{\"u}ckl{\'e}, Andreas and
              Poth, Clifton and
              Kamath, Aishwarya and
              Vuli{\'c}, Ivan and
              Ruder, Sebastian and
              Cho, Kyunghyun and
              Gurevych, Iryna},
      booktitle={Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: System Demonstrations},
      pages={46--54},
      year={2020}
  }
  ```


pkgId: 7c012acd646df962d15ea1006c36d3347d8cebd2d81f4303814361cd70adb502
name: python-adb
arch: src
version: 1.3.0
epoch: 0
release: 1
summary: A pure python implementation of the Android ADB and Fastboot protocols
url: https://github.com/google/python-adb
rpm_license: Apache Software License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-303dc0db-d726-4141-8627-24fe5d24b5cb
location_href: 00002953-python-adb/python-adb-1.3.0-1.src.rpm
checksum_type: sha256
description:
  This repository contains a pure-python implementation of the Android
  ADB and Fastboot protocols, using libusb1 for USB communications.

  This is a complete replacement and rearchitecture of the Android
  project's ADB and fastboot code available at
  https://github.com/android/platform_system_core/tree/master/adb

  This code is mainly targeted to users that need to communicate with
  Android devices in an automated fashion, such as in automated
  testing. It does not have a daemon between the client and the device,
  and therefore does not support multiple simultaneous commands to the
  same device. It does support any number of devices and never
  communicates with a device that it wasn't intended to, unlike the
  Android project's ADB.


pkgId: dafa1124e9979d572a84efc52526e7e249507c06329568480858fcc6bb6dd669
name: python-adb-shell
arch: src
version: 0.4.3
epoch: 0
release: 1
summary: A Python implementation of ADB with shell and FileSync functionality.
url: https://github.com/JeffLIrion/adb_shell
rpm_license: Apache Software License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-52e3b80d-c1be-44a6-9d18-236af1a74b8d
location_href: 00002954-python-adb-shell/python-adb-shell-0.4.3-1.src.rpm
checksum_type: sha256
description:
  Documentation for this package can be found at https://adb-shell.readthedocs.io/.
  Prebuilt wheel can be downloaded from `nightly.link <https://nightly.link/JeffLIrion/adb_shell/workflows/python-package/master/wheel.zip>`_.
  This Python package implements ADB shell and FileSync functionality.  It originated from `python-adb <https://github.com/google/python-adb>`_.


pkgId: 11a51400eaafa750f07b0d610541f58c0456e2a5590522ca323c0d10e43a53e1
name: python-addict
arch: src
version: 2.4.0
epoch: 0
release: 1
summary: Addict is a dictionary whose items can be set using both attribute and item syntax.
url: https://github.com/mewwts/addict
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-19a293d9-612f-4743-8ab4-2939f82105a8
location_href: 00009800-python-addict/python-addict-2.4.0-1.src.rpm
checksum_type: sha256
description:
  Addict is a module that exposes a dictionary subclass that allows items to be set like attributes. Values are gettable and settable using both attribute and item syntax. For more info check out the README at 'github.com/mewwts/addict'.


pkgId: eb871baafc59f6997ba04ebab33856ba8b6e7127105da178dff852d31501e718
name: python-adext
arch: src
version: 0.4.2
epoch: 0
release: 1
summary: AlarmDecoder extended
url: https://github.com/ajschmidt8/adext
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-70ceb0bf-4d01-4480-ab4f-f41c440757e4
location_href: 00002955-python-adext/python-adext-0.4.2-1.src.rpm
checksum_type: sha256
description:
  `adext` is a small package that extends [alarmdecoder](https://github.com/nutechsoftware/alarmdecoder/) to include some additional methods for [Home Assistant](https://github.com/home-assistant/core).

  Specifically, the following methods have been added:

  - `arm_home`
  - `arm_away`
  - `arm_night`

  Each method accepts the arguments described below to determine which key sequences are used to arm a panel based on factors like panel brand and user config settings.



  - **code**: (`None` or `str`) - the code used to arm a panel (i.e. `'1234'`)
  - **auto_bypass**: (`bool`) - for Honeywell only. set to `True` to prefix an arming sequence with `<code> + 6#` in order to automatically bypass any faulted zones. This will require a code to be entered even if `code_arm_required` is set to `false`."
  - **code_arm_required**: (`bool`) - set to `False` to enable arming without a code. see [Arming Key Sequences](#Arming-Key-Sequences) below.
  - **alt_night_mode**: (`bool`) - For Honeywell systems, set to `true` to enable *Night-Stay* mode instead of *Instant* mode for night arming. For DSC systems, set to `true` to enable *No-Entry* mode instead of *Stay* mode for night arming. For both systems, whenever this option is set to `true`, a code will be required for night arming **regardless of the `code_arm_required` setting.** See [Arming Key Sequences](#Arming-Key-Sequences) section below for more information.




  The tables below show the key press sequences used for arming for the different panel brands and configuration setting combinations.





  | Mode                                                    | Key Sequence                |
  | ------------------------------------------------------- | --------------------------- |
  | `alarm_arm_home`                                        | `code` + `3`                |
  | `alarm_arm_away`                                        | `code` + `2`                |
  | `alarm_arm_night` (`alt_night_mode` = `false`, default) | `code` + `7`                |
  | `alarm_arm_night` (`alt_night_mode` = `true`)           | `code` + `33`               |



  | Mode                                                    | Key Sequence                |
  | ------------------------------------------------------- | --------------------------- |
  | `alarm_arm_home`                                        | `#3`                        |
  | `alarm_arm_away`                                        | `#2`                        |
  | `alarm_arm_night` (`alt_night_mode` = `false`, default) | `#7`                        |
  | `alarm_arm_night` (`alt_night_mode` = `true`)           | `code` + `33`               |





  | Mode                                                    | Key Sequence                |
  | ------------------------------------------------------- | --------------------------- |
  | `alarm_arm_home`                                        | `code`                      |
  | `alarm_arm_away`                                        | `code`                      |
  | `alarm_arm_night` (`alt_night_mode` = `false`, default) | `code`                      |
  | `alarm_arm_night` (`alt_night_mode` = `true`)           | `*9` + `code`               |



  <div class='note'>

  The `chr(4)` and `chr(5)` sequences below are equivalent to pressing the <em>Stay</em> and <em>Away</em> keypad keys respectively (as outlined in the <a href='http://www.alarmdecoder.com/wiki/index.php/Protocol#Special_Keys'>AlarmDecoder documentation</a>).

  </div>

  | Mode                                                    | Key Sequence                    |
  | ------------------------------------------------------- | ------------------------------- |
  | `alarm_arm_home`                                        | `chr(4)` + `chr(4)` + `chr(4)`  |
  | `alarm_arm_away`                                        | `chr(5)` + `chr(5)` + `chr(5)`  |
  | `alarm_arm_night` (`alt_night_mode` = `false`, default) | `chr(4)` + `chr(4)` + `chr(4)`  |
  | `alarm_arm_night` (`alt_night_mode` = `true`)           | `*9` + `code`                   |


pkgId: 18de5fd80faa48ba0b7799b1818b03bd267c366a37121f9a7fad6b60687b3dc1
name: python-admesh
arch: src
version: 0.98.9
epoch: 0
release: 1
summary: Python bindings for ADMesh, STL maipulation library
url: https://github.com/admesh/python-admesh
rpm_license: GPLv2+
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-934224bf-9ee8-468b-ad71-1169d9d4578b
location_href: 00002956-python-admesh/python-admesh-0.98.9-1.src.rpm
checksum_type: sha256
description:
  This module provides bindings for the `ADMesh <https://github.com/admesh/admesh>`_ library. It lets you manipulate 3D models in binary or ASCII STL format and partially repair them if necessary.


pkgId: b0f075b9678d21ee935b92075feacff463bd3949f930ec84b2f4136f82cd6dcc
name: python-adtk
arch: src
version: 0.6.2
epoch: 0
release: 1
summary: A package for unsupervised time series anomaly detection
url: https://github.com/arundo/adtk
rpm_license: Mozilla Public License 2.0 (MPL 2.0)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-1b0019fe-a46c-431d-8153-56edf12942e7
location_href: 00012628-python-adtk/python-adtk-0.6.2-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://travis-ci.com/arundo/adtk.svg?branch=master)](https://travis-ci.com/arundo/adtk)
  [![Documentation Status](https://readthedocs.org/projects/adtk/badge/?version=stable)](https://adtk.readthedocs.io/en/stable)
  [![Coverage Status](https://coveralls.io/repos/github/arundo/adtk/badge.svg?branch=master&service=github)](https://coveralls.io/github/arundo/adtk?branch=master)
  [![PyPI](https://img.shields.io/pypi/v/adtk)](https://pypi.org/project/adtk/)
  [![Downloads](https://pepy.tech/badge/adtk)](https://pepy.tech/project/adtk)
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
  [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/arundo/adtk/master?filepath=docs%2Fnotebooks%2Fdemo.ipynb)

  Anomaly Detection Toolkit (ADTK) is a Python package for unsupervised /
  rule-based time series anomaly detection.

  As the nature of anomaly varies over different cases, a model may not work
  universally for all anomaly detection problems. Choosing and combining
  detection algorithms (detectors), feature engineering methods (transformers),
  and ensemble methods (aggregators) properly is the key to build an effective
  anomaly detection model.

  This package offers a set of common detectors, transformers and aggregators
  with unified APIs, as well as pipe classes that connect them together into
  models. It also provides some functions to process and visualize time series
  and anomaly events.

  See https://adtk.readthedocs.io for complete documentation.



  Prerequisites: Python 3.5 or later.

  It is recommended to install the most recent **stable** release of ADTK from PyPI.

  ```shell
  pip install adtk
  ```

  Alternatively, you could install from source code. This will give you the **latest**, but unstable, version of ADTK.

  ```shell
  git clone https://github.com/arundo/adtk.git
  cd adtk/
  git checkout develop
  pip install ./
  ```



  Please see [Quick Start](https://adtk.readthedocs.io/en/stable/quickstart.html) for a simple example.

  For more detailed examples of each module of ADTK, please refer to
  [Examples](https://adtk.readthedocs.io/en/stable/examples.html)
  section in the documentation or [an interactive demo notebook](https://mybinder.org/v2/gh/arundo/adtk/master?filepath=docs%2Fnotebooks%2Fdemo.ipynb).



  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 unit tests as appropriate.

  Please see [Contributing](https://adtk.readthedocs.io/en/stable/developer.html) for more details.




  ADTK is licensed under the Mozilla Public License 2.0 (MPL 2.0). See the
  [LICENSE](LICENSE) file for details.


pkgId: e511e237c218ac379a1b6453e32b62629ed7a9b77f5f00d6c2082c4d8ea337ea
name: python-advanced-descriptors
arch: src
version: 4.0.3
epoch: 0
release: 1
summary: Advanced descriptors for special cases.
url: https://pypi.org/project/advanced-descriptors/
rpm_license: Apache License, Version 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e9342ef5-bdcc-4cde-b851-337df1900536
location_href: 00014269-python-advanced-descriptors/python-advanced-descriptors-4.0.3-1.src.rpm
checksum_type: sha256
description:
  This package includes helpers for special cases:
  * `SeparateClassMethod` - allow to have classmethod and normal method both with the same name.
  * `AdvancedProperty` - property with possibility to set class wide getter.
  * `LogOnAccess` - property with logging on successful get/set/delete or failure.


pkgId: 31c8eb9d0c0d8525ad2fa6bd467371e520e00d9163ad29f05ff6e3ff7ca45e0d
name: python-advisory-parser
arch: src
version: 1.12
epoch: 0
release: 1
summary: Security flaw parser for upstream security advisories
url: https://github.com/RedHatProductSecurity/advisory-parser
rpm_license: LGPLv3+
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-b418d5a7-a2e5-42d8-9b19-d5589a357a8b
location_href: 00002957-python-advisory-parser/python-advisory-parser-1.12-1.src.rpm
checksum_type: sha256
description:
  This library allows you to parse data from security advisories of certain
  projects to extract information about security issues. The parsed
  information includes metadata such as impact, CVSS score, summary,
  description, and others; for a full list, see the
  ``advisory_parser/flaw.py`` file.
  **DISCLAIMER**: Much of the advisory parsing is fairly fragile. Because web
  pages change all the time, it is not uncommon for parsers to break when a
  page is changed in some way. Also, the advisory parsers only work with the
  latest version of the advisory pages.
  The need for parsing raw security advisories in this way could be avoided
  if vendors provided their security pages in a machine readable (and
  preferably standardized) format. An example of this would be Red Hat's
  security advisories that can be pulled in from a separate Security Data API
  (`RHSA-2016:1883.json <https://access.redhat.com/labs/securitydataapi/cvrf/RHSA-2016:1883.json>`_)
  or downloaded as an XML file
  (`cvrf-rhsa-2016-1883.xml <https://www.redhat.com/security/data/cvrf/2016/cvrf-rhsa-2016-1883.xml>`_),
  or OpenSSL's list of issues available in XML
  (`vulnerabilities.xml <https://www.openssl.org/news/vulnerabilities.xml>`_).
  If you are a vendor or an upstream project owner interested in providing
  your security advisories in a machine readable format and don't know where
  to start, feel free to reach out to mprpic@redhat.com.
  Currently available parsers include:
      "Google Chrome", `<https://chromereleases.googleblog.com/2017/06/stable-channel-update-for-desktop_15.html>`_
      "Adobe Flash", `<https://helpx.adobe.com/security/products/flash-player/apsb17-17.html>`_
      "Jenkins", ""
      "MySQL", `<http://www.oracle.com/technetwork/security-advisory/cpujul2017verbose-3236625.html>`_
      "phpMyAdmin", ""
      "Wireshark", ""


pkgId: dc6985bff51edcf8d5343784d9e88e4160cc12dbb27e6bd30485b216aa31268d
name: python-aenum
arch: src
version: 3.1.11
epoch: 0
release: 1
summary: Advanced Enumerations (compatible with Python's stdlib Enum), NamedTuples, and NamedConstants
url: https://github.com/ethanfurman/aenum
rpm_license: BSD License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-1337e8a0-1bf0-45d7-9dc2-ae90259bf763
location_href: 00002958-python-aenum/python-aenum-3.1.11-1.src.rpm
checksum_type: sha256
description:
  Advanced Enumerations (compatible with Python's stdlib Enum), NamedTuples, and NamedConstants

  WARNING: Version 3.1 has breaking changes in custom Enum settings
  WARNING:
  WARNING: AutoNumber has been removed
  WARNING: AutoValue has been removed

  aenum includes a Python stdlib Enum-compatible data type, as well as a metaclass-based NamedTuple implementation and a NamedConstant class.

  An Enum is a set of symbolic names (members) bound to unique, constant values. Within an enumeration, the members can be compared by identity, and the enumeration itself can be iterated over.  Support exists for unique values, multiple values, auto-numbering, and suspension of aliasing (members with the same value are not identical), plus the ability to have values automatically bound to attributes.

  A NamedTuple is a class-based, fixed-length tuple with a name for each possible position accessible using attribute-access notation as well as the standard index notation.

  A NamedConstant is a class whose members cannot be rebound; it lacks all other Enum capabilities, however.

  Enum classes:

  - Enum: Base class for creating enumerated constants.

  - IntEnum: Base class for creating enumerated constants that are also
             subclasses of int.

  - Flag: Base class for creating enumerated constants that can be combined
          using the bitwise operations without losing their Flag membership.

  - IntFlag: Base class for creating enumerated constants that can be combined
             using the bitwise operators without losing their IntFlag membership.
             IntFlag members are also subclasses of int.

  - AutoNumberEnum: Derived class that automatically assigns an int value to each
                    member.

  - OrderedEnum: Derived class that adds <, <=, >=, and > methods to an Enum.

  - UniqueEnum: Derived class that ensures only one name is bound to any one
                value.

  Utility functions include:

  - convert: helper to convert target global variables into an Enum

  - constant: helper class for creating constant members

  - enum: helper class for creating members with keywords

  - enum_property: property to enable enum members to have same named attributes
                   (e.g. `name` and `value`)

  - export: helper to insert Enum members into a namespace (usually globals())

  - extend_enum: add new members to enumerations after creation

  - module: inserts NamedConstant and Enum classes into sys.modules
            where it will appear to be a module whose top-level names
            cannot be rebound

  - skip: class that prevents attributes from being converted to a
          constant or enum member

  - unique: decorator that ensures no duplicate members


pkgId: 101ff6b8df7ffc58b0d616302f9e0d02a4d78c92f6e6ec29fc295051645093b9
name: python-affinegap-debuginfo
arch: x86_64
version: 1.12
epoch: 0
release: 1
summary: Debug information for package python-affinegap
url: https://github.com/datamade/affinegap
rpm_license: The MIT License: http://www.opensource.org/licenses/mit-license.php
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-7f7ce86a-c6fc-4c14-b927-927fad3f7621
rpm_sourcerpm: python-affinegap-1.12-1.src.rpm
location_href: 00010989-python-affinegap/python-affinegap-debuginfo-1.12-1.x86_64.rpm
checksum_type: sha256
description:
  This package provides debug information for package python-affinegap.
  Debug information is useful when developing applications that use this
  package or when debugging this package.


pkgId: 686629537575590eda6e8de28fcef23892a529d8ebf45b8d8b5b0647c3c7dabc
name: python-affinegap-debugsource
arch: x86_64
version: 1.12
epoch: 0
release: 1
summary: Debug sources for package python-affinegap
url: https://github.com/datamade/affinegap
rpm_license: The MIT License: http://www.opensource.org/licenses/mit-license.php
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-7f7ce86a-c6fc-4c14-b927-927fad3f7621
rpm_sourcerpm: python-affinegap-1.12-1.src.rpm
location_href: 00010989-python-affinegap/python-affinegap-debugsource-1.12-1.x86_64.rpm
checksum_type: sha256
description:
  This package provides debug sources for package python-affinegap.
  Debug sources are useful when developing applications that use this
  package or when debugging this package.


pkgId: 4fcf89962a04d3d23d041482ef5d524d3669fd8633103ddd70c5ebea96390345
name: python-afsapi
arch: src
version: 0.2.8
epoch: 0
release: 1
summary: Asynchronous Implementation of the Frontier Silicon API
url: https://github.com/zhelev/python-afsapi.git
rpm_license: Apache License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-c51f6c35-2591-4a1c-b194-f9803480beba
location_href: 00002960-python-afsapi/python-afsapi-0.2.8-1.src.rpm
checksum_type: sha256
description:
  ```python
  import asyncio
  from afsapi import AFSAPI
  URL = 'http://192.168.1.XYZ:80/device'
  PIN = 1234
  TIMEOUT = 1 # in seconds
  async def test():
      afsapi = await AFSAPI.create(URL, PIN, TIMEOUT)
      print(f'Set power succeeded? - {await afsapi.set_power(True)}' )
      print(f'Power on: {await afsapi.get_power()}')
      print(f'Friendly name: {await afsapi.get_friendly_name()}')
      for mode in await afsapi.get_modes():
          print(f'Available Mode: {mode}')
      print(f'Current Mode: {await afsapi.get_mode()}')
      for equaliser in await afsapi.get_equalisers():
          print(f'Equaliser: {equaliser}')
      print(f'EQ Preset: {await afsapi.get_eq_preset()}' )
      for preset in await afsapi.get_presets():
          print(f"Preset: {preset}")
      print(f'Set power succeeded? - {await afsapi.set_power(False)}')
      print(f'Set sleep succeeded? - {await afsapi.set_sleep(10)}')
      print(f'Sleep: {await afsapi.get_sleep()}')
      print(f'Get power {await afsapi.get_power()}' )
  loop = asyncio.new_event_loop()
  loop.run_until_complete(test())
  ```


pkgId: c0e45a8a283da2e03fde62f32d4028997c0c868190fc6a2bd37abf37fd81984a
name: python-agate
arch: src
version: 1.7.1
epoch: 0
release: 1
summary: A data analysis library that is optimized for humans instead of machines.
url: http://agate.readthedocs.org/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-720eeb1f-f2b1-48c4-b6e8-7f41f3e38716
location_href: 00002961-python-agate/python-agate-1.7.1-1.src.rpm
checksum_type: sha256
description:
  .. image:: https://github.com/wireservice/agate/workflows/CI/badge.svg
      :target: https://github.com/wireservice/agate/actions
      :alt: Build status

  .. image:: https://img.shields.io/pypi/dm/agate.svg
      :target: https://pypi.python.org/pypi/agate
      :alt: PyPI downloads

  .. image:: https://img.shields.io/pypi/v/agate.svg
      :target: https://pypi.python.org/pypi/agate
      :alt: Version

  .. image:: https://img.shields.io/pypi/l/agate.svg
      :target: https://pypi.python.org/pypi/agate
      :alt: License

  .. image:: https://img.shields.io/pypi/pyversions/agate.svg
      :target: https://pypi.python.org/pypi/agate
      :alt: Support Python versions

  agate is a Python data analysis library that is optimized for humans instead of machines. It is an alternative to numpy and pandas that solves real-world problems with readable code.

  agate was previously known as journalism.

  Important links:

  * Documentation:    http://agate.rtfd.org
  * Repository:       https://github.com/wireservice/agate
  * Issues:           https://github.com/wireservice/agate/issues


pkgId: ece71a74dcd10191f8f495ba45bbd81c60d48e25984c388fdea312717414caa7
name: python-agate-dbf
arch: src
version: 0.2.2
epoch: 0
release: 1
summary: agate-dbf adds read support for dbf files to agate.
url: http://agate-dbf.readthedocs.org/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-d868e0e7-c1a4-4a60-80a3-1d18b3d619e6
location_href: 00002962-python-agate-dbf/python-agate-dbf-0.2.2-1.src.rpm
checksum_type: sha256
description:
  .. image:: https://travis-ci.org/wireservice/agate-dbf.png
      :target: https://travis-ci.org/wireservice/agate-dbf
      :alt: Build status

  .. image:: https://img.shields.io/pypi/dw/agate-dbf.svg
      :target: https://pypi.python.org/pypi/agate-dbf
      :alt: PyPI downloads

  .. image:: https://img.shields.io/pypi/v/agate-dbf.svg
      :target: https://pypi.python.org/pypi/agate-dbf
      :alt: Version

  .. image:: https://img.shields.io/pypi/l/agate-dbf.svg
      :target: https://pypi.python.org/pypi/agate-dbf
      :alt: License

  .. image:: https://img.shields.io/pypi/pyversions/agate-dbf.svg
      :target: https://pypi.python.org/pypi/agate-dbf
      :alt: Support Python versions

  agate-dbf adds read support for dbf files to `agate <https://github.com/wireservice/agate>`_.

  Important links:

  * agate             http://agate.rtfd.org
  * Documentation:    http://agate-dbf.rtfd.org
  * Repository:       https://github.com/wireservice/agate-dbf
  * Issues:           https://github.com/wireservice/agate-dbf/issues


pkgId: 87ce051f6a234a7b805c6223c697ab8ed7475f81be6af91bc87674dac150bc3a
name: python-agate-excel
arch: src
version: 0.2.5
epoch: 0
release: 1
summary: agate-excel adds read support for Excel files (xls and xlsx) to agate.
url: http://agate-excel.readthedocs.org/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-fc0dd8fc-cd7e-41eb-85e3-7f7631e52dbf
location_href: 00002963-python-agate-excel/python-agate-excel-0.2.5-1.src.rpm
checksum_type: sha256
description:
  .. image:: https://github.com/wireservice/agate-excel/workflows/CI/badge.svg
      :target: https://github.com/wireservice/agate-excel/actions
      :alt: Build status

  .. image:: https://img.shields.io/pypi/dm/agate-excel.svg
      :target: https://pypi.python.org/pypi/agate-excel
      :alt: PyPI downloads

  .. image:: https://img.shields.io/pypi/v/agate-excel.svg
      :target: https://pypi.python.org/pypi/agate-excel
      :alt: Version

  .. image:: https://img.shields.io/pypi/l/agate-excel.svg
      :target: https://pypi.python.org/pypi/agate-excel
      :alt: License

  .. image:: https://img.shields.io/pypi/pyversions/agate-excel.svg
      :target: https://pypi.python.org/pypi/agate-excel
      :alt: Support Python versions

  agate-excel adds read support for Excel files (xls and xlsx) to `agate <https://github.com/wireservice/agate>`_.

  Important links:

  * agate             http://agate.rtfd.org
  * Documentation:    http://agate-excel.rtfd.org
  * Repository:       https://github.com/wireservice/agate-excel
  * Issues:           https://github.com/wireservice/agate-excel/issues


pkgId: 2bfa92be832ff44c5053591a5eac8f2964af815d118d832d3a33d622c75dc8d3
name: python-agate-sql
arch: src
version: 0.5.9
epoch: 0
release: 1
summary: agate-sql adds SQL read/write support to agate.
url: http://agate-sql.readthedocs.org/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e60d8f4c-d166-4346-bee6-c0957db19023
location_href: 00002964-python-agate-sql/python-agate-sql-0.5.9-1.src.rpm
checksum_type: sha256
description:
  .. image:: https://github.com/wireservice/agate-sql/workflows/CI/badge.svg
      :target: https://github.com/wireservice/agate-sql/actions
      :alt: Build status

  .. image:: https://img.shields.io/pypi/dm/agate-sql.svg
      :target: https://pypi.python.org/pypi/agate-sql
      :alt: PyPI downloads

  .. image:: https://img.shields.io/pypi/v/agate-sql.svg
      :target: https://pypi.python.org/pypi/agate-sql
      :alt: Version

  .. image:: https://img.shields.io/pypi/l/agate-sql.svg
      :target: https://pypi.python.org/pypi/agate-sql
      :alt: License

  .. image:: https://img.shields.io/pypi/pyversions/agate-sql.svg
      :target: https://pypi.python.org/pypi/agate-sql
      :alt: Support Python versions

  agate-sql adds SQL read/write support to `agate <https://github.com/wireservice/agate>`_.

  Important links:

  * agate             http://agate.rtfd.org
  * Documentation:    http://agate-sql.rtfd.org
  * Repository:       https://github.com/wireservice/agate-sql
  * Issues:           https://github.com/wireservice/agate-sql/issues


pkgId: 5a17610db8cc7212ccb79b11572156051ab2f1c0560863d99789a0d19d2d0557
name: python-ahocorapy
arch: src
version: 1.6.2
epoch: 0
release: 1
summary: ahocorapy - Pure python ahocorasick implementation
url: https://github.com/abusix/ahocorapy
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-7f7ec418-72e7-4160-b624-97c5aba051f9
location_href: 00010437-python-ahocorapy/python-ahocorapy-1.6.2-1.src.rpm
checksum_type: sha256
description:
  [![Test](https://img.shields.io/github/workflow/status/abusix/ahocorapy/test/master)](https://github.com/abusix/ahocorapy/actions)
  [![Test Coverage](https://img.shields.io/codecov/c/gh/abusix/ahocorapy/master)](https://codecov.io/gh/abusix/ahocorapy)
  [![Downloads](https://pepy.tech/badge/ahocorapy)](https://pepy.tech/project/ahocorapy)
  [![PyPi Version](https://img.shields.io/pypi/v/ahocorapy.svg)](https://pypi.python.org/pypi/ahocorapy)
  [![PyPi License](https://img.shields.io/pypi/l/ahocorapy.svg)](https://pypi.python.org/pypi/ahocorapy)
  [![PyPi Versions](https://img.shields.io/pypi/pyversions/ahocorapy.svg)](https://pypi.python.org/pypi/ahocorapy)
  [![PyPi Wheel](https://img.shields.io/pypi/wheel/ahocorapy.svg)](https://pypi.python.org/pypi/ahocorapy)



  ahocorapy is a pure python implementation of the Aho-Corasick Algorithm.
  Given a list of keywords one can check if at least one of the keywords exist in a given text in linear time.





  We started working on this in the beginning of 2016. Our requirements included unicode support combined with python2.7. That
  was impossible with C-extension based libraries (like [pyahocorasick](https://github.com/WojciechMula/pyahocorasick/)). Pure
  python libraries were very slow or unusable due to memory explosion. Since then another pure python library was released
  [py-aho-corasick](https://github.com/JanFan/py-aho-corasick). The repository also contains some discussion about different
  implementations.
  There is also [acora](https://github.com/scoder/acora), but it includes the note ('current construction algorithm is not
  suitable for really large sets of keywords') which really was the case the last time I tested, because RAM ran out quickly.



  - Compared to [pyahocorasick](https://github.com/WojciechMula/pyahocorasick/) our library supports unicode in python 2.7 just like [py-aho-corasick](https://github.com/JanFan/py-aho-corasick).
    We don't use any C-Extension so the library is not platform dependant.

  - On top of the standard Aho-Corasick longest suffix search, we also perform a shortcutting routine in the end, so
    that our lookup is fast while, the setup takes longer. During set up we go through the states and directly add transitions that are
    "offered" by the longest suffix or their longest suffixes. This leads to faster lookup times, because in the end we only have to
    follow simple transitions and don't have to perform any additional suffix lookup. It also leads to a bigger memory footprint,
    because the number of transitions is higher, because they are all included explicitely and not implicitely hidden by suffix pointers.

  - We added a small tool that helps you visualize the resulting graph. This may help understanding the algorithm, if you'd like. See below.

  - Fully pickleable (pythons built-in de-/serialization). ahocorapy uses a non-recursive custom implementation for de-/serialization so that even huge keyword trees can be pickled.



  I compared the two libraries mentioned above with ahocorapy. We used 50,000 keywords long list and an input text of 34,199 characters.
  In the text only one keyword of the list is contained.
  The setup process was run once per library and the search process was run 100 times. The following results are in seconds (not averaged for the lookup).

  You can perform this test yourself using `python tests/ahocorapy_performance_test.py`. (Except for the pyahocorasick_py results. These were taken by importing the
  pure python version of the code of [pyahocorasick](https://github.com/WojciechMula/pyahocorasick/). It's not available through pypi
  as stated in the code.)

  I also added measurements for the pure python libraries with run with pypy.

  These are the results:

  | Library (Variant)                                      | Setup (1x) | Search (100x) |
  | ------------------------------------------------------ | ---------- | ------------- |
  | ahocorapy\*                                            | 0.30s      | 0.29s         |
  | ahocorapy (run with pypy)\*                            | 0.37s      | 0.10s         |
  | pyahocorasick\*                                        | 0.04s      | 0.04s         |
  | pyahocorasick (run with pypy)\*                        | 0.10s      | 0.05s         |
  | pyahocorasick (pure python variant in github repo)\*\* | 0.50s      | 1.68s         |
  | py_aho_corasick\*                                      | 0.72s      | 4,60s         |
  | py_aho_corasick (run with pypy)\*                      | 0.83s      | 2.02s         |

  As expected the C-Extension shatters the pure python implementations. Even though there is probably still room for optimization in
  ahocorapy we are not going to get to the mark that pyahocorasick sets. ahocorapy's lookups are faster than py_aho_corasick.
  When run with pypy ahocorapy is almost as fast as pyahocorasick, at least when it comes to
  searching. The setup overhead is higher due to the suffix shortcutting mechanism used.

  \* Specs

  CPU: AMD Ryzen 2700X
  Linux Kernel: 6.0.6
  CPython: 3.11.0
  pypy: PyPy 7.3.9 (Python 3.9.12) with GCC 10.2.1 20210130
  Date tested: 2022-11-22

  \*\* Old measurement with different specs





  ```
  pip install ahocorapy
  ```



  ```python
  from ahocorapy.keywordtree import KeywordTree
  kwtree = KeywordTree(case_insensitive=True)
  kwtree.add('malaga')
  kwtree.add('lacrosse')
  kwtree.add('mallorca')
  kwtree.add('mallorca bella')
  kwtree.add('orca')
  kwtree.finalize()
  ```



  ```python
  result = kwtree.search('My favorite islands are malaga and sylt.')
  print(result)
  ```

  Prints :

  ```python
  ('malaga', 24)
  ```

  The search_all method returns a generator for all keywords found, or None if there is none.

  ```python
  results = kwtree.search_all('malheur on mallorca bellacrosse')
  for result in results:
      print(result)
  ```

  Prints :

  ```python
  ('mallorca', 11)
  ('orca', 15)
  ('mallorca bella', 11)
  ('lacrosse', 23)
  ```



  The construction of the tree is currently NOT thread safe. That means `add`ing shouldn't be called multiple times concurrently. Behavior is undefined.

  After `finalize` is called you can use the `search` functionality on the same tree from multiple threads at the same time. So that part is thread safe.



  You can print the underlying graph with the Visualizer class.
  This feature requires a working pygraphviz library installed.

  ```python
  from ahocorapy_visualizer.visualizer import Visualizer
  visualizer = Visualizer()
  visualizer.draw('readme_example.png', kwtree)
  ```

  The resulting .png of the graph looks like this:

  ![graph for kwtree](https://raw.githubusercontent.com/abusix/ahocorapy/master/img/readme_example.png "Keyword Tree")


pkgId: 0c78382f187982864c4f61fd229afb865028d778773347e8f9aa744be702154b
name: python-ailment
arch: src
version: 9.2.40
epoch: 0
release: 1
summary: The angr intermediate language.
url: https://github.com/angr/ailment
rpm_license: BSD-2-Clause
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-4b4b7a62-4e08-474a-b033-cd82e794036e
location_href: 00002965-python-ailment/python-ailment-9.2.40-1.src.rpm
checksum_type: sha256
description:
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

  AIL is the angr intermediate language.


pkgId: e2c74f4b4b058beefb157843d9d510a48ee0fa60ac6cdce455d646e4631fcbce
name: python-aioasuswrt
arch: src
version: 1.4.0
epoch: 0
release: 1
summary: Api wrapper for Asuswrt https://www.asus.com/ASUSWRT/
url: https://github.com/kennedyshead/aioasuswrt
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-ec311c22-0f0d-4265-9acd-ebf3e2fc3583
location_href: 00002966-python-aioasuswrt/python-aioasuswrt-1.4.0-1.src.rpm
checksum_type: sha256
description:
  Small wrapper for asuswrt. ![Python package](https://github.com/kennedyshead/aioasuswrt/workflows/Python%20package/badge.svg)



  `python setup.py test`


  [@mvn23](https://github.com/mvn23)
  [@halkeye](https://github.com/halkeye)
  [@maweki](https://github.com/maweki)
  [@quarcko](https://github.com/quarcko)
  [@wdullaer](https://github.com/wdullaer)


  There are many different versions of asuswrt and sometimes they just dont work in current implementation.
  If you have a problem with your specific router open an issue, but please add as much info as you can and atleast:

  * Version of router
  * Version of Asuswrt




  You can always create an issue in this tracker.
  To test and give us the information needed you could run:
  ```python

  import asyncio
  import logging

  import sys

  from aioasuswrt.asuswrt import AsusWrt

  component = AsusWrt('192.168.1.1', 22, username='****', password='****')
  logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
  logger = logging.getLogger(__name__)


  async def print_data():
      logger.debug("wl")
      logger.debug(await component.connection.async_run_command('for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done'))
      dev = await component.async_get_wl()
      logger.debug(dev)
      logger.debug("arp")
      logger.debug(await component.connection.async_run_command('arp -n'))
      dev.update(await component.async_get_arp())
      logger.debug(dev)
      logger.debug("neigh")
      logger.debug(await component.connection.async_run_command('ip neigh'))
      dev.update(await component.async_get_neigh(dev))
      logger.debug(dev)
      logger.debug("leases")
      logger.debug(await component.connection.async_run_command('cat /var/lib/misc/dnsmasq.leases'))
      dev.update(await component.async_get_leases(dev))
      logger.debug(dev)


  loop = asyncio.get_event_loop()

  loop.run_until_complete(print_data())
  loop.close()

  ```
  Coffeefund: 1Huz6vNN6drX3Fq1sU98wPqNSdMPvkMBJG


pkgId: 053f7e395eab522dfa5b8a7bc1fb03b2b4d3556c88a72ab12916b410a80c89fa
name: python-aiobotocore
arch: src
version: 2.5.0
epoch: 0
release: 1
summary: Async client for aws services using botocore and aiohttp
url: https://github.com/aio-libs/aiobotocore
rpm_license: Apache License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-5223b3d1-291f-43a9-b0a8-1659f39d0d9e
location_href: 00009006-python-aiobotocore/python-aiobotocore-2.5.0-1.src.rpm
checksum_type: sha256
description:
  Async client for amazon services using botocore_ and aiohttp_/asyncio_.
  This library is a mostly full featured asynchronous version of botocore.


pkgId: cd9493334f86c3fe21f92aa573753b871ff9b4736f85ef89dc0ec3a360f08e83
name: python-aiocometd
arch: src
version: 0.4.5
epoch: 0
release: 1
summary: CometD client for asyncio
url: https://github.com/robertmrk/aiocometd
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-27a30736-d95c-4c91-8012-ae27a00dca45
location_href: 00013506-python-aiocometd/python-aiocometd-0.4.5-1.src.rpm
checksum_type: sha256
description:
  aiocometd is a CometD_ client built using asyncio_, implementing the Bayeux_
  protocol.
  CometD_ is a scalable WebSocket and HTTP based event and message routing bus.
  CometD_ makes use of WebSocket and HTTP push technologies known as Comet_ to
  provide low-latency data from the server to browsers and client applications.


pkgId: bae6ffe6cb823ec04ac914eb78822b6eba6d8727a394d7a0ff53c4d388cbd25b
name: python-aiodiscover
arch: src
version: 1.4.16
epoch: 0
release: 1
summary: Discover hosts by arp and ptr lookup
url: https://github.com/bdraco/aiodiscover
rpm_license: Apache Software License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-9d2223de-30af-47b7-b348-f4a574f82220
location_href: 00013031-python-aiodiscover/python-aiodiscover-1.4.16-1.src.rpm
checksum_type: sha256
description:
  -   Discover hosts on the network via ARP and PTR lookup

  ```python
  import asyncio
  import pprint
  from aiodiscover import DiscoverHosts
  discover_hosts = DiscoverHosts()
  hosts = asyncio.run(discover_hosts.async_discover())
  pprint.pprint(hosts)
  ```

  **Stable Release:** `pip install aiodiscover`<br>
  **Development Head:** `pip install git+https://github.com/bdraco/aiodiscover.git`

  For full package documentation please visit [bdraco.github.io/aiodiscover](https://bdraco.github.io/aiodiscover).

  See [CONTRIBUTING.md](CONTRIBUTING.md) for information related to developing the code.

  1. `pip install -e .[dev]`
      This will install your package in editable mode with all the required development
      dependencies (i.e. `tox`).
  2. `make build`
      This will run `tox` which will run all your tests in both Python 3.7
      and Python 3.8 as well as linting your code.
  3. `make clean`
      This will clean up various Python and build generated files so that you can ensure
      that you are working in a clean environment.
  4. `make docs`
      This will generate and launch a web browser to view the most up-to-date
      documentation for your Python package.

  -   Turn your project into a GitHub repository:
      -   Make an account on [github.com](https://github.com)
      -   Go to [make a new repository](https://github.com/new)
      -   _Recommendations:_
          -   _It is strongly recommended to make the repository name the same as the Python
              package name_
          -   _A lot of the following optional steps are *free* if the repository is Public,
              plus open source is cool_
      -   After a GitHub repo has been created, run the commands listed under:
          "...or push an existing repository from the command line"
  -   Register your project with Codecov:
      -   Make an account on [codecov.io](https://codecov.io)(Recommended to sign in with GitHub)
          everything else will be handled for you.
  -   Ensure that you have set GitHub pages to build the `gh-pages` branch by selecting the
      `gh-pages` branch in the dropdown in the "GitHub Pages" section of the repository settings.
      ([Repo Settings](https://github.com/bdraco/aiodiscover/settings))
  -   Register your project with PyPI:
      -   Make an account on [pypi.org](https://pypi.org)
      -   Go to your GitHub repository's settings and under the
          [Secrets tab](https://github.com/bdraco/aiodiscover/settings/secrets/actions),
          add a secret called `PYPI_TOKEN` with your password for your PyPI account.
          Don't worry, no one will see this password because it will be encrypted.
      -   Next time you push to the branch `main` after using `bump2version`, GitHub
          actions will build and deploy your Python package to PyPI.

  1. `main` is for the most up-to-date development, very rarely should you directly
     commit to this branch. GitHub Actions will run on every push and on a CRON to this
     branch but still recommended to commit to your development branches and make pull
     requests to main. If you push a tagged commit with bumpversion, this will also release to PyPI.
  2. Your day-to-day work should exist on branches separate from `main`. Even if it is
     just yourself working on the repository, make a PR from your working branch to `main`
     so that you can ensure your commits don't break the development head. GitHub Actions
     will run on every push to any branch or any pull request from any branch to any other
     branch.
  3. It is recommended to use "Squash and Merge" commits when committing PR's. It makes
     each set of changes to `main` atomic and as a side effect naturally encourages small
     well defined PR's.
  **Apache Software License 2.0**


pkgId: 309e302b2c0917f6e248ffcf474093d30dd9815c64dcdcc5b5233e1dc4926dc9
name: python-aiodogstatsd
arch: src
version: 0.16.0.post0
epoch: 0
release: 1
summary: An asyncio-based client for sending metrics to StatsD with support of DogStatsD extension
url: https://github.com/Gr1N/aiodogstatsd
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-794bd30f-d0cb-48dd-8fc2-784cd054edde
location_href: 00013344-python-aiodogstatsd/python-aiodogstatsd-0.16.0.post0-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://github.com/Gr1N/aiodogstatsd/workflows/default/badge.svg)](https://github.com/Gr1N/aiodogstatsd/actions?query=workflow%3Adefault) [![codecov](https://codecov.io/gh/Gr1N/aiodogstatsd/branch/master/graph/badge.svg)](https://codecov.io/gh/Gr1N/aiodogstatsd) ![PyPI](https://img.shields.io/pypi/v/aiodogstatsd.svg?label=pypi%20version) ![PyPI - Downloads](https://img.shields.io/pypi/dm/aiodogstatsd.svg?label=pypi%20downloads) ![GitHub](https://img.shields.io/github/license/Gr1N/aiodogstatsd.svg)

  An asyncio-based client for sending metrics to StatsD with support of [DogStatsD](https://docs.datadoghq.com/developers/dogstatsd/) extension.

  Library fully tested with [statsd_exporter](https://github.com/prometheus/statsd_exporter) and supports `gauge`, `counter`, `histogram`, `distribution` and `timing` types.

  `aiodogstatsd` client by default uses _9125_ port. It's a default port for [statsd_exporter](https://github.com/prometheus/statsd_exporter) and it's different from _8125_ which is used by default in StatsD and [DataDog](https://www.datadoghq.com/). Initialize the client with the proper port you need if it's different from _9125_.



  Just type:

  ```sh
  $ pip install aiodogstatsd
  ```



  Just simply use client as a context manager and send any metric you want:

  ```python
  import asyncio

  import aiodogstatsd


  async def main():
      async with aiodogstatsd.Client() as client:
          client.increment("users.online")


  asyncio.run(main())
  ```

  Please follow [documentation](https://gr1n.github.io/aiodogstatsd) or look at [`examples/`](https://github.com/Gr1N/aiodogstatsd/tree/master/examples) directory to find more examples of library usage, e.g. integration with [`AIOHTTP`](https://aiohttp.readthedocs.io/) or [`Starlette`](https://www.starlette.io) frameworks.



  To work on the `aiodogstatsd` codebase, you'll want to clone the project locally and install the required dependencies via [poetry](https://poetry.eustace.io):

  ```sh
  $ git clone git@github.com:Gr1N/aiodogstatsd.git
  $ make install
  ```

  To run tests and linters use command below:

  ```sh
  $ make lint && make test
  ```

  If you want to run only tests or linters you can explicitly specify which test environment you want to run, e.g.:

  ```sh
  $ make lint-black
  ```



  `aiodogstatsd` is licensed under the MIT license. See the license file for details.


pkgId: c8336953f1e1c29f02cdc05bc4a232965ee1e84f40b90c073bfcf460df1c248e
name: python-aioesphomeapi
arch: src
version: 13.5.0
epoch: 0
release: 1
summary: Python API for interacting with ESPHome devices.
url: https://esphome.io/
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-7e74841f-526a-49c5-830b-35f3bf496055
location_href: 00002971-python-aioesphomeapi/python-aioesphomeapi-13.5.0-1.src.rpm
checksum_type: sha256
description:
  ``aioesphomeapi`` allows you to interact with devices flashed with `ESPHome <https://esphome.io/>`_.


pkgId: 29060f296f95a7de0c1597b4c8f72e944de0f9a04a95910f99e4072a5641fcbe
name: python-aioextensions
arch: src
version: 21.7.2261349
epoch: 0
release: 1
summary: High performance functions to work with the async IO
url: https://fluidattacks.github.io/aioextensions
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-64b66475-2b9e-4330-a11e-d55c49c5b016
location_href: 00011200-python-aioextensions/python-aioextensions-21.7.2261349-1.src.rpm
checksum_type: sha256
description:
  [![Release](
  https://img.shields.io/pypi/v/aioextensions?color=success&label=Release&style=flat-square)](
  https://pypi.org/project/aioextensions)
  [![Documentation](
  https://img.shields.io/badge/Documentation-click_here!-success?style=flat-square)](
  https://fluidattacks.github.io/aioextensions/)
  [![Downloads](
  https://img.shields.io/pypi/dm/aioextensions?label=Downloads&style=flat-square)](
  https://pypi.org/project/aioextensions)
  [![Status](
  https://img.shields.io/pypi/status/aioextensions?label=Status&style=flat-square)](
  https://pypi.org/project/aioextensions)
  [![Coverage](
  https://img.shields.io/badge/Coverage-100%25-success?style=flat-square)](
  https://fluidattacks.github.io/aioextensions/)
  [![License](
  https://img.shields.io/pypi/l/aioextensions?color=success&label=License&style=flat-square)](
  https://github.com/fluidattacks/aioextensions/blob/latest/LICENSE.md)


pkgId: 23b97c2aab5cb668493eb70c41a79ff6fdd3c57638c9d3a657731c95fca9a8ee
name: python-aiofiles
arch: src
version: 23.1.0
epoch: 0
release: 1
summary: File support for asyncio.
url: https://github.com/Tinche/aiofiles
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0ea88a8c-179b-4196-b8d4-680bb6302113
location_href: 00002972-python-aiofiles/python-aiofiles-23.1.0-1.src.rpm
checksum_type: sha256
description:
  **aiofiles** is an Apache2 licensed library, written in Python, for handling local
  disk files in asyncio applications.
  Ordinary local file IO is blocking, and cannot easily and portably made
  asynchronous. This means doing file IO may interfere with asyncio applications,
  which shouldn't block the executing thread. aiofiles helps with this by
  introducing asynchronous versions of files that support delegating operations to
  a separate thread pool.
      async with aiofiles.open('filename', mode='r') as f:
          contents = await f.read()
      print(contents)
      'My file contents'
  Asynchronous iteration is also supported.
      async with aiofiles.open('filename') as f:
          async for line in f:
  Asynchronous interface to tempfile module.
      async with aiofiles.tempfile.TemporaryFile('wb') as f:
          await f.write(b'Hello, World!')


pkgId: 0dfb0f8e8ea4e2e877c9002179a17f89f5ebc73e81ee5faad2a29d272ae74709
name: python-aioflo
arch: src
version: 2021.11.0
epoch: 0
release: 1
summary: A Python3, async-friendly library for Flo by Moen Smart Water Detectors
url: https://github.com/bachya/aioflo
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e71448c2-1e42-4fcb-b606-8de8cfaf9021
location_href: 00002973-python-aioflo/python-aioflo-2021.11.0-1.src.rpm
checksum_type: sha256
description:
  [![CI](https://github.com/bachya/aioflo/workflows/CI/badge.svg)](https://github.com/bachya/aioflo/actions)
  [![PyPi](https://img.shields.io/pypi/v/aioflo.svg)](https://pypi.python.org/pypi/aioflo)
  [![Version](https://img.shields.io/pypi/pyversions/aioflo.svg)](https://pypi.python.org/pypi/aioflo)
  [![License](https://img.shields.io/pypi/l/aioflo.svg)](https://github.com/bachya/aioflo/blob/master/LICENSE)
  [![Code Coverage](https://codecov.io/gh/bachya/aioflo/branch/master/graph/badge.svg)](https://codecov.io/gh/bachya/aioflo)
  [![Maintainability](https://api.codeclimate.com/v1/badges/1b6949e0c97708925315/maintainability)](https://codeclimate.com/github/bachya/aioflo/maintainability)
  [![Say Thanks](https://img.shields.io/badge/SayThanks-!-1EAEDB.svg)](https://saythanks.io/to/bachya)

  `aioflo` is a Python 3, `asyncio`-friendly library for interacting with
  [Flo by Moen Smart Water Detectors](https://www.moen.com/flo).



  `aioflo` is currently supported on:

  * Python 3.6
  * Python 3.7
  * Python 3.8
  * Python 3.9
  * Python 3.10



  ```python
  pip install aioflo
  ```



  ```python
  import asyncio

  from aiohttp import ClientSession

  from aioflo import async_get_api


  async def main() -> None:
      """Run!"""
      api = await async_get_api("<EMAIL>", "<PASSWORD>")

      
      user_info = await api.user.get_info()
      a_location_id = user_info["locations"][0]["id"]

      
      location_info = await api.location.get_info(a_location_id)

      
      first_device_id = location_info["devices"][0]["id"]
      device_info = await api.device.get_info(first_device_id)

      
      health_test_response = await api.device.run_health_test(first_device_id)

      
      close_valve_response = await api.device.close_valve(first_device_id)

      
      open_valve_response = await api.device.open_valve(first_device_id)

      
      consumption_info = await api.water.get_consumption_info(
          a_location_id,
          datetime(2020, 1, 16, 0, 0),
          datetime(2020, 1, 16, 23, 59, 59, 999000),
      )

      
      metrics = await api.water.get_metrics(
          "<DEVICE_MAC_ADDRESS>",
          datetime(2020, 1, 16, 0, 0),
          datetime(2020, 1, 16, 23, 59, 59, 999000),
      )

      
      await set_mode_away(a_location_id)

      
      await set_mode_home(a_location_id)

      
      await set_mode_sleep(a_location_id, 120, "away")


  asyncio.run(main())
  ```

  By default, the library creates a new connection to Flo with each coroutine. If you are
  calling a large number of coroutines (or merely want to squeeze out every second of
  runtime savings possible), an
  [`aiohttp`](https://github.com/aio-libs/aiohttp) `ClientSession` can be used for connection
  pooling:

  ```python
  import asyncio

  from aiohttp import ClientSession

  from aioflo import async_get_api


  async def main() -> None:
      """Create the aiohttp session and run the example."""
      async with ClientSession() as websession:
          api = await async_get_api("<EMAIL>", "<PASSWORD>", session=session)

          
          ping_response = await api.presence.ping()

          
          user_info = await api.user.get_info()
          a_location_id = user_info["locations"][0]["id"]

          
          location_info = await api.location.get_info(a_location_id)

          
          first_device_id = location_info["devices"][0]["id"]
          device_info = await api.device.get_info(first_device_id)

          
          health_test_response = await api.device.run_health_test(first_device_id)

          
          close_valve_response = await api.device.close_valve(first_device_id)

          
          open_valve_response = await api.device.open_valve(first_device_id)

          
          consumption_info = await api.water.get_consumption_info(
              a_location_id,
              datetime(2020, 1, 16, 0, 0),
              datetime(2020, 1, 16, 23, 59, 59, 999000),
          )

          
          metrics = await api.water.get_metrics(
              "<DEVICE_MAC_ADDRESS>",
              datetime(2020, 1, 16, 0, 0),
              datetime(2020, 1, 16, 23, 59, 59, 999000),
          )

          
          await set_mode_away(a_location_id)

          
          await set_mode_home(a_location_id)

          
          await set_mode_sleep(a_location_id, 120, "away")


  asyncio.run(main())
  ```



  1. [Check for open features/bugs](https://github.com/bachya/aioflo/issues)
    or [initiate a discussion on one](https://github.com/bachya/aioflo/issues/new).
  2. [Fork the repository](https://github.com/bachya/aioflo/fork).
  3. (_optional, but highly recommended_) Create a virtual environment: `python3 -m venv .venv`
  4. (_optional, but highly recommended_) Enter the virtual environment: `source ./.venv/bin/activate`
  5. Install the dev environment: `script/setup`
  6. Code your new feature or bug fix.
  7. Write tests that cover your new functionality.
  8. Run tests and ensure 100% code coverage: `script/test`
  9. Update `README.md` with any new documentation.
  10. Add yourself to `AUTHORS.md`.
  11. Submit a pull request!


pkgId: b78912d0ac77f06c1ca6fd25f44e27d67864b7a57e12e75aba07a03574d0ed20
name: python-aiogithubapi
arch: src
version: 23.2.1
epoch: 0
release: 1
summary: Asynchronous Python client for the GitHub API
url: https://github.com/ludeeus/aiogithubapi
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-094c82e8-fde5-4931-b311-adef9d0dff37
location_href: 00010014-python-aiogithubapi/python-aiogithubapi-23.2.1-1.src.rpm
checksum_type: sha256
description:
  [![codecov](https://codecov.io/gh/ludeeus/aiogithubapi/branch/main/graph/badge.svg)](https://codecov.io/gh/ludeeus/aiogithubapi)
  ![python version](https://img.shields.io/badge/Python-3.8=><=3.11-blue.svg)
  [![PyPI](https://img.shields.io/pypi/v/aiogithubapi)](https://pypi.org/project/aiogithubapi)
  ![Actions](https://github.com/ludeeus/aiogithubapi/workflows/Actions/badge.svg?branch=main)

  _Asynchronous Python client for the GitHub API_

  This is not a full client for the API (Have you seen it, it's huge), and will probably never be.
  Things are added when needed or requested.

  If something you need is missing please raise [a feature request to have it added](https://github.com/ludeeus/aiogithubapi/issues/new?assignees=&labels=enhancement&template=feature_request.md) or [create a PR 🎉](#contribute).

  For examples on how to use it see the [tests directory](./tests).



  ```bash
  python3 -m pip install aiogithubapi
  ```



  **Note: This project is currently in a transition phase.**

  In august 2021 a new API interface was introduced (in [#42](https://github.com/ludeeus/aiogithubapi/pull/42)). With that addition, all parts of the old interface is now considered deprecated.
  Which includes:

  - The [`aiogithubapi.common`](./aiogithubapi/common) module
  - The [`aiogithubapi.legacy`](./aiogithubapi/legacy) module
  - The [`aiogithubapi.objects`](./aiogithubapi/objects) module
  - All classes starting with `AIOGitHub`
  - The `async_call_api` function in the [`aiogithubapi.helpers.py`](./aiogithubapi/helpers.py) file
  - The `GitHubDevice` class in `aiogithubapi`, replaced with `GitHubDeviceAPI`
  - The `GitHub` class in `aiogithubapi`, replaced with `GitHubAPI`

  Later this year (2022), warning logs will start to be emitted for deprecated code.

  Early next year (2023), the old code will be removed.



  **All** contributions are welcome!

  1. Fork the repository
  2. Clone the repository locally and open the devcontainer or use GitHub codespaces
  3. Do your changes
  4. Lint the files with `make lint`
  5. Ensure all tests passes with `make test`
  6. Ensure 100% coverage with `make coverage`
  7. Commit your work, and push it to GitHub
  8. Create a PR against the `main` branch


pkgId: 95bc95b7bc7e0a418c79d03e4659ce93e3672d96936ebc50a2a5127fad10fdfa
name: python-aiogqlc
arch: src
version: 3.1.0
epoch: 0
release: 1
summary: aiohttp based GraphQL client with file upload support
url: https://github.com/DoctorJohn/aiogqlc
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-934a99df-70ee-4c40-945f-a71817c7e93e
location_href: 00002975-python-aiogqlc/python-aiogqlc-3.1.0-1.src.rpm
checksum_type: sha256
description:
  [![Versions][versions-image]][versions-url]
  [![PyPI][pypi-image]][pypi-url]
  [![Downloads][downloads-image]][downloads-url]
  [![Codecov][codecov-image]][codecov-url]
  [![License][license-image]][license-url]

  [versions-image]: https://img.shields.io/pypi/pyversions/aiogqlc
  [versions-url]: https://github.com/DoctorJohn/aiogqlc/blob/master/setup.py
  [pypi-image]: https://img.shields.io/pypi/v/aiogqlc
  [pypi-url]: https://pypi.org/project/aiogqlc/
  [downloads-image]: https://img.shields.io/pypi/dm/aiogqlc
  [downloads-url]: https://pypi.org/project/aiogqlc/
  [codecov-image]: https://codecov.io/gh/DoctorJohn/aiogqlc/branch/main/graph/badge.svg?token=63WRUHG8SW
  [codecov-url]: https://codecov.io/gh/DoctorJohn/aiogqlc
  [license-image]: https://img.shields.io/pypi/l/aiogqlc
  [license-url]: https://github.com/DoctorJohn/aiogqlc/blob/master/LICENSE

  A Python asynchronous/IO GraphQL client based on [aiohttp][aiohttp-url].

  In addition to standard HTTP POST `queries` and `mutations` this client fully supports
  the [GraphQL multipart form requests spec][multipart-specs-url] for file uploads
  and the [graphql-ws subprotocol][graphql-ws-url] for WebSocket based `subscriptions`.

  **[Read the documentation][docs-url]**



  ```sh
  pip install aiogqlc
  ```



  Check the [documentation][docs-url] for detailed and more advanced usage examples.



  ```python
  import asyncio
  import aiohttp
  from aiogqlc import GraphQLClient

  ENDPOINT = "https://swapi-graphql.netlify.app/.netlify/functions/index"

  document = """
      query {
          allFilms {
              films {
                  title
              }
          }
      }
  """


  async def main():
      async with aiohttp.ClientSession() as session:
          client = GraphQLClient(document, session=session)
          response = await client.execute(document)
          print(await response.json())


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



  ```python
  import aiohttp
  from aiogqlc import GraphQLClient

  document = """
      mutation ($userId: ID!) {
          deleteUser (id: $userId) {
              id
          }
      }
  """

  variables = {
      "userId": "42",
  }


  async def main():
      async with aiohttp.ClientSession() as session:
          client = GraphQLClient("https://example.com/graphql/", session=session)
          response = await client.execute(document, variables=variables)
          print(await response.json())
  ```



  ```python
  import aiohttp
  from aiogqlc import GraphQLClient

  document = """
      mutation($file: Upload!) {
          uploadFile(file: $file) {
              size
          }
      }
  """

  variables = {
      "file": open("test.txt", "rb")
  }


  async def foo():
      async with aiohttp.ClientSession() as session:
          client = GraphQLClient("https://example.com/graphql/", session=session)
          response = await client.execute(document, variables=variables)
          print(await response.json())

  ```



  ```python
  import aiohttp
  from aiogqlc import GraphQLClient

  document = """
      subscription($postId: ID!) {
          likeAdded(postId: $postId)
      }
  """

  variables = {
      "postId": "42"
  }


  async def main():
      async with aiohttp.ClientSession() as session:
          client = GraphQLClient("https://example.com/graphql/", session=session)

          async with client.connect() as connection:
              async for payload in connection.subscribe(document, variables=variables):
                  print(payload)
  ```



  [Read the documentation][docs-url] to learn more about queries, mutations, subscriptions, file uploads and even authentication.

  [aiohttp-url]: https://github.com/aio-libs/aiohttp
  [multipart-specs-url]: https://github.com/jaydenseric/graphql-multipart-request-spec
  [graphql-ws-url]: https://github.com/apollographql/subscriptions-transport-ws
  [docs-url]: https://doctorjohn.github.io/aiogqlc/


pkgId: 10bcc490fe131d2b1126be3e43b1bd5c737814ea29d53cc107b199b179755d1d
name: python-aioguardian
arch: src
version: 2022.10.0
epoch: 0
release: 1
summary: A Python3 library for Elexa Guardian water valves and sensors
url: https://github.com/bachya/aioguardian
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f05fdecd-94cb-425e-9c3e-875c45b1b2a4
location_href: 00002976-python-aioguardian/python-aioguardian-2022.10.0-1.src.rpm
checksum_type: sha256
description:
  [![CI](https://github.com/bachya/aioguardian/workflows/CI/badge.svg)](https://github.com/bachya/aioguardian/actions)
  [![PyPi](https://img.shields.io/pypi/v/aioguardian.svg)](https://pypi.python.org/pypi/aioguardian)
  [![Version](https://img.shields.io/pypi/pyversions/aioguardian.svg)](https://pypi.python.org/pypi/aioguardian)
  [![License](https://img.shields.io/pypi/l/aioguardian.svg)](https://github.com/bachya/aioguardian/blob/main/LICENSE)
  [![Code Coverage](https://codecov.io/gh/bachya/aioguardian/branch/dev/graph/badge.svg)](https://codecov.io/gh/bachya/aioguardian)
  [![Maintainability](https://api.codeclimate.com/v1/badges/a03c9e96f19a3dc37f98/maintainability)](https://codeclimate.com/github/bachya/aioguardian/maintainability)
  [![Say Thanks](https://img.shields.io/badge/SayThanks-!-1EAEDB.svg)](https://saythanks.io/to/bachya)

  <a href="https://www.buymeacoffee.com/bachya1208P" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a>

  `aioguardian` is a Python3, `asyncio`-focused library for interacting with
  [the Guardian line of water valves and sensors from Elexa](http://getguardian.com).

  - [Installation](#installation)
  - [Python Versions](#python-versions)
  - [Documentation](#documentation)
  - [Contributing](#contributing)



  ```bash
  pip install aioguardian
  ```



  `aioguardian` is currently supported on:

  - Python 3.9
  - Python 3.10
  - Python 3.11



  Complete documentation can be found here: http://aioguardian.readthedocs.io



  1. [Check for open features/bugs](https://github.com/bachya/aioguardian/issues)
     or [initiate a discussion on one](https://github.com/bachya/aioguardian/issues/new).
  2. [Fork the repository](https://github.com/bachya/aioguardian/fork).
  3. (_optional, but highly recommended_) Create a virtual environment: `python3 -m venv .venv`
  4. (_optional, but highly recommended_) Enter the virtual environment: `source ./.venv/bin/activate`
  5. Install the dev environment: `script/setup`
  6. Code your new feature or bug fix.
  7. Write tests that cover your new functionality.
  8. Run tests and ensure 100% code coverage: `poetry run pytest --cov aioguardian tests`
  9. Update `README.md` with any new documentation.
  10. Add yourself to `AUTHORS.md`.
  11. Submit a pull request!


pkgId: df9ab3829b7de54a43e5214bbe88ddeb46be21a16927a603f605ec76ad711ec1
name: python-aiohomekit
arch: src
version: 2.6.2
epoch: 0
release: 1
summary: An asyncio HomeKit client
url: https://github.com/Jc2k/aiohomekit
rpm_license: Apache-2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-785358ae-71fd-4fba-9632-1bcf58b74933
location_href: 00002977-python-aiohomekit/python-aiohomekit-2.6.2-1.src.rpm
checksum_type: sha256
description:
  ![CI](https://github.com/Jc2k/aiohomekit/workflows/CI/badge.svg?event=push) [![codecov](https://codecov.io/gh/Jc2k/aiohomekit/branch/master/graph/badge.svg)](https://codecov.io/gh/Jc2k/aiohomekit)

  This library implements the HomeKit protocol for controlling Homekit accessories using asyncio.

  It's primary use is for with Home Assistant. We target the same versions of python as them and try to follow their code standards.

  At the moment we don't offer any API guarantees. API stability and documentation will happen after we are happy with how things are working within Home Assistant.



  `aiohomekit` is primarily for use with Home Assistant. Lots of users are using it with devices from a wide array of vendors. As a community open source project we do not have the hardware or time resources to certify every device with multiple vendors projects. We may be conservative about larger changes or changes that are low level. We do ask where possible that any changes should be tested with a certified HomeKit implementations of shipping products, not just against emulators or other uncertified implementations.

  Because API breaking changes would hamper our ability to quickly update Home Assistant to the latest code, if you can please submit a PR to update [homekit_controller](https://github.com/home-assistant/core/tree/dev/homeassistant/components/homekit_controller) too. If they don't your PR maybe on hold until someone is available to write such a PR.

  Please bear in mind that some shipping devices interpret the HAP specification loosely. In general we prefer to match the behaviour of real HAP controllers even where their behaviour is not strictly specified. Here are just some of the kinds of problems we've had to work around:

  * Despite the precise formatting of JSON being unspecified, there are devices in the wild that cannot handle spaces when parsing JSON. For example, `{"foo": "bar"}` vs `{"foo":"bar"}`. This means we never use a "pretty" encoding of JSON.
  * Despite a boolean being explicitly defined as `0`, `1`, `true` or `false` in the spec, some devices only support 3 of the 4. This means booleans must be encoded as `0` or `1`.
  * Some devices have shown themselves to be sensitive to headers being missing, in the wrong order or if there are extra headers. So we ensure that only the headers iOS sends are present, and that the casing and ordering is the same.
  * Some devices are sensitive to a HTTP message being split into separate TCP packets. So we take care to only write a full message to the network stack.

  And so on. As a rule we need to be strict about what we send and loose about what we receive.



  `aiohomekit` is primarily tested via Home Assistant with a Phillips Hue bridge and an Eve Extend bridge. It is known to work to some extent with many more devices though these are not currently explicitly documented anywhere at the moment.

  You can look at the problems your device has faced in the home-assistant [issues list](https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+homekit_controller%22).





  It's published on pypi as `aiohomekit` but its still under early development - proceed with caution.

  The main consumer of the API is the [homekit_controller](https://github.com/home-assistant/core/tree/dev/homeassistant/components/homekit_controller) in Home Assistant so that's the best place to get a sense of the API.



  No. Eventually we hope to via [aioble](https://github.com/detectlabs/aioble) which provides an asyncio bluetooth abstraction that works on Linux, macOS and Windows.



  No, this is just the client part. You should use one the of other implementations:

   * [homekit_python](https://github.com/jlusiardi/homekit_python/) (this is used a lot during aiohomekit development)
   * [HAP-python](https://github.com/ikalchev/HAP-python)



  At the time of writing this is the only python 3.7/3.8 asyncio HAP client with events support.



  Where possible aiohomekit uses libraries that are easy to install with pip, are ready available as wheels (including on Raspberry Pi via piwheels), are cross platform (including Windows) and are already used by Home Assistant. They should not introduce hard dependencies on uncommon system libraries. The intention here is to avoid any difficulty in the Home Assistant build process.

  People are often alarmed at the hand rolled HTTP code and suggest using an existing HTTP library like `aiohttp`. High level HTTP libraries are pretty much a non-starter because:

  * Of the difficulty of adding in HAP session security without monkey patches.
  * They don't expect responses without requests (i.e. events).
  * As mentioned above, some of these devices are very sensitive. We don't care if your change is compliant with every spec if it still makes a real world device cry. We are not in a position to demand these devices be fixed. So instead we strive for byte-for-byte accuracy on our write path. Any library would need to give us that flexibility.
  * Some parts of the responses are actually not HTTP, even though they look it.

  We are also just reluctant to make a change that large for something that is working with a lot of devices. There is a big chance of introducing a regression.

  Of course a working proof of concept (using a popular well maintained library) that has been tested with something like a Tado internet bridge (including events) would be interesting.



  This library wouldn't have been possible without homekit_python, a synchronous implementation of both the client and server parts of HAP.


pkgId: 71a0a51168b3664d0ad007f4983a073d4d0d41e90b744a836383b954a0c044de
name: python-aiohttp-debuginfo
arch: x86_64
version: 3.8.4
epoch: 0
release: 1
summary: Debug information for package python-aiohttp
url: https://github.com/aio-libs/aiohttp
rpm_license: Apache 2
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-05bb83aa-9048-4cd5-851b-daa6bcc68517
rpm_sourcerpm: python-aiohttp-3.8.4-1.src.rpm
location_href: 00002978-python-aiohttp/python-aiohttp-debuginfo-3.8.4-1.x86_64.rpm
checksum_type: sha256
description:
  This package provides debug information for package python-aiohttp.
  Debug information is useful when developing applications that use this
  package or when debugging this package.


pkgId: 4d29cd213933e7f7afc0ce1de75648db32e7d093d578c603e8eb893ae0cd9f63
name: python-aiohttp-debugsource
arch: x86_64
version: 3.8.4
epoch: 0
release: 1
summary: Debug sources for package python-aiohttp
url: https://github.com/aio-libs/aiohttp
rpm_license: Apache 2
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Development/Debug
rpm_buildhost: resalloc-05bb83aa-9048-4cd5-851b-daa6bcc68517
rpm_sourcerpm: python-aiohttp-3.8.4-1.src.rpm
location_href: 00002978-python-aiohttp/python-aiohttp-debugsource-3.8.4-1.x86_64.rpm
checksum_type: sha256
description:
  This package provides debug sources for package python-aiohttp.
  Debug sources are useful when developing applications that use this
  package or when debugging this package.


pkgId: a814c79d750976e0cb5bd072c6a1732b87e5a9d5e2d7f518a4b41ffeb95751d6
name: python-aiohttp-socks
arch: src
version: 0.8.0
epoch: 0
release: 1
summary: Proxy connector for aiohttp
url: https://github.com/romis2012/aiohttp-socks
rpm_license: Apache 2
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-8ad0bd80-8599-4294-af13-398034280fbf
location_href: 00002981-python-aiohttp-socks/python-aiohttp-socks-0.8.0-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://api.travis-ci.com/romis2012/aiohttp-socks.svg?branch=master)](https://travis-ci.com/github/romis2012/aiohttp-socks)
  [![Coverage Status](https://coveralls.io/repos/github/romis2012/aiohttp-socks/badge.svg?branch=master&_=x)](https://coveralls.io/github/romis2012/aiohttp-socks?branch=master)
  [![PyPI version](https://badge.fury.io/py/aiohttp-socks.svg)](https://badge.fury.io/py/aiohttp-socks)
  <!--
  [![Downloads](https://pepy.tech/badge/aiohttp-socks/month)](https://pepy.tech/project/aiohttp-socks)
  -->
  The `aiohttp-socks` package provides a proxy connector for [aiohttp](https://github.com/aio-libs/aiohttp).
  Supports SOCKS4(a), SOCKS5(h), HTTP (tunneling) as well as Proxy chains.
  It uses [python-socks](https://github.com/romis2012/python-socks) for core proxy functionality.



  - Python >= 3.6
  - aiohttp >= 2.3.2
  - python-socks[asyncio] >= 1.0.1


  ```
  pip install aiohttp_socks
  ```




  ```python
  import aiohttp
  from aiohttp_socks import ProxyType, ProxyConnector, ChainProxyConnector


  async def fetch(url):
      connector = ProxyConnector.from_url('socks5://user:password@127.0.0.1:1080')

      
      
      
      
      
      
      
      
      

      
      
      
      
      
      
      async with aiohttp.ClientSession(connector=connector) as session:
          async with session.get(url) as response:
              return await response.text()
  ```



  ```python
  from aiohttp_socks import open_connection

  async def fetch():
      reader, writer = await open_connection(
          proxy_url='socks5://user:password@127.0.0.1:1080',
          host='check-host.net',
          port=80
      )
      request = (b"GET /ip HTTP/1.1\r\n"
                 b"Host: check-host.net\r\n"
                 b"Connection: close\r\n\r\n")

      writer.write(request)
      return await reader.read(-1)
  ```



  Unlike [aiosocksy](https://github.com/romis2012/aiosocksy), aiohttp_socks has only single point of integration with aiohttp.
  This makes it easier to maintain compatibility with new aiohttp versions.


pkgId: 10a355d79f284897c81fe7a6b09a97bb7fd333ddff9b92015916118d2f365b1e
name: python-aiohttp-swagger
arch: src
version: 1.0.16
epoch: 0
release: 1
summary: Swagger API Documentation builder for aiohttp server
url: https://github.com/cr0hn/aiohttp-swagger
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-9afae3b0-3860-4244-aed1-51fd3c681592
location_href: 00013168-python-aiohttp-swagger/python-aiohttp-swagger-1.0.16-1.src.rpm
checksum_type: sha256
description:
  **LOOCKING FOR MAINTAINERS**!!!!!
  ![Logo](doc/source/_static/logo.png)
  [![Build Status](https://travis-ci.org/cr0hn/aiohttp-swagger.svg?branch=master)](https://travis-ci.org/cr0hn/aiohttp-swagger)
  [![codecov.io](https://codecov.io/github/cr0hn/aiohttp-swagger/coverage.svg?branch=master)](https://codecov.io/github/cr0hn/aiohttp-swagger)
  *aiohttp-swagger: Swagger API Documentation builder for aiohttp server*


pkgId: d463db5008d9d43c7d5c6a5936f769ccc4cf38d1a5b275be0780ba2cb36c2edf
name: python-aiohue
arch: src
version: 4.6.2
epoch: 0
release: 1
summary: Python module to talk to Philips Hue.
url: https://github.com/home-assistant-libs/aiohue
rpm_license: Apache License 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-2914c9e1-366b-4010-9ee8-4df401c2f247
location_href: 00002983-python-aiohue/python-aiohue-4.6.2-1.src.rpm
checksum_type: sha256
description:
  Requires Python 3.8+ and uses asyncio and aiohttp.

  For usage examples, see the examples folder.



  This library supports both the new style V2 API (only available on V2 bridges) and the old style V1 API.
  The biggest advantage of the V2 API is that it supports event based updates so polling is not required.



  Object hierarchy and property/method names should match the Philips Hue API.


pkgId: 1249da003e54975fe3283275639e2376021045a0306b80975e43d87f69c584fa
name: python-aioiotprov
arch: src
version: 0.0.8
epoch: 0
release: 1
summary: Library/utility to help provision various IoT devices.
url: http://github.com/frawau/aioiotprov
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-2c0d2ca6-caa9-44fb-b4e0-2ea9c3c19cd4
location_href: 00002984-python-aioiotprov/python-aioiotprov-0.0.8-1.src.rpm
checksum_type: sha256
description:
  A library/utility to provision IoT devices

  [![PyPI version fury.io](https://badge.fury.io/py/aioiotprov.svg)](https://pypi.python.org/pypi/aioiotprov)
  [![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-licen)
  [![GITHUB-BADGE](https://github.com/frawau/aioiotprov/workflows/black/badge.svg)](https://github.com/psf/black)

  This is early day.  Currently it can provision TP-Link smartplugs, Broadlink IR blasters,  Sonoff switches running
  the Tasmota firmware, Shelly devices and E-Trix power monitors, Xiaomi Yeelights (Possibly other Xiaomi too)

  This uses nmcli or wpa_cli to control and configure WIFI access. This means this will work only with
  Linux, and then again not all. It is working on a RaspberryPi running Debian Stretch (No NetworkManager) and works on a laptop ruunning Ubuntu 18.10 to 20.04

  When using nmcli, it is possible to use a connected WiFi adapter, this has not yet been tested with wpa_cli




  We are on PyPi so

      pip3 install aioiotprov




  You can just run it by doing

      python3 -m aioiotprov "My SSID" "My Secret Key"

  If you want to set user, password and for sonoff, MQTT, do something like

      python3 -m aioiotprov -u user -p password "My SSID" "My Secret Key" \
      -o "sonoff::mqtt==on||user=mqttuser||password=mqttpass||host=somehost||port=1883||client=DVES_XXXXXX||topic=sonoff-XXXXXX||full topic=blabla/%prefix%/%topic%/"

  For Shellies,

      python3 -m aioiotprov -u user -p password "My SSID" "My Secret Key" \
      -o "shelly::mqtt==on||user==mqttuser||password==mqttpass||host==somehost||port==1883"

  For Tasmota,

      python3 -m aioiotprov -d -u user -p passwd -o 'tasmota::mqtt==on||template=={"NAME":"Sonoff T1 3CH","GPIO":[17,255,255,255,23,22,18,19,21,56,0,0,0],"FLAG":0,"BASE":30}||host==somehost||user==mqttuser||password==mqttpasswd'
      -- SSID KEY


  Setting option will only works with plugins that can handle those. Use '::' after name of the plugin. Use '==' to set value
  and use '||' to separate options





  This is a plugin to provision [Broadlink](http://www.ibroadlink.com/) devices, like the A1 sensor or the RM4 Mini IR blaster.

  The device cannot be secured (no user/password setting) nor is any option available for this plugin.



  This is a plugin to provision [E-Trix](https://creativepowerthai.com/intro/) electrix metering devices.

  The device cannot be secured (no user/password setting) nor is any option available for this plugin.



  This is a plugin to provision [Shelly](https://shelly.cloud/) devices.

  If you set the user and the password, the device will be secured with those.

  The plugin supports the following options:

      mqtt:    on or off Use MQTT or not
          host: mqtt host URI (with port if needed) (only if mqtt=='on'
          user: mqtt username
          password: mqtt password




  This is a plugin to provision devices running the [Tasmota](https://tasmota.github.io/docs/) software.

  If you set the user and the password, the device will be secured with those.

  The plugin supports the following options:

      module:  The index of the module to use (e.g. 29 is for Sonoff T1 2CH)
      template: A device template. See the Tasmota documentation for details.
      mqtt:    on or off Use MQTT or not
          host: mqtt host (only if mqtt=='on'
          user: mqtt username
          password: mqtt password
          port: mqtt port
          client: see tasmota documentation for details
          topic: define the device unique id for MQTT
          full topic: : full topic e.g. mystuff/%prefix%/%topic%

      For 'client', 'topic' and 'full topic'  the string '{mac}' in the value will be replaced by
      the last 6 hexadigits of the MAC address in lowercase format.



  This is a plugin to provision [TP-Link](https://www.kasasmart.com/us/products/smart-plugs) smart plugs devices. It may work with other smart home devices, but this has not been tested.
  The device cannot be secured (no user/password setting) nor is any option available for this plugin.



  This plugin is based on the protocol description and the code  from [OpenMiHome](https://github.com/OpenMiHome/mihome-binary-protocol)

  This plugin provision [Xiaomi Yeelight](https://www.yeelight.com/).

  Upon successful provisioning,  the token, used to encrypt subsequent communications, is returned.

  By default, the key will be saved in the file ~/.aioyeelight. It can then be used with [aioyeelight](ttps://github.com/frawau/aioyeelight).
  If you do not wish to persist keys, use the nopersist option.

  Note:
      The plugin accepts the option 'owner' but this does not seem to have any effect.



  Mostly each plugin knows what SSID to look for. If one of the needed SSID is found, aioiotprov will connect
  to the SSID and hand over provisioning duties to the plugin.


pkgId: de075ad3c9773720d233ee4dcebd816089efe86f01bcdd6b70143110c7c6abf8
name: python-aiolifx
arch: src
version: 0.8.9
epoch: 0
release: 1
summary: API for local communication with LIFX devices over a LAN with asyncio.
url: http://github.com/frawau/aiolifx
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-ad45e01f-ebbc-40d3-b88f-769f517e2e07
location_href: 00002986-python-aiolifx/python-aiolifx-0.8.9-1.src.rpm
checksum_type: sha256
description:
  aiolifx is a Python 3/asyncio library to control Lifx LED lightbulbs over your LAN.

  [![PyPI version fury.io](https://badge.fury.io/py/aiolifx.svg)](https://pypi.python.org/pypi/aiolifx)
  [![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-licen)
  [![GITHUB-BADGE](https://github.com/frawau/aiolifx/workflows/black/badge.svg)](https://github.com/psf/black)
  [![Downloads](https://pepy.tech/badge/aiolifx/month)](https://pepy.tech/project/aiolifx)

  Most of it was taken from Meghan Clarkk lifxlan package (https://github.com/mclarkk)
  and adapted to Python 3 (and asyncio obviously)



  We are on PyPi so

       pip3 install aiolifx
  or
       python3 -m pip install aiolifx

  After installation, the utility

      aiolifx

  can be used to test/control devices.

  NOTE: When installing with Python 3.4, the installation produce an error message
        (syntax error). This can be safely ignored.




  Essentially, you create an object with at least 2 methods:

      - register
      - unregister

  You then start the LifxDiscovery task in asyncio. It will register any new light it finds.
  All the method communicating with the bulb can be passed a callback function to react to
  the bulb response. The callback should take 2 parameters:

      - a light object
      - the response message


  The easiest way is to look at the file in the examples directory. "Wifi" and "Uptime" use
  a callback to print the info when it is returned.


  In essence, the test program is this

      class bulbs():
      """ A simple class with a register and unregister methods
      """
          def __init__(self):
              self.bulbs=[]

          def register(self,bulb):
              self.bulbs.append(bulb)

          def unregister(self,bulb):
              idx=0
              for x in list([ y.mac_addr for y in self.bulbs]):
                  if x == bulb.mac_addr:
                      del(self.bulbs[idx])
                      break
                  idx+=1

      def readin():
      """Reading from stdin and displaying menu"""

          selection = sys.stdin.readline().strip("\n")
          DoSomething()

      MyBulbs = bulbs()
      loop = aio.get_event_loop()
      discovery = alix.LifxDiscovery(loop, MyBulbs)
      try:
          loop.add_reader(sys.stdin, readin)
          discovery.start()
          loop.run_forever()
      except:
          pass
      finally:
          discovery.cleanup()
          loop.remove_reader(sys.stdin)
          loop.close()


  Other things worth noting:

      -  Whilst LifxDiscovery uses UDP broadcast, the bulbs are
         connected with Unicast UDP

      - The socket connecting to a bulb is not closed unless the bulb is deemed to have
        gone the way of the Dodo. I've been using that for days with no problem

      - You can select to used IPv6 connection to the bulbs by passing an
        IPv6 prefix to LifxDiscovery. It's only been tried with /64 prefix.
        If you want to use a /48 prefix, add ":" (colon) at the end of the
        prefix and pray. (This means 2 colons at the end!)

      - I only have Original 1000, so I could not test with other types
        of bulbs

      - Unlike in lifxlan, set_waveform takes a dictionary with the right
        keys instead of all those parameters



  Thanks to Anders Melchiorsen and Avi Miller for their essential contributions


pkgId: 4c4e997baaf3605d87df6b2cc3767d88f2c9379a19b031decdd9fe4f2bc8cd77
name: python-aiomultiprocess
arch: src
version: 0.9.0
epoch: 0
release: 1
summary: AsyncIO version of the standard multiprocessing module
url: https://aiomultiprocess.omnilib.dev
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-60367ac4-e557-47ab-b32d-4f69b1860c82
location_href: 00002989-python-aiomultiprocess/python-aiomultiprocess-0.9.0-1.src.rpm
checksum_type: sha256
description:
  Take a modern Python codebase to the next level of performance.
  [![version](https://img.shields.io/pypi/v/aiomultiprocess.svg)](https://pypi.org/project/aiomultiprocess)
  [![documentation](https://readthedocs.org/projects/aiosqlite/badge/?version=latest)](https://aiomultiprocess.omnilib.dev)
  [![changelog](https://img.shields.io/badge/change-log-blue)](https://aiomultiprocess.omnilib.dev/en/latest/changelog.html)
  [![license](https://img.shields.io/pypi/l/aiomultiprocess.svg)](https://github.com/omnilib/aiomultiprocess/blob/master/LICENSE)
  [![build status](https://github.com/omnilib/aiomultiprocess/workflows/Build/badge.svg)](https://github.com/omnilib/aiomultiprocess/actions)
  [![code coverage](https://img.shields.io/codecov/c/gh/omnilib/aiomultiprocess)](https://codecov.io/gh/omnilib/aiomultiprocess)
  [![code style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
  On their own, AsyncIO and multiprocessing are useful, but limited:
  AsyncIO still can't exceed the speed of GIL, and multiprocessing only works on
  one task at a time.  But together, they can fully realize their true potential.
  aiomultiprocess presents a simple interface, while running a full AsyncIO event
  loop on each child process, enabling levels of concurrency never before seen
  in a Python application.  Each child process can execute multiple coroutines
  at once, limited only by the workload and number of cores available.
  Gathering tens of thousands of network requests in seconds is as easy as:
  ```python
  async with Pool() as pool:
      results = await pool.map(<coroutine function>, <items>)
  ```


pkgId: 3c5a2592461d5e31b8f4f76de1c2a9b3df5bbed4aa73d911366e83432c1c3286
name: python-aionotion
arch: src
version: 2022.10.0
epoch: 0
release: 1
summary: A simple Python 3 library for Notion Home Monitoring
url: https://github.com/bachya/aionotion
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-647c457d-dd0d-4615-bfd0-454fec0772de
location_href: 00002990-python-aionotion/python-aionotion-2022.10.0-1.src.rpm
checksum_type: sha256
description:
  [![CI](https://github.com/bachya/aionotion/workflows/CI/badge.svg)](https://github.com/bachya/aionotion/actions)
  [![PyPi](https://img.shields.io/pypi/v/aionotion.svg)](https://pypi.python.org/pypi/aionotion)
  [![Version](https://img.shields.io/pypi/pyversions/aionotion.svg)](https://pypi.python.org/pypi/aionotion)
  [![License](https://img.shields.io/pypi/l/aionotion.svg)](https://github.com/bachya/aionotion/blob/main/LICENSE)
  [![Code Coverage](https://codecov.io/gh/bachya/aionotion/branch/dev/graph/badge.svg)](https://codecov.io/gh/bachya/aionotion)
  [![Maintainability](https://api.codeclimate.com/v1/badges/bd79edca07c8e4529cba/maintainability)](https://codeclimate.com/github/bachya/aionotion/maintainability)
  [![Say Thanks](https://img.shields.io/badge/SayThanks-!-1EAEDB.svg)](https://saythanks.io/to/bachya)

  <a href="https://www.buymeacoffee.com/bachya1208P" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a>

  `aionotion` is a Python 3, asyncio-friendly library for interacting with
  [Notion](https://getnotion.com) home monitoring sensors.



  `aionotion` is currently supported on:

  - Python 3.9
  - Python 3.10
  - Python 3.11



  ```bash
  pip install aionotion
  ```



  ```python
  import asyncio

  from aiohttp import ClientSession

  from aionotion import async_get_client


  async def main() -> None:
      """Create the aiohttp session and run the example."""
      client = await async_get_client("<EMAIL>", "<PASSWORD>", session=session)

      
      systems = await client.system.async_all()

      
      system = await client.system.async_get(12345)

      
      await client.system.async_create({"system_id": 12345, "name": "Test"})

      
      await client.system.async_update(12345, {"name": "Test"})

      
      await client.system.async_delete(12345)

      
      bridges = await client.bridge.async_all()

      
      bridge = await client.bridge.async_get(12345)

      
      await client.bridge.async_create({"system_id": 12345, "name": "Test"})

      
      await client.bridge.async_update(12345, {"name": "Test"})

      
      await client.bridge.async_reset(12345)

      
      await client.bridge.async_delete(12345)

      
      devices = await client.device.async_all()

      
      device = await client.device.async_get(12345)

      
      await client.device.async_create({"id": 12345})

      
      await client.device.async_delete(12345)

      
      sensors = await client.sensor.async_all()

      
      sensor = await client.sensor.async_get(12345)

      
      await client.sensor.async_create({"sensor_id": 12345, "name": "Test"})

      
      await client.sensor.async_update(12345, {"name": "Test"})

      
      await client.sensor.async_delete(12345)

      
      tasks = await client.task.async_all()

      
      task = await client.task.async_get("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")

      
      import datetime

      history = await client.task.async_history(
          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          data_before=datetime.datetime.now(),
          data_after=datetime.datetime.now() - datetime.timedelta(days=3),
      )

      
      await client.task.async_create(
          12345, [{"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "type": "missing"}]
      )

      
      await client.task.async_delete(12345, "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")


  asyncio.run(main())
  ```

  By default, the library creates a new connection to Notion with each coroutine. If you
  are calling a large number of coroutines (or merely want to squeeze out every second of
  runtime savings possible), an
  [`aiohttp`](https://github.com/aio-libs/aiohttp) `ClientSession` can be used for connection
  pooling:

  ```python
  import asyncio

  from aiohttp import ClientSession

  from aionotion import async_get_client


  async def main() -> None:
      """Create the aiohttp session and run the example."""
      async with ClientSession() as session:
          
          client = await async_get_client("<EMAIL>", "<PASSWORD>", session=session)

          


  asyncio.run(main())
  ```

  Check out the examples, the tests, and the source files themselves for method
  signatures and more examples.



  1. [Check for open features/bugs](https://github.com/bachya/aionotion/issues)
     or [initiate a discussion on one](https://github.com/bachya/aionotion/issues/new).
  2. [Fork the repository](https://github.com/bachya/aionotion/fork).
  3. (_optional, but highly recommended_) Create a virtual environment: `python3 -m venv .venv`
  4. (_optional, but highly recommended_) Enter the virtual environment: `source ./venv/bin/activate`
  5. Install the dev environment: `script/setup`
  6. Code your new feature or bug fix.
  7. Write tests that cover your new functionality.
  8. Run tests and ensure 100% code coverage: `poetry run pytest --cov aionotion tests`
  9. Update `README.md` with any new documentation.
  10. Add yourself to `AUTHORS.md`.
  11. Submit a pull request!


pkgId: d52a15af0a0dd203a238fcb0aa86928146a4eb120b5c20132e5bf8c441dbf9e8
name: python-aioodbc
arch: src
version: 0.3.3
epoch: 0
release: 1
summary: ODBC driver for asyncio.
url: https://github.com/aio-libs/aioodbc
rpm_license: Apache 2
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-4a988cfb-c3e1-4bd3-bac5-ac029469bc44
location_href: 00002991-python-aioodbc/python-aioodbc-0.3.3-1.src.rpm
checksum_type: sha256
description:
  **aioodbc** is a Python 3.5+ module that makes it possible to access ODBC_ databases
  with asyncio_. It relies on the awesome pyodbc_ library and preserves the same look and
  feel. *aioodbc* was written using `async/await` syntax (PEP492_) and thus is not compatible
  with Python versions older than 3.5.  Internally *aioodbc* employs threads to avoid
  blocking the event loop, threads_ are not that as bad as you think!. Other
  drivers like motor_ use the same approach.
  **aioodbc** is fully compatible and tested with uvloop_. Take a look at the test
  suite, all tests are executed with both the default event loop and uvloop_.


pkgId: 69b2cfdf882719075e33c1ae3345556c143275492edca0f5d77e496f40b052c8
name: python-aioodbc
arch: src
version: 0.4.0
epoch: 0
release: 1
summary: ODBC driver for asyncio.
url: https://github.com/aio-libs/aioodbc
rpm_license: Apache 2
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-779fca48-2464-4314-8424-511d65490b80
location_href: 00006360-python-aioodbc/python-aioodbc-0.4.0-1.src.rpm
checksum_type: sha256
description:
  **aioodbc** is a Python 3.7+ module that makes it possible to access ODBC_ databases
  with asyncio_. It relies on the awesome pyodbc_ library and preserves the same look and
  feel. *aioodbc* was written using `async/await` syntax (PEP492_) and thus is not compatible
  with Python versions older than 3.5.  Internally *aioodbc* employs threads to avoid
  blocking the event loop, threads_ are not that as bad as you think!. Other
  drivers like motor_ use the same approach.
  **aioodbc** is fully compatible and tested with uvloop_. Take a look at the test
  suite, all tests are executed with both the default event loop and uvloop_.


pkgId: 41ba42b1d4152e0d21f7f27093ba0fcd6f24a972acd6e1569e5b4ec32e1da61a
name: python-aioopenssl
arch: src
version: 0.6.0
epoch: 0
release: 1
summary: TLS-capable transport using OpenSSL for asyncio
url: https://github.com/horazont/aioopenssl
rpm_license: Apache 2.0
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-f8681dd4-4538-4f04-bff1-7c4be12e3b50
location_href: 00002992-python-aioopenssl/python-aioopenssl-0.6.0-1.src.rpm
checksum_type: sha256
description:
  Official documentation can be built with sphinx and is available online
  `on our servers <https://docs.zombofant.net/aioopenssl/0.6/>`_.


pkgId: d572087006a9fcf423d821a37f59cdc3ec2fb0c3798de6b7fa791cc4d782c069
name: python-aiopg
arch: src
version: 1.4.0
epoch: 0
release: 1
summary: Postgres integration with asyncio.
url: https://aiopg.readthedocs.io
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-186f56ae-4a05-427c-9b9c-d4e9f50d2898
location_href: 00002993-python-aiopg/python-aiopg-1.4.0-1.src.rpm
checksum_type: sha256
description:
  **aiopg** is a library for accessing a PostgreSQL_ database
  from the asyncio_ (PEP-3156/tulip) framework. It wraps
  asynchronous features of the Psycopg database driver.


pkgId: 615ef773a67f3f97553ab033349e2c68b3d3229a1c642e2e3aab311dfb74142d
name: python-aioredis
arch: src
version: 2.0.1
epoch: 0
release: 1
summary: asyncio (PEP 3156) Redis support
url: https://github.com/aio-libs/aioredis-py
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-6fafe4f4-3f04-4f9a-9bf5-9f978d8b1b5c
location_href: 00009603-python-aioredis/python-aioredis-2.0.1-1.src.rpm
checksum_type: sha256
description:
  asyncio (3156) Redis client library.

  The library is intended to provide simple and clear interface to Redis
  based on asyncio.



  | Feature                      | Supported                |
  |:-----------------------------|:-------------------------|
  | hiredis parser               | :white_check_mark:       |
  | Pure-python parser           | :white_check_mark:       |
  | Low-level & High-level APIs  | :white_check_mark:       |
  | Pipelining support           | :white_check_mark:       |
  | Multi/Exec support           | :white_check_mark:       |
  | Connections Pool             | :white_check_mark:       |
  | Pub/Sub support              | :white_check_mark:       |
  | Sentinel support             | :white_check_mark:       |
  | ACL support                  | :white_check_mark:       |
  | Streams support              | :white_check_mark:       |
  | Redis Cluster support        | :no_entry_sign:          |
  | Tested Python versions       | 3.6, 3.7, 3.8, 3.9, 3.10 |
  | Tested for Redis servers     | 5.0, 6.0                 |
  | Support for dev Redis server | through low-level API    |




  The easiest way to install aioredis is by using the package on PyPi:

      pip install aioredis

  Recommended with hiredis for performance and stability reasons:

      pip install hiredis



  -   Python 3.6+
  -   hiredis (Optional but recommended)
  -   async-timeout
  -   typing-extensions



  Benchmarks can be found here:
  <https://github.com/popravich/python-redis-benchmark>



  -   Issue Tracker: <https://github.com/aio-libs/aioredis/issues>
  -   Google Group: <https://groups.google.com/g/aio-libs>
  -   Gitter: <https://gitter.im/aio-libs/Lobby>
  -   Source Code: <https://github.com/aio-libs/aioredis>
  -   Contributor's guide: [devel](docs/devel.md)

  Feel free to file an issue or make pull request if you find any bugs or
  have some suggestions for library improvement.



  The aioredis is offered under a [MIT License](LICENSE).







  - Added Python 3.10 to CI & Updated the Docs
    (see #1160)
  - Enable mypy in CI (see #1101)
  - Synchronized reading the responses from a connection
    (see #1106)



  - Remove __del__ from Redis (Fixes #1115)
    (see #1227)
  - fix socket.error raises (see #1129)
  - Fix buffer is closed error when using PythonParser class
    (see #1213)





  - Port redis-py's client implementation to aioredis.
    (see #891)

  - Make hiredis an optional dependency.
    (see #917)






  - Fix transaction data decoding
    (see #657)
  - Fix duplicate calls to `pool.wait_closed()` upon `create_pool()` exception.
    (see #671)



  - Drop explicit loop requirement in API.
    Deprecate `loop` argument.
    Throw warning in Python 3.8+ if explicit `loop` is passed to methods.
    (see #666)



  - (#643, #646, #648)





  - Added `xdel` and `xtrim` method which missed in `commands/streams.py` & also added unit test code for them
    (see #438)
  - Add `count` argument to `spop` command
    (see #485)
  - Add support for `zpopmax` and `zpopmin` redis commands
    (see #550)
  - Add `towncrier`: change notes are now stored in `CHANGES.txt`
    (see #576)
  - Type hints for the library
    (see #584)
  - A few additions to the sorted set commands:
  - the blocking pop commands: `BZPOPMAX` and `BZPOPMIN`
  - the `CH` and `INCR` options of the `ZADD` command
    (see #618)
  - Added `no_ack` parameter to `xread_group` streams method in `commands/streams.py`
    (see #625)



  - Fix for sensitive logging
    (see #459)
  - Fix slow memory leak in `wait_closed` implementation
    (see #498)
  - Fix handling of instances were Redis returns null fields for a stream message (see
    \#605)



  - Rewrite "Getting started" documentation.
    (see #641)



  - #585,
    
    
    
    
    






  - Implemented new Stream command support
    (see #299)
  - Reduce `encode_command()` cost about 60%
    (see #397)



  - Fix pipeline commands buffering was causing multiple `sendto` syscalls
    (see #464)
    and  #473)
  - Python 3.7 compatibility fixes
    (see #426)
  - Fix typos in documentation
    (see #400)
  - Fix `INFO` command result parsing
    (see #405)
  - Fix bug in `ConnectionsPool._drop_closed` method
    (see #461)



  - Update dependencies versions
  - Multiple tests improvements





  - Implement new commands: `wait`, `touch`, `swapdb`, `unlink`
    (see #376)
  - Add `async_op` argument to `flushall` and `flushdb` commands
    (see #364, #370)



  - **Important!** Fix Sentinel sentinel client with pool `minsize`
    greater than 1
    (see #380)
  - Fix `SentinelPool.discover_timeout` usage
    (see #379)
  - Fix `Receiver` hang on disconnect
    (see #354, #366)
  - Fix an issue with `subscribe`/`psubscribe` with empty pool
    (see #351, #355)
  - Fix an issue when `StreamReader`'s feed_data is called before set_parser
    (see #347)



  - Update dependencies versions
  - Multiple test fixes






  - **Important!** Drop Python 3.3, 3.4 support
    (see #321, #323, #326)

  - **Important!** Connections pool has been refactored; now `create_redis`
    function will yield `Redis` instance instead of `RedisPool`
    (see #129)
  - **Important!** Change sorted set commands reply format:
    return list of tuples instead of plain list for commands
    accepting `withscores` argument
    (see #334)
  - **Important!** Change `hscan` command reply format:
    return list of tuples instead of mixed key-value list
    (see #335)
  - Implement Redis URI support as supported `address` argument value
    (see #322)
  - Dropped `create_reconnecting_redis`, `create_redis_pool` should be
    used instead
  - Implement custom `StreamReader`
    (see #273)
  - Implement Sentinel support
    (see #181)
  - Implement pure-python parser
    (see #212)
  - Add `migrate_keys` command
    (see #187)
  - Add `zrevrangebylex` command
    (see #201)
  - Add `command`, `command_count`, `command_getkeys` and
    `command_info` commands
    (see #229)
  - Add `ping` support in pubsub connection
    (see #264)
  - Add `exist` parameter to `zadd` command
    (see #288)
  - Add `MaxClientsError` and implement `ReplyError` specialization
    (see #325)
  - Add `encoding` parameter to sorted set commands
    (see #289)



  - Fix `CancelledError` in `conn._reader_task`
    (see #301)
  - Fix pending commands cancellation with `CancelledError`,
    use explicit exception instead of calling `cancel()` method
    (see #316)
  - Correct error message on Sentinel discovery of master/slave with password
    (see #327)
  - Fix `bytearray` support as command argument
    (see #329)
  - Fix critical bug in patched asyncio.Lock
    (see #256)
  - Fix Multi/Exec transaction canceled error
    (see #225)
  - Add missing arguments to `create_redis` and `create_redis_pool`
  - Fix deprecation warning
    (see #191)
  - Make correct `__aiter__()`
    (see #192)
  - Backward compatibility fix for `with (yield from pool) as conn:`
    (see #205)
  - Fixed pubsub receiver stop()
    (see #211)



  - Multiple test fixes
  - Add PyPy3 to build matrix
  - Update dependencies versions
  - Add missing Python 3.6 classifier






  - Fix for indistinguishable futures cancellation with `asyncio.CancelledError`
    (see #316, cherry-picked from master)






  - Fix time command result decoding when using connection-wide encoding setting
    (see #266)






  - Critical bug fixed in patched asyncio.Lock
    (see #256)






  - Added `zrevrangebylex` command
    (see #201 cherry-picked from master)
  - Add connection timeout
    (see #221, cherry-picked from master)



  - Fixed pool close warning
    (see #239, #236,
    cherry-picked from master
  - Fixed asyncio Lock deadlock issue
    (see #231, #241)






  - Fix pubsub Receiver missing iter() method
    (see #203)






  - Pub/Sub connection commands accept `Channel` instances
    (see #168)
  - Implement new Pub/Sub MPSC (multi-producers, single-consumer) Queue --
    `aioredis.pubsub.Receiver`
    (see #176)
  - Add `aioredis.abc` module providing abstract base classes
    defining interface for basic lib components  (see #176)
  - Implement Geo commands support
    (see #177, #179)



  - Minor tests fixes


  - Update examples and docs to use `async`/`await` syntax
    also keeping `yield from` examples for history
    (see #173)
  - Reflow Travis CI configuration; add Python 3.6 section
    (see #170)
  - Add AppVeyor integration to run tests on Windows
    (see #180)
  - Update multiple development requirements






  - Allow multiple keys in `EXISTS` command
    (see #156, #157)



  - Close RedisPool when connection to Redis failed
    (see #136)
  - Add simple `INFO` command argument validation
    (see #140)
  - Remove invalid uses of `next()`



  - Update devel.rst docs; update Pub/Sub Channel docs (cross-refs)
  - Update MANIFEST.in to include docs, examples and tests in source bundle






  - Add `hmset_dict` command
    (see #130)
  - Add `RedisConnection.address` property
  - RedisPool `minsize`/`maxsize` must not be `None`
  - Implement `close()`/`wait_closed()`/`closed` interface for pool
    (see #128)



  - Add test for `hstrlen`
  - Test fixes



  - Enable Redis 3.2.0 on Travis
  - Add spell checking when building docs
    (see #132)
  - Documentation updated




  - `create_pool()` minsize default value changed to 1
  - Fixed cancellation of wait_closed
    (see #118)
  - Fixed `time()` conversion to float
    (see #126)
  - Fixed `hmset()` method to return bool instead of `b'OK'`
    (see [#12))
  - Fixed multi/exec + watch issue (changed watch variable was causing
    `tr.execute()` to fail)
    (see #121)
  - Replace `asyncio.Future` uses with utility method
    (get ready to Python 3.5.2 `loop.create_future()`)
  - Tests switched from unittest to pytest (see [#12))
  - Documentation updates




  - Fixed Multi/Exec transactions cancellation issue
    (see #110, #114)
  - Fixed Pub/Sub subscribe concurrency issue
    (see #113, #115)
  - Add SSL/TLS support
    (see  #116)
  - `aioredis.ConnectionClosedError` raised in `execute_pubsub` as well
    (see #108)
  - `Redis.slaveof()` method signature changed: now to disable
    replication one should call `redis.slaveof(None)` instead of `redis.slaveof()`
  - More tests added




  - Close all Pub/Sub channels on connection close
    (see #88)
  - Add `iter()` method to `aioredis.Channel` allowing to use it
    with `async for`
    (see #89)
  - Inline code samples in docs made runnable and downloadable
    (see #92)
  - Python 3.5 examples converted to use `async`/`await` syntax
    (see #93)
  - Fix Multi/Exec to honor encoding parameter
    (see #94, #97)
  - Add debug message in `create_connection`
    (see #90)
  - Replace `asyncio.async` calls with wrapper that respects asyncio version
    (see #101)
  - Use NODELAY option for TCP sockets
    (see #105)
  - New `aioredis.ConnectionClosedError` exception added. Raised if
    connection to Redis server is lost
    (see #108, #109)
  - Fix RedisPool to close and drop connection in subscribe mode on release
  - Fix `aioredis.util.decode` to recursively decode list responses
  - More examples added and docs updated
  - Add google groups link to README
  - Bump year in LICENSE and docs




  - Python 3.5 `async` support:

    - New scan commands API (`iscan`, `izscan`, `ihscan`)
    - Pool made awaitable (allowing `with await pool: ...` and `async
      with pool.get() as conn:` constructs)
  - Fixed dropping closed connections from free pool
    (see #83)
  - Docs updated




  - Redis cluster support work in progress
  - Fixed pool issue causing pool growth over max size & `acquire` call hangs
    (see #71)
  - `info` server command result parsing implemented
  - Fixed behavior of util functions
    (see #70)
  - `hstrlen` command added
  - Few fixes in examples
  - Few fixes in documentation




  - Decoding data with `encoding` parameter now takes into account
    list (array) replies
    (see #68)
  - `encoding` parameter added to following commands:

    - generic commands: keys, randomkey
    - hash commands: hgetall, hkeys, hmget, hvals
    - list commands: blpop, brpop, brpoplpush, lindex, lpop, lrange, rpop, rpoplpush
    - set commands: smembers, spop, srandmember
    - string commands: getrange, getset, mget
  - Backward incompatibility:

    `ltrim` command now returns bool value instead of 'OK'
  - Tests updated




  - Logging added (aioredis.log module)
  - Fixed issue with `wait_message` in pub/sub
    (see #66)




  - Pub/Sub support added
  - Fix in `zrevrangebyscore` command
    (see #62)
  - Fixes/tests/docs




  - AutoConnector added
  - wait_closed method added for clean connections shutdown
  - `zscore` command fixed
  - Test fixes




  - Dropped following Redis methods -- `Redis.multi()`,
    `Redis.exec()`, `Redis.discard()`
  - `Redis.multi_exec` hack'ish property removed
  - `Redis.multi_exec()` method added
  - High-level commands implemented:

    - generic commands (tests)
    - transactions commands (api stabilization).

  - Backward incompatibilities:

    - Following sorted set commands' API changed:

      `zcount`, `zrangebyscore`, `zremrangebyscore`, `zrevrangebyscore`
    - set string command' API changed





  - RedisConnection.execute refactored to support commands pipelining
    (see #33)
  - Several fixes
  - WIP on transactions and commands interface
  - High-level commands implemented and tested:

    - hash commands
    - hyperloglog commands
    - set commands
    - scripting commands
    - string commands
    - list commands




  - `create_connection`, `create_pool`, `create_redis` functions updated: db and password
    arguments made keyword-only
    (see #26)
  - Fixed transaction handling
    (see #32)
  - Response decoding
    (see #16)




  - Transactions support (in connection, high-level commands have some issues)
  - Docs & tests updated.





  - Initial release
  - RedisConnection implemented
  - RedisPool implemented
  - Docs for RedisConnection & RedisPool
  - WIP on high-level API.


pkgId: 8dfa67470036f9025492c4af18f1f1a692598fd797d04dd7c8ac1d61f52fc014
name: python-aiorestapi
arch: src
version: 0.1.2
epoch: 0
release: 1
summary: Rapid rest resources for aiohttp
url: https://github.com/aiselis/aiorestapi
rpm_license: Apache 2
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-98237de1-5534-477a-8975-2174d4c805ad
location_href: 00002995-python-aiorestapi/python-aiorestapi-0.1.2-1.src.rpm
checksum_type: sha256
description:
  [![Latest PyPI package version](https://badge.fury.io/py/aiorestapi.svg)](https://pypi.org/project/aiorestapi)


pkgId: abc1b4036424431e11623b7096ebeb88b8347201d3f059554fe138349d97752a
name: python-aiosfstream
arch: src
version: 0.5.0
epoch: 0
release: 1
summary: Salesforce Streaming API client for asyncio
url: https://github.com/robertmrk/aiosfstream
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-05d5768f-92a7-49bf-a7a7-f6db2790a731
location_href: 00013586-python-aiosfstream/python-aiosfstream-0.5.0-1.src.rpm
checksum_type: sha256
description:
  aiosfstream is a `Salesforce Streaming API <api_>`_ client for asyncio_. It can
  be used to receive push notifications about changes on Salesforce objects or
  notifications of general events sent through the `Streaming API <api_>`_.
  For detailed guidance on how to work with `PushTopics <PushTopic_>`_ or how
  to create `Generic Streaming Channels <GenericStreaming_>`_ please consult the
  `Streaming API documentation <api_>`_.
  For working with `Platform Events <PlatformEvents_>`_ or
  `Change Data Capture events <ChangeDataCapture_>`_ check out the linked
  documentation.


pkgId: aa79b46ee10d98fbb63b2284ceaa0e335497812e1e335f2fe33aeb2e609747f4
name: python-aiozmq
arch: src
version: 1.0.0
epoch: 0
release: 1
summary: ZeroMQ integration with asyncio.
url: http://aiozmq.readthedocs.org
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-cb402d43-1b9f-4ea2-91f6-92be0d6fc1f9
location_href: 00003006-python-aiozmq/python-aiozmq-1.0.0-1.src.rpm
checksum_type: sha256
description:
  asyncio (PEP 3156) support for ZeroMQ.
  The difference between ``aiozmq`` and vanilla ``pyzmq`` (``zmq.asyncio``) is:
  ``zmq.asyncio`` works only by replacing the *base event loop* with a custom one.
  This approach works but has two disadvantages:
  1. ``zmq.asyncio.ZMQEventLoop`` cannot be combined with
     other loop implementations (most notable is the ultra fast ``uvloop``).
  2. It uses the internal ZMQ Poller which has fast ZMQ Sockets support
     but isn't intended to work fast with many (thousands) regular TCP sockets.
     In practice it means that ``zmq.asyncio`` is not recommended to be used with
     web servers like ``aiohttp``.
     See also https://github.com/zeromq/pyzmq/issues/894


pkgId: fefade4d490d60079647bfb2cc906e6256c461d0f4c53dcf53ba1809257132de
name: python-airspeed
arch: src
version: 0.5.20
epoch: 0
release: 1
url: https://github.com/purcell/airspeed/
rpm_license: BSD
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-03bd81ed-8725-4b60-b282-d6771cf6d224
location_href: 00003007-python-airspeed/python-airspeed-0.5.20-1.src.rpm
checksum_type: sha256
summary:
  Airspeed is a powerful and easy-to-use templating engine for Python that aims for a high level of compatibility with the popular Velocity library for Java.


pkgId: 6548181859e7614576b56bbda1ddeab0a0f347a365d6f198a0961437fd7b24f4
name: python-airtable-python-wrapper
arch: src
version: 0.15.3
epoch: 0
release: 1
summary: Python API Wrapper for the Airtable API
url: https://github.com/gtalarico/airtable-python-wrapper
rpm_license: The MIT License (MIT)
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-4c7f5f05-8d6f-448b-a777-bb52935dc9a8
location_href: 00011008-python-airtable-python-wrapper/python-airtable-python-wrapper-0.15.3-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://travis-ci.com/gtalarico/airtable-python-wrapper.svg?branch=master)](https://travis-ci.com/gtalarico/airtable-python-wrapper)
  [![PyPI - Downloads](https://img.shields.io/pypi/dm/airtable-python-wrapper.svg?label=pypi%20downloads)](https://pypi.org/project/airtable-python-wrapper/)
  [![Coverage Status](https://coveralls.io/repos/github/gtalarico/airtable-python-wrapper/badge.svg?branch=master)](https://coveralls.io/github/gtalarico/airtable-python-wrapper?branch=master)
  [![Documentation Status](https://readthedocs.org/projects/airtable-python-wrapper/badge/?version=latest)](http://airtable-python-wrapper.readthedocs.io/en/latest/?badge=latest)

  Airtable API Client Wrapper for Python

  ![project-logo](https://github.com/gtalarico/airtable-python-wrapper/blob/master/docs/source/_static/logo.png)



  ```
  pip install airtable-python-wrapper
  ```



  Full documentation here:

  http://airtable-python-wrapper.readthedocs.io/



  Below are some of the methods available in the wrapper.

  For the full list and documentation visit the [docs](http://airtable-python-wrapper.readthedocs.io/)

  You can see the wrapper in action in this [Jupyter Notebook](https://github.com/gtalarico/airtable-python-wrapper/blob/master/Airtable.ipynb).

  ```
  airtable = Airtable('base_id', 'table_name')

  airtable.get_all(view='MyView', maxRecords=20)

  airtable.insert({'Name': 'Brian'})

  airtable.search('Name', 'Tom')

  airtable.update_by_field('Name', 'Tom', {'Phone': '1234-4445'})

  airtable.delete_by_field('Name', 'Tom')

  ```


  [MIT](https://opensource.org/licenses/MIT)



  * Adds escaping formula field references #120

  * Added Batch update method


  * Fix: [batch delete](https://github.com/gtalarico/airtable-python-wrapper/pull/100)


  * **Breaking**: Drop Api config from ENV variable - use `api_key` arg instead
  * **Breaking**: Drop Python 2 / IronPython Support
  * Feature: On HTTP Errors, Raise Original Exception, but with Helpful Errors added
  * Fix: #86 formulas with string values


  * Removed: `mirror()` method.
  * Feature: Configurable request timeout


  * Fixed: Python 2 compatibility issues
  * Start CI testing on all supported Python versions
  * **Breaking**: Drop implicit support for Python 3.4, officially support 3.7 and 3.8.


  * Fixed: Rewrote tests
  * Fixed: Improve CI and deployment


  * Fixed: Add sdist and universal for 2.7 dist
  * Fixed: Long dist set to markdown


  * Feature: Merged PR#17 - Added typecast to update, update_by_field, replace, replace_by_field


  * Feature: Added typcase option to batch_insert


  * Feature: Merged PR#17 - typecase kwarg


  * Feature: Better exception message for 422 (Issue #16)
  * Fix: 2.7 Compat with sys.implementation


  * Docs: Revised Docs strings to show kebab case kwargs
  * Fix: Url Escape (PR#1)


  * Docs: New Documentation on Parameter filters Docs
  * Docs: More documentation and examples.
  * Feature: Search now uses filterByFormula
  * Added Formula Generator


  * Removed Unencoded Debug Msg due to IronPython Bug #242


  * Merge Fix


  * Moved version to sep file to fix setup.py error
  * Removed urlencode import
  * Added Explicit Raise for 422 errors with Decoded Urls


  * Feature: Added airtable.get() method to retrieve record
  * Fix: sort/field string input to allow sting or list
  * Fix: AirtableAuth Docs
  * Fix: Keyargs Docs


  * Bugfix: Fix Setup to install six.py
  * Bugfix: Fix AitableAuth Docs


  * Implemented Sort Filter
  * Implemented FilterByFormula
  * Implemented all param filters as classes
  * Added Aliases for Parameters
  * Renamed get() to get_iter()




  * Added replace()
  * Added mirror()


  * Initial Work


pkgId: 187ca03f00ebe6ebb4a4eb3468e8cdcb14793b70bf9a54af72fea74982e10475
name: python-airthings
arch: src
version: 3.2.0
epoch: 0
release: 1
summary: Fetch sensor measurements from Airthings devices
url: https://github.com/kotlarz/airthings
rpm_license: MIT License
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-79e5f396-c573-4dfb-aa43-51fd64267138
location_href: 00003008-python-airthings/python-airthings-3.2.0-1.src.rpm
checksum_type: sha256
description:
  ``airthings`` is a simple python package that contains methods to
  communicate with Airthings[1] devices. The package utilizies bluepy[2]
  for the communication between python and the devices. The package
  features can be found below.
  -  [1] https://airthings.com/
  -  [2] https://github.com/IanHarvey/bluepy
  *Note: Some features are currently undocumented, and parts are
  untested/not yet implemented.*


pkgId: f0fac06c71586a1ad8954b65343ea634118c3bacd951c87bfbb3cb78a265f512
name: python-ajsonrpc
arch: src
version: 1.2.0
epoch: 0
release: 1
summary: Async JSON-RPC 2.0 protocol + server powered by asyncio
url: https://github.com/pavlov99/ajsonrpc
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-e4fa4475-49cf-4f59-9e92-44ca2aa31f18
location_href: 00010672-python-ajsonrpc/python-ajsonrpc-1.2.0-1.src.rpm
checksum_type: sha256
description:
  [![Python package status](https://github.com/pavlov99/ajsonrpc/workflows/Python%20package/badge.svg)](https://github.com/pavlov99/ajsonrpc/actions?query=workflow%3A%22Python+package%22)
  [![security status](https://github.com/pavlov99/ajsonrpc/workflows/CodeQL/badge.svg)](https://github.com/pavlov99/ajsonrpc/actions?query=workflow%3ACodeQL)
  [![pypi version](https://img.shields.io/pypi/v/ajsonrpc.svg)](https://pypi.org/project/ajsonrpc/)

  Lightweight JSON-RPC 2.0 protocol implementation and asynchronous server powered by asyncio. This library is a successor of json-rpc and written by the same team.

  Features:
  * Full JSON-RPC 2.0 Implementation.
  * Async request manager that handles the protocol.
  * Vanilla Python, no dependencies.
  * API server setup in 1 min.
  * Same development team as `json-rpc`, largely compatible code.


  ```
  $ pip install ajsonrpc
  ```


  This package contains core JSON-RPC 2.0 primitives (request, response, etc.) and convenient backend-independent abstractions on top of them: dispatcher and request manager. These modules mirror implementation in the original json-rpc package with minor changes and improvements. Below is a summary of each module.


  Consists of JSON-RPC 2.0 primitives: request, batch request, response, batch response, error. It also defines base classes for custom errors and exceptions.

  Development principles:
  * If python object is created or modified without exceptions, it contains valid data.
  * Private state `<object>._body` contains the single source of truth. It is accessible and modifiable via getters (properties) and setters that ensure validation.
  * `body` is always a dictionary with primitive keys and values (the only exception is `response.result` that could hold any value defined by the application).
  * Constructor, getters and setters operate with JSON-RPC defined types, e.g. `response.error` always has `JSONRPC20Error` type. Most of other types are strings and numbers.

  Unlike json-rpc package, core module does not deal with serialization/de-serialization, this logic was moved to manager.


  Dispatcher is a dict-like object that maps method names to executables. One can think of it as an inproved dictionary, in fact it is inherited from `MutableMapping`. Some of the ways to add methods to dispatcher:

  ```python

  d = Dispatcher({"sum": lambda a, b: a + b})


  d["max"] = lambda a, b: max(a, b)


  @d.add_function
  def add(x, y):
      return x + y


  class Math:
      def sum(self, a, b):
          return a + b

      def diff(self, a, b):
          return a - b

  d.add_class(Math)
  d.add_object(Math())
  d.add_dict({"min": lambda a, b: min(a, b)})


  d.add_function(add, name="my_add")


  d.add_class(Math, prefix="get_")
  ```


  Manager generates a response for a request. It handles common routines: request parsing, exception handling and error generation, parallel request execution for batch requests, serialization/de-serialization. Manager is asynchronous and dackend agnostic, it exposes following common methods:

  ```python

  async def get_response_for_request(
      self, request: JSONRPC20Request
      ) -> Optional[JSONRPC20Response]


  async def get_response_for_payload(
      self, payload: str
      ) -> Optional[Union[JSONRPC20Response, JSONRPC20BatchResponse]]


  async def get_payload_for_payload(self, payload: str) -> str
  ```


  This package comes with an asyncio [Protocol-based](https://docs.python.org/3/library/asyncio-protocol.html) minimalistic server script `async-json-rpc-server`. One could think of it as a bottle-py of API servers.

  This was an experiment turned prototype: unlike json-rpc that requires some "shell" like Django or Flask to work, this package relies on asyncio and therefore could build on top of its [TCP server](https://docs.python.org/3/library/asyncio-protocol.html#tcp-echo-server). Indeed, JSON-RPC 2.0 is intentionally simple: server does not require views, has only one endpoint (routing is not required), only deals with json. Hence, vanilla code would be not only sufficient but likely faster than any framework.

  This idea of self-sufficient server was extended further: what would be the minimum interface that allows to plug application code? What if zero integration is required? Likely, this was possible with runtime method introspection: `async-json-rpc-server` parses given file with methods and exposes all of them. Let's consider an example:

  ```python

  import asyncio

  def echo(s='pong'):
      return s

  def mul2(a, b):
      return a * b

  async def say_after(delay, what):
      await asyncio.sleep(delay)
      return what
  ```

  To launch a server based on above methods, simply run:

  ```
  $ async-json-rpc-server examples/methods.py --port=8888
  ```
  (Ctrl+C stops the server).

  Single request example:
  ```
  $ curl -H 'Content-Type: application/json' \
      -d '{"jsonrpc": "2.0", "method": "echo", "id": 0}' \
      http://127.0.0.1:8888

  {"jsonrpc": "2.0", "id": 0, "result": "pong"}
  ```

  Batch request example:
  ![server-example-batch](https://raw.githubusercontent.com/pavlov99/ajsonrpc/master/docs/_static/server-example-postman.png)


  Backend support is a syntactic sugar that wraps dispatcher and manager under one api class and provides convenient boilerplate, such as handler generation. Currently supported frameworks:
  * Tornado
  * Sanic
  * Quart


pkgId: ea88550265db6ee66fd4cc0e5d7272d9c2146f4b3b2736500602d2bef88ca945
name: python-akshare
arch: src
version: 1.9.48
epoch: 0
release: 1
url: https://github.com/akfamily/akshare
rpm_license: MIT
rpm_vendor: openEuler Copr - user mywaaagh_admin
rpm_group: Unspecified
rpm_buildhost: resalloc-0411a972-ee7f-4dd8-bd51-99b09068db58
location_href: 00011016-python-akshare/python-akshare-1.9.48-1.src.rpm
checksum_type: sha256
summary:
  AKShare is an elegant and simple financial data interface library for Python, built for human beings!

description:
  **AKShare VIP 交流群欢迎大家的加入，加群方式请点击[【加群】](https://zmj.xet.tech/s/28gOeh)**

  **相关视频教程已经发布：《AKShare-初阶-使用教学》、《AKShare-初阶-实战应用》、《AKShare-源码解析》、《开源项目巡礼》**，详情请访问[课程](https://app3rqjh1z21630.h5.xiaoeknow.com)查看更多课程信息！

  **本次发布 [AKTools](https://github.com/akfamily/aktools) 作为 AKShare 的 HTTP API 版本，突破 Python 语言的限制，欢迎各位小伙伴试用并提出更好的意见或建议！ 点击 [AKTools](https://github.com/akfamily/aktools) 查看使用指南。另外提供 [awesome-data](https://github.com/akfamily/awesome-data) 方便各位小伙伴查询各种数据源。**

  ![](https://github.com/akfamily/akshare/blob/master/example/images/AKShare_logo.jpg)

  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/akshare.svg)](https://pypi.org/project/akshare/)
  [![PyPI](https://img.shields.io/pypi/v/akshare.svg)](https://pypi.org/project/akshare/)
  [![Downloads](https://pepy.tech/badge/akshare)](https://pepy.tech/project/akshare)
  [![Documentation Status](https://readthedocs.org/projects/akshare/badge/?version=latest)](https://akshare.readthedocs.io/?badge=latest)
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
  [![akshare](https://img.shields.io/badge/Data%20Science-AKShare-green)](https://github.com/akfamily/akshare)
  [![Actions Status](https://github.com/akfamily/akshare/workflows/build/badge.svg)](https://github.com/akfamily/akshare/actions)
  [![MIT Licence](https://camo.githubusercontent.com/14a9abb7e83098f2949f26d2190e04fb1bd52c06/68747470733a2f2f626c61636b2e72656164746865646f63732e696f2f656e2f737461626c652f5f7374617469632f6c6963656e73652e737667)](https://github.com/akfamily/akshare/blob/master/LICENSE)
  [![](https://img.shields.io/github/forks/jindaxiang/akshare)](https://github.com/akfamily/akshare)
  [![](https://img.shields.io/github/stars/jindaxiang/akshare)](https://github.com/akfamily/akshare)
  [![](https://img.shields.io/github/issues/jindaxiang/akshare)](https://github.com/akfamily/akshare)
  [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)



  [AKShare](https://github.com/akfamily/akshare) requires Python(64 bit) 3.8 or greater, aims to make fetch financial data as convenient as possible.

  **Write less, get more!**

  - Documentation: [中文文档](https://akshare.akfamily.xyz/)

  ![](https://github.com/akfamily/akshare/blob/master/example/images/AKShare.svg)





  ```shell
  pip install akshare --upgrade
  ```



  ```shell
  pip install akshare -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com  --upgrade
  ```



  Please check out [documentation](https://akshare.akfamily.xyz/contributor.html) if you want to contribute to AKShare





  ```shell
  docker pull registry.cn-shanghai.aliyuncs.com/akfamily/aktools:jupyter
  ```



  ```shell
  docker run -it registry.cn-shanghai.aliyuncs.com/akfamily/aktools:jupyter python
  ```



  ```python
  import akshare as ak

  print(ak.__version__)
  ```





  Code

  ```python
  import akshare as ak

  stock_zh_a_hist_df = ak.stock_zh_a_hist(symbol="000001", period="daily", start_date="20170301", end_date='20210907', adjust="")
  print(stock_zh_a_hist_df)
  ```

  Output

  ```
        日期          开盘   收盘    最高  ...  振幅   涨跌幅 涨跌额 换手率
  0     2017-03-01   9.49   9.49   9.55  ...  0.84  0.11  0.01  0.21
  1     2017-03-02   9.51   9.43   9.54  ...  1.26 -0.63 -0.06  0.24
  2     2017-03-03   9.41   9.40   9.43  ...  0.74 -0.32 -0.03  0.20
  3     2017-03-06   9.40   9.45   9.46  ...  0.74  0.53  0.05  0.24
  4     2017-03-07   9.44   9.45   9.46  ...  0.63  0.00  0.00  0.17
            ...    ...    ...    ...  ...   ...   ...   ...   ...
  1100  2021-09-01  17.48  17.88  17.92  ...  5.11  0.45  0.08  1.19
  1101  2021-09-02  18.00  18.40  18.78  ...  5.48  2.91  0.52  1.25
  1102  2021-09-03  18.50  18.04  18.50  ...  4.35 -1.96 -0.36  0.72
  1103  2021-09-06  17.93  18.45  18.60  ...  4.55  2.27  0.41  0.78
  1104  2021-09-07  18.60  19.24  19.56  ...  6.56  4.28  0.79  0.84
  [1105 rows x 11 columns]
  ```



  Code

  ```python
  import akshare as ak
  import mplfinance as mpf  # Please install mplfinance as follows: pip install mplfinance

  stock_us_daily_df = ak.stock_us_daily(symbol="AAPL", adjust="qfq")
  stock_us_daily_df = stock_us_daily_df[["open", "high", "low", "close", "volume"]]
  stock_us_daily_df.columns = ["Open", "High", "Low", "Close", "Volume"]
  stock_us_daily_df.index.name = "Date"
  stock_us_daily_df = stock_us_daily_df["2020-04-01": "2020-04-29"]
  mpf.plot(stock_us_daily_df, type='candle', mav=(3, 6, 9), volume=True, show_nontrading=False)
  ```

  Output

  ![](https://jfds-1252952517.cos.ap-chengdu.myqcloud.com/akshare/readme/home/AAPL_candle.png)



  Pay attention to **数据科学实战** Official Accounts to get more information about Quant, ML, DS and so on, please visit [数据科学实战](https://akshare.akfamily.xyz/introduction.html) for more information:

  <div>
      <img alt="data science" src="https://jfds-1252952517.cos.ap-chengdu.myqcloud.com/akshare/readme/qrcode/data_scientist.png">
  </div>

  Pay attention to **数据科学实战** WeChat Official Accounts to get the [AKShare](https://github.com/akfamily/akshare) updated info:

  <div>
      <img alt="ds" src="https://github.com/akfamily/akshare/blob/master/example/images/ds.png">
  </div>

  Application to add **AKShare-VIP QQ group** and talk about [AKShare](https://github.com/akfamily/akshare) issues, please contact **AKShare-小助手 QQ**: 1254836886
  ![](https://jfds-1252952517.cos.ap-chengdu.myqcloud.com/akshare/readme/qrcode/qr_code_1254836886.jpg)



  - **Easy of use**: Just one line code to fetch the data;
  - **Extensible**: Easy to customize your own code with other application;
  - **Powerful**: Python ecosystem.



  1. [Overview](https://akshare.akfamily.xyz/introduction.html)
  2. [Installation](https://akshare.akfamily.xyz/installation.html)
  3. [Tutorial](https://akshare.akfamily.xyz/tutorial.html)
  4. [Data Dict](https://akshare.akfamily.xyz/data/index.html)
  5. [Subjects](https://akshare.akfamily.xyz/topic/index.html)



  [AKShare](https://github.com/akfamily/akshare) is still under developing, feel free to open issues and pull requests:

  - Report or fix bugs
  - Require or publish interface
  - Write or fix documentation
  - Add test cases

  > Notice: We use [Black](https://black.readthedocs.io/en/stable/) to format the code



  1. All data provided by [AKShare](https://github.com/akfamily/akshare) is just for academic research purpose;
  2. The data provided by [AKShare](https://github.com/akfamily/akshare) is for reference only and does not constitute any investment proposal;
  3. Any investor based on [AKShare](https://github.com/akfamily/akshare) research should pay more attention to data risk;
  4. [AKShare](https://github.com/akfamily/akshare) will insist on providing open-source financial data;
  5. Based on some uncontrollable factors, some data interfaces in [AKShare](https://github.com/akfamily/akshare) may be removed;
  6. Please follow the relevant open-source protocol used by [AKShare](https://github.com/akfamily/akshare);
  7. Provide HTTP API for the person who uses other program language: [AKTools](https://aktools.readthedocs.io/).



  Use the badge in your project's README.md:

  ```markdown
  [![Data: akshare](https://img.shields.io/badge/Data%20Science-AKShare-green)](https://github.com/akfamily/akshare)
  ```

  Using the badge in README.rst:

  ```
  .. image:: https://img.shields.io/badge/Data%20Science-AKShare-green
      :target: https://github.com/akfamily/akshare
  ```

  Looks like this:

  [![Data: akshare](https://img.shields.io/badge/Data%20Science-AKShare-green)](https://github.com/akfamily/akshare)



  Please use this **bibtex** if you want to cite this repository in your publications:

  ```markdown
  @misc{akshare,
      author = {Albert King},
      title = {AKShare},
      year = {2019},
      publisher = {GitHub},
      journal = {GitHub repository},
      howpublished = {\url{https://github.com/akfamily/akshare}},
  }
  ```



  Special thanks [FuShare](https://github.com/LowinLi/fushare) for the opportunity of learning from the project;

  Special thanks [TuShare](https://github.com/waditu/tushare) for the opportunity of learning from the project;

  Thanks for the data provided by [生意社网站](http://www.100ppi.com/);

  Thanks for the data provided by [奇货可查网站](https://qhkch.com/);

  Thanks for the data provided by [中国银行间市场交易商协会网站](http://www.nafmii.org.cn/);

  Thanks for the data provided by [99期货网站](http://www.99qh.com/);

  Thanks for the data provided by [英为财情网站](https://cn.investing.com/);

  Thanks for the data provided by [中国外汇交易中心暨全国银行间同业拆借中心网站](http://www.chinamoney.com.cn/chinese/);

  Thanks for the data provided by [金十数据网站](https://www.jin10.com/);

  Thanks for the data provided by [和讯财经网站](http://www.hexun.com/);

  Thanks for the data provided by [新浪财经网站](https://finance.sina.com.cn/);

  Thanks for the data provided by [Oxford-Man Institute 网站](https://realized.oxford-man.ox.ac.uk/);

  Thanks for the data provided by [DACHENG-XIU 网站](https://dachxiu.chicagobooth.edu/);

  Thanks for the data provided by [上海证券交易所网站](http://www.sse.com.cn/assortment/options/price/);

  Thanks for the data provided by [深证证券交易所网站](http://www.szse.cn/);

  Thanks for the data provided by [北京证券交易所网站](http://www.bse.cn/);

  Thanks for the data provided by [中国金融期货交易所网站](http://www.cffex.com.cn/);

  Thanks for the data provided by [上海期货交易所网站](http://www.shfe.com.cn/);

  Thanks for the data provided by [大连商品交易所网站](http://www.dce.com.cn/);

  Thanks for the data provided by [郑州商品交易所网站](http://www.czce.com.cn/);

  Thanks for the data provided by [上海国际能源交易中心网站](http://www.ine.com.cn/);

  Thanks for the data provided by [Timeanddate 网站](https://www.timeanddate.com/);

  Thanks for the data provided by [河北省空气质量预报信息发布系统网站](http://110.249.223.67/publish/);

  Thanks for the data provided by [南华期货网站](http://www.nanhua.net/nhzc/varietytrend.html);

  Thanks for the data provided by [Economic Policy Uncertainty 网站](http://www.nanhua.net/nhzc/varietytrend.html);

  Thanks for the data provided by [微博指数网站](https://data.weibo.com/index/newindex);

  Thanks for the data provided by [百度指数网站](http://index.baidu.com/v2/main/index.html);

  Thanks for the data provided by [谷歌指数网站](https://trends.google.com/trends/?geo=US);

  Thanks for the data provided by [申万指数网站](http://www.swsindex.com/idx0120.aspx?columnid=8832);

  Thanks for the data provided by [真气网网站](https://www.zq12369.com/);

  Thanks for the data provided by [财富网站](http://www.fortunechina.com/);

  Thanks for the data provided by [中国证券投资基金业协会网站](http://gs.amac.org.cn/);

  Thanks for the data provided by [Expatistan 网站](https://www.expatistan.com/cost-of-living);

  Thanks for the data provided by [北京市碳排放权电子交易平台网站](https://www.bjets.com.cn/article/jyxx/);

  Thanks for the data provided by [国家金融与发展实验室网站](http://www.nifd.cn/);

  Thanks for the data provided by [IT桔子网站](https://www.itjuzi.com);

  Thanks for the data provided by [东方财富网站](http://data.eastmoney.com/jgdy/);

  Thanks for the data provided by [义乌小商品指数网站](http://www.ywindex.com/Home/Product/index/);

  Thanks for the data provided by [中国国家发展和改革委员会网站](http://jgjc.ndrc.gov.cn/dmzs.aspx?clmId=741);

  Thanks for the data provided by [163网站](https://news.163.com/special/epidemic/);

  Thanks for the data provided by [丁香园网站](http://3g.dxy.cn/newh5/view/pneumonia?scene=2&clicktime=1579615030&enterid=1579615030&from=groupmessage&isappinstalled=0);

  Thanks for the data provided by [百度新型肺炎网站](https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_pc_1);

  Thanks for the data provided by [百度迁徙网站](https://qianxi.baidu.com/?from=shoubai#city=0);

  Thanks for the data provided by [新型肺炎-相同行程查询工具网站](https://rl.inews.qq.com/h5/trip?from=newsapp&ADTAG=tgi.wx.share.message);

  Thanks for the data provided by [新型肺炎-小区查询网站](https://ncov.html5.qq.com/community?channelid=1&from=singlemessage&isappinstalled=0);

  Thanks for the data provided by [商业特许经营信息管理网站](http://txjy.syggs.mofcom.gov.cn/);

  Thanks for the data provided by [慈善中国网站](http://cishan.chinanpo.gov.cn/platform/login.html);

  Thanks for the data provided by [思知网站](https://www.ownthink.com/);

  Thanks for the data provided by [Currencyscoop 网站](https://currencyscoop.com/);

  Thanks for the data provided by [新加坡交易所网站](https://www.sgx.com/zh-hans/research-education/derivatives);

  Thanks for the tutorials provided by [微信公众号: Python大咖谈](https://upload-images.jianshu.io/upload_images/3240514-61004f2c71be4a0b.png).



  <a href="https://www.jetbrains.com/?from=jindaxiang/akshare" target="_blank">
  <img alt="jetbrains" src="https://github.com/akfamily/akshare/blob/master/example/images/jetbrains.svg" width="100px" height="100px">
  </a>


