Spaces:
Runtime error
Runtime error
freemt
commited on
Commit
·
fb4c8c6
1
Parent(s):
fd19d9b
Update radio_embed_p
Browse files- .flake8 +19 -0
- .github/workflows/codeql-analysis.yml- +67 -0
- .github/workflows/routine-tests.yml +30 -0
- .gitignore +145 -0
- .stignore +101 -0
- LICENSE +21 -0
- README1.md +12 -0
- app.py +60 -0
- install-sw.sh +23 -0
- install-sw1.sh +25 -0
- nodemon.json +21 -0
- okteto.yml +45 -0
- package.json +21 -0
- poetry.lock +850 -0
- poetry.toml +3 -0
- pylintrc +7 -0
- pyproject.toml +74 -0
- pyrightconfig.json +9 -0
- radio_embed_p/__init__.py +5 -0
- radio_embed_p/__main__.py- +44 -0
- radio_embed_p/radio_embed_p.py +52 -0
- start-sshd.sh +2 -0
- tests/__init__.py +1 -0
- tests/fangfang-en.txt +0 -0
- tests/test_radio_embed_p.py +44 -0
.flake8
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[flake8]
|
2 |
+
ignore =
|
3 |
+
D203,
|
4 |
+
# line too long
|
5 |
+
E501
|
6 |
+
per-file-ignores =
|
7 |
+
# imported but unused
|
8 |
+
# __init__.py: F401
|
9 |
+
test_*.py: F401
|
10 |
+
exclude =
|
11 |
+
.git,
|
12 |
+
__pycache__,
|
13 |
+
docs/source/conf.py,
|
14 |
+
old,
|
15 |
+
build,
|
16 |
+
dist,
|
17 |
+
.venv
|
18 |
+
pad*.py
|
19 |
+
max-complexity = 25
|
.github/workflows/codeql-analysis.yml-
ADDED
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# For most projects, this workflow file will not need changing; you simply need
|
2 |
+
# to commit it to your repository.
|
3 |
+
#
|
4 |
+
# You may wish to alter this file to override the set of languages analyzed,
|
5 |
+
# or to provide custom queries or build logic.
|
6 |
+
#
|
7 |
+
# ******** NOTE ********
|
8 |
+
# We have attempted to detect the languages in your repository. Please check
|
9 |
+
# the `language` matrix defined below to confirm you have the correct set of
|
10 |
+
# supported CodeQL languages.
|
11 |
+
#
|
12 |
+
name: "CodeQL"
|
13 |
+
|
14 |
+
on:
|
15 |
+
push:
|
16 |
+
branches: [ master ]
|
17 |
+
pull_request:
|
18 |
+
# The branches below must be a subset of the branches above
|
19 |
+
branches: [ master ]
|
20 |
+
schedule:
|
21 |
+
- cron: '16 15 * * 2'
|
22 |
+
|
23 |
+
jobs:
|
24 |
+
analyze:
|
25 |
+
name: Analyze
|
26 |
+
runs-on: ubuntu-latest
|
27 |
+
|
28 |
+
strategy:
|
29 |
+
fail-fast: false
|
30 |
+
matrix:
|
31 |
+
language: [ 'python' ]
|
32 |
+
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
|
33 |
+
# Learn more:
|
34 |
+
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
|
35 |
+
|
36 |
+
steps:
|
37 |
+
- name: Checkout repository
|
38 |
+
uses: actions/checkout@v2
|
39 |
+
|
40 |
+
# Initializes the CodeQL tools for scanning.
|
41 |
+
- name: Initialize CodeQL
|
42 |
+
uses: github/codeql-action/init@v1
|
43 |
+
with:
|
44 |
+
languages: ${{ matrix.language }}
|
45 |
+
# If you wish to specify custom queries, you can do so here or in a config file.
|
46 |
+
# By default, queries listed here will override any specified in a config file.
|
47 |
+
# Prefix the list here with "+" to use these queries and those in the config file.
|
48 |
+
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
49 |
+
|
50 |
+
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
51 |
+
# If this step fails, then you should remove it and run the build manually (see below)
|
52 |
+
- name: Autobuild
|
53 |
+
uses: github/codeql-action/autobuild@v1
|
54 |
+
|
55 |
+
# ℹ️ Command-line programs to run using the OS shell.
|
56 |
+
# 📚 https://git.io/JvXDl
|
57 |
+
|
58 |
+
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
59 |
+
# and modify them (or add more) to build your code if your project
|
60 |
+
# uses a compiled language
|
61 |
+
|
62 |
+
#- run: |
|
63 |
+
# make bootstrap
|
64 |
+
# make release
|
65 |
+
|
66 |
+
- name: Perform CodeQL Analysis
|
67 |
+
uses: github/codeql-action/analyze@v1
|
.github/workflows/routine-tests.yml
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
name: pytest
|
2 |
+
|
3 |
+
on:
|
4 |
+
push:
|
5 |
+
|
6 |
+
jobs:
|
7 |
+
flake8-pytest:
|
8 |
+
strategy:
|
9 |
+
fail-fast: false
|
10 |
+
matrix:
|
11 |
+
python-version: [3.8]
|
12 |
+
poetry-version: [1.1.2]
|
13 |
+
os: [ubuntu-18.04, macos-latest, windows-latest]
|
14 |
+
runs-on: ${{ matrix.os }}
|
15 |
+
steps:
|
16 |
+
- uses: actions/checkout@v2
|
17 |
+
- uses: actions/setup-python@v2
|
18 |
+
with:
|
19 |
+
python-version: ${{ matrix.python-version }}
|
20 |
+
- uses: abatilo/[email protected]
|
21 |
+
with:
|
22 |
+
poetry-version: ${{ matrix.poetry-version }}
|
23 |
+
- name: Install packages
|
24 |
+
run: poetry install # --no-dev
|
25 |
+
- name: Run flake8
|
26 |
+
run: |
|
27 |
+
poetry run flake8 --exit-zero
|
28 |
+
# poetry run pytest
|
29 |
+
- name: Run pytest
|
30 |
+
run: poetry run pytest tests
|
.gitignore
ADDED
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Byte-compiled / optimized / DLL files
|
2 |
+
__pycache__/
|
3 |
+
*.py[cod]
|
4 |
+
*$py.class
|
5 |
+
|
6 |
+
# C extensions
|
7 |
+
*.so
|
8 |
+
|
9 |
+
# Distribution / packaging
|
10 |
+
.Python
|
11 |
+
build/
|
12 |
+
develop-eggs/
|
13 |
+
dist/
|
14 |
+
downloads/
|
15 |
+
eggs/
|
16 |
+
.eggs/
|
17 |
+
lib/
|
18 |
+
lib64/
|
19 |
+
parts/
|
20 |
+
sdist/
|
21 |
+
var/
|
22 |
+
wheels/
|
23 |
+
share/python-wheels/
|
24 |
+
*.egg-info/
|
25 |
+
.installed.cfg
|
26 |
+
*.egg
|
27 |
+
MANIFEST
|
28 |
+
|
29 |
+
# PyInstaller
|
30 |
+
# Usually these files are written by a python script from a template
|
31 |
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
32 |
+
*.manifest
|
33 |
+
*.spec
|
34 |
+
|
35 |
+
# Installer logs
|
36 |
+
pip-log.txt
|
37 |
+
pip-delete-this-directory.txt
|
38 |
+
|
39 |
+
# Unit test / coverage reports
|
40 |
+
htmlcov/
|
41 |
+
.tox/
|
42 |
+
.nox/
|
43 |
+
.coverage
|
44 |
+
.coverage.*
|
45 |
+
.cache
|
46 |
+
nosetests.xml
|
47 |
+
coverage.xml
|
48 |
+
*.cover
|
49 |
+
*.py,cover
|
50 |
+
.hypothesis/
|
51 |
+
.pytest_cache/
|
52 |
+
cover/
|
53 |
+
|
54 |
+
# Translations
|
55 |
+
*.mo
|
56 |
+
*.pot
|
57 |
+
|
58 |
+
# Django stuff:
|
59 |
+
*.log
|
60 |
+
local_settings.py
|
61 |
+
db.sqlite3
|
62 |
+
db.sqlite3-journal
|
63 |
+
|
64 |
+
# Flask stuff:
|
65 |
+
instance/
|
66 |
+
.webassets-cache
|
67 |
+
|
68 |
+
# Scrapy stuff:
|
69 |
+
.scrapy
|
70 |
+
|
71 |
+
# Sphinx documentation
|
72 |
+
docs/_build/
|
73 |
+
|
74 |
+
# PyBuilder
|
75 |
+
.pybuilder/
|
76 |
+
target/
|
77 |
+
|
78 |
+
# Jupyter Notebook
|
79 |
+
.ipynb_checkpoints
|
80 |
+
|
81 |
+
# IPython
|
82 |
+
profile_default/
|
83 |
+
ipython_config.py
|
84 |
+
|
85 |
+
# pyenv
|
86 |
+
# For a library or package, you might want to ignore these files since the code is
|
87 |
+
# intended to run in multiple environments; otherwise, check them in:
|
88 |
+
# .python-version
|
89 |
+
|
90 |
+
# pipenv
|
91 |
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
92 |
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
93 |
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
94 |
+
# install all needed dependencies.
|
95 |
+
#Pipfile.lock
|
96 |
+
|
97 |
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
98 |
+
__pypackages__/
|
99 |
+
|
100 |
+
# Celery stuff
|
101 |
+
celerybeat-schedule
|
102 |
+
celerybeat.pid
|
103 |
+
|
104 |
+
# SageMath parsed files
|
105 |
+
*.sage.py
|
106 |
+
|
107 |
+
# Environments
|
108 |
+
.env
|
109 |
+
.venv
|
110 |
+
env/
|
111 |
+
venv/
|
112 |
+
ENV/
|
113 |
+
env.bak/
|
114 |
+
venv.bak/
|
115 |
+
|
116 |
+
# Spyder project settings
|
117 |
+
.spyderproject
|
118 |
+
.spyproject
|
119 |
+
|
120 |
+
# Rope project settings
|
121 |
+
.ropeproject
|
122 |
+
|
123 |
+
# mkdocs documentation
|
124 |
+
/site
|
125 |
+
|
126 |
+
# mypy
|
127 |
+
.mypy_cache/
|
128 |
+
.dmypy.json
|
129 |
+
dmypy.json
|
130 |
+
|
131 |
+
# Pyre type checker
|
132 |
+
.pyre/
|
133 |
+
|
134 |
+
# pytype static type analyzer
|
135 |
+
.pytype/
|
136 |
+
|
137 |
+
# Cython debug symbols
|
138 |
+
cython_debug/
|
139 |
+
*.bat
|
140 |
+
*.swp
|
141 |
+
links/
|
142 |
+
# .gitignore
|
143 |
+
node_modules
|
144 |
+
tests\ff-en.lzma
|
145 |
+
tests/ff-en.lzma
|
.stignore
ADDED
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.git
|
2 |
+
# Byte-compiled / optimized / DLL files
|
3 |
+
__pycache__
|
4 |
+
*.py[cod]
|
5 |
+
*$py.class
|
6 |
+
|
7 |
+
# C extensions
|
8 |
+
*.so
|
9 |
+
|
10 |
+
# Distribution / packaging
|
11 |
+
.Python
|
12 |
+
build
|
13 |
+
develop-eggs
|
14 |
+
dist
|
15 |
+
downloads
|
16 |
+
eggs
|
17 |
+
.eggs
|
18 |
+
lib
|
19 |
+
lib64
|
20 |
+
parts
|
21 |
+
sdist
|
22 |
+
var
|
23 |
+
wheels
|
24 |
+
pip-wheel-metadata
|
25 |
+
share/python-wheels
|
26 |
+
*.egg-info
|
27 |
+
.installed.cfg
|
28 |
+
*.egg
|
29 |
+
MANIFEST
|
30 |
+
|
31 |
+
# PyInstaller
|
32 |
+
# Usually these files are written by a python script from a template
|
33 |
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
34 |
+
*.manifest
|
35 |
+
*.spec
|
36 |
+
|
37 |
+
# Installer logs
|
38 |
+
pip-log.txt
|
39 |
+
pip-delete-this-directory.txt
|
40 |
+
|
41 |
+
# Translations
|
42 |
+
*.mo
|
43 |
+
*.pot
|
44 |
+
|
45 |
+
# Django stuff:
|
46 |
+
*.log
|
47 |
+
local_settings.py
|
48 |
+
db.sqlite3
|
49 |
+
|
50 |
+
# Flask stuff:
|
51 |
+
instance
|
52 |
+
.webassets-cache
|
53 |
+
|
54 |
+
# Scrapy stuff:
|
55 |
+
.scrapy
|
56 |
+
|
57 |
+
# Sphinx documentation
|
58 |
+
docs/_build
|
59 |
+
|
60 |
+
# PyBuilder
|
61 |
+
target
|
62 |
+
|
63 |
+
# Jupyter Notebook
|
64 |
+
.ipynb_checkpoints
|
65 |
+
|
66 |
+
# IPython
|
67 |
+
profile_default
|
68 |
+
ipython_config.py
|
69 |
+
|
70 |
+
# pyenv
|
71 |
+
.python-version
|
72 |
+
|
73 |
+
# celery beat schedule file
|
74 |
+
celerybeat-schedule
|
75 |
+
|
76 |
+
# SageMath parsed files
|
77 |
+
*.sage.py
|
78 |
+
|
79 |
+
# Environments
|
80 |
+
.env
|
81 |
+
.venv
|
82 |
+
env
|
83 |
+
venv
|
84 |
+
ENV
|
85 |
+
env.bak
|
86 |
+
venv.bak
|
87 |
+
|
88 |
+
# Spyder project settings
|
89 |
+
.spyderproject
|
90 |
+
.spyproject
|
91 |
+
|
92 |
+
# Rope project settings
|
93 |
+
.ropeproject
|
94 |
+
|
95 |
+
# mypy
|
96 |
+
.mypy_cache
|
97 |
+
.dmypy.json
|
98 |
+
dmypy.json
|
99 |
+
|
100 |
+
# Pyre type checker
|
101 |
+
.pyre
|
LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
MIT License
|
2 |
+
|
3 |
+
Copyright (c) 2020 ffreemt
|
4 |
+
|
5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6 |
+
of this software and associated documentation files (the "Software"), to deal
|
7 |
+
in the Software without restriction, including without limitation the rights
|
8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9 |
+
copies of the Software, and to permit persons to whom the Software is
|
10 |
+
furnished to do so, subject to the following conditions:
|
11 |
+
|
12 |
+
The above copyright notice and this permission notice shall be included in all
|
13 |
+
copies or substantial portions of the Software.
|
14 |
+
|
15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21 |
+
SOFTWARE.
|
README1.md
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# radio-embed-p
|
2 |
+
[](https://github.com/ffreemt/radio-embed-p/actions)[](https://www.python.org/downloads/)[](https://github.com/psf/black)[](https://opensource.org/licenses/MIT)[](https://badge.fury.io/py/radio_embed_p)
|
3 |
+
|
4 |
+
radio-embed parallel
|
5 |
+
|
6 |
+
## Install it
|
7 |
+
|
8 |
+
```shell
|
9 |
+
# pip install git+https://github.com/ffreemt/radio-embed-p
|
10 |
+
# poetry add git+https://github.com/ffreemt/radio-embed-p
|
11 |
+
# git clone https://github.com/ffreemt/radio-embed-p && cd radio-embed-p
|
12 |
+
```
|
app.py
ADDED
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"""Create entry."""
|
2 |
+
# pylint: disbale=invalid-name
|
3 |
+
import os
|
4 |
+
import time
|
5 |
+
from pathlib import Path
|
6 |
+
|
7 |
+
import gradio as gr
|
8 |
+
import logzero
|
9 |
+
import pandas as pd
|
10 |
+
from about_time import about_time
|
11 |
+
from icecream import install as ic_install, ic
|
12 |
+
from logzero import logger
|
13 |
+
from set_loglevel import set_loglevel
|
14 |
+
|
15 |
+
from radio_embed_p import __version__, radio_embed_p
|
16 |
+
|
17 |
+
os.environ["LOGLEVEL"] = "10" # turn debug on
|
18 |
+
os.environ["LOGLEVEL"] = "20" # turn debug off
|
19 |
+
logzero.loglevel(set_loglevel())
|
20 |
+
if set_loglevel() <= 10:
|
21 |
+
logger.info(" debug is on ")
|
22 |
+
else:
|
23 |
+
logger.info(" debug is off ")
|
24 |
+
|
25 |
+
ic_install()
|
26 |
+
ic.configureOutput(
|
27 |
+
includeContext=True,
|
28 |
+
outputFunction=logger.info,
|
29 |
+
)
|
30 |
+
# ic.enable()
|
31 |
+
ic.disable() # to turn off
|
32 |
+
|
33 |
+
os.environ["TZ"] = "Asia/Shanghai"
|
34 |
+
try:
|
35 |
+
time.tzset() # type: ignore
|
36 |
+
except Exception as _:
|
37 |
+
logger.warning("time.tzset() error: %s. Probably running Windows, we let it pass.", _)
|
38 |
+
|
39 |
+
|
40 |
+
iface = gr.Interface(
|
41 |
+
fn=radio_embed_p,
|
42 |
+
inputs="textarea",
|
43 |
+
outputs="dataframe",
|
44 |
+
title=f"radio-embed {__version__}",
|
45 |
+
description="embed in parallel rest api via gradio",
|
46 |
+
examples=[
|
47 |
+
["test\n测试"]
|
48 |
+
],
|
49 |
+
allow_flagging="never",
|
50 |
+
)
|
51 |
+
|
52 |
+
debug = False
|
53 |
+
if set_loglevel() <= 10:
|
54 |
+
debug = True
|
55 |
+
|
56 |
+
iface.launch(
|
57 |
+
show_error=debug,
|
58 |
+
enable_queue=True,
|
59 |
+
debug=debug,
|
60 |
+
)
|
install-sw.sh
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# pip install pipx
|
2 |
+
# pipx install poetry
|
3 |
+
# pipx ensurepath
|
4 |
+
# source ~/.bashrc
|
5 |
+
|
6 |
+
# curl -sSL https://install.python-poetry.org | python3 -
|
7 |
+
# -C- continue -S show error -o output
|
8 |
+
curl -sSL -C- -o install-poetry.py https://install.python-poetry.org
|
9 |
+
python install-poetry.py
|
10 |
+
rm install-poetry.py
|
11 |
+
echo export PATH=~/.local/bin:$PATH > ~/.bashrc
|
12 |
+
source ~/.bashrc
|
13 |
+
# ~/.local/bin/poetry install
|
14 |
+
|
15 |
+
wget -c https://deb.nodesource.com/setup_14.x
|
16 |
+
bash setup_14.x
|
17 |
+
apt-get install -y nodejs
|
18 |
+
npm install -g npm@latest
|
19 |
+
npm install -g nodemon
|
20 |
+
rm setup_14.x
|
21 |
+
|
22 |
+
# apt upate # alerady done in apt-get install -y nodejs
|
23 |
+
apt install byobu -y > /dev/null 2>&1
|
install-sw1.sh
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# pip install pipx
|
2 |
+
# pipx install poetry
|
3 |
+
# pipx ensurepath
|
4 |
+
# source ~/.bashrc
|
5 |
+
|
6 |
+
# curl -sSL https://install.python-poetry.org | python3 -
|
7 |
+
# -C- continue -S show error -o output
|
8 |
+
curl -sSL -C- -o install-poetry.py https://install.python-poetry.org
|
9 |
+
python install-poetry.py
|
10 |
+
rm install-poetry.py
|
11 |
+
echo export PATH=~/.local/bin:$PATH > ~/.bashrc
|
12 |
+
source ~/.bashrc
|
13 |
+
# ~/.local/bin/poetry install
|
14 |
+
|
15 |
+
wget -c https://deb.nodesource.com/setup_12.x
|
16 |
+
bash setup_14.x
|
17 |
+
apt-get install -y nodejs
|
18 |
+
npm install -g npm@latest
|
19 |
+
npm install -g nodemon
|
20 |
+
rm setup_14.x
|
21 |
+
|
22 |
+
# apt update # alerady done in apt-get install -y nodejs
|
23 |
+
apt install byobu -y > /dev/null 2>&1
|
24 |
+
byobu-enable
|
25 |
+
byobu
|
nodemon.json
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"restartable": "rs",
|
3 |
+
"ignore": [
|
4 |
+
".venv",
|
5 |
+
".git",
|
6 |
+
"node_modules/**/node_modules"
|
7 |
+
],
|
8 |
+
"verbose": true,
|
9 |
+
"execMap": {
|
10 |
+
"js": "node --harmony"
|
11 |
+
},
|
12 |
+
"watch": [
|
13 |
+
"tests",
|
14 |
+
"test/fixtures/",
|
15 |
+
"test/samples/"
|
16 |
+
],
|
17 |
+
"env": {
|
18 |
+
"NODE_ENV": "development"
|
19 |
+
},
|
20 |
+
"ext": "js json py"
|
21 |
+
}
|
okteto.yml
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
name: gradio-cmat
|
2 |
+
|
3 |
+
# The build section defines how to build the images of
|
4 |
+
# your development environment
|
5 |
+
# More info: https://www.okteto.com/docs/reference/manifest/#build
|
6 |
+
# build:
|
7 |
+
# my-service:
|
8 |
+
# context: .
|
9 |
+
|
10 |
+
# The deploy section defines how to deploy your development environment
|
11 |
+
# More info: https://www.okteto.com/docs/reference/manifest/#deploy
|
12 |
+
# deploy:
|
13 |
+
# commands:
|
14 |
+
# - name: Deploy
|
15 |
+
# command: echo 'Replace this line with the proper 'helm'
|
16 |
+
|
17 |
+
# or 'kubectl' commands to deploy your development environment'
|
18 |
+
|
19 |
+
# The dependencies section defines other git repositories to be
|
20 |
+
# deployed as part of your development environment
|
21 |
+
# More info: https://www.okteto.com/docs/reference/manifest/#dependencies
|
22 |
+
# dependencies:
|
23 |
+
# - https://github.com/okteto/sample
|
24 |
+
# The dev section defines how to activate a development container
|
25 |
+
# More info: https://www.okteto.com/docs/reference/manifest/#dev
|
26 |
+
dev:
|
27 |
+
gradio-cmat:
|
28 |
+
# image: okteto/dev:latest
|
29 |
+
# image: python:3.8.13-bullseye
|
30 |
+
# image: simbachain/poetry-3.8
|
31 |
+
image: python:3.8
|
32 |
+
command: bash
|
33 |
+
workdir: /usr/src/app
|
34 |
+
sync:
|
35 |
+
- .:/usr/src/app
|
36 |
+
environment:
|
37 |
+
- name=$USER
|
38 |
+
forward:
|
39 |
+
- 7861:7861
|
40 |
+
- 7860:7860
|
41 |
+
- 8501:8501
|
42 |
+
- 22:22
|
43 |
+
reverse:
|
44 |
+
- 9000:9000
|
45 |
+
autocreate: true
|
package.json
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"dependencies": {
|
3 |
+
"npm-run-all": "^4.1.5"
|
4 |
+
},
|
5 |
+
"scripts": {
|
6 |
+
"start": "pyright && pytest && yarn style",
|
7 |
+
"test": "nodemon -w tests -w radio_embed_p -x pytest tests",
|
8 |
+
"pyright": "nodemon -w radio_embed_p -w .venv -e .py -x pyright radio_embed_p tests",
|
9 |
+
"pytest": "nodemon -w tests -w radio_embed_p -e .py -x pytest tests radio_embed_p",
|
10 |
+
"style": "nodemon -w radio_embed_p -w tests -x \"black tests radio_embed_p && python -m flake8\"",
|
11 |
+
"docstyle": "nodemon -w radio_embed_p -w tests -x pydocstyle --convention=google tests radio_embed_p",
|
12 |
+
"pylint": "nodemon -w radio_embed_p -e .py -x pylint radio_embed_p",
|
13 |
+
"test:radio_embed_p": "nodemon -w tests -e .py -x pytest -k radio_embed_p tests",
|
14 |
+
"publish": "poetry build && poetry publish",
|
15 |
+
"black": "black tests radio_embed_p",
|
16 |
+
"flake8": "flake8 tests radio_embed_p",
|
17 |
+
"pflake8": "pflake8 tests radio_embed_p",
|
18 |
+
"pep257": "pep257 tests radio_embed_p",
|
19 |
+
"final": "run-s docstyle black flake8 pytest"
|
20 |
+
}
|
21 |
+
}
|
poetry.lock
ADDED
@@ -0,0 +1,850 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[[package]]
|
2 |
+
name = "astroid"
|
3 |
+
version = "2.11.7"
|
4 |
+
description = "An abstract syntax tree for Python with inference support."
|
5 |
+
category = "dev"
|
6 |
+
optional = false
|
7 |
+
python-versions = ">=3.6.2"
|
8 |
+
|
9 |
+
[package.dependencies]
|
10 |
+
lazy-object-proxy = ">=1.4.0"
|
11 |
+
typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""}
|
12 |
+
wrapt = ">=1.11,<2"
|
13 |
+
|
14 |
+
[[package]]
|
15 |
+
name = "asttokens"
|
16 |
+
version = "2.0.7"
|
17 |
+
description = "Annotate AST trees with source code positions"
|
18 |
+
category = "main"
|
19 |
+
optional = false
|
20 |
+
python-versions = "*"
|
21 |
+
|
22 |
+
[package.dependencies]
|
23 |
+
six = "*"
|
24 |
+
|
25 |
+
[package.extras]
|
26 |
+
test = ["astroid (<=2.5.3)", "pytest"]
|
27 |
+
|
28 |
+
[[package]]
|
29 |
+
name = "atomicwrites"
|
30 |
+
version = "1.4.1"
|
31 |
+
description = "Atomic file writes."
|
32 |
+
category = "dev"
|
33 |
+
optional = false
|
34 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
35 |
+
|
36 |
+
[[package]]
|
37 |
+
name = "attrs"
|
38 |
+
version = "22.1.0"
|
39 |
+
description = "Classes Without Boilerplate"
|
40 |
+
category = "dev"
|
41 |
+
optional = false
|
42 |
+
python-versions = ">=3.5"
|
43 |
+
|
44 |
+
[package.extras]
|
45 |
+
dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"]
|
46 |
+
docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
|
47 |
+
tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "cloudpickle"]
|
48 |
+
tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "cloudpickle"]
|
49 |
+
|
50 |
+
[[package]]
|
51 |
+
name = "black"
|
52 |
+
version = "22.6.0"
|
53 |
+
description = "The uncompromising code formatter."
|
54 |
+
category = "dev"
|
55 |
+
optional = false
|
56 |
+
python-versions = ">=3.6.2"
|
57 |
+
|
58 |
+
[package.dependencies]
|
59 |
+
click = ">=8.0.0"
|
60 |
+
mypy-extensions = ">=0.4.3"
|
61 |
+
pathspec = ">=0.9.0"
|
62 |
+
platformdirs = ">=2"
|
63 |
+
tomli = {version = ">=1.1.0", markers = "python_full_version < \"3.11.0a7\""}
|
64 |
+
typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""}
|
65 |
+
|
66 |
+
[package.extras]
|
67 |
+
colorama = ["colorama (>=0.4.3)"]
|
68 |
+
d = ["aiohttp (>=3.7.4)"]
|
69 |
+
jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
|
70 |
+
uvloop = ["uvloop (>=0.15.2)"]
|
71 |
+
|
72 |
+
[[package]]
|
73 |
+
name = "click"
|
74 |
+
version = "8.1.3"
|
75 |
+
description = "Composable command line interface toolkit"
|
76 |
+
category = "main"
|
77 |
+
optional = false
|
78 |
+
python-versions = ">=3.7"
|
79 |
+
|
80 |
+
[package.dependencies]
|
81 |
+
colorama = {version = "*", markers = "platform_system == \"Windows\""}
|
82 |
+
|
83 |
+
[[package]]
|
84 |
+
name = "colorama"
|
85 |
+
version = "0.4.5"
|
86 |
+
description = "Cross-platform colored terminal text."
|
87 |
+
category = "main"
|
88 |
+
optional = false
|
89 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
90 |
+
|
91 |
+
[[package]]
|
92 |
+
name = "dill"
|
93 |
+
version = "0.3.5.1"
|
94 |
+
description = "serialize all of python"
|
95 |
+
category = "dev"
|
96 |
+
optional = false
|
97 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*"
|
98 |
+
|
99 |
+
[package.extras]
|
100 |
+
graph = ["objgraph (>=1.7.2)"]
|
101 |
+
|
102 |
+
[[package]]
|
103 |
+
name = "environs"
|
104 |
+
version = "9.5.0"
|
105 |
+
description = "simplified environment variable parsing"
|
106 |
+
category = "main"
|
107 |
+
optional = false
|
108 |
+
python-versions = ">=3.6"
|
109 |
+
|
110 |
+
[package.dependencies]
|
111 |
+
marshmallow = ">=3.0.0"
|
112 |
+
python-dotenv = "*"
|
113 |
+
|
114 |
+
[package.extras]
|
115 |
+
dev = ["pytest", "dj-database-url", "dj-email-url", "django-cache-url", "flake8 (==4.0.1)", "flake8-bugbear (==21.9.2)", "mypy (==0.910)", "pre-commit (>=2.4,<3.0)", "tox"]
|
116 |
+
django = ["dj-database-url", "dj-email-url", "django-cache-url"]
|
117 |
+
lint = ["flake8 (==4.0.1)", "flake8-bugbear (==21.9.2)", "mypy (==0.910)", "pre-commit (>=2.4,<3.0)"]
|
118 |
+
tests = ["pytest", "dj-database-url", "dj-email-url", "django-cache-url"]
|
119 |
+
|
120 |
+
[[package]]
|
121 |
+
name = "executing"
|
122 |
+
version = "0.9.1"
|
123 |
+
description = "Get the currently executing AST node of a frame, and other information"
|
124 |
+
category = "main"
|
125 |
+
optional = false
|
126 |
+
python-versions = "*"
|
127 |
+
|
128 |
+
[[package]]
|
129 |
+
name = "flake8"
|
130 |
+
version = "3.9.2"
|
131 |
+
description = "the modular source code checker: pep8 pyflakes and co"
|
132 |
+
category = "dev"
|
133 |
+
optional = false
|
134 |
+
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
|
135 |
+
|
136 |
+
[package.dependencies]
|
137 |
+
mccabe = ">=0.6.0,<0.7.0"
|
138 |
+
pycodestyle = ">=2.7.0,<2.8.0"
|
139 |
+
pyflakes = ">=2.3.0,<2.4.0"
|
140 |
+
|
141 |
+
[[package]]
|
142 |
+
name = "icecream"
|
143 |
+
version = "2.1.3"
|
144 |
+
description = "Never use print() to debug again; inspect variables, expressions, and program execution with a single, simple function call."
|
145 |
+
category = "main"
|
146 |
+
optional = false
|
147 |
+
python-versions = "*"
|
148 |
+
|
149 |
+
[package.dependencies]
|
150 |
+
asttokens = ">=2.0.1"
|
151 |
+
colorama = ">=0.3.9"
|
152 |
+
executing = ">=0.3.1"
|
153 |
+
pygments = ">=2.2.0"
|
154 |
+
|
155 |
+
[[package]]
|
156 |
+
name = "iniconfig"
|
157 |
+
version = "1.1.1"
|
158 |
+
description = "iniconfig: brain-dead simple config-ini parsing"
|
159 |
+
category = "dev"
|
160 |
+
optional = false
|
161 |
+
python-versions = "*"
|
162 |
+
|
163 |
+
[[package]]
|
164 |
+
name = "install"
|
165 |
+
version = "1.3.5"
|
166 |
+
description = "Install packages from within code"
|
167 |
+
category = "main"
|
168 |
+
optional = false
|
169 |
+
python-versions = ">=2.7, >=3.5"
|
170 |
+
|
171 |
+
[[package]]
|
172 |
+
name = "isort"
|
173 |
+
version = "5.10.1"
|
174 |
+
description = "A Python utility / library to sort Python imports."
|
175 |
+
category = "dev"
|
176 |
+
optional = false
|
177 |
+
python-versions = ">=3.6.1,<4.0"
|
178 |
+
|
179 |
+
[package.extras]
|
180 |
+
pipfile_deprecated_finder = ["pipreqs", "requirementslib"]
|
181 |
+
requirements_deprecated_finder = ["pipreqs", "pip-api"]
|
182 |
+
colors = ["colorama (>=0.4.3,<0.5.0)"]
|
183 |
+
plugins = ["setuptools"]
|
184 |
+
|
185 |
+
[[package]]
|
186 |
+
name = "joblib"
|
187 |
+
version = "1.1.0"
|
188 |
+
description = "Lightweight pipelining with Python functions"
|
189 |
+
category = "dev"
|
190 |
+
optional = false
|
191 |
+
python-versions = ">=3.6"
|
192 |
+
|
193 |
+
[[package]]
|
194 |
+
name = "lazy-object-proxy"
|
195 |
+
version = "1.7.1"
|
196 |
+
description = "A fast and thorough lazy object proxy."
|
197 |
+
category = "dev"
|
198 |
+
optional = false
|
199 |
+
python-versions = ">=3.6"
|
200 |
+
|
201 |
+
[[package]]
|
202 |
+
name = "logzero"
|
203 |
+
version = "1.7.0"
|
204 |
+
description = "Robust and effective logging for Python 2 and 3"
|
205 |
+
category = "main"
|
206 |
+
optional = false
|
207 |
+
python-versions = "*"
|
208 |
+
|
209 |
+
[package.dependencies]
|
210 |
+
colorama = {version = "*", markers = "sys_platform == \"win32\""}
|
211 |
+
|
212 |
+
[[package]]
|
213 |
+
name = "marshmallow"
|
214 |
+
version = "3.17.0"
|
215 |
+
description = "A lightweight library for converting complex datatypes to and from native Python datatypes."
|
216 |
+
category = "main"
|
217 |
+
optional = false
|
218 |
+
python-versions = ">=3.7"
|
219 |
+
|
220 |
+
[package.dependencies]
|
221 |
+
packaging = ">=17.0"
|
222 |
+
|
223 |
+
[package.extras]
|
224 |
+
dev = ["pytest", "pytz", "simplejson", "mypy (==0.961)", "flake8 (==4.0.1)", "flake8-bugbear (==22.6.22)", "pre-commit (>=2.4,<3.0)", "tox"]
|
225 |
+
docs = ["sphinx (==4.5.0)", "sphinx-issues (==3.0.1)", "alabaster (==0.7.12)", "sphinx-version-warning (==1.1.2)", "autodocsumm (==0.2.8)"]
|
226 |
+
lint = ["mypy (==0.961)", "flake8 (==4.0.1)", "flake8-bugbear (==22.6.22)", "pre-commit (>=2.4,<3.0)"]
|
227 |
+
tests = ["pytest", "pytz", "simplejson"]
|
228 |
+
|
229 |
+
[[package]]
|
230 |
+
name = "mccabe"
|
231 |
+
version = "0.6.1"
|
232 |
+
description = "McCabe checker, plugin for flake8"
|
233 |
+
category = "dev"
|
234 |
+
optional = false
|
235 |
+
python-versions = "*"
|
236 |
+
|
237 |
+
[[package]]
|
238 |
+
name = "more-itertools"
|
239 |
+
version = "8.14.0"
|
240 |
+
description = "More routines for operating on iterables, beyond itertools"
|
241 |
+
category = "main"
|
242 |
+
optional = false
|
243 |
+
python-versions = ">=3.5"
|
244 |
+
|
245 |
+
[[package]]
|
246 |
+
name = "mypy-extensions"
|
247 |
+
version = "0.4.3"
|
248 |
+
description = "Experimental type system extensions for programs checked with the mypy typechecker."
|
249 |
+
category = "dev"
|
250 |
+
optional = false
|
251 |
+
python-versions = "*"
|
252 |
+
|
253 |
+
[[package]]
|
254 |
+
name = "nodeenv"
|
255 |
+
version = "1.7.0"
|
256 |
+
description = "Node.js virtual environment builder"
|
257 |
+
category = "dev"
|
258 |
+
optional = false
|
259 |
+
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*"
|
260 |
+
|
261 |
+
[[package]]
|
262 |
+
name = "packaging"
|
263 |
+
version = "21.3"
|
264 |
+
description = "Core utilities for Python packages"
|
265 |
+
category = "main"
|
266 |
+
optional = false
|
267 |
+
python-versions = ">=3.6"
|
268 |
+
|
269 |
+
[package.dependencies]
|
270 |
+
pyparsing = ">=2.0.2,<3.0.5 || >3.0.5"
|
271 |
+
|
272 |
+
[[package]]
|
273 |
+
name = "pastel"
|
274 |
+
version = "0.2.1"
|
275 |
+
description = "Bring colors to your terminal."
|
276 |
+
category = "dev"
|
277 |
+
optional = false
|
278 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
279 |
+
|
280 |
+
[[package]]
|
281 |
+
name = "pathspec"
|
282 |
+
version = "0.9.0"
|
283 |
+
description = "Utility library for gitignore style pattern matching of file paths."
|
284 |
+
category = "dev"
|
285 |
+
optional = false
|
286 |
+
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
|
287 |
+
|
288 |
+
[[package]]
|
289 |
+
name = "platformdirs"
|
290 |
+
version = "2.5.2"
|
291 |
+
description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
|
292 |
+
category = "dev"
|
293 |
+
optional = false
|
294 |
+
python-versions = ">=3.7"
|
295 |
+
|
296 |
+
[package.extras]
|
297 |
+
docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)", "sphinx (>=4)"]
|
298 |
+
test = ["appdirs (==1.4.4)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)", "pytest (>=6)"]
|
299 |
+
|
300 |
+
[[package]]
|
301 |
+
name = "pluggy"
|
302 |
+
version = "1.0.0"
|
303 |
+
description = "plugin and hook calling mechanisms for python"
|
304 |
+
category = "dev"
|
305 |
+
optional = false
|
306 |
+
python-versions = ">=3.6"
|
307 |
+
|
308 |
+
[package.extras]
|
309 |
+
testing = ["pytest-benchmark", "pytest"]
|
310 |
+
dev = ["tox", "pre-commit"]
|
311 |
+
|
312 |
+
[[package]]
|
313 |
+
name = "poethepoet"
|
314 |
+
version = "0.10.0"
|
315 |
+
description = "A task runner that works well with poetry."
|
316 |
+
category = "dev"
|
317 |
+
optional = false
|
318 |
+
python-versions = ">=3.6,<4.0"
|
319 |
+
|
320 |
+
[package.dependencies]
|
321 |
+
pastel = ">=0.2.0,<0.3.0"
|
322 |
+
tomlkit = ">=0.6.0,<1.0.0"
|
323 |
+
|
324 |
+
[[package]]
|
325 |
+
name = "py"
|
326 |
+
version = "1.11.0"
|
327 |
+
description = "library with cross-python path, ini-parsing, io, code, log facilities"
|
328 |
+
category = "dev"
|
329 |
+
optional = false
|
330 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
331 |
+
|
332 |
+
[[package]]
|
333 |
+
name = "pycodestyle"
|
334 |
+
version = "2.7.0"
|
335 |
+
description = "Python style guide checker"
|
336 |
+
category = "dev"
|
337 |
+
optional = false
|
338 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
339 |
+
|
340 |
+
[[package]]
|
341 |
+
name = "pydocstyle"
|
342 |
+
version = "6.1.1"
|
343 |
+
description = "Python docstring style checker"
|
344 |
+
category = "dev"
|
345 |
+
optional = false
|
346 |
+
python-versions = ">=3.6"
|
347 |
+
|
348 |
+
[package.dependencies]
|
349 |
+
snowballstemmer = "*"
|
350 |
+
|
351 |
+
[package.extras]
|
352 |
+
toml = ["toml"]
|
353 |
+
|
354 |
+
[[package]]
|
355 |
+
name = "pyflakes"
|
356 |
+
version = "2.3.1"
|
357 |
+
description = "passive checker of Python programs"
|
358 |
+
category = "dev"
|
359 |
+
optional = false
|
360 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
361 |
+
|
362 |
+
[[package]]
|
363 |
+
name = "pygments"
|
364 |
+
version = "2.12.0"
|
365 |
+
description = "Pygments is a syntax highlighting package written in Python."
|
366 |
+
category = "main"
|
367 |
+
optional = false
|
368 |
+
python-versions = ">=3.6"
|
369 |
+
|
370 |
+
[[package]]
|
371 |
+
name = "pylint"
|
372 |
+
version = "2.14.5"
|
373 |
+
description = "python code static checker"
|
374 |
+
category = "dev"
|
375 |
+
optional = false
|
376 |
+
python-versions = ">=3.7.2"
|
377 |
+
|
378 |
+
[package.dependencies]
|
379 |
+
astroid = ">=2.11.6,<=2.12.0-dev0"
|
380 |
+
colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""}
|
381 |
+
dill = ">=0.2"
|
382 |
+
isort = ">=4.2.5,<6"
|
383 |
+
mccabe = ">=0.6,<0.8"
|
384 |
+
platformdirs = ">=2.2.0"
|
385 |
+
tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""}
|
386 |
+
tomlkit = ">=0.10.1"
|
387 |
+
typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""}
|
388 |
+
|
389 |
+
[package.extras]
|
390 |
+
spelling = ["pyenchant (>=3.2,<4.0)"]
|
391 |
+
testutils = ["gitpython (>3)"]
|
392 |
+
|
393 |
+
[[package]]
|
394 |
+
name = "pyparsing"
|
395 |
+
version = "3.0.9"
|
396 |
+
description = "pyparsing module - Classes and methods to define and execute parsing grammars"
|
397 |
+
category = "main"
|
398 |
+
optional = false
|
399 |
+
python-versions = ">=3.6.8"
|
400 |
+
|
401 |
+
[package.extras]
|
402 |
+
diagrams = ["railroad-diagrams", "jinja2"]
|
403 |
+
|
404 |
+
[[package]]
|
405 |
+
name = "pyright"
|
406 |
+
version = "1.1.266"
|
407 |
+
description = "Command line wrapper for pyright"
|
408 |
+
category = "dev"
|
409 |
+
optional = false
|
410 |
+
python-versions = ">=3.7"
|
411 |
+
|
412 |
+
[package.dependencies]
|
413 |
+
nodeenv = ">=1.6.0"
|
414 |
+
|
415 |
+
[package.extras]
|
416 |
+
all = ["twine (>=3.4.1)"]
|
417 |
+
dev = ["twine (>=3.4.1)"]
|
418 |
+
|
419 |
+
[[package]]
|
420 |
+
name = "pytest"
|
421 |
+
version = "7.1.2"
|
422 |
+
description = "pytest: simple powerful testing with Python"
|
423 |
+
category = "dev"
|
424 |
+
optional = false
|
425 |
+
python-versions = ">=3.7"
|
426 |
+
|
427 |
+
[package.dependencies]
|
428 |
+
atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""}
|
429 |
+
attrs = ">=19.2.0"
|
430 |
+
colorama = {version = "*", markers = "sys_platform == \"win32\""}
|
431 |
+
iniconfig = "*"
|
432 |
+
packaging = "*"
|
433 |
+
pluggy = ">=0.12,<2.0"
|
434 |
+
py = ">=1.8.2"
|
435 |
+
tomli = ">=1.0.0"
|
436 |
+
|
437 |
+
[package.extras]
|
438 |
+
testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"]
|
439 |
+
|
440 |
+
[[package]]
|
441 |
+
name = "python-dotenv"
|
442 |
+
version = "0.20.0"
|
443 |
+
description = "Read key-value pairs from a .env file and set them as environment variables"
|
444 |
+
category = "main"
|
445 |
+
optional = false
|
446 |
+
python-versions = ">=3.5"
|
447 |
+
|
448 |
+
[package.extras]
|
449 |
+
cli = ["click (>=5.0)"]
|
450 |
+
|
451 |
+
[[package]]
|
452 |
+
name = "set-loglevel"
|
453 |
+
version = "0.1.2"
|
454 |
+
description = "Return a loglevel (10, 20, etc.) taking ENV LOGLEVEL into account"
|
455 |
+
category = "main"
|
456 |
+
optional = false
|
457 |
+
python-versions = ">=3.8.3,<4.0.0"
|
458 |
+
|
459 |
+
[package.dependencies]
|
460 |
+
environs = ">=9.5.0,<10.0.0"
|
461 |
+
logzero = ">=1.7.0,<2.0.0"
|
462 |
+
|
463 |
+
[[package]]
|
464 |
+
name = "six"
|
465 |
+
version = "1.16.0"
|
466 |
+
description = "Python 2 and 3 compatibility utilities"
|
467 |
+
category = "main"
|
468 |
+
optional = false
|
469 |
+
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
|
470 |
+
|
471 |
+
[[package]]
|
472 |
+
name = "snowballstemmer"
|
473 |
+
version = "2.2.0"
|
474 |
+
description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms."
|
475 |
+
category = "dev"
|
476 |
+
optional = false
|
477 |
+
python-versions = "*"
|
478 |
+
|
479 |
+
[[package]]
|
480 |
+
name = "toml"
|
481 |
+
version = "0.10.2"
|
482 |
+
description = "Python Library for Tom's Obvious, Minimal Language"
|
483 |
+
category = "dev"
|
484 |
+
optional = false
|
485 |
+
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
|
486 |
+
|
487 |
+
[[package]]
|
488 |
+
name = "tomli"
|
489 |
+
version = "2.0.1"
|
490 |
+
description = "A lil' TOML parser"
|
491 |
+
category = "dev"
|
492 |
+
optional = false
|
493 |
+
python-versions = ">=3.7"
|
494 |
+
|
495 |
+
[[package]]
|
496 |
+
name = "tomlkit"
|
497 |
+
version = "0.11.3"
|
498 |
+
description = "Style preserving TOML library"
|
499 |
+
category = "dev"
|
500 |
+
optional = false
|
501 |
+
python-versions = ">=3.6,<4.0"
|
502 |
+
|
503 |
+
[[package]]
|
504 |
+
name = "typer"
|
505 |
+
version = "0.4.2"
|
506 |
+
description = "Typer, build great CLIs. Easy to code. Based on Python type hints."
|
507 |
+
category = "main"
|
508 |
+
optional = false
|
509 |
+
python-versions = ">=3.6"
|
510 |
+
|
511 |
+
[package.dependencies]
|
512 |
+
click = ">=7.1.1,<9.0.0"
|
513 |
+
|
514 |
+
[package.extras]
|
515 |
+
test = ["isort (>=5.0.6,<6.0.0)", "black (>=22.3.0,<23.0.0)", "mypy (==0.910)", "pytest-sugar (>=0.9.4,<0.10.0)", "pytest-xdist (>=1.32.0,<2.0.0)", "coverage (>=5.2,<6.0)", "pytest-cov (>=2.10.0,<3.0.0)", "pytest (>=4.4.0,<5.4.0)", "shellingham (>=1.3.0,<2.0.0)"]
|
516 |
+
doc = ["mdx-include (>=1.4.1,<2.0.0)", "mkdocs-material (>=8.1.4,<9.0.0)", "mkdocs (>=1.1.2,<2.0.0)"]
|
517 |
+
dev = ["pre-commit (>=2.17.0,<3.0.0)", "flake8 (>=3.8.3,<4.0.0)", "autoflake (>=1.3.1,<2.0.0)"]
|
518 |
+
all = ["shellingham (>=1.3.0,<2.0.0)", "colorama (>=0.4.3,<0.5.0)"]
|
519 |
+
|
520 |
+
[[package]]
|
521 |
+
name = "typing-extensions"
|
522 |
+
version = "4.3.0"
|
523 |
+
description = "Backported and Experimental Type Hints for Python 3.7+"
|
524 |
+
category = "dev"
|
525 |
+
optional = false
|
526 |
+
python-versions = ">=3.7"
|
527 |
+
|
528 |
+
[[package]]
|
529 |
+
name = "wrapt"
|
530 |
+
version = "1.14.1"
|
531 |
+
description = "Module for decorators, wrappers and monkey patching."
|
532 |
+
category = "dev"
|
533 |
+
optional = false
|
534 |
+
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
|
535 |
+
|
536 |
+
[metadata]
|
537 |
+
lock-version = "1.1"
|
538 |
+
python-versions = "^3.8.3"
|
539 |
+
content-hash = "3ebd832872060b7bc7a8a30dd9d0d64bb3dd2ddbb5a8f6879832a0d975f73583"
|
540 |
+
|
541 |
+
[metadata.files]
|
542 |
+
astroid = [
|
543 |
+
{file = "astroid-2.11.7-py3-none-any.whl", hash = "sha256:86b0a340a512c65abf4368b80252754cda17c02cdbbd3f587dddf98112233e7b"},
|
544 |
+
{file = "astroid-2.11.7.tar.gz", hash = "sha256:bb24615c77f4837c707669d16907331374ae8a964650a66999da3f5ca68dc946"},
|
545 |
+
]
|
546 |
+
asttokens = [
|
547 |
+
{file = "asttokens-2.0.7-py2.py3-none-any.whl", hash = "sha256:f5589ef8518f73dd82c15e1c19f795d8a62c133485e557c04443d4a1a730cf9f"},
|
548 |
+
{file = "asttokens-2.0.7.tar.gz", hash = "sha256:8444353e4e2a99661c8dfb85ec9c02eedded08f0006234bff7db44a06840acc2"},
|
549 |
+
]
|
550 |
+
atomicwrites = [
|
551 |
+
{file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"},
|
552 |
+
]
|
553 |
+
attrs = [
|
554 |
+
{file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"},
|
555 |
+
{file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"},
|
556 |
+
]
|
557 |
+
black = [
|
558 |
+
{file = "black-22.6.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f586c26118bc6e714ec58c09df0157fe2d9ee195c764f630eb0d8e7ccce72e69"},
|
559 |
+
{file = "black-22.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b270a168d69edb8b7ed32c193ef10fd27844e5c60852039599f9184460ce0807"},
|
560 |
+
{file = "black-22.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6797f58943fceb1c461fb572edbe828d811e719c24e03375fd25170ada53825e"},
|
561 |
+
{file = "black-22.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c85928b9d5f83b23cee7d0efcb310172412fbf7cb9d9ce963bd67fd141781def"},
|
562 |
+
{file = "black-22.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:f6fe02afde060bbeef044af7996f335fbe90b039ccf3f5eb8f16df8b20f77666"},
|
563 |
+
{file = "black-22.6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cfaf3895a9634e882bf9d2363fed5af8888802d670f58b279b0bece00e9a872d"},
|
564 |
+
{file = "black-22.6.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94783f636bca89f11eb5d50437e8e17fbc6a929a628d82304c80fa9cd945f256"},
|
565 |
+
{file = "black-22.6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:2ea29072e954a4d55a2ff58971b83365eba5d3d357352a07a7a4df0d95f51c78"},
|
566 |
+
{file = "black-22.6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e439798f819d49ba1c0bd9664427a05aab79bfba777a6db94fd4e56fae0cb849"},
|
567 |
+
{file = "black-22.6.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:187d96c5e713f441a5829e77120c269b6514418f4513a390b0499b0987f2ff1c"},
|
568 |
+
{file = "black-22.6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:074458dc2f6e0d3dab7928d4417bb6957bb834434516f21514138437accdbe90"},
|
569 |
+
{file = "black-22.6.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a218d7e5856f91d20f04e931b6f16d15356db1c846ee55f01bac297a705ca24f"},
|
570 |
+
{file = "black-22.6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:568ac3c465b1c8b34b61cd7a4e349e93f91abf0f9371eda1cf87194663ab684e"},
|
571 |
+
{file = "black-22.6.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6c1734ab264b8f7929cef8ae5f900b85d579e6cbfde09d7387da8f04771b51c6"},
|
572 |
+
{file = "black-22.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9a3ac16efe9ec7d7381ddebcc022119794872abce99475345c5a61aa18c45ad"},
|
573 |
+
{file = "black-22.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:b9fd45787ba8aa3f5e0a0a98920c1012c884622c6c920dbe98dbd05bc7c70fbf"},
|
574 |
+
{file = "black-22.6.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7ba9be198ecca5031cd78745780d65a3f75a34b2ff9be5837045dce55db83d1c"},
|
575 |
+
{file = "black-22.6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a3db5b6409b96d9bd543323b23ef32a1a2b06416d525d27e0f67e74f1446c8f2"},
|
576 |
+
{file = "black-22.6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:560558527e52ce8afba936fcce93a7411ab40c7d5fe8c2463e279e843c0328ee"},
|
577 |
+
{file = "black-22.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b154e6bbde1e79ea3260c4b40c0b7b3109ffcdf7bc4ebf8859169a6af72cd70b"},
|
578 |
+
{file = "black-22.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:4af5bc0e1f96be5ae9bd7aaec219c901a94d6caa2484c21983d043371c733fc4"},
|
579 |
+
{file = "black-22.6.0-py3-none-any.whl", hash = "sha256:ac609cf8ef5e7115ddd07d85d988d074ed00e10fbc3445aee393e70164a2219c"},
|
580 |
+
{file = "black-22.6.0.tar.gz", hash = "sha256:6c6d39e28aed379aec40da1c65434c77d75e65bb59a1e1c283de545fb4e7c6c9"},
|
581 |
+
]
|
582 |
+
click = [
|
583 |
+
{file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"},
|
584 |
+
{file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"},
|
585 |
+
]
|
586 |
+
colorama = [
|
587 |
+
{file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"},
|
588 |
+
{file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"},
|
589 |
+
]
|
590 |
+
dill = [
|
591 |
+
{file = "dill-0.3.5.1-py2.py3-none-any.whl", hash = "sha256:33501d03270bbe410c72639b350e941882a8b0fd55357580fbc873fba0c59302"},
|
592 |
+
{file = "dill-0.3.5.1.tar.gz", hash = "sha256:d75e41f3eff1eee599d738e76ba8f4ad98ea229db8b085318aa2b3333a208c86"},
|
593 |
+
]
|
594 |
+
environs = [
|
595 |
+
{file = "environs-9.5.0-py2.py3-none-any.whl", hash = "sha256:1e549569a3de49c05f856f40bce86979e7d5ffbbc4398e7f338574c220189124"},
|
596 |
+
{file = "environs-9.5.0.tar.gz", hash = "sha256:a76307b36fbe856bdca7ee9161e6c466fd7fcffc297109a118c59b54e27e30c9"},
|
597 |
+
]
|
598 |
+
executing = [
|
599 |
+
{file = "executing-0.9.1-py2.py3-none-any.whl", hash = "sha256:4ce4d6082d99361c0231fc31ac1a0f56979363cc6819de0b1410784f99e49105"},
|
600 |
+
{file = "executing-0.9.1.tar.gz", hash = "sha256:ea278e2cf90cbbacd24f1080dd1f0ac25b71b2e21f50ab439b7ba45dd3195587"},
|
601 |
+
]
|
602 |
+
flake8 = [
|
603 |
+
{file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"},
|
604 |
+
{file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"},
|
605 |
+
]
|
606 |
+
icecream = [
|
607 |
+
{file = "icecream-2.1.3-py2.py3-none-any.whl", hash = "sha256:757aec31ad4488b949bc4f499d18e6e5973c40cc4d4fc607229e78cfaec94c34"},
|
608 |
+
{file = "icecream-2.1.3.tar.gz", hash = "sha256:0aa4a7c3374ec36153a1d08f81e3080e83d8ac1eefd97d2f4fe9544e8f9b49de"},
|
609 |
+
]
|
610 |
+
iniconfig = [
|
611 |
+
{file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"},
|
612 |
+
{file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"},
|
613 |
+
]
|
614 |
+
install = [
|
615 |
+
{file = "install-1.3.5-py3-none-any.whl", hash = "sha256:0d3fadf4aa62c95efe8d34757c8507eb46177f86c016c21c6551eafc6a53d5a9"},
|
616 |
+
{file = "install-1.3.5.tar.gz", hash = "sha256:e67c8a0be5ccf8cb4ffa17d090f3a61b6e820e6a7e21cd1d2c0f7bc59b18e647"},
|
617 |
+
]
|
618 |
+
isort = [
|
619 |
+
{file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"},
|
620 |
+
{file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"},
|
621 |
+
]
|
622 |
+
joblib = [
|
623 |
+
{file = "joblib-1.1.0-py2.py3-none-any.whl", hash = "sha256:f21f109b3c7ff9d95f8387f752d0d9c34a02aa2f7060c2135f465da0e5160ff6"},
|
624 |
+
{file = "joblib-1.1.0.tar.gz", hash = "sha256:4158fcecd13733f8be669be0683b96ebdbbd38d23559f54dca7205aea1bf1e35"},
|
625 |
+
]
|
626 |
+
lazy-object-proxy = [
|
627 |
+
{file = "lazy-object-proxy-1.7.1.tar.gz", hash = "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"},
|
628 |
+
{file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"},
|
629 |
+
{file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"},
|
630 |
+
{file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"},
|
631 |
+
{file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"},
|
632 |
+
{file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"},
|
633 |
+
{file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"},
|
634 |
+
{file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"},
|
635 |
+
{file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"},
|
636 |
+
{file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"},
|
637 |
+
{file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"},
|
638 |
+
{file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"},
|
639 |
+
{file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"},
|
640 |
+
{file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"},
|
641 |
+
{file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"},
|
642 |
+
{file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"},
|
643 |
+
{file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"},
|
644 |
+
{file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"},
|
645 |
+
{file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"},
|
646 |
+
{file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"},
|
647 |
+
{file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"},
|
648 |
+
{file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"},
|
649 |
+
{file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"},
|
650 |
+
{file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"},
|
651 |
+
{file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"},
|
652 |
+
{file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"},
|
653 |
+
{file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"},
|
654 |
+
{file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"},
|
655 |
+
{file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"},
|
656 |
+
{file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"},
|
657 |
+
{file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"},
|
658 |
+
{file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"},
|
659 |
+
{file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"},
|
660 |
+
{file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"},
|
661 |
+
{file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"},
|
662 |
+
{file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"},
|
663 |
+
{file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"},
|
664 |
+
]
|
665 |
+
logzero = [
|
666 |
+
{file = "logzero-1.7.0-py2.py3-none-any.whl", hash = "sha256:23eb1f717a2736f9ab91ca0d43160fd2c996ad49ae6bad34652d47aba908769d"},
|
667 |
+
{file = "logzero-1.7.0.tar.gz", hash = "sha256:7f73ddd3ae393457236f081ffebd044a3aa2e423a47ae6ddb5179ab90d0ad082"},
|
668 |
+
]
|
669 |
+
marshmallow = [
|
670 |
+
{file = "marshmallow-3.17.0-py3-none-any.whl", hash = "sha256:00040ab5ea0c608e8787137627a8efae97fabd60552a05dc889c888f814e75eb"},
|
671 |
+
{file = "marshmallow-3.17.0.tar.gz", hash = "sha256:635fb65a3285a31a30f276f30e958070f5214c7196202caa5c7ecf28f5274bc7"},
|
672 |
+
]
|
673 |
+
mccabe = [
|
674 |
+
{file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"},
|
675 |
+
{file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"},
|
676 |
+
]
|
677 |
+
more-itertools = [
|
678 |
+
{file = "more-itertools-8.14.0.tar.gz", hash = "sha256:c09443cd3d5438b8dafccd867a6bc1cb0894389e90cb53d227456b0b0bccb750"},
|
679 |
+
{file = "more_itertools-8.14.0-py3-none-any.whl", hash = "sha256:1bc4f91ee5b1b31ac7ceacc17c09befe6a40a503907baf9c839c229b5095cfd2"},
|
680 |
+
]
|
681 |
+
mypy-extensions = [
|
682 |
+
{file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"},
|
683 |
+
{file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"},
|
684 |
+
]
|
685 |
+
nodeenv = [
|
686 |
+
{file = "nodeenv-1.7.0-py2.py3-none-any.whl", hash = "sha256:27083a7b96a25f2f5e1d8cb4b6317ee8aeda3bdd121394e5ac54e498028a042e"},
|
687 |
+
{file = "nodeenv-1.7.0.tar.gz", hash = "sha256:e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b"},
|
688 |
+
]
|
689 |
+
packaging = [
|
690 |
+
{file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"},
|
691 |
+
{file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"},
|
692 |
+
]
|
693 |
+
pastel = [
|
694 |
+
{file = "pastel-0.2.1-py2.py3-none-any.whl", hash = "sha256:4349225fcdf6c2bb34d483e523475de5bb04a5c10ef711263452cb37d7dd4364"},
|
695 |
+
{file = "pastel-0.2.1.tar.gz", hash = "sha256:e6581ac04e973cac858828c6202c1e1e81fee1dc7de7683f3e1ffe0bfd8a573d"},
|
696 |
+
]
|
697 |
+
pathspec = [
|
698 |
+
{file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"},
|
699 |
+
{file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"},
|
700 |
+
]
|
701 |
+
platformdirs = [
|
702 |
+
{file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"},
|
703 |
+
{file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"},
|
704 |
+
]
|
705 |
+
pluggy = [
|
706 |
+
{file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"},
|
707 |
+
{file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"},
|
708 |
+
]
|
709 |
+
poethepoet = [
|
710 |
+
{file = "poethepoet-0.10.0-py3-none-any.whl", hash = "sha256:6fb3021603d4421c6fcc40072bbcf150a6c52ef70ff4d3be089b8b04e015ef5a"},
|
711 |
+
{file = "poethepoet-0.10.0.tar.gz", hash = "sha256:70b97cb194b978dc464c70793e85e6f746cddf82b84a38bfb135946ad71ae19c"},
|
712 |
+
]
|
713 |
+
py = [
|
714 |
+
{file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"},
|
715 |
+
{file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"},
|
716 |
+
]
|
717 |
+
pycodestyle = [
|
718 |
+
{file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"},
|
719 |
+
{file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"},
|
720 |
+
]
|
721 |
+
pydocstyle = [
|
722 |
+
{file = "pydocstyle-6.1.1-py3-none-any.whl", hash = "sha256:6987826d6775056839940041beef5c08cc7e3d71d63149b48e36727f70144dc4"},
|
723 |
+
{file = "pydocstyle-6.1.1.tar.gz", hash = "sha256:1d41b7c459ba0ee6c345f2eb9ae827cab14a7533a88c5c6f7e94923f72df92dc"},
|
724 |
+
]
|
725 |
+
pyflakes = [
|
726 |
+
{file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"},
|
727 |
+
{file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"},
|
728 |
+
]
|
729 |
+
pygments = [
|
730 |
+
{file = "Pygments-2.12.0-py3-none-any.whl", hash = "sha256:dc9c10fb40944260f6ed4c688ece0cd2048414940f1cea51b8b226318411c519"},
|
731 |
+
{file = "Pygments-2.12.0.tar.gz", hash = "sha256:5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb"},
|
732 |
+
]
|
733 |
+
pylint = [
|
734 |
+
{file = "pylint-2.14.5-py3-none-any.whl", hash = "sha256:fabe30000de7d07636d2e82c9a518ad5ad7908590fe135ace169b44839c15f90"},
|
735 |
+
{file = "pylint-2.14.5.tar.gz", hash = "sha256:487ce2192eee48211269a0e976421f334cf94de1806ca9d0a99449adcdf0285e"},
|
736 |
+
]
|
737 |
+
pyparsing = [
|
738 |
+
{file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"},
|
739 |
+
{file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"},
|
740 |
+
]
|
741 |
+
pyright = [
|
742 |
+
{file = "pyright-1.1.266-py3-none-any.whl", hash = "sha256:246b2fb33c9483ac6e684e8e7619e3ecf0fee20180ec22549a4f3cdf47dbd0de"},
|
743 |
+
{file = "pyright-1.1.266.tar.gz", hash = "sha256:1154aeaaa0b62f5161af09342bf0a586468d6789377dfd8710ba8d85c22eee94"},
|
744 |
+
]
|
745 |
+
pytest = [
|
746 |
+
{file = "pytest-7.1.2-py3-none-any.whl", hash = "sha256:13d0e3ccfc2b6e26be000cb6568c832ba67ba32e719443bfe725814d3c42433c"},
|
747 |
+
{file = "pytest-7.1.2.tar.gz", hash = "sha256:a06a0425453864a270bc45e71f783330a7428defb4230fb5e6a731fde06ecd45"},
|
748 |
+
]
|
749 |
+
python-dotenv = [
|
750 |
+
{file = "python-dotenv-0.20.0.tar.gz", hash = "sha256:b7e3b04a59693c42c36f9ab1cc2acc46fa5df8c78e178fc33a8d4cd05c8d498f"},
|
751 |
+
{file = "python_dotenv-0.20.0-py3-none-any.whl", hash = "sha256:d92a187be61fe482e4fd675b6d52200e7be63a12b724abbf931a40ce4fa92938"},
|
752 |
+
]
|
753 |
+
set-loglevel = [
|
754 |
+
{file = "set_loglevel-0.1.2-py3-none-any.whl", hash = "sha256:fcfe76ccd3791511e2cb51ec11ded6cc2186a727e441a934c547a211d0fdf773"},
|
755 |
+
{file = "set_loglevel-0.1.2.tar.gz", hash = "sha256:4da23414a798cea918801b113e17af092f13ccda96345203b14042b6d6d3a896"},
|
756 |
+
]
|
757 |
+
six = [
|
758 |
+
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
|
759 |
+
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
|
760 |
+
]
|
761 |
+
snowballstemmer = [
|
762 |
+
{file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"},
|
763 |
+
{file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"},
|
764 |
+
]
|
765 |
+
toml = [
|
766 |
+
{file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
|
767 |
+
{file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
|
768 |
+
]
|
769 |
+
tomli = [
|
770 |
+
{file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
|
771 |
+
{file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
|
772 |
+
]
|
773 |
+
tomlkit = [
|
774 |
+
{file = "tomlkit-0.11.3-py3-none-any.whl", hash = "sha256:800628e7705ff7c7cc4395c29836c7073e55b9ec820e1fc696080f9c5591a789"},
|
775 |
+
{file = "tomlkit-0.11.3.tar.gz", hash = "sha256:0ace4c975e0f3e6f71be8a2d61fe568777f1634bc80abff642cd3323ce709a0d"},
|
776 |
+
]
|
777 |
+
typer = [
|
778 |
+
{file = "typer-0.4.2-py3-none-any.whl", hash = "sha256:023bae00d1baf358a6cc7cea45851639360bb716de687b42b0a4641cd99173f1"},
|
779 |
+
{file = "typer-0.4.2.tar.gz", hash = "sha256:b8261c6c0152dd73478b5ba96ba677e5d6948c715c310f7c91079f311f62ec03"},
|
780 |
+
]
|
781 |
+
typing-extensions = [
|
782 |
+
{file = "typing_extensions-4.3.0-py3-none-any.whl", hash = "sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02"},
|
783 |
+
{file = "typing_extensions-4.3.0.tar.gz", hash = "sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6"},
|
784 |
+
]
|
785 |
+
wrapt = [
|
786 |
+
{file = "wrapt-1.14.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1b376b3f4896e7930f1f772ac4b064ac12598d1c38d04907e696cc4d794b43d3"},
|
787 |
+
{file = "wrapt-1.14.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:903500616422a40a98a5a3c4ff4ed9d0066f3b4c951fa286018ecdf0750194ef"},
|
788 |
+
{file = "wrapt-1.14.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5a9a0d155deafd9448baff28c08e150d9b24ff010e899311ddd63c45c2445e28"},
|
789 |
+
{file = "wrapt-1.14.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ddaea91abf8b0d13443f6dac52e89051a5063c7d014710dcb4d4abb2ff811a59"},
|
790 |
+
{file = "wrapt-1.14.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:36f582d0c6bc99d5f39cd3ac2a9062e57f3cf606ade29a0a0d6b323462f4dd87"},
|
791 |
+
{file = "wrapt-1.14.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:7ef58fb89674095bfc57c4069e95d7a31cfdc0939e2a579882ac7d55aadfd2a1"},
|
792 |
+
{file = "wrapt-1.14.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e2f83e18fe2f4c9e7db597e988f72712c0c3676d337d8b101f6758107c42425b"},
|
793 |
+
{file = "wrapt-1.14.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:ee2b1b1769f6707a8a445162ea16dddf74285c3964f605877a20e38545c3c462"},
|
794 |
+
{file = "wrapt-1.14.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:833b58d5d0b7e5b9832869f039203389ac7cbf01765639c7309fd50ef619e0b1"},
|
795 |
+
{file = "wrapt-1.14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:80bb5c256f1415f747011dc3604b59bc1f91c6e7150bd7db03b19170ee06b320"},
|
796 |
+
{file = "wrapt-1.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:07f7a7d0f388028b2df1d916e94bbb40624c59b48ecc6cbc232546706fac74c2"},
|
797 |
+
{file = "wrapt-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02b41b633c6261feff8ddd8d11c711df6842aba629fdd3da10249a53211a72c4"},
|
798 |
+
{file = "wrapt-1.14.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2fe803deacd09a233e4762a1adcea5db5d31e6be577a43352936179d14d90069"},
|
799 |
+
{file = "wrapt-1.14.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:257fd78c513e0fb5cdbe058c27a0624c9884e735bbd131935fd49e9fe719d310"},
|
800 |
+
{file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4fcc4649dc762cddacd193e6b55bc02edca674067f5f98166d7713b193932b7f"},
|
801 |
+
{file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:11871514607b15cfeb87c547a49bca19fde402f32e2b1c24a632506c0a756656"},
|
802 |
+
{file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8ad85f7f4e20964db4daadcab70b47ab05c7c1cf2a7c1e51087bfaa83831854c"},
|
803 |
+
{file = "wrapt-1.14.1-cp310-cp310-win32.whl", hash = "sha256:a9a52172be0b5aae932bef82a79ec0a0ce87288c7d132946d645eba03f0ad8a8"},
|
804 |
+
{file = "wrapt-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:6d323e1554b3d22cfc03cd3243b5bb815a51f5249fdcbb86fda4bf62bab9e164"},
|
805 |
+
{file = "wrapt-1.14.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:43ca3bbbe97af00f49efb06e352eae40434ca9d915906f77def219b88e85d907"},
|
806 |
+
{file = "wrapt-1.14.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:6b1a564e6cb69922c7fe3a678b9f9a3c54e72b469875aa8018f18b4d1dd1adf3"},
|
807 |
+
{file = "wrapt-1.14.1-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:00b6d4ea20a906c0ca56d84f93065b398ab74b927a7a3dbd470f6fc503f95dc3"},
|
808 |
+
{file = "wrapt-1.14.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:a85d2b46be66a71bedde836d9e41859879cc54a2a04fad1191eb50c2066f6e9d"},
|
809 |
+
{file = "wrapt-1.14.1-cp35-cp35m-win32.whl", hash = "sha256:dbcda74c67263139358f4d188ae5faae95c30929281bc6866d00573783c422b7"},
|
810 |
+
{file = "wrapt-1.14.1-cp35-cp35m-win_amd64.whl", hash = "sha256:b21bb4c09ffabfa0e85e3a6b623e19b80e7acd709b9f91452b8297ace2a8ab00"},
|
811 |
+
{file = "wrapt-1.14.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:9e0fd32e0148dd5dea6af5fee42beb949098564cc23211a88d799e434255a1f4"},
|
812 |
+
{file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9736af4641846491aedb3c3f56b9bc5568d92b0692303b5a305301a95dfd38b1"},
|
813 |
+
{file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b02d65b9ccf0ef6c34cba6cf5bf2aab1bb2f49c6090bafeecc9cd81ad4ea1c1"},
|
814 |
+
{file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21ac0156c4b089b330b7666db40feee30a5d52634cc4560e1905d6529a3897ff"},
|
815 |
+
{file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:9f3e6f9e05148ff90002b884fbc2a86bd303ae847e472f44ecc06c2cd2fcdb2d"},
|
816 |
+
{file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:6e743de5e9c3d1b7185870f480587b75b1cb604832e380d64f9504a0535912d1"},
|
817 |
+
{file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d79d7d5dc8a32b7093e81e97dad755127ff77bcc899e845f41bf71747af0c569"},
|
818 |
+
{file = "wrapt-1.14.1-cp36-cp36m-win32.whl", hash = "sha256:81b19725065dcb43df02b37e03278c011a09e49757287dca60c5aecdd5a0b8ed"},
|
819 |
+
{file = "wrapt-1.14.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b014c23646a467558be7da3d6b9fa409b2c567d2110599b7cf9a0c5992b3b471"},
|
820 |
+
{file = "wrapt-1.14.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:88bd7b6bd70a5b6803c1abf6bca012f7ed963e58c68d76ee20b9d751c74a3248"},
|
821 |
+
{file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5901a312f4d14c59918c221323068fad0540e34324925c8475263841dbdfe68"},
|
822 |
+
{file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d77c85fedff92cf788face9bfa3ebaa364448ebb1d765302e9af11bf449ca36d"},
|
823 |
+
{file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d649d616e5c6a678b26d15ece345354f7c2286acd6db868e65fcc5ff7c24a77"},
|
824 |
+
{file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7d2872609603cb35ca513d7404a94d6d608fc13211563571117046c9d2bcc3d7"},
|
825 |
+
{file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:ee6acae74a2b91865910eef5e7de37dc6895ad96fa23603d1d27ea69df545015"},
|
826 |
+
{file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2b39d38039a1fdad98c87279b48bc5dce2c0ca0d73483b12cb72aa9609278e8a"},
|
827 |
+
{file = "wrapt-1.14.1-cp37-cp37m-win32.whl", hash = "sha256:60db23fa423575eeb65ea430cee741acb7c26a1365d103f7b0f6ec412b893853"},
|
828 |
+
{file = "wrapt-1.14.1-cp37-cp37m-win_amd64.whl", hash = "sha256:709fe01086a55cf79d20f741f39325018f4df051ef39fe921b1ebe780a66184c"},
|
829 |
+
{file = "wrapt-1.14.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8c0ce1e99116d5ab21355d8ebe53d9460366704ea38ae4d9f6933188f327b456"},
|
830 |
+
{file = "wrapt-1.14.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e3fb1677c720409d5f671e39bac6c9e0e422584e5f518bfd50aa4cbbea02433f"},
|
831 |
+
{file = "wrapt-1.14.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:642c2e7a804fcf18c222e1060df25fc210b9c58db7c91416fb055897fc27e8cc"},
|
832 |
+
{file = "wrapt-1.14.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b7c050ae976e286906dd3f26009e117eb000fb2cf3533398c5ad9ccc86867b1"},
|
833 |
+
{file = "wrapt-1.14.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef3f72c9666bba2bab70d2a8b79f2c6d2c1a42a7f7e2b0ec83bb2f9e383950af"},
|
834 |
+
{file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:01c205616a89d09827986bc4e859bcabd64f5a0662a7fe95e0d359424e0e071b"},
|
835 |
+
{file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5a0f54ce2c092aaf439813735584b9537cad479575a09892b8352fea5e988dc0"},
|
836 |
+
{file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2cf71233a0ed05ccdabe209c606fe0bac7379fdcf687f39b944420d2a09fdb57"},
|
837 |
+
{file = "wrapt-1.14.1-cp38-cp38-win32.whl", hash = "sha256:aa31fdcc33fef9eb2552cbcbfee7773d5a6792c137b359e82879c101e98584c5"},
|
838 |
+
{file = "wrapt-1.14.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1967f46ea8f2db647c786e78d8cc7e4313dbd1b0aca360592d8027b8508e24d"},
|
839 |
+
{file = "wrapt-1.14.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3232822c7d98d23895ccc443bbdf57c7412c5a65996c30442ebe6ed3df335383"},
|
840 |
+
{file = "wrapt-1.14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:988635d122aaf2bdcef9e795435662bcd65b02f4f4c1ae37fbee7401c440b3a7"},
|
841 |
+
{file = "wrapt-1.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cca3c2cdadb362116235fdbd411735de4328c61425b0aa9f872fd76d02c4e86"},
|
842 |
+
{file = "wrapt-1.14.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d52a25136894c63de15a35bc0bdc5adb4b0e173b9c0d07a2be9d3ca64a332735"},
|
843 |
+
{file = "wrapt-1.14.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40e7bc81c9e2b2734ea4bc1aceb8a8f0ceaac7c5299bc5d69e37c44d9081d43b"},
|
844 |
+
{file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b9b7a708dd92306328117d8c4b62e2194d00c365f18eff11a9b53c6f923b01e3"},
|
845 |
+
{file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6a9a25751acb379b466ff6be78a315e2b439d4c94c1e99cb7266d40a537995d3"},
|
846 |
+
{file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:34aa51c45f28ba7f12accd624225e2b1e5a3a45206aa191f6f9aac931d9d56fe"},
|
847 |
+
{file = "wrapt-1.14.1-cp39-cp39-win32.whl", hash = "sha256:dee0ce50c6a2dd9056c20db781e9c1cfd33e77d2d569f5d1d9321c641bb903d5"},
|
848 |
+
{file = "wrapt-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:dee60e1de1898bde3b238f18340eec6148986da0455d8ba7848d50470a7a32fb"},
|
849 |
+
{file = "wrapt-1.14.1.tar.gz", hash = "sha256:380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d"},
|
850 |
+
]
|
poetry.toml
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
[virtualenvs]
|
2 |
+
create = true
|
3 |
+
in-project = true
|
pylintrc
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[EXCEPTIONS]
|
2 |
+
# C0301 line too long
|
3 |
+
# R0801 dup
|
4 |
+
# C0103 invalid-name
|
5 |
+
# W0612 unused-variable
|
6 |
+
# W0611 unused-import
|
7 |
+
disable=W0703,R0801,C0103,C0301,W0612,W0611
|
pyproject.toml
ADDED
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[tool.poetry]
|
2 |
+
name = "radio-embed-p"
|
3 |
+
version = "0.1.0-alpha.0"
|
4 |
+
description = "radio-embed parallel"
|
5 |
+
authors = ["ffreemt"]
|
6 |
+
license = "MIT"
|
7 |
+
readme = "README1.md"
|
8 |
+
repository = "https://github.com/ffreemt/radio-embed-p"
|
9 |
+
|
10 |
+
[tool.poetry.dependencies]
|
11 |
+
python = "^3.8.3"
|
12 |
+
logzero = "^1.7.0"
|
13 |
+
set-loglevel = "^0.1.2"
|
14 |
+
typer = "^0.4.1"
|
15 |
+
icecream = "^2.1.1"
|
16 |
+
install = "^1.3.5"
|
17 |
+
more-itertools = "^8.14.0"
|
18 |
+
|
19 |
+
[tool.poe.executor]
|
20 |
+
type = "poetry"
|
21 |
+
|
22 |
+
[tool.poe.tasks]
|
23 |
+
memo = "echo poe test or poetry run poe test"
|
24 |
+
test = "pytest tests"
|
25 |
+
pyright = "pyright radio_embed_p"
|
26 |
+
flake8 = "flake8 radio_embed_p --ignore F401,E501,F841"
|
27 |
+
check = ["pyright", "flake8"]
|
28 |
+
export = "poetry export --without-hashes -f requirements.txt -o requirements.txt"
|
29 |
+
build = "poetry build"
|
30 |
+
publish = "poetry publish"
|
31 |
+
release = ["test", "build", "publish"]
|
32 |
+
lint = { cmd = "pylint radio_embed_p" }
|
33 |
+
isort = "isort tests radio_embed_p"
|
34 |
+
black = "black tests radio_embed_p"
|
35 |
+
format = ["isort", "black"]
|
36 |
+
docstyle = "pydocstyle --convention=google tests radio_embed_p"
|
37 |
+
prerelease = {cmd = "poetry version prerelease && sync-version"}
|
38 |
+
tunnel = {cmd = "ssh -CN ip_or_hostname_defined_in_hosts -L 9091:127.0.0.1:9091"}
|
39 |
+
|
40 |
+
[tool.poetry.dev-dependencies]
|
41 |
+
pytest = "^7.1"
|
42 |
+
flake8 = "^3.9.2"
|
43 |
+
isort = "^5.10.1"
|
44 |
+
black = "^22.3.0"
|
45 |
+
pylint = "^2.14.2"
|
46 |
+
pyright = "^1.1.254"
|
47 |
+
pydocstyle = "^6.1.1"
|
48 |
+
toml = "^0.10.2"
|
49 |
+
# tbump = "^6.3.2"
|
50 |
+
poethepoet = "^0.10.0"
|
51 |
+
joblib = "^1.1.0"
|
52 |
+
|
53 |
+
[tool.poetry.scripts]
|
54 |
+
"radio-embed-p" = "radio_embed_p.__main__:app"
|
55 |
+
|
56 |
+
[build-system]
|
57 |
+
requires = ["poetry-core>=1.0.0"]
|
58 |
+
build-backend = "poetry.core.masonry.api"
|
59 |
+
|
60 |
+
[tool.pytest.ini_options]
|
61 |
+
minversion = "6.0"
|
62 |
+
addopts = "-ra -q --doctest-modules"
|
63 |
+
log_cli = true
|
64 |
+
testpaths = [
|
65 |
+
"tests",
|
66 |
+
# "integration",
|
67 |
+
]
|
68 |
+
|
69 |
+
[tool.black]
|
70 |
+
skip-string-normalization = 0
|
71 |
+
|
72 |
+
[tool.isort]
|
73 |
+
profile = "black"
|
74 |
+
multi_line_output = 3
|
pyrightconfig.json
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"include": ["tests", "radio_embed_p"],
|
3 |
+
"venvPath": ".venv",
|
4 |
+
"reportTypeshedErrors": false,
|
5 |
+
"reportMissingImports": true,
|
6 |
+
"reportMissingTypeStubs": false,
|
7 |
+
"pythonVersion": "3.8",
|
8 |
+
"ignore": []
|
9 |
+
}
|
radio_embed_p/__init__.py
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"""Init."""
|
2 |
+
__version__ = "0.1.0a0"
|
3 |
+
from .radio_embed_p import radio_embed_p
|
4 |
+
|
5 |
+
__all__ = ("radio_embed_p",)
|
radio_embed_p/__main__.py-
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"""Prep __main__.py."""
|
2 |
+
# pylint: disable=invalid-name
|
3 |
+
from pathlib import Path
|
4 |
+
from typing import Optional
|
5 |
+
|
6 |
+
import logzero
|
7 |
+
import typer
|
8 |
+
from logzero import logger
|
9 |
+
from set_loglevel import set_loglevel
|
10 |
+
|
11 |
+
from radio_embed_p import __version__, radio_embed_p
|
12 |
+
|
13 |
+
logzero.loglevel(set_loglevel())
|
14 |
+
|
15 |
+
app = typer.Typer(
|
16 |
+
name="radio_embed_p",
|
17 |
+
add_completion=False,
|
18 |
+
help="radio_embed_p help",
|
19 |
+
)
|
20 |
+
|
21 |
+
|
22 |
+
def _version_callback(value: bool) -> None:
|
23 |
+
if value:
|
24 |
+
typer.echo(f"{app.info.name} v.{__version__} -- ...")
|
25 |
+
raise typer.Exit()
|
26 |
+
|
27 |
+
|
28 |
+
@app.command()
|
29 |
+
def main(
|
30 |
+
version: Optional[bool] = typer.Option( # pylint: disable=(unused-argument
|
31 |
+
None,
|
32 |
+
"--version",
|
33 |
+
"-v",
|
34 |
+
"-V",
|
35 |
+
help="Show version info and exit.",
|
36 |
+
callback=_version_callback,
|
37 |
+
is_eager=True,
|
38 |
+
),
|
39 |
+
):
|
40 |
+
"""Define."""
|
41 |
+
|
42 |
+
|
43 |
+
if __name__ == "__main__":
|
44 |
+
app()
|
radio_embed_p/radio_embed_p.py
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"""Embed input."""
|
2 |
+
# pylint: disable=invalid-name
|
3 |
+
import multiprocessing as mp
|
4 |
+
from math import ceil
|
5 |
+
|
6 |
+
import more_itertools as mit
|
7 |
+
import numpy
|
8 |
+
from hf_model_s_cpu import model_s
|
9 |
+
from logzero import logger
|
10 |
+
|
11 |
+
try:
|
12 |
+
model = model_s()
|
13 |
+
except Exception as _:
|
14 |
+
logger.exception(_)
|
15 |
+
raise SystemExit(1) from _
|
16 |
+
|
17 |
+
num_cpus = mp.cpu_count()
|
18 |
+
|
19 |
+
|
20 |
+
def radio_embed(
|
21 |
+
text: str,
|
22 |
+
) -> numpy.ndarray:
|
23 |
+
"""Embed input."""
|
24 |
+
try:
|
25 |
+
_ = model.encode(text.strip().splitlines())
|
26 |
+
except Exception as _:
|
27 |
+
logger.exception(_)
|
28 |
+
raise
|
29 |
+
|
30 |
+
return _
|
31 |
+
|
32 |
+
|
33 |
+
def radio_embed_p(
|
34 |
+
text: str,
|
35 |
+
) -> numpy.ndarray:
|
36 |
+
"""Embed input in parallel."""
|
37 |
+
# split evenly to num_cpus parts
|
38 |
+
_ = text.splitlines()
|
39 |
+
_ = mit.chunked_even(_, ceil(len(_) / num_cpus))
|
40 |
+
|
41 |
+
# back to str for radio_embed
|
42 |
+
args = ["\n".join(elm) for elm in _]
|
43 |
+
|
44 |
+
try:
|
45 |
+
with mp.Pool(num_cpus) as pool:
|
46 |
+
# ret = pool.map(func, args_)
|
47 |
+
ret = pool.map(radio_embed, args)
|
48 |
+
except Exception as exc:
|
49 |
+
logger.error(exc)
|
50 |
+
raise
|
51 |
+
|
52 |
+
return ret
|
start-sshd.sh
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
apt update && apt-get install openssh-server -y
|
2 |
+
/etc/init.d/ssh restart && mkdir -p ~/.ssh && echo ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOl+SiDFL1ZUh1QJ0454eYKtamkMCVs2hhuv3cWN1LU7 id_ed25519_colab > ~/.ssh/authorized_keys
|
tests/__init__.py
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
"""Init."""
|
tests/fangfang-en.txt
ADDED
The diff for this file is too large to render.
See raw diff
|
|
tests/test_radio_embed_p.py
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"""Test radio_embed_p."""
|
2 |
+
# pylint: disable=broad-except, invalid-name
|
3 |
+
from pathlib import Path
|
4 |
+
|
5 |
+
import joblib
|
6 |
+
import numpy as np
|
7 |
+
|
8 |
+
from radio_embed_p import __version__, radio_embed_p
|
9 |
+
from radio_embed_p.radio_embed_p import radio_embed
|
10 |
+
|
11 |
+
|
12 |
+
def test_version():
|
13 |
+
"""Test version."""
|
14 |
+
assert __version__[:3] == "0.1"
|
15 |
+
|
16 |
+
|
17 |
+
def test_sanity():
|
18 |
+
"""Check sanity."""
|
19 |
+
try:
|
20 |
+
assert not radio_embed_p()
|
21 |
+
except Exception:
|
22 |
+
assert True
|
23 |
+
|
24 |
+
|
25 |
+
def test_ff_en():
|
26 |
+
"""Test ff-en.txt."""
|
27 |
+
# __file__ = "tests/test_radio_embed_p.py"
|
28 |
+
|
29 |
+
# fpath = Path(__file__).parent / "ff-en.lzma"
|
30 |
+
# r = joblib.load(fpath)
|
31 |
+
|
32 |
+
fpath = Path(__file__).parent / "fangfang-en.txt"
|
33 |
+
lst = [
|
34 |
+
elm.strip() for elm in Path(fpath).read_text("utf8").splitlines() if elm.strip()
|
35 |
+
]
|
36 |
+
text = "\n".join(lst[:100])
|
37 |
+
|
38 |
+
r = radio_embed(text)
|
39 |
+
|
40 |
+
# import os
|
41 |
+
# os.environ["TOKENIZERS_PARALLELISM"] = "false"
|
42 |
+
r1 = radio_embed_p(text)
|
43 |
+
|
44 |
+
assert np.allclose(np.array(r), np.array(r1), atol=1e-07)
|