This is an automated email from the ASF dual-hosted git repository.
mehrdadh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm.git
The following commit(s) were added to refs/heads/main by this push:
new 2b110367d1 [microTVM][Arduino]Add `serial_number` to project options
and tests (#13518)
2b110367d1 is described below
commit 2b110367d1e1df12a3e784b7cdcc1d769c97132c
Author: Mehrdad Hessar <[email protected]>
AuthorDate: Mon Dec 5 11:03:00 2022 -0600
[microTVM][Arduino]Add `serial_number` to project options and tests (#13518)
This PR adds serial_number as a project option to Arduino project API. In
addition, it is added to micro pytest_plugin to enable testing with assigned
serial number.
---
.../template_project/microtvm_api_server.py | 51 +-
apps/microtvm/poetry.lock | 556 ++++++++++++++++++---
apps/microtvm/pyproject.toml | 1 +
python/tvm/micro/testing/pytest_plugin.py | 13 +
tests/micro/arduino/README.md | 7 +
.../micro/arduino/test_arduino_error_detection.py | 7 +-
tests/micro/arduino/test_arduino_rpc_server.py | 91 +++-
tests/micro/arduino/test_arduino_workflow.py | 3 +-
tests/micro/arduino/test_utils.py | 3 +-
tests/micro/zephyr/README.md | 2 +-
tests/micro/zephyr/conftest.py | 10 -
11 files changed, 635 insertions(+), 109 deletions(-)
diff --git a/apps/microtvm/arduino/template_project/microtvm_api_server.py
b/apps/microtvm/arduino/template_project/microtvm_api_server.py
index cb0022b3be..4975d924da 100644
--- a/apps/microtvm/arduino/template_project/microtvm_api_server.py
+++ b/apps/microtvm/arduino/template_project/microtvm_api_server.py
@@ -91,7 +91,20 @@ PROJECT_OPTIONS = server.default_project_options(
optional=["flash", "open_transport"],
type="int",
default=None,
- help="Port to use for connecting to hardware.",
+ help=(
+ "Port to use for connecting to hardware. "
+ "If port and serial_number options are not set it will try to
autodetect the port."
+ ),
+ ),
+ server.ProjectOption(
+ "serial_number",
+ optional=["open_transport", "flash"],
+ type="str",
+ default=None,
+ help=(
+ "Board serial number. If both serial_number and port options are
set,"
+ " it will throw exception."
+ ),
),
]
@@ -525,6 +538,7 @@ class Handler(server.ProjectAPIHandler):
yield device
def _auto_detect_port(self, arduino_cli_cmd: str, board: str) -> str:
+ # It is assumed only one board with this type is connected to this
host machine.
list_cmd = [self._get_arduino_cli_cmd(arduino_cli_cmd), "board",
"list"]
list_cmd_output = subprocess.run(
list_cmd, check=True, stdout=subprocess.PIPE
@@ -538,10 +552,34 @@ class Handler(server.ProjectAPIHandler):
# If no compatible boards, raise an error
raise BoardAutodetectFailed()
- def _get_arduino_port(self, arduino_cli_cmd: str, board: str, port: int):
+ def _get_arduino_port(
+ self, arduino_cli_cmd: str, board: str, port: int = None,
serial_number: str = None
+ ):
+ """Returns Arduino serial port.
+ If both port and serial_number are set, it throw Runtime exception.
+ If none of those options are set, it tries to autodetect the serial
port.
+ """
+ # TODO: This is to avoid breaking GPU docker on running the tutorials.
+ import serial.tools.list_ports
+
+ if serial_number and port:
+ raise RuntimeError(
+ "port and serial_number cannot be set together. Please set
only one."
+ )
+
if not self._port:
if port:
self._port = port
+ elif serial_number:
+ com_ports = serial.tools.list_ports.comports()
+ for port in com_ports:
+ if port.serial_number == serial_number:
+ self._port = port.device
+ break
+ if not self._port:
+ raise BoardAutodetectFailed(
+ f"Detecting port with board serial_number
{serial_number} failed."
+ )
else:
self._port = self._auto_detect_port(arduino_cli_cmd, board)
@@ -565,12 +603,14 @@ class Handler(server.ProjectAPIHandler):
warning_as_error = options.get("warning_as_error")
port = options.get("port")
board = options.get("board")
+ serial_number = options.get("serial_number")
+
if not board:
board = self._get_board_from_makefile(API_SERVER_DIR /
MAKEFILE_FILENAME)
cli_command = self._get_arduino_cli_cmd(arduino_cli_cmd)
self._check_platform_version(cli_command, warning_as_error)
- port = self._get_arduino_port(cli_command, board, port)
+ port = self._get_arduino_port(cli_command, board, port, serial_number)
upload_cmd = ["make", "flash", f"PORT={port}"]
for _ in range(self.FLASH_MAX_RETRIES):
@@ -594,6 +634,7 @@ class Handler(server.ProjectAPIHandler):
)
def open_transport(self, options):
+ # TODO: This is to avoid breaking GPU docker on running the tutorials.
import serial
import serial.tools.list_ports
@@ -601,6 +642,8 @@ class Handler(server.ProjectAPIHandler):
arduino_cli_cmd = options.get("arduino_cli_cmd")
port = options.get("port")
board = options.get("board")
+ serial_number = options.get("serial_number")
+
if not board:
board = self._get_board_from_makefile(API_SERVER_DIR /
MAKEFILE_FILENAME)
@@ -608,7 +651,7 @@ class Handler(server.ProjectAPIHandler):
if self._serial is not None:
return
- port = self._get_arduino_port(arduino_cli_cmd, board, port)
+ port = self._get_arduino_port(arduino_cli_cmd, board, port,
serial_number)
# It takes a moment for the Arduino code to finish initializing
# and start communicating over serial
diff --git a/apps/microtvm/poetry.lock b/apps/microtvm/poetry.lock
index 3637b69f86..124d9bd1f7 100644
--- a/apps/microtvm/poetry.lock
+++ b/apps/microtvm/poetry.lock
@@ -53,7 +53,7 @@ python-versions = ">=3.7"
typing-extensions = {version = "*", markers = "python_version < \"3.8\""}
[package.extras]
-tests = ["pytest", "pytest-asyncio", "mypy (>=0.800)"]
+tests = ["mypy (>=0.800)", "pytest", "pytest-asyncio"]
[[package]]
name = "astroid"
@@ -97,8 +97,8 @@ optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[package.extras]
-azure-pipelines = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)",
"six", "zope.interface", "pytest-azurepipelines"]
-dev = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six",
"zope.interface", "sphinx", "pre-commit"]
+azure-pipelines = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)",
"pytest-azurepipelines", "six", "zope.interface"]
+dev = ["coverage", "hypothesis", "pre-commit", "pympler", "pytest (>=4.3.0)",
"six", "sphinx", "zope.interface"]
docs = ["sphinx", "zope.interface"]
tests = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six",
"zope.interface"]
@@ -348,9 +348,9 @@ optional = false
python-versions = ">=3.7"
[package.extras]
-all = ["fs (>=2.2.0,<3)", "lxml (>=4.0,<5)", "zopfli (>=0.1.4)", "lz4
(>=1.7.4.2)", "matplotlib", "sympy", "skia-pathops (>=0.5.0)", "uharfbuzz
(>=0.23.0)", "brotlicffi (>=0.8.0)", "scipy", "brotli (>=1.0.1)", "munkres",
"unicodedata2 (>=14.0.0)", "xattr"]
+all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml
(>=4.0,<5)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "scipy", "skia-pathops
(>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=14.0.0)",
"xattr", "zopfli (>=0.1.4)"]
graphite = ["lz4 (>=1.7.4.2)"]
-interpolatable = ["scipy", "munkres"]
+interpolatable = ["munkres", "scipy"]
lxml = ["lxml (>=4.0,<5)"]
pathops = ["skia-pathops (>=0.5.0)"]
plot = ["matplotlib"]
@@ -359,7 +359,7 @@ symfont = ["sympy"]
type1 = ["xattr"]
ufo = ["fs (>=2.2.0,<3)"]
unicode = ["unicodedata2 (>=14.0.0)"]
-woff = ["zopfli (>=0.1.4)", "brotlicffi (>=0.8.0)", "brotli (>=1.0.1)"]
+woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"]
[[package]]
name = "future"
@@ -392,7 +392,7 @@ rsa = {version = ">=3.1.4,<5", markers = "python_version >=
\"3.6\""}
six = ">=1.9.0"
[package.extras]
-aiohttp = ["requests (>=2.20.0,<3.0.0dev)", "aiohttp (>=3.6.2,<4.0.0dev)"]
+aiohttp = ["aiohttp (>=3.6.2,<4.0.0dev)", "requests (>=2.20.0,<3.0.0dev)"]
enterprise_cert = ["cryptography (==36.0.2)", "pyopenssl (==22.0.0)"]
pyopenssl = ["pyopenssl (>=20.0.0)"]
reauth = ["pyu2f (>=0.1.5)"]
@@ -432,9 +432,9 @@ optional = true
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
[package.extras]
-dev = ["tox (>=3.0)", "flake8", "pep8-naming", "wheel", "twine"]
+dev = ["flake8", "pep8-naming", "tox (>=3.0)", "twine", "wheel"]
docs = ["sphinx (>=1.3)", "sphinx-rtd-theme"]
-test = ["mock (>=2)", "pytest (>=3.4)", "pytest-mock (>=1.8)", "pytest-cov"]
+test = ["mock (>=2)", "pytest (>=3.4)", "pytest-cov", "pytest-mock (>=1.8)"]
[[package]]
name = "grpcio"
@@ -503,9 +503,9 @@ typing-extensions = {version = ">=3.6.4", markers =
"python_version < \"3.8\""}
zipp = ">=0.5"
[package.extras]
-docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"]
+docs = ["jaraco.packaging (>=9)", "rst.linker (>=1.9)", "sphinx"]
perf = ["ipython"]
-testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8",
"pytest-cov", "pytest-enabler (>=1.3)", "packaging", "pyfakefs",
"flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy
(>=0.9.1)", "importlib-resources (>=1.3)"]
+testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging",
"pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs
(>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy
(>=0.9.1)", "pytest-perf (>=0.9.2)"]
[[package]]
name = "iniconfig"
@@ -524,10 +524,10 @@ optional = false
python-versions = ">=3.6.1,<4.0"
[package.extras]
-pipfile_deprecated_finder = ["pipreqs", "requirementslib"]
-requirements_deprecated_finder = ["pipreqs", "pip-api"]
colors = ["colorama (>=0.4.3,<0.5.0)"]
+pipfile_deprecated_finder = ["pipreqs", "requirementslib"]
plugins = ["setuptools"]
+requirements_deprecated_finder = ["pip-api", "pipreqs"]
[[package]]
name = "jinja2"
@@ -564,9 +564,9 @@ numpy = ">=1.9.1"
six = ">=1.9.0"
[package.extras]
-image = ["scipy (>=0.14)", "Pillow (>=5.2.0)"]
+image = ["Pillow (>=5.2.0)", "scipy (>=0.14)"]
pep8 = ["flake8"]
-tests = ["pandas", "pillow", "tensorflow", "keras", "pytest", "pytest-xdist",
"pytest-cov"]
+tests = ["keras", "pandas", "pillow", "pytest", "pytest-cov", "pytest-xdist",
"tensorflow"]
[[package]]
name = "kiwisolver"
@@ -775,7 +775,7 @@ python-versions = ">=3.5"
numpy = ">=1.7"
[package.extras]
-docs = ["sphinx (==1.2.3)", "sphinxcontrib-napoleon", "sphinx-rtd-theme",
"numpydoc"]
+docs = ["numpydoc", "sphinx (==1.2.3)", "sphinx-rtd-theme",
"sphinxcontrib-napoleon"]
tests = ["pytest", "pytest-cov", "pytest-pep8"]
[[package]]
@@ -814,8 +814,8 @@ optional = false
python-versions = ">=3.7"
[package.extras]
-docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)",
"sphinx-autodoc-typehints (>=1.12)", "sphinx (>=4)"]
-test = ["appdirs (==1.4.4)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)",
"pytest (>=6)"]
+docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx (>=4)",
"sphinx-autodoc-typehints (>=1.12)"]
+test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)",
"pytest-mock (>=3.6)"]
[[package]]
name = "pluggy"
@@ -849,7 +849,7 @@ optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[package.extras]
-test = ["ipaddress", "mock", "enum34", "pywin32", "wmi"]
+test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"]
[[package]]
name = "py"
@@ -957,7 +957,7 @@ optional = false
python-versions = ">=3.6.8"
[package.extras]
-diagrams = ["railroad-diagrams", "jinja2"]
+diagrams = ["jinja2", "railroad-diagrams"]
[[package]]
name = "pyserial"
@@ -1041,6 +1041,14 @@ category = "dev"
optional = false
python-versions = "*"
+[[package]]
+name = "pyusb"
+version = "1.2.1"
+description = "Python USB access module"
+category = "main"
+optional = false
+python-versions = ">=3.6.0"
+
[[package]]
name = "pyyaml"
version = "6.0"
@@ -1185,8 +1193,8 @@ sphinxcontrib-serializinghtml = "*"
[package.extras]
docs = ["sphinxcontrib-websupport"]
-lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.800)", "docutils-stubs"]
-test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"]
+lint = ["docutils-stubs", "flake8 (>=3.5.0)", "isort", "mypy (>=0.800)"]
+test = ["cython", "html5lib", "pytest", "pytest-cov", "typed-ast"]
[[package]]
name = "sphinx-gallery"
@@ -1226,7 +1234,7 @@ optional = false
python-versions = ">=3.5"
[package.extras]
-lint = ["flake8", "mypy", "docutils-stubs"]
+lint = ["docutils-stubs", "flake8", "mypy"]
test = ["pytest"]
[[package]]
@@ -1238,7 +1246,7 @@ optional = false
python-versions = ">=3.5"
[package.extras]
-lint = ["flake8", "mypy", "docutils-stubs"]
+lint = ["docutils-stubs", "flake8", "mypy"]
test = ["pytest"]
[[package]]
@@ -1250,8 +1258,8 @@ optional = false
python-versions = ">=3.6"
[package.extras]
-lint = ["flake8", "mypy", "docutils-stubs"]
-test = ["pytest", "html5lib"]
+lint = ["docutils-stubs", "flake8", "mypy"]
+test = ["html5lib", "pytest"]
[[package]]
name = "sphinxcontrib-jsmath"
@@ -1262,7 +1270,7 @@ optional = false
python-versions = ">=3.5"
[package.extras]
-test = ["pytest", "flake8", "mypy"]
+test = ["flake8", "mypy", "pytest"]
[[package]]
name = "sphinxcontrib-qthelp"
@@ -1273,7 +1281,7 @@ optional = false
python-versions = ">=3.5"
[package.extras]
-lint = ["flake8", "mypy", "docutils-stubs"]
+lint = ["docutils-stubs", "flake8", "mypy"]
test = ["pytest"]
[[package]]
@@ -1285,7 +1293,7 @@ optional = false
python-versions = ">=3.5"
[package.extras]
-lint = ["flake8", "mypy", "docutils-stubs"]
+lint = ["docutils-stubs", "flake8", "mypy"]
test = ["pytest"]
[[package]]
@@ -1502,8 +1510,8 @@ optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*,
!=3.5.*, <4"
[package.extras]
-brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"]
-secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)",
"certifi", "ipaddress"]
+brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"]
+secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress",
"pyOpenSSL (>=0.14)"]
socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
[[package]]
@@ -1541,7 +1549,7 @@ numpy = "*"
scipy = "*"
[package.extras]
-dask = ["dask", "pandas", "distributed"]
+dask = ["dask", "distributed", "pandas"]
datatable = ["datatable"]
pandas = ["pandas"]
plotting = ["graphviz", "matplotlib"]
@@ -1556,8 +1564,8 @@ optional = false
python-versions = ">=3.7"
[package.extras]
-docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)",
"jaraco.tidelift (>=1.4)"]
-testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8",
"pytest-cov", "pytest-enabler (>=1.3)", "jaraco.itertools", "func-timeout",
"pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"]
+docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker
(>=1.9)", "sphinx"]
+testing = ["func-timeout", "jaraco.itertools", "pytest (>=6)", "pytest-black
(>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)",
"pytest-flake8", "pytest-mypy (>=0.9.1)"]
[extras]
importer-caffe2 = ["torch"]
@@ -1574,10 +1582,13 @@ xgboost = ["xgboost"]
[metadata]
lock-version = "1.1"
python-versions = ">=3.7, <3.9"
-content-hash =
"ee9733f342ea5000eb05f186db9986ce80eb31bcb6adbd4139b8968003f0e353"
+content-hash =
"ce29099c550654168ca21ab9b5aa3ab1f989da3dfd6e422b9ba2fde30a53cd02"
[metadata.files]
-absl-py = []
+absl-py = [
+ {file = "absl-py-1.2.0.tar.gz", hash =
"sha256:f568809938c49abbda89826223c992b630afd23c638160ad7840cfe347710d97"},
+ {file = "absl_py-1.2.0-py3-none-any.whl", hash =
"sha256:5d15f85b8cc859c6245bc9886ba664460ed96a6fee895416caa37d669ee74a9a"},
+]
alabaster = [
{file = "alabaster-0.7.12-py2.py3-none-any.whl", hash =
"sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"},
{file = "alabaster-0.7.12.tar.gz", hash =
"sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"},
@@ -1590,12 +1601,17 @@ asgiref = [
{file = "asgiref-3.5.2-py3-none-any.whl", hash =
"sha256:1d2880b792ae8757289136f1db2b7b99100ce959b2aa57fd69dab783d05afac4"},
{file = "asgiref-3.5.2.tar.gz", hash =
"sha256:4a29362a6acebe09bf1d6640db38c1dc3d9217c68e6f9f6204d72667fc19a424"},
]
-astroid = []
+astroid = [
+ {file = "astroid-2.11.7-py3-none-any.whl", hash =
"sha256:86b0a340a512c65abf4368b80252754cda17c02cdbbd3f587dddf98112233e7b"},
+ {file = "astroid-2.11.7.tar.gz", hash =
"sha256:bb24615c77f4837c707669d16907331374ae8a964650a66999da3f5ca68dc946"},
+]
astunparse = [
{file = "astunparse-1.6.3-py2.py3-none-any.whl", hash =
"sha256:c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8"},
{file = "astunparse-1.6.3.tar.gz", hash =
"sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872"},
]
-atomicwrites = []
+atomicwrites = [
+ {file = "atomicwrites-1.4.1.tar.gz", hash =
"sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"},
+]
attrs = [
{file = "attrs-19.3.0-py2.py3-none-any.whl", hash =
"sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c"},
{file = "attrs-19.3.0.tar.gz", hash =
"sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72"},
@@ -1606,8 +1622,14 @@ autodocsumm = [
autoflake = [
{file = "autoflake-1.4.tar.gz", hash =
"sha256:61a353012cff6ab94ca062823d1fb2f692c4acda51c76ff83a8d77915fba51ea"},
]
-autopep8 = []
-babel = []
+autopep8 = [
+ {file = "autopep8-1.7.0-py2.py3-none-any.whl", hash =
"sha256:6f09e90a2be784317e84dc1add17ebfc7abe3924239957a37e5040e27d812087"},
+ {file = "autopep8-1.7.0.tar.gz", hash =
"sha256:ca9b1a83e53a7fad65d731dc7a2a2d50aa48f43850407c59f6a1a306c4201142"},
+]
+babel = [
+ {file = "Babel-2.10.3-py3-none-any.whl", hash =
"sha256:ff56f4892c1c4bf0d814575ea23471c230d544203c7748e8c68f0089478d48eb"},
+ {file = "Babel-2.10.3.tar.gz", hash =
"sha256:7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51"},
+]
black = [
{file = "black-19.10b0-py36-none-any.whl", hash =
"sha256:1b30e59be925fafc1ee4565e5e08abef6b03fe455102883820fe5ee2e4734e0b"},
{file = "black-19.10b0.tar.gz", hash =
"sha256:c2edb73a08e9e0e6f65a0e6af18b059b8b1cdd5bef997d7a0b181df93dc81539"},
@@ -1616,9 +1638,80 @@ cachetools = [
{file = "cachetools-5.2.0-py3-none-any.whl", hash =
"sha256:f9f17d2aec496a9aa6b76f53e3b614c965223c061982d434d160f930c698a9db"},
{file = "cachetools-5.2.0.tar.gz", hash =
"sha256:6a94c6402995a99c3970cc7e4884bb60b4a8639938157eeed436098bf9831757"},
]
-certifi = []
-cffi = []
-charset-normalizer = []
+certifi = [
+ {file = "certifi-2022.6.15-py3-none-any.whl", hash =
"sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412"},
+ {file = "certifi-2022.6.15.tar.gz", hash =
"sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d"},
+]
+cffi = [
+ {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash =
"sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"},
+ {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash =
"sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"},
+ {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash =
"sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"},
+ {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash =
"sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"},
+ {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash =
"sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"},
+ {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash =
"sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"},
+ {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash =
"sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"},
+ {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash =
"sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"},
+ {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash =
"sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"},
+ {file =
"cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
hash =
"sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"},
+ {file =
"cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"},
+ {file =
"cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
hash =
"sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"},
+ {file =
"cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash =
"sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"},
+ {file =
"cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash
= "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"},
+ {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash =
"sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"},
+ {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash =
"sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"},
+ {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash =
"sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"},
+ {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash =
"sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"},
+ {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash =
"sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"},
+ {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash =
"sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"},
+ {file =
"cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
hash =
"sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"},
+ {file =
"cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"},
+ {file =
"cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
hash =
"sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"},
+ {file =
"cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash
= "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"},
+ {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash =
"sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"},
+ {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash =
"sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"},
+ {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash =
"sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"},
+ {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash =
"sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"},
+ {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash =
"sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"},
+ {file =
"cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash
= "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"},
+ {file =
"cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash
= "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"},
+ {file =
"cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash =
"sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"},
+ {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl",
hash =
"sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"},
+ {file =
"cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash =
"sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"},
+ {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash =
"sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"},
+ {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash =
"sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"},
+ {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash =
"sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"},
+ {file =
"cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
hash =
"sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"},
+ {file =
"cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash
= "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"},
+ {file =
"cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash
= "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"},
+ {file =
"cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash =
"sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"},
+ {file =
"cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash =
"sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"},
+ {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash =
"sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"},
+ {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash =
"sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"},
+ {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash =
"sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"},
+ {file =
"cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
hash =
"sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"},
+ {file =
"cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash
= "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"},
+ {file =
"cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash
= "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"},
+ {file =
"cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash =
"sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"},
+ {file =
"cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash =
"sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"},
+ {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash =
"sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"},
+ {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash =
"sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"},
+ {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash =
"sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"},
+ {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash =
"sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"},
+ {file =
"cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
hash =
"sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"},
+ {file =
"cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash
= "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"},
+ {file =
"cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash
= "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"},
+ {file =
"cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash =
"sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"},
+ {file =
"cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash =
"sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"},
+ {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash =
"sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"},
+ {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash =
"sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"},
+ {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash =
"sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"},
+ {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash =
"sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"},
+ {file = "cffi-1.15.1.tar.gz", hash =
"sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"},
+]
+charset-normalizer = [
+ {file = "charset-normalizer-2.1.0.tar.gz", hash =
"sha256:575e708016ff3a5e3681541cb9d79312c416835686d054a23accb873b254f413"},
+ {file = "charset_normalizer-2.1.0-py3-none-any.whl", hash =
"sha256:5189b6f22b01957427f35b6a08d9a0bc45b46d3788ef5a92e978433c7a35f8a5"},
+]
click = [
{file = "click-8.1.3-py3-none-any.whl", hash =
"sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"},
{file = "click-8.1.3.tar.gz", hash =
"sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"},
@@ -1669,17 +1762,29 @@ dill = [
{file = "dill-0.3.5.1-py2.py3-none-any.whl", hash =
"sha256:33501d03270bbe410c72639b350e941882a8b0fd55357580fbc873fba0c59302"},
{file = "dill-0.3.5.1.tar.gz", hash =
"sha256:d75e41f3eff1eee599d738e76ba8f4ad98ea229db8b085318aa2b3333a208c86"},
]
-django = []
+django = [
+ {file = "Django-3.2.15-py3-none-any.whl", hash =
"sha256:115baf5049d5cf4163e43492cdc7139c306ed6d451e7d3571fe9612903903713"},
+ {file = "Django-3.2.15.tar.gz", hash =
"sha256:f71934b1a822f14a86c9ac9634053689279cd04ae69cb6ade4a59471b886582b"},
+]
docformatter = [
{file = "docformatter-1.4.tar.gz", hash =
"sha256:064e6d81f04ac96bc0d176cbaae953a0332482b22d3ad70d47c8a7f2732eef6f"},
]
-docutils = []
-execnet = []
+docutils = [
+ {file = "docutils-0.19-py3-none-any.whl", hash =
"sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc"},
+ {file = "docutils-0.19.tar.gz", hash =
"sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6"},
+]
+execnet = [
+ {file = "execnet-1.9.0-py2.py3-none-any.whl", hash =
"sha256:a295f7cc774947aac58dde7fdc85f4aa00c42adf5d8f5468fc630c1acf30a142"},
+ {file = "execnet-1.9.0.tar.gz", hash =
"sha256:8f694f3ba9cc92cab508b152dcfe322153975c29bda272e2fd7f3f00f36e47c5"},
+]
flatbuffers = [
{file = "flatbuffers-2.0-py2.py3-none-any.whl", hash =
"sha256:3751954f0604580d3219ae49a85fafec9d85eec599c0b96226e1bc0b48e57474"},
{file = "flatbuffers-2.0.tar.gz", hash =
"sha256:12158ab0272375eab8db2d663ae97370c33f152b27801fa6024e1d6105fd4dd2"},
]
-fonttools = []
+fonttools = [
+ {file = "fonttools-4.36.0-py3-none-any.whl", hash =
"sha256:cb91ef8d5a435d90aeb3ab814b2548c6b515df5bc13b4c5adaa23778f2f79823"},
+ {file = "fonttools-4.36.0.zip", hash =
"sha256:e637d2fe06bddabbfc488e02ef32d04d561e3c71e9ba11abc7782ea753ceb218"},
+]
future = [
{file = "future-0.18.2.tar.gz", hash =
"sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"},
]
@@ -1687,7 +1792,10 @@ gast = [
{file = "gast-0.4.0-py3-none-any.whl", hash =
"sha256:b7adcdd5adbebf1adf17378da5ba3f543684dbec47b1cda1f3997e573cd542c4"},
{file = "gast-0.4.0.tar.gz", hash =
"sha256:40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1"},
]
-google-auth = []
+google-auth = [
+ {file = "google-auth-2.10.0.tar.gz", hash =
"sha256:7904dbd44b745c7323fef29565adee2fe7ff48473e2d94443aced40b0404a395"},
+ {file = "google_auth-2.10.0-py2.py3-none-any.whl", hash =
"sha256:1deba4a54f95ef67b4139eaf5c20eaa7047215eec9f6a2344599b8596db8863b"},
+]
google-auth-oauthlib = [
{file = "google-auth-oauthlib-0.4.6.tar.gz", hash =
"sha256:a90a072f6993f2c327067bf65270046384cda5a8ecb20b94ea9a687f1f233a7a"},
{file = "google_auth_oauthlib-0.4.6-py2.py3-none-any.whl", hash =
"sha256:3f2a6e802eebbb6fb736a370fbf3b055edcb6b52878bf2f26330b5e041316c73"},
@@ -1701,7 +1809,54 @@ graphviz = [
{file = "graphviz-0.8.4-py2.py3-none-any.whl", hash =
"sha256:7caa53f0b0be42c5f2eaa3f3d71dcc863b15bacceb5d531c2ad7519e1980ff82"},
{file = "graphviz-0.8.4.zip", hash =
"sha256:4958a19cbd8461757a08db308a4a15c3d586660417e1e364f0107d2fe481689f"},
]
-grpcio = []
+grpcio = [
+ {file = "grpcio-1.48.0-cp310-cp310-linux_armv7l.whl", hash =
"sha256:4a049a032144641ed5d073535c0dc69eb6029187cc729a66946c86dcc8eec3a1"},
+ {file = "grpcio-1.48.0-cp310-cp310-macosx_10_10_x86_64.whl", hash =
"sha256:f8bc76f5cd95f5476e5285fe5d3704a9332586a569fbbccef551b0b6f7a270f9"},
+ {file = "grpcio-1.48.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash =
"sha256:448d397fe88e9fef8170f019b86abdc4d554ae311aaf4dbff1532fde227d3308"},
+ {file =
"grpcio-1.48.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash =
"sha256:8f9b6b6f7c83869d2316c5d13f953381881a16741275a34ec5ed5762f11b206e"},
+ {file =
"grpcio-1.48.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
hash =
"sha256:5bd8541c4b6b43c9024496d30b4a12346325d3a17a1f3c80ad8924caed1e35c3"},
+ {file = "grpcio-1.48.0-cp310-cp310-musllinux_1_1_i686.whl", hash =
"sha256:877d33aeba05ae0b9e81761a694914ed33613f655c35f6bbcf4ebbcb984e0167"},
+ {file = "grpcio-1.48.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash =
"sha256:cd01a8201fd8ab2ce496f7e65975da1f1e629eac8eea84ead0fd77e32e4350cd"},
+ {file = "grpcio-1.48.0-cp310-cp310-win32.whl", hash =
"sha256:0388da923dff58ba7f711233e41c2b749b5817b8e0f137a107672d9c15a1009c"},
+ {file = "grpcio-1.48.0-cp310-cp310-win_amd64.whl", hash =
"sha256:8dcffdb8921fd88857ae350fd579277a5f9315351e89ed9094ef28927a46d40d"},
+ {file = "grpcio-1.48.0-cp36-cp36m-linux_armv7l.whl", hash =
"sha256:2138c50331232f56178c2b36dcfa6ad67aad705fe410955f3b2a53d722191b89"},
+ {file = "grpcio-1.48.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash =
"sha256:af2d80f142da2a6af45204a5ca2374e2747af07a99de54a1164111e169a761ff"},
+ {file = "grpcio-1.48.0-cp36-cp36m-manylinux_2_17_aarch64.whl", hash =
"sha256:59284bd4cdf47c147c26d91aca693765318d524328f6ece2a1a0b85a12a362af"},
+ {file =
"grpcio-1.48.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash =
"sha256:cc3ebfe356c0c6750379cd194bf2b7e5d1d2f29db1832358f05a73e9290db98c"},
+ {file =
"grpcio-1.48.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash
= "sha256:dc2619a31339e1c53731f54761f1a2cb865d3421f690e00ef3e92f90d2a0c5ae"},
+ {file = "grpcio-1.48.0-cp36-cp36m-musllinux_1_1_i686.whl", hash =
"sha256:7df637405de328a54c1c8c08a3206f974c7a577730f90644af4c3400b7bfde2d"},
+ {file = "grpcio-1.48.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash =
"sha256:9e73b95969a579798bfbeb85d376695cce5172357fb52e450467ceb8e7365152"},
+ {file = "grpcio-1.48.0-cp36-cp36m-win32.whl", hash =
"sha256:059e9d58b5aba7fb9eabe3a4d2ac49e1dcbc2b54b0f166f6475e40b7f4435343"},
+ {file = "grpcio-1.48.0-cp36-cp36m-win_amd64.whl", hash =
"sha256:7cebcf645170f0c82ef71769544f9ac4515993a4d367f5900aba2eb4ecd2a32f"},
+ {file = "grpcio-1.48.0-cp37-cp37m-linux_armv7l.whl", hash =
"sha256:8af3a8845df35b838104d6fb1ae7f4969d248cf037fa2794916d31e917346f72"},
+ {file = "grpcio-1.48.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash =
"sha256:a1ef40975ec9ced6c17ce7fbec9825823da782fa606f0b92392646ff3886f198"},
+ {file = "grpcio-1.48.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash =
"sha256:7cccbf6db31f2a78e1909047ff69620f94a4e6e53251858e9502fbbff5714b48"},
+ {file =
"grpcio-1.48.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash =
"sha256:1f3f142579f58def64c0850f0bb0eb1b425ae885f5669dda5b73ade64ad2b753"},
+ {file =
"grpcio-1.48.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash
= "sha256:656c6f6f7b815bca3054780b8cdfa1e4e37cd36c887a48558d00c2cf85f31697"},
+ {file = "grpcio-1.48.0-cp37-cp37m-musllinux_1_1_i686.whl", hash =
"sha256:cba4538e8a2ef123ea570e7b1d62162e158963c2471e35d79eb9690c971a10c0"},
+ {file = "grpcio-1.48.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash =
"sha256:9daa67820fafceec6194ed1686c1783816e62d6756ff301ba93e682948836846"},
+ {file = "grpcio-1.48.0-cp37-cp37m-win32.whl", hash =
"sha256:7ec264a7fb413e0c804a7a48a6f7d7212742955a60724c44d793da35a8f30873"},
+ {file = "grpcio-1.48.0-cp37-cp37m-win_amd64.whl", hash =
"sha256:a2b1b33b92359388b8164807313dcbb3317101b038a5d54342982560329d958f"},
+ {file = "grpcio-1.48.0-cp38-cp38-linux_armv7l.whl", hash =
"sha256:7b820696a5ce7b98f459f234698cb323f89b355373789188efa126d7f47a2a92"},
+ {file = "grpcio-1.48.0-cp38-cp38-macosx_10_10_x86_64.whl", hash =
"sha256:e4dfae66ebc165c46c5b7048eb554472ee72fbaab2c2c2da7f9b1621c81e077c"},
+ {file = "grpcio-1.48.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash =
"sha256:f7115038edce33b494e0138b0bd31a2eb6595d45e2eed23be46bc32886feb741"},
+ {file =
"grpcio-1.48.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash =
"sha256:b4e996282238943ca114628255be61980e38b25f73a08ae2ffd02b63eaf70d3a"},
+ {file =
"grpcio-1.48.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash
= "sha256:13dad31f5155fa555d393511cc8108c41b1b5b54dc4c24c27d4694ddd7a78fad"},
+ {file = "grpcio-1.48.0-cp38-cp38-musllinux_1_1_i686.whl", hash =
"sha256:c84b9d90b2641963de98b35bb7a2a51f78119fe5bd00ef27246ba9f4f0835e36"},
+ {file = "grpcio-1.48.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash =
"sha256:41b65166779d7dafac4c98380ac19f690f1c5fe18083a71d370df87b24dd30ff"},
+ {file = "grpcio-1.48.0-cp38-cp38-win32.whl", hash =
"sha256:b890e5f5fbc21cb994894f73ecb2faaa66697d8debcb228a5adb0622b9bec3b2"},
+ {file = "grpcio-1.48.0-cp38-cp38-win_amd64.whl", hash =
"sha256:5fe3af539d2f50891ed93aed3064ffbcc38bf848aa3f7ed1fbedcce139c57302"},
+ {file = "grpcio-1.48.0-cp39-cp39-linux_armv7l.whl", hash =
"sha256:a4ed57f4e3d91259551e6765782b22d9e8b8178fec43ebf8e1b2c392c4ced37b"},
+ {file = "grpcio-1.48.0-cp39-cp39-macosx_10_10_x86_64.whl", hash =
"sha256:60843d8184e171886dd7a93d6672e2ef0b08dfd4f88da7421c10b46b6e031ac4"},
+ {file = "grpcio-1.48.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash =
"sha256:0ecba22f25ccde2442be7e7dd7fa746905d628f03312b4a0c9961f0d99771f53"},
+ {file =
"grpcio-1.48.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash =
"sha256:34f5917f0c49a04633dc12d483c8aee6f6d9f69133b700214d3703f72a72f501"},
+ {file =
"grpcio-1.48.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash
= "sha256:f4c4ad8ad7e2cf3a272cbc96734d56635e6543939022f17e0c4487f7d2a45bf9"},
+ {file = "grpcio-1.48.0-cp39-cp39-musllinux_1_1_i686.whl", hash =
"sha256:111fb2f5f4a069f331ae23106145fd16dd4e1112ca223858a922068614dac6d2"},
+ {file = "grpcio-1.48.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash =
"sha256:beb0573daa49889efcfea0a6e995b4f39d481aa1b94e1257617406ef417b56a6"},
+ {file = "grpcio-1.48.0-cp39-cp39-win32.whl", hash =
"sha256:ce70254a082cb767217b2fdee374cc79199d338d46140753438cd6d67c609b2f"},
+ {file = "grpcio-1.48.0-cp39-cp39-win_amd64.whl", hash =
"sha256:ae3fd135666448058fe277d93c10e0f18345fbcbb015c4642de2fa3db6f0c205"},
+ {file = "grpcio-1.48.0.tar.gz", hash =
"sha256:eaf4bb73819863440727195411ab3b5c304f6663625e66f348e91ebe0a039306"},
+]
h5py = [
{file = "h5py-3.7.0-cp310-cp310-macosx_10_9_x86_64.whl", hash =
"sha256:d77af42cb751ad6cc44f11bae73075a07429a5cf2094dfde2b1e716e059b3911"},
{file = "h5py-3.7.0-cp310-cp310-macosx_11_0_arm64.whl", hash =
"sha256:63beb8b7b47d0896c50de6efb9a1eaa81dbe211f3767e7dd7db159cea51ba37a"},
@@ -1731,7 +1886,10 @@ idna = [
image = [
{file = "image-1.5.33.tar.gz", hash =
"sha256:baa2e09178277daa50f22fd6d1d51ec78f19c12688921cb9ab5808743f097126"},
]
-imagesize = []
+imagesize = [
+ {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash =
"sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"},
+ {file = "imagesize-1.4.1.tar.gz", hash =
"sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"},
+]
importlib-metadata = [
{file = "importlib_metadata-4.12.0-py3-none-any.whl", hash =
"sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23"},
{file = "importlib_metadata-4.12.0.tar.gz", hash =
"sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670"},
@@ -1755,7 +1913,76 @@ keras-preprocessing = [
{file = "Keras_Preprocessing-1.1.2-py2.py3-none-any.whl", hash =
"sha256:7b82029b130ff61cc99b55f3bd27427df4838576838c5b2f65940e4fcec99a7b"},
{file = "Keras_Preprocessing-1.1.2.tar.gz", hash =
"sha256:add82567c50c8bc648c14195bf544a5ce7c1f76761536956c3d2978970179ef3"},
]
-kiwisolver = []
+kiwisolver = [
+ {file = "kiwisolver-1.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash =
"sha256:2f5e60fabb7343a836360c4f0919b8cd0d6dbf08ad2ca6b9cf90bf0c76a3c4f6"},
+ {file = "kiwisolver-1.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash =
"sha256:10ee06759482c78bdb864f4109886dff7b8a56529bc1609d4f1112b93fe6423c"},
+ {file = "kiwisolver-1.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash =
"sha256:c79ebe8f3676a4c6630fd3f777f3cfecf9289666c84e775a67d1d358578dc2e3"},
+ {file =
"kiwisolver-1.4.4-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash
= "sha256:abbe9fa13da955feb8202e215c4018f4bb57469b1b78c7a4c5c7b93001699938"},
+ {file =
"kiwisolver-1.4.4-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
hash =
"sha256:7577c1987baa3adc4b3c62c33bd1118c3ef5c8ddef36f0f2c950ae0b199e100d"},
+ {file =
"kiwisolver-1.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:f8ad8285b01b0d4695102546b342b493b3ccc6781fc28c8c6a1bb63e95d22f09"},
+ {file =
"kiwisolver-1.4.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
hash =
"sha256:8ed58b8acf29798b036d347791141767ccf65eee7f26bde03a71c944449e53de"},
+ {file =
"kiwisolver-1.4.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl",
hash =
"sha256:a68b62a02953b9841730db7797422f983935aeefceb1679f0fc85cbfbd311c32"},
+ {file = "kiwisolver-1.4.4-cp310-cp310-win32.whl", hash =
"sha256:e92a513161077b53447160b9bd8f522edfbed4bd9759e4c18ab05d7ef7e49408"},
+ {file = "kiwisolver-1.4.4-cp310-cp310-win_amd64.whl", hash =
"sha256:3fe20f63c9ecee44560d0e7f116b3a747a5d7203376abeea292ab3152334d004"},
+ {file = "kiwisolver-1.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash =
"sha256:e0ea21f66820452a3f5d1655f8704a60d66ba1191359b96541eaf457710a5fc6"},
+ {file = "kiwisolver-1.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash =
"sha256:bc9db8a3efb3e403e4ecc6cd9489ea2bac94244f80c78e27c31dcc00d2790ac2"},
+ {file = "kiwisolver-1.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash =
"sha256:d5b61785a9ce44e5a4b880272baa7cf6c8f48a5180c3e81c59553ba0cb0821ca"},
+ {file =
"kiwisolver-1.4.4-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
hash =
"sha256:c2dbb44c3f7e6c4d3487b31037b1bdbf424d97687c1747ce4ff2895795c9bf69"},
+ {file =
"kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:6295ecd49304dcf3bfbfa45d9a081c96509e95f4b9d0eb7ee4ec0530c4a96514"},
+ {file =
"kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
hash =
"sha256:4bd472dbe5e136f96a4b18f295d159d7f26fd399136f5b17b08c4e5f498cd494"},
+ {file =
"kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl",
hash =
"sha256:bf7d9fce9bcc4752ca4a1b80aabd38f6d19009ea5cbda0e0856983cf6d0023f5"},
+ {file =
"kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
hash =
"sha256:78d6601aed50c74e0ef02f4204da1816147a6d3fbdc8b3872d263338a9052c51"},
+ {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash =
"sha256:877272cf6b4b7e94c9614f9b10140e198d2186363728ed0f701c6eee1baec1da"},
+ {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_i686.whl", hash =
"sha256:db608a6757adabb32f1cfe6066e39b3706d8c3aa69bbc353a5b61edad36a5cb4"},
+ {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash =
"sha256:5853eb494c71e267912275e5586fe281444eb5e722de4e131cddf9d442615626"},
+ {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_s390x.whl", hash =
"sha256:f0a1dbdb5ecbef0d34eb77e56fcb3e95bbd7e50835d9782a45df81cc46949750"},
+ {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash =
"sha256:283dffbf061a4ec60391d51e6155e372a1f7a4f5b15d59c8505339454f8989e4"},
+ {file = "kiwisolver-1.4.4-cp311-cp311-win32.whl", hash =
"sha256:d06adcfa62a4431d404c31216f0f8ac97397d799cd53800e9d3efc2fbb3cf14e"},
+ {file = "kiwisolver-1.4.4-cp311-cp311-win_amd64.whl", hash =
"sha256:e7da3fec7408813a7cebc9e4ec55afed2d0fd65c4754bc376bf03498d4e92686"},
+ {file = "kiwisolver-1.4.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash =
"sha256:62ac9cc684da4cf1778d07a89bf5f81b35834cb96ca523d3a7fb32509380cbf6"},
+ {file =
"kiwisolver-1.4.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:41dae968a94b1ef1897cb322b39360a0812661dba7c682aa45098eb8e193dbdf"},
+ {file =
"kiwisolver-1.4.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
hash =
"sha256:02f79693ec433cb4b5f51694e8477ae83b3205768a6fb48ffba60549080e295b"},
+ {file =
"kiwisolver-1.4.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl",
hash =
"sha256:d0611a0a2a518464c05ddd5a3a1a0e856ccc10e67079bb17f265ad19ab3c7597"},
+ {file =
"kiwisolver-1.4.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash =
"sha256:db5283d90da4174865d520e7366801a93777201e91e79bacbac6e6927cbceede"},
+ {file =
"kiwisolver-1.4.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash
= "sha256:1041feb4cda8708ce73bb4dcb9ce1ccf49d553bf87c3954bdfa46f0c3f77252c"},
+ {file = "kiwisolver-1.4.4-cp37-cp37m-win32.whl", hash =
"sha256:a553dadda40fef6bfa1456dc4be49b113aa92c2a9a9e8711e955618cd69622e3"},
+ {file = "kiwisolver-1.4.4-cp37-cp37m-win_amd64.whl", hash =
"sha256:03baab2d6b4a54ddbb43bba1a3a2d1627e82d205c5cf8f4c924dc49284b87166"},
+ {file = "kiwisolver-1.4.4-cp38-cp38-macosx_10_9_universal2.whl", hash =
"sha256:841293b17ad704d70c578f1f0013c890e219952169ce8a24ebc063eecf775454"},
+ {file = "kiwisolver-1.4.4-cp38-cp38-macosx_10_9_x86_64.whl", hash =
"sha256:f4f270de01dd3e129a72efad823da90cc4d6aafb64c410c9033aba70db9f1ff0"},
+ {file = "kiwisolver-1.4.4-cp38-cp38-macosx_11_0_arm64.whl", hash =
"sha256:f9f39e2f049db33a908319cf46624a569b36983c7c78318e9726a4cb8923b26c"},
+ {file =
"kiwisolver-1.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:c97528e64cb9ebeff9701e7938653a9951922f2a38bd847787d4a8e498cc83ae"},
+ {file =
"kiwisolver-1.4.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
hash =
"sha256:1d1573129aa0fd901076e2bfb4275a35f5b7aa60fbfb984499d661ec950320b0"},
+ {file =
"kiwisolver-1.4.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash
= "sha256:ad881edc7ccb9d65b0224f4e4d05a1e85cf62d73aab798943df6d48ab0cd79a1"},
+ {file =
"kiwisolver-1.4.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash =
"sha256:b428ef021242344340460fa4c9185d0b1f66fbdbfecc6c63eff4b7c29fad429d"},
+ {file =
"kiwisolver-1.4.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash =
"sha256:2e407cb4bd5a13984a6c2c0fe1845e4e41e96f183e5e5cd4d77a857d9693494c"},
+ {file = "kiwisolver-1.4.4-cp38-cp38-win32.whl", hash =
"sha256:75facbe9606748f43428fc91a43edb46c7ff68889b91fa31f53b58894503a191"},
+ {file = "kiwisolver-1.4.4-cp38-cp38-win_amd64.whl", hash =
"sha256:5bce61af018b0cb2055e0e72e7d65290d822d3feee430b7b8203d8a855e78766"},
+ {file = "kiwisolver-1.4.4-cp39-cp39-macosx_10_9_universal2.whl", hash =
"sha256:8c808594c88a025d4e322d5bb549282c93c8e1ba71b790f539567932722d7bd8"},
+ {file = "kiwisolver-1.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash =
"sha256:f0a71d85ecdd570ded8ac3d1c0f480842f49a40beb423bb8014539a9f32a5897"},
+ {file = "kiwisolver-1.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash =
"sha256:b533558eae785e33e8c148a8d9921692a9fe5aa516efbdff8606e7d87b9d5824"},
+ {file =
"kiwisolver-1.4.4-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash =
"sha256:efda5fc8cc1c61e4f639b8067d118e742b812c930f708e6667a5ce0d13499e29"},
+ {file =
"kiwisolver-1.4.4-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
hash =
"sha256:7c43e1e1206cd421cd92e6b3280d4385d41d7166b3ed577ac20444b6995a445f"},
+ {file =
"kiwisolver-1.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:bc8d3bd6c72b2dd9decf16ce70e20abcb3274ba01b4e1c96031e0c4067d1e7cd"},
+ {file =
"kiwisolver-1.4.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
hash =
"sha256:4ea39b0ccc4f5d803e3337dd46bcce60b702be4d86fd0b3d7531ef10fd99a1ac"},
+ {file =
"kiwisolver-1.4.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash
= "sha256:968f44fdbf6dd757d12920d63b566eeb4d5b395fd2d00d29d7ef00a00582aac9"},
+ {file = "kiwisolver-1.4.4-cp39-cp39-win32.whl", hash =
"sha256:da7e547706e69e45d95e116e6939488d62174e033b763ab1496b4c29b76fabea"},
+ {file = "kiwisolver-1.4.4-cp39-cp39-win_amd64.whl", hash =
"sha256:ba59c92039ec0a66103b1d5fe588fa546373587a7d68f5c96f743c3396afc04b"},
+ {file =
"kiwisolver-1.4.4-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl",
hash =
"sha256:91672bacaa030f92fc2f43b620d7b337fd9a5af28b0d6ed3f77afc43c4a64b5a"},
+ {file =
"kiwisolver-1.4.4-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
hash =
"sha256:787518a6789009c159453da4d6b683f468ef7a65bbde796bcea803ccf191058d"},
+ {file =
"kiwisolver-1.4.4-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:da152d8cdcab0e56e4f45eb08b9aea6455845ec83172092f09b0e077ece2cf7a"},
+ {file = "kiwisolver-1.4.4-pp37-pypy37_pp73-win_amd64.whl", hash =
"sha256:ecb1fa0db7bf4cff9dac752abb19505a233c7f16684c5826d1f11ebd9472b871"},
+ {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash =
"sha256:28bc5b299f48150b5f822ce68624e445040595a4ac3d59251703779836eceff9"},
+ {file =
"kiwisolver-1.4.4-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl",
hash =
"sha256:81e38381b782cc7e1e46c4e14cd997ee6040768101aefc8fa3c24a4cc58e98f8"},
+ {file =
"kiwisolver-1.4.4-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
hash =
"sha256:2a66fdfb34e05b705620dd567f5a03f239a088d5a3f321e7b6ac3239d22aa286"},
+ {file =
"kiwisolver-1.4.4-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:872b8ca05c40d309ed13eb2e582cab0c5a05e81e987ab9c521bf05ad1d5cf5cb"},
+ {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-win_amd64.whl", hash =
"sha256:70e7c2e7b750585569564e2e5ca9845acfaa5da56ac46df68414f29fea97be9f"},
+ {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash =
"sha256:9f85003f5dfa867e86d53fac6f7e6f30c045673fa27b603c397753bebadc3008"},
+ {file =
"kiwisolver-1.4.4-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
hash =
"sha256:2e307eb9bd99801f82789b44bb45e9f541961831c7311521b13a6c85afc09767"},
+ {file =
"kiwisolver-1.4.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:b1792d939ec70abe76f5054d3f36ed5656021dcad1322d1cc996d4e54165cef9"},
+ {file =
"kiwisolver-1.4.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
hash =
"sha256:f6cb459eea32a4e2cf18ba5fcece2dbdf496384413bc1bae15583f19e567f3b2"},
+ {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-win_amd64.whl", hash =
"sha256:36dafec3d6d6088d34e2de6b85f9d8e2324eb734162fba59d2ba9ed7a2043d5b"},
+ {file = "kiwisolver-1.4.4.tar.gz", hash =
"sha256:d41997519fcba4a1e46eb4a2fe31bc12f0ff957b2b81bac28db24744f333e955"},
+]
lazy-object-proxy = [
{file = "lazy-object-proxy-1.7.1.tar.gz", hash =
"sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"},
{file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash
= "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"},
@@ -1795,8 +2022,22 @@ lazy-object-proxy = [
{file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash =
"sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"},
{file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash =
"sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"},
]
-libclang = []
-markdown = []
+libclang = [
+ {file = "libclang-14.0.6-py2.py3-none-macosx_10_9_x86_64.whl", hash =
"sha256:8791cf3c3b087c373a6d61e9199da7a541da922c9ddcfed1122090586b996d6e"},
+ {file = "libclang-14.0.6-py2.py3-none-macosx_11_0_arm64.whl", hash =
"sha256:7b06fc76bd1e67c8b04b5719bf2ac5d6a323b289b245dfa9e468561d99538188"},
+ {file = "libclang-14.0.6-py2.py3-none-manylinux1_x86_64.whl", hash =
"sha256:e429853939423f276a25140b0b702442d7da9a09e001c05e48df888336947614"},
+ {file = "libclang-14.0.6-py2.py3-none-manylinux2010_x86_64.whl", hash =
"sha256:206d2789e4450a37d054e63b70451a6fc1873466397443fa13de2b3d4adb2796"},
+ {file = "libclang-14.0.6-py2.py3-none-manylinux2014_aarch64.whl", hash =
"sha256:e2add1703129b2abe066fb1890afa880870a89fd6ab4ec5d2a7a8dc8d271677e"},
+ {file = "libclang-14.0.6-py2.py3-none-manylinux2014_armv7l.whl", hash =
"sha256:5dd3c6fca1b007d308a4114afa8e4e9d32f32b2572520701d45fcc626ac5cd6c"},
+ {file = "libclang-14.0.6-py2.py3-none-musllinux_1_2_x86_64.whl", hash =
"sha256:cfb0e892ebb5dff6bd498ab5778adb8581f26a00fd8347b3c76c989fe2fd04f7"},
+ {file = "libclang-14.0.6-py2.py3-none-win_amd64.whl", hash =
"sha256:ea03c12675151837660cdd5dce65bd89320896ac3421efef43a36678f113ce95"},
+ {file = "libclang-14.0.6-py2.py3-none-win_arm64.whl", hash =
"sha256:2e4303e04517fcd11173cb2e51a7070eed71e16ef45d4e26a82c5e881cac3d27"},
+ {file = "libclang-14.0.6.tar.gz", hash =
"sha256:9052a8284d8846984f6fa826b1d7460a66d3b23a486d782633b42b6e3b418789"},
+]
+markdown = [
+ {file = "Markdown-3.4.1-py3-none-any.whl", hash =
"sha256:08fb8465cffd03d10b9dd34a5c3fea908e20391a2a90b88d66362cb05beed186"},
+ {file = "Markdown-3.4.1.tar.gz", hash =
"sha256:3b809086bb6efad416156e00a0da66fe47618a5d6918dd688f53f40c8e4cfeff"},
+]
markupsafe = [
{file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash =
"sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"},
{file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash =
"sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"},
@@ -1839,7 +2080,43 @@ markupsafe = [
{file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash =
"sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"},
{file = "MarkupSafe-2.1.1.tar.gz", hash =
"sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"},
]
-matplotlib = []
+matplotlib = [
+ {file = "matplotlib-3.5.3-cp310-cp310-macosx_10_9_universal2.whl", hash =
"sha256:a206a1b762b39398efea838f528b3a6d60cdb26fe9d58b48265787e29cd1d693"},
+ {file = "matplotlib-3.5.3-cp310-cp310-macosx_10_9_x86_64.whl", hash =
"sha256:cd45a6f3e93a780185f70f05cf2a383daed13c3489233faad83e81720f7ede24"},
+ {file = "matplotlib-3.5.3-cp310-cp310-macosx_11_0_arm64.whl", hash =
"sha256:d62880e1f60e5a30a2a8484432bcb3a5056969dc97258d7326ad465feb7ae069"},
+ {file =
"matplotlib-3.5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:9ab29589cef03bc88acfa3a1490359000c18186fc30374d8aa77d33cc4a51a4a"},
+ {file =
"matplotlib-3.5.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash
= "sha256:2886cc009f40e2984c083687251821f305d811d38e3df8ded414265e4583f0c5"},
+ {file =
"matplotlib-3.5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
hash =
"sha256:c995f7d9568f18b5db131ab124c64e51b6820a92d10246d4f2b3f3a66698a15b"},
+ {file = "matplotlib-3.5.3-cp310-cp310-win32.whl", hash =
"sha256:6bb93a0492d68461bd458eba878f52fdc8ac7bdb6c4acdfe43dba684787838c2"},
+ {file = "matplotlib-3.5.3-cp310-cp310-win_amd64.whl", hash =
"sha256:2e6d184ebe291b9e8f7e78bbab7987d269c38ea3e062eace1fe7d898042ef804"},
+ {file = "matplotlib-3.5.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash =
"sha256:6ea6aef5c4338e58d8d376068e28f80a24f54e69f09479d1c90b7172bad9f25b"},
+ {file =
"matplotlib-3.5.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:839d47b8ead7ad9669aaacdbc03f29656dc21f0d41a6fea2d473d856c39c8b1c"},
+ {file =
"matplotlib-3.5.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash =
"sha256:3b4fa56159dc3c7f9250df88f653f085068bcd32dcd38e479bba58909254af7f"},
+ {file =
"matplotlib-3.5.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash
= "sha256:94ff86af56a3869a4ae26a9637a849effd7643858a1a04dd5ee50e9ab75069a7"},
+ {file = "matplotlib-3.5.3-cp37-cp37m-win32.whl", hash =
"sha256:35a8ad4dddebd51f94c5d24bec689ec0ec66173bf614374a1244c6241c1595e0"},
+ {file = "matplotlib-3.5.3-cp37-cp37m-win_amd64.whl", hash =
"sha256:43e9d3fa077bf0cc95ded13d331d2156f9973dce17c6f0c8b49ccd57af94dbd9"},
+ {file = "matplotlib-3.5.3-cp38-cp38-macosx_10_9_universal2.whl", hash =
"sha256:22227c976ad4dc8c5a5057540421f0d8708c6560744ad2ad638d48e2984e1dbc"},
+ {file = "matplotlib-3.5.3-cp38-cp38-macosx_10_9_x86_64.whl", hash =
"sha256:bf618a825deb6205f015df6dfe6167a5d9b351203b03fab82043ae1d30f16511"},
+ {file = "matplotlib-3.5.3-cp38-cp38-macosx_11_0_arm64.whl", hash =
"sha256:9befa5954cdbc085e37d974ff6053da269474177921dd61facdad8023c4aeb51"},
+ {file =
"matplotlib-3.5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:f3840c280ebc87a48488a46f760ea1c0c0c83fcf7abbe2e6baf99d033fd35fd8"},
+ {file =
"matplotlib-3.5.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash =
"sha256:dacddf5bfcec60e3f26ec5c0ae3d0274853a258b6c3fc5ef2f06a8eb23e042be"},
+ {file =
"matplotlib-3.5.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash =
"sha256:b428076a55fb1c084c76cb93e68006f27d247169f056412607c5c88828d08f88"},
+ {file = "matplotlib-3.5.3-cp38-cp38-win32.whl", hash =
"sha256:874df7505ba820e0400e7091199decf3ff1fde0583652120c50cd60d5820ca9a"},
+ {file = "matplotlib-3.5.3-cp38-cp38-win_amd64.whl", hash =
"sha256:b28de401d928890187c589036857a270a032961411934bdac4cf12dde3d43094"},
+ {file = "matplotlib-3.5.3-cp39-cp39-macosx_10_9_universal2.whl", hash =
"sha256:3211ba82b9f1518d346f6309df137b50c3dc4421b4ed4815d1d7eadc617f45a1"},
+ {file = "matplotlib-3.5.3-cp39-cp39-macosx_10_9_x86_64.whl", hash =
"sha256:6fe807e8a22620b4cd95cfbc795ba310dc80151d43b037257250faf0bfcd82bc"},
+ {file = "matplotlib-3.5.3-cp39-cp39-macosx_11_0_arm64.whl", hash =
"sha256:5c096363b206a3caf43773abebdbb5a23ea13faef71d701b21a9c27fdcef72f4"},
+ {file =
"matplotlib-3.5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:0bcdfcb0f976e1bac6721d7d457c17be23cf7501f977b6a38f9d38a3762841f7"},
+ {file =
"matplotlib-3.5.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash =
"sha256:1e64ac9be9da6bfff0a732e62116484b93b02a0b4d4b19934fb4f8e7ad26ad6a"},
+ {file =
"matplotlib-3.5.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash =
"sha256:73dd93dc35c85dece610cca8358003bf0760d7986f70b223e2306b4ea6d1406b"},
+ {file = "matplotlib-3.5.3-cp39-cp39-win32.whl", hash =
"sha256:879c7e5fce4939c6aa04581dfe08d57eb6102a71f2e202e3314d5fbc072fd5a0"},
+ {file = "matplotlib-3.5.3-cp39-cp39-win_amd64.whl", hash =
"sha256:ab8d26f07fe64f6f6736d635cce7bfd7f625320490ed5bfc347f2cdb4fae0e56"},
+ {file = "matplotlib-3.5.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash =
"sha256:99482b83ebf4eb6d5fc6813d7aacdefdd480f0d9c0b52dcf9f1cc3b2c4b3361a"},
+ {file =
"matplotlib-3.5.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl",
hash =
"sha256:f814504e459c68118bf2246a530ed953ebd18213dc20e3da524174d84ed010b2"},
+ {file =
"matplotlib-3.5.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
hash =
"sha256:57f1b4e69f438a99bb64d7f2c340db1b096b41ebaa515cf61ea72624279220ce"},
+ {file = "matplotlib-3.5.3-pp37-pypy37_pp73-win_amd64.whl", hash =
"sha256:d2484b350bf3d32cae43f85dcfc89b3ed7bd2bcd781ef351f93eb6fb2cc483f9"},
+ {file = "matplotlib-3.5.3.tar.gz", hash =
"sha256:339cac48b80ddbc8bfd05daae0a3a73414651a8596904c2a881cfd1edb65f26c"},
+]
mccabe = [
{file = "mccabe-0.7.0-py2.py3-none-any.whl", hash =
"sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"},
{file = "mccabe-0.7.0.tar.gz", hash =
"sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"},
@@ -2139,16 +2416,25 @@ pyasn1-modules = [
{file = "pyasn1_modules-0.2.8-py3.6.egg", hash =
"sha256:cbac4bc38d117f2a49aeedec4407d23e8866ea4ac27ff2cf7fb3e5b570df19e0"},
{file = "pyasn1_modules-0.2.8-py3.7.egg", hash =
"sha256:c29a5e5cc7a3f05926aff34e097e84f8589cd790ce0ed41b67aed6857b26aafd"},
]
-pycodestyle = []
+pycodestyle = [
+ {file = "pycodestyle-2.9.1-py2.py3-none-any.whl", hash =
"sha256:d1735fc58b418fd7c5f658d28d943854f8a849b01a5d0a1e6f3f3fdd0166804b"},
+ {file = "pycodestyle-2.9.1.tar.gz", hash =
"sha256:2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785"},
+]
pycparser = [
{file = "pycparser-2.21-py2.py3-none-any.whl", hash =
"sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"},
{file = "pycparser-2.21.tar.gz", hash =
"sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
]
-pyflakes = []
+pyflakes = [
+ {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash =
"sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"},
+ {file = "pyflakes-2.5.0.tar.gz", hash =
"sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"},
+]
pyformat = [
{file = "pyformat-0.7.tar.gz", hash =
"sha256:eb7b0e93f768c6f92e2cb06307deaa3a5141c7c61cd472b1a7918e30d09df20f"},
]
-pygments = []
+pygments = [
+ {file = "Pygments-2.13.0-py3-none-any.whl", hash =
"sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42"},
+ {file = "Pygments-2.13.0.tar.gz", hash =
"sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1"},
+]
pylint = [
{file = "pylint-2.13.9-py3-none-any.whl", hash =
"sha256:705c620d388035bdd9ff8b44c5bcdd235bfb49d276d488dd2c8ff1736aa42526"},
{file = "pylint-2.13.9.tar.gz", hash =
"sha256:095567c96e19e6f57b5b907e67d265ff535e588fe26b12b5ebe1fc5645b2c731"},
@@ -2161,14 +2447,30 @@ pyserial = [
{file = "pyserial-3.5-py2.py3-none-any.whl", hash =
"sha256:c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0"},
{file = "pyserial-3.5.tar.gz", hash =
"sha256:3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb"},
]
-pytest = []
-pytest-forked = []
-pytest-xdist = []
+pytest = [
+ {file = "pytest-7.1.2-py3-none-any.whl", hash =
"sha256:13d0e3ccfc2b6e26be000cb6568c832ba67ba32e719443bfe725814d3c42433c"},
+ {file = "pytest-7.1.2.tar.gz", hash =
"sha256:a06a0425453864a270bc45e71f783330a7428defb4230fb5e6a731fde06ecd45"},
+]
+pytest-forked = [
+ {file = "pytest-forked-1.4.0.tar.gz", hash =
"sha256:8b67587c8f98cbbadfdd804539ed5455b6ed03802203485dd2f53c1422d7440e"},
+ {file = "pytest_forked-1.4.0-py3-none-any.whl", hash =
"sha256:bbbb6717efc886b9d64537b41fb1497cfaf3c9601276be8da2cccfea5a3c8ad8"},
+]
+pytest-xdist = [
+ {file = "pytest-xdist-2.5.0.tar.gz", hash =
"sha256:4580deca3ff04ddb2ac53eba39d76cb5dd5edeac050cb6fbc768b0dd712b4edf"},
+ {file = "pytest_xdist-2.5.0-py3-none-any.whl", hash =
"sha256:6fe5c74fec98906deb8f2d2b616b5c782022744978e7bd4695d39c8f42d0ce65"},
+]
python-dateutil = [
{file = "python-dateutil-2.8.2.tar.gz", hash =
"sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"},
{file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash =
"sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
]
-pytz = []
+pytz = [
+ {file = "pytz-2022.2.1-py2.py3-none-any.whl", hash =
"sha256:220f481bdafa09c3955dfbdddb7b57780e9a94f5127e35456a48589b9e0c0197"},
+ {file = "pytz-2022.2.1.tar.gz", hash =
"sha256:cea221417204f2d1a2aa03ddae3e867921971d0d76f14d87abb4414415bbdcf5"},
+]
+pyusb = [
+ {file = "pyusb-1.2.1-py3-none-any.whl", hash =
"sha256:2b4c7cb86dbadf044dfb9d3a4ff69fd217013dbe78a792177a3feb172449ea36"},
+ {file = "pyusb-1.2.1.tar.gz", hash =
"sha256:a4cc7404a203144754164b8b40994e2849fde1cfff06b08492f12fff9d9de7b9"},
+]
pyyaml = [
{file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash =
"sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"},
{file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash =
"sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"},
@@ -2177,6 +2479,13 @@ pyyaml = [
{file =
"PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
hash =
"sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"},
{file = "PyYAML-6.0-cp310-cp310-win32.whl", hash =
"sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"},
{file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash =
"sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"},
+ {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash =
"sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"},
+ {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash =
"sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"},
+ {file =
"PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash
= "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"},
+ {file =
"PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash =
"sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"},
+ {file =
"PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash =
"sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"},
+ {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash =
"sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"},
+ {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash =
"sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"},
{file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash =
"sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"},
{file =
"PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash
= "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"},
{file =
"PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash =
"sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"},
@@ -2208,13 +2517,94 @@ recommonmark = [
{file = "recommonmark-0.6.0-py2.py3-none-any.whl", hash =
"sha256:2ec4207a574289355d5b6ae4ae4abb29043346ca12cdd5f07d374dc5987d2852"},
{file = "recommonmark-0.6.0.tar.gz", hash =
"sha256:29cd4faeb6c5268c633634f2d69aef9431e0f4d347f90659fd0aab20e541efeb"},
]
-regex = []
-requests = []
+regex = [
+ {file = "regex-2022.7.25-cp310-cp310-macosx_10_9_x86_64.whl", hash =
"sha256:55911aba9bae9ad826971d2c80428425625a3dd0c00b94e9bb19361888b983a6"},
+ {file = "regex-2022.7.25-cp310-cp310-macosx_11_0_arm64.whl", hash =
"sha256:1dee18c683a0603445ff9e77ffc39f1a3997f43ee07ae04ac80228fc5565fc4d"},
+ {file =
"regex-2022.7.25-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:42702dba0281bcafbcf194770ecb987d60854946071c622777e6d207b3c169bc"},
+ {file =
"regex-2022.7.25-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
hash =
"sha256:ff0e0c3a48c635529a1723d2fea9326da1dacdba5db20be1a4eeaf56580e3949"},
+ {file =
"regex-2022.7.25-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl",
hash =
"sha256:b5f1e598b9b823fb37f2f1baf930bb5f30ae4a3d9b67dfdc63f8f2374f336679"},
+ {file =
"regex-2022.7.25-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
hash =
"sha256:e19695f7b8de8a3b7d940288abedf48dfcfc0cd8d36f360e5b1bc5e1c3f02a72"},
+ {file =
"regex-2022.7.25-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
hash =
"sha256:dd0b115c4fab388b1131c89518cdd98db38d88c55cedfffc71de33c92eeee9c6"},
+ {file =
"regex-2022.7.25-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
hash =
"sha256:8e324436b7f8bbb8e7b3c4593b01d1dce7215befc83a60569ff34a38d6c250ae"},
+ {file = "regex-2022.7.25-cp310-cp310-musllinux_1_1_aarch64.whl", hash =
"sha256:39ed69803697f1e1e9f1fb1e0b5a8116c55c130745ecd39485cc6255d3b9f046"},
+ {file = "regex-2022.7.25-cp310-cp310-musllinux_1_1_i686.whl", hash =
"sha256:513be18bcf5f27076990dd111f72270d33188653e772023985be92a2c5438382"},
+ {file = "regex-2022.7.25-cp310-cp310-musllinux_1_1_ppc64le.whl", hash =
"sha256:e4a72f70ad7aa3df8244da55cf21e28b6f0640a8d8e0065dfa7ec477dd2b4ea4"},
+ {file = "regex-2022.7.25-cp310-cp310-musllinux_1_1_s390x.whl", hash =
"sha256:3ef5a4ced251a501962d1c8797d15978dd97661721e337cbe88d8bcdb9cd0d56"},
+ {file = "regex-2022.7.25-cp310-cp310-musllinux_1_1_x86_64.whl", hash =
"sha256:f86be4e30cf2ffcd67845251c8549d70740cd6eec77bd38d977c4c0640eefc24"},
+ {file = "regex-2022.7.25-cp310-cp310-win32.whl", hash =
"sha256:4d4640ab9fd3659378eab2ee6f47c3e04b4a269bf206475652c6d8520a9301cc"},
+ {file = "regex-2022.7.25-cp310-cp310-win_amd64.whl", hash =
"sha256:af3d5c74af5ae5d04d597ea61e5e9e0b84e84509e58d1e52aaefbae81cb697bb"},
+ {file = "regex-2022.7.25-cp36-cp36m-macosx_10_9_x86_64.whl", hash =
"sha256:a23653a18c1d69760a2d8b6793478815cf5dc8c12f3b6e608e50aed49829f0ef"},
+ {file =
"regex-2022.7.25-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:ccf10d7d0f25a3c5e123c97ffbab8d4b1429a3c25fbd50812010075bd5d844fd"},
+ {file =
"regex-2022.7.25-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
hash =
"sha256:933752abc9931cb53eccbd4ab3aedbcd0f1797c0a1b19ed385952e265636b2b6"},
+ {file =
"regex-2022.7.25-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash
= "sha256:750b5de7982e568c1bb60388dea1c3abd674d1d579b87ef1b945ba4da53eb5e2"},
+ {file =
"regex-2022.7.25-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
hash =
"sha256:fac0dd2f11a165a79e271a04226378a008c83368031c6a9294a6df9cd1c13c05"},
+ {file =
"regex-2022.7.25-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
hash =
"sha256:48018c71ce7b2fe80c1eb16b9104d7d04d07567e9333159810a4ae5ef8cdf01f"},
+ {file =
"regex-2022.7.25-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
hash =
"sha256:15bc8cddffe3a9181572c6bcdf45b145691fff1b5712767e7d7a6ef5d32f424f"},
+ {file = "regex-2022.7.25-cp36-cp36m-musllinux_1_1_aarch64.whl", hash =
"sha256:50dd20fd10dafd9b697f1c0629285790d86e66946caa2c6a1135f67846d9b495"},
+ {file = "regex-2022.7.25-cp36-cp36m-musllinux_1_1_i686.whl", hash =
"sha256:438b36fbf9446b94325eaeeb1336e2291cd81daeef91b9c728c0946ffbc42ba4"},
+ {file = "regex-2022.7.25-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash =
"sha256:7378a6fba8a043b3c5fb8cf915044c814ebb2463b0a7137ec09ae0b1b10f5484"},
+ {file = "regex-2022.7.25-cp36-cp36m-musllinux_1_1_s390x.whl", hash =
"sha256:609a97626bf310e8cd7c79173e6ed8acab7f01ed4519b7936e998b54b3eb8d31"},
+ {file = "regex-2022.7.25-cp36-cp36m-musllinux_1_1_x86_64.whl", hash =
"sha256:9b8d411a547b47852020242f9c384da35d4c65ccf159ae55a3ba0e50b6220932"},
+ {file = "regex-2022.7.25-cp36-cp36m-win32.whl", hash =
"sha256:fbbf9858a3043f632c9da2a82e4ce895016dfb401f59ab110900121121ee73b7"},
+ {file = "regex-2022.7.25-cp36-cp36m-win_amd64.whl", hash =
"sha256:1903a2a6c4463488452e953a49f7e6663cfea9ff5e75b09333cbcc840e727a5b"},
+ {file = "regex-2022.7.25-cp37-cp37m-macosx_10_9_x86_64.whl", hash =
"sha256:76696de39cbbbf976aa85cbd7b1f3ea2d98b3bc9889f6739fdb6cda85a7f05aa"},
+ {file =
"regex-2022.7.25-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:e0c12e5c14eeb5e484c688f2db57ca4a8182d09b40ab69f73147dc32bcdf849d"},
+ {file =
"regex-2022.7.25-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
hash =
"sha256:bbc0c5b350036ce49a8fd6015a29e4621de725fa99d9e985d3d76b820d44e5a9"},
+ {file =
"regex-2022.7.25-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash
= "sha256:c942696b541ce6be4e3cc2c963b48671277b38ebd4a28af803b511b2885759b7"},
+ {file =
"regex-2022.7.25-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
hash =
"sha256:fddd2ef742f05a18fde1d1c74df12fa6f426945cfb6fefba3fa1c5380e2dd2bf"},
+ {file =
"regex-2022.7.25-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
hash =
"sha256:e1b83baa19355c8dd0ec23e725f18450be01bc464ba1f1865cfada03594fa629"},
+ {file =
"regex-2022.7.25-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
hash =
"sha256:3ef700d411b900fcff91f1ef16771bf085a9f9a376d16d8a643e8a20ff6dcb7b"},
+ {file = "regex-2022.7.25-cp37-cp37m-musllinux_1_1_aarch64.whl", hash =
"sha256:b24133df3d3c57a901f6a63ba3783d6eed1d0561ed1cafd027f0789e76a10615"},
+ {file = "regex-2022.7.25-cp37-cp37m-musllinux_1_1_i686.whl", hash =
"sha256:1228f5a6be5b45ce7b66a69a77682632f0ce64cea1d7da505f33972e01f1f3fe"},
+ {file = "regex-2022.7.25-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash =
"sha256:9eec276e6419de4f93824f9373b28a2a8eaed04f28514000cc6a41b64703d804"},
+ {file = "regex-2022.7.25-cp37-cp37m-musllinux_1_1_s390x.whl", hash =
"sha256:ab950bbafafe9bf2e0a75b9f17291500fa7794f398834f1f4a71c18dddece130"},
+ {file = "regex-2022.7.25-cp37-cp37m-musllinux_1_1_x86_64.whl", hash =
"sha256:a60840ebd37fe0152b5be50b56e8a958e1430837475311986f867dabad1c7474"},
+ {file = "regex-2022.7.25-cp37-cp37m-win32.whl", hash =
"sha256:a0c38edcc78556625cbadf48eb87decd5d3c5e82fc4810dd22c19a5498d2329d"},
+ {file = "regex-2022.7.25-cp37-cp37m-win_amd64.whl", hash =
"sha256:f755fba215ddafa26211e33ac91b48dcebf84ff28590790e5b7711b46fa4095d"},
+ {file = "regex-2022.7.25-cp38-cp38-macosx_10_9_x86_64.whl", hash =
"sha256:8d928237cf78cfe3b46b608f87e255c45a1e11d04e7dd2c49cb60200cbd6f987"},
+ {file = "regex-2022.7.25-cp38-cp38-macosx_11_0_arm64.whl", hash =
"sha256:ea9f01224c25101c5f2c6dceebd29d1431525637d596241935640e4de0fbb822"},
+ {file =
"regex-2022.7.25-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:91d2a85a4a134011eb517f2a752f4e488b0a4f6b6ad00ef247f9fac57f9ff4f0"},
+ {file =
"regex-2022.7.25-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
hash =
"sha256:9163ef45bfebc39838848330cb94f79b563f738c60fc0a20a7f0a30f13ec1573"},
+ {file =
"regex-2022.7.25-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash
= "sha256:0798f6b97c3f8139c95af7b128a60909f5305b2e431a012083063298b2481e5d"},
+ {file =
"regex-2022.7.25-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
hash =
"sha256:03cdd06061426378a83e8a5bdec9cc71b964c35e329f68fb7058d08791780c83"},
+ {file =
"regex-2022.7.25-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
hash =
"sha256:f898bf0a9613cc8b7f7af6fdcd80cc8e7659787908834c63391f22271fdb1c14"},
+ {file =
"regex-2022.7.25-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
hash =
"sha256:b131c7c94da56f8f1c59b4540c37c20973119608ec8cf42b3ebb40a94f3afc2c"},
+ {file = "regex-2022.7.25-cp38-cp38-musllinux_1_1_aarch64.whl", hash =
"sha256:a2afa24d06301f4ffcb00244d30df1c12e65cabf30dcb0ba8b871d6b0c54d19e"},
+ {file = "regex-2022.7.25-cp38-cp38-musllinux_1_1_i686.whl", hash =
"sha256:d3ce546e54cfafa9dee60b11b7f99b87058d81ab62bd05e366fc5bf6b2c1383a"},
+ {file = "regex-2022.7.25-cp38-cp38-musllinux_1_1_ppc64le.whl", hash =
"sha256:f7329e66c6bd9950eb428f225db3982e5f54e53d3d95951da424dce9aa621eae"},
+ {file = "regex-2022.7.25-cp38-cp38-musllinux_1_1_s390x.whl", hash =
"sha256:ae6cd6ce16681d345592d74a0a92b25a9530d4055be460af425e654d891cdee4"},
+ {file = "regex-2022.7.25-cp38-cp38-musllinux_1_1_x86_64.whl", hash =
"sha256:fddd7ddd520661085ffd91f1db74b18e4cf5ed9b6e939aa7d31ca1ea67bc7621"},
+ {file = "regex-2022.7.25-cp38-cp38-win32.whl", hash =
"sha256:f049a9fdacdbc4e84afcec7a3b14a8309699a7347c95a525d49c4b9a9c353cee"},
+ {file = "regex-2022.7.25-cp38-cp38-win_amd64.whl", hash =
"sha256:50497f3d8a1e8d8055c6da1768c98f5b618039e572aacdcccd642704db6077eb"},
+ {file = "regex-2022.7.25-cp39-cp39-macosx_10_9_x86_64.whl", hash =
"sha256:89f4c531409ef01aa12b7c15bb489415e219c186725d44bc12a8f279afde3fe2"},
+ {file = "regex-2022.7.25-cp39-cp39-macosx_11_0_arm64.whl", hash =
"sha256:535a2392a0f11f7df80f43e63a5b69c51bb29a10a690e4ae5ad721b9fe50684d"},
+ {file =
"regex-2022.7.25-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
hash =
"sha256:3f3de4baf25e960a3048a6ecd0246cedcdfeb462a741d55e9a42e91add5a4a99"},
+ {file =
"regex-2022.7.25-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
hash =
"sha256:e2c8f542c5afd36e60237dbbabc95722135047d4c2844b9c4bff74c7177a50a1"},
+ {file =
"regex-2022.7.25-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash
= "sha256:dc49d9c6289df4c7895c85094872ef98ce7f609ba0ecbeb77acdd7f8362cda7d"},
+ {file =
"regex-2022.7.25-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
hash =
"sha256:730cc311757153d59bf2bcf06d4026e3c998c1919c06557ad0e382235049b376"},
+ {file =
"regex-2022.7.25-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
hash =
"sha256:14882770017436aabe4cfa2651a9777f9faa2625bc0f6cdaec362697a8a964c3"},
+ {file =
"regex-2022.7.25-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
hash =
"sha256:1991348464df42a6bc04601e1241dfa4a9ec4d599338dc64760f2c299e1cb996"},
+ {file = "regex-2022.7.25-cp39-cp39-musllinux_1_1_aarch64.whl", hash =
"sha256:03d7ff80e3a276ef460baaa745d425162c19d8ea093d60ecf47f52ffee37aea5"},
+ {file = "regex-2022.7.25-cp39-cp39-musllinux_1_1_i686.whl", hash =
"sha256:ed42feff196aaf262db1878d5ac553a3bcef147caf1362e7095f1115b71ae0e1"},
+ {file = "regex-2022.7.25-cp39-cp39-musllinux_1_1_ppc64le.whl", hash =
"sha256:4433690ff474fd95a3058085aed5fe12ac4e09d4f4b2b983de35e3a6c899afa0"},
+ {file = "regex-2022.7.25-cp39-cp39-musllinux_1_1_s390x.whl", hash =
"sha256:454c2c81d34eb4e1d015acbca0488789c17fc84188e336365eaa31a16c964c04"},
+ {file = "regex-2022.7.25-cp39-cp39-musllinux_1_1_x86_64.whl", hash =
"sha256:a06d6ada6bef79aaa550ef37c7d529da60b81c02838d9dd9c5ab788becfc57d4"},
+ {file = "regex-2022.7.25-cp39-cp39-win32.whl", hash =
"sha256:cc018ce0f1b62df155a5b9c9a81464040a87e97fd9bd05e0febe92568c63e678"},
+ {file = "regex-2022.7.25-cp39-cp39-win_amd64.whl", hash =
"sha256:26d6e9a6431626c20821d0165a4c4508acb20a57e4c04ee77c96f01b7fe4c09c"},
+ {file = "regex-2022.7.25.tar.gz", hash =
"sha256:bd0883e86964cd61360ffc36dbebbc49b928e92a306f886eab02c11dfde5b7aa"},
+]
+requests = [
+ {file = "requests-2.28.1-py3-none-any.whl", hash =
"sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"},
+ {file = "requests-2.28.1.tar.gz", hash =
"sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"},
+]
requests-oauthlib = [
{file = "requests-oauthlib-1.3.1.tar.gz", hash =
"sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a"},
{file = "requests_oauthlib-1.3.1-py2.py3-none-any.whl", hash =
"sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5"},
]
-rsa = []
+rsa = [
+ {file = "rsa-4.9-py3-none-any.whl", hash =
"sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"},
+ {file = "rsa-4.9.tar.gz", hash =
"sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"},
+]
scipy = [
{file = "scipy-1.7.3-1-cp310-cp310-macosx_12_0_arm64.whl", hash =
"sha256:c9e04d7e9b03a8a6ac2045f7c5ef741be86727d8f49c45db45f244bdd2bcff17"},
{file = "scipy-1.7.3-1-cp38-cp38-macosx_12_0_arm64.whl", hash =
"sha256:b0e0aeb061a1d7dcd2ed59ea57ee56c9b23dd60100825f98238c06ee5cc4467e"},
@@ -2295,7 +2685,9 @@ sqlparse = [
{file = "sqlparse-0.4.2-py3-none-any.whl", hash =
"sha256:48719e356bb8b42991bdbb1e8b83223757b93789c00910a616a071910ca4a64d"},
{file = "sqlparse-0.4.2.tar.gz", hash =
"sha256:0c00730c74263a94e5a9919ade150dfc3b19c574389985446148402998287dae"},
]
-tensorboard = []
+tensorboard = [
+ {file = "tensorboard-2.10.0-py3-none-any.whl", hash =
"sha256:76c91a5e8959cd2208cc32cb17a0cb002badabb66a06ac2af02a7810f49a59e3"},
+]
tensorboard-data-server = [
{file = "tensorboard_data_server-0.6.1-py3-none-any.whl", hash =
"sha256:809fe9887682d35c1f7d1f54f0f40f98bb1f771b14265b453ca051e2ce58fca7"},
{file = "tensorboard_data_server-0.6.1-py3-none-macosx_10_9_x86_64.whl",
hash =
"sha256:fa8cef9be4fcae2f2363c88176638baf2da19c5ec90addb49b1cde05c95c88ee"},
@@ -2392,7 +2784,19 @@ torchvision = [
{file = "torchvision-0.12.0-cp39-cp39-manylinux2014_aarch64.whl", hash =
"sha256:b93a767f44e3933cb3b01a6fe9727db54590f57b7dac09d5aaf15966c6c151dd"},
{file = "torchvision-0.12.0-cp39-cp39-win_amd64.whl", hash =
"sha256:edab05f7ba9f648c00435b384ffdbd7bde79a3b8ea893813fb50f6ccf28b1e76"},
]
-tornado = []
+tornado = [
+ {file = "tornado-6.2-cp37-abi3-macosx_10_9_universal2.whl", hash =
"sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72"},
+ {file = "tornado-6.2-cp37-abi3-macosx_10_9_x86_64.whl", hash =
"sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9"},
+ {file =
"tornado-6.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash
= "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac"},
+ {file =
"tornado-6.2-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
hash =
"sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75"},
+ {file =
"tornado-6.2-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
hash =
"sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e"},
+ {file = "tornado-6.2-cp37-abi3-musllinux_1_1_aarch64.whl", hash =
"sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8"},
+ {file = "tornado-6.2-cp37-abi3-musllinux_1_1_i686.whl", hash =
"sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b"},
+ {file = "tornado-6.2-cp37-abi3-musllinux_1_1_x86_64.whl", hash =
"sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca"},
+ {file = "tornado-6.2-cp37-abi3-win32.whl", hash =
"sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23"},
+ {file = "tornado-6.2-cp37-abi3-win_amd64.whl", hash =
"sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b"},
+ {file = "tornado-6.2.tar.gz", hash =
"sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13"},
+]
typed-ast = [
{file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash =
"sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"},
{file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash =
"sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"},
@@ -2419,15 +2823,24 @@ typed-ast = [
{file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash =
"sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"},
{file = "typed_ast-1.5.4.tar.gz", hash =
"sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"},
]
-typing-extensions = []
+typing-extensions = [
+ {file = "typing_extensions-4.3.0-py3-none-any.whl", hash =
"sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02"},
+ {file = "typing_extensions-4.3.0.tar.gz", hash =
"sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6"},
+]
unify = [
{file = "unify-0.5.tar.gz", hash =
"sha256:8ddce812b2457212b7598fe574c9e6eb3ad69710f445391338270c7f8a71723c"},
]
untokenize = [
{file = "untokenize-0.1.1.tar.gz", hash =
"sha256:3865dbbbb8efb4bb5eaa72f1be7f3e0be00ea8b7f125c69cbd1f5fda926f37a2"},
]
-urllib3 = []
-werkzeug = []
+urllib3 = [
+ {file = "urllib3-1.26.11-py2.py3-none-any.whl", hash =
"sha256:c33ccba33c819596124764c23a97d25f32b28433ba0dedeb77d873a38722c9bc"},
+ {file = "urllib3-1.26.11.tar.gz", hash =
"sha256:ea6e8fb210b19d950fab93b60c9009226c63a28808bc8386e05301e25883ac0a"},
+]
+werkzeug = [
+ {file = "Werkzeug-2.2.2-py3-none-any.whl", hash =
"sha256:f979ab81f58d7318e064e99c4506445d60135ac5cd2e177a2de0089bfd4c9bd5"},
+ {file = "Werkzeug-2.2.2.tar.gz", hash =
"sha256:7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f"},
+]
wrapt = [
{file = "wrapt-1.14.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash =
"sha256:1b376b3f4896e7930f1f772ac4b064ac12598d1c38d04907e696cc4d794b43d3"},
{file = "wrapt-1.14.1-cp27-cp27m-manylinux1_i686.whl", hash =
"sha256:903500616422a40a98a5a3c4ff4ed9d0066f3b4c951fa286018ecdf0750194ef"},
@@ -2502,4 +2915,7 @@ xgboost = [
{file = "xgboost-1.6.1-py3-none-win_amd64.whl", hash =
"sha256:3adcb7e4ccf774d5e0128c01e5c381303c3799910ab0f2e996160fe3cd23b7fc"},
{file = "xgboost-1.6.1.tar.gz", hash =
"sha256:24072028656f3428e7b8aabf77340ece057f273e41f7f85d67ccaefb7454bb18"},
]
-zipp = []
+zipp = [
+ {file = "zipp-3.8.1-py3-none-any.whl", hash =
"sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009"},
+ {file = "zipp-3.8.1.tar.gz", hash =
"sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2"},
+]
diff --git a/apps/microtvm/pyproject.toml b/apps/microtvm/pyproject.toml
index 0455e1b3e9..b75975e2ff 100644
--- a/apps/microtvm/pyproject.toml
+++ b/apps/microtvm/pyproject.toml
@@ -111,6 +111,7 @@ tensorflow-estimator = {version = "^2.1", optional = true}
tflite = {version = "2.1.0", optional = true}
wheel = "*"
cloudpickle = "^1.6.0"
+pyusb = "^1.2.1"
[tool.poetry.extras]
diff --git a/python/tvm/micro/testing/pytest_plugin.py
b/python/tvm/micro/testing/pytest_plugin.py
index 9864b49abb..c32377fb7e 100644
--- a/python/tvm/micro/testing/pytest_plugin.py
+++ b/python/tvm/micro/testing/pytest_plugin.py
@@ -60,6 +60,14 @@ def pytest_addoption(parser):
"Also, it will enable debug level logging in project generation."
),
)
+ parser.addoption(
+ "--serial-number",
+ default=None,
+ help=(
+ "Board serial number. This is used to run test on a "
+ "specific board when multiple boards with the same type exist."
+ ),
+ )
def pytest_generate_tests(metafunc):
@@ -130,3 +138,8 @@ def pytest_configure(config):
"markers",
"skip_boards(board): skip test for the given board",
)
+
+
[email protected]
+def serial_number(request):
+ return request.config.getoption("--serial-number")
diff --git a/tests/micro/arduino/README.md b/tests/micro/arduino/README.md
index 2b37599849..36cd7d5f46 100644
--- a/tests/micro/arduino/README.md
+++ b/tests/micro/arduino/README.md
@@ -33,3 +33,10 @@ To see the list of supported values for `--board`, run:
```
$ pytest --help
```
+
+If you would like to test with a real hardware and need to target one of many
+identical devices, you have the option to pass the serial number for your
+development board.
+```
+$ pytest --board=due --serial-number="4873ce"
+```
diff --git a/tests/micro/arduino/test_arduino_error_detection.py
b/tests/micro/arduino/test_arduino_error_detection.py
index de5e5bb56c..f1278094b4 100644
--- a/tests/micro/arduino/test_arduino_error_detection.py
+++ b/tests/micro/arduino/test_arduino_error_detection.py
@@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-import sys
import pytest
from tvm.micro.project_api.server import ServerError
@@ -25,8 +24,10 @@ import tvm.testing
@pytest.fixture
-def project(board, arduino_cli_cmd, microtvm_debug, workspace_dir):
- return test_utils.make_kws_project(board, arduino_cli_cmd, microtvm_debug,
workspace_dir)
+def project(board, arduino_cli_cmd, microtvm_debug, workspace_dir,
serial_number):
+ return test_utils.make_kws_project(
+ board, arduino_cli_cmd, microtvm_debug, workspace_dir, serial_number
+ )
def test_blank_project_compiles(workspace_dir, project):
diff --git a/tests/micro/arduino/test_arduino_rpc_server.py
b/tests/micro/arduino/test_arduino_rpc_server.py
index e3d97bfdf9..ae22fb9499 100644
--- a/tests/micro/arduino/test_arduino_rpc_server.py
+++ b/tests/micro/arduino/test_arduino_rpc_server.py
@@ -38,7 +38,15 @@ from tvm.relay.backend import Executor, Runtime
import test_utils
-def _make_session(model, arduino_board, arduino_cli_cmd, workspace_dir, mod,
build_config):
+def _make_session(
+ model,
+ arduino_board,
+ arduino_cli_cmd,
+ workspace_dir,
+ mod,
+ build_config,
+ serial_number: str = None,
+):
project = tvm.micro.generate_project(
str(test_utils.TEMPLATE_PROJECT_DIR),
mod,
@@ -48,6 +56,7 @@ def _make_session(model, arduino_board, arduino_cli_cmd,
workspace_dir, mod, bui
"arduino_cli_cmd": arduino_cli_cmd,
"project_type": "host_driven",
"verbose": bool(build_config.get("debug")),
+ "serial_number": serial_number,
},
)
project.build()
@@ -56,30 +65,50 @@ def _make_session(model, arduino_board, arduino_cli_cmd,
workspace_dir, mod, bui
def _make_sess_from_op(
- model, arduino_board, arduino_cli_cmd, workspace_dir, op_name, sched,
arg_bufs, build_config
+ model,
+ arduino_board,
+ arduino_cli_cmd,
+ workspace_dir,
+ op_name,
+ sched,
+ arg_bufs,
+ build_config,
+ serial_number: str = None,
):
target = tvm.target.target.micro(model)
runtime = Runtime("crt", {"system-lib": True})
with tvm.transform.PassContext(opt_level=3,
config={"tir.disable_vectorize": True}):
mod = tvm.build(sched, arg_bufs, target=target, runtime=runtime,
name=op_name)
- return _make_session(model, arduino_board, arduino_cli_cmd, workspace_dir,
mod, build_config)
+ return _make_session(
+ model, arduino_board, arduino_cli_cmd, workspace_dir, mod,
build_config, serial_number
+ )
-def _make_add_sess(model, arduino_board, arduino_cli_cmd, workspace_dir,
build_config):
+def _make_add_sess(
+ model, arduino_board, arduino_cli_cmd, workspace_dir, build_config,
serial_number: str = None
+):
A = tvm.te.placeholder((2,), dtype="int8")
B = tvm.te.placeholder((1,), dtype="int8")
C = tvm.te.compute(A.shape, lambda i: A[i] + B[0], name="C")
sched = tvm.te.create_schedule(C.op)
return _make_sess_from_op(
- model, arduino_board, arduino_cli_cmd, workspace_dir, "add", sched,
[A, B, C], build_config
+ model,
+ arduino_board,
+ arduino_cli_cmd,
+ workspace_dir,
+ "add",
+ sched,
+ [A, B, C],
+ build_config,
+ serial_number,
)
# The same test code can be executed on both the QEMU simulation and on real
hardware.
@tvm.testing.requires_micro
@pytest.mark.requires_hardware
-def test_compile_runtime(board, arduino_cli_cmd, microtvm_debug,
workspace_dir):
+def test_compile_runtime(board, arduino_cli_cmd, microtvm_debug,
workspace_dir, serial_number):
"""Test compiling the on-device runtime."""
model = test_utils.ARDUINO_BOARDS[board]
@@ -98,13 +127,15 @@ def test_compile_runtime(board, arduino_cli_cmd,
microtvm_debug, workspace_dir):
system_lib.get_function("add")(A_data, B_data, C_data)
assert (C_data.numpy() == np.array([6, 7])).all()
- with _make_add_sess(model, board, arduino_cli_cmd, workspace_dir,
build_config) as sess:
+ with _make_add_sess(
+ model, board, arduino_cli_cmd, workspace_dir, build_config,
serial_number
+ ) as sess:
test_basic_add(sess)
@tvm.testing.requires_micro
@pytest.mark.requires_hardware
-def test_platform_timer(board, arduino_cli_cmd, microtvm_debug, workspace_dir):
+def test_platform_timer(board, arduino_cli_cmd, microtvm_debug, workspace_dir,
serial_number):
"""Test compiling the on-device runtime."""
model = test_utils.ARDUINO_BOARDS[board]
@@ -128,13 +159,15 @@ def test_platform_timer(board, arduino_cli_cmd,
microtvm_debug, workspace_dir):
assert result.mean > 0
assert len(result.results) == 3
- with _make_add_sess(model, board, arduino_cli_cmd, workspace_dir,
build_config) as sess:
+ with _make_add_sess(
+ model, board, arduino_cli_cmd, workspace_dir, build_config,
serial_number
+ ) as sess:
test_basic_add(sess)
@tvm.testing.requires_micro
@pytest.mark.requires_hardware
-def test_relay(board, arduino_cli_cmd, microtvm_debug, workspace_dir):
+def test_relay(board, arduino_cli_cmd, microtvm_debug, workspace_dir,
serial_number):
"""Testing a simple relay graph"""
model = test_utils.ARDUINO_BOARDS[board]
build_config = {"debug": microtvm_debug}
@@ -153,7 +186,9 @@ def test_relay(board, arduino_cli_cmd, microtvm_debug,
workspace_dir):
with tvm.transform.PassContext(opt_level=3,
config={"tir.disable_vectorize": True}):
mod = tvm.relay.build(func, target=target, runtime=runtime)
- with _make_session(model, board, arduino_cli_cmd, workspace_dir, mod,
build_config) as session:
+ with _make_session(
+ model, board, arduino_cli_cmd, workspace_dir, mod, build_config,
serial_number
+ ) as session:
graph_mod = tvm.micro.create_local_graph_executor(
mod.get_graph_json(), session.get_system_lib(), session.device
)
@@ -167,7 +202,7 @@ def test_relay(board, arduino_cli_cmd, microtvm_debug,
workspace_dir):
@tvm.testing.requires_micro
@pytest.mark.requires_hardware
-def test_onnx(board, arduino_cli_cmd, microtvm_debug, workspace_dir):
+def test_onnx(board, arduino_cli_cmd, microtvm_debug, workspace_dir,
serial_number):
"""Testing a simple ONNX model."""
model = test_utils.ARDUINO_BOARDS[board]
build_config = {"debug": microtvm_debug}
@@ -197,7 +232,7 @@ def test_onnx(board, arduino_cli_cmd, microtvm_debug,
workspace_dir):
graph = lowered.get_graph_json()
with _make_session(
- model, board, arduino_cli_cmd, workspace_dir, lowered, build_config
+ model, board, arduino_cli_cmd, workspace_dir, lowered, build_config,
serial_number
) as session:
graph_mod = tvm.micro.create_local_graph_executor(
graph, session.get_system_lib(), session.device
@@ -227,6 +262,7 @@ def check_result(
out_shape,
result,
build_config,
+ serial_number,
):
"""Helper function to verify results"""
TOL = 1e-5
@@ -236,7 +272,7 @@ def check_result(
mod = tvm.relay.build(relay_mod, target=target, runtime=runtime)
with _make_session(
- model, arduino_board, arduino_cli_cmd, workspace_dir, mod, build_config
+ model, arduino_board, arduino_cli_cmd, workspace_dir, mod,
build_config, serial_number
) as session:
rt_mod = tvm.micro.create_local_graph_executor(
mod.get_graph_json(), session.get_system_lib(), session.device
@@ -258,7 +294,7 @@ def check_result(
@tvm.testing.requires_micro
@pytest.mark.requires_hardware
-def test_byoc_microtvm(board, arduino_cli_cmd, microtvm_debug, workspace_dir):
+def test_byoc_microtvm(board, arduino_cli_cmd, microtvm_debug, workspace_dir,
serial_number):
"""This is a simple test case to check BYOC capabilities of microTVM"""
model = test_utils.ARDUINO_BOARDS[board]
build_config = {"debug": microtvm_debug}
@@ -318,17 +354,32 @@ def test_byoc_microtvm(board, arduino_cli_cmd,
microtvm_debug, workspace_dir):
arduino_board=board,
arduino_cli_cmd=arduino_cli_cmd,
workspace_dir=workspace_dir,
+ serial_number=serial_number,
)
def _make_add_sess_with_shape(
- model, arduino_board, arduino_cli_cmd, workspace_dir, shape, build_config
+ model,
+ arduino_board,
+ arduino_cli_cmd,
+ workspace_dir,
+ shape,
+ build_config,
+ serial_number: str = None,
):
A = tvm.te.placeholder(shape, dtype="int8")
C = tvm.te.compute(A.shape, lambda i: A[i] + A[i], name="C")
sched = tvm.te.create_schedule(C.op)
return _make_sess_from_op(
- model, arduino_board, arduino_cli_cmd, workspace_dir, "add", sched,
[A, C], build_config
+ model,
+ arduino_board,
+ arduino_cli_cmd,
+ workspace_dir,
+ "add",
+ sched,
+ [A, C],
+ build_config,
+ serial_number,
)
@@ -342,7 +393,9 @@ def _make_add_sess_with_shape(
)
@tvm.testing.requires_micro
@pytest.mark.requires_hardware
-def test_rpc_large_array(board, arduino_cli_cmd, microtvm_debug,
workspace_dir, shape):
+def test_rpc_large_array(
+ board, arduino_cli_cmd, microtvm_debug, workspace_dir, shape, serial_number
+):
"""Test large RPC array transfer."""
model = test_utils.ARDUINO_BOARDS[board]
build_config = {"debug": microtvm_debug}
@@ -357,7 +410,7 @@ def test_rpc_large_array(board, arduino_cli_cmd,
microtvm_debug, workspace_dir,
assert (C_data.numpy() == np.zeros(shape)).all()
with _make_add_sess_with_shape(
- model, board, arduino_cli_cmd, workspace_dir, shape, build_config
+ model, board, arduino_cli_cmd, workspace_dir, shape, build_config,
serial_number
) as sess:
test_tensors(sess)
diff --git a/tests/micro/arduino/test_arduino_workflow.py
b/tests/micro/arduino/test_arduino_workflow.py
index 8d5d541d40..51898424ae 100644
--- a/tests/micro/arduino/test_arduino_workflow.py
+++ b/tests/micro/arduino/test_arduino_workflow.py
@@ -56,8 +56,9 @@ def project_dir(workflow_workspace_dir):
@pytest.fixture(scope="module")
def project(request, arduino_cli_cmd, microtvm_debug, workflow_workspace_dir):
board = request.config.getoption("--board")
+ serial_number = request.config.getoption("--serial-number")
return test_utils.make_kws_project(
- board, arduino_cli_cmd, microtvm_debug, workflow_workspace_dir
+ board, arduino_cli_cmd, microtvm_debug, workflow_workspace_dir,
serial_number
)
diff --git a/tests/micro/arduino/test_utils.py
b/tests/micro/arduino/test_utils.py
index b27d4bb7aa..d81edc845b 100644
--- a/tests/micro/arduino/test_utils.py
+++ b/tests/micro/arduino/test_utils.py
@@ -61,7 +61,7 @@ def make_workspace_dir(test_name, board):
return t
-def make_kws_project(board, arduino_cli_cmd, microtvm_debug, workspace_dir):
+def make_kws_project(board, arduino_cli_cmd, microtvm_debug, workspace_dir,
serial_number: str):
this_dir = pathlib.Path(__file__).parent
model = ARDUINO_BOARDS[board]
build_config = {"debug": microtvm_debug}
@@ -88,5 +88,6 @@ def make_kws_project(board, arduino_cli_cmd, microtvm_debug,
workspace_dir):
"arduino_cli_cmd": arduino_cli_cmd,
"project_type": "example_project",
"verbose": bool(build_config.get("debug")),
+ "serial_number": serial_number,
},
)
diff --git a/tests/micro/zephyr/README.md b/tests/micro/zephyr/README.md
index 7ae98bbd2d..f6917bf5e2 100644
--- a/tests/micro/zephyr/README.md
+++ b/tests/micro/zephyr/README.md
@@ -44,5 +44,5 @@ $ pytest test_zephyr.py --help
If you like to test with a real hardware, you have the option to pass the
serial number
for your development board.
```
-$ pytest test_zephyr.py --board=nrf5340dk_nrf5340_cpuapp --serial="0672FF5"
+$ pytest test_zephyr.py --board=nrf5340dk_nrf5340_cpuapp
--serial-number="0672FF5"
```
diff --git a/tests/micro/zephyr/conftest.py b/tests/micro/zephyr/conftest.py
index d3dbf22e47..aa1759d770 100644
--- a/tests/micro/zephyr/conftest.py
+++ b/tests/micro/zephyr/conftest.py
@@ -29,11 +29,6 @@ def pytest_addoption(parser):
default=False,
help="If set true, use the FVP emulator to run the test",
)
- parser.addoption(
- "--serial",
- default=None,
- help="If set true, use the FVP emulator to run the test",
- )
@pytest.fixture
@@ -41,11 +36,6 @@ def use_fvp(request):
return request.config.getoption("--use-fvp")
[email protected]
-def serial_number(request):
- return request.config.getoption("--serial")
-
-
@pytest.fixture(autouse=True)
def xfail_on_fvp(request, use_fvp):
"""mark the tests as xfail if running on fvp."""