From 92f7205b02d3dd262b7bde6b4e6040a3599aee96 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 11 Feb 2022 01:10:02 +0100 Subject: [PATCH 01/60] Add configs detection and load --- poetry.lock | 2516 ------------------------------------- pyproject.toml | 2 +- runcardsrunner/configs.py | 37 + 3 files changed, 38 insertions(+), 2517 deletions(-) delete mode 100644 poetry.lock create mode 100644 runcardsrunner/configs.py diff --git a/poetry.lock b/poetry.lock deleted file mode 100644 index 4a64c6a0..00000000 --- a/poetry.lock +++ /dev/null @@ -1,2516 +0,0 @@ -[[package]] -name = "a3b2bbc3ced97675ac3a71df45f55ba" -version = "6.4.0" -description = "The LHAPDF parton density evaluation library" -category = "main" -optional = false -python-versions = "*" - -[[package]] -name = "alabaster" -version = "0.7.12" -description = "A configurable sidebar-enabled Sphinx theme" -category = "main" -optional = false -python-versions = "*" - -[[package]] -name = "appdirs" -version = "1.4.4" -description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "main" -optional = false -python-versions = "*" - -[[package]] -name = "appnope" -version = "0.1.3" -description = "Disable App Nap on macOS >= 10.9" -category = "main" -optional = false -python-versions = "*" - -[[package]] -name = "astroid" -version = "2.11.7" -description = "An abstract syntax tree for Python with inference support." -category = "dev" -optional = false -python-versions = ">=3.6.2" - -[package.dependencies] -lazy-object-proxy = ">=1.4.0" -typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""} -wrapt = ">=1.11,<2" - -[[package]] -name = "asttokens" -version = "2.0.5" -description = "Annotate AST trees with source code positions" -category = "main" -optional = false -python-versions = "*" - -[package.dependencies] -six = "*" - -[package.extras] -test = ["astroid", "pytest"] - -[[package]] -name = "atomicwrites" -version = "1.4.1" -description = "Atomic file writes." -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[[package]] -name = "attrs" -version = "21.4.0" -description = "Classes Without Boilerplate" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] -docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"] - -[[package]] -name = "babel" -version = "2.10.3" -description = "Internationalization utilities" -category = "main" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -pytz = ">=2015.7" - -[[package]] -name = "backcall" -version = "0.2.0" -description = "Specifications for callback functions passed in to an API" -category = "main" -optional = false -python-versions = "*" - -[[package]] -name = "banana-hep" -version = "0.6.5" -description = "Benchmark QCD physics" -category = "main" -optional = false -python-versions = ">=3.8.0,<3.11" - -[package.dependencies] -appdirs = ">=1.4.4,<2.0.0" -click = ">=8.0.3,<9.0.0" -ipython = ">=8.1.0,<9.0.0" -matplotlib = ">=3.5.1,<4.0.0" -numpy = ">=1.21.0,<2.0.0" -pandas = ">=1.3.5,<2.0.0" -pendulum = ">=2.1.2,<3.0.0" -PyYAML = ">=6.0,<7.0" -rich = ">=10.16.1,<11.0.0" -SQLAlchemy = ">=1.4.29,<2.0.0" - -[package.extras] -docs = ["Sphinx (>=4.3.2,<5.0.0)", "sphinx-rtd-theme (>=1.0.0,<2.0.0)", "sphinxcontrib-bibtex (>=2.4.1,<3.0.0)"] - -[[package]] -name = "black" -version = "21.12b0" -description = "The uncompromising code formatter." -category = "dev" -optional = false -python-versions = ">=3.6.2" - -[package.dependencies] -click = ">=7.1.2" -mypy-extensions = ">=0.4.3" -pathspec = ">=0.9.0,<1" -platformdirs = ">=2" -tomli = ">=0.2.6,<2.0.0" -typing-extensions = [ - {version = ">=3.10.0.0", markers = "python_version < \"3.10\""}, - {version = "!=3.10.0.1", markers = "python_version >= \"3.10\""}, -] - -[package.extras] -colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)"] -jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] -python2 = ["typed-ast (>=1.4.3)"] -uvloop = ["uvloop (>=0.15.2)"] - -[[package]] -name = "breezy" -version = "3.2.2" -description = "Friendly distributed version control system" -category = "main" -optional = false -python-versions = ">=3.5" - -[package.dependencies] -configobj = "*" -dulwich = ">=0.20.23" -fastbencode = "*" -patiencediff = "*" - -[package.extras] -cext = ["cython (>=0.29)"] -doc = ["sphinx-epytext", "setuptools (<45)", "sphinx (==1.8.5)"] -fastimport = ["fastimport (<0.9.8)", "fastimport"] -git = ["dulwich (>=0.20.23)"] -launchpad = ["launchpadlib (>=1.6.3)"] -workspace = ["pyinotify"] - -[[package]] -name = "certifi" -version = "2022.6.15" -description = "Python package for providing Mozilla's CA Bundle." -category = "main" -optional = false -python-versions = ">=3.6" - -[[package]] -name = "cffi" -version = "1.15.1" -description = "Foreign Function Interface for Python calling C code." -category = "main" -optional = false -python-versions = "*" - -[package.dependencies] -pycparser = "*" - -[[package]] -name = "charset-normalizer" -version = "2.1.0" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" -optional = false -python-versions = ">=3.6.0" - -[package.extras] -unicode_backport = ["unicodedata2"] - -[[package]] -name = "click" -version = "8.1.3" -description = "Composable command line interface toolkit" -category = "main" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} - -[[package]] -name = "colorama" -version = "0.4.5" -description = "Cross-platform colored terminal text." -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[[package]] -name = "commonmark" -version = "0.9.1" -description = "Python parser for the CommonMark Markdown spec" -category = "main" -optional = false -python-versions = "*" - -[package.extras] -test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"] - -[[package]] -name = "configobj" -version = "5.0.6" -description = "Config file reading, writing and validation." -category = "main" -optional = false -python-versions = "*" - -[package.dependencies] -six = "*" - -[[package]] -name = "cycler" -version = "0.11.0" -description = "Composable style cycles" -category = "main" -optional = false -python-versions = ">=3.6" - -[[package]] -name = "decorator" -version = "5.1.1" -description = "Decorators for Humans" -category = "main" -optional = false -python-versions = ">=3.5" - -[[package]] -name = "dill" -version = "0.3.5.1" -description = "serialize all of python" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" - -[package.extras] -graph = ["objgraph (>=1.7.2)"] - -[[package]] -name = "docutils" -version = "0.17.1" -description = "Docutils -- Python Documentation Utilities" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[[package]] -name = "dulwich" -version = "0.20.45" -description = "Python Git Library" -category = "main" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -certifi = "*" -urllib3 = ">=1.24.1" - -[package.extras] -fastimport = ["fastimport"] -https = ["urllib3[secure] (>=1.24.1)"] -paramiko = ["paramiko"] -pgp = ["gpg"] - -[[package]] -name = "eko" -version = "0.9.4" -description = "Evolution Kernel Operator" -category = "main" -optional = false -python-versions = ">=3.8,<3.11" - -[package.dependencies] -banana-hep = {version = ">=0.6.5,<0.7.0", optional = true, markers = "extra == \"mark\" or extra == \"box\""} -lz4 = ">=3.1.10,<4.0.0" -matplotlib = {version = ">=3.5.1,<4.0.0", optional = true, markers = "extra == \"mark\" or extra == \"box\""} -numba = ">=0.55.0,<0.56.0" -numpy = ">=1.21.0,<2.0.0" -pandas = {version = ">=1.3.0,<2.0.0", optional = true, markers = "extra == \"mark\" or extra == \"box\""} -PyYAML = ">=6.0,<7.0" -scipy = ">=1.7.3,<2.0.0" -sqlalchemy = {version = ">=1.4.21,<2.0.0", optional = true, markers = "extra == \"mark\" or extra == \"box\""} - -[package.extras] -docs = ["Sphinx (>=4.3.2,<5.0.0)", "nbsphinx (>=0.8.8,<0.9.0)", "sphinx-rtd-theme (>=1.0.0,<2.0.0)", "sphinxcontrib-bibtex (>=2.4.1,<3.0.0)"] -mark = ["banana-hep (>=0.6.5,<0.7.0)", "matplotlib (>=3.5.1,<4.0.0)", "pandas (>=1.3.0,<2.0.0)", "sqlalchemy (>=1.4.21,<2.0.0)"] -box = ["banana-hep (>=0.6.5,<0.7.0)", "matplotlib (>=3.5.1,<4.0.0)", "pandas (>=1.3.0,<2.0.0)", "sqlalchemy (>=1.4.21,<2.0.0)"] - -[[package]] -name = "executing" -version = "0.8.3" -description = "Get the currently executing AST node of a frame, and other information" -category = "main" -optional = false -python-versions = "*" - -[[package]] -name = "fancycompleter" -version = "0.9.1" -description = "colorful TAB completion for Python prompt" -category = "dev" -optional = false -python-versions = "*" - -[package.dependencies] -pyreadline = {version = "*", markers = "platform_system == \"Windows\""} -pyrepl = ">=0.8.2" - -[[package]] -name = "fastbencode" -version = "0.0.9" -description = "Implementation of bencode with optional fast C extensions" -category = "main" -optional = false -python-versions = "*" - -[package.extras] -cext = ["cython (>=0.29)"] - -[[package]] -name = "fonttools" -version = "4.34.4" -description = "Tools to manipulate font files" -category = "main" -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"] -graphite = ["lz4 (>=1.7.4.2)"] -interpolatable = ["scipy", "munkres"] -lxml = ["lxml (>=4.0,<5)"] -pathops = ["skia-pathops (>=0.5.0)"] -plot = ["matplotlib"] -repacker = ["uharfbuzz (>=0.23.0)"] -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)"] - -[[package]] -name = "greenlet" -version = "1.1.2" -description = "Lightweight in-process concurrent programming" -category = "main" -optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" - -[package.extras] -docs = ["sphinx"] - -[[package]] -name = "idna" -version = "3.3" -description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" -optional = false -python-versions = ">=3.5" - -[[package]] -name = "imagesize" -version = "1.4.1" -description = "Getting image size from png/jpeg/jpeg2000/gif file" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[[package]] -name = "importlib-metadata" -version = "4.12.0" -description = "Read metadata from Python packages" -category = "main" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -zipp = ">=0.5" - -[package.extras] -docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"] -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)"] - -[[package]] -name = "ipython" -version = "8.4.0" -description = "IPython: Productive Interactive Computing" -category = "main" -optional = false -python-versions = ">=3.8" - -[package.dependencies] -appnope = {version = "*", markers = "sys_platform == \"darwin\""} -backcall = "*" -colorama = {version = "*", markers = "sys_platform == \"win32\""} -decorator = "*" -jedi = ">=0.16" -matplotlib-inline = "*" -pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} -pickleshare = "*" -prompt-toolkit = ">=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0" -pygments = ">=2.4.0" -stack-data = "*" -traitlets = ">=5" - -[package.extras] -all = ["black", "Sphinx (>=1.3)", "ipykernel", "nbconvert", "nbformat", "ipywidgets", "notebook", "ipyparallel", "qtconsole", "pytest (<7.1)", "pytest-asyncio", "testpath", "curio", "matplotlib (!=3.2.0)", "numpy (>=1.19)", "pandas", "trio"] -black = ["black"] -doc = ["Sphinx (>=1.3)"] -kernel = ["ipykernel"] -nbconvert = ["nbconvert"] -nbformat = ["nbformat"] -notebook = ["ipywidgets", "notebook"] -parallel = ["ipyparallel"] -qtconsole = ["qtconsole"] -test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] -test_extra = ["pytest (<7.1)", "pytest-asyncio", "testpath", "curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.19)", "pandas", "trio"] - -[[package]] -name = "isort" -version = "5.10.1" -description = "A Python utility / library to sort Python imports." -category = "dev" -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)"] -plugins = ["setuptools"] - -[[package]] -name = "jedi" -version = "0.18.1" -description = "An autocompletion tool for Python that can be used for text editors." -category = "main" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -parso = ">=0.8.0,<0.9.0" - -[package.extras] -qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] -testing = ["Django (<3.1)", "colorama", "docopt", "pytest (<7.0.0)"] - -[[package]] -name = "jinja2" -version = "3.1.2" -description = "A very fast and expressive template engine." -category = "main" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "kiwisolver" -version = "1.4.4" -description = "A fast implementation of the Cassowary constraint solver" -category = "main" -optional = false -python-versions = ">=3.7" - -[[package]] -name = "latexcodec" -version = "2.0.1" -description = "A lexer and codec to work with LaTeX code in Python." -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[package.dependencies] -six = ">=1.4.1" - -[[package]] -name = "lazy-object-proxy" -version = "1.7.1" -description = "A fast and thorough lazy object proxy." -category = "dev" -optional = false -python-versions = ">=3.6" - -[[package]] -name = "leprohq" -version = "0.2.3" -description = "(Un-)polarized Leptoproduction of Heavy Quarks" -category = "main" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -numba = "*" -numpy = "*" -scipy = "*" - -[[package]] -name = "lhapdf-management" -version = "0.2" -description = "python-only lhapdf management" -category = "main" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -numpy = "*" -pyyaml = "*" -tqdm = "*" - -[[package]] -name = "llvmlite" -version = "0.38.1" -description = "lightweight wrapper around basic LLVM functionality" -category = "main" -optional = false -python-versions = ">=3.7,<3.11" - -[[package]] -name = "lz4" -version = "3.1.10" -description = "LZ4 Bindings for Python" -category = "main" -optional = false -python-versions = ">=3.5" - -[package.extras] -docs = ["sphinx (>=1.6.0)", "sphinx-bootstrap-theme"] -flake8 = ["flake8"] -tests = ["pytest (!=3.3.0)", "psutil", "pytest-cov"] - -[[package]] -name = "markupsafe" -version = "2.1.1" -description = "Safely add untrusted strings to HTML/XML markup." -category = "main" -optional = false -python-versions = ">=3.7" - -[[package]] -name = "matplotlib" -version = "3.5.2" -description = "Python plotting package" -category = "main" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -cycler = ">=0.10" -fonttools = ">=4.22.0" -kiwisolver = ">=1.0.1" -numpy = ">=1.17" -packaging = ">=20.0" -pillow = ">=6.2.0" -pyparsing = ">=2.2.1" -python-dateutil = ">=2.7" -setuptools_scm = ">=4" - -[[package]] -name = "matplotlib-inline" -version = "0.1.3" -description = "Inline Matplotlib backend for Jupyter" -category = "main" -optional = false -python-versions = ">=3.5" - -[package.dependencies] -traitlets = "*" - -[[package]] -name = "mccabe" -version = "0.7.0" -description = "McCabe checker, plugin for flake8" -category = "dev" -optional = false -python-versions = ">=3.6" - -[[package]] -name = "more-itertools" -version = "8.13.0" -description = "More routines for operating on iterables, beyond itertools" -category = "main" -optional = false -python-versions = ">=3.5" - -[[package]] -name = "mypy-extensions" -version = "0.4.3" -description = "Experimental type system extensions for programs checked with the mypy typechecker." -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "numba" -version = "0.55.2" -description = "compiling Python code using LLVM" -category = "main" -optional = false -python-versions = ">=3.7,<3.11" - -[package.dependencies] -llvmlite = ">=0.38.0rc1,<0.39" -numpy = ">=1.18,<1.23" - -[[package]] -name = "numpy" -version = "1.22.4" -description = "NumPy is the fundamental package for array computing with Python." -category = "main" -optional = false -python-versions = ">=3.8" - -[[package]] -name = "packaging" -version = "21.3" -description = "Core utilities for Python packages" -category = "main" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" - -[[package]] -name = "pandas" -version = "1.4.3" -description = "Powerful data structures for data analysis, time series, and statistics" -category = "main" -optional = false -python-versions = ">=3.8" - -[package.dependencies] -numpy = [ - {version = ">=1.18.5", markers = "platform_machine != \"aarch64\" and platform_machine != \"arm64\" and python_version < \"3.10\""}, - {version = ">=1.19.2", markers = "platform_machine == \"aarch64\" and python_version < \"3.10\""}, - {version = ">=1.20.0", markers = "platform_machine == \"arm64\" and python_version < \"3.10\""}, - {version = ">=1.21.0", markers = "python_version >= \"3.10\""}, -] -python-dateutil = ">=2.8.1" -pytz = ">=2020.1" - -[package.extras] -test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"] - -[[package]] -name = "parso" -version = "0.8.3" -description = "A Python Parser" -category = "main" -optional = false -python-versions = ">=3.6" - -[package.extras] -qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] -testing = ["docopt", "pytest (<6.0.0)"] - -[[package]] -name = "pathspec" -version = "0.9.0" -description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" - -[[package]] -name = "patiencediff" -version = "0.2.2" -description = "Python implementation of the patiencediff algorithm." -category = "main" -optional = false -python-versions = "*" - -[[package]] -name = "pdbpp" -version = "0.10.3" -description = "pdb++, a drop-in replacement for pdb" -category = "dev" -optional = false -python-versions = "*" - -[package.dependencies] -fancycompleter = ">=0.8" -pygments = "*" -wmctrl = "*" - -[package.extras] -funcsigs = ["funcsigs"] -testing = ["funcsigs", "pytest"] - -[[package]] -name = "pendulum" -version = "2.1.2" -description = "Python datetimes made easy" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[package.dependencies] -python-dateutil = ">=2.6,<3.0" -pytzdata = ">=2020.1" - -[[package]] -name = "pexpect" -version = "4.8.0" -description = "Pexpect allows easy control of interactive console applications." -category = "main" -optional = false -python-versions = "*" - -[package.dependencies] -ptyprocess = ">=0.5" - -[[package]] -name = "pickleshare" -version = "0.7.5" -description = "Tiny 'shelve'-like database with concurrency support" -category = "main" -optional = false -python-versions = "*" - -[[package]] -name = "pillow" -version = "9.2.0" -description = "Python Imaging Library (Fork)" -category = "main" -optional = false -python-versions = ">=3.7" - -[package.extras] -docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinxext-opengraph"] -tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] - -[[package]] -name = "pineappl" -version = "0.5.3" -description = "Python bindings to PineAPPL" -category = "main" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -numpy = ">=1.16.0,<2.0.0" - -[package.extras] -test = ["pytest", "pytest-cov"] -docs = ["sphinx", "sphinx-rtd-theme", "sphinxcontrib-bibtex", "nbsphinx"] - -[[package]] -name = "pkgconfig" -version = "1.5.5" -description = "Interface Python with pkg-config" -category = "main" -optional = false -python-versions = ">=3.3,<4.0" - -[[package]] -name = "platformdirs" -version = "2.5.2" -description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" -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)"] - -[[package]] -name = "pluggy" -version = "0.13.1" -description = "plugin and hook calling mechanisms for python" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[package.extras] -dev = ["pre-commit", "tox"] - -[[package]] -name = "prompt-toolkit" -version = "3.0.30" -description = "Library for building powerful interactive command lines in Python" -category = "main" -optional = false -python-versions = ">=3.6.2" - -[package.dependencies] -wcwidth = "*" - -[[package]] -name = "ptyprocess" -version = "0.7.0" -description = "Run a subprocess in a pseudo terminal" -category = "main" -optional = false -python-versions = "*" - -[[package]] -name = "pure-eval" -version = "0.2.2" -description = "Safely evaluate AST nodes without side effects" -category = "main" -optional = false -python-versions = "*" - -[package.extras] -tests = ["pytest"] - -[[package]] -name = "py" -version = "1.11.0" -description = "library with cross-python path, ini-parsing, io, code, log facilities" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[[package]] -name = "pybtex" -version = "0.24.0" -description = "A BibTeX-compatible bibliography processor in Python" -category = "main" -optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*" - -[package.dependencies] -latexcodec = ">=1.0.4" -PyYAML = ">=3.01" -six = "*" - -[package.extras] -test = ["pytest"] - -[[package]] -name = "pybtex-docutils" -version = "1.0.2" -description = "A docutils backend for pybtex." -category = "main" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -docutils = ">=0.8" -pybtex = ">=0.16" - -[[package]] -name = "pycparser" -version = "2.21" -description = "C parser in Python" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[[package]] -name = "pygit2" -version = "1.9.2" -description = "Python bindings for libgit2." -category = "main" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -cffi = ">=1.9.1" - -[[package]] -name = "pygments" -version = "2.12.0" -description = "Pygments is a syntax highlighting package written in Python." -category = "main" -optional = false -python-versions = ">=3.6" - -[[package]] -name = "pylint" -version = "2.14.5" -description = "python code static checker" -category = "dev" -optional = false -python-versions = ">=3.7.2" - -[package.dependencies] -astroid = ">=2.11.6,<=2.12.0-dev0" -colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} -dill = ">=0.2" -isort = ">=4.2.5,<6" -mccabe = ">=0.6,<0.8" -platformdirs = ">=2.2.0" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -tomlkit = ">=0.10.1" -typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} - -[package.extras] -spelling = ["pyenchant (>=3.2,<4.0)"] -testutils = ["gitpython (>3)"] - -[[package]] -name = "pyparsing" -version = "3.0.9" -description = "pyparsing module - Classes and methods to define and execute parsing grammars" -category = "main" -optional = false -python-versions = ">=3.6.8" - -[package.extras] -diagrams = ["railroad-diagrams", "jinja2"] - -[[package]] -name = "pyreadline" -version = "2.1" -description = "A python implmementation of GNU readline." -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "pyrepl" -version = "0.9.0" -description = "A library for building flexible command line interfaces" -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "pytest" -version = "5.4.3" -description = "pytest: simple powerful testing with Python" -category = "dev" -optional = false -python-versions = ">=3.5" - -[package.dependencies] -atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} -attrs = ">=17.4.0" -colorama = {version = "*", markers = "sys_platform == \"win32\""} -more-itertools = ">=4.0.0" -packaging = "*" -pluggy = ">=0.12,<1.0" -py = ">=1.5.0" -wcwidth = "*" - -[package.extras] -checkqa-mypy = ["mypy (==v0.761)"] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] - -[[package]] -name = "python-dateutil" -version = "2.8.2" -description = "Extensions to the standard Python datetime module" -category = "main" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" - -[package.dependencies] -six = ">=1.5" - -[[package]] -name = "pytz" -version = "2022.1" -description = "World timezone definitions, modern and historical" -category = "main" -optional = false -python-versions = "*" - -[[package]] -name = "pytzdata" -version = "2020.1" -description = "The Olson timezone database for Python." -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[[package]] -name = "pyyaml" -version = "6.0" -description = "YAML parser and emitter for Python" -category = "main" -optional = false -python-versions = ">=3.6" - -[[package]] -name = "requests" -version = "2.28.1" -description = "Python HTTP for Humans." -category = "main" -optional = false -python-versions = ">=3.7, <4" - -[package.dependencies] -certifi = ">=2017.4.17" -charset-normalizer = ">=2,<3" -idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<1.27" - -[package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"] - -[[package]] -name = "rich" -version = "10.16.2" -description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" -category = "main" -optional = false -python-versions = ">=3.6.2,<4.0.0" - -[package.dependencies] -colorama = ">=0.4.0,<0.5.0" -commonmark = ">=0.9.0,<0.10.0" -pygments = ">=2.6.0,<3.0.0" - -[package.extras] -jupyter = ["ipywidgets (>=7.5.1,<8.0.0)"] - -[[package]] -name = "scipy" -version = "1.8.1" -description = "SciPy: Scientific Library for Python" -category = "main" -optional = false -python-versions = ">=3.8,<3.11" - -[package.dependencies] -numpy = ">=1.17.3,<1.25.0" - -[[package]] -name = "setuptools-scm" -version = "7.0.5" -description = "the blessed package to manage your versions by scm tags" -category = "main" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -packaging = ">=20.0" -tomli = ">=1.0.0" -typing-extensions = "*" - -[package.extras] -test = ["pytest (>=6.2)", "virtualenv (>20)"] -toml = ["setuptools (>=42)"] - -[[package]] -name = "six" -version = "1.16.0" -description = "Python 2 and 3 compatibility utilities" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" - -[[package]] -name = "snowballstemmer" -version = "2.2.0" -description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -category = "main" -optional = false -python-versions = "*" - -[[package]] -name = "sphinx" -version = "4.5.0" -description = "Python documentation generator" -category = "main" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -alabaster = ">=0.7,<0.8" -babel = ">=1.3" -colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""} -docutils = ">=0.14,<0.18" -imagesize = "*" -importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} -Jinja2 = ">=2.3" -packaging = "*" -Pygments = ">=2.0" -requests = ">=2.5.0" -snowballstemmer = ">=1.1" -sphinxcontrib-applehelp = "*" -sphinxcontrib-devhelp = "*" -sphinxcontrib-htmlhelp = ">=2.0.0" -sphinxcontrib-jsmath = "*" -sphinxcontrib-qthelp = "*" -sphinxcontrib-serializinghtml = ">=1.1.5" - -[package.extras] -docs = ["sphinxcontrib-websupport"] -lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.931)", "docutils-stubs", "types-typed-ast", "types-requests"] -test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"] - -[[package]] -name = "sphinx-rtd-theme" -version = "1.0.0" -description = "Read the Docs theme for Sphinx" -category = "main" -optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" - -[package.dependencies] -docutils = "<0.18" -sphinx = ">=1.6" - -[package.extras] -dev = ["transifex-client", "sphinxcontrib-httpdomain", "bump2version"] - -[[package]] -name = "sphinxcontrib-applehelp" -version = "1.0.2" -description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" -category = "main" -optional = false -python-versions = ">=3.5" - -[package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-bibtex" -version = "2.4.2" -description = "Sphinx extension for BibTeX style citations." -category = "main" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -docutils = ">=0.8" -pybtex = ">=0.24" -pybtex-docutils = ">=1.0.0" -Sphinx = ">=2.1" - -[[package]] -name = "sphinxcontrib-devhelp" -version = "1.0.2" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." -category = "main" -optional = false -python-versions = ">=3.5" - -[package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-htmlhelp" -version = "2.0.0" -description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -category = "main" -optional = false -python-versions = ">=3.6" - -[package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] -test = ["pytest", "html5lib"] - -[[package]] -name = "sphinxcontrib-jsmath" -version = "1.0.1" -description = "A sphinx extension which renders display math in HTML via JavaScript" -category = "main" -optional = false -python-versions = ">=3.5" - -[package.extras] -test = ["pytest", "flake8", "mypy"] - -[[package]] -name = "sphinxcontrib-qthelp" -version = "1.0.3" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." -category = "main" -optional = false -python-versions = ">=3.5" - -[package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-serializinghtml" -version = "1.1.5" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." -category = "main" -optional = false -python-versions = ">=3.5" - -[package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] -test = ["pytest"] - -[[package]] -name = "sqlalchemy" -version = "1.4.39" -description = "Database Abstraction Library" -category = "main" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" - -[package.dependencies] -greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"} - -[package.extras] -aiomysql = ["greenlet (!=0.4.17)", "aiomysql"] -aiosqlite = ["typing_extensions (!=3.10.0.1)", "greenlet (!=0.4.17)", "aiosqlite"] -asyncio = ["greenlet (!=0.4.17)"] -asyncmy = ["greenlet (!=0.4.17)", "asyncmy (>=0.2.3,!=0.2.4)"] -mariadb_connector = ["mariadb (>=1.0.1)"] -mssql = ["pyodbc"] -mssql_pymssql = ["pymssql"] -mssql_pyodbc = ["pyodbc"] -mypy = ["sqlalchemy2-stubs", "mypy (>=0.910)"] -mysql = ["mysqlclient (>=1.4.0,<2)", "mysqlclient (>=1.4.0)"] -mysql_connector = ["mysql-connector-python"] -oracle = ["cx_oracle (>=7,<8)", "cx_oracle (>=7)"] -postgresql = ["psycopg2 (>=2.7)"] -postgresql_asyncpg = ["greenlet (!=0.4.17)", "asyncpg"] -postgresql_pg8000 = ["pg8000 (>=1.16.6,!=1.29.0)"] -postgresql_psycopg2binary = ["psycopg2-binary"] -postgresql_psycopg2cffi = ["psycopg2cffi"] -pymysql = ["pymysql (<1)", "pymysql"] -sqlcipher = ["sqlcipher3-binary"] - -[[package]] -name = "stack-data" -version = "0.3.0" -description = "Extract data from python stack frames and tracebacks for informative displays" -category = "main" -optional = false -python-versions = "*" - -[package.dependencies] -asttokens = "*" -executing = "*" -pure-eval = "*" - -[package.extras] -tests = ["pytest", "typeguard", "pygments", "littleutils", "cython"] - -[[package]] -name = "tomli" -version = "1.2.3" -description = "A lil' TOML parser" -category = "main" -optional = false -python-versions = ">=3.6" - -[[package]] -name = "tomlkit" -version = "0.11.1" -description = "Style preserving TOML library" -category = "dev" -optional = false -python-versions = ">=3.6,<4.0" - -[[package]] -name = "tqdm" -version = "4.64.0" -description = "Fast, Extensible Progress Meter" -category = "main" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" - -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} - -[package.extras] -dev = ["py-make (>=0.1.0)", "twine", "wheel"] -notebook = ["ipywidgets (>=6)"] -slack = ["slack-sdk"] -telegram = ["requests"] - -[[package]] -name = "traitlets" -version = "5.3.0" -description = "" -category = "main" -optional = false -python-versions = ">=3.7" - -[package.extras] -test = ["pre-commit", "pytest"] - -[[package]] -name = "typing-extensions" -version = "4.3.0" -description = "Backported and Experimental Type Hints for Python 3.7+" -category = "main" -optional = false -python-versions = ">=3.7" - -[[package]] -name = "urllib3" -version = "1.26.10" -description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" -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"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] - -[[package]] -name = "wcwidth" -version = "0.2.5" -description = "Measures the displayed width of unicode strings in a terminal" -category = "main" -optional = false -python-versions = "*" - -[[package]] -name = "wmctrl" -version = "0.4" -description = "A tool to programmatically control windows inside X" -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "wrapt" -version = "1.14.1" -description = "Module for decorators, wrappers and monkey patching." -category = "dev" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" - -[[package]] -name = "yadism" -version = "0.11.2" -description = "Yet Another Deep-Inelastic Scattering Module" -category = "main" -optional = false -python-versions = ">=3.8,<3.11" - -[package.dependencies] -eko = ">=0.9.4,<0.10.0" -LeProHQ = ">=0.2.3,<0.3.0" -numba = ">=0.55.0,<0.56.0" -numpy = ">=1.21.0,<2.0.0" -pandas = ">=1.3.0,<2.0.0" -rich = ">=10.6.0,<11.0.0" -scipy = ">=1.7.0,<2.0.0" - -[package.extras] -docs = ["Sphinx (>=4.1.1,<5.0.0)", "nbsphinx (>=0.8.6,<0.9.0)", "recommonmark (>=0.7.1,<0.8.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-bibtex (>=2.3.0,<3.0.0)", "sphinxcontrib-details-directive (>=0.1.0,<0.2.0)"] -mark = ["a3b2bbc3ced97675ac3a71df45f55ba (>=6.4.0,<7.0.0)", "banana-hep (>=0.6.4,<0.7.0)", "sqlalchemy (>=1.4.21,<2.0.0)"] -pineappl = ["pineappl (==0.5.0)"] - -[[package]] -name = "zipp" -version = "3.8.1" -description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" -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)"] - -[extras] -docs = ["Sphinx", "sphinx-rtd-theme", "sphinxcontrib-bibtex"] - -[metadata] -lock-version = "1.1" -python-versions = ">=3.8,<3.11" -content-hash = "a883e68b04e46f6e6e1ff9cb35ab5a307cf6456133232841de6919ca0debcf3e" - -[metadata.files] -a3b2bbc3ced97675ac3a71df45f55ba = [ - {file = "a3b2bbc3ced97675ac3a71df45f55ba-6.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d47714ce84c5cd94cc5512d5683b39c5cd681e13ad086961770b4eb093e11154"}, - {file = "a3b2bbc3ced97675ac3a71df45f55ba-6.4.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ee7ba0247c67a8357685e5ad415df8b2322baf7eadd53120819a6c8d35484fe"}, - {file = "a3b2bbc3ced97675ac3a71df45f55ba-6.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a01f7629db6684f9b231e60f98426b70fc66d45efa6a80ba26c6cacec5a95a7b"}, - {file = "a3b2bbc3ced97675ac3a71df45f55ba-6.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0eaca66dafb9ab775e6aa2bd3e94e11f70b1bd28fa636fb047b917653b77ad4"}, - {file = "a3b2bbc3ced97675ac3a71df45f55ba-6.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b3aab2121fa218ab30fa7ce72452646f74c183c00639d8d865a4abec57e92f2"}, - {file = "a3b2bbc3ced97675ac3a71df45f55ba-6.4.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0147a1d9dab10f8b23ef5fc97f570ce044e9f8409bfee2fbce551180fafcbb2e"}, - {file = "a3b2bbc3ced97675ac3a71df45f55ba-6.4.0.tar.gz", hash = "sha256:1bd60035f9862db1130be035f631c2cfcf90d2ee0cfc6f33ce29fbf8a70b5a04"}, -] -alabaster = [ - {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, - {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, -] -appdirs = [ - {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, - {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, -] -appnope = [ - {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, - {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, -] -astroid = [ - {file = "astroid-2.11.7-py3-none-any.whl", hash = "sha256:86b0a340a512c65abf4368b80252754cda17c02cdbbd3f587dddf98112233e7b"}, - {file = "astroid-2.11.7.tar.gz", hash = "sha256:bb24615c77f4837c707669d16907331374ae8a964650a66999da3f5ca68dc946"}, -] -asttokens = [ - {file = "asttokens-2.0.5-py2.py3-none-any.whl", hash = "sha256:0844691e88552595a6f4a4281a9f7f79b8dd45ca4ccea82e5e05b4bbdb76705c"}, - {file = "asttokens-2.0.5.tar.gz", hash = "sha256:9a54c114f02c7a9480d56550932546a3f1fe71d8a02f1bc7ccd0ee3ee35cf4d5"}, -] -atomicwrites = [ - {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, -] -attrs = [ - {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, - {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, -] -babel = [ - {file = "Babel-2.10.3-py3-none-any.whl", hash = "sha256:ff56f4892c1c4bf0d814575ea23471c230d544203c7748e8c68f0089478d48eb"}, - {file = "Babel-2.10.3.tar.gz", hash = "sha256:7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51"}, -] -backcall = [ - {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, - {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, -] -banana-hep = [ - {file = "banana-hep-0.6.5.tar.gz", hash = "sha256:748923aae41d5be0e117516698e523935d5f68146b53a8565372c7489137b0f1"}, - {file = "banana_hep-0.6.5-py3-none-any.whl", hash = "sha256:6a8da394b0492cdd11f454a73c81727aff1bc96b206f1ca109cecdd087b980cd"}, -] -black = [ - {file = "black-21.12b0-py3-none-any.whl", hash = "sha256:a615e69ae185e08fdd73e4715e260e2479c861b5740057fde6e8b4e3b7dd589f"}, - {file = "black-21.12b0.tar.gz", hash = "sha256:77b80f693a569e2e527958459634f18df9b0ba2625ba4e0c2d5da5be42e6f2b3"}, -] -breezy = [ - {file = "breezy-3.2.2.tar.gz", hash = "sha256:187a6e45208dd05d81750736720c83710cf48094f547ec4081c571259559a4d5"}, -] -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"}, -] -colorama = [ - {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, - {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, -] -commonmark = [ - {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"}, - {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"}, -] -configobj = [ - {file = "configobj-5.0.6.tar.gz", hash = "sha256:a2f5650770e1c87fb335af19a9b7eb73fc05ccf22144eb68db7d00cd2bcb0902"}, -] -cycler = [ - {file = "cycler-0.11.0-py3-none-any.whl", hash = "sha256:3a27e95f763a428a739d2add979fa7494c912a32c17c4c38c4d5f082cad165a3"}, - {file = "cycler-0.11.0.tar.gz", hash = "sha256:9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f"}, -] -decorator = [ - {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, - {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, -] -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"}, -] -docutils = [ - {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, - {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, -] -dulwich = [ - {file = "dulwich-0.20.45-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:9b689b05bc7baa5cb20ebff54291085b598a9bdf7caeab23daf93b46421d96ff"}, - {file = "dulwich-0.20.45-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7cf5171034d9d61b928bd5f9c509000e895d1ba29bd6ea850b9e4f93fca0f7"}, - {file = "dulwich-0.20.45-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:22d433ba9c776f2b0e19b1186e01e25ca286175e20f4ac422141db94eeaac08b"}, - {file = "dulwich-0.20.45-cp310-cp310-win_amd64.whl", hash = "sha256:6e02babb44bdad17b6c9c50b4f9df42f6e511e3a51555ac07dd85ec904efe0b1"}, - {file = "dulwich-0.20.45-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:042bc206764968b17338e32c52bb6a116154eb87a63651971946917dfa37a359"}, - {file = "dulwich-0.20.45-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e405ac9426288ca782c45e066f816d878b4a529acf4d4b0b2a5bb45a804dfec"}, - {file = "dulwich-0.20.45-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c8c0fc7d2e3b0ad6a4faadf96f0626fa50935ababfd774b9b94edaa28f0668ec"}, - {file = "dulwich-0.20.45-cp36-cp36m-win_amd64.whl", hash = "sha256:35015e43207752cf7924860e85a3c2290c652c0c3ee81e7c95c52d34638f605d"}, - {file = "dulwich-0.20.45-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:d89f53a739ac3394b5ef2f178480569b7d36d4fe7b4bb49678582914530ce35b"}, - {file = "dulwich-0.20.45-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abb1b0e1e50192ce7204c4e14f24c989c5920c56de908365f4e66c6e3458945"}, - {file = "dulwich-0.20.45-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:eb4189d72a0e2f3070e2abdbd10a05c0e62355cd5496761d6e68f1e865ac6fad"}, - {file = "dulwich-0.20.45-cp37-cp37m-win_amd64.whl", hash = "sha256:efe46167eb02ba85d9c2e993635e7543e1e04bb3261112e9d54daff2385ae5df"}, - {file = "dulwich-0.20.45-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:3f2c137a0003e80e384d116e65b453f8a704c2d393c30a47b447764e7f9c05a1"}, - {file = "dulwich-0.20.45-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65334bd7a1d91054516a49f86343e9c2549740bbddebcbb4763c8aacf2aac48c"}, - {file = "dulwich-0.20.45-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5e41044ac51a4b3454d67e5f691808540470deeb6a852d7c5c6ca44c48b4cdc3"}, - {file = "dulwich-0.20.45-cp38-cp38-win_amd64.whl", hash = "sha256:d8b6aae7af8edbfac8038e1777ae820efac33c7c22a8025d3254bbd53ec725b5"}, - {file = "dulwich-0.20.45-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:bb75268cec2f3ae6f6b7addbc0db50db2e9e42b2ad8364e74b9f5b17ab0053b5"}, - {file = "dulwich-0.20.45-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b3f64870f2f206dda3308cb73563f5f59fdc084179271651a0488d12ab4185b9"}, - {file = "dulwich-0.20.45-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:49852f12c1e1d50039f927e9fdee1bd00a9b428c31b078ba5ba9fc1cf88e9d3e"}, - {file = "dulwich-0.20.45-cp39-cp39-win_amd64.whl", hash = "sha256:3136bcaf7508522a2aa63f856743f06129261bc5a03331aa6a0654fa6d04a4ae"}, - {file = "dulwich-0.20.45.tar.gz", hash = "sha256:70710dd9ca2a442190c7e506892db074c318ac762e221f7529b8ce34802041b7"}, -] -eko = [ - {file = "eko-0.9.4-py3-none-any.whl", hash = "sha256:5bdfa3bf718f3670706ce0644716ca51699804d3dcca5b2dc6264f8b9bcdb7e8"}, - {file = "eko-0.9.4.tar.gz", hash = "sha256:c2325284a391cdd9119eb991a243df50a6e5de3f8bee7faae19d27c83278507a"}, -] -executing = [ - {file = "executing-0.8.3-py2.py3-none-any.whl", hash = "sha256:d1eef132db1b83649a3905ca6dd8897f71ac6f8cac79a7e58a1a09cf137546c9"}, - {file = "executing-0.8.3.tar.gz", hash = "sha256:c6554e21c6b060590a6d3be4b82fb78f8f0194d809de5ea7df1c093763311501"}, -] -fancycompleter = [ - {file = "fancycompleter-0.9.1-py3-none-any.whl", hash = "sha256:dd076bca7d9d524cc7f25ec8f35ef95388ffef9ef46def4d3d25e9b044ad7080"}, - {file = "fancycompleter-0.9.1.tar.gz", hash = "sha256:09e0feb8ae242abdfd7ef2ba55069a46f011814a80fe5476be48f51b00247272"}, -] -fastbencode = [ - {file = "fastbencode-0.0.9.tar.gz", hash = "sha256:a508632c645f2e3ffbb4984cb544035c8946d6fec8cfe0aec5e556340773ce9c"}, -] -fonttools = [ - {file = "fonttools-4.34.4-py3-none-any.whl", hash = "sha256:d73f25b283cd8033367451122aa868a23de0734757a01984e4b30b18b9050c72"}, - {file = "fonttools-4.34.4.zip", hash = "sha256:9a1c52488045cd6c6491fd07711a380f932466e317cb8e016fc4e99dc7eac2f0"}, -] -greenlet = [ - {file = "greenlet-1.1.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:58df5c2a0e293bf665a51f8a100d3e9956febfbf1d9aaf8c0677cf70218910c6"}, - {file = "greenlet-1.1.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:aec52725173bd3a7b56fe91bc56eccb26fbdff1386ef123abb63c84c5b43b63a"}, - {file = "greenlet-1.1.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:833e1551925ed51e6b44c800e71e77dacd7e49181fdc9ac9a0bf3714d515785d"}, - {file = "greenlet-1.1.2-cp27-cp27m-win32.whl", hash = "sha256:aa5b467f15e78b82257319aebc78dd2915e4c1436c3c0d1ad6f53e47ba6e2713"}, - {file = "greenlet-1.1.2-cp27-cp27m-win_amd64.whl", hash = "sha256:40b951f601af999a8bf2ce8c71e8aaa4e8c6f78ff8afae7b808aae2dc50d4c40"}, - {file = "greenlet-1.1.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:95e69877983ea39b7303570fa6760f81a3eec23d0e3ab2021b7144b94d06202d"}, - {file = "greenlet-1.1.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:356b3576ad078c89a6107caa9c50cc14e98e3a6c4874a37c3e0273e4baf33de8"}, - {file = "greenlet-1.1.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:8639cadfda96737427330a094476d4c7a56ac03de7265622fcf4cfe57c8ae18d"}, - {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97e5306482182170ade15c4b0d8386ded995a07d7cc2ca8f27958d34d6736497"}, - {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e6a36bb9474218c7a5b27ae476035497a6990e21d04c279884eb10d9b290f1b1"}, - {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abb7a75ed8b968f3061327c433a0fbd17b729947b400747c334a9c29a9af6c58"}, - {file = "greenlet-1.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b336501a05e13b616ef81ce329c0e09ac5ed8c732d9ba7e3e983fcc1a9e86965"}, - {file = "greenlet-1.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:14d4f3cd4e8b524ae9b8aa567858beed70c392fdec26dbdb0a8a418392e71708"}, - {file = "greenlet-1.1.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:17ff94e7a83aa8671a25bf5b59326ec26da379ace2ebc4411d690d80a7fbcf23"}, - {file = "greenlet-1.1.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9f3cba480d3deb69f6ee2c1825060177a22c7826431458c697df88e6aeb3caee"}, - {file = "greenlet-1.1.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:fa877ca7f6b48054f847b61d6fa7bed5cebb663ebc55e018fda12db09dcc664c"}, - {file = "greenlet-1.1.2-cp35-cp35m-win32.whl", hash = "sha256:7cbd7574ce8e138bda9df4efc6bf2ab8572c9aff640d8ecfece1b006b68da963"}, - {file = "greenlet-1.1.2-cp35-cp35m-win_amd64.whl", hash = "sha256:903bbd302a2378f984aef528f76d4c9b1748f318fe1294961c072bdc7f2ffa3e"}, - {file = "greenlet-1.1.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:049fe7579230e44daef03a259faa24511d10ebfa44f69411d99e6a184fe68073"}, - {file = "greenlet-1.1.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:dd0b1e9e891f69e7675ba5c92e28b90eaa045f6ab134ffe70b52e948aa175b3c"}, - {file = "greenlet-1.1.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:7418b6bfc7fe3331541b84bb2141c9baf1ec7132a7ecd9f375912eca810e714e"}, - {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9d29ca8a77117315101425ec7ec2a47a22ccf59f5593378fc4077ac5b754fce"}, - {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21915eb821a6b3d9d8eefdaf57d6c345b970ad722f856cd71739493ce003ad08"}, - {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eff9d20417ff9dcb0d25e2defc2574d10b491bf2e693b4e491914738b7908168"}, - {file = "greenlet-1.1.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b8c008de9d0daba7b6666aa5bbfdc23dcd78cafc33997c9b7741ff6353bafb7f"}, - {file = "greenlet-1.1.2-cp36-cp36m-win32.whl", hash = "sha256:32ca72bbc673adbcfecb935bb3fb1b74e663d10a4b241aaa2f5a75fe1d1f90aa"}, - {file = "greenlet-1.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:f0214eb2a23b85528310dad848ad2ac58e735612929c8072f6093f3585fd342d"}, - {file = "greenlet-1.1.2-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:b92e29e58bef6d9cfd340c72b04d74c4b4e9f70c9fa7c78b674d1fec18896dc4"}, - {file = "greenlet-1.1.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:fdcec0b8399108577ec290f55551d926d9a1fa6cad45882093a7a07ac5ec147b"}, - {file = "greenlet-1.1.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:93f81b134a165cc17123626ab8da2e30c0455441d4ab5576eed73a64c025b25c"}, - {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e12bdc622676ce47ae9abbf455c189e442afdde8818d9da983085df6312e7a1"}, - {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c790abda465726cfb8bb08bd4ca9a5d0a7bd77c7ac1ca1b839ad823b948ea28"}, - {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f276df9830dba7a333544bd41070e8175762a7ac20350786b322b714b0e654f5"}, - {file = "greenlet-1.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c5d5b35f789a030ebb95bff352f1d27a93d81069f2adb3182d99882e095cefe"}, - {file = "greenlet-1.1.2-cp37-cp37m-win32.whl", hash = "sha256:64e6175c2e53195278d7388c454e0b30997573f3f4bd63697f88d855f7a6a1fc"}, - {file = "greenlet-1.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b11548073a2213d950c3f671aa88e6f83cda6e2fb97a8b6317b1b5b33d850e06"}, - {file = "greenlet-1.1.2-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:9633b3034d3d901f0a46b7939f8c4d64427dfba6bbc5a36b1a67364cf148a1b0"}, - {file = "greenlet-1.1.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:eb6ea6da4c787111adf40f697b4e58732ee0942b5d3bd8f435277643329ba627"}, - {file = "greenlet-1.1.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:f3acda1924472472ddd60c29e5b9db0cec629fbe3c5c5accb74d6d6d14773478"}, - {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e859fcb4cbe93504ea18008d1df98dee4f7766db66c435e4882ab35cf70cac43"}, - {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00e44c8afdbe5467e4f7b5851be223be68adb4272f44696ee71fe46b7036a711"}, - {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec8c433b3ab0419100bd45b47c9c8551248a5aee30ca5e9d399a0b57ac04651b"}, - {file = "greenlet-1.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2bde6792f313f4e918caabc46532aa64aa27a0db05d75b20edfc5c6f46479de2"}, - {file = "greenlet-1.1.2-cp38-cp38-win32.whl", hash = "sha256:288c6a76705dc54fba69fbcb59904ae4ad768b4c768839b8ca5fdadec6dd8cfd"}, - {file = "greenlet-1.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:8d2f1fb53a421b410751887eb4ff21386d119ef9cde3797bf5e7ed49fb51a3b3"}, - {file = "greenlet-1.1.2-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:166eac03e48784a6a6e0e5f041cfebb1ab400b394db188c48b3a84737f505b67"}, - {file = "greenlet-1.1.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:572e1787d1460da79590bf44304abbc0a2da944ea64ec549188fa84d89bba7ab"}, - {file = "greenlet-1.1.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:be5f425ff1f5f4b3c1e33ad64ab994eed12fc284a6ea71c5243fd564502ecbe5"}, - {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1692f7d6bc45e3200844be0dba153612103db241691088626a33ff1f24a0d88"}, - {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7227b47e73dedaa513cdebb98469705ef0d66eb5a1250144468e9c3097d6b59b"}, - {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ff61ff178250f9bb3cd89752df0f1dd0e27316a8bd1465351652b1b4a4cdfd3"}, - {file = "greenlet-1.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0051c6f1f27cb756ffc0ffbac7d2cd48cb0362ac1736871399a739b2885134d3"}, - {file = "greenlet-1.1.2-cp39-cp39-win32.whl", hash = "sha256:f70a9e237bb792c7cc7e44c531fd48f5897961701cdaa06cf22fc14965c496cf"}, - {file = "greenlet-1.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:013d61294b6cd8fe3242932c1c5e36e5d1db2c8afb58606c5a67efce62c1f5fd"}, - {file = "greenlet-1.1.2.tar.gz", hash = "sha256:e30f5ea4ae2346e62cedde8794a56858a67b878dd79f7df76a0767e356b1744a"}, -] -idna = [ - {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, - {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, -] -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"}, -] -ipython = [ - {file = "ipython-8.4.0-py3-none-any.whl", hash = "sha256:7ca74052a38fa25fe9bedf52da0be7d3fdd2fb027c3b778ea78dfe8c212937d1"}, - {file = "ipython-8.4.0.tar.gz", hash = "sha256:f2db3a10254241d9b447232cec8b424847f338d9d36f9a577a6192c332a46abd"}, -] -isort = [ - {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, - {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, -] -jedi = [ - {file = "jedi-0.18.1-py2.py3-none-any.whl", hash = "sha256:637c9635fcf47945ceb91cd7f320234a7be540ded6f3e99a50cb6febdfd1ba8d"}, - {file = "jedi-0.18.1.tar.gz", hash = "sha256:74137626a64a99c8eb6ae5832d99b3bdd7d29a3850fe2aa80a4126b2a7d949ab"}, -] -jinja2 = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, -] -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-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.tar.gz", hash = "sha256:d41997519fcba4a1e46eb4a2fe31bc12f0ff957b2b81bac28db24744f333e955"}, -] -latexcodec = [ - {file = "latexcodec-2.0.1-py2.py3-none-any.whl", hash = "sha256:c277a193638dc7683c4c30f6684e3db728a06efb0dc9cf346db8bd0aa6c5d271"}, - {file = "latexcodec-2.0.1.tar.gz", hash = "sha256:2aa2551c373261cefe2ad3a8953a6d6533e68238d180eb4bb91d7964adb3fe9a"}, -] -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"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, - {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"}, -] -leprohq = [ - {file = "LeProHQ-0.2.3-py3-none-any.whl", hash = "sha256:5dc27db91a554187715996cf9844442549802d505ed189dd501baefbf8735c58"}, -] -lhapdf-management = [ - {file = "lhapdf_management-0.2-py3-none-any.whl", hash = "sha256:7529f1ca5029ab93fb3beeba95a3a6db46f642632c69cdfc5d8bdeb75da82b83"}, - {file = "lhapdf_management-0.2.tar.gz", hash = "sha256:d9999cdf1eda9f90fe0d56d4b7ec1538975d0536594869d088523e66f7c86254"}, -] -llvmlite = [ - {file = "llvmlite-0.38.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a7dd2bd1d6406e7789273e3f8a304ed5d9adcfaa5768052fca7dc233a857be98"}, - {file = "llvmlite-0.38.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7a5e0ed215a576f0f872f47a70b8cb49864e0aefc8586aff5ce83e3bff47bc23"}, - {file = "llvmlite-0.38.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:633c9026eb43b9903cc4ffbc1c7d5293b2e3ad95d06fa9eab0f6ce6ff6ea15b3"}, - {file = "llvmlite-0.38.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b98da8436dbc29013ea301f1fdb0d596ab53bf0ab65c976d96d00bb6faa0b479"}, - {file = "llvmlite-0.38.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0adce1793d66d009c554809f27baeb6258bf13f6fbaa12eff7443500caec25"}, - {file = "llvmlite-0.38.1-cp310-cp310-win32.whl", hash = "sha256:8c64c90a8b0b7b7e1ed1912ba82c1a3f43cf25affbe06aa3c56c84050edee8ac"}, - {file = "llvmlite-0.38.1-cp310-cp310-win_amd64.whl", hash = "sha256:ab070266f0f51304789a6c20d4be91a9e69683ad9bd4861eb89980e8eb613b3a"}, - {file = "llvmlite-0.38.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ed7528b8b85de930b76407e44b080e4f376b7a007c2879749599ff8e2fe32753"}, - {file = "llvmlite-0.38.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7db018da2863034ad9c73c946625637f3a89635bc70576068bab4bd085eea90d"}, - {file = "llvmlite-0.38.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c1e5805c92e049b4956ed01204c6647de6160ab9aefb0d67ea83ca02a1d889a"}, - {file = "llvmlite-0.38.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5559e46c79b4017c3c25edc3b9512d11adc3689b9046120c685b0905c08d48a5"}, - {file = "llvmlite-0.38.1-cp37-cp37m-win32.whl", hash = "sha256:ef9aa574eff2e15f8c47b255da0db5dab326dc7f76384c307ae35490e2d2489a"}, - {file = "llvmlite-0.38.1-cp37-cp37m-win_amd64.whl", hash = "sha256:84d5a0163c172db2b2ae561d2fc0866fbd9f716cf13f92c0d41ca4338e682672"}, - {file = "llvmlite-0.38.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a263252a68d85450110ec1f2b406c0414e49b04a4d216d31c0515ea1d59c3882"}, - {file = "llvmlite-0.38.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:de8bd61480173930f2a029673e7cd0738fbbb5171dfe490340839ad7301d4cf0"}, - {file = "llvmlite-0.38.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fbfbe546394c39db39a6898a51972aa131c8d6b0628517728b350552f58bdc19"}, - {file = "llvmlite-0.38.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c4f26c6c370e134a909ac555a671fa1376e74c69af0208f25c0979472577a9d"}, - {file = "llvmlite-0.38.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f95f455697c44d7c04ef95fdfce04629f48df08a832d0a0d9eb2363186dbb969"}, - {file = "llvmlite-0.38.1-cp38-cp38-win32.whl", hash = "sha256:41e638a71c85a9a4a33f279c4cd812bc2f84122505b1f6ab8984ec7debb8548b"}, - {file = "llvmlite-0.38.1-cp38-cp38-win_amd64.whl", hash = "sha256:5c07d63df4578f31b39b764d3b4291f70157af7f42e171a8884ae7aaf989d1f7"}, - {file = "llvmlite-0.38.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4e11bd9929dcbd55d5eb5cd7b08bf71b0097ea48cc192b69d102a90dd6e9816f"}, - {file = "llvmlite-0.38.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:edfa2c761cfa56cf76e783290d82e117f829bb691d8d90aa375505204888abac"}, - {file = "llvmlite-0.38.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e609f7312a439b53b6f622d99180c3ff6a3e1e4ceca4d18aca1c5b46f4e3664"}, - {file = "llvmlite-0.38.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9f53c3448410cc84d0e1af84dbc0d60ad32779853d40bcc8b1ee3c67ebbe94b1"}, - {file = "llvmlite-0.38.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c8fac4edbadefa4dddf5dc6cca76bc2ae81df211dcd16a6638d60cc41249e56"}, - {file = "llvmlite-0.38.1-cp39-cp39-win32.whl", hash = "sha256:3d76c0fa42390bef56979ed213fbf0150c3fef36f5ea68d3d780d5d725da8c01"}, - {file = "llvmlite-0.38.1-cp39-cp39-win_amd64.whl", hash = "sha256:66462d768c30d5f648ca3361d657b434efa8b09f6cf04d6b6eae66e62e993644"}, - {file = "llvmlite-0.38.1.tar.gz", hash = "sha256:0622a86301fcf81cc50d7ed5b4bebe992c030580d413a8443b328ed4f4d82561"}, -] -lz4 = [ - {file = "lz4-3.1.10-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:3fcd913191a34c59ff07a5b8594d3b61213ae0044bba618f74202722a2efbe2f"}, - {file = "lz4-3.1.10-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:6e72e3bc14230db9baf56b05ac15ddc38a9246c414a95ca725af8d5d2226944a"}, - {file = "lz4-3.1.10-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:a8991ac13743b09cf3d3d69c3ee6991c4e636886dbcdac584a672e38ba14d36f"}, - {file = "lz4-3.1.10-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:6d16fd11e6998d4b48771e345eefb5a800a41fdf7df29ffc6b4cd36fea213172"}, - {file = "lz4-3.1.10-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:dcda8a5fb286251422b271e785b340d551e42f2ffd10953d6aa77a12263d0868"}, - {file = "lz4-3.1.10-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f38880f66f8fbb8fa94cf08a2120f7bee7bf9ad35cf85259b1c3598ba17e5f9e"}, - {file = "lz4-3.1.10-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:be542ae2466597f31fe37ff5a8a29b124c9b4dc5fef7effa80b194aa887c01ef"}, - {file = "lz4-3.1.10-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:1587538466ecb8c18a58425a9513321e218c9518198d3e3b1897876686edd5c7"}, - {file = "lz4-3.1.10-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:c716eb1cd08c966952c7d8af481b4407db29fd63f151bc23b3783e8b87ddce20"}, - {file = "lz4-3.1.10-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:d36d0cc0942ef2b30ed69a64ded5e10e64061b2f8e8011c99ffea8a3f8d429c5"}, - {file = "lz4-3.1.10-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:48c67beaa312d7f3db66c78cd3d8b4332512489af8ebd9783d4ec735e3337923"}, - {file = "lz4-3.1.10-cp38-cp38-manylinux1_i686.whl", hash = "sha256:dcdaf01dc092c192576626a84c9d2fdc79c0a9b03735af9a7c153fda49ac4cfc"}, - {file = "lz4-3.1.10-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:b089376694da9dfeb7ce3c881b3271f8983c70eea4be5a1f692d97c5880ddd04"}, - {file = "lz4-3.1.10-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:e6dc7f003c010f8198d2ebca7d11b141c1b96f7e350c0fdb5f9b52a1966f79ff"}, - {file = "lz4-3.1.10-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:060a69c1b8111c1428a4aabc031e79b861442bf92eeb9a48a97cab9ba4a54194"}, - {file = "lz4-3.1.10-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a987774fa38fa05a0440344ce839c512d1c51908da5d8cabbb0a2c435922477f"}, - {file = "lz4-3.1.10-cp39-cp39-manylinux1_i686.whl", hash = "sha256:72945fab7f3ab486ba92a83c43c65736be9775f1b6d5f25b5f89022c476e2705"}, - {file = "lz4-3.1.10-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:e87619075e2302f4f2ee4dafebd5e3ff47e09420df34bcfe8fc0839af4f5bac5"}, - {file = "lz4-3.1.10-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:bf1d6dee89ef0fe0835529b9248ba503eaa918cfd1aafa02f2ab61587c387068"}, - {file = "lz4-3.1.10-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:59afeb136957ed7a2058e4ef61cb2d0f5894ca866a8bfca5ff43d49a5cbe4aa2"}, - {file = "lz4-3.1.10.tar.gz", hash = "sha256:439e575ecfa9ecffcbd63cfed99baefbe422ab9645b1e82278024d8a21d9720b"}, -] -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"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-win32.whl", hash = "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-win32.whl", hash = "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-win32.whl", hash = "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-win32.whl", hash = "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"}, - {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"}, -] -matplotlib = [ - {file = "matplotlib-3.5.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:03bbb3f5f78836855e127b5dab228d99551ad0642918ccbf3067fcd52ac7ac5e"}, - {file = "matplotlib-3.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:49a5938ed6ef9dda560f26ea930a2baae11ea99e1c2080c8714341ecfda72a89"}, - {file = "matplotlib-3.5.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:77157be0fc4469cbfb901270c205e7d8adb3607af23cef8bd11419600647ceed"}, - {file = "matplotlib-3.5.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5844cea45d804174bf0fac219b4ab50774e504bef477fc10f8f730ce2d623441"}, - {file = "matplotlib-3.5.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c87973ddec10812bddc6c286b88fdd654a666080fbe846a1f7a3b4ba7b11ab78"}, - {file = "matplotlib-3.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a05f2b37222319753a5d43c0a4fd97ed4ff15ab502113e3f2625c26728040cf"}, - {file = "matplotlib-3.5.2-cp310-cp310-win32.whl", hash = "sha256:9776e1a10636ee5f06ca8efe0122c6de57ffe7e8c843e0fb6e001e9d9256ec95"}, - {file = "matplotlib-3.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:b4fedaa5a9aa9ce14001541812849ed1713112651295fdddd640ea6620e6cf98"}, - {file = "matplotlib-3.5.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ee175a571e692fc8ae8e41ac353c0e07259113f4cb063b0ec769eff9717e84bb"}, - {file = "matplotlib-3.5.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e8bda1088b941ead50caabd682601bece983cadb2283cafff56e8fcddbf7d7f"}, - {file = "matplotlib-3.5.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9480842d5aadb6e754f0b8f4ebeb73065ac8be1855baa93cd082e46e770591e9"}, - {file = "matplotlib-3.5.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6c623b355d605a81c661546af7f24414165a8a2022cddbe7380a31a4170fa2e9"}, - {file = "matplotlib-3.5.2-cp37-cp37m-win32.whl", hash = "sha256:a91426ae910819383d337ba0dc7971c7cefdaa38599868476d94389a329e599b"}, - {file = "matplotlib-3.5.2-cp37-cp37m-win_amd64.whl", hash = "sha256:c4b82c2ae6d305fcbeb0eb9c93df2602ebd2f174f6e8c8a5d92f9445baa0c1d3"}, - {file = "matplotlib-3.5.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ebc27ad11df3c1661f4677a7762e57a8a91dd41b466c3605e90717c9a5f90c82"}, - {file = "matplotlib-3.5.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a32ea6e12e80dedaca2d4795d9ed40f97bfa56e6011e14f31502fdd528b9c89"}, - {file = "matplotlib-3.5.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2a0967d4156adbd0d46db06bc1a877f0370bce28d10206a5071f9ecd6dc60b79"}, - {file = "matplotlib-3.5.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2b696699386766ef171a259d72b203a3c75d99d03ec383b97fc2054f52e15cf"}, - {file = "matplotlib-3.5.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7f409716119fa39b03da3d9602bd9b41142fab7a0568758cd136cd80b1bf36c8"}, - {file = "matplotlib-3.5.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b8d3f4e71e26307e8c120b72c16671d70c5cd08ae412355c11254aa8254fb87f"}, - {file = "matplotlib-3.5.2-cp38-cp38-win32.whl", hash = "sha256:b6c63cd01cad0ea8704f1fd586e9dc5777ccedcd42f63cbbaa3eae8dd41172a1"}, - {file = "matplotlib-3.5.2-cp38-cp38-win_amd64.whl", hash = "sha256:75c406c527a3aa07638689586343f4b344fcc7ab1f79c396699eb550cd2b91f7"}, - {file = "matplotlib-3.5.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4a44cdfdb9d1b2f18b1e7d315eb3843abb097869cd1ef89cfce6a488cd1b5182"}, - {file = "matplotlib-3.5.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3d8e129af95b156b41cb3be0d9a7512cc6d73e2b2109f82108f566dbabdbf377"}, - {file = "matplotlib-3.5.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:364e6bca34edc10a96aa3b1d7cd76eb2eea19a4097198c1b19e89bee47ed5781"}, - {file = "matplotlib-3.5.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea75df8e567743207e2b479ba3d8843537be1c146d4b1e3e395319a4e1a77fe9"}, - {file = "matplotlib-3.5.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:44c6436868186564450df8fd2fc20ed9daaef5caad699aa04069e87099f9b5a8"}, - {file = "matplotlib-3.5.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7d7705022df2c42bb02937a2a824f4ec3cca915700dd80dc23916af47ff05f1a"}, - {file = "matplotlib-3.5.2-cp39-cp39-win32.whl", hash = "sha256:ee0b8e586ac07f83bb2950717e66cb305e2859baf6f00a9c39cc576e0ce9629c"}, - {file = "matplotlib-3.5.2-cp39-cp39-win_amd64.whl", hash = "sha256:c772264631e5ae61f0bd41313bbe48e1b9bcc95b974033e1118c9caa1a84d5c6"}, - {file = "matplotlib-3.5.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:751d3815b555dcd6187ad35b21736dc12ce6925fc3fa363bbc6dc0f86f16484f"}, - {file = "matplotlib-3.5.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:31fbc2af27ebb820763f077ec7adc79b5a031c2f3f7af446bd7909674cd59460"}, - {file = "matplotlib-3.5.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4fa28ca76ac5c2b2d54bc058b3dad8e22ee85d26d1ee1b116a6fd4d2277b6a04"}, - {file = "matplotlib-3.5.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:24173c23d1bcbaed5bf47b8785d27933a1ac26a5d772200a0f3e0e38f471b001"}, - {file = "matplotlib-3.5.2.tar.gz", hash = "sha256:48cf850ce14fa18067f2d9e0d646763681948487a8080ec0af2686468b4607a2"}, -] -matplotlib-inline = [ - {file = "matplotlib-inline-0.1.3.tar.gz", hash = "sha256:a04bfba22e0d1395479f866853ec1ee28eea1485c1d69a6faf00dc3e24ff34ee"}, - {file = "matplotlib_inline-0.1.3-py3-none-any.whl", hash = "sha256:aed605ba3b72462d64d475a21a9296f400a19c4f74a31b59103d2a99ffd5aa5c"}, -] -mccabe = [ - {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, - {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, -] -more-itertools = [ - {file = "more-itertools-8.13.0.tar.gz", hash = "sha256:a42901a0a5b169d925f6f217cd5a190e32ef54360905b9c39ee7db5313bfec0f"}, - {file = "more_itertools-8.13.0-py3-none-any.whl", hash = "sha256:c5122bffc5f104d37c1626b8615b511f3427aa5389b94d61e5ef8236bfbc3ddb"}, -] -mypy-extensions = [ - {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, - {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, -] -numba = [ - {file = "numba-0.55.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:dd05f7c0ce64b6977596aa4e5a44747c6ef414d7989da1c7672337c54381a5ef"}, - {file = "numba-0.55.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e36232eccd172c583b1f021c5c48744c087ae6fc9dc5c5f0dd2cb2286e517bf8"}, - {file = "numba-0.55.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:25410557d0deb1d97397b71e142a36772133986a7dd4fe2935786e2dd149245f"}, - {file = "numba-0.55.2-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:676c081162cc9403706071c1d1d42e479c0741551ab28096ba13859a2e3e9b80"}, - {file = "numba-0.55.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2665ef28e900b3a55bf370daa81c12ebc64cd434116accd60c38a95a159a3182"}, - {file = "numba-0.55.2-cp310-cp310-win32.whl", hash = "sha256:d7ac9ea5feef9536ab8bfbbb3ded1a0617ea8794d7547800d535b7857800f996"}, - {file = "numba-0.55.2-cp310-cp310-win_amd64.whl", hash = "sha256:29b89a68af162acf87adeb8fbf01f6bb1effae4711b28146f95108d82e905624"}, - {file = "numba-0.55.2-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:6e0f9b5d1c8ea1bdef39b0ad921a9bbf0cc4a88e76d722d756c68f1653787c35"}, - {file = "numba-0.55.2-cp37-cp37m-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:135fb7694928f9f57b4ff5b1be58f20f4771fedd1680636a9affdead96051959"}, - {file = "numba-0.55.2-cp37-cp37m-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:de1f93bd7e2d431451aec20a52ac651a020e98a4ba46797fad860bba338a7e64"}, - {file = "numba-0.55.2-cp37-cp37m-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3eaf53e73e700370163e58257257299ac0d46fea4f244bf5476e4635bc31d808"}, - {file = "numba-0.55.2-cp37-cp37m-win32.whl", hash = "sha256:da4485e0f0b9562f39c78887149b33d13d787aa696553c9257b95575122905ed"}, - {file = "numba-0.55.2-cp37-cp37m-win_amd64.whl", hash = "sha256:5559c6684bf6cce7a22c656d8fef3e7c38ff5fec5153abef5955f6f7cae9f102"}, - {file = "numba-0.55.2-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:a85779adc5234f7857615d1bd2c7b514314521f9f0163c33017707ed9816e6e6"}, - {file = "numba-0.55.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:16a52a0641c342b09b39f6762dcbe3846e44aa9baaaf4703b2ca42a3aee7346f"}, - {file = "numba-0.55.2-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:46715180f87d5a1f3e4077d207ade66c96fc01159f5b7d49cee2d6ffb9e6539f"}, - {file = "numba-0.55.2-cp38-cp38-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:d1c3cef3289fefb5673ceae32024ab5a8a08d4f4380bcb8348d01f1ba570ccff"}, - {file = "numba-0.55.2-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:68bb33eaef1d6155fc1ae4fa6c915b8a42e5052c89a58742254eaad072eab118"}, - {file = "numba-0.55.2-cp38-cp38-win32.whl", hash = "sha256:dfddd633141608a09cbce275fb9fe7aa514918625ace20b0e587898a2d93c030"}, - {file = "numba-0.55.2-cp38-cp38-win_amd64.whl", hash = "sha256:a669212aa66ffee4ad778016ac3819add33f9bcb96b4c384d3099531dd175085"}, - {file = "numba-0.55.2-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:dcde1a1a3a430fb5f83c7e095b0b6ac7adb5595f50a3ee05babb2964f31613c4"}, - {file = "numba-0.55.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:69b2e823efa40d32b259f5c094476dde2226b92032f17015d8cd7c10472654ce"}, - {file = "numba-0.55.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:20de0139d2267c8f0e2470d4f88540446cd1bf40de0f29f31b7ab9bf25d49b45"}, - {file = "numba-0.55.2-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:09ff4d690abb05ffbb8a29a96d1cf35b46887a26796d3670de104beeec73d639"}, - {file = "numba-0.55.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1105449247f338e49d63eb04a4aaa5c440bb5435df00f718c8e6e7afad841bb0"}, - {file = "numba-0.55.2-cp39-cp39-win32.whl", hash = "sha256:32649584144c35ced239937ab2c416ab22bbc1490ef8d90609c30fff9f6aa1b8"}, - {file = "numba-0.55.2-cp39-cp39-win_amd64.whl", hash = "sha256:8d5760a1e6a48d98d6b9cf774e4d2a64813d981cca60d7b7356af61195a6ca17"}, - {file = "numba-0.55.2.tar.gz", hash = "sha256:e428d9e11d9ba592849ccc9f7a009003eb7d30612007e365afe743ce7118c6f4"}, -] -numpy = [ - {file = "numpy-1.22.4-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:ba9ead61dfb5d971d77b6c131a9dbee62294a932bf6a356e48c75ae684e635b3"}, - {file = "numpy-1.22.4-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:1ce7ab2053e36c0a71e7a13a7475bd3b1f54750b4b433adc96313e127b870887"}, - {file = "numpy-1.22.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7228ad13744f63575b3a972d7ee4fd61815b2879998e70930d4ccf9ec721dce0"}, - {file = "numpy-1.22.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43a8ca7391b626b4c4fe20aefe79fec683279e31e7c79716863b4b25021e0e74"}, - {file = "numpy-1.22.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a911e317e8c826ea632205e63ed8507e0dc877dcdc49744584dfc363df9ca08c"}, - {file = "numpy-1.22.4-cp310-cp310-win32.whl", hash = "sha256:9ce7df0abeabe7fbd8ccbf343dc0db72f68549856b863ae3dd580255d009648e"}, - {file = "numpy-1.22.4-cp310-cp310-win_amd64.whl", hash = "sha256:3e1ffa4748168e1cc8d3cde93f006fe92b5421396221a02f2274aab6ac83b077"}, - {file = "numpy-1.22.4-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:59d55e634968b8f77d3fd674a3cf0b96e85147cd6556ec64ade018f27e9479e1"}, - {file = "numpy-1.22.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c1d937820db6e43bec43e8d016b9b3165dcb42892ea9f106c70fb13d430ffe72"}, - {file = "numpy-1.22.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4c5d5eb2ec8da0b4f50c9a843393971f31f1d60be87e0fb0917a49133d257d6"}, - {file = "numpy-1.22.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64f56fc53a2d18b1924abd15745e30d82a5782b2cab3429aceecc6875bd5add0"}, - {file = "numpy-1.22.4-cp38-cp38-win32.whl", hash = "sha256:fb7a980c81dd932381f8228a426df8aeb70d59bbcda2af075b627bbc50207cba"}, - {file = "numpy-1.22.4-cp38-cp38-win_amd64.whl", hash = "sha256:e96d7f3096a36c8754207ab89d4b3282ba7b49ea140e4973591852c77d09eb76"}, - {file = "numpy-1.22.4-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:4c6036521f11a731ce0648f10c18ae66d7143865f19f7299943c985cdc95afb5"}, - {file = "numpy-1.22.4-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:b89bf9b94b3d624e7bb480344e91f68c1c6c75f026ed6755955117de00917a7c"}, - {file = "numpy-1.22.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2d487e06ecbf1dc2f18e7efce82ded4f705f4bd0cd02677ffccfb39e5c284c7e"}, - {file = "numpy-1.22.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3eb268dbd5cfaffd9448113539e44e2dd1c5ca9ce25576f7c04a5453edc26fa"}, - {file = "numpy-1.22.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37431a77ceb9307c28382c9773da9f306435135fae6b80b62a11c53cfedd8802"}, - {file = "numpy-1.22.4-cp39-cp39-win32.whl", hash = "sha256:cc7f00008eb7d3f2489fca6f334ec19ca63e31371be28fd5dad955b16ec285bd"}, - {file = "numpy-1.22.4-cp39-cp39-win_amd64.whl", hash = "sha256:f0725df166cf4785c0bc4cbfb320203182b1ecd30fee6e541c8752a92df6aa32"}, - {file = "numpy-1.22.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0791fbd1e43bf74b3502133207e378901272f3c156c4df4954cad833b1380207"}, - {file = "numpy-1.22.4.zip", hash = "sha256:425b390e4619f58d8526b3dcf656dde069133ae5c240229821f01b5f44ea07af"}, -] -packaging = [ - {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, - {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, -] -pandas = [ - {file = "pandas-1.4.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d51674ed8e2551ef7773820ef5dab9322be0828629f2cbf8d1fc31a0c4fed640"}, - {file = "pandas-1.4.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:16ad23db55efcc93fa878f7837267973b61ea85d244fc5ff0ccbcfa5638706c5"}, - {file = "pandas-1.4.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:958a0588149190c22cdebbc0797e01972950c927a11a900fe6c2296f207b1d6f"}, - {file = "pandas-1.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e48fbb64165cda451c06a0f9e4c7a16b534fcabd32546d531b3c240ce2844112"}, - {file = "pandas-1.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f803320c9da732cc79210d7e8cc5c8019aad512589c910c66529eb1b1818230"}, - {file = "pandas-1.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:2893e923472a5e090c2d5e8db83e8f907364ec048572084c7d10ef93546be6d1"}, - {file = "pandas-1.4.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:24ea75f47bbd5574675dae21d51779a4948715416413b30614c1e8b480909f81"}, - {file = "pandas-1.4.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d5ebc990bd34f4ac3c73a2724c2dcc9ee7bf1ce6cf08e87bb25c6ad33507e318"}, - {file = "pandas-1.4.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d6c0106415ff1a10c326c49bc5dd9ea8b9897a6ca0c8688eb9c30ddec49535ef"}, - {file = "pandas-1.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78b00429161ccb0da252229bcda8010b445c4bf924e721265bec5a6e96a92e92"}, - {file = "pandas-1.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dfbf16b1ea4f4d0ee11084d9c026340514d1d30270eaa82a9f1297b6c8ecbf0"}, - {file = "pandas-1.4.3-cp38-cp38-win32.whl", hash = "sha256:48350592665ea3cbcd07efc8c12ff12d89be09cd47231c7925e3b8afada9d50d"}, - {file = "pandas-1.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:605d572126eb4ab2eadf5c59d5d69f0608df2bf7bcad5c5880a47a20a0699e3e"}, - {file = "pandas-1.4.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a3924692160e3d847e18702bb048dc38e0e13411d2b503fecb1adf0fcf950ba4"}, - {file = "pandas-1.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:07238a58d7cbc8a004855ade7b75bbd22c0db4b0ffccc721556bab8a095515f6"}, - {file = "pandas-1.4.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:755679c49460bd0d2f837ab99f0a26948e68fa0718b7e42afbabd074d945bf84"}, - {file = "pandas-1.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41fc406e374590a3d492325b889a2686b31e7a7780bec83db2512988550dadbf"}, - {file = "pandas-1.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d9382f72a4f0e93909feece6fef5500e838ce1c355a581b3d8f259839f2ea76"}, - {file = "pandas-1.4.3-cp39-cp39-win32.whl", hash = "sha256:0daf876dba6c622154b2e6741f29e87161f844e64f84801554f879d27ba63c0d"}, - {file = "pandas-1.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:721a3dd2f06ef942f83a819c0f3f6a648b2830b191a72bbe9451bcd49c3bd42e"}, - {file = "pandas-1.4.3.tar.gz", hash = "sha256:2ff7788468e75917574f080cd4681b27e1a7bf36461fe968b49a87b5a54d007c"}, -] -parso = [ - {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, - {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, -] -pathspec = [ - {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"}, - {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"}, -] -patiencediff = [ - {file = "patiencediff-0.2.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:e15b894d1941ed773b6c5f7479985fc17ec81bab33f82e3b736ab1920c1804d6"}, - {file = "patiencediff-0.2.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:f196516e980f17302317f2f6f6a4c2897c6107c34c5268d9d37b820e98fd0deb"}, - {file = "patiencediff-0.2.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:830be20a2e74972843362d7bc4b7a7929ff63205eade553d83256e51843b64d4"}, - {file = "patiencediff-0.2.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:5fcc3f9dc12040ddfb8165317af3425c4d2be49b147def22a72a44d43fff5141"}, - {file = "patiencediff-0.2.2.tar.gz", hash = "sha256:456d9fc47fe43f9aea863059ea2c6df5b997285590e4b7f9ee8fbb6c3419b5a7"}, -] -pdbpp = [ - {file = "pdbpp-0.10.3-py2.py3-none-any.whl", hash = "sha256:79580568e33eb3d6f6b462b1187f53e10cd8e4538f7d31495c9181e2cf9665d1"}, - {file = "pdbpp-0.10.3.tar.gz", hash = "sha256:d9e43f4fda388eeb365f2887f4e7b66ac09dce9b6236b76f63616530e2f669f5"}, -] -pendulum = [ - {file = "pendulum-2.1.2-cp27-cp27m-macosx_10_15_x86_64.whl", hash = "sha256:b6c352f4bd32dff1ea7066bd31ad0f71f8d8100b9ff709fb343f3b86cee43efe"}, - {file = "pendulum-2.1.2-cp27-cp27m-win_amd64.whl", hash = "sha256:318f72f62e8e23cd6660dbafe1e346950281a9aed144b5c596b2ddabc1d19739"}, - {file = "pendulum-2.1.2-cp35-cp35m-macosx_10_15_x86_64.whl", hash = "sha256:0731f0c661a3cb779d398803655494893c9f581f6488048b3fb629c2342b5394"}, - {file = "pendulum-2.1.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:3481fad1dc3f6f6738bd575a951d3c15d4b4ce7c82dce37cf8ac1483fde6e8b0"}, - {file = "pendulum-2.1.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9702069c694306297ed362ce7e3c1ef8404ac8ede39f9b28b7c1a7ad8c3959e3"}, - {file = "pendulum-2.1.2-cp35-cp35m-win_amd64.whl", hash = "sha256:fb53ffa0085002ddd43b6ca61a7b34f2d4d7c3ed66f931fe599e1a531b42af9b"}, - {file = "pendulum-2.1.2-cp36-cp36m-macosx_10_15_x86_64.whl", hash = "sha256:c501749fdd3d6f9e726086bf0cd4437281ed47e7bca132ddb522f86a1645d360"}, - {file = "pendulum-2.1.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:c807a578a532eeb226150d5006f156632df2cc8c5693d778324b43ff8c515dd0"}, - {file = "pendulum-2.1.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:2d1619a721df661e506eff8db8614016f0720ac171fe80dda1333ee44e684087"}, - {file = "pendulum-2.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:f888f2d2909a414680a29ae74d0592758f2b9fcdee3549887779cd4055e975db"}, - {file = "pendulum-2.1.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:e95d329384717c7bf627bf27e204bc3b15c8238fa8d9d9781d93712776c14002"}, - {file = "pendulum-2.1.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:4c9c689747f39d0d02a9f94fcee737b34a5773803a64a5fdb046ee9cac7442c5"}, - {file = "pendulum-2.1.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:1245cd0075a3c6d889f581f6325dd8404aca5884dea7223a5566c38aab94642b"}, - {file = "pendulum-2.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:db0a40d8bcd27b4fb46676e8eb3c732c67a5a5e6bfab8927028224fbced0b40b"}, - {file = "pendulum-2.1.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:f5e236e7730cab1644e1b87aca3d2ff3e375a608542e90fe25685dae46310116"}, - {file = "pendulum-2.1.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:de42ea3e2943171a9e95141f2eecf972480636e8e484ccffaf1e833929e9e052"}, - {file = "pendulum-2.1.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7c5ec650cb4bec4c63a89a0242cc8c3cebcec92fcfe937c417ba18277d8560be"}, - {file = "pendulum-2.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:33fb61601083f3eb1d15edeb45274f73c63b3c44a8524703dc143f4212bf3269"}, - {file = "pendulum-2.1.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:29c40a6f2942376185728c9a0347d7c0f07905638c83007e1d262781f1e6953a"}, - {file = "pendulum-2.1.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:94b1fc947bfe38579b28e1cccb36f7e28a15e841f30384b5ad6c5e31055c85d7"}, - {file = "pendulum-2.1.2.tar.gz", hash = "sha256:b06a0ca1bfe41c990bbf0c029f0b6501a7f2ec4e38bfec730712015e8860f207"}, -] -pexpect = [ - {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"}, - {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"}, -] -pickleshare = [ - {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, - {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, -] -pillow = [ - {file = "Pillow-9.2.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:a9c9bc489f8ab30906d7a85afac4b4944a572a7432e00698a7239f44a44e6efb"}, - {file = "Pillow-9.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:510cef4a3f401c246cfd8227b300828715dd055463cdca6176c2e4036df8bd4f"}, - {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7888310f6214f19ab2b6df90f3f06afa3df7ef7355fc025e78a3044737fab1f5"}, - {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:831e648102c82f152e14c1a0938689dbb22480c548c8d4b8b248b3e50967b88c"}, - {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cc1d2451e8a3b4bfdb9caf745b58e6c7a77d2e469159b0d527a4554d73694d1"}, - {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:136659638f61a251e8ed3b331fc6ccd124590eeff539de57c5f80ef3a9594e58"}, - {file = "Pillow-9.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:6e8c66f70fb539301e064f6478d7453e820d8a2c631da948a23384865cd95544"}, - {file = "Pillow-9.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:37ff6b522a26d0538b753f0b4e8e164fdada12db6c6f00f62145d732d8a3152e"}, - {file = "Pillow-9.2.0-cp310-cp310-win32.whl", hash = "sha256:c79698d4cd9318d9481d89a77e2d3fcaeff5486be641e60a4b49f3d2ecca4e28"}, - {file = "Pillow-9.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:254164c57bab4b459f14c64e93df11eff5ded575192c294a0c49270f22c5d93d"}, - {file = "Pillow-9.2.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:408673ed75594933714482501fe97e055a42996087eeca7e5d06e33218d05aa8"}, - {file = "Pillow-9.2.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:727dd1389bc5cb9827cbd1f9d40d2c2a1a0c9b32dd2261db522d22a604a6eec9"}, - {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50dff9cc21826d2977ef2d2a205504034e3a4563ca6f5db739b0d1026658e004"}, - {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb6259196a589123d755380b65127ddc60f4c64b21fc3bb46ce3a6ea663659b0"}, - {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b0554af24df2bf96618dac71ddada02420f946be943b181108cac55a7a2dcd4"}, - {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:15928f824870535c85dbf949c09d6ae7d3d6ac2d6efec80f3227f73eefba741c"}, - {file = "Pillow-9.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:bdd0de2d64688ecae88dd8935012c4a72681e5df632af903a1dca8c5e7aa871a"}, - {file = "Pillow-9.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d5b87da55a08acb586bad5c3aa3b86505f559b84f39035b233d5bf844b0834b1"}, - {file = "Pillow-9.2.0-cp311-cp311-win32.whl", hash = "sha256:b6d5e92df2b77665e07ddb2e4dbd6d644b78e4c0d2e9272a852627cdba0d75cf"}, - {file = "Pillow-9.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:6bf088c1ce160f50ea40764f825ec9b72ed9da25346216b91361eef8ad1b8f8c"}, - {file = "Pillow-9.2.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:2c58b24e3a63efd22554c676d81b0e57f80e0a7d3a5874a7e14ce90ec40d3069"}, - {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eef7592281f7c174d3d6cbfbb7ee5984a671fcd77e3fc78e973d492e9bf0eb3f"}, - {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dcd7b9c7139dc8258d164b55696ecd16c04607f1cc33ba7af86613881ffe4ac8"}, - {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a138441e95562b3c078746a22f8fca8ff1c22c014f856278bdbdd89ca36cff1b"}, - {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:93689632949aff41199090eff5474f3990b6823404e45d66a5d44304e9cdc467"}, - {file = "Pillow-9.2.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:f3fac744f9b540148fa7715a435d2283b71f68bfb6d4aae24482a890aed18b59"}, - {file = "Pillow-9.2.0-cp37-cp37m-win32.whl", hash = "sha256:fa768eff5f9f958270b081bb33581b4b569faabf8774726b283edb06617101dc"}, - {file = "Pillow-9.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:69bd1a15d7ba3694631e00df8de65a8cb031911ca11f44929c97fe05eb9b6c1d"}, - {file = "Pillow-9.2.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:030e3460861488e249731c3e7ab59b07c7853838ff3b8e16aac9561bb345da14"}, - {file = "Pillow-9.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:74a04183e6e64930b667d321524e3c5361094bb4af9083db5c301db64cd341f3"}, - {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d33a11f601213dcd5718109c09a52c2a1c893e7461f0be2d6febc2879ec2402"}, - {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fd6f5e3c0e4697fa7eb45b6e93996299f3feee73a3175fa451f49a74d092b9f"}, - {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a647c0d4478b995c5e54615a2e5360ccedd2f85e70ab57fbe817ca613d5e63b8"}, - {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:4134d3f1ba5f15027ff5c04296f13328fecd46921424084516bdb1b2548e66ff"}, - {file = "Pillow-9.2.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:bc431b065722a5ad1dfb4df354fb9333b7a582a5ee39a90e6ffff688d72f27a1"}, - {file = "Pillow-9.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:1536ad017a9f789430fb6b8be8bf99d2f214c76502becc196c6f2d9a75b01b76"}, - {file = "Pillow-9.2.0-cp38-cp38-win32.whl", hash = "sha256:2ad0d4df0f5ef2247e27fc790d5c9b5a0af8ade9ba340db4a73bb1a4a3e5fb4f"}, - {file = "Pillow-9.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:ec52c351b35ca269cb1f8069d610fc45c5bd38c3e91f9ab4cbbf0aebc136d9c8"}, - {file = "Pillow-9.2.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0ed2c4ef2451de908c90436d6e8092e13a43992f1860275b4d8082667fbb2ffc"}, - {file = "Pillow-9.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ad2f835e0ad81d1689f1b7e3fbac7b01bb8777d5a985c8962bedee0cc6d43da"}, - {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea98f633d45f7e815db648fd7ff0f19e328302ac36427343e4432c84432e7ff4"}, - {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7761afe0126d046974a01e030ae7529ed0ca6a196de3ec6937c11df0df1bc91c"}, - {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a54614049a18a2d6fe156e68e188da02a046a4a93cf24f373bffd977e943421"}, - {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:5aed7dde98403cd91d86a1115c78d8145c83078e864c1de1064f52e6feb61b20"}, - {file = "Pillow-9.2.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:13b725463f32df1bfeacbf3dd197fb358ae8ebcd8c5548faa75126ea425ccb60"}, - {file = "Pillow-9.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:808add66ea764ed97d44dda1ac4f2cfec4c1867d9efb16a33d158be79f32b8a4"}, - {file = "Pillow-9.2.0-cp39-cp39-win32.whl", hash = "sha256:337a74fd2f291c607d220c793a8135273c4c2ab001b03e601c36766005f36885"}, - {file = "Pillow-9.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:fac2d65901fb0fdf20363fbd345c01958a742f2dc62a8dd4495af66e3ff502a4"}, - {file = "Pillow-9.2.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:ad2277b185ebce47a63f4dc6302e30f05762b688f8dc3de55dbae4651872cdf3"}, - {file = "Pillow-9.2.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c7b502bc34f6e32ba022b4a209638f9e097d7a9098104ae420eb8186217ebbb"}, - {file = "Pillow-9.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d1f14f5f691f55e1b47f824ca4fdcb4b19b4323fe43cc7bb105988cad7496be"}, - {file = "Pillow-9.2.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:dfe4c1fedfde4e2fbc009d5ad420647f7730d719786388b7de0999bf32c0d9fd"}, - {file = "Pillow-9.2.0-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:f07f1f00e22b231dd3d9b9208692042e29792d6bd4f6639415d2f23158a80013"}, - {file = "Pillow-9.2.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1802f34298f5ba11d55e5bb09c31997dc0c6aed919658dfdf0198a2fe75d5490"}, - {file = "Pillow-9.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17d4cafe22f050b46d983b71c707162d63d796a1235cdf8b9d7a112e97b15bac"}, - {file = "Pillow-9.2.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:96b5e6874431df16aee0c1ba237574cb6dff1dcb173798faa6a9d8b399a05d0e"}, - {file = "Pillow-9.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:0030fdbd926fb85844b8b92e2f9449ba89607231d3dd597a21ae72dc7fe26927"}, - {file = "Pillow-9.2.0.tar.gz", hash = "sha256:75e636fd3e0fb872693f23ccb8a5ff2cd578801251f3a4f6854c6a5d437d3c04"}, -] -pineappl = [ - {file = "pineappl-0.5.3-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:95ee314d9598ae34d56a9360643dccd221056e0393d6ce552f49308956583af1"}, - {file = "pineappl-0.5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd5addb165ca1adf4c9a21ee500220b2c3c58d872385685f636a3335ed582a0d"}, - {file = "pineappl-0.5.3-cp310-none-win_amd64.whl", hash = "sha256:b3ee5b0332ba8977c90aad893df985dde9cc16b1ebca7defead906a4846b913f"}, - {file = "pineappl-0.5.3-cp37-cp37m-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:ce90a16ce35024ae654cb5001c19c50bebd1bfe3e1f68b32effb53c879295fd3"}, - {file = "pineappl-0.5.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4dae5315223277e02417b10e382bdfca6d5e1af4d4992461ae9ae52968569606"}, - {file = "pineappl-0.5.3-cp37-none-win_amd64.whl", hash = "sha256:b89ffd7acd5233f7be4add1449859e116c657868d03d01400aa02430146a9168"}, - {file = "pineappl-0.5.3-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:0db53eb1fefe583837b1e8f41ccdda38729c79ae788c8f2303559701552b7682"}, - {file = "pineappl-0.5.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62a78920e04e7fb6b31e187e83078c50bfbdd66ab40ee4b1e3301b0892ca95ce"}, - {file = "pineappl-0.5.3-cp38-none-win_amd64.whl", hash = "sha256:7b6056dafc83bb3e8ff8ae3806cd248a0ecee69709b85e84c3241eee9ebf78e6"}, - {file = "pineappl-0.5.3-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:4c87e279aafe61cd6738be235db23ebb403b55595ba0fa0b560c488dd82c8209"}, - {file = "pineappl-0.5.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00d8e0fcb6f9334d330a157c40012fc5f8a3048fa1448b066dd3e3dbd9b2b40f"}, - {file = "pineappl-0.5.3-cp39-none-win_amd64.whl", hash = "sha256:df9a91c436435a197074b6f24bd464a5a3fe54aa0677b473ea759624be7e2ab0"}, - {file = "pineappl-0.5.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c14323b788630fcb1614b9a1451d12aa18c9e565a81041694906e49d315bcdd8"}, - {file = "pineappl-0.5.3.tar.gz", hash = "sha256:389563737cbe69360a6350759d7ded95fea3156c01d2f02705bcf51f45542d74"}, -] -pkgconfig = [ - {file = "pkgconfig-1.5.5-py3-none-any.whl", hash = "sha256:d20023bbeb42ee6d428a0fac6e0904631f545985a10cdd71a20aa58bc47a4209"}, - {file = "pkgconfig-1.5.5.tar.gz", hash = "sha256:deb4163ef11f75b520d822d9505c1f462761b4309b1bb713d08689759ea8b899"}, -] -platformdirs = [ - {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, - {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, -] -pluggy = [ - {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, - {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, -] -prompt-toolkit = [ - {file = "prompt_toolkit-3.0.30-py3-none-any.whl", hash = "sha256:d8916d3f62a7b67ab353a952ce4ced6a1d2587dfe9ef8ebc30dd7c386751f289"}, - {file = "prompt_toolkit-3.0.30.tar.gz", hash = "sha256:859b283c50bde45f5f97829f77a4674d1c1fcd88539364f1b28a37805cfd89c0"}, -] -ptyprocess = [ - {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, - {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, -] -pure-eval = [ - {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, - {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, -] -py = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] -pybtex = [ - {file = "pybtex-0.24.0-py2.py3-none-any.whl", hash = "sha256:e1e0c8c69998452fea90e9179aa2a98ab103f3eed894405b7264e517cc2fcc0f"}, - {file = "pybtex-0.24.0.tar.gz", hash = "sha256:818eae35b61733e5c007c3fcd2cfb75ed1bc8b4173c1f70b56cc4c0802d34755"}, -] -pybtex-docutils = [ - {file = "pybtex-docutils-1.0.2.tar.gz", hash = "sha256:43aa353b6d498fd5ac30f0073a98e332d061d34fe619d3d50d1761f8fd4aa016"}, - {file = "pybtex_docutils-1.0.2-py3-none-any.whl", hash = "sha256:6f9e3c25a37bcaac8c4f69513272706ec6253bb708a93d8b4b173f43915ba239"}, -] -pycparser = [ - {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, - {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, -] -pygit2 = [ - {file = "pygit2-1.9.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6e7f56bf5338ec79e7521204ddf4f6848cd2ccd1de4ea8b2c0af163ed4b08ade"}, - {file = "pygit2-1.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:487ae81134b44b1e0173b3e9a478f93f18c1c22d53241d1fc8047e400094582b"}, - {file = "pygit2-1.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f84826586d5e7f32e560d0d55fd35484cebd49fefccfe8a3727bd4b7c4788b92"}, - {file = "pygit2-1.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81e1d25b2a0be1a8cd7d4131fe5af8efddc7015f522638e2c53fe820800e4de6"}, - {file = "pygit2-1.9.2-cp310-cp310-win32.whl", hash = "sha256:d52113184c38455bbc9576003054311d8c283a547a12790baf0210ccfd0cc90f"}, - {file = "pygit2-1.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:5f038afaeaf5cd1fa35ae02073f42558eb7daf6cbc57cdc41e5ee9dfdad6a653"}, - {file = "pygit2-1.9.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:14b51a909debdfdaa7757a581a1c6f6d1a5b150870da68881d3bd9d5b94842c7"}, - {file = "pygit2-1.9.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:308ce00e8a1f8d8dc3858b3e21f0ea701cdde675966aea68fcccf559cb5e9577"}, - {file = "pygit2-1.9.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6724885e4a31a843fd6d7d6cd90baef5c61a774d222fabbe39505c0b3dd2c55b"}, - {file = "pygit2-1.9.2-cp37-cp37m-win32.whl", hash = "sha256:eb2d916ec03c1dda7ab04506d42ef2c0bac2590827c5d15fec49b67f39f02704"}, - {file = "pygit2-1.9.2-cp37-cp37m-win_amd64.whl", hash = "sha256:ebe0b2371fe4d91adc5014cc94dc85497bec6a5e1e557856bb45f586e31519bd"}, - {file = "pygit2-1.9.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9bfd9d089942482ca0b5f426396b76fb86b25ca3414546388d8cfa8824ab1188"}, - {file = "pygit2-1.9.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:871682c3a910d71cc8bf6f8be4474085bf3eb27864a090f2132f6fa50fe2eb30"}, - {file = "pygit2-1.9.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe3eec281222c5778eed6a4185d0442a7d7aaac552039359d5ec4c5b8737baa3"}, - {file = "pygit2-1.9.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cef5b08544b895a75ed7908ca6c0d730b890ffeba7f2b46e5c8aec458786802"}, - {file = "pygit2-1.9.2-cp38-cp38-win32.whl", hash = "sha256:0a0aaadca823c2e6d1f6319190f53c55c8323a810a1d1117e378e907c98cf613"}, - {file = "pygit2-1.9.2-cp38-cp38-win_amd64.whl", hash = "sha256:55593d734a30e824f9136e0afcd15b287125ef41dac7833f564da454ba0969d0"}, - {file = "pygit2-1.9.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:da12d67bdb43736e3bd6464623e8aff06796527ea8525f65b76a776f26c7fa24"}, - {file = "pygit2-1.9.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8a5bf52fb75dc2d2da814996b8006559d0b57b573775f757a1997f89eabfdb0a"}, - {file = "pygit2-1.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a1ebd104105cc56ae2ba100090228a4db8cbeb7a480e8657a803d674331b82d"}, - {file = "pygit2-1.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0c18ed4ce7f06e6885ab01f1b1f80468e09d1bd72265e14575be0b44a581ae7"}, - {file = "pygit2-1.9.2-cp39-cp39-win32.whl", hash = "sha256:d2cb8571cd02acf739b26d2c2bb4828f7cfb4e23b564d6c4442bffe8714ec8e5"}, - {file = "pygit2-1.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:75a95ddab5d256c35377a2892bd5f5f3121552c3ae9af9b06eaa7ac426220d22"}, - {file = "pygit2-1.9.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bf160b3653168e5d11e6de9589018db55ef51a0859bf4a3719aa8cc0998c584e"}, - {file = "pygit2-1.9.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:084bc622205b6f495a0c7e6d8dde9a2e42967bd6b8e16e28d21725dbcc837e1a"}, - {file = "pygit2-1.9.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3068375e81a473d01d23d86abc5e978bac7bd277a91538416d31e06d0e97402f"}, - {file = "pygit2-1.9.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3f737e8eb42a818de2e604bfca125e79e3f386e8b77cceb1fe881f7603c378c2"}, - {file = "pygit2-1.9.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:490d6ba5ae4a539d147644e9ce20a2c5dd55dd3ea177cec78971b7422c0540d4"}, - {file = "pygit2-1.9.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6198c1010af273d91c182997693d61b2d00edeecdef9c39beef711568bec984"}, - {file = "pygit2-1.9.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8cdf963725b1f6bfad12a9238a421587af682164d90b3d5a81224d4a112ed4f6"}, - {file = "pygit2-1.9.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4625e8957b9e7e72a300d42e27e5392ac449517397fb22045b8c3e468f4b6f06"}, - {file = "pygit2-1.9.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b6d7b3613ef8358f24d32e4a1ef976218e351e84953c474d1fa1d29b28484db"}, - {file = "pygit2-1.9.2.tar.gz", hash = "sha256:20894433df1146481aacae37e2b0f3bbbfdea026db2f55061170bd9823e40b19"}, -] -pygments = [ - {file = "Pygments-2.12.0-py3-none-any.whl", hash = "sha256:dc9c10fb40944260f6ed4c688ece0cd2048414940f1cea51b8b226318411c519"}, - {file = "Pygments-2.12.0.tar.gz", hash = "sha256:5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb"}, -] -pylint = [ - {file = "pylint-2.14.5-py3-none-any.whl", hash = "sha256:fabe30000de7d07636d2e82c9a518ad5ad7908590fe135ace169b44839c15f90"}, - {file = "pylint-2.14.5.tar.gz", hash = "sha256:487ce2192eee48211269a0e976421f334cf94de1806ca9d0a99449adcdf0285e"}, -] -pyparsing = [ - {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, - {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, -] -pyreadline = [ - {file = "pyreadline-2.1.win-amd64.exe", hash = "sha256:9ce5fa65b8992dfa373bddc5b6e0864ead8f291c94fbfec05fbd5c836162e67b"}, - {file = "pyreadline-2.1.win32.exe", hash = "sha256:65540c21bfe14405a3a77e4c085ecfce88724743a4ead47c66b84defcf82c32e"}, - {file = "pyreadline-2.1.zip", hash = "sha256:4530592fc2e85b25b1a9f79664433da09237c1a270e4d78ea5aa3a2c7229e2d1"}, -] -pyrepl = [ - {file = "pyrepl-0.9.0.tar.gz", hash = "sha256:292570f34b5502e871bbb966d639474f2b57fbfcd3373c2d6a2f3d56e681a775"}, -] -pytest = [ - {file = "pytest-5.4.3-py3-none-any.whl", hash = "sha256:5c0db86b698e8f170ba4582a492248919255fcd4c79b1ee64ace34301fb589a1"}, - {file = "pytest-5.4.3.tar.gz", hash = "sha256:7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8"}, -] -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 = [ - {file = "pytz-2022.1-py2.py3-none-any.whl", hash = "sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c"}, - {file = "pytz-2022.1.tar.gz", hash = "sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7"}, -] -pytzdata = [ - {file = "pytzdata-2020.1-py2.py3-none-any.whl", hash = "sha256:e1e14750bcf95016381e4d472bad004eef710f2d6417240904070b3d6654485f"}, - {file = "pytzdata-2020.1.tar.gz", hash = "sha256:3efa13b335a00a8de1d345ae41ec78dd11c9f8807f522d39850f2dd828681540"}, -] -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"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, - {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-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"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, - {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, - {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, - {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, - {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, - {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, - {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, - {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, - {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, - {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, - {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, - {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, -] -requests = [ - {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, - {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, -] -rich = [ - {file = "rich-10.16.2-py3-none-any.whl", hash = "sha256:c59d73bd804c90f747c8d7b1d023b88f2a9ac2454224a4aeaf959b21eeb42d03"}, - {file = "rich-10.16.2.tar.gz", hash = "sha256:720974689960e06c2efdb54327f8bf0cdbdf4eae4ad73b6c94213cad405c371b"}, -] -scipy = [ - {file = "scipy-1.8.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:65b77f20202599c51eb2771d11a6b899b97989159b7975e9b5259594f1d35ef4"}, - {file = "scipy-1.8.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:e013aed00ed776d790be4cb32826adb72799c61e318676172495383ba4570aa4"}, - {file = "scipy-1.8.1-cp310-cp310-macosx_12_0_universal2.macosx_10_9_x86_64.whl", hash = "sha256:02b567e722d62bddd4ac253dafb01ce7ed8742cf8031aea030a41414b86c1125"}, - {file = "scipy-1.8.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1da52b45ce1a24a4a22db6c157c38b39885a990a566748fc904ec9f03ed8c6ba"}, - {file = "scipy-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0aa8220b89b2e3748a2836fbfa116194378910f1a6e78e4675a095bcd2c762d"}, - {file = "scipy-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:4e53a55f6a4f22de01ffe1d2f016e30adedb67a699a310cdcac312806807ca81"}, - {file = "scipy-1.8.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:28d2cab0c6ac5aa131cc5071a3a1d8e1366dad82288d9ec2ca44df78fb50e649"}, - {file = "scipy-1.8.1-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:6311e3ae9cc75f77c33076cb2794fb0606f14c8f1b1c9ff8ce6005ba2c283621"}, - {file = "scipy-1.8.1-cp38-cp38-macosx_12_0_universal2.macosx_10_9_x86_64.whl", hash = "sha256:3b69b90c9419884efeffaac2c38376d6ef566e6e730a231e15722b0ab58f0328"}, - {file = "scipy-1.8.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6cc6b33139eb63f30725d5f7fa175763dc2df6a8f38ddf8df971f7c345b652dc"}, - {file = "scipy-1.8.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c4e3ae8a716c8b3151e16c05edb1daf4cb4d866caa385e861556aff41300c14"}, - {file = "scipy-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23b22fbeef3807966ea42d8163322366dd89da9bebdc075da7034cee3a1441ca"}, - {file = "scipy-1.8.1-cp38-cp38-win32.whl", hash = "sha256:4b93ec6f4c3c4d041b26b5f179a6aab8f5045423117ae7a45ba9710301d7e462"}, - {file = "scipy-1.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:70ebc84134cf0c504ce6a5f12d6db92cb2a8a53a49437a6bb4edca0bc101f11c"}, - {file = "scipy-1.8.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f3e7a8867f307e3359cc0ed2c63b61a1e33a19080f92fe377bc7d49f646f2ec1"}, - {file = "scipy-1.8.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:2ef0fbc8bcf102c1998c1f16f15befe7cffba90895d6e84861cd6c6a33fb54f6"}, - {file = "scipy-1.8.1-cp39-cp39-macosx_12_0_universal2.macosx_10_9_x86_64.whl", hash = "sha256:83606129247e7610b58d0e1e93d2c5133959e9cf93555d3c27e536892f1ba1f2"}, - {file = "scipy-1.8.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:93d07494a8900d55492401917a119948ed330b8c3f1d700e0b904a578f10ead4"}, - {file = "scipy-1.8.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3b3c8924252caaffc54d4a99f1360aeec001e61267595561089f8b5900821bb"}, - {file = "scipy-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70de2f11bf64ca9921fda018864c78af7147025e467ce9f4a11bc877266900a6"}, - {file = "scipy-1.8.1-cp39-cp39-win32.whl", hash = "sha256:1166514aa3bbf04cb5941027c6e294a000bba0cf00f5cdac6c77f2dad479b434"}, - {file = "scipy-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:9dd4012ac599a1e7eb63c114d1eee1bcfc6dc75a29b589ff0ad0bb3d9412034f"}, - {file = "scipy-1.8.1.tar.gz", hash = "sha256:9e3fb1b0e896f14a85aa9a28d5f755daaeeb54c897b746df7a55ccb02b340f33"}, -] -setuptools-scm = [ - {file = "setuptools_scm-7.0.5-py3-none-any.whl", hash = "sha256:7930f720905e03ccd1e1d821db521bff7ec2ac9cf0ceb6552dd73d24a45d3b02"}, - {file = "setuptools_scm-7.0.5.tar.gz", hash = "sha256:031e13af771d6f892b941adb6ea04545bbf91ebc5ce68c78aaf3fff6e1fb4844"}, -] -six = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] -snowballstemmer = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] -sphinx = [ - {file = "Sphinx-4.5.0-py3-none-any.whl", hash = "sha256:ebf612653238bcc8f4359627a9b7ce44ede6fdd75d9d30f68255c7383d3a6226"}, - {file = "Sphinx-4.5.0.tar.gz", hash = "sha256:7bf8ca9637a4ee15af412d1a1d9689fec70523a68ca9bb9127c2f3eeb344e2e6"}, -] -sphinx-rtd-theme = [ - {file = "sphinx_rtd_theme-1.0.0-py2.py3-none-any.whl", hash = "sha256:4d35a56f4508cfee4c4fb604373ede6feae2a306731d533f409ef5c3496fdbd8"}, - {file = "sphinx_rtd_theme-1.0.0.tar.gz", hash = "sha256:eec6d497e4c2195fa0e8b2016b337532b8a699a68bcb22a512870e16925c6a5c"}, -] -sphinxcontrib-applehelp = [ - {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, - {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, -] -sphinxcontrib-bibtex = [ - {file = "sphinxcontrib-bibtex-2.4.2.tar.gz", hash = "sha256:65b023ee47f35f1f03ac4d71c824e67c624c7ecac1bb26e83623271a01f9da86"}, - {file = "sphinxcontrib_bibtex-2.4.2-py3-none-any.whl", hash = "sha256:608512afde6b732148cdc9123550bd560bf48e071d1fb7bb1bab4f4437ff04f4"}, -] -sphinxcontrib-devhelp = [ - {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, - {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, -] -sphinxcontrib-htmlhelp = [ - {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, - {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, -] -sphinxcontrib-jsmath = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] -sphinxcontrib-qthelp = [ - {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, - {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, -] -sphinxcontrib-serializinghtml = [ - {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, - {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, -] -sqlalchemy = [ - {file = "SQLAlchemy-1.4.39-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:4770eb3ba69ec5fa41c681a75e53e0e342ac24c1f9220d883458b5596888e43a"}, - {file = "SQLAlchemy-1.4.39-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:752ef2e8dbaa3c5d419f322e3632f00ba6b1c3230f65bc97c2ff5c5c6c08f441"}, - {file = "SQLAlchemy-1.4.39-cp27-cp27m-win32.whl", hash = "sha256:b30e70f1594ee3c8902978fd71900d7312453922827c4ce0012fa6a8278d6df4"}, - {file = "SQLAlchemy-1.4.39-cp27-cp27m-win_amd64.whl", hash = "sha256:864d4f89f054819cb95e93100b7d251e4d114d1c60bc7576db07b046432af280"}, - {file = "SQLAlchemy-1.4.39-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:8f901be74f00a13bf375241a778455ee864c2c21c79154aad196b7a994e1144f"}, - {file = "SQLAlchemy-1.4.39-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:1745987ada1890b0e7978abdb22c133eca2e89ab98dc17939042240063e1ef21"}, - {file = "SQLAlchemy-1.4.39-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ede13a472caa85a13abe5095e71676af985d7690eaa8461aeac5c74f6600b6c0"}, - {file = "SQLAlchemy-1.4.39-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7f13644b15665f7322f9e0635129e0ef2098409484df67fcd225d954c5861559"}, - {file = "SQLAlchemy-1.4.39-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26146c59576dfe9c546c9f45397a7c7c4a90c25679492ff610a7500afc7d03a6"}, - {file = "SQLAlchemy-1.4.39-cp310-cp310-win32.whl", hash = "sha256:91d2b89bb0c302f89e753bea008936acfa4e18c156fb264fe41eb6bbb2bbcdeb"}, - {file = "SQLAlchemy-1.4.39-cp310-cp310-win_amd64.whl", hash = "sha256:50e7569637e2e02253295527ff34666706dbb2bc5f6c61a5a7f44b9610c9bb09"}, - {file = "SQLAlchemy-1.4.39-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:107df519eb33d7f8e0d0d052128af2f25066c1a0f6b648fd1a9612ab66800b86"}, - {file = "SQLAlchemy-1.4.39-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f24d4d6ec301688c59b0c4bb1c1c94c5d0bff4ecad33bb8f5d9efdfb8d8bc925"}, - {file = "SQLAlchemy-1.4.39-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7b2785dd2a0c044a36836857ac27310dc7a99166253551ee8f5408930958cc60"}, - {file = "SQLAlchemy-1.4.39-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e6e2c8581c6620136b9530137954a8376efffd57fe19802182c7561b0ab48b48"}, - {file = "SQLAlchemy-1.4.39-cp36-cp36m-win32.whl", hash = "sha256:fbc076f79d830ae4c9d49926180a1140b49fa675d0f0d555b44c9a15b29f4c80"}, - {file = "SQLAlchemy-1.4.39-cp36-cp36m-win_amd64.whl", hash = "sha256:0ec54460475f0c42512895c99c63d90dd2d9cbd0c13491a184182e85074b04c5"}, - {file = "SQLAlchemy-1.4.39-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:6f95706da857e6e79b54c33c1214f5467aab10600aa508ddd1239d5df271986e"}, - {file = "SQLAlchemy-1.4.39-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:621f050e72cc7dfd9ad4594ff0abeaad954d6e4a2891545e8f1a53dcdfbef445"}, - {file = "SQLAlchemy-1.4.39-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05a05771617bfa723ba4cef58d5b25ac028b0d68f28f403edebed5b8243b3a87"}, - {file = "SQLAlchemy-1.4.39-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20bf65bcce65c538e68d5df27402b39341fabeecf01de7e0e72b9d9836c13c52"}, - {file = "SQLAlchemy-1.4.39-cp37-cp37m-win32.whl", hash = "sha256:f2a42acc01568b9701665e85562bbff78ec3e21981c7d51d56717c22e5d3d58b"}, - {file = "SQLAlchemy-1.4.39-cp37-cp37m-win_amd64.whl", hash = "sha256:6d81de54e45f1d756785405c9d06cd17918c2eecc2d4262dc2d276ca612c2f61"}, - {file = "SQLAlchemy-1.4.39-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:5c2d19bfb33262bf987ef0062345efd0f54c4189c2d95159c72995457bf4a359"}, - {file = "SQLAlchemy-1.4.39-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14ea8ff2d33c48f8e6c3c472111d893b9e356284d1482102da9678195e5a8eac"}, - {file = "SQLAlchemy-1.4.39-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec3985c883d6d217cf2013028afc6e3c82b8907192ba6195d6e49885bfc4b19d"}, - {file = "SQLAlchemy-1.4.39-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1962dfee37b7fb17d3d4889bf84c4ea08b1c36707194c578f61e6e06d12ab90f"}, - {file = "SQLAlchemy-1.4.39-cp38-cp38-win32.whl", hash = "sha256:047ef5ccd8860f6147b8ac6c45a4bc573d4e030267b45d9a1c47b55962ff0e6f"}, - {file = "SQLAlchemy-1.4.39-cp38-cp38-win_amd64.whl", hash = "sha256:b71be98ef6e180217d1797185c75507060a57ab9cd835653e0112db16a710f0d"}, - {file = "SQLAlchemy-1.4.39-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:365b75938049ae31cf2176efd3d598213ddb9eb883fbc82086efa019a5f649df"}, - {file = "SQLAlchemy-1.4.39-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7a7667d928ba6ee361a3176e1bef6847c1062b37726b33505cc84136f657e0d"}, - {file = "SQLAlchemy-1.4.39-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c6d00cb9da8d0cbfaba18cad046e94b06de6d4d0ffd9d4095a3ad1838af22528"}, - {file = "SQLAlchemy-1.4.39-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0538b66f959771c56ff996d828081908a6a52a47c5548faed4a3d0a027a5368"}, - {file = "SQLAlchemy-1.4.39-cp39-cp39-win32.whl", hash = "sha256:d1f665e50592caf4cad3caed3ed86f93227bffe0680218ccbb293bd5a6734ca8"}, - {file = "SQLAlchemy-1.4.39-cp39-cp39-win_amd64.whl", hash = "sha256:8b773c9974c272aae0fa7e95b576d98d17ee65f69d8644f9b6ffc90ee96b4d19"}, - {file = "SQLAlchemy-1.4.39.tar.gz", hash = "sha256:8194896038753b46b08a0b0ae89a5d80c897fb601dd51e243ed5720f1f155d27"}, -] -stack-data = [ - {file = "stack_data-0.3.0-py3-none-any.whl", hash = "sha256:aa1d52d14d09c7a9a12bb740e6bdfffe0f5e8f4f9218d85e7c73a8c37f7ae38d"}, - {file = "stack_data-0.3.0.tar.gz", hash = "sha256:77bec1402dcd0987e9022326473fdbcc767304892a533ed8c29888dacb7dddbc"}, -] -tomli = [ - {file = "tomli-1.2.3-py3-none-any.whl", hash = "sha256:e3069e4be3ead9668e21cb9b074cd948f7b3113fd9c8bba083f48247aab8b11c"}, - {file = "tomli-1.2.3.tar.gz", hash = "sha256:05b6166bff487dc068d322585c7ea4ef78deed501cc124060e0f238e89a9231f"}, -] -tomlkit = [ - {file = "tomlkit-0.11.1-py3-none-any.whl", hash = "sha256:1c5bebdf19d5051e2e1de6cf70adfc5948d47221f097fcff7a3ffc91e953eaf5"}, - {file = "tomlkit-0.11.1.tar.gz", hash = "sha256:61901f81ff4017951119cd0d1ed9b7af31c821d6845c8c477587bbdcd5e5854e"}, -] -tqdm = [ - {file = "tqdm-4.64.0-py2.py3-none-any.whl", hash = "sha256:74a2cdefe14d11442cedf3ba4e21a3b84ff9a2dbdc6cfae2c34addb2a14a5ea6"}, - {file = "tqdm-4.64.0.tar.gz", hash = "sha256:40be55d30e200777a307a7585aee69e4eabb46b4ec6a4b4a5f2d9f11e7d5408d"}, -] -traitlets = [ - {file = "traitlets-5.3.0-py3-none-any.whl", hash = "sha256:65fa18961659635933100db8ca120ef6220555286949774b9cfc106f941d1c7a"}, - {file = "traitlets-5.3.0.tar.gz", hash = "sha256:0bb9f1f9f017aa8ec187d8b1b2a7a6626a2a1d877116baba52a129bfa124f8e2"}, -] -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"}, -] -urllib3 = [ - {file = "urllib3-1.26.10-py2.py3-none-any.whl", hash = "sha256:8298d6d56d39be0e3bc13c1c97d133f9b45d797169a0e11cdd0e0489d786f7ec"}, - {file = "urllib3-1.26.10.tar.gz", hash = "sha256:879ba4d1e89654d9769ce13121e0f94310ea32e8d2f8cf587b77c08bbcdb30d6"}, -] -wcwidth = [ - {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, - {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, -] -wmctrl = [ - {file = "wmctrl-0.4.tar.gz", hash = "sha256:66cbff72b0ca06a22ec3883ac3a4d7c41078bdae4fb7310f52951769b10e14e0"}, -] -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"}, - {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5a9a0d155deafd9448baff28c08e150d9b24ff010e899311ddd63c45c2445e28"}, - {file = "wrapt-1.14.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ddaea91abf8b0d13443f6dac52e89051a5063c7d014710dcb4d4abb2ff811a59"}, - {file = "wrapt-1.14.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:36f582d0c6bc99d5f39cd3ac2a9062e57f3cf606ade29a0a0d6b323462f4dd87"}, - {file = "wrapt-1.14.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:7ef58fb89674095bfc57c4069e95d7a31cfdc0939e2a579882ac7d55aadfd2a1"}, - {file = "wrapt-1.14.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e2f83e18fe2f4c9e7db597e988f72712c0c3676d337d8b101f6758107c42425b"}, - {file = "wrapt-1.14.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:ee2b1b1769f6707a8a445162ea16dddf74285c3964f605877a20e38545c3c462"}, - {file = "wrapt-1.14.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:833b58d5d0b7e5b9832869f039203389ac7cbf01765639c7309fd50ef619e0b1"}, - {file = "wrapt-1.14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:80bb5c256f1415f747011dc3604b59bc1f91c6e7150bd7db03b19170ee06b320"}, - {file = "wrapt-1.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:07f7a7d0f388028b2df1d916e94bbb40624c59b48ecc6cbc232546706fac74c2"}, - {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02b41b633c6261feff8ddd8d11c711df6842aba629fdd3da10249a53211a72c4"}, - {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2fe803deacd09a233e4762a1adcea5db5d31e6be577a43352936179d14d90069"}, - {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:257fd78c513e0fb5cdbe058c27a0624c9884e735bbd131935fd49e9fe719d310"}, - {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4fcc4649dc762cddacd193e6b55bc02edca674067f5f98166d7713b193932b7f"}, - {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:11871514607b15cfeb87c547a49bca19fde402f32e2b1c24a632506c0a756656"}, - {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8ad85f7f4e20964db4daadcab70b47ab05c7c1cf2a7c1e51087bfaa83831854c"}, - {file = "wrapt-1.14.1-cp310-cp310-win32.whl", hash = "sha256:a9a52172be0b5aae932bef82a79ec0a0ce87288c7d132946d645eba03f0ad8a8"}, - {file = "wrapt-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:6d323e1554b3d22cfc03cd3243b5bb815a51f5249fdcbb86fda4bf62bab9e164"}, - {file = "wrapt-1.14.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:43ca3bbbe97af00f49efb06e352eae40434ca9d915906f77def219b88e85d907"}, - {file = "wrapt-1.14.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:6b1a564e6cb69922c7fe3a678b9f9a3c54e72b469875aa8018f18b4d1dd1adf3"}, - {file = "wrapt-1.14.1-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:00b6d4ea20a906c0ca56d84f93065b398ab74b927a7a3dbd470f6fc503f95dc3"}, - {file = "wrapt-1.14.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:a85d2b46be66a71bedde836d9e41859879cc54a2a04fad1191eb50c2066f6e9d"}, - {file = "wrapt-1.14.1-cp35-cp35m-win32.whl", hash = "sha256:dbcda74c67263139358f4d188ae5faae95c30929281bc6866d00573783c422b7"}, - {file = "wrapt-1.14.1-cp35-cp35m-win_amd64.whl", hash = "sha256:b21bb4c09ffabfa0e85e3a6b623e19b80e7acd709b9f91452b8297ace2a8ab00"}, - {file = "wrapt-1.14.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:9e0fd32e0148dd5dea6af5fee42beb949098564cc23211a88d799e434255a1f4"}, - {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9736af4641846491aedb3c3f56b9bc5568d92b0692303b5a305301a95dfd38b1"}, - {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b02d65b9ccf0ef6c34cba6cf5bf2aab1bb2f49c6090bafeecc9cd81ad4ea1c1"}, - {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21ac0156c4b089b330b7666db40feee30a5d52634cc4560e1905d6529a3897ff"}, - {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:9f3e6f9e05148ff90002b884fbc2a86bd303ae847e472f44ecc06c2cd2fcdb2d"}, - {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:6e743de5e9c3d1b7185870f480587b75b1cb604832e380d64f9504a0535912d1"}, - {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d79d7d5dc8a32b7093e81e97dad755127ff77bcc899e845f41bf71747af0c569"}, - {file = "wrapt-1.14.1-cp36-cp36m-win32.whl", hash = "sha256:81b19725065dcb43df02b37e03278c011a09e49757287dca60c5aecdd5a0b8ed"}, - {file = "wrapt-1.14.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b014c23646a467558be7da3d6b9fa409b2c567d2110599b7cf9a0c5992b3b471"}, - {file = "wrapt-1.14.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:88bd7b6bd70a5b6803c1abf6bca012f7ed963e58c68d76ee20b9d751c74a3248"}, - {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5901a312f4d14c59918c221323068fad0540e34324925c8475263841dbdfe68"}, - {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d77c85fedff92cf788face9bfa3ebaa364448ebb1d765302e9af11bf449ca36d"}, - {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d649d616e5c6a678b26d15ece345354f7c2286acd6db868e65fcc5ff7c24a77"}, - {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7d2872609603cb35ca513d7404a94d6d608fc13211563571117046c9d2bcc3d7"}, - {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:ee6acae74a2b91865910eef5e7de37dc6895ad96fa23603d1d27ea69df545015"}, - {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2b39d38039a1fdad98c87279b48bc5dce2c0ca0d73483b12cb72aa9609278e8a"}, - {file = "wrapt-1.14.1-cp37-cp37m-win32.whl", hash = "sha256:60db23fa423575eeb65ea430cee741acb7c26a1365d103f7b0f6ec412b893853"}, - {file = "wrapt-1.14.1-cp37-cp37m-win_amd64.whl", hash = "sha256:709fe01086a55cf79d20f741f39325018f4df051ef39fe921b1ebe780a66184c"}, - {file = "wrapt-1.14.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8c0ce1e99116d5ab21355d8ebe53d9460366704ea38ae4d9f6933188f327b456"}, - {file = "wrapt-1.14.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e3fb1677c720409d5f671e39bac6c9e0e422584e5f518bfd50aa4cbbea02433f"}, - {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:642c2e7a804fcf18c222e1060df25fc210b9c58db7c91416fb055897fc27e8cc"}, - {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b7c050ae976e286906dd3f26009e117eb000fb2cf3533398c5ad9ccc86867b1"}, - {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef3f72c9666bba2bab70d2a8b79f2c6d2c1a42a7f7e2b0ec83bb2f9e383950af"}, - {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:01c205616a89d09827986bc4e859bcabd64f5a0662a7fe95e0d359424e0e071b"}, - {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5a0f54ce2c092aaf439813735584b9537cad479575a09892b8352fea5e988dc0"}, - {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2cf71233a0ed05ccdabe209c606fe0bac7379fdcf687f39b944420d2a09fdb57"}, - {file = "wrapt-1.14.1-cp38-cp38-win32.whl", hash = "sha256:aa31fdcc33fef9eb2552cbcbfee7773d5a6792c137b359e82879c101e98584c5"}, - {file = "wrapt-1.14.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1967f46ea8f2db647c786e78d8cc7e4313dbd1b0aca360592d8027b8508e24d"}, - {file = "wrapt-1.14.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3232822c7d98d23895ccc443bbdf57c7412c5a65996c30442ebe6ed3df335383"}, - {file = "wrapt-1.14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:988635d122aaf2bdcef9e795435662bcd65b02f4f4c1ae37fbee7401c440b3a7"}, - {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cca3c2cdadb362116235fdbd411735de4328c61425b0aa9f872fd76d02c4e86"}, - {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d52a25136894c63de15a35bc0bdc5adb4b0e173b9c0d07a2be9d3ca64a332735"}, - {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40e7bc81c9e2b2734ea4bc1aceb8a8f0ceaac7c5299bc5d69e37c44d9081d43b"}, - {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b9b7a708dd92306328117d8c4b62e2194d00c365f18eff11a9b53c6f923b01e3"}, - {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6a9a25751acb379b466ff6be78a315e2b439d4c94c1e99cb7266d40a537995d3"}, - {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:34aa51c45f28ba7f12accd624225e2b1e5a3a45206aa191f6f9aac931d9d56fe"}, - {file = "wrapt-1.14.1-cp39-cp39-win32.whl", hash = "sha256:dee0ce50c6a2dd9056c20db781e9c1cfd33e77d2d569f5d1d9321c641bb903d5"}, - {file = "wrapt-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:dee60e1de1898bde3b238f18340eec6148986da0455d8ba7848d50470a7a32fb"}, - {file = "wrapt-1.14.1.tar.gz", hash = "sha256:380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d"}, -] -yadism = [ - {file = "yadism-0.11.2-py3-none-any.whl", hash = "sha256:108e14cad6ba24dcfc37743399d98fc726f91a8056080ef9887a1911aafef078"}, - {file = "yadism-0.11.2.tar.gz", hash = "sha256:760b31ab27fcaa681329aea51f42bb655bc50b42392761ac89cc48d0f84b3c1f"}, -] -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/pyproject.toml b/pyproject.toml index deda98d2..bf0a413e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,7 +30,7 @@ eko = {extras = ["box"], version = "^0.9.4"} [tool.poetry.dev-dependencies] pytest = "^5.2" pdbpp = "^0.10.3" -black = "^21.9b0" +black = "^22.1.0" isort = "^5.9.3" ipython = "^8.0" Sphinx = "^4.2.0" diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py new file mode 100644 index 00000000..5244b64e --- /dev/null +++ b/runcardsrunner/configs.py @@ -0,0 +1,37 @@ +import pathlib + +import appdirs +import tomli + +name = "runcardsrunner.toml" + + +def detect(path=None): + paths = [] + + if path is not None: + path = pathlib.Path(path) + paths.append(path) + + paths.append(pathlib.Path.cwd()) + paths.append(pathlib.Path.home()) + paths.append(pathlib.Path(appdirs.user_config_dir())) + paths.append(pathlib.Path(appdirs.site_config_dir())) + + for p in paths: + configs = p / name + if configs.is_file(): + return configs + + raise FileNotFoundError("No configurations file detected.") + + +def load(path=None): + if path is None: + try: + path = detect() + except FileNotFoundError: + return None + + with open(path, "rb") as fd: + return tomli.load(fd) From aa225f2ea115e7166c22ce1b56dfb93fe028ab57 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Thu, 17 Feb 2022 22:23:11 +0100 Subject: [PATCH 02/60] Remove installation script --- rr | 92 +------------------------------------------------------------- 1 file changed, 1 insertion(+), 91 deletions(-) diff --git a/rr b/rr index 1c2402a5..037a5219 100755 --- a/rr +++ b/rr @@ -3,10 +3,8 @@ """ Zero-dependency bootstrap script """ -import argparse import os import pathlib -import shutil import site import subprocess import sys @@ -14,68 +12,6 @@ import sys here = pathlib.Path(".").parent.absolute() -def parse_args(): - parser = argparse.ArgumentParser() - - silence = parser.add_mutually_exclusive_group() - silence.add_argument( - "-y", "--yes", action="store_true", help="yes to every questions" - ) - silence.add_argument( - "-n", "--no", action="store_true", help="no to every questions" - ) - silence.add_argument( - "--default", action="store_true", help="default to every questions" - ) - - parser.add_argument( - "--user", - action="store_true", - help="install user wide (only relevant for pip installation)", - ) - - return parser.parse_args() - - -def load_options(yes, no, default): - yes_choice = "[Y/n]" - no_choice = "[y/N]" - - def question(input_text, default_yes): - if not any([yes, no, default]): - choice = yes_choice if default_yes else no_choice - answer = input(f"{input_text} {choice} ") - else: - if yes: - answer = "y" - elif no: - answer = "n" - else: - answer = "y" if default_yes else "n" - return answer - - return question - - -def repo_management(pipx, user): - if pipx: - print("installing management dependecies with pipx...") - subprocess.run("pipx install poetry".split()) - subprocess.run("pipx inject poetry poetry-dynamic-versioning".split()) - subprocess.run("pipx install pre-commit".split()) - else: - print("installing management dependecies with pip...") - install_poetry_url = "https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py" - pip = f"{sys.executable} -m pip" - - proc = subprocess.run( - f"curl -sSL {install_poetry_url}".split(), capture_output=True - ) - subprocess.run(f"{sys.executable} -".split(), input=proc.stdout) - subprocess.run(f"{pip} install{user} poetry-dynamic-versioning".split()) - subprocess.run(f"{pip} install{user} pre-commit".split()) - - def update_path(): """ Since in some environments the User Scripts Directory (PEP-370) is not part @@ -94,30 +30,4 @@ def update_path(): if __name__ == "__main__": update_path() - if sys.argv[1] != "install" or len(sys.argv) > 2: - subprocess.run("poetry run rr".split() + sys.argv[1:]) - else: - sys.argv = [sys.argv[0]] + sys.argv[2:] - args = parse_args() - - question = load_options(args.yes, args.no, args.default) - - if shutil.which("pipx") is not None: - pipx_answer = question("Do you want to install with pipx?", False) - else: - pipx_answer = "no" - - pipx = pipx_answer.lower() in ["y", "yes"] - user = " --user" if args.user else "" - repo_management(pipx, user) - - subprocess.run("poetry install".split()) - if sys.version_info < (3, 8): - env_path = ( - subprocess.run("poetry env info -p".split(), capture_output=True) - .stdout.decode() - .strip() - ) - python_exe = pathlib.Path(env_path).absolute() / "bin" / "python" - subprocess.run(f"{python_exe} -m pip install cached_property".split()) - subprocess.run("pre-commit install".split()) + subprocess.run("poetry run rr".split() + sys.argv[1:]) From 365e0296ede959cb0510bc96d3ac089f5c060aad Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Thu, 17 Feb 2022 23:09:56 +0100 Subject: [PATCH 03/60] Add configs specification to CLI --- runcardsrunner/cli/_base.py | 58 +++++++++++++++++++++++++++++++++++-- runcardsrunner/configs.py | 40 +++++-------------------- runcardsrunner/paths.py | 1 + 3 files changed, 65 insertions(+), 34 deletions(-) diff --git a/runcardsrunner/cli/_base.py b/runcardsrunner/cli/_base.py index 4b0991d4..b6c34f89 100644 --- a/runcardsrunner/cli/_base.py +++ b/runcardsrunner/cli/_base.py @@ -1,9 +1,63 @@ # -*- coding: utf-8 -*- +import pathlib + +import appdirs import click +import tomli + +from .. import configs CONTEXT_SETTINGS = dict(help_option_names=["-h", "--help"]) @click.group(context_settings=CONTEXT_SETTINGS) -def command(): - pass +@click.option( + "-c", + "--configs", + "cfg", + default=None, + type=click.Path(resolve_path=True, path_type=pathlib.Path), + help="Explicitly specify config file (it has to be a valid TOML file).", +) +def command(cfg): + base_configs = load(cfg) + configs.configs = configs.defaults(base_configs) + if cfg is not None: + print(f"Configurations loaded from '{cfg}'") + + +def detect(path=None): + paths = [] + + if path is not None: + path = pathlib.Path(path) + paths.append(path) + + paths.append(pathlib.Path.cwd()) + paths.append(pathlib.Path.home()) + paths.append(pathlib.Path(appdirs.user_config_dir())) + paths.append(pathlib.Path(appdirs.site_config_dir())) + + for p in paths: + configs_file = p / configs.name if p.is_dir() else p + + if configs_file.is_file(): + return configs_file + + raise FileNotFoundError("No configurations file detected.") + + +def load(path=None): + try: + path = detect(path) + except FileNotFoundError: + if path is None: + return {"root": pathlib.Path.cwd()} + else: + print("Configuration path specified is not valid.") + quit() + + with open(path, "rb") as fd: + loaded = tomli.load(fd) + + return loaded diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index 5244b64e..2d2bd1f7 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -1,37 +1,13 @@ -import pathlib - -import appdirs -import tomli +# -*- coding: utf-8 -*- +import copy +configs = None +"Holds loaded configurations" name = "runcardsrunner.toml" +"Name of the config while (wherever it is placed)" -def detect(path=None): - paths = [] - - if path is not None: - path = pathlib.Path(path) - paths.append(path) - - paths.append(pathlib.Path.cwd()) - paths.append(pathlib.Path.home()) - paths.append(pathlib.Path(appdirs.user_config_dir())) - paths.append(pathlib.Path(appdirs.site_config_dir())) - - for p in paths: - configs = p / name - if configs.is_file(): - return configs - - raise FileNotFoundError("No configurations file detected.") - - -def load(path=None): - if path is None: - try: - path = detect() - except FileNotFoundError: - return None +def defaults(base_configs): + configs = copy.deepcopy(base_configs) - with open(path, "rb") as fd: - return tomli.load(fd) + return configs diff --git a/runcardsrunner/paths.py b/runcardsrunner/paths.py index e94bb165..95a0fb21 100644 --- a/runcardsrunner/paths.py +++ b/runcardsrunner/paths.py @@ -3,6 +3,7 @@ import shutil import tempfile +# TODO: deprecated pkg = pathlib.Path(__file__).absolute().parent root = pkg.parent From 0e962bff563a34f8b80b2b3a7ee72041d5538719 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 18 Feb 2022 00:30:54 +0100 Subject: [PATCH 04/60] Add non-overriding defaults for paths and commands --- runcardsrunner.toml | 2 ++ runcardsrunner/cli/_base.py | 9 +++++- runcardsrunner/configs.py | 62 ++++++++++++++++++++++++++++++++++++- runcardsrunner/install.py | 14 ++++++--- 4 files changed, 81 insertions(+), 6 deletions(-) create mode 100644 runcardsrunner.toml diff --git a/runcardsrunner.toml b/runcardsrunner.toml new file mode 100644 index 00000000..e3d529a1 --- /dev/null +++ b/runcardsrunner.toml @@ -0,0 +1,2 @@ +[paths] +runcards = "nnpdf31_proc" diff --git a/runcardsrunner/cli/_base.py b/runcardsrunner/cli/_base.py index b6c34f89..79f3dce4 100644 --- a/runcardsrunner/cli/_base.py +++ b/runcardsrunner/cli/_base.py @@ -25,6 +25,10 @@ def command(cfg): if cfg is not None: print(f"Configurations loaded from '{cfg}'") + import rich + + rich.print(configs.configs) + def detect(path=None): paths = [] @@ -52,7 +56,7 @@ def load(path=None): path = detect(path) except FileNotFoundError: if path is None: - return {"root": pathlib.Path.cwd()} + return {"paths": {"root": pathlib.Path.cwd()}} else: print("Configuration path specified is not valid.") quit() @@ -60,4 +64,7 @@ def load(path=None): with open(path, "rb") as fd: loaded = tomli.load(fd) + if "root" not in loaded["paths"]: + loaded["paths"]["root"] = pathlib.Path(path).parent + return loaded diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index 2d2bd1f7..3cf23bb8 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -1,13 +1,73 @@ # -*- coding: utf-8 -*- import copy +import pathlib +import shutil +import tempfile -configs = None +configs = {} "Holds loaded configurations" name = "runcardsrunner.toml" "Name of the config while (wherever it is placed)" def defaults(base_configs): + """Provide additional defaults. + + Note + ---- + The general rule is to never replace user provided input. + """ configs = copy.deepcopy(base_configs) + configs = add_paths(configs) + configs = add_commands(configs) + return configs + + +def add_paths(configs): + for key, default in dict( + runcards="runcards", theories="theories", prefix=".prefix" + ).items(): + if key not in configs["paths"]: + configs["paths"][key] = configs["paths"]["root"] / default + elif pathlib.Path(configs["paths"][key]).anchor == "": + configs["paths"][key] = configs["paths"]["root"] / configs["paths"][key] + else: + configs["paths"][key] = pathlib.Path(configs["paths"][key]) + + configs["paths"]["rust_init"] = tempfile.mktemp() + configs = add_prefix_paths(configs) + + return configs + + +def add_prefix_paths(configs): + prefix = configs["paths"]["prefix"] + paths = {} + + paths["bin"] = prefix / "bin" + paths["lib"] = prefix / "lib" + paths["mg5amc"] = prefix / "mg5amc" + paths["pineappl"] = prefix / "pineappl" + paths["cargo"] = prefix / "cargo" + paths["lhapdf"] = prefix / "lhapdf" + paths["lhapdf_data_alternative"] = prefix / "share" / "LHAPDF" + + prefix_scope = "_prefix" + + if prefix_scope not in configs["paths"]: + configs["paths"][prefix_scope] = paths + else: + for key, path in paths.items(): + if key not in configs["paths"]["_prefix"]: + configs["paths"]["_prefix"] = paths + + return configs + + +def add_commands(configs): + commands = configs["commands"] + + commands["mg5"] = configs["paths"]["prefix"] / "bin" / "mg5_aMC" + commands["pineappl"] = shutil.which("pineappl") diff --git a/runcardsrunner/install.py b/runcardsrunner/install.py index faee6192..be618cd3 100644 --- a/runcardsrunner/install.py +++ b/runcardsrunner/install.py @@ -12,7 +12,7 @@ import pygit2 import requests -from . import paths, tools +from . import configs, paths, tools from .external import vrap paths.prefix.mkdir(exist_ok=True) @@ -42,7 +42,8 @@ def mg5amc(): """ # define availability condition - condition = lambda: paths.mg5_exe.exists() and os.access(paths.mg5_exe, os.X_OK) + def condition(): + paths.mg5_exe.exists() and os.access(paths.mg5_exe, os.X_OK) if condition(): print("✓ Found mg5amc") @@ -150,9 +151,13 @@ def pineappl(cli=False): """ # define availability condition - installed = lambda: pkgconfig.exists("pineappl_capi") - cli_installed = lambda: shutil.which("pineappl") is not None + def installed(): + pkgconfig.exists("pineappl_capi") + def cli_installed(): + shutil.which("pineappl") is not None + + # check if there is something to do at all if installed() and (not cli or cli_installed()): print("✓ Found pineappl") return True @@ -187,6 +192,7 @@ def pineappl(cli=False): + [str(paths.prefix)], cwd=paths.pineappl, ) + configs.configs["commands"]["pineappl"] = shutil.which("pineappl") # retest availability return installed() and (not cli or cli_installed()) From fd54195b6f08e640a55030a8a935a2f957874c78 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 18 Feb 2022 01:57:12 +0100 Subject: [PATCH 05/60] Add Configurations object --- runcardsrunner/cli/_base.py | 4 +- runcardsrunner/configs.py | 101 ++++++++++++++++++++++++++++-------- 2 files changed, 79 insertions(+), 26 deletions(-) diff --git a/runcardsrunner/cli/_base.py b/runcardsrunner/cli/_base.py index 79f3dce4..8db20685 100644 --- a/runcardsrunner/cli/_base.py +++ b/runcardsrunner/cli/_base.py @@ -25,9 +25,7 @@ def command(cfg): if cfg is not None: print(f"Configurations loaded from '{cfg}'") - import rich - - rich.print(configs.configs) + __import__("rich").print(configs.configs) def detect(path=None): diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index 3cf23bb8..d8840d0d 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -1,15 +1,71 @@ # -*- coding: utf-8 -*- -import copy import pathlib import shutil import tempfile -configs = {} -"Holds loaded configurations" +import rich + name = "runcardsrunner.toml" "Name of the config while (wherever it is placed)" +class Configurations: + def __init__(self, dictionary=None): + if isinstance(dictionary, Configurations): + self._dict = dictionary._dict + elif dictionary is None: + self._dict = {} + else: + self._dict = dictionary + + def __repr__(self): + return self._dict.__repr__() + + def __getattribute__(self, name): + if name[0] == "_": + return super().__getattribute__(name) + + value = self._dict[name] + if isinstance(value, dict): + value = Configurations(value) + return value + + def __getitem__(self, key): + return self.__getattribute__(key) + + def __setattribute__(self, name, value): + self._dict[name] = value + + def __setitem__(self, key, value): + if key[0] == "_": + raise LookupError( + "Elements with leading '_' can not be retrieved later, so you" + f" can not set (attempted: '{key}')" + ) + + self._dict[key] = value + + def __contains__(self, item): + return item in self._dict + + def _pprint(self): + rich.print(self._dict) + + +def add_scope(base, scope_id, scope): + "Do not override." + if scope_id not in base: + base[scope_id] = scope + else: + for key, value in scope.items(): + if key not in base[scope_id]: + base[scope_id] = value + + +configs = Configurations() +"Holds loaded configurations" + + def defaults(base_configs): """Provide additional defaults. @@ -17,33 +73,33 @@ def defaults(base_configs): ---- The general rule is to never replace user provided input. """ - configs = copy.deepcopy(base_configs) + configs = Configurations(base_configs) configs = add_paths(configs) configs = add_commands(configs) - return configs + return Configurations(configs) def add_paths(configs): for key, default in dict( runcards="runcards", theories="theories", prefix=".prefix" ).items(): - if key not in configs["paths"]: - configs["paths"][key] = configs["paths"]["root"] / default - elif pathlib.Path(configs["paths"][key]).anchor == "": - configs["paths"][key] = configs["paths"]["root"] / configs["paths"][key] + if key not in configs.paths: + configs.paths[key] = configs.paths.root / default + elif pathlib.Path(configs.paths[key]).anchor == "": + configs.paths[key] = configs.paths.root / configs.paths[key] else: - configs["paths"][key] = pathlib.Path(configs["paths"][key]) + configs.paths[key] = pathlib.Path(configs.paths[key]) - configs["paths"]["rust_init"] = tempfile.mktemp() + configs.paths["rust_init"] = tempfile.mktemp() configs = add_prefix_paths(configs) return configs def add_prefix_paths(configs): - prefix = configs["paths"]["prefix"] + prefix = configs.paths.prefix paths = {} paths["bin"] = prefix / "bin" @@ -54,20 +110,19 @@ def add_prefix_paths(configs): paths["lhapdf"] = prefix / "lhapdf" paths["lhapdf_data_alternative"] = prefix / "share" / "LHAPDF" - prefix_scope = "_prefix" - - if prefix_scope not in configs["paths"]: - configs["paths"][prefix_scope] = paths - else: - for key, path in paths.items(): - if key not in configs["paths"]["_prefix"]: - configs["paths"]["_prefix"] = paths + prefix_scope = "prefixed" + add_scope(configs.paths, prefix_scope, paths) return configs def add_commands(configs): - commands = configs["commands"] + commands = {} - commands["mg5"] = configs["paths"]["prefix"] / "bin" / "mg5_aMC" - commands["pineappl"] = shutil.which("pineappl") + commands["mg5"] = configs.paths.prefix / "bin" / "mg5_aMC" + pineappl = shutil.which("pineappl") + commands["pineappl"] = pathlib.Path(pineappl) if pineappl is not None else None + + add_scope(configs, "commands", commands) + + return configs From f34809f2e804c1604e5f641935fd098f9e5c2c97 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 18 Feb 2022 02:18:52 +0100 Subject: [PATCH 06/60] Remove paths, restore list subcommand --- runcardsrunner/cli/_base.py | 2 -- runcardsrunner/cli/list.py | 6 +++--- runcardsrunner/configs.py | 9 +++++---- runcardsrunner/install.py | 10 ++++++---- runcardsrunner/paths.py | 33 --------------------------------- 5 files changed, 14 insertions(+), 46 deletions(-) diff --git a/runcardsrunner/cli/_base.py b/runcardsrunner/cli/_base.py index 8db20685..d72d6625 100644 --- a/runcardsrunner/cli/_base.py +++ b/runcardsrunner/cli/_base.py @@ -25,8 +25,6 @@ def command(cfg): if cfg is not None: print(f"Configurations loaded from '{cfg}'") - __import__("rich").print(configs.configs) - def detect(path=None): paths = [] diff --git a/runcardsrunner/cli/list.py b/runcardsrunner/cli/list.py index 11448f98..a713ce9f 100644 --- a/runcardsrunner/cli/list.py +++ b/runcardsrunner/cli/list.py @@ -2,7 +2,7 @@ import rich import rich.markdown -from .. import external, paths +from .. import configs, external from ._base import command @@ -14,13 +14,13 @@ def subcommand(): @subcommand.command() def runcards(): """List available runcards.""" - main(paths.runcards) + main(configs.configs.paths.runcards) @subcommand.command() def theories(): """List available theories.""" - main(paths.theories, files=True, prefix="theory_") + main(configs.configs.paths.theories, files=True, prefix="theory_") @subcommand.group() diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index d8840d0d..78d5ff8e 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -52,6 +52,11 @@ def _pprint(self): rich.print(self._dict) +# better to declare immediately the correct type +configs = Configurations() +"Holds loaded configurations" + + def add_scope(base, scope_id, scope): "Do not override." if scope_id not in base: @@ -62,10 +67,6 @@ def add_scope(base, scope_id, scope): base[scope_id] = value -configs = Configurations() -"Holds loaded configurations" - - def defaults(base_configs): """Provide additional defaults. diff --git a/runcardsrunner/install.py b/runcardsrunner/install.py index be618cd3..0f1cfa6e 100644 --- a/runcardsrunner/install.py +++ b/runcardsrunner/install.py @@ -15,10 +15,6 @@ from . import configs, paths, tools from .external import vrap -paths.prefix.mkdir(exist_ok=True) -paths.bin.mkdir(exist_ok=True) -paths.lib.mkdir(exist_ok=True) - mg5_repo = "lp:~maddevelopers/mg5amcnlo/3.3.1" "bazaar/breeze repo location for MG5aMC\\@NLO" mg5_convert = """ @@ -32,6 +28,12 @@ "git repo location for pineappl" +def init_prefix(): + configs.configs.prefix.mkdir(exist_ok=True) + configs.configs.bin.mkdir(exist_ok=True) + configs.configs.lib.mkdir(exist_ok=True) + + def mg5amc(): """Initialize `MadGraph5_aMC\\@NLO `_. diff --git a/runcardsrunner/paths.py b/runcardsrunner/paths.py index 95a0fb21..7a6255c4 100644 --- a/runcardsrunner/paths.py +++ b/runcardsrunner/paths.py @@ -1,40 +1,7 @@ # -*- coding: utf-8 -*- import pathlib -import shutil -import tempfile -# TODO: deprecated pkg = pathlib.Path(__file__).absolute().parent -root = pkg.parent # internal lhapdf_conf = pkg / "confs" / "lhapdf.conf" - -# external -runcards = root / "nnpdf31_proc" -theories = root / "theories" - -# prefix and locally installed -prefix = root / ".prefix" -bin = prefix / "bin" -lib = prefix / "lib" -mg5amc = prefix / "mg5amc" -mg5_exe = mg5amc / "bin" / "mg5_aMC" -vrap_exe = bin / "Vrap" -pineappl = prefix / "pineappl" -cargo = prefix / "cargo" -lhapdf_dir = prefix / "lhapdf" -# lhapdf data -lhapdf_data_alternative = prefix / "share" / "LHAPDF" - - -def pineappl_exe(): - p = shutil.which("pineappl") - if p is not None: - return pathlib.Path() - else: - raise OSError("pineappl installation not found.") - - -# tmp -rust_init = tempfile.mktemp() From 01f089052a5e03248987e9b20f0d4af636917ab4 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 18 Feb 2022 02:32:09 +0100 Subject: [PATCH 07/60] Empty and remove paths module --- runcardsrunner/install.py | 5 ++++- runcardsrunner/paths.py | 7 ------- 2 files changed, 4 insertions(+), 8 deletions(-) delete mode 100644 runcardsrunner/paths.py diff --git a/runcardsrunner/install.py b/runcardsrunner/install.py index 0f1cfa6e..0469ffbb 100644 --- a/runcardsrunner/install.py +++ b/runcardsrunner/install.py @@ -245,7 +245,10 @@ def lhapdf_conf(pdf): except PermissionError: pass paths.lhapdf_data_alternative.mkdir(parents=True, exist_ok=True) - shutil.copy2(paths.lhapdf_conf, paths.lhapdf_data_alternative) + shutil.copy2( + pathlib.Path(__file__).absolute().parent / "confs" / "lhapdf.conf", + paths.lhapdf_data_alternative, + ) update_lhapdf_path(paths.lhapdf_data_alternative) diff --git a/runcardsrunner/paths.py b/runcardsrunner/paths.py deleted file mode 100644 index 7a6255c4..00000000 --- a/runcardsrunner/paths.py +++ /dev/null @@ -1,7 +0,0 @@ -# -*- coding: utf-8 -*- -import pathlib - -pkg = pathlib.Path(__file__).absolute().parent - -# internal -lhapdf_conf = pkg / "confs" / "lhapdf.conf" From ed6cf48efc377659dd02ae117dc91bcdb8499f37 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 18 Feb 2022 11:44:59 +0100 Subject: [PATCH 08/60] Fix update subcommands, and several paths import --- runcardsrunner/__init__.py | 1 - runcardsrunner/cli/update.py | 10 +++- runcardsrunner/configs.py | 4 +- runcardsrunner/external/interface.py | 14 +++-- runcardsrunner/external/mg5/__init__.py | 33 +++++----- runcardsrunner/external/positivity.py | 6 +- runcardsrunner/external/vrap.py | 14 +++-- runcardsrunner/external/yad.py | 6 +- runcardsrunner/install.py | 80 +++++++++++++++---------- runcardsrunner/tools.py | 6 +- 10 files changed, 106 insertions(+), 68 deletions(-) diff --git a/runcardsrunner/__init__.py b/runcardsrunner/__init__.py index 67dab754..f2a8a71e 100644 --- a/runcardsrunner/__init__.py +++ b/runcardsrunner/__init__.py @@ -2,5 +2,4 @@ __version__ = "0.0.0" -from . import cli, external, install, paths, tools from .cli import command diff --git a/runcardsrunner/cli/update.py b/runcardsrunner/cli/update.py index e384600b..2c904bd0 100644 --- a/runcardsrunner/cli/update.py +++ b/runcardsrunner/cli/update.py @@ -5,14 +5,18 @@ import click import rich -from .. import paths, tools +from .. import configs, tools from ._base import command @command.command("update") @click.argument("datasets", nargs=-1) def subcommand(datasets): - """Update datasets metadata.""" + """Update datasets metadata. + + DATASETS are an arbitrary number of datasets to be updated (if empty, do + nothing). + """ main(datasets) @@ -24,7 +28,7 @@ def main(datasets): if "pineappl" in dataset: dataset = pathlib.Path(dataset).stem - metadata = paths.runcards / dataset / "metadata.txt" + metadata = configs.configs.paths.runcards / dataset / "metadata.txt" entries = {} with open(metadata) as fd: diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index 78d5ff8e..53c056fc 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -2,6 +2,7 @@ import pathlib import shutil import tempfile +import typing import rich @@ -21,7 +22,7 @@ def __init__(self, dictionary=None): def __repr__(self): return self._dict.__repr__() - def __getattribute__(self, name): + def __getattribute__(self, name) -> typing.Any: if name[0] == "_": return super().__getattribute__(name) @@ -121,6 +122,7 @@ def add_commands(configs): commands = {} commands["mg5"] = configs.paths.prefix / "bin" / "mg5_aMC" + commands["vrap"] = configs.paths.prefix / "bin" / "Vrap" pineappl = shutil.which("pineappl") commands["pineappl"] = pathlib.Path(pineappl) if pineappl is not None else None diff --git a/runcardsrunner/external/interface.py b/runcardsrunner/external/interface.py index 4afe7101..e4d946ec 100644 --- a/runcardsrunner/external/interface.py +++ b/runcardsrunner/external/interface.py @@ -6,7 +6,7 @@ import pygit2 -from .. import paths, tools +from .. import configs, tools class External(abc.ABC): @@ -35,14 +35,14 @@ def __init__(self, name, theory, pdf, timestamp=None): if timestamp is None: self.dest = tools.create_output_folder(self.name) else: - self.dest = paths.root / (self.name + "-" + self.timestamp) + self.dest = configs.configs.paths.root / (self.name + "-" + self.timestamp) if not self.grid.exists(): tools.decompress(self.grid.with_suffix(".pineappl.lz4")) @property def source(self): """Runcard base directory.""" - return paths.runcards / self.name + return configs.configs.paths.runcards / self.name @property def grid(self): @@ -91,7 +91,7 @@ def results(self): """ @abc.abstractmethod - def collect_versions(self): + def collect_versions(self) -> dict: """Collect necessary version informations. Returns @@ -106,10 +106,12 @@ def annotate_versions(self): """Add version informations as meta data.""" results_log = self.dest / "results.log" # TODO: add pineappl version - # pineappl = paths.pineappl_exe() + # pineappl = configs.configs.paths.pineappl_exe() versions = self.collect_versions() - versions["runcard_gitversion"] = pygit2.Repository(paths.root).describe( + versions["runcard_gitversion"] = pygit2.Repository( + configs.configs.paths.root + ).describe( always_use_long_format=True, describe_strategy=pygit2.GIT_DESCRIBE_TAGS, dirty_suffix="-dirty", diff --git a/runcardsrunner/external/mg5/__init__.py b/runcardsrunner/external/mg5/__init__.py index a60d95f5..1384ede3 100644 --- a/runcardsrunner/external/mg5/__init__.py +++ b/runcardsrunner/external/mg5/__init__.py @@ -8,11 +8,8 @@ import pandas as pd import pineappl -from ... import install, log -from ... import paths as gpaths -from ... import tools +from ... import configs, install, log, tools from .. import interface -from . import paths class Mg5(interface.External): @@ -43,7 +40,7 @@ def run(self): # create output folder log.subprocess( - [str(gpaths.mg5_exe), str(output_file)], + [str(configs.configs.commands.mg5), str(output_file)], cwd=self.dest, out=(self.dest / "output.log"), ) @@ -60,7 +57,9 @@ def run(self): # enforce proper analysis # - copy analysis.f - analysis = (gpaths.runcards / self.name / "analysis.f").read_text() + analysis = ( + configs.configs.paths.runcards / self.name / "analysis.f" + ).read_text() (self.mg5_dir / "FixedOrderAnalysis" / f"{self.name}.f").write_text(analysis) # - update analysis card analysis_card = self.mg5_dir / "Cards" / "FO_analyse_card.dat" @@ -75,7 +74,9 @@ def run(self): # launch file; for the time being we create the file here, but in the # future it should be read from the theory database EDIT: now available # in self.theory - variables = json.loads((gpaths.pkg / "variables.json").read_text()) + variables = json.loads( + (configs.configs.paths.pkg / "variables.json").read_text() + ) variables["LHAPDF_ID"] = self.pdf_id # replace the variables with their values @@ -111,7 +112,7 @@ def run(self): if user_taumin is not None: set_tau_min_patch = ( - (paths.patches / "set_tau_min.patch") + (configs.configs.paths.patches / "set_tau_min.patch") .read_text() .replace("@TAU_MIN@", f"{user_taumin}d0") ) @@ -129,7 +130,7 @@ def run(self): if len(enable_patches_list) != 0: for patch in enable_patches_list: - patch_file = paths.patches / patch + patch_file = configs.configs.paths.patches / patch patch_file = patch_file.with_suffix(patch_file.suffix + ".patch") if not patch_file.exists(): raise ValueError( @@ -140,7 +141,7 @@ def run(self): # launch run log.subprocess( - [str(gpaths.mg5_exe), str(launch_file)], + [str(configs.configs.commands.mg5), str(launch_file)], cwd=self.dest, out=self.dest / "launch.log", ) @@ -207,14 +208,18 @@ def collect_versions(self): versions = {} versions["mg5amc_revno"] = ( subprocess.run( - "brz revno".split(), cwd=gpaths.mg5amc, stdout=subprocess.PIPE + "brz revno".split(), + cwd=configs.configs.paths.mg5amc, + stdout=subprocess.PIPE, ) .stdout.decode() .strip() ) mg5amc_repo = ( subprocess.run( - "brz info".split(), cwd=gpaths.mg5amc, stdout=subprocess.PIPE + "brz info".split(), + cwd=configs.configs.paths.mg5amc, + stdout=subprocess.PIPE, ) .stdout.decode() .strip() @@ -248,7 +253,7 @@ def apply_user_cuts(cuts_file, user_cuts): marker_pos = find_marker_position("logical function passcuts_user", contents) marker_pos = marker_pos + 8 - for fname in paths.cuts_variables.iterdir(): + for fname in configs.configs.paths.cuts_variables.iterdir(): name = fname.stem if any(i[0].startswith(name) for i in user_cuts): contents.insert(marker_pos, fname.read_text()) @@ -273,7 +278,7 @@ def apply_user_cuts(cuts_file, user_cuts): value = value + "d0" - code = (paths.cuts_code / f"{name}.f").read_text().format(value) + code = (configs.configs.paths.cuts_code / f"{name}.f").read_text().format(value) contents.insert(marker_pos, code) with open(cuts_file, "w") as fd: diff --git a/runcardsrunner/external/positivity.py b/runcardsrunner/external/positivity.py index 73199edc..3f5ec508 100644 --- a/runcardsrunner/external/positivity.py +++ b/runcardsrunner/external/positivity.py @@ -7,7 +7,7 @@ import pineappl import yaml -from .. import paths +from .. import configs from . import interface @@ -22,7 +22,7 @@ def is_positivity(name): name : str dataset name """ - return (paths.runcards / name / "positivity.yaml").exists() + return (configs.configs.paths.runcards / name / "positivity.yaml").exists() class Positivity(interface.External): @@ -30,7 +30,7 @@ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) def run(self): - with open(paths.runcards / self.name / "positivity.yaml") as o: + with open(configs.configs.paths.runcards / self.name / "positivity.yaml") as o: self.runcard = yaml.safe_load(o) def generate_pineappl(self): diff --git a/runcardsrunner/external/vrap.py b/runcardsrunner/external/vrap.py index 379d2978..7b1a91a8 100644 --- a/runcardsrunner/external/vrap.py +++ b/runcardsrunner/external/vrap.py @@ -25,7 +25,7 @@ from pineappl.bin import BinRemapper from pineappl.grid import Grid -from .. import install, paths +from .. import configs, install from . import interface _PINEAPPL = "test.pineappl.lz4" @@ -41,7 +41,7 @@ def is_vrap(name): """ Checks whether this is a dataset to be run with vrap """ - return (paths.runcards / name / "vrap.yaml").exists() + return (configs.configs.paths.runcards / name / "vrap.yaml").exists() def yaml_to_vrapcard(yaml_dict, pdf, output_file): @@ -122,7 +122,9 @@ def run(self): """ for b, kin_card in enumerate(self._kin_cards): sp.run( - [paths.vrap_exe, self._input_card, kin_card], cwd=self.dest, check=True + [configs.configs.commands.vrap, self._input_card, kin_card], + cwd=self.dest, + check=True, ) tmppine = self.dest / _PINEAPPL @@ -193,7 +195,11 @@ def results(self): def collect_versions(self): """Currently the version is defined by this file""" - vrap_run = sp.run([paths.vrap_exe, "--version"], capture_output=True, check=True) + vrap_run = sp.run( + [configs.configs.commands.vrap, "--version"], + capture_output=True, + check=True, + ) vrap_version = vrap_run.stdout.decode().split()[-1] return {"vrap_version": vrap_version} diff --git a/runcardsrunner/external/yad.py b/runcardsrunner/external/yad.py index 5b48202b..da2f22db 100644 --- a/runcardsrunner/external/yad.py +++ b/runcardsrunner/external/yad.py @@ -7,7 +7,7 @@ import yadism.output import yaml -from .. import log, paths, tools +from .. import configs, log, tools from . import interface @@ -22,7 +22,7 @@ def is_dis(name): name : str dataset name """ - return (paths.runcards / name / "observable.yaml").exists() + return (configs.configs.paths.runcards / name / "observable.yaml").exists() class Yadism(interface.External): @@ -30,7 +30,7 @@ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # load runcards - with open(paths.runcards / self.name / "observable.yaml") as o: + with open(configs.configs.paths.runcards / self.name / "observable.yaml") as o: self.obs = yaml.safe_load(o) def run(self): diff --git a/runcardsrunner/install.py b/runcardsrunner/install.py index 0469ffbb..6ab9f4f3 100644 --- a/runcardsrunner/install.py +++ b/runcardsrunner/install.py @@ -12,7 +12,7 @@ import pygit2 import requests -from . import configs, paths, tools +from . import configs, tools from .external import vrap mg5_repo = "lp:~maddevelopers/mg5amcnlo/3.3.1" @@ -45,7 +45,9 @@ def mg5amc(): """ # define availability condition def condition(): - paths.mg5_exe.exists() and os.access(paths.mg5_exe, os.X_OK) + configs.configs.paths.mg5_exe.exists() and os.access( + configs.configs.paths.mg5_exe, os.X_OK + ) if condition(): print("✓ Found mg5amc") @@ -54,10 +56,12 @@ def condition(): print("Installing...") # download madgraph in prefix (if not present) - subprocess.run(f"brz branch {mg5_repo} {paths.mg5amc}".split()) + subprocess.run(f"brz branch {mg5_repo} {configs.configs.paths.mg5amc}".split()) # in case we're using python3, we need to convert the model file - subprocess.run(f"{paths.mg5_exe}", input=mg5_convert, encoding="ascii") + subprocess.run( + f"{configs.configs.paths.mg5_exe}", input=mg5_convert, encoding="ascii" + ) # retest availability return condition() @@ -72,7 +76,9 @@ def hawaiian_vrap(): bool whether vrap is now installed """ - condition = lambda: paths.vrap_exe.exists() and os.access(paths.vrap_exe, os.X_OK) + condition = lambda: configs.configs.paths.vrap_exe.exists() and os.access( + configs.configs.paths.vrap_exe, os.X_OK + ) if condition(): print("✓ Found vrap") @@ -96,7 +102,9 @@ def hawaiian_vrap(): build_dir = tmp_vrap / "build" build_dir.mkdir(exist_ok=True) subprocess.run( - ["../src/configure", "--prefix", paths.prefix], cwd=build_dir, check=True + ["../src/configure", "--prefix", configs.configs.paths.prefix], + cwd=build_dir, + check=True, ) subprocess.run(["make", "install"], cwd=build_dir, check=True) @@ -121,20 +129,20 @@ def cargo(): return cargo_exe # if there is not a user cargo update environment - os.environ["CARGO_HOME"] = str(paths.cargo) - if paths.cargo.is_dir(): - return str(paths.cargo / "bin" / "cargo") + os.environ["CARGO_HOME"] = str(configs.configs.paths.cargo) + if configs.configs.paths.cargo.is_dir(): + return str(configs.configs.paths.cargo / "bin" / "cargo") # if cargo not available let's install with requests.get("https://sh.rustup.rs") as r: - with open(paths.rust_init, "wb") as f: + with open(configs.configs.paths.rust_init, "wb") as f: f.write(r.content) # install location is controlled by CARGO_HOME variable subprocess.run( - f"bash {paths.rust_init} --profile minimal --no-modify-path -y".split() + f"bash {configs.configs.paths.rust_init} --profile minimal --no-modify-path -y".split() ) - return str(paths.cargo / "bin" / "cargo") + return str(configs.configs.paths.cargo / "bin" / "cargo") def pineappl(cli=False): @@ -171,10 +179,12 @@ def cli_installed(): if not installed(): try: - repo = pygit2.Repository(paths.pineappl) + repo = pygit2.Repository(configs.configs.paths.pineappl) tools.git_pull(repo) except pygit2.GitError: - repo = pygit2.clone_repository(pineappl_repo, paths.pineappl) + repo = pygit2.clone_repository( + pineappl_repo, configs.configs.paths.pineappl + ) cargo_exe = cargo() subprocess.run([cargo_exe] + "install --force cargo-c".split()) @@ -182,8 +192,11 @@ def cli_installed(): subprocess.run( [cargo_exe] + "cinstall --release --prefix".split() - + [str(paths.prefix), "--manifest-path=pineappl_capi/Cargo.toml"], - cwd=paths.pineappl, + + [ + str(configs.configs.paths.prefix), + "--manifest-path=pineappl_capi/Cargo.toml", + ], + cwd=configs.configs.paths.pineappl, ) if cli and not cli_installed(): @@ -191,8 +204,8 @@ def cli_installed(): subprocess.run( [cargo_exe] + "install --path pineappl_cli --root".split() - + [str(paths.prefix)], - cwd=paths.pineappl, + + [str(configs.configs.paths.prefix)], + cwd=configs.configs.paths.pineappl, ) configs.configs["commands"]["pineappl"] = shutil.which("pineappl") @@ -244,21 +257,21 @@ def lhapdf_conf(pdf): return except PermissionError: pass - paths.lhapdf_data_alternative.mkdir(parents=True, exist_ok=True) + configs.configs.paths.lhapdf_data_alternative.mkdir(parents=True, exist_ok=True) shutil.copy2( pathlib.Path(__file__).absolute().parent / "confs" / "lhapdf.conf", - paths.lhapdf_data_alternative, + configs.configs.paths.lhapdf_data_alternative, ) - update_lhapdf_path(paths.lhapdf_data_alternative) + update_lhapdf_path(configs.configs.paths.lhapdf_data_alternative) def lhapdf(): """Install `LHAPDF `_ C++ library.""" version = "LHAPDF-6.4.0" - lhapdf_tar = paths.lhapdf_dir / (version + ".tar.gz") - lhapdf_code = paths.lhapdf_dir / version + lhapdf_tar = configs.configs.paths.lhapdf_dir / (version + ".tar.gz") + lhapdf_code = configs.configs.paths.lhapdf_dir / version - paths.lhapdf_dir.mkdir(exist_ok=True) + configs.configs.paths.lhapdf_dir.mkdir(exist_ok=True) with requests.get( f"https://lhapdf.hepforge.org/downloads/?f={lhapdf_tar.name}" ) as r: @@ -266,12 +279,14 @@ def lhapdf(): f.write(r.content) with tarfile.open(lhapdf_tar, "r:gz") as tar: - tar.extractall(paths.lhapdf_dir) + tar.extractall(configs.configs.paths.lhapdf_dir) env = os.environ.copy() env["PYTHON"] = sys.executable subprocess.run( - f"./configure --prefix={paths.prefix}".split(), env=env, cwd=lhapdf_code + f"./configure --prefix={configs.configs.paths.prefix}".split(), + env=env, + cwd=lhapdf_code, ) subprocess.run("make", cwd=lhapdf_code) subprocess.run("make install".split(), cwd=lhapdf_code) @@ -283,10 +298,13 @@ def update_environ(): def prepend(name, value): if name not in os.environ: os.environ[name] = "" - os.environ[name] = str(value) + os.pathsep + os.environ[name] + os.environ[name] = str(value) + os.configs.configs.pathsep + os.environ[name] pyver = ".".join(sys.version.split(".")[:2]) - prepend("PYTHONPATH", paths.prefix / "lib" / f"python{pyver}" / "site-packages") - prepend("PATH", paths.prefix / "bin") - prepend("LD_LIBRARY_PATH", paths.prefix / "lib") - prepend("PKG_CONFIG_PATH", paths.prefix / "lib" / "pkgconfig") + prepend( + "PYTHONPATH", + configs.configs.paths.prefix / "lib" / f"python{pyver}" / "site-packages", + ) + prepend("PATH", configs.configs.paths.prefix / "bin") + prepend("LD_LIBRARY_PATH", configs.configs.paths.prefix / "lib") + prepend("PKG_CONFIG_PATH", configs.configs.paths.prefix / "lib" / "pkgconfig") diff --git a/runcardsrunner/tools.py b/runcardsrunner/tools.py index 21660c8a..d42a7572 100644 --- a/runcardsrunner/tools.py +++ b/runcardsrunner/tools.py @@ -9,7 +9,7 @@ import pygit2 import rich -from . import paths +from . import configs def create_output_folder(name): @@ -26,7 +26,9 @@ def create_output_folder(name): path to output folder """ - target = paths.root / (name + datetime.datetime.now().strftime("-%Y%m%d%H%M%S")) + target = configs.configs.paths.root / ( + name + datetime.datetime.now().strftime("-%Y%m%d%H%M%S") + ) target.mkdir(exist_ok=True) return target From f30e22f4a40523be1ba42e33d9aa96a2802dd1f7 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 18 Feb 2022 12:28:47 +0100 Subject: [PATCH 09/60] Fix paths in installation --- runcardsrunner/cli/install.py | 15 ++++-- runcardsrunner/cli/run.py | 1 + runcardsrunner/install.py | 87 ++++++++++++++++++++--------------- 3 files changed, 63 insertions(+), 40 deletions(-) diff --git a/runcardsrunner/cli/install.py b/runcardsrunner/cli/install.py index c75dfe34..061ad600 100644 --- a/runcardsrunner/cli/install.py +++ b/runcardsrunner/cli/install.py @@ -8,14 +8,16 @@ @command.group("install") def subcommand(): """Install utilities.""" + install.init_prefix() @subcommand.command() +@click.option("--capi", is_flag=True, default=True, help="install PineAPPL CAPI") @click.option("--cli", is_flag=True, help="install PineAPPL CLI as well") -def pineappl(cli): - """Install pineappl.""" +def pineappl(capi, cli): + """Install PineAPPL.""" install.update_environ() - install.pineappl(cli) + install.pineappl(capi=capi, cli=cli) @subcommand.command() @@ -30,3 +32,10 @@ def vrap(): """Install Hawaiian VRAP.""" install.update_environ() install.hawaiian_vrap() + + +@subcommand.command() +def lhapdf(): + """Install LHAPDF.""" + install.update_environ() + install.lhapdf() diff --git a/runcardsrunner/cli/run.py b/runcardsrunner/cli/run.py index 3954840e..2395cd85 100644 --- a/runcardsrunner/cli/run.py +++ b/runcardsrunner/cli/run.py @@ -91,6 +91,7 @@ def install_reqs(runner, pdf): """ t0 = time.perf_counter() + install.init_prefix() install.update_environ() runner.install() install.pineappl() diff --git a/runcardsrunner/install.py b/runcardsrunner/install.py index 6ab9f4f3..f2a62a7e 100644 --- a/runcardsrunner/install.py +++ b/runcardsrunner/install.py @@ -29,9 +29,9 @@ def init_prefix(): - configs.configs.prefix.mkdir(exist_ok=True) - configs.configs.bin.mkdir(exist_ok=True) - configs.configs.lib.mkdir(exist_ok=True) + configs.configs.paths.prefix.mkdir(exist_ok=True) + configs.configs.paths.prefixed.bin.mkdir(exist_ok=True) + configs.configs.paths.prefixed.lib.mkdir(exist_ok=True) def mg5amc(): @@ -43,12 +43,14 @@ def mg5amc(): whether the main executable is now existing. """ + mg5 = configs.configs.commands.mg5 + # define availability condition + def condition(): - configs.configs.paths.mg5_exe.exists() and os.access( - configs.configs.paths.mg5_exe, os.X_OK - ) + return mg5.exists() and os.access(mg5, os.X_OK) + # immediately test it if condition(): print("✓ Found mg5amc") return True @@ -56,13 +58,13 @@ def condition(): print("Installing...") # download madgraph in prefix (if not present) - subprocess.run(f"brz branch {mg5_repo} {configs.configs.paths.mg5amc}".split()) - - # in case we're using python3, we need to convert the model file subprocess.run( - f"{configs.configs.paths.mg5_exe}", input=mg5_convert, encoding="ascii" + f"brz branch {mg5_repo} {configs.configs.paths.prefixed.mg5amc}".split() ) + # in case we're using python3, we need to convert the model file + subprocess.run(f"{mg5}", input=mg5_convert, encoding="ascii") + # retest availability return condition() @@ -76,9 +78,11 @@ def hawaiian_vrap(): bool whether vrap is now installed """ - condition = lambda: configs.configs.paths.vrap_exe.exists() and os.access( - configs.configs.paths.vrap_exe, os.X_OK - ) + + def condition(): + return configs.configs.paths.vrap_exe.exists() and os.access( + configs.configs.paths.vrap_exe, os.X_OK + ) if condition(): print("✓ Found vrap") @@ -128,28 +132,33 @@ def cargo(): if cargo_exe is not None: return cargo_exe + cargo_home = configs.configs.paths.prefixed.cargo + # if there is not a user cargo update environment - os.environ["CARGO_HOME"] = str(configs.configs.paths.cargo) - if configs.configs.paths.cargo.is_dir(): - return str(configs.configs.paths.cargo / "bin" / "cargo") + os.environ["CARGO_HOME"] = str(cargo_home) + if cargo_home.is_dir(): + return str(cargo_home / "bin" / "cargo") + + rust_init = configs.configs.paths.rust_init # if cargo not available let's install with requests.get("https://sh.rustup.rs") as r: - with open(configs.configs.paths.rust_init, "wb") as f: + with open(rust_init, "wb") as f: f.write(r.content) # install location is controlled by CARGO_HOME variable - subprocess.run( - f"bash {configs.configs.paths.rust_init} --profile minimal --no-modify-path -y".split() - ) + subprocess.run(f"bash {rust_init} --profile minimal --no-modify-path -y".split()) - return str(configs.configs.paths.cargo / "bin" / "cargo") + return str(cargo_home / "bin" / "cargo") -def pineappl(cli=False): +def pineappl(capi=True, cli=False): """Initialize `PineAPPL `_. Parameters ---------- + capi : bool + whether to install PineAPPl CAPI (by default `True`, since it's the + only thing required) cli : bool whether to install even PineAPPL CLI (by default `False`, since it's not required to run) @@ -168,7 +177,7 @@ def cli_installed(): shutil.which("pineappl") is not None # check if there is something to do at all - if installed() and (not cli or cli_installed()): + if (not capi or installed()) and (not cli or cli_installed()): print("✓ Found pineappl") return True @@ -177,7 +186,7 @@ def cli_installed(): if not pkgconfig.exists("lhapdf"): lhapdf() - if not installed(): + if capi and not installed(): try: repo = pygit2.Repository(configs.configs.paths.pineappl) tools.git_pull(repo) @@ -257,21 +266,23 @@ def lhapdf_conf(pdf): return except PermissionError: pass - configs.configs.paths.lhapdf_data_alternative.mkdir(parents=True, exist_ok=True) + + lhapdf_data = configs.configs.paths.prefixed.lhapdf_data_alternative + lhapdf_data.mkdir(parents=True, exist_ok=True) shutil.copy2( - pathlib.Path(__file__).absolute().parent / "confs" / "lhapdf.conf", - configs.configs.paths.lhapdf_data_alternative, + pathlib.Path(__file__).absolute().parent / "confs" / "lhapdf.conf", lhapdf_data ) - update_lhapdf_path(configs.configs.paths.lhapdf_data_alternative) + update_lhapdf_path(lhapdf_data) def lhapdf(): """Install `LHAPDF `_ C++ library.""" version = "LHAPDF-6.4.0" - lhapdf_tar = configs.configs.paths.lhapdf_dir / (version + ".tar.gz") - lhapdf_code = configs.configs.paths.lhapdf_dir / version + lhapdf_dest = configs.configs.paths.prefixed.lhapdf + lhapdf_tar = lhapdf_dest / (version + ".tar.gz") + lhapdf_code = lhapdf_dest / version - configs.configs.paths.lhapdf_dir.mkdir(exist_ok=True) + lhapdf_dest.mkdir(exist_ok=True) with requests.get( f"https://lhapdf.hepforge.org/downloads/?f={lhapdf_tar.name}" ) as r: @@ -279,7 +290,8 @@ def lhapdf(): f.write(r.content) with tarfile.open(lhapdf_tar, "r:gz") as tar: - tar.extractall(configs.configs.paths.lhapdf_dir) + + tar.extractall(lhapdf_dest) env = os.environ.copy() env["PYTHON"] = sys.executable @@ -298,13 +310,14 @@ def update_environ(): def prepend(name, value): if name not in os.environ: os.environ[name] = "" - os.environ[name] = str(value) + os.configs.configs.pathsep + os.environ[name] + os.environ[name] = str(value) + configs.configs.pathsep + os.environ[name] + lib = configs.configs.paths.prefixed.lib pyver = ".".join(sys.version.split(".")[:2]) prepend( "PYTHONPATH", - configs.configs.paths.prefix / "lib" / f"python{pyver}" / "site-packages", + lib / f"python{pyver}" / "site-packages", ) - prepend("PATH", configs.configs.paths.prefix / "bin") - prepend("LD_LIBRARY_PATH", configs.configs.paths.prefix / "lib") - prepend("PKG_CONFIG_PATH", configs.configs.paths.prefix / "lib" / "pkgconfig") + prepend("PATH", configs.configs.paths.prefixed.bin) + prepend("LD_LIBRARY_PATH", lib) + prepend("PKG_CONFIG_PATH", lib / "pkgconfig") From 8c34363c57683ef1cabe9cc1087dff1e16c69ff0 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 18 Feb 2022 12:40:55 +0100 Subject: [PATCH 10/60] Add results folder, separated from root --- runcardsrunner.toml | 1 + runcardsrunner/configs.py | 5 ++++- runcardsrunner/external/interface.py | 6 +++++- runcardsrunner/tools.py | 4 ++-- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/runcardsrunner.toml b/runcardsrunner.toml index e3d529a1..3d90ba57 100644 --- a/runcardsrunner.toml +++ b/runcardsrunner.toml @@ -1,2 +1,3 @@ [paths] runcards = "nnpdf31_proc" +results = "results" diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index 53c056fc..2282b560 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -85,7 +85,10 @@ def defaults(base_configs): def add_paths(configs): for key, default in dict( - runcards="runcards", theories="theories", prefix=".prefix" + runcards="runcards", + theories="theories", + prefix=".prefix", + results="results", ).items(): if key not in configs.paths: configs.paths[key] = configs.paths.root / default diff --git a/runcardsrunner/external/interface.py b/runcardsrunner/external/interface.py index e4d946ec..f0f97988 100644 --- a/runcardsrunner/external/interface.py +++ b/runcardsrunner/external/interface.py @@ -35,7 +35,9 @@ def __init__(self, name, theory, pdf, timestamp=None): if timestamp is None: self.dest = tools.create_output_folder(self.name) else: - self.dest = configs.configs.paths.root / (self.name + "-" + self.timestamp) + self.dest = configs.configs.paths.results / ( + self.name + "-" + self.timestamp + ) if not self.grid.exists(): tools.decompress(self.grid.with_suffix(".pineappl.lz4")) @@ -109,6 +111,8 @@ def annotate_versions(self): # pineappl = configs.configs.paths.pineappl_exe() versions = self.collect_versions() + # TODO: replace with __version__? + # maybe check if it is a repository or not versions["runcard_gitversion"] = pygit2.Repository( configs.configs.paths.root ).describe( diff --git a/runcardsrunner/tools.py b/runcardsrunner/tools.py index d42a7572..f96c62af 100644 --- a/runcardsrunner/tools.py +++ b/runcardsrunner/tools.py @@ -26,10 +26,10 @@ def create_output_folder(name): path to output folder """ - target = configs.configs.paths.root / ( + target = configs.configs.paths.results / ( name + datetime.datetime.now().strftime("-%Y%m%d%H%M%S") ) - target.mkdir(exist_ok=True) + target.mkdir(exist_ok=True, parents=True) return target From 11fe72153adc820c017bffb9225ae413ca3e1880 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 18 Feb 2022 12:41:19 +0100 Subject: [PATCH 11/60] Scope pineappl installation to mg5, not required for yadism --- runcardsrunner/cli/run.py | 1 - runcardsrunner/external/mg5/__init__.py | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/runcardsrunner/cli/run.py b/runcardsrunner/cli/run.py index 2395cd85..cc892a94 100644 --- a/runcardsrunner/cli/run.py +++ b/runcardsrunner/cli/run.py @@ -94,7 +94,6 @@ def install_reqs(runner, pdf): install.init_prefix() install.update_environ() runner.install() - install.pineappl() # install chosen PDF set install.lhapdf_conf(pdf) diff --git a/runcardsrunner/external/mg5/__init__.py b/runcardsrunner/external/mg5/__init__.py index 1384ede3..1308f33c 100644 --- a/runcardsrunner/external/mg5/__init__.py +++ b/runcardsrunner/external/mg5/__init__.py @@ -26,6 +26,7 @@ def mg5_dir(self): @staticmethod def install(): + install.pineappl() install.mg5amc() @property From 38612798af83cad56aea25e708ae9ba3f097393c Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 18 Feb 2022 13:16:33 +0100 Subject: [PATCH 12/60] Fix converted lambdas --- runcardsrunner/install.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runcardsrunner/install.py b/runcardsrunner/install.py index f2a62a7e..605668c7 100644 --- a/runcardsrunner/install.py +++ b/runcardsrunner/install.py @@ -171,10 +171,10 @@ def pineappl(capi=True, cli=False): """ # define availability condition def installed(): - pkgconfig.exists("pineappl_capi") + return pkgconfig.exists("pineappl_capi") def cli_installed(): - shutil.which("pineappl") is not None + return shutil.which("pineappl") is not None # check if there is something to do at all if (not capi or installed()) and (not cli or cli_installed()): From 9e72a16b540a00e350f2e86f2c5c8907e9a2b951 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 18 Feb 2022 13:17:30 +0100 Subject: [PATCH 13/60] Fix mg5-related paths --- runcardsrunner/configs.py | 2 +- runcardsrunner/external/mg5/__init__.py | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index 2282b560..2046dcdf 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -124,7 +124,7 @@ def add_prefix_paths(configs): def add_commands(configs): commands = {} - commands["mg5"] = configs.paths.prefix / "bin" / "mg5_aMC" + commands["mg5"] = configs.paths.prefixed.mg5amc / "bin" / "mg5_aMC" commands["vrap"] = configs.paths.prefix / "bin" / "Vrap" pineappl = shutil.which("pineappl") commands["pineappl"] = pathlib.Path(pineappl) if pineappl is not None else None diff --git a/runcardsrunner/external/mg5/__init__.py b/runcardsrunner/external/mg5/__init__.py index 1308f33c..2ed626d0 100644 --- a/runcardsrunner/external/mg5/__init__.py +++ b/runcardsrunner/external/mg5/__init__.py @@ -58,9 +58,7 @@ def run(self): # enforce proper analysis # - copy analysis.f - analysis = ( - configs.configs.paths.runcards / self.name / "analysis.f" - ).read_text() + analysis = (self.source / "analysis.f").read_text() (self.mg5_dir / "FixedOrderAnalysis" / f"{self.name}.f").write_text(analysis) # - update analysis card analysis_card = self.mg5_dir / "Cards" / "FO_analyse_card.dat" @@ -75,9 +73,7 @@ def run(self): # launch file; for the time being we create the file here, but in the # future it should be read from the theory database EDIT: now available # in self.theory - variables = json.loads( - (configs.configs.paths.pkg / "variables.json").read_text() - ) + variables = json.loads((paths.subpkg.parents[1] / "variables.json").read_text()) variables["LHAPDF_ID"] = self.pdf_id # replace the variables with their values @@ -210,7 +206,7 @@ def collect_versions(self): versions["mg5amc_revno"] = ( subprocess.run( "brz revno".split(), - cwd=configs.configs.paths.mg5amc, + cwd=configs.configs.paths.prefixed.mg5amc, stdout=subprocess.PIPE, ) .stdout.decode() @@ -219,13 +215,17 @@ def collect_versions(self): mg5amc_repo = ( subprocess.run( "brz info".split(), - cwd=configs.configs.paths.mg5amc, + cwd=configs.configs.paths.prefixed.mg5amc, stdout=subprocess.PIPE, ) .stdout.decode() .strip() ) - versions["mg5amc_repo"] = re.search(r"\s*parent branch:\s*(.*)", mg5amc_repo)[1] + + repo = re.search(r"\s*parent branch:\s*(.*)", mg5amc_repo) + if repo is None: + print("Invalid mg5 repository") + versions["mg5amc_repo"] = repo[1] if repo is not None else None return versions From 2e1b5a908e47b6a8f1cd0e04709b6104e4519cae Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 18 Feb 2022 14:51:43 +0100 Subject: [PATCH 14/60] Add check for lhapdf installation --- runcardsrunner/install.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/runcardsrunner/install.py b/runcardsrunner/install.py index 605668c7..9b1253b3 100644 --- a/runcardsrunner/install.py +++ b/runcardsrunner/install.py @@ -276,7 +276,26 @@ def lhapdf_conf(pdf): def lhapdf(): - """Install `LHAPDF `_ C++ library.""" + """Install `LHAPDF `_ C++ library. + + Not needed: + - for `mg5`, since it's vendored + - for `yadism`, since we depend on the PyPI version + """ + # define availability condition + def installed(): + try: + # test python package availability + import lhapdf # pylint: disable=unused-import + except ModuleNotFoundError: + return False + return pkgconfig.exists("lhapdf") + + # check if there is something to do at all + if installed(): + print("✓ Found lhapdf") + return True + version = "LHAPDF-6.4.0" lhapdf_dest = configs.configs.paths.prefixed.lhapdf lhapdf_tar = lhapdf_dest / (version + ".tar.gz") @@ -303,6 +322,8 @@ def lhapdf(): subprocess.run("make", cwd=lhapdf_code) subprocess.run("make install".split(), cwd=lhapdf_code) + return installed() + def update_environ(): """Adjust necessary environment files.""" From 044b37c819058f525e2e3033bcdb066c87db9495 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Thu, 3 Mar 2022 10:41:47 +0100 Subject: [PATCH 15/60] Drop configuration class --- runcardsrunner/cli/_base.py | 51 ++--------- runcardsrunner/cli/list.py | 4 +- runcardsrunner/cli/update.py | 2 +- runcardsrunner/configs.py | 113 ++++++++++++------------ runcardsrunner/external/interface.py | 8 +- runcardsrunner/external/mg5/__init__.py | 8 +- runcardsrunner/external/yad.py | 6 +- runcardsrunner/install.py | 26 +++--- runcardsrunner/tools.py | 2 +- 9 files changed, 95 insertions(+), 125 deletions(-) diff --git a/runcardsrunner/cli/_base.py b/runcardsrunner/cli/_base.py index d72d6625..587a4709 100644 --- a/runcardsrunner/cli/_base.py +++ b/runcardsrunner/cli/_base.py @@ -1,9 +1,8 @@ # -*- coding: utf-8 -*- import pathlib +import warnings -import appdirs import click -import tomli from .. import configs @@ -20,47 +19,13 @@ help="Explicitly specify config file (it has to be a valid TOML file).", ) def command(cfg): - base_configs = load(cfg) - configs.configs = configs.defaults(base_configs) - if cfg is not None: - print(f"Configurations loaded from '{cfg}'") - - -def detect(path=None): - paths = [] - - if path is not None: - path = pathlib.Path(path) - paths.append(path) - - paths.append(pathlib.Path.cwd()) - paths.append(pathlib.Path.home()) - paths.append(pathlib.Path(appdirs.user_config_dir())) - paths.append(pathlib.Path(appdirs.site_config_dir())) - - for p in paths: - configs_file = p / configs.name if p.is_dir() else p - - if configs_file.is_file(): - return configs_file - - raise FileNotFoundError("No configurations file detected.") - - -def load(path=None): try: - path = detect(path) + cfgpath = configs.detect(cfg) except FileNotFoundError: - if path is None: - return {"paths": {"root": pathlib.Path.cwd()}} - else: - print("Configuration path specified is not valid.") - quit() - - with open(path, "rb") as fd: - loaded = tomli.load(fd) + warnings.warn("No configuration file detected.") + cfgpath = None - if "root" not in loaded["paths"]: - loaded["paths"]["root"] = pathlib.Path(path).parent - - return loaded + base_configs = configs.load(cfgpath) + configs.configs = configs.defaults(base_configs) + if cfg is not None: + print(f"Configurations loaded from '{cfg}'") diff --git a/runcardsrunner/cli/list.py b/runcardsrunner/cli/list.py index a713ce9f..7c58251f 100644 --- a/runcardsrunner/cli/list.py +++ b/runcardsrunner/cli/list.py @@ -14,13 +14,13 @@ def subcommand(): @subcommand.command() def runcards(): """List available runcards.""" - main(configs.configs.paths.runcards) + main(configs.configs["paths"]["runcards"]) @subcommand.command() def theories(): """List available theories.""" - main(configs.configs.paths.theories, files=True, prefix="theory_") + main(configs.configs["paths"]["theories"], files=True, prefix="theory_") @subcommand.group() diff --git a/runcardsrunner/cli/update.py b/runcardsrunner/cli/update.py index 2c904bd0..32f1f80d 100644 --- a/runcardsrunner/cli/update.py +++ b/runcardsrunner/cli/update.py @@ -28,7 +28,7 @@ def main(datasets): if "pineappl" in dataset: dataset = pathlib.Path(dataset).stem - metadata = configs.configs.paths.runcards / dataset / "metadata.txt" + metadata = configs.configs["paths"]["runcards"] / dataset / "metadata.txt" entries = {} with open(metadata) as fd: diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index 2046dcdf..2f77bce5 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -1,71 +1,75 @@ # -*- coding: utf-8 -*- +import copy import pathlib import shutil import tempfile -import typing +import warnings -import rich +import appdirs +import tomli name = "runcardsrunner.toml" "Name of the config while (wherever it is placed)" -class Configurations: - def __init__(self, dictionary=None): - if isinstance(dictionary, Configurations): - self._dict = dictionary._dict - elif dictionary is None: - self._dict = {} - else: - self._dict = dictionary +def detect(path=None): + paths = [] + + if path is not None: + path = pathlib.Path(path) + paths.append(path) - def __repr__(self): - return self._dict.__repr__() + paths.append(pathlib.Path.cwd()) + paths.append(pathlib.Path.home()) + paths.append(pathlib.Path(appdirs.user_config_dir())) + paths.append(pathlib.Path(appdirs.site_config_dir())) - def __getattribute__(self, name) -> typing.Any: - if name[0] == "_": - return super().__getattribute__(name) + for p in paths: + configs_file = p / name if p.is_dir() else p - value = self._dict[name] - if isinstance(value, dict): - value = Configurations(value) - return value + if configs_file.is_file(): + return configs_file - def __getitem__(self, key): - return self.__getattribute__(key) + if p == path: + warnings.warn("Configuration path specified is not valid.") - def __setattribute__(self, name, value): - self._dict[name] = value + raise FileNotFoundError("No configurations file detected.") - def __setitem__(self, key, value): - if key[0] == "_": - raise LookupError( - "Elements with leading '_' can not be retrieved later, so you" - f" can not set (attempted: '{key}')" - ) - self._dict[key] = value +def load(path=None): + if path is None: + warnings.warn("Using default minimal configuration ('root = $PWD').") + return {"paths": {"root": pathlib.Path.cwd()}} - def __contains__(self, item): - return item in self._dict + with open(path, "rb") as fd: + loaded = tomli.load(fd) - def _pprint(self): - rich.print(self._dict) + if "root" not in loaded["paths"]: + loaded["paths"]["root"] = pathlib.Path(path).parent + + return loaded # better to declare immediately the correct type -configs = Configurations() +configs = {} "Holds loaded configurations" -def add_scope(base, scope_id, scope): +def add_scope(parent, scope_id, scope): "Do not override." - if scope_id not in base: - base[scope_id] = scope + newparent = copy.deepcopy(parent) + # if the id not present, append the scope all at once + if scope_id not in newparent: + newparent[scope_id] = scope + # if the id already present, preserve existing values else: for key, value in scope.items(): - if key not in base[scope_id]: - base[scope_id] = value + # if already specified, do not override + if key not in newparent[scope_id]: + # else, add the default + newparent[scope_id] = value + + return newparent def defaults(base_configs): @@ -75,12 +79,12 @@ def defaults(base_configs): ---- The general rule is to never replace user provided input. """ - configs = Configurations(base_configs) + configs = copy.deepcopy(base_configs) configs = add_paths(configs) configs = add_commands(configs) - return Configurations(configs) + return configs def add_paths(configs): @@ -90,21 +94,22 @@ def add_paths(configs): prefix=".prefix", results="results", ).items(): - if key not in configs.paths: - configs.paths[key] = configs.paths.root / default - elif pathlib.Path(configs.paths[key]).anchor == "": - configs.paths[key] = configs.paths.root / configs.paths[key] + if key not in configs["paths"]: + configs["paths"][key] = configs["paths"]["root"] / default + elif pathlib.Path(configs["paths"][key]).anchor == "": + configs["paths"][key] = configs["paths"]["root"] / configs["paths"][key] else: - configs.paths[key] = pathlib.Path(configs.paths[key]) + configs["paths"][key] = pathlib.Path(configs["paths"][key]) - configs.paths["rust_init"] = tempfile.mktemp() + configs["paths"]["rust_init"] = tempfile.mktemp() configs = add_prefix_paths(configs) return configs def add_prefix_paths(configs): - prefix = configs.paths.prefix + configs = copy.deepcopy(configs) + prefix = configs["paths"]["prefix"] paths = {} paths["bin"] = prefix / "bin" @@ -116,19 +121,17 @@ def add_prefix_paths(configs): paths["lhapdf_data_alternative"] = prefix / "share" / "LHAPDF" prefix_scope = "prefixed" - add_scope(configs.paths, prefix_scope, paths) + configs["paths"] = add_scope(configs["paths"], prefix_scope, paths) return configs def add_commands(configs): commands = {} - commands["mg5"] = configs.paths.prefixed.mg5amc / "bin" / "mg5_aMC" - commands["vrap"] = configs.paths.prefix / "bin" / "Vrap" + commands["mg5"] = configs["paths"]["prefixed"]["mg5amc"] / "bin" / "mg5_aMC" + commands["vrap"] = configs["paths"]["prefix"] / "bin" / "Vrap" pineappl = shutil.which("pineappl") commands["pineappl"] = pathlib.Path(pineappl) if pineappl is not None else None - add_scope(configs, "commands", commands) - - return configs + return add_scope(configs, "commands", commands) diff --git a/runcardsrunner/external/interface.py b/runcardsrunner/external/interface.py index f0f97988..a1b0a731 100644 --- a/runcardsrunner/external/interface.py +++ b/runcardsrunner/external/interface.py @@ -35,7 +35,7 @@ def __init__(self, name, theory, pdf, timestamp=None): if timestamp is None: self.dest = tools.create_output_folder(self.name) else: - self.dest = configs.configs.paths.results / ( + self.dest = configs.configs["paths"]["results"] / ( self.name + "-" + self.timestamp ) if not self.grid.exists(): @@ -44,7 +44,7 @@ def __init__(self, name, theory, pdf, timestamp=None): @property def source(self): """Runcard base directory.""" - return configs.configs.paths.runcards / self.name + return configs.configs["paths"]["runcards"] / self.name @property def grid(self): @@ -108,13 +108,13 @@ def annotate_versions(self): """Add version informations as meta data.""" results_log = self.dest / "results.log" # TODO: add pineappl version - # pineappl = configs.configs.paths.pineappl_exe() + # pineappl = configs.configs["commands"]["pineappl"]() versions = self.collect_versions() # TODO: replace with __version__? # maybe check if it is a repository or not versions["runcard_gitversion"] = pygit2.Repository( - configs.configs.paths.root + configs.configs["paths"]["root"] ).describe( always_use_long_format=True, describe_strategy=pygit2.GIT_DESCRIBE_TAGS, diff --git a/runcardsrunner/external/mg5/__init__.py b/runcardsrunner/external/mg5/__init__.py index 2ed626d0..b6f498d5 100644 --- a/runcardsrunner/external/mg5/__init__.py +++ b/runcardsrunner/external/mg5/__init__.py @@ -41,7 +41,7 @@ def run(self): # create output folder log.subprocess( - [str(configs.configs.commands.mg5), str(output_file)], + [str(configs.configs["commands"]["mg5"]), str(output_file)], cwd=self.dest, out=(self.dest / "output.log"), ) @@ -138,7 +138,7 @@ def run(self): # launch run log.subprocess( - [str(configs.configs.commands.mg5), str(launch_file)], + [str(configs.configs["commands"]["mg5"]), str(launch_file)], cwd=self.dest, out=self.dest / "launch.log", ) @@ -206,7 +206,7 @@ def collect_versions(self): versions["mg5amc_revno"] = ( subprocess.run( "brz revno".split(), - cwd=configs.configs.paths.prefixed.mg5amc, + cwd=configs.configs["paths"]["prefixed"]["mg5amc"], stdout=subprocess.PIPE, ) .stdout.decode() @@ -215,7 +215,7 @@ def collect_versions(self): mg5amc_repo = ( subprocess.run( "brz info".split(), - cwd=configs.configs.paths.prefixed.mg5amc, + cwd=configs.configs["paths"]["prefixed"]["mg5amc"], stdout=subprocess.PIPE, ) .stdout.decode() diff --git a/runcardsrunner/external/yad.py b/runcardsrunner/external/yad.py index da2f22db..d0258067 100644 --- a/runcardsrunner/external/yad.py +++ b/runcardsrunner/external/yad.py @@ -22,7 +22,7 @@ def is_dis(name): name : str dataset name """ - return (configs.configs.paths.runcards / name / "observable.yaml").exists() + return (configs.configs["paths"]["runcards"] / name / "observable.yaml").exists() class Yadism(interface.External): @@ -30,7 +30,9 @@ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # load runcards - with open(configs.configs.paths.runcards / self.name / "observable.yaml") as o: + with open( + configs.configs["paths"]["runcards"] / self.name / "observable.yaml" + ) as o: self.obs = yaml.safe_load(o) def run(self): diff --git a/runcardsrunner/install.py b/runcardsrunner/install.py index 9b1253b3..fe022512 100644 --- a/runcardsrunner/install.py +++ b/runcardsrunner/install.py @@ -29,9 +29,9 @@ def init_prefix(): - configs.configs.paths.prefix.mkdir(exist_ok=True) - configs.configs.paths.prefixed.bin.mkdir(exist_ok=True) - configs.configs.paths.prefixed.lib.mkdir(exist_ok=True) + configs.configs["paths"]["prefix"].mkdir(exist_ok=True) + configs.configs["paths"]["prefixed"]["bin"].mkdir(exist_ok=True) + configs.configs["paths"]["prefixed"]["lib"].mkdir(exist_ok=True) def mg5amc(): @@ -43,7 +43,7 @@ def mg5amc(): whether the main executable is now existing. """ - mg5 = configs.configs.commands.mg5 + mg5 = configs.configs["commands"]["mg5"] # define availability condition @@ -59,7 +59,7 @@ def condition(): # download madgraph in prefix (if not present) subprocess.run( - f"brz branch {mg5_repo} {configs.configs.paths.prefixed.mg5amc}".split() + f"brz branch {mg5_repo} {configs.configs['paths']['prefixed']['mg5amc']}".split() ) # in case we're using python3, we need to convert the model file @@ -132,14 +132,14 @@ def cargo(): if cargo_exe is not None: return cargo_exe - cargo_home = configs.configs.paths.prefixed.cargo + cargo_home = configs.configs["paths"]["prefixed"]["cargo"] # if there is not a user cargo update environment os.environ["CARGO_HOME"] = str(cargo_home) if cargo_home.is_dir(): return str(cargo_home / "bin" / "cargo") - rust_init = configs.configs.paths.rust_init + rust_init = configs.configs["paths"]["rust_init"] # if cargo not available let's install with requests.get("https://sh.rustup.rs") as r: @@ -267,7 +267,7 @@ def lhapdf_conf(pdf): except PermissionError: pass - lhapdf_data = configs.configs.paths.prefixed.lhapdf_data_alternative + lhapdf_data = configs.configs["paths"]["prefixed"]["lhapdf_data_alternative"] lhapdf_data.mkdir(parents=True, exist_ok=True) shutil.copy2( pathlib.Path(__file__).absolute().parent / "confs" / "lhapdf.conf", lhapdf_data @@ -297,7 +297,7 @@ def installed(): return True version = "LHAPDF-6.4.0" - lhapdf_dest = configs.configs.paths.prefixed.lhapdf + lhapdf_dest = configs.configs["paths"]["prefixed"]["lhapdf"] lhapdf_tar = lhapdf_dest / (version + ".tar.gz") lhapdf_code = lhapdf_dest / version @@ -315,7 +315,7 @@ def installed(): env = os.environ.copy() env["PYTHON"] = sys.executable subprocess.run( - f"./configure --prefix={configs.configs.paths.prefix}".split(), + f"./configure --prefix={configs.configs['paths']['prefix']}".split(), env=env, cwd=lhapdf_code, ) @@ -331,14 +331,14 @@ def update_environ(): def prepend(name, value): if name not in os.environ: os.environ[name] = "" - os.environ[name] = str(value) + configs.configs.pathsep + os.environ[name] + os.environ[name] = str(value) + os.pathsep + os.environ[name] - lib = configs.configs.paths.prefixed.lib + lib = configs.configs["paths"]["prefixed"]["lib"] pyver = ".".join(sys.version.split(".")[:2]) prepend( "PYTHONPATH", lib / f"python{pyver}" / "site-packages", ) - prepend("PATH", configs.configs.paths.prefixed.bin) + prepend("PATH", configs.configs["paths"]["prefixed"]["bin"]) prepend("LD_LIBRARY_PATH", lib) prepend("PKG_CONFIG_PATH", lib / "pkgconfig") diff --git a/runcardsrunner/tools.py b/runcardsrunner/tools.py index f96c62af..60cf41b4 100644 --- a/runcardsrunner/tools.py +++ b/runcardsrunner/tools.py @@ -26,7 +26,7 @@ def create_output_folder(name): path to output folder """ - target = configs.configs.paths.results / ( + target = configs.configs["paths"]["results"] / ( name + datetime.datetime.now().strftime("-%Y%m%d%H%M%S") ) target.mkdir(exist_ok=True, parents=True) From d557854d427997e9bcf9a58c712726a589e96670 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Thu, 3 Mar 2022 10:45:20 +0100 Subject: [PATCH 16/60] Add configs subcommand --- runcardsrunner/cli/__init__.py | 2 +- runcardsrunner/cli/configs.py | 15 +++++++++++++++ runcardsrunner/configs.py | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 runcardsrunner/cli/configs.py diff --git a/runcardsrunner/cli/__init__.py b/runcardsrunner/cli/__init__.py index 7216222d..a116467f 100644 --- a/runcardsrunner/cli/__init__.py +++ b/runcardsrunner/cli/__init__.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -from . import install, list, merge, run, update +from . import configs, install, list, merge, run, update from ._base import command diff --git a/runcardsrunner/cli/configs.py b/runcardsrunner/cli/configs.py new file mode 100644 index 00000000..59489ee3 --- /dev/null +++ b/runcardsrunner/cli/configs.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +import rich + +from .. import configs +from ._base import command + + +@command.command("configs") +def subcommand(): + """Query loaded configurations.""" + main() + + +def main(): + rich.print(configs.configs) diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index 2f77bce5..0cec1d19 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -101,7 +101,7 @@ def add_paths(configs): else: configs["paths"][key] = pathlib.Path(configs["paths"][key]) - configs["paths"]["rust_init"] = tempfile.mktemp() + configs["paths"]["rust_init"] = pathlib.Path(tempfile.mktemp()) configs = add_prefix_paths(configs) return configs From 4258d2c20758ce69064b829e856709ac614eadd9 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Thu, 3 Mar 2022 11:12:13 +0100 Subject: [PATCH 17/60] Add command to retrieve serialized info --- runcardsrunner/cli/__init__.py | 2 +- runcardsrunner/cli/info.py | 44 ++++++++++++++++++++++++++++++++++ runcardsrunner/cli/update.py | 5 +--- runcardsrunner/tools.py | 25 +++++++++++++++++++ 4 files changed, 71 insertions(+), 5 deletions(-) create mode 100644 runcardsrunner/cli/info.py diff --git a/runcardsrunner/cli/__init__.py b/runcardsrunner/cli/__init__.py index a116467f..73709707 100644 --- a/runcardsrunner/cli/__init__.py +++ b/runcardsrunner/cli/__init__.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -from . import configs, install, list, merge, run, update +from . import configs, info, install, list, merge, run, update from ._base import command diff --git a/runcardsrunner/cli/info.py b/runcardsrunner/cli/info.py new file mode 100644 index 00000000..eb0b2ea2 --- /dev/null +++ b/runcardsrunner/cli/info.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +import pathlib + +import click +import rich + +from .. import configs, tools +from ._base import command + + +@command.group("info") +def subcommand(): + """Retrieve information about managed objects.""" + + +@subcommand.command("runcards") +@click.argument("datasets", nargs=-1) +@click.option("-m", "--metadata", is_flag=True, help="Retrieve metadata.") +@click.option("-k", "--kind", is_flag=True, help="Retrieve datasets kind.") +def runcards(datasets, metadata, kind): + """Inspect runcards. + + Obtain information about DATASET runcard. + """ + info = {} + + for dataset in datasets: + dataset = pathlib.Path(dataset).name + info[dataset] = {} + + path = configs.configs["paths"]["runcards"] / dataset + + if path.is_dir(): + info[dataset]["path"] = str(path.absolute()) + + if metadata: + metadata = path / "metadata.txt" + with open(metadata, encoding="utf-8") as fd: + info[dataset]["metadata"] = tools.parse_metadata(fd) + + if kind: + info[dataset]["kind"] = None + + rich.print_json(data=info) diff --git a/runcardsrunner/cli/update.py b/runcardsrunner/cli/update.py index 32f1f80d..598b7d7b 100644 --- a/runcardsrunner/cli/update.py +++ b/runcardsrunner/cli/update.py @@ -30,11 +30,8 @@ def main(datasets): metadata = configs.configs["paths"]["runcards"] / dataset / "metadata.txt" - entries = {} with open(metadata) as fd: - for line in fd.readlines(): - k, v = line.split("=") - entries[k] = v + entries = tools.parse_metadata(fd) dest = path.parent / (path.name + ".tmp") tools.update_grid_metadata(path, dest, entries) diff --git a/runcardsrunner/tools.py b/runcardsrunner/tools.py index 60cf41b4..9f4fa305 100644 --- a/runcardsrunner/tools.py +++ b/runcardsrunner/tools.py @@ -258,3 +258,28 @@ def common_substring(s1, s2, *sn): # sort by length and take the first shortest = min(enumerate(len(s) for s in ss), key=lambda el: el[1])[0] return ss[shortest] + + +def parse_metadata(file): + """Parse metadata file. + + Parameters + ---------- + file : io.TextIOBase + the file to read + + Returns + ------- + dict + the metadata entries + + """ + entries = {} + for line in file.readlines(): + if line[-1] == "\n": + line = line[:-1] + + k, v = line.split("=") + entries[k] = v + + return entries From 58ef76bd0cfedaa3069f342ff27c3b6d5e766f67 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Thu, 3 Mar 2022 11:14:36 +0100 Subject: [PATCH 18/60] Provide information about dataset kind --- runcardsrunner/cli/info.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/runcardsrunner/cli/info.py b/runcardsrunner/cli/info.py index eb0b2ea2..32aa898e 100644 --- a/runcardsrunner/cli/info.py +++ b/runcardsrunner/cli/info.py @@ -5,6 +5,7 @@ import rich from .. import configs, tools +from ..external.yad import is_dis from ._base import command @@ -39,6 +40,9 @@ def runcards(datasets, metadata, kind): info[dataset]["metadata"] = tools.parse_metadata(fd) if kind: - info[dataset]["kind"] = None + if is_dis(dataset): + info[dataset]["kind"] = "dis" + else: + info[dataset]["kind"] = "hadronic" rich.print_json(data=info) From bc5db382d22ac9ea0d871dd6db3ae5c492254dce Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Thu, 3 Mar 2022 13:56:30 +0100 Subject: [PATCH 19/60] Remove ./rr install instructions --- README.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 5480a4fa..b9801e86 100644 --- a/README.md +++ b/README.md @@ -12,14 +12,17 @@ There is no released version currently. ### Dev -For development the dependencies can be bootstrapped by running: +For development you need the following tools: -```sh -./rr install -``` +- `poetry`, follow [installation + instructions](https://python-poetry.org/docs/#installation) +- `poetry-dynamic-versioning`, used to manage the version (see + [repo](https://github.com/mtkennerly/poetry-dynamic-versioning)) +- `pre-commit`, to run maintenance hooks before commits (see + [instructions](https://pre-commit.com/#install)) -See [below](#non-python-dependencies) for a few dependencies (already available -on most systems). +See [below](#non-python-dependencies) for a few more dependencies (already +available on most systems). ## Documentation @@ -39,7 +42,7 @@ Even if the bootstrap script and the installation management try to reduce as much as possible the amount of dependencies, still a few ingredients have to be available on the system. -To run `./rr install`: +To run the CLI: - `python` itself - `pip` available as a module of the `python` that is running `rr` (as usually From 5eedd8ae6b1b12203767727e810a3c2ce58c0a3f Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Thu, 3 Mar 2022 14:03:22 +0100 Subject: [PATCH 20/60] Add contribution guidelines, move some stuff out of README --- .github/CONTRIBUTING.md | 35 +++++++++++++++++++++++++++++++++++ README.md | 25 +------------------------ 2 files changed, 36 insertions(+), 24 deletions(-) create mode 100644 .github/CONTRIBUTING.md diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 00000000..57ba22e2 --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,35 @@ +## Dependencies + +### More on tools + +The `runcardsrunner` package is managed by `poetry`. This has been chosen to +automate a series of tasks, and to grant reproducible installations maintaining +a `poetry.lock` file. + +It might happen (frequently) that `poetry` complaints about version +dependencies, if inconsistent. This is not `poetry`'s fault, and it's a useful +warning that will prevent to just break when installed by a user with a +different environment. + +### Non Python dependencies + +Even if the bootstrap script and the installation management try to reduce as +much as possible the amount of dependencies, still a few ingredients have to be +available on the system. + +To run the CLI: + +- `python` itself +- `pip` available as a module of the `python` that is running `rr` (as usually + is) +- `curl` + +To install `pineappl`: + +- `pkg-config` +- `openssl.pc` (e.g. on Debian available in the `libssl-dev` package) + +To install `mg5amc@nlo` and its dependencies: + +- `gfortran` +- `wget` diff --git a/README.md b/README.md index b9801e86..09cc5c4c 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ For development you need the following tools: - `pre-commit`, to run maintenance hooks before commits (see [instructions](https://pre-commit.com/#install)) -See [below](#non-python-dependencies) for a few more dependencies (already +See [below](.gihub/CONTRIBUTING.md#non-python-dependencies) for a few more dependencies (already available on most systems). ## Documentation @@ -35,26 +35,3 @@ cd docs make html make view ``` - -### Non Python dependencies - -Even if the bootstrap script and the installation management try to reduce as -much as possible the amount of dependencies, still a few ingredients have to be -available on the system. - -To run the CLI: - -- `python` itself -- `pip` available as a module of the `python` that is running `rr` (as usually - is) -- `curl` - -To install `pineappl`: - -- `pkg-config` -- `openssl.pc` (e.g. on Debian available in the `libssl-dev` package) - -To install `mg5amc@nlo` and its dependencies: - -- `gfortran` -- `wget` From 9f2089eff30562fa99a661679880e2ecdc432990 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Thu, 3 Mar 2022 14:06:39 +0100 Subject: [PATCH 21/60] Remove superseeded scripts --- merge_grids.sh | 68 -- run_dis.sh | 161 ----- run_implement_user_defined_cuts.py | 961 ----------------------------- update_metadata.sh | 31 - 4 files changed, 1221 deletions(-) delete mode 100755 merge_grids.sh delete mode 100755 run_dis.sh delete mode 100755 run_implement_user_defined_cuts.py delete mode 100755 update_metadata.sh diff --git a/merge_grids.sh b/merge_grids.sh deleted file mode 100755 index 85f9e2c2..00000000 --- a/merge_grids.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/bash - -common_substring() { - # from https://stackoverflow.com/a/17475354/812178 - printf "%s\n" "$@" | sed -e 'N;s/^\(.*\).*\n\1.*$/\1\n\1/;D' -} - -# exit script at the first sign of an error -set -o errexit - -# the following exits if undeclared variables are used -set -o nounset - -# exit if some program in a pipeline fails -set -o pipefail - -array=( $(for i in "$@"; do basename $i; done) ) -grid="$(common_substring "${array[@]}")" -grid="${grid%_}".pineappl - -# merge grids -pineappl merge "${grid}" "$@" - -# get all keys, possibly ones that are exclusive to a single grid -keys=( $(for i in "$@"; do - pineappl info --keys $i -done | sort -u) ) - -grids=( "$@" ) - -# extract the results from each grid -for (( i=0; i != ${#grids[@]}; i++ )); do - pineappl info "${grids[$i]}" --get results | \ - sed '/^ [0-9].*/!d' | \ - sed 's/^ 0.000000e+00 0.000000e+00 0.000 0.000 0.0000 0.0000 0.0000$//' \ - > tmp.results.$i -done - -# extract the header from the first grid -pineappl info "${grids[0]}" --get results | sed -e '/^ [0-9]/d' -e '$ d' > tmp.results - -# paste the results together and remove leading and trailing spaces -paste -d ' ' tmp.results.* | sed -e 's/^ */ /' -e 's/ +$//' >> tmp.results -rm tmp.results.* - -# set the results metadata in the new grid -pineappl set "${grid}" "${grid}".tmp --entry_from_file results tmp.results -mv "${grid}".tmp "${grid}" -rm tmp.results - -for key in "${keys[@]}"; do - # skip results - if [[ ${key} == results ]]; then - continue - fi - - lhs=$(pineappl info "${grid}" --get "${key}") - for g in "$@"; do - rhs=$(pineappl info "${g}" --get "${key}") - if ! diff <(echo "${lhs}") <(echo "${rhs}") >/dev/null; then - # TODO: what do we do in this case? - echo ${key} differs - fi - done -done - -lz4 -9 "${grid}" -rm "${grid}" diff --git a/run_dis.sh b/run_dis.sh deleted file mode 100755 index 0c255532..00000000 --- a/run_dis.sh +++ /dev/null @@ -1,161 +0,0 @@ -#!/bin/bash - -prefix=$(pwd)/.prefix - -export LC_ALL=C - -yesno() { - echo -n "$@" "[Y/n]" - read -r reply - - if [[ -z $reply ]]; then - reply=Y - fi - - case "${reply}" in - Yes | yes | Y | y) return 0 ;; - No | no | N | n) return 1 ;; - *) - echo "I didn't understand your reply '${reply}'" - yesno "$@" - ;; - esac -} - -install_pineappl() { ( - mkdir -p "${prefix}" - - cargo=$(which cargo 2>/dev/null || true) - git=$(which git 2>/dev/null) - pip=$(which pip 2>/dev/null || true) - maturin=$(which maturin 2>/dev/null || true) - - repo=https://github.com/N3PDF/pineappl.git - - if [[ ! -x ${cargo} ]]; then - export CARGO_HOME=${prefix}/cargo - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs >/tmp/rustup-init - bash /tmp/rustup-init --profile minimal --no-modify-path -y - export PATH=${prefix}/cargo/bin:${PATH} - cargo="${prefix}"/cargo/bin/cargo - elif [[ -d ${prefix}/cargo ]]; then - export CARGO_HOME=${prefix}/cargo - fi - - if [[ -d ${prefix}/pineappl2 ]]; then - "${git}" pull - else - "${git}" clone ${repo} -b pyo3 "${prefix}"/pineappl2 - fi - - if [[ ! -x ${maturin} ]]; then - pyver=$(python --version | cut -d' ' -f 2 | cut -d. -f1,2) - export PATH="${prefix}"/bin:${PATH} - export PYTHONPATH="${prefix}"/lib/python${pyver}/site-packages - "${pip}" install --prefix "${prefix}" maturin - fi - - pushd . >/dev/null - cd "${prefix}"/pineappl2/pineappl_py - maturin build --manylinux off - popd >/dev/null - "${pip}" install --prefix "${prefix}" "${prefix}"/pineappl2/pineappl_py/target/wheels/pineappl_py*.whl -); } - -install_yadism() { ( - mkdir -p "${prefix}" - - pip=$(which pip 2>/dev/null || true) - - if [[ -x ${pip} ]]; then - pyver=$(python --version | cut -d' ' -f 2 | cut -d. -f1,2) - export PATH="${prefix}"/bin:${PATH} - export PYTHONPATH="${prefix}"/lib/python${pyver}/site-packages - "${pip}" install --prefix "${prefix}" yadism - fi -); } - -# exit script at the first sign of an error -set -o errexit - -# the following exits if undeclared variables are used -set -o nounset - -# exit if some program in a pipeline fails -set -o pipefail - -# if we've installed dependencies set the correct paths -if [[ -d ${prefix} ]]; then - pyver=$(python --version | cut -d' ' -f 2 | cut -d. -f1,2) - export PYTHONPATH="${prefix}"/lib/python${pyver}/site-packages:${PYTHONPATH:-} - export PATH=${prefix}/mg5amc/bin:${prefix}/bin:${PATH:-} - export LD_LIBRARY_PATH=${prefix}/lib:${LD_LIBRARY_PATH:-} - export PKG_CONFIG_PATH=${prefix}/lib/pkgconfig:${PKG_CONFIG_PATH:-} -fi - -install_pineappl= -install_yadism= - -if [[ ! -d "${prefix}"/pineappl2 ]]; then - install_pineappl=yes - echo "PineAPPL (pyo3) wasn't found" -fi - -if pip show yadism 2>&1 | grep 'Package(s) not found' >/dev/null; then - install_yadism=yes - echo "yadism wasn't found" -fi - -if [[ -n ${install_pineappl}${install_yadism} ]]; then - if yesno "Do you want to install the missing dependencies (into \`.prefix\`)?"; then - if [[ -n ${install_pineappl} ]]; then - install_pineappl - fi - if [[ -n ${install_yadism} ]]; then - install_yadism - fi - - pyver=$(python --version | cut -d' ' -f 2 | cut -d. -f1,2) - export PYTHONPATH="${prefix}"/lib/python${pyver}/site-packages:${PYTHONPATH:-} - export PATH=${prefix}/mg5amc/bin:${prefix}/bin:${PATH:-} - export LD_LIBRARY_PATH=${prefix}/lib:${LD_LIBRARY_PATH:-} - export PKG_CONFIG_PATH=${prefix}/lib/pkgconfig:${PKG_CONFIG_PATH:-} - else - exit 1 - fi -fi - -# name of the dataset -dataset="$1" - -# name of the directory where the output is written to -output="${dataset}"-$(date +%Y%m%d%H%M%S) - -if [[ -d $output ]]; then - # since we add a date postfix to the name this shouldn't happen - echo "Error: output directory already exists" >&2 - exit 1 -fi - -mkdir "${output}" -cd "${output}" - -python ../run_dis.py ../nnpdf31_proc/"${dataset}"/observable.yaml "${dataset}" - -grid="${dataset}".pineappl - -if [[ -f ../nnpdf31_proc/"${dataset}"/metadata.txt ]]; then - eval "$(awk -F= "BEGIN { printf \"pineappl set ${grid} ${grid}.tmp \" } - { printf \"--entry %s '%s' \", \$1, \$2 }" \ - ../nnpdf31_proc/"${dataset}"/metadata.txt)" -fi - -mv "${grid}".tmp "${grid}" - -lz4=$(which lz4 2>/dev/null || true) - -# compress the grid with `lz4` if it's available -if [[ -x ${lz4} ]]; then - lz4 -9 "${grid}" - rm "${grid}" -fi diff --git a/run_implement_user_defined_cuts.py b/run_implement_user_defined_cuts.py deleted file mode 100755 index 92348642..00000000 --- a/run_implement_user_defined_cuts.py +++ /dev/null @@ -1,961 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -import os.path -import sys - -cuts_variables = { - "abscoscs": """c variables for abscoscs cuts - real*8 zcoscs,zenl,zptxl,zptyl,zpzl,zenal,zptxal,zptyal,zpzal - real*8 zpzll,zmll,zp1p,zp1m,zp2p,zp2m,zpt2ll - integer zlep,zalep -""", - "atlas_dy3d_8tev": """c variables for atlas_dy3d_8tev cut - real*8 ppl(0:3),pplb(0:3) - real*8 p1p,p1m,p2p,p2m,pzll,pt2ll - real*8 xmll,xyll,xcos,xlimit -""", - "atlas_wzrap11_cf": """c variables for atlas_wzrap11_cf cut - real*8 ppl(0:4),pplb(0:4) - real*8 xyll,xeta1,xeta2 -""", - "atlas_1jet_8tev_r06": """c variables for atlas_1jet_8tev_r06 cuts - real*8 xptj,xyj - logical xjet -""", - "cms_2jet_3d_8tev": """c - real*8 xystar,xyboost,xptavg -""", - "ptmiss": """c variables for ptmiss cut - real*8 xptmiss(1:2) -""", - "mtw": """c variables for ptmiss cut - real*8 xmtw -""", -} - -cuts_code = { - "mjj": """c cut on the invariant mass of the leading jets - if (invm2_04(pjet(0,1),pjet(0,2),1d0) .lt. ({})**2) then - passcuts_user=.false. - return - endif - -""", - "dyjj": """c cut on the rapidity separation of the leading jets - tmpvar=atanh(pjet(3,1)/pjet(0,1)) - & -atanh(pjet(3,2)/pjet(0,2)) - if (abs(tmpvar) .lt. {}) then - passcuts_user=.false. - return - endif - -""", - "mmllmax": """c cut for mmllmax (SFOS lepton pairs) - do i=1,nexternal-1 - if (is_a_lm(i) .or. is_a_lp(i)) then - do j=i+1,nexternal - if (ipdg_reco(i) .eq. -ipdg_reco(j)) then - if (invm2_04(p_reco(0,i),p_reco(0,j),1d0) .gt. {}**2) then - passcuts_user=.false. - return - endif - endif - enddo - endif - enddo - -""", - "ptl1min": """c cut for ptl1min (leading lepton) - j = 0 - do i=1,nexternal - if (is_a_lm(i) .or. is_a_lp(i)) then - if (j.eq.0 .or. pt_04(p_reco(0,i)).ge.pt_04(p_reco(0,j))) then - j = i - endif - endif - enddo - if (pt_04(p_reco(0,j)) .lt. {}) then - passcuts_user=.false. - return - endif - -""", - "ptj1min": """c cut for ptl1min (leading jet) - if (pt(pjet(0,1)) .lt. {}) then - passcuts_user=.false. - return - endif - -""", - "yll": """c cut on the rapidity of the two leading leptons - j = 0 ! leading lepton index - mm = 0 ! subleading lepton index - do i=1,nexternal - if (is_a_lm(i) .or. is_a_lp(i)) then - tmpvar = pt_04(p_reco(0,i)) - if (j.eq.0) then - j = i - else if (mm.eq.0) then - if (tmpvar.ge.pt_04(p_reco(0,j))) then - mm = j - j = i - else if (tmpvar.ge.pt_04(p_reco(0,mm))) then - mm = i - endif - else if (tmpvar.ge.pt_04(p_reco(0,j))) then - mm = j - j = i - else if (tmpvar.ge.pt_04(p_reco(0,mm))) then - mm = i - endif - endif - enddo - if (abs(atanh((p_reco(3,j)+p_reco(3,mm)) - & /(p_reco(0,j)+p_reco(0,mm)))) .gt. {}) then - passcuts_user=.false. - return - endif - -""", - "ptzmin": """c cut on the pt of SFOS lepton pairs - do i=1,nexternal-1 - if (is_a_lm(i) .or. is_a_lp(i)) then - do j=i+1,nexternal - if (ipdg_reco(i) .eq. -ipdg_reco(j)) then - if (((p_reco(1,i)+p_reco(1,j))**2+ - & (p_reco(2,i)+p_reco(2,j))**2) .lt. {}**2) then - passcuts_user=.false. - return - endif - endif - enddo - endif - enddo - -""", - "ptzmax": """c cut on the pt of SFOS lepton pairs - do i=1,nexternal-1 - if (is_a_lm(i) .or. is_a_lp(i)) then - do j=i+1,nexternal - if (ipdg_reco(i) .eq. -ipdg_reco(j)) then - if (((p_reco(1,i)+p_reco(1,j))**2+ - & (p_reco(2,i)+p_reco(2,j))**2) .gt. {}**2) then - passcuts_user=.false. - return - endif - endif - enddo - endif - enddo - -""", - "yz": """c cut on the rapidity of SFOS lepton pairs - do i=1,nexternal-1 - if (is_a_lm(i) .or. is_a_lp(i)) then - do j=i+1,nexternal - if (ipdg_reco(i) .eq. -ipdg_reco(j)) then - if (abs(atanh((p_reco(3,i)+p_reco(3,j)) - & /(p_reco(0,i)+p_reco(0,j)))) .gt. {}) then - passcuts_user=.false. - return - endif - endif - enddo - endif - enddo - -""", - "yh": """c cut on Higgs particles - do i=1,nexternal - if (ipdg_reco(i) .eq. 25) then - if (abs(atanh(p_reco(3,i)/p_reco(0,i))) - & .gt. {}) then - passcuts_user=.false. - return - endif - endif - enddo - -""", - "yt": """c cut on top particles - do i=1,nexternal - if (ipdg_reco(i).eq.6 .or. ipdg_reco(i).eq.-6) then - if (abs(atanh(p_reco(3,i)/p_reco(0,i))) - & .gt. {}) then - passcuts_user=.false. - return - endif - endif - enddo - -""", - "abscoscsmin": """c cut on the minimum of the absolute value of the cosine of the Collins-Soper angle of SFOS pairs - do i=1,nexternal-1 - if (is_a_lm(i) .or. is_a_lp(i)) then - do j=i+1,nexternal - if (ipdg_reco(i) .eq. -ipdg_reco(j)) then - if (is_a_lm(i)) then - zlep=i - zalep=j - else - zlep=j - zalep=i - endif - zenl=p_reco(0,zlep) - zptxl=p_reco(1,zlep) - zptyl=p_reco(2,zlep) - zpzl=p_reco(3,zlep) - zenal=p_reco(0,zalep) - zptxal=p_reco(1,zalep) - zptyal=p_reco(2,zalep) - zpzal=p_reco(3,zalep) -c implementation of first formula on page 6 of https://arxiv.org/abs/1710.05167 - zp1p=zenl+zpzl - zp1m=zenl-zpzl - zp2p=zenal+zpzal - zp2m=zenal-zpzal - zpzll=zpzl+zpzal - zpt2ll=(zptxl+zptxal)*(zptxl+zptxal)+ - & (zptyl+zptyal)*(zptyl+zptyal) - zmll=sqrt((zenl+zenal)*(zenl+zenal)-(zpt2ll+zpzll*zpzll)) - zcoscs=sign((zp1p*zp2m-zp1m*zp2p)/ - & sqrt(zmll*zmll+zpt2ll)/zmll,zpzll) - - if (abs(zcoscs) .lt. {}) then - passcuts_user=.false. - return - endif - endif - enddo - endif - enddo - -""", - "minetal": """c cut on the minimum pseudorapidity of leptons - do i=1,nexternal-1 - if (is_a_lm(i) .or. is_a_lp(i)) then - if (abs(atanh(p_reco(3,i)/sqrt(p_reco(1,i)**2+p_reco(2,i)**2+ - & p_reco(3,i)**2))) .lt. {}) then - passcuts_user=.false. - return - endif - endif - enddo - -""", - "abscoscsmax": """c cut on the maximum of the absolute value of the cosine of the Collins-Soper angle of SFOS pairs - do i=1,nexternal-1 - if (is_a_lm(i) .or. is_a_lp(i)) then - do j=i+1,nexternal - if (ipdg_reco(i) .eq. -ipdg_reco(j)) then - if (is_a_lm(i)) then - zlep=i - zalep=j - else - zlep=j - zalep=i - endif - zenl=p_reco(0,zlep) - zptxl=p_reco(1,zlep) - zptyl=p_reco(2,zlep) - zpzl=p_reco(3,zlep) - zenal=p_reco(0,zalep) - zptxal=p_reco(1,zalep) - zptyal=p_reco(2,zalep) - zpzal=p_reco(3,zalep) -c implementation of first formula on page 6 of https://arxiv.org/abs/1710.05167 - zp1p=zenl+zpzl - zp1m=zenl-zpzl - zp2p=zenal+zpzal - zp2m=zenal-zpzal - zpzll=zpzl+zpzal - zpt2ll=(zptxl+zptxal)*(zptxl+zptxal)+ - & (zptyl+zptyal)*(zptyl+zptyal) - zmll=sqrt((zenl+zenal)*(zenl+zenal)-(zpt2ll+zpzll*zpzll)) - zcoscs=sign((zp1p*zp2m-zp1m*zp2p)/ - & sqrt(zmll*zmll+zpt2ll)/zmll,zpzll) - - if (abs(zcoscs) .gt. {}) then - passcuts_user=.false. - return - endif - endif - enddo - endif - enddo - -""", - "yzmin": """c cut on the rapidity of SFOS lepton pairs - do i=1,nexternal-1 - if (is_a_lm(i) .or. is_a_lp(i)) then - do j=i+1,nexternal - if (ipdg_reco(i) .eq. -ipdg_reco(j)) then - if (abs(atanh((p_reco(3,i)+p_reco(3,j)) - & /(p_reco(0,i)+p_reco(0,j)))) .lt. {}) then - passcuts_user=.false. - return - endif - endif - enddo - endif - enddo - -""", - "atlas_dy3d_8tev": """c - if ({}) then - do j = nincoming+1, nexternal - if (iPDG_reco(j).eq.13) ppl(0:3)=p_reco(0:3,j) - if (iPDG_reco(j).eq.-13) pplb(0:3)=p_reco(0:3,j) - enddo - - p1p = ppl(0) + ppl(3) - p1m = ppl(0) - ppl(3) - p2p = pplb(0) + pplb(3) - p2m = pplb(0) - pplb(3) - pzll = ppl(3) + pplb(3) - pt2ll = (ppl(1) + pplb(1)) * (ppl(1) + pplb(1)) + - & (ppl(2) + pplb(2)) * (ppl(2) + pplb(2)) - - xmll=sqrt((ppl(0)+pplb(0))**2-(ppl(1)+pplb(1))**2- - & (ppl(2)+pplb(2))**2-(ppl(3)+pplb(3))**2) - xyll=abs(atanh((ppl(3)+pplb(3))/(ppl(0)+pplb(0)))) - xcos = sign((p1p*p2m-p1m*p2p)/sqrt(xmll*xmll+pt2ll)/xmll,pzll) - - if (xmll.lt.46d0) then - passcuts_user=.false. - return - elseif (xmll.lt.66d0) then - if (xcos.lt.-0.7d0) then - xlimit=2.0d0 - elseif (xcos.lt.-0.4d0) then - xlimit=2.2d0 - elseif (xcos.lt.0.0d0) then - xlimit=2.4d0 - elseif (xcos.lt.0.4d0) then - xlimit=2.4d0 - elseif (xcos.lt.0.7d0) then - xlimit=2.2d0 - else - xlimit=2.0d0 - endif - elseif (xmll.lt.80d0) then - if (xcos.lt.-0.7d0) then - xlimit=2.0d0 - elseif (xcos.lt.-0.4d0) then - xlimit=2.2d0 - elseif (xcos.lt.0.0d0) then - xlimit=2.4d0 - elseif (xcos.lt.0.4d0) then - xlimit=2.4d0 - elseif (xcos.lt.0.7d0) then - xlimit=2.2d0 - else - xlimit=2.0d0 - endif - elseif (xmll.lt.91d0) then - if (xcos.lt.-0.7d0) then - xlimit=2.2d0 - elseif (xcos.lt.-0.4d0) then - xlimit=2.2d0 - elseif (xcos.lt.0.0d0) then - xlimit=2.4d0 - elseif (xcos.lt.0.4d0) then - xlimit=2.4d0 - elseif (xcos.lt.0.7d0) then - xlimit=2.2d0 - else - xlimit=2.2d0 - endif - elseif (xmll.lt.102d0) then - if (xcos.lt.-0.7d0) then - xlimit=2.2d0 - elseif (xcos.lt.-0.4d0) then - xlimit=2.2d0 - elseif (xcos.lt.0.0d0) then - xlimit=2.4d0 - elseif (xcos.lt.0.4d0) then - xlimit=2.4d0 - elseif (xcos.lt.0.7d0) then - xlimit=2.2d0 - else - xlimit=2.2d0 - endif - elseif (xmll.lt.116d0) then - if (xcos.lt.-0.7d0) then - xlimit=2.0d0 - elseif (xcos.lt.-0.4d0) then - xlimit=2.2d0 - elseif (xcos.lt.0.0d0) then - xlimit=2.4d0 - elseif (xcos.lt.0.4d0) then - xlimit=2.4d0 - elseif (xcos.lt.0.7d0) then - xlimit=2.2d0 - else - xlimit=2.0d0 - endif - elseif (xmll.lt.150d0) then - if (xcos.lt.-0.7d0) then - xlimit=1.8d0 - elseif (xcos.lt.-0.4d0) then - xlimit=2.2d0 - elseif (xcos.lt.0.0d0) then - xlimit=2.4d0 - elseif (xcos.lt.0.4d0) then - xlimit=2.4d0 - elseif (xcos.lt.0.7d0) then - xlimit=2.2d0 - else - xlimit=1.8d0 - endif - elseif (xmll.lt.200d0) then - if (xcos.lt.-0.7d0) then - xlimit=1.6d0 - elseif (xcos.lt.-0.4d0) then - xlimit=2.0d0 - elseif (xcos.lt.0.0d0) then - xlimit=2.4d0 - elseif (xcos.lt.0.4d0) then - xlimit=2.4d0 - elseif (xcos.lt.0.7d0) then - xlimit=2.0d0 - else - xlimit=1.6d0 - endif - else - passcuts_user=.false. - return - endif - - if (xyll.gt.xlimit) then - passcuts_user=.false. - return - endif - endif -""", - "atlas_wzrap11_cf": """c - if ({}) then - do i = nincoming+1, nexternal - if (iPDG_reco(i).eq.13) then - ppl(0:4)=p_reco(0:4,i) - xeta1=abs(eta_04(p_reco(0,i))) - elseif (iPDG_reco(i).eq.-13) then - pplb(0:4)=p_reco(0:4,i) - xeta2=abs(eta_04(p_reco(0,i))) - endif - enddo - - xyll=abs(atanh((ppl(3)+pplb(3))/(ppl(0)+pplb(0)))) - - if (xyll.lt.1.2d0 .or. xyll.gt.3.6d0) then - passcuts_user=.false. - return - endif - - if (xeta1.lt.2.5d0) then - if (xeta2.lt.2.5d0 .or. xeta2.gt.4.9d0) then - passcuts_user=.false. - return - endif - elseif (xeta2.lt.2.5d0) then - if (xeta1.lt.2.5d0 .or. xeta1.gt.4.9d0) then - passcuts_user=.false. - return - endif - else - passcuts_user=.false. - return - endif - endif -""", - "atlas_2jet_7tev_r06_0005": """c - if ({}) then - if (njet < 2) then - passcuts_user=.false. - return - endif - - block - real*8 xystar, xmjj - - xystar = 0.5d0 * abs(atanh(pjet(3,1)/pjet(0,1))- - $ atanh(pjet(3,2)/pjet(0,2))) - xmjj = sqrt(invm2_04(pjet(0,1),pjet(0,2),1d0)) - - if (xystar > 0.5d0 .or. xmjj < 260d0 .or. xmjj > 4270d0) then - passcuts_user=.false. - return - endif - end block - endif - -""", - "atlas_2jet_7tev_r06_0510": """c - if ({}) then - if (njet < 2) then - passcuts_user=.false. - return - endif - - block - real*8 xystar, xmjj - - xystar = 0.5d0 * abs(atanh(pjet(3,1)/pjet(0,1))- - $ atanh(pjet(3,2)/pjet(0,2))) - xmjj = sqrt(invm2_04(pjet(0,1),pjet(0,2),1d0)) - - if (xystar < 0.5d0 .or. xystar > 1.0d0 .or. xmjj < 310d0 .or. xmjj > 4270d0) then - passcuts_user=.false. - return - endif - end block - endif - -""", - "atlas_2jet_7tev_r06_1015": """c - if ({}) then - if (njet < 2) then - passcuts_user=.false. - return - endif - - block - real*8 xystar, xmjj - - xystar = 0.5d0 * abs(atanh(pjet(3,1)/pjet(0,1))- - $ atanh(pjet(3,2)/pjet(0,2))) - xmjj = sqrt(invm2_04(pjet(0,1),pjet(0,2),1d0)) - - if (xystar < 1.0d0 .or. xystar > 1.5d0 .or. xmjj < 510d0 .or. xmjj > 4640d0) then - passcuts_user=.false. - return - endif - end block - endif - -""", - "atlas_2jet_7tev_r06_1520": """c - if ({}) then - if (njet < 2) then - passcuts_user=.false. - return - endif - - block - real*8 xystar, xmjj - - xystar = 0.5d0 * abs(atanh(pjet(3,1)/pjet(0,1))- - $ atanh(pjet(3,2)/pjet(0,2))) - xmjj = sqrt(invm2_04(pjet(0,1),pjet(0,2),1d0)) - - if (xystar < 1.5d0 .or. xystar > 2.0d0 .or. xmjj < 760d0 .or. xmjj > 4640d0) then - passcuts_user=.false. - return - endif - end block - endif - -""", - "atlas_2jet_7tev_r06_2025": """c - if ({}) then - if (njet < 2) then - passcuts_user=.false. - return - endif - - block - real*8 xystar, xmjj - - xystar = 0.5d0 * abs(atanh(pjet(3,1)/pjet(0,1))- - $ atanh(pjet(3,2)/pjet(0,2))) - xmjj = sqrt(invm2_04(pjet(0,1),pjet(0,2),1d0)) - - if (xystar < 2.0d0 .or. xystar > 2.5d0 .or. xmjj < 1310d0 .or. xmjj > 5040d0) then - passcuts_user=.false. - return - endif - end block - endif - -""", - "atlas_2jet_7tev_r06_2530": """c - if ({}) then - if (njet < 2) then - passcuts_user=.false. - return - endif - - block - real*8 xystar, xmjj - - xystar = 0.5d0 * abs(atanh(pjet(3,1)/pjet(0,1))- - $ atanh(pjet(3,2)/pjet(0,2))) - xmjj = sqrt(invm2_04(pjet(0,1),pjet(0,2),1d0)) - - if (xystar < 2.5d0 .or. xystar > 3.0d0 .or. xmjj < 2120d0 .or. xmjj > 5040d0) then - passcuts_user=.false. - return - endif - end block - endif - -""", - "atlas_1jet_8tev_r06": """c - if ({}) then - xjet=.false. - - do i=1,njet - xyj = dabs(atanh(pjet(3,i)/pjet(0,i))) - xptj = pt_04(pjet(0,i)) - - if (xyj.lt.0.5d0) then - if (xptj.le.2500d0) then - xjet=.true. -c exit - endif - else if (xyj.lt.1.0d0) then - if (xptj.le.2500d0) then - xjet=.true. - exit - endif - else if (xyj.lt.1.5d0) then - if (xptj.le.1992d0) then - xjet=.true. - exit - endif - else if (xyj.lt.2.0d0) then - if (xptj.le.1310d0) then - xjet=.true. - exit - endif - else if (xyj.lt.2.5d0) then - if (xptj.le.838d0) then - xjet=.true. - exit - endif - else if (xyj.lt.3.0d0) then - if (xptj.le.556d0) then - xjet=.true. - exit - endif - endif - enddo - - if (.not. xjet) then - passcuts_user=.false. - return - endif - endif - -""", - "cms_2jets_7tev_0005": """c - if ({}) then - block - real*8 xymax, xmjj - - if (njet < 2) then - passcuts_user = .false. - return - end if - - xymax = max(abs(atanh(pjet(3,1)/pjet(0,1))), - $ abs(atanh(pjet(3,2)/pjet(0,2)))) - xmjj = sqrt(invm2_04(pjet(0,1),pjet(0,2),1d0)) - - if (xymax > 0.5d0 .or. xmjj < 197d0 .or. xmjj > 4010d0) then - passcuts_user=.false. - return - end if - end block - end if - -""", - "cms_2jets_7tev_0510": """c - if ({}) then - block - real*8 xymax, xmjj - - if (njet < 2) then - passcuts_user = .false. - return - end if - - xymax = max(abs(atanh(pjet(3,1)/pjet(0,1))), - $ abs(atanh(pjet(3,2)/pjet(0,2)))) - xmjj = sqrt(invm2_04(pjet(0,1),pjet(0,2),1d0)) - - if (xymax < 0.5d0 .or. xymax > 1.0d0 .or. xmjj < 270d0 .or. xmjj > 4010d0) then - passcuts_user=.false. - return - end if - end block - end if - -""", - "cms_2jets_7tev_1015": """c - if ({}) then - block - real*8 xymax, xmjj - - if (njet < 2) then - passcuts_user = .false. - return - end if - - xymax = max(abs(atanh(pjet(3,1)/pjet(0,1))), - $ abs(atanh(pjet(3,2)/pjet(0,2)))) - xmjj = sqrt(invm2_04(pjet(0,1),pjet(0,2),1d0)) - - if (xymax < 1.0d0 .or. xymax > 1.5d0 .or. xmjj < 419d0 .or. xmjj > 4509d0) then - passcuts_user=.false. - return - end if - end block - end if - -""", - "cms_2jets_7tev_1520": """c - if ({}) then - block - real*8 xymax, xmjj - - if (njet < 2) then - passcuts_user = .false. - return - end if - - xymax = max(abs(atanh(pjet(3,1)/pjet(0,1))), - $ abs(atanh(pjet(3,2)/pjet(0,2)))) - xmjj = sqrt(invm2_04(pjet(0,1),pjet(0,2),1d0)) - - if (xymax < 1.5d0 .or. xymax > 2.0d0 .or. xmjj < 565d0 .or. xmjj > 5058d0) then - passcuts_user=.false. - return - end if - end block - end if - -""", - "cms_2jets_7tev_2025": """c - if ({}) then - block - real*8 xymax, xmjj - - if (njet < 2) then - passcuts_user = .false. - return - end if - - xymax = max(abs(atanh(pjet(3,1)/pjet(0,1))), - $ abs(atanh(pjet(3,2)/pjet(0,2)))) - xmjj = sqrt(invm2_04(pjet(0,1),pjet(0,2),1d0)) - - if (xymax < 2.0d0 .or. xymax > 2.5d0 .or. xmjj < 1000d0 .or. xmjj > 5058d0) then - passcuts_user=.false. - return - end if - end block - end if - -""", - "cms_2jet_3d_8tev": """c - if ({}) then - if (njet.lt.2) then - passcuts_user=.false. - return - endif - - xystar = 0.5d0 * dabs(atanh(pjet(3,1)/pjet(0,1))- - $ atanh(pjet(3,2)/pjet(0,2))) - xyboost = 0.5d0 * dabs(atanh(pjet(3,1)/pjet(0,1))+ - $ atanh(pjet(3,2)/pjet(0,2))) - xptavg = 0.5d0 * (pt_04(pjet(0,1)) + pt_04(pjet(0,2))) - - if (xptavg.lt.133d0) then - passcuts_user=.false. - return - endif - - if (xyboost.lt.1d0) then - if (xystar.lt.1d0) then - if (xptavg.gt.1784d0) then - passcuts_user=.false. - return - endif - elseif (xystar.lt.2d0) then - if (xptavg.gt.1248d0) then - passcuts_user=.false. - return - endif - elseif (xystar.lt.3d0) then - if (xptavg.gt.548d0) then - passcuts_user=.false. - return - endif - else - passcuts_user=.false. - return - endif - else if (xyboost.lt.2d0) then - if (xystar.lt.1d0) then - if (xptavg.gt.1032d0) then - passcuts_user=.false. - return - endif - elseif (xystar.lt.2d0) then - if (xptavg.gt.686d0) then - passcuts_user=.false. - return - endif - else - passcuts_user=.false. - return - endif - else if (xyboost.lt.3d0) then - if (xystar.lt.1d0) then - if (xptavg.gt.430d0) then - passcuts_user=.false. - return - endif - else - passcuts_user=.false. - return - endif - else - passcuts_user=.false. - return - endif - endif - -""", - "ptmiss": """c cut on the sum of all missing transverse momentum - xptmiss=0d0 - - do i=3,nexternal - if (abs(ipdg_reco(i)).eq.12 .or. - & abs(ipdg_reco(i)).eq.14 .or. - & abs(ipdg_reco(i)).eq.16) then - xptmiss(1)=xptmiss(1)+p_reco(1,i) - xptmiss(2)=xptmiss(2)+p_reco(2,i) - endif - enddo - - if (xptmiss(1)**2+xptmiss(2)**2.lt.(({})**2)) then - passcuts_user=.false. - return - endif - -""", - "mtw": """c cut on the transverse mass of W bosons - do i=3,nexternal - do j=i+1,nexternal - if (is_a_lm(i) .or. is_a_lp(i) .or. - & is_a_lm(j) .or. is_a_lp(j)) then - if (abs(ipdg_reco(i)+ipdg_reco(j)).eq.1) then - xmtw=2d0*sqrt((p_reco(1,i)**2+p_reco(2,i)**2)* - & (p_reco(1,j)**2+p_reco(2,j)**2))- - & 2d0*(p_reco(1,i)*p_reco(1,j)+p_reco(2,i)*p_reco(2,j)) - if (xmtw.lt.(({})**2)) then - passcuts_user=.false. - return - endif - endif - endif - enddo - enddo - -""", -} - -if __name__ == "__main__": - if len(sys.argv) < 5: - print("Error: wrong number of arguments: {}".format(sys.argv)) - exit(1) - - # the name of the file we want to patch - filename = sys.argv[1] - - if not os.path.exists(filename): - print("Error: cut file `{}` does not exist".format(filename)) - exit(2) - - for i in zip(sys.argv[2::3], sys.argv[3::3], sys.argv[4::3]): - name = i[0] - - # check if the cut is recognised - if not name in cuts_code: - print("Error: unrecognised cut: {}".format(name)) - exit(3) - - if i[1] != "=": - print("Error: wrong argument format") - exit(4) - - with open(filename, "r") as fd: - contents = fd.readlines() - - insertion_marker = "logical function passcuts_user" - marker_pos = -1 - - for lineno, value in enumerate(contents): - if insertion_marker in value: - marker_pos = lineno - break - - if marker_pos == -1: - print( - "Error: could not find insertion marker `{}` in cut file `{}`".format( - insertion_marker, filename - ) - ) - exit(5) - - marker_pos = marker_pos + 8 - - for name in cuts_variables: - if any(i[0].startswith(name) for i in zip(sys.argv[2::3])): - contents.insert(marker_pos, cuts_variables[name]) - - insertion_marker = "USER-DEFINED CUTS" - marker_pos = -1 - - for lineno, value in enumerate(contents): - if insertion_marker in value: - marker_pos = lineno - break - - if marker_pos == -1: - print( - "Error: could not find insertion marker `{}` in cut file `{}`".format( - insertion_marker, filename - ) - ) - exit(5) - - # skip some lines with comments - marker_pos = marker_pos + 4 - # insert and empty line - contents.insert(marker_pos - 1, "\n") - - for i in zip(reversed(sys.argv[2::3]), reversed(sys.argv[4::3])): - name = i[0] - value = i[1] - - if value == "True": - value = ".true." - elif value == "False": - value = ".false." - else: - try: - float(value) - except ValueError: - print("Error: format of value `{}` not understood".format(value)) - exit(6) - value = value + "d0" - - code = cuts_code[name].format(value) - contents.insert(marker_pos, code) - - with open(filename, "w") as fd: - fd.writelines(contents) diff --git a/update_metadata.sh b/update_metadata.sh deleted file mode 100755 index 2250ef96..00000000 --- a/update_metadata.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -# exit script at the first sign of an error -set -o errexit - -# the following exits if undeclared variables are used -set -o nounset - -# exit if some program in a pipeline fails -set -o pipefail - -for i in $(find "$@" -name '*.pineappl.lz4'); do - dataset=$(basename $i) - dataset=${dataset%.pineappl.lz4} - - export grid=${i} - export metadata=nnpdf31_proc/${dataset}/metadata.txt - - if [[ ! -f ${metadata} ]]; then - echo "Skipping ${i#./}, couldn't find metadata (is the git repository on the right branch?)" - continue - else - echo "Updating ${i#./}" - fi - - eval $(awk -F= "BEGIN { printf \"pineappl set ${grid} ${grid}.tmp \" } { printf \"--entry %s '%s' \", \$1, \$2 }" ${metadata}) - - lz4 -9 ${i}.tmp 2>/dev/null - rm ${i}.tmp - mv ${i}.tmp.lz4 ${i} -done From 3eebb3840e8e7cef2c47a1e2ad79bdaf3ed7db1b Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Sat, 19 Mar 2022 11:18:47 +0100 Subject: [PATCH 22/60] Update pineappl repo url protocol --- runcardsrunner/install.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runcardsrunner/install.py b/runcardsrunner/install.py index fe022512..94b71b1f 100644 --- a/runcardsrunner/install.py +++ b/runcardsrunner/install.py @@ -24,7 +24,7 @@ """ "instructions to set the correct model for MG5aMC\\@NLO" -pineappl_repo = "git://github.com/N3PDF/pineappl.git" +pineappl_repo = "https://github.com/N3PDF/pineappl.git" "git repo location for pineappl" From e7c8fea42fc791eb545ad39ddca5ffb3b04a233c Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Wed, 1 Jun 2022 21:57:47 +0200 Subject: [PATCH 23/60] Move non-python dependencies list --- .github/CONTRIBUTING.md | 23 ----------------------- README.md | 4 ++-- docs/source/index.rst | 24 ++++++++++++++++++++++++ 3 files changed, 26 insertions(+), 25 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 57ba22e2..efd1a5fe 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -10,26 +10,3 @@ It might happen (frequently) that `poetry` complaints about version dependencies, if inconsistent. This is not `poetry`'s fault, and it's a useful warning that will prevent to just break when installed by a user with a different environment. - -### Non Python dependencies - -Even if the bootstrap script and the installation management try to reduce as -much as possible the amount of dependencies, still a few ingredients have to be -available on the system. - -To run the CLI: - -- `python` itself -- `pip` available as a module of the `python` that is running `rr` (as usually - is) -- `curl` - -To install `pineappl`: - -- `pkg-config` -- `openssl.pc` (e.g. on Debian available in the `libssl-dev` package) - -To install `mg5amc@nlo` and its dependencies: - -- `gfortran` -- `wget` diff --git a/README.md b/README.md index 09cc5c4c..31075f3b 100644 --- a/README.md +++ b/README.md @@ -21,8 +21,8 @@ For development you need the following tools: - `pre-commit`, to run maintenance hooks before commits (see [instructions](https://pre-commit.com/#install)) -See [below](.gihub/CONTRIBUTING.md#non-python-dependencies) for a few more dependencies (already -available on most systems). +See [below](.github/CONTRIBUTING.md#non-python-dependencies) for a few more +dependencies (already available on most systems). ## Documentation diff --git a/docs/source/index.rst b/docs/source/index.rst index 8c7641f6..2bedafc6 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -28,6 +28,30 @@ There are two ways of installing ``rr``, that are: and in this case, ``rr`` to be used is always the one provided as executable. in the repository. +Non Python dependencies +----------------------- + +Even if the bootstrap script and the installation management try to reduce as +much as possible the amount of dependencies, still a few ingredients have to be +available on the system. + +To run the CLI: + +- ``python`` itself +- ``pip`` available as a module of the ``python`` that is running ``rr`` (as usually + is) +- ``curl`` + +To install ``pineappl``: + +- ``pkg-config`` +- ``openssl.pc`` (e.g. on Debian available in the ``libssl-dev`` package) + +To install ``mg5amc@nlo`` and its dependencies: + +- ``gfortran`` +- ``wget`` + .. toctree:: :maxdepth: 1 From 31694e904c9b902656c45c0cf5ed7ac6b3f6df30 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Wed, 1 Jun 2022 22:00:15 +0200 Subject: [PATCH 24/60] Update scipy intersphinx --- docs/source/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 54570a56..153723af 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -115,7 +115,7 @@ # Thanks https://github.com/bskinn/sphobjinv intersphinx_mapping = { "python": ("https://docs.python.org/3/", None), - "scipy": ("https://docs.scipy.org/doc/scipy/reference", None), + "scipy": ("https://docs.scipy.org/doc/scipy", None), "numpy": ("https://numpy.org/doc/stable", None), "pygit2": ("https://www.pygit2.org/", None), "pandas": ("https://pandas.pydata.org/docs/", None), From ee4e2e36d1d6663e233f683627561602b279072b Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Thu, 21 Jul 2022 18:40:59 +0200 Subject: [PATCH 25/60] Fix configs usage to dict style (new simplified style) --- runcardsrunner/external/mg5/__init__.py | 9 +++++---- runcardsrunner/external/positivity.py | 6 ++++-- runcardsrunner/external/vrap.py | 6 +++--- runcardsrunner/install.py | 18 +++++++++--------- 4 files changed, 21 insertions(+), 18 deletions(-) diff --git a/runcardsrunner/external/mg5/__init__.py b/runcardsrunner/external/mg5/__init__.py index b6f498d5..02199626 100644 --- a/runcardsrunner/external/mg5/__init__.py +++ b/runcardsrunner/external/mg5/__init__.py @@ -10,6 +10,7 @@ from ... import configs, install, log, tools from .. import interface +from . import paths class Mg5(interface.External): @@ -109,7 +110,7 @@ def run(self): if user_taumin is not None: set_tau_min_patch = ( - (configs.configs.paths.patches / "set_tau_min.patch") + (paths.patches / "set_tau_min.patch") .read_text() .replace("@TAU_MIN@", f"{user_taumin}d0") ) @@ -127,7 +128,7 @@ def run(self): if len(enable_patches_list) != 0: for patch in enable_patches_list: - patch_file = configs.configs.paths.patches / patch + patch_file = paths.patches / patch patch_file = patch_file.with_suffix(patch_file.suffix + ".patch") if not patch_file.exists(): raise ValueError( @@ -254,7 +255,7 @@ def apply_user_cuts(cuts_file, user_cuts): marker_pos = find_marker_position("logical function passcuts_user", contents) marker_pos = marker_pos + 8 - for fname in configs.configs.paths.cuts_variables.iterdir(): + for fname in paths.cuts_variables.iterdir(): name = fname.stem if any(i[0].startswith(name) for i in user_cuts): contents.insert(marker_pos, fname.read_text()) @@ -279,7 +280,7 @@ def apply_user_cuts(cuts_file, user_cuts): value = value + "d0" - code = (configs.configs.paths.cuts_code / f"{name}.f").read_text().format(value) + code = (paths.cuts_code / f"{name}.f").read_text().format(value) contents.insert(marker_pos, code) with open(cuts_file, "w") as fd: diff --git a/runcardsrunner/external/positivity.py b/runcardsrunner/external/positivity.py index 3f5ec508..d9fedb5d 100644 --- a/runcardsrunner/external/positivity.py +++ b/runcardsrunner/external/positivity.py @@ -22,7 +22,7 @@ def is_positivity(name): name : str dataset name """ - return (configs.configs.paths.runcards / name / "positivity.yaml").exists() + return (configs.configs["paths"]["runcards"] / name / "positivity.yaml").exists() class Positivity(interface.External): @@ -30,7 +30,9 @@ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) def run(self): - with open(configs.configs.paths.runcards / self.name / "positivity.yaml") as o: + with open( + configs.configs["paths"]["runcards"] / self.name / "positivity.yaml" + ) as o: self.runcard = yaml.safe_load(o) def generate_pineappl(self): diff --git a/runcardsrunner/external/vrap.py b/runcardsrunner/external/vrap.py index 7b1a91a8..115b5538 100644 --- a/runcardsrunner/external/vrap.py +++ b/runcardsrunner/external/vrap.py @@ -41,7 +41,7 @@ def is_vrap(name): """ Checks whether this is a dataset to be run with vrap """ - return (configs.configs.paths.runcards / name / "vrap.yaml").exists() + return (configs.configs["paths"]["runcards"] / name / "vrap.yaml").exists() def yaml_to_vrapcard(yaml_dict, pdf, output_file): @@ -122,7 +122,7 @@ def run(self): """ for b, kin_card in enumerate(self._kin_cards): sp.run( - [configs.configs.commands.vrap, self._input_card, kin_card], + [configs.configs["commands"]["vrap"], self._input_card, kin_card], cwd=self.dest, check=True, ) @@ -196,7 +196,7 @@ def results(self): def collect_versions(self): """Currently the version is defined by this file""" vrap_run = sp.run( - [configs.configs.commands.vrap, "--version"], + [configs.configs["commands"]["vrap"], "--version"], capture_output=True, check=True, ) diff --git a/runcardsrunner/install.py b/runcardsrunner/install.py index 94b71b1f..58d261a2 100644 --- a/runcardsrunner/install.py +++ b/runcardsrunner/install.py @@ -80,8 +80,8 @@ def hawaiian_vrap(): """ def condition(): - return configs.configs.paths.vrap_exe.exists() and os.access( - configs.configs.paths.vrap_exe, os.X_OK + return configs.configs["paths"]["vrap"].exists() and os.access( + configs.configs["paths"]["vrap"], os.X_OK ) if condition(): @@ -106,7 +106,7 @@ def condition(): build_dir = tmp_vrap / "build" build_dir.mkdir(exist_ok=True) subprocess.run( - ["../src/configure", "--prefix", configs.configs.paths.prefix], + ["../src/configure", "--prefix", configs.configs["paths"]["prefix"]], cwd=build_dir, check=True, ) @@ -188,11 +188,11 @@ def cli_installed(): if capi and not installed(): try: - repo = pygit2.Repository(configs.configs.paths.pineappl) + repo = pygit2.Repository(configs.configs["paths"]["pineappl"]) tools.git_pull(repo) except pygit2.GitError: repo = pygit2.clone_repository( - pineappl_repo, configs.configs.paths.pineappl + pineappl_repo, configs.configs["paths"]["pineappl"] ) cargo_exe = cargo() @@ -202,10 +202,10 @@ def cli_installed(): [cargo_exe] + "cinstall --release --prefix".split() + [ - str(configs.configs.paths.prefix), + str(configs.configs["paths"]["prefix"]), "--manifest-path=pineappl_capi/Cargo.toml", ], - cwd=configs.configs.paths.pineappl, + cwd=configs.configs["paths"]["pineappl"], ) if cli and not cli_installed(): @@ -213,8 +213,8 @@ def cli_installed(): subprocess.run( [cargo_exe] + "install --path pineappl_cli --root".split() - + [str(configs.configs.paths.prefix)], - cwd=configs.configs.paths.pineappl, + + [str(configs.configs["paths"]["prefix"])], + cwd=configs.configs["paths"]["pineappl"], ) configs.configs["commands"]["pineappl"] = shutil.which("pineappl") From 6714e377407fa13cedd8f03d8942cc2b546c2650 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Thu, 21 Jul 2022 21:22:27 +0200 Subject: [PATCH 26/60] Update versions of yadism, pineappl, and yaml --- poetry.lock | 1938 ++++++++++++++++++++++++++++++++++++++++++++++++ pyproject.toml | 12 +- 2 files changed, 1944 insertions(+), 6 deletions(-) create mode 100644 poetry.lock diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 00000000..cf06d185 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,1938 @@ +[[package]] +name = "a3b2bbc3ced97675ac3a71df45f55ba" +version = "6.4.0" +description = "The LHAPDF parton density evaluation library" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "alabaster" +version = "0.7.12" +description = "A configurable sidebar-enabled Sphinx theme" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "appdirs" +version = "1.4.4" +description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "appnope" +version = "0.1.3" +description = "Disable App Nap on macOS >= 10.9" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "astroid" +version = "2.11.7" +description = "An abstract syntax tree for Python with inference support." +category = "dev" +optional = false +python-versions = ">=3.6.2" + +[package.dependencies] +lazy-object-proxy = ">=1.4.0" +typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""} +wrapt = ">=1.11,<2" + +[[package]] +name = "atomicwrites" +version = "1.4.1" +description = "Atomic file writes." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "attrs" +version = "21.4.0" +description = "Classes Without Boilerplate" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.extras] +dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] +docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] +tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] +tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"] + +[[package]] +name = "babel" +version = "2.10.3" +description = "Internationalization utilities" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +pytz = ">=2015.7" + +[[package]] +name = "backcall" +version = "0.2.0" +description = "Specifications for callback functions passed in to an API" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "breezy" +version = "3.2.2" +description = "Friendly distributed version control system" +category = "main" +optional = false +python-versions = ">=3.5" + +[package.dependencies] +configobj = "*" +dulwich = ">=0.20.23" +fastbencode = "*" +patiencediff = "*" + +[package.extras] +cext = ["cython (>=0.29)"] +doc = ["sphinx-epytext", "setuptools (<45)", "sphinx (==1.8.5)"] +fastimport = ["fastimport (<0.9.8)", "fastimport"] +git = ["dulwich (>=0.20.23)"] +launchpad = ["launchpadlib (>=1.6.3)"] +workspace = ["pyinotify"] + +[[package]] +name = "certifi" +version = "2022.6.15" +description = "Python package for providing Mozilla's CA Bundle." +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "cffi" +version = "1.15.1" +description = "Foreign Function Interface for Python calling C code." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "charset-normalizer" +version = "2.1.0" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" +optional = false +python-versions = ">=3.6.0" + +[package.extras] +unicode_backport = ["unicodedata2"] + +[[package]] +name = "click" +version = "8.1.3" +description = "Composable command line interface toolkit" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.5" +description = "Cross-platform colored terminal text." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "commonmark" +version = "0.9.1" +description = "Python parser for the CommonMark Markdown spec" +category = "main" +optional = false +python-versions = "*" + +[package.extras] +test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"] + +[[package]] +name = "configobj" +version = "5.0.6" +description = "Config file reading, writing and validation." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +six = "*" + +[[package]] +name = "decorator" +version = "5.1.1" +description = "Decorators for Humans" +category = "dev" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "dill" +version = "0.3.5.1" +description = "serialize all of python" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" + +[package.extras] +graph = ["objgraph (>=1.7.2)"] + +[[package]] +name = "docutils" +version = "0.17.1" +description = "Docutils -- Python Documentation Utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "dulwich" +version = "0.20.45" +description = "Python Git Library" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +certifi = "*" +urllib3 = ">=1.24.1" + +[package.extras] +fastimport = ["fastimport"] +https = ["urllib3[secure] (>=1.24.1)"] +paramiko = ["paramiko"] +pgp = ["gpg"] + +[[package]] +name = "eko" +version = "0.9.4" +description = "Evolution Kernel Operator" +category = "main" +optional = false +python-versions = ">=3.8,<3.11" + +[package.dependencies] +lz4 = ">=3.1.10,<4.0.0" +numba = ">=0.55.0,<0.56.0" +numpy = ">=1.21.0,<2.0.0" +PyYAML = ">=6.0,<7.0" +scipy = ">=1.7.3,<2.0.0" + +[package.extras] +docs = ["Sphinx (>=4.3.2,<5.0.0)", "nbsphinx (>=0.8.8,<0.9.0)", "sphinx-rtd-theme (>=1.0.0,<2.0.0)", "sphinxcontrib-bibtex (>=2.4.1,<3.0.0)"] +mark = ["banana-hep (>=0.6.5,<0.7.0)", "matplotlib (>=3.5.1,<4.0.0)", "pandas (>=1.3.0,<2.0.0)", "sqlalchemy (>=1.4.21,<2.0.0)"] +box = ["banana-hep (>=0.6.5,<0.7.0)", "matplotlib (>=3.5.1,<4.0.0)", "pandas (>=1.3.0,<2.0.0)", "sqlalchemy (>=1.4.21,<2.0.0)"] + +[[package]] +name = "fancycompleter" +version = "0.9.1" +description = "colorful TAB completion for Python prompt" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +pyreadline = {version = "*", markers = "platform_system == \"Windows\""} +pyrepl = ">=0.8.2" + +[[package]] +name = "fastbencode" +version = "0.0.9" +description = "Implementation of bencode with optional fast C extensions" +category = "main" +optional = false +python-versions = "*" + +[package.extras] +cext = ["cython (>=0.29)"] + +[[package]] +name = "idna" +version = "3.3" +description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "imagesize" +version = "1.4.1" +description = "Getting image size from png/jpeg/jpeg2000/gif file" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "importlib-metadata" +version = "4.12.0" +description = "Read metadata from Python packages" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +zipp = ">=0.5" + +[package.extras] +docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"] +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)"] + +[[package]] +name = "ipython" +version = "7.34.0" +description = "IPython: Productive Interactive Computing" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +appnope = {version = "*", markers = "sys_platform == \"darwin\""} +backcall = "*" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} +pickleshare = "*" +prompt-toolkit = ">=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0" +pygments = "*" +traitlets = ">=4.2" + +[package.extras] +all = ["Sphinx (>=1.3)", "ipykernel", "ipyparallel", "ipywidgets", "nbconvert", "nbformat", "nose (>=0.10.1)", "notebook", "numpy (>=1.17)", "pygments", "qtconsole", "requests", "testpath"] +doc = ["Sphinx (>=1.3)"] +kernel = ["ipykernel"] +nbconvert = ["nbconvert"] +nbformat = ["nbformat"] +notebook = ["notebook", "ipywidgets"] +parallel = ["ipyparallel"] +qtconsole = ["qtconsole"] +test = ["nose (>=0.10.1)", "requests", "testpath", "pygments", "nbformat", "ipykernel", "numpy (>=1.17)"] + +[[package]] +name = "isort" +version = "5.10.1" +description = "A Python utility / library to sort Python imports." +category = "dev" +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)"] +plugins = ["setuptools"] + +[[package]] +name = "jedi" +version = "0.18.1" +description = "An autocompletion tool for Python that can be used for text editors." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +parso = ">=0.8.0,<0.9.0" + +[package.extras] +qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] +testing = ["Django (<3.1)", "colorama", "docopt", "pytest (<7.0.0)"] + +[[package]] +name = "jinja2" +version = "3.1.2" +description = "A very fast and expressive template engine." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "latexcodec" +version = "2.0.1" +description = "A lexer and codec to work with LaTeX code in Python." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.dependencies] +six = ">=1.4.1" + +[[package]] +name = "lazy-object-proxy" +version = "1.7.1" +description = "A fast and thorough lazy object proxy." +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "leprohq" +version = "0.2.3" +description = "(Un-)polarized Leptoproduction of Heavy Quarks" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +numba = "*" +numpy = "*" +scipy = "*" + +[[package]] +name = "lhapdf-management" +version = "0.2" +description = "python-only lhapdf management" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +numpy = "*" +pyyaml = "*" +tqdm = "*" + +[[package]] +name = "llvmlite" +version = "0.38.1" +description = "lightweight wrapper around basic LLVM functionality" +category = "main" +optional = false +python-versions = ">=3.7,<3.11" + +[[package]] +name = "lz4" +version = "3.1.10" +description = "LZ4 Bindings for Python" +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +docs = ["sphinx (>=1.6.0)", "sphinx-bootstrap-theme"] +flake8 = ["flake8"] +tests = ["pytest (!=3.3.0)", "psutil", "pytest-cov"] + +[[package]] +name = "markupsafe" +version = "2.1.1" +description = "Safely add untrusted strings to HTML/XML markup." +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "matplotlib-inline" +version = "0.1.3" +description = "Inline Matplotlib backend for Jupyter" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.dependencies] +traitlets = "*" + +[[package]] +name = "mccabe" +version = "0.7.0" +description = "McCabe checker, plugin for flake8" +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "more-itertools" +version = "8.13.0" +description = "More routines for operating on iterables, beyond itertools" +category = "main" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "numba" +version = "0.55.2" +description = "compiling Python code using LLVM" +category = "main" +optional = false +python-versions = ">=3.7,<3.11" + +[package.dependencies] +llvmlite = ">=0.38.0rc1,<0.39" +numpy = ">=1.18,<1.23" + +[[package]] +name = "numpy" +version = "1.22.4" +description = "NumPy is the fundamental package for array computing with Python." +category = "main" +optional = false +python-versions = ">=3.8" + +[[package]] +name = "packaging" +version = "21.3" +description = "Core utilities for Python packages" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" + +[[package]] +name = "pandas" +version = "1.4.3" +description = "Powerful data structures for data analysis, time series, and statistics" +category = "main" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +numpy = [ + {version = ">=1.18.5", markers = "platform_machine != \"aarch64\" and platform_machine != \"arm64\" and python_version < \"3.10\""}, + {version = ">=1.19.2", markers = "platform_machine == \"aarch64\" and python_version < \"3.10\""}, + {version = ">=1.20.0", markers = "platform_machine == \"arm64\" and python_version < \"3.10\""}, + {version = ">=1.21.0", markers = "python_version >= \"3.10\""}, +] +python-dateutil = ">=2.8.1" +pytz = ">=2020.1" + +[package.extras] +test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"] + +[[package]] +name = "parso" +version = "0.8.3" +description = "A Python Parser" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] +testing = ["docopt", "pytest (<6.0.0)"] + +[[package]] +name = "patiencediff" +version = "0.2.2" +description = "Python implementation of the patiencediff algorithm." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "pdbpp" +version = "0.10.3" +description = "pdb++, a drop-in replacement for pdb" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +fancycompleter = ">=0.8" +pygments = "*" +wmctrl = "*" + +[package.extras] +funcsigs = ["funcsigs"] +testing = ["funcsigs", "pytest"] + +[[package]] +name = "pexpect" +version = "4.8.0" +description = "Pexpect allows easy control of interactive console applications." +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +ptyprocess = ">=0.5" + +[[package]] +name = "pickleshare" +version = "0.7.5" +description = "Tiny 'shelve'-like database with concurrency support" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "pineappl" +version = "0.5.4" +description = "Python bindings to PineAPPL" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +numpy = ">=1.16.0,<2.0.0" + +[package.extras] +test = ["pytest", "pytest-cov"] +docs = ["sphinx", "sphinx-rtd-theme", "sphinxcontrib-bibtex", "nbsphinx"] + +[[package]] +name = "pkgconfig" +version = "1.5.5" +description = "Interface Python with pkg-config" +category = "main" +optional = false +python-versions = ">=3.3,<4.0" + +[[package]] +name = "platformdirs" +version = "2.5.2" +description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" +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)"] + +[[package]] +name = "pluggy" +version = "0.13.1" +description = "plugin and hook calling mechanisms for python" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.extras] +dev = ["pre-commit", "tox"] + +[[package]] +name = "prompt-toolkit" +version = "3.0.30" +description = "Library for building powerful interactive command lines in Python" +category = "dev" +optional = false +python-versions = ">=3.6.2" + +[package.dependencies] +wcwidth = "*" + +[[package]] +name = "ptyprocess" +version = "0.7.0" +description = "Run a subprocess in a pseudo terminal" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "py" +version = "1.11.0" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "pybtex" +version = "0.24.0" +description = "A BibTeX-compatible bibliography processor in Python" +category = "main" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*" + +[package.dependencies] +latexcodec = ">=1.0.4" +PyYAML = ">=3.01" +six = "*" + +[package.extras] +test = ["pytest"] + +[[package]] +name = "pybtex-docutils" +version = "1.0.2" +description = "A docutils backend for pybtex." +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +docutils = ">=0.8" +pybtex = ">=0.16" + +[[package]] +name = "pycparser" +version = "2.21" +description = "C parser in Python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "pygit2" +version = "1.9.2" +description = "Python bindings for libgit2." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +cffi = ">=1.9.1" + +[[package]] +name = "pygments" +version = "2.12.0" +description = "Pygments is a syntax highlighting package written in Python." +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "pylint" +version = "2.14.5" +description = "python code static checker" +category = "dev" +optional = false +python-versions = ">=3.7.2" + +[package.dependencies] +astroid = ">=2.11.6,<=2.12.0-dev0" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +dill = ">=0.2" +isort = ">=4.2.5,<6" +mccabe = ">=0.6,<0.8" +platformdirs = ">=2.2.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +tomlkit = ">=0.10.1" +typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} + +[package.extras] +spelling = ["pyenchant (>=3.2,<4.0)"] +testutils = ["gitpython (>3)"] + +[[package]] +name = "pyparsing" +version = "3.0.9" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" +category = "main" +optional = false +python-versions = ">=3.6.8" + +[package.extras] +diagrams = ["railroad-diagrams", "jinja2"] + +[[package]] +name = "pyreadline" +version = "2.1" +description = "A python implmementation of GNU readline." +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "pyrepl" +version = "0.9.0" +description = "A library for building flexible command line interfaces" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "pytest" +version = "5.4.3" +description = "pytest: simple powerful testing with Python" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.dependencies] +atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} +attrs = ">=17.4.0" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +more-itertools = ">=4.0.0" +packaging = "*" +pluggy = ">=0.12,<1.0" +py = ">=1.5.0" +wcwidth = "*" + +[package.extras] +checkqa-mypy = ["mypy (==v0.761)"] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] + +[[package]] +name = "python-dateutil" +version = "2.8.2" +description = "Extensions to the standard Python datetime module" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "pytz" +version = "2022.1" +description = "World timezone definitions, modern and historical" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "pyyaml" +version = "6.0" +description = "YAML parser and emitter for Python" +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "requests" +version = "2.28.1" +description = "Python HTTP for Humans." +category = "main" +optional = false +python-versions = ">=3.7, <4" + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<3" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<1.27" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rich" +version = "10.16.2" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +category = "main" +optional = false +python-versions = ">=3.6.2,<4.0.0" + +[package.dependencies] +colorama = ">=0.4.0,<0.5.0" +commonmark = ">=0.9.0,<0.10.0" +pygments = ">=2.6.0,<3.0.0" + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<8.0.0)"] + +[[package]] +name = "scipy" +version = "1.8.1" +description = "SciPy: Scientific Library for Python" +category = "main" +optional = false +python-versions = ">=3.8,<3.11" + +[package.dependencies] +numpy = ">=1.17.3,<1.25.0" + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "snowballstemmer" +version = "2.2.0" +description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "sphinx" +version = "4.5.0" +description = "Python documentation generator" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +alabaster = ">=0.7,<0.8" +babel = ">=1.3" +colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""} +docutils = ">=0.14,<0.18" +imagesize = "*" +importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} +Jinja2 = ">=2.3" +packaging = "*" +Pygments = ">=2.0" +requests = ">=2.5.0" +snowballstemmer = ">=1.1" +sphinxcontrib-applehelp = "*" +sphinxcontrib-devhelp = "*" +sphinxcontrib-htmlhelp = ">=2.0.0" +sphinxcontrib-jsmath = "*" +sphinxcontrib-qthelp = "*" +sphinxcontrib-serializinghtml = ">=1.1.5" + +[package.extras] +docs = ["sphinxcontrib-websupport"] +lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.931)", "docutils-stubs", "types-typed-ast", "types-requests"] +test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"] + +[[package]] +name = "sphinx-rtd-theme" +version = "1.0.0" +description = "Read the Docs theme for Sphinx" +category = "main" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" + +[package.dependencies] +docutils = "<0.18" +sphinx = ">=1.6" + +[package.extras] +dev = ["transifex-client", "sphinxcontrib-httpdomain", "bump2version"] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "1.0.2" +description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-bibtex" +version = "2.4.2" +description = "Sphinx extension for BibTeX style citations." +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +docutils = ">=0.8" +pybtex = ">=0.24" +pybtex-docutils = ">=1.0.0" +Sphinx = ">=2.1" + +[[package]] +name = "sphinxcontrib-devhelp" +version = "1.0.2" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.0.0" +description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest", "html5lib"] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +description = "A sphinx extension which renders display math in HTML via JavaScript" +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +test = ["pytest", "flake8", "mypy"] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "1.0.3" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "1.1.5" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "tomlkit" +version = "0.11.1" +description = "Style preserving TOML library" +category = "dev" +optional = false +python-versions = ">=3.6,<4.0" + +[[package]] +name = "tqdm" +version = "4.64.0" +description = "Fast, Extensible Progress Meter" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["py-make (>=0.1.0)", "twine", "wheel"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "traitlets" +version = "5.3.0" +description = "" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +test = ["pre-commit", "pytest"] + +[[package]] +name = "typing-extensions" +version = "4.3.0" +description = "Backported and Experimental Type Hints for Python 3.7+" +category = "dev" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "urllib3" +version = "1.26.10" +description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" +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"] +socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] + +[[package]] +name = "wcwidth" +version = "0.2.5" +description = "Measures the displayed width of unicode strings in a terminal" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "wmctrl" +version = "0.4" +description = "A tool to programmatically control windows inside X" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "wrapt" +version = "1.14.1" +description = "Module for decorators, wrappers and monkey patching." +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + +[[package]] +name = "yadism" +version = "0.11.2" +description = "Yet Another Deep-Inelastic Scattering Module" +category = "main" +optional = false +python-versions = ">=3.8,<3.11" + +[package.dependencies] +eko = ">=0.9.4,<0.10.0" +LeProHQ = ">=0.2.3,<0.3.0" +numba = ">=0.55.0,<0.56.0" +numpy = ">=1.21.0,<2.0.0" +pandas = ">=1.3.0,<2.0.0" +rich = ">=10.6.0,<11.0.0" +scipy = ">=1.7.0,<2.0.0" + +[package.extras] +docs = ["Sphinx (>=4.1.1,<5.0.0)", "nbsphinx (>=0.8.6,<0.9.0)", "recommonmark (>=0.7.1,<0.8.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-bibtex (>=2.3.0,<3.0.0)", "sphinxcontrib-details-directive (>=0.1.0,<0.2.0)"] +mark = ["a3b2bbc3ced97675ac3a71df45f55ba (>=6.4.0,<7.0.0)", "banana-hep (>=0.6.4,<0.7.0)", "sqlalchemy (>=1.4.21,<2.0.0)"] +pineappl = ["pineappl (==0.5.0)"] + +[[package]] +name = "zipp" +version = "3.8.1" +description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" +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)"] + +[extras] +docs = ["Sphinx", "sphinx-rtd-theme", "sphinxcontrib-bibtex"] + +[metadata] +lock-version = "1.1" +python-versions = ">=3.8,<3.11" +content-hash = "3a5dbf9325d6e5e450829109adff916cf90eafd564365ca237b8b39e459dde4f" + +[metadata.files] +a3b2bbc3ced97675ac3a71df45f55ba = [ + {file = "a3b2bbc3ced97675ac3a71df45f55ba-6.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d47714ce84c5cd94cc5512d5683b39c5cd681e13ad086961770b4eb093e11154"}, + {file = "a3b2bbc3ced97675ac3a71df45f55ba-6.4.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ee7ba0247c67a8357685e5ad415df8b2322baf7eadd53120819a6c8d35484fe"}, + {file = "a3b2bbc3ced97675ac3a71df45f55ba-6.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a01f7629db6684f9b231e60f98426b70fc66d45efa6a80ba26c6cacec5a95a7b"}, + {file = "a3b2bbc3ced97675ac3a71df45f55ba-6.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0eaca66dafb9ab775e6aa2bd3e94e11f70b1bd28fa636fb047b917653b77ad4"}, + {file = "a3b2bbc3ced97675ac3a71df45f55ba-6.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b3aab2121fa218ab30fa7ce72452646f74c183c00639d8d865a4abec57e92f2"}, + {file = "a3b2bbc3ced97675ac3a71df45f55ba-6.4.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0147a1d9dab10f8b23ef5fc97f570ce044e9f8409bfee2fbce551180fafcbb2e"}, + {file = "a3b2bbc3ced97675ac3a71df45f55ba-6.4.0.tar.gz", hash = "sha256:1bd60035f9862db1130be035f631c2cfcf90d2ee0cfc6f33ce29fbf8a70b5a04"}, +] +alabaster = [ + {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, + {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, +] +appdirs = [ + {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, + {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, +] +appnope = [ + {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, + {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, +] +astroid = [ + {file = "astroid-2.11.7-py3-none-any.whl", hash = "sha256:86b0a340a512c65abf4368b80252754cda17c02cdbbd3f587dddf98112233e7b"}, + {file = "astroid-2.11.7.tar.gz", hash = "sha256:bb24615c77f4837c707669d16907331374ae8a964650a66999da3f5ca68dc946"}, +] +atomicwrites = [ + {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, +] +attrs = [ + {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, + {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, +] +babel = [ + {file = "Babel-2.10.3-py3-none-any.whl", hash = "sha256:ff56f4892c1c4bf0d814575ea23471c230d544203c7748e8c68f0089478d48eb"}, + {file = "Babel-2.10.3.tar.gz", hash = "sha256:7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51"}, +] +backcall = [ + {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, + {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, +] +breezy = [ + {file = "breezy-3.2.2.tar.gz", hash = "sha256:187a6e45208dd05d81750736720c83710cf48094f547ec4081c571259559a4d5"}, +] +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"}, +] +colorama = [ + {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, + {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, +] +commonmark = [ + {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"}, + {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"}, +] +configobj = [ + {file = "configobj-5.0.6.tar.gz", hash = "sha256:a2f5650770e1c87fb335af19a9b7eb73fc05ccf22144eb68db7d00cd2bcb0902"}, +] +decorator = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] +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"}, +] +docutils = [ + {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, + {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, +] +dulwich = [ + {file = "dulwich-0.20.45-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:9b689b05bc7baa5cb20ebff54291085b598a9bdf7caeab23daf93b46421d96ff"}, + {file = "dulwich-0.20.45-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7cf5171034d9d61b928bd5f9c509000e895d1ba29bd6ea850b9e4f93fca0f7"}, + {file = "dulwich-0.20.45-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:22d433ba9c776f2b0e19b1186e01e25ca286175e20f4ac422141db94eeaac08b"}, + {file = "dulwich-0.20.45-cp310-cp310-win_amd64.whl", hash = "sha256:6e02babb44bdad17b6c9c50b4f9df42f6e511e3a51555ac07dd85ec904efe0b1"}, + {file = "dulwich-0.20.45-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:042bc206764968b17338e32c52bb6a116154eb87a63651971946917dfa37a359"}, + {file = "dulwich-0.20.45-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e405ac9426288ca782c45e066f816d878b4a529acf4d4b0b2a5bb45a804dfec"}, + {file = "dulwich-0.20.45-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c8c0fc7d2e3b0ad6a4faadf96f0626fa50935ababfd774b9b94edaa28f0668ec"}, + {file = "dulwich-0.20.45-cp36-cp36m-win_amd64.whl", hash = "sha256:35015e43207752cf7924860e85a3c2290c652c0c3ee81e7c95c52d34638f605d"}, + {file = "dulwich-0.20.45-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:d89f53a739ac3394b5ef2f178480569b7d36d4fe7b4bb49678582914530ce35b"}, + {file = "dulwich-0.20.45-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abb1b0e1e50192ce7204c4e14f24c989c5920c56de908365f4e66c6e3458945"}, + {file = "dulwich-0.20.45-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:eb4189d72a0e2f3070e2abdbd10a05c0e62355cd5496761d6e68f1e865ac6fad"}, + {file = "dulwich-0.20.45-cp37-cp37m-win_amd64.whl", hash = "sha256:efe46167eb02ba85d9c2e993635e7543e1e04bb3261112e9d54daff2385ae5df"}, + {file = "dulwich-0.20.45-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:3f2c137a0003e80e384d116e65b453f8a704c2d393c30a47b447764e7f9c05a1"}, + {file = "dulwich-0.20.45-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65334bd7a1d91054516a49f86343e9c2549740bbddebcbb4763c8aacf2aac48c"}, + {file = "dulwich-0.20.45-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5e41044ac51a4b3454d67e5f691808540470deeb6a852d7c5c6ca44c48b4cdc3"}, + {file = "dulwich-0.20.45-cp38-cp38-win_amd64.whl", hash = "sha256:d8b6aae7af8edbfac8038e1777ae820efac33c7c22a8025d3254bbd53ec725b5"}, + {file = "dulwich-0.20.45-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:bb75268cec2f3ae6f6b7addbc0db50db2e9e42b2ad8364e74b9f5b17ab0053b5"}, + {file = "dulwich-0.20.45-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b3f64870f2f206dda3308cb73563f5f59fdc084179271651a0488d12ab4185b9"}, + {file = "dulwich-0.20.45-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:49852f12c1e1d50039f927e9fdee1bd00a9b428c31b078ba5ba9fc1cf88e9d3e"}, + {file = "dulwich-0.20.45-cp39-cp39-win_amd64.whl", hash = "sha256:3136bcaf7508522a2aa63f856743f06129261bc5a03331aa6a0654fa6d04a4ae"}, + {file = "dulwich-0.20.45.tar.gz", hash = "sha256:70710dd9ca2a442190c7e506892db074c318ac762e221f7529b8ce34802041b7"}, +] +eko = [ + {file = "eko-0.9.4-py3-none-any.whl", hash = "sha256:5bdfa3bf718f3670706ce0644716ca51699804d3dcca5b2dc6264f8b9bcdb7e8"}, + {file = "eko-0.9.4.tar.gz", hash = "sha256:c2325284a391cdd9119eb991a243df50a6e5de3f8bee7faae19d27c83278507a"}, +] +fancycompleter = [ + {file = "fancycompleter-0.9.1-py3-none-any.whl", hash = "sha256:dd076bca7d9d524cc7f25ec8f35ef95388ffef9ef46def4d3d25e9b044ad7080"}, + {file = "fancycompleter-0.9.1.tar.gz", hash = "sha256:09e0feb8ae242abdfd7ef2ba55069a46f011814a80fe5476be48f51b00247272"}, +] +fastbencode = [ + {file = "fastbencode-0.0.9.tar.gz", hash = "sha256:a508632c645f2e3ffbb4984cb544035c8946d6fec8cfe0aec5e556340773ce9c"}, +] +idna = [ + {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, + {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, +] +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"}, +] +ipython = [ + {file = "ipython-7.34.0-py3-none-any.whl", hash = "sha256:c175d2440a1caff76116eb719d40538fbb316e214eda85c5515c303aacbfb23e"}, + {file = "ipython-7.34.0.tar.gz", hash = "sha256:af3bdb46aa292bce5615b1b2ebc76c2080c5f77f54bda2ec72461317273e7cd6"}, +] +isort = [ + {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, + {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, +] +jedi = [ + {file = "jedi-0.18.1-py2.py3-none-any.whl", hash = "sha256:637c9635fcf47945ceb91cd7f320234a7be540ded6f3e99a50cb6febdfd1ba8d"}, + {file = "jedi-0.18.1.tar.gz", hash = "sha256:74137626a64a99c8eb6ae5832d99b3bdd7d29a3850fe2aa80a4126b2a7d949ab"}, +] +jinja2 = [ + {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, + {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, +] +latexcodec = [ + {file = "latexcodec-2.0.1-py2.py3-none-any.whl", hash = "sha256:c277a193638dc7683c4c30f6684e3db728a06efb0dc9cf346db8bd0aa6c5d271"}, + {file = "latexcodec-2.0.1.tar.gz", hash = "sha256:2aa2551c373261cefe2ad3a8953a6d6533e68238d180eb4bb91d7964adb3fe9a"}, +] +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"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, + {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"}, +] +leprohq = [ + {file = "LeProHQ-0.2.3-py3-none-any.whl", hash = "sha256:5dc27db91a554187715996cf9844442549802d505ed189dd501baefbf8735c58"}, +] +lhapdf-management = [ + {file = "lhapdf_management-0.2-py3-none-any.whl", hash = "sha256:7529f1ca5029ab93fb3beeba95a3a6db46f642632c69cdfc5d8bdeb75da82b83"}, + {file = "lhapdf_management-0.2.tar.gz", hash = "sha256:d9999cdf1eda9f90fe0d56d4b7ec1538975d0536594869d088523e66f7c86254"}, +] +llvmlite = [ + {file = "llvmlite-0.38.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a7dd2bd1d6406e7789273e3f8a304ed5d9adcfaa5768052fca7dc233a857be98"}, + {file = "llvmlite-0.38.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7a5e0ed215a576f0f872f47a70b8cb49864e0aefc8586aff5ce83e3bff47bc23"}, + {file = "llvmlite-0.38.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:633c9026eb43b9903cc4ffbc1c7d5293b2e3ad95d06fa9eab0f6ce6ff6ea15b3"}, + {file = "llvmlite-0.38.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b98da8436dbc29013ea301f1fdb0d596ab53bf0ab65c976d96d00bb6faa0b479"}, + {file = "llvmlite-0.38.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0adce1793d66d009c554809f27baeb6258bf13f6fbaa12eff7443500caec25"}, + {file = "llvmlite-0.38.1-cp310-cp310-win32.whl", hash = "sha256:8c64c90a8b0b7b7e1ed1912ba82c1a3f43cf25affbe06aa3c56c84050edee8ac"}, + {file = "llvmlite-0.38.1-cp310-cp310-win_amd64.whl", hash = "sha256:ab070266f0f51304789a6c20d4be91a9e69683ad9bd4861eb89980e8eb613b3a"}, + {file = "llvmlite-0.38.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ed7528b8b85de930b76407e44b080e4f376b7a007c2879749599ff8e2fe32753"}, + {file = "llvmlite-0.38.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7db018da2863034ad9c73c946625637f3a89635bc70576068bab4bd085eea90d"}, + {file = "llvmlite-0.38.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c1e5805c92e049b4956ed01204c6647de6160ab9aefb0d67ea83ca02a1d889a"}, + {file = "llvmlite-0.38.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5559e46c79b4017c3c25edc3b9512d11adc3689b9046120c685b0905c08d48a5"}, + {file = "llvmlite-0.38.1-cp37-cp37m-win32.whl", hash = "sha256:ef9aa574eff2e15f8c47b255da0db5dab326dc7f76384c307ae35490e2d2489a"}, + {file = "llvmlite-0.38.1-cp37-cp37m-win_amd64.whl", hash = "sha256:84d5a0163c172db2b2ae561d2fc0866fbd9f716cf13f92c0d41ca4338e682672"}, + {file = "llvmlite-0.38.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a263252a68d85450110ec1f2b406c0414e49b04a4d216d31c0515ea1d59c3882"}, + {file = "llvmlite-0.38.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:de8bd61480173930f2a029673e7cd0738fbbb5171dfe490340839ad7301d4cf0"}, + {file = "llvmlite-0.38.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fbfbe546394c39db39a6898a51972aa131c8d6b0628517728b350552f58bdc19"}, + {file = "llvmlite-0.38.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c4f26c6c370e134a909ac555a671fa1376e74c69af0208f25c0979472577a9d"}, + {file = "llvmlite-0.38.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f95f455697c44d7c04ef95fdfce04629f48df08a832d0a0d9eb2363186dbb969"}, + {file = "llvmlite-0.38.1-cp38-cp38-win32.whl", hash = "sha256:41e638a71c85a9a4a33f279c4cd812bc2f84122505b1f6ab8984ec7debb8548b"}, + {file = "llvmlite-0.38.1-cp38-cp38-win_amd64.whl", hash = "sha256:5c07d63df4578f31b39b764d3b4291f70157af7f42e171a8884ae7aaf989d1f7"}, + {file = "llvmlite-0.38.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4e11bd9929dcbd55d5eb5cd7b08bf71b0097ea48cc192b69d102a90dd6e9816f"}, + {file = "llvmlite-0.38.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:edfa2c761cfa56cf76e783290d82e117f829bb691d8d90aa375505204888abac"}, + {file = "llvmlite-0.38.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e609f7312a439b53b6f622d99180c3ff6a3e1e4ceca4d18aca1c5b46f4e3664"}, + {file = "llvmlite-0.38.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9f53c3448410cc84d0e1af84dbc0d60ad32779853d40bcc8b1ee3c67ebbe94b1"}, + {file = "llvmlite-0.38.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c8fac4edbadefa4dddf5dc6cca76bc2ae81df211dcd16a6638d60cc41249e56"}, + {file = "llvmlite-0.38.1-cp39-cp39-win32.whl", hash = "sha256:3d76c0fa42390bef56979ed213fbf0150c3fef36f5ea68d3d780d5d725da8c01"}, + {file = "llvmlite-0.38.1-cp39-cp39-win_amd64.whl", hash = "sha256:66462d768c30d5f648ca3361d657b434efa8b09f6cf04d6b6eae66e62e993644"}, + {file = "llvmlite-0.38.1.tar.gz", hash = "sha256:0622a86301fcf81cc50d7ed5b4bebe992c030580d413a8443b328ed4f4d82561"}, +] +lz4 = [ + {file = "lz4-3.1.10-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:3fcd913191a34c59ff07a5b8594d3b61213ae0044bba618f74202722a2efbe2f"}, + {file = "lz4-3.1.10-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:6e72e3bc14230db9baf56b05ac15ddc38a9246c414a95ca725af8d5d2226944a"}, + {file = "lz4-3.1.10-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:a8991ac13743b09cf3d3d69c3ee6991c4e636886dbcdac584a672e38ba14d36f"}, + {file = "lz4-3.1.10-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:6d16fd11e6998d4b48771e345eefb5a800a41fdf7df29ffc6b4cd36fea213172"}, + {file = "lz4-3.1.10-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:dcda8a5fb286251422b271e785b340d551e42f2ffd10953d6aa77a12263d0868"}, + {file = "lz4-3.1.10-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f38880f66f8fbb8fa94cf08a2120f7bee7bf9ad35cf85259b1c3598ba17e5f9e"}, + {file = "lz4-3.1.10-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:be542ae2466597f31fe37ff5a8a29b124c9b4dc5fef7effa80b194aa887c01ef"}, + {file = "lz4-3.1.10-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:1587538466ecb8c18a58425a9513321e218c9518198d3e3b1897876686edd5c7"}, + {file = "lz4-3.1.10-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:c716eb1cd08c966952c7d8af481b4407db29fd63f151bc23b3783e8b87ddce20"}, + {file = "lz4-3.1.10-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:d36d0cc0942ef2b30ed69a64ded5e10e64061b2f8e8011c99ffea8a3f8d429c5"}, + {file = "lz4-3.1.10-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:48c67beaa312d7f3db66c78cd3d8b4332512489af8ebd9783d4ec735e3337923"}, + {file = "lz4-3.1.10-cp38-cp38-manylinux1_i686.whl", hash = "sha256:dcdaf01dc092c192576626a84c9d2fdc79c0a9b03735af9a7c153fda49ac4cfc"}, + {file = "lz4-3.1.10-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:b089376694da9dfeb7ce3c881b3271f8983c70eea4be5a1f692d97c5880ddd04"}, + {file = "lz4-3.1.10-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:e6dc7f003c010f8198d2ebca7d11b141c1b96f7e350c0fdb5f9b52a1966f79ff"}, + {file = "lz4-3.1.10-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:060a69c1b8111c1428a4aabc031e79b861442bf92eeb9a48a97cab9ba4a54194"}, + {file = "lz4-3.1.10-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a987774fa38fa05a0440344ce839c512d1c51908da5d8cabbb0a2c435922477f"}, + {file = "lz4-3.1.10-cp39-cp39-manylinux1_i686.whl", hash = "sha256:72945fab7f3ab486ba92a83c43c65736be9775f1b6d5f25b5f89022c476e2705"}, + {file = "lz4-3.1.10-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:e87619075e2302f4f2ee4dafebd5e3ff47e09420df34bcfe8fc0839af4f5bac5"}, + {file = "lz4-3.1.10-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:bf1d6dee89ef0fe0835529b9248ba503eaa918cfd1aafa02f2ab61587c387068"}, + {file = "lz4-3.1.10-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:59afeb136957ed7a2058e4ef61cb2d0f5894ca866a8bfca5ff43d49a5cbe4aa2"}, + {file = "lz4-3.1.10.tar.gz", hash = "sha256:439e575ecfa9ecffcbd63cfed99baefbe422ab9645b1e82278024d8a21d9720b"}, +] +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"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-win32.whl", hash = "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-win32.whl", hash = "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-win32.whl", hash = "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-win32.whl", hash = "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"}, + {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"}, +] +matplotlib-inline = [ + {file = "matplotlib-inline-0.1.3.tar.gz", hash = "sha256:a04bfba22e0d1395479f866853ec1ee28eea1485c1d69a6faf00dc3e24ff34ee"}, + {file = "matplotlib_inline-0.1.3-py3-none-any.whl", hash = "sha256:aed605ba3b72462d64d475a21a9296f400a19c4f74a31b59103d2a99ffd5aa5c"}, +] +mccabe = [ + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, +] +more-itertools = [ + {file = "more-itertools-8.13.0.tar.gz", hash = "sha256:a42901a0a5b169d925f6f217cd5a190e32ef54360905b9c39ee7db5313bfec0f"}, + {file = "more_itertools-8.13.0-py3-none-any.whl", hash = "sha256:c5122bffc5f104d37c1626b8615b511f3427aa5389b94d61e5ef8236bfbc3ddb"}, +] +numba = [ + {file = "numba-0.55.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:dd05f7c0ce64b6977596aa4e5a44747c6ef414d7989da1c7672337c54381a5ef"}, + {file = "numba-0.55.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e36232eccd172c583b1f021c5c48744c087ae6fc9dc5c5f0dd2cb2286e517bf8"}, + {file = "numba-0.55.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:25410557d0deb1d97397b71e142a36772133986a7dd4fe2935786e2dd149245f"}, + {file = "numba-0.55.2-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:676c081162cc9403706071c1d1d42e479c0741551ab28096ba13859a2e3e9b80"}, + {file = "numba-0.55.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2665ef28e900b3a55bf370daa81c12ebc64cd434116accd60c38a95a159a3182"}, + {file = "numba-0.55.2-cp310-cp310-win32.whl", hash = "sha256:d7ac9ea5feef9536ab8bfbbb3ded1a0617ea8794d7547800d535b7857800f996"}, + {file = "numba-0.55.2-cp310-cp310-win_amd64.whl", hash = "sha256:29b89a68af162acf87adeb8fbf01f6bb1effae4711b28146f95108d82e905624"}, + {file = "numba-0.55.2-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:6e0f9b5d1c8ea1bdef39b0ad921a9bbf0cc4a88e76d722d756c68f1653787c35"}, + {file = "numba-0.55.2-cp37-cp37m-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:135fb7694928f9f57b4ff5b1be58f20f4771fedd1680636a9affdead96051959"}, + {file = "numba-0.55.2-cp37-cp37m-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:de1f93bd7e2d431451aec20a52ac651a020e98a4ba46797fad860bba338a7e64"}, + {file = "numba-0.55.2-cp37-cp37m-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3eaf53e73e700370163e58257257299ac0d46fea4f244bf5476e4635bc31d808"}, + {file = "numba-0.55.2-cp37-cp37m-win32.whl", hash = "sha256:da4485e0f0b9562f39c78887149b33d13d787aa696553c9257b95575122905ed"}, + {file = "numba-0.55.2-cp37-cp37m-win_amd64.whl", hash = "sha256:5559c6684bf6cce7a22c656d8fef3e7c38ff5fec5153abef5955f6f7cae9f102"}, + {file = "numba-0.55.2-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:a85779adc5234f7857615d1bd2c7b514314521f9f0163c33017707ed9816e6e6"}, + {file = "numba-0.55.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:16a52a0641c342b09b39f6762dcbe3846e44aa9baaaf4703b2ca42a3aee7346f"}, + {file = "numba-0.55.2-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:46715180f87d5a1f3e4077d207ade66c96fc01159f5b7d49cee2d6ffb9e6539f"}, + {file = "numba-0.55.2-cp38-cp38-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:d1c3cef3289fefb5673ceae32024ab5a8a08d4f4380bcb8348d01f1ba570ccff"}, + {file = "numba-0.55.2-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:68bb33eaef1d6155fc1ae4fa6c915b8a42e5052c89a58742254eaad072eab118"}, + {file = "numba-0.55.2-cp38-cp38-win32.whl", hash = "sha256:dfddd633141608a09cbce275fb9fe7aa514918625ace20b0e587898a2d93c030"}, + {file = "numba-0.55.2-cp38-cp38-win_amd64.whl", hash = "sha256:a669212aa66ffee4ad778016ac3819add33f9bcb96b4c384d3099531dd175085"}, + {file = "numba-0.55.2-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:dcde1a1a3a430fb5f83c7e095b0b6ac7adb5595f50a3ee05babb2964f31613c4"}, + {file = "numba-0.55.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:69b2e823efa40d32b259f5c094476dde2226b92032f17015d8cd7c10472654ce"}, + {file = "numba-0.55.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:20de0139d2267c8f0e2470d4f88540446cd1bf40de0f29f31b7ab9bf25d49b45"}, + {file = "numba-0.55.2-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:09ff4d690abb05ffbb8a29a96d1cf35b46887a26796d3670de104beeec73d639"}, + {file = "numba-0.55.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1105449247f338e49d63eb04a4aaa5c440bb5435df00f718c8e6e7afad841bb0"}, + {file = "numba-0.55.2-cp39-cp39-win32.whl", hash = "sha256:32649584144c35ced239937ab2c416ab22bbc1490ef8d90609c30fff9f6aa1b8"}, + {file = "numba-0.55.2-cp39-cp39-win_amd64.whl", hash = "sha256:8d5760a1e6a48d98d6b9cf774e4d2a64813d981cca60d7b7356af61195a6ca17"}, + {file = "numba-0.55.2.tar.gz", hash = "sha256:e428d9e11d9ba592849ccc9f7a009003eb7d30612007e365afe743ce7118c6f4"}, +] +numpy = [ + {file = "numpy-1.22.4-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:ba9ead61dfb5d971d77b6c131a9dbee62294a932bf6a356e48c75ae684e635b3"}, + {file = "numpy-1.22.4-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:1ce7ab2053e36c0a71e7a13a7475bd3b1f54750b4b433adc96313e127b870887"}, + {file = "numpy-1.22.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7228ad13744f63575b3a972d7ee4fd61815b2879998e70930d4ccf9ec721dce0"}, + {file = "numpy-1.22.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43a8ca7391b626b4c4fe20aefe79fec683279e31e7c79716863b4b25021e0e74"}, + {file = "numpy-1.22.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a911e317e8c826ea632205e63ed8507e0dc877dcdc49744584dfc363df9ca08c"}, + {file = "numpy-1.22.4-cp310-cp310-win32.whl", hash = "sha256:9ce7df0abeabe7fbd8ccbf343dc0db72f68549856b863ae3dd580255d009648e"}, + {file = "numpy-1.22.4-cp310-cp310-win_amd64.whl", hash = "sha256:3e1ffa4748168e1cc8d3cde93f006fe92b5421396221a02f2274aab6ac83b077"}, + {file = "numpy-1.22.4-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:59d55e634968b8f77d3fd674a3cf0b96e85147cd6556ec64ade018f27e9479e1"}, + {file = "numpy-1.22.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c1d937820db6e43bec43e8d016b9b3165dcb42892ea9f106c70fb13d430ffe72"}, + {file = "numpy-1.22.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4c5d5eb2ec8da0b4f50c9a843393971f31f1d60be87e0fb0917a49133d257d6"}, + {file = "numpy-1.22.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64f56fc53a2d18b1924abd15745e30d82a5782b2cab3429aceecc6875bd5add0"}, + {file = "numpy-1.22.4-cp38-cp38-win32.whl", hash = "sha256:fb7a980c81dd932381f8228a426df8aeb70d59bbcda2af075b627bbc50207cba"}, + {file = "numpy-1.22.4-cp38-cp38-win_amd64.whl", hash = "sha256:e96d7f3096a36c8754207ab89d4b3282ba7b49ea140e4973591852c77d09eb76"}, + {file = "numpy-1.22.4-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:4c6036521f11a731ce0648f10c18ae66d7143865f19f7299943c985cdc95afb5"}, + {file = "numpy-1.22.4-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:b89bf9b94b3d624e7bb480344e91f68c1c6c75f026ed6755955117de00917a7c"}, + {file = "numpy-1.22.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2d487e06ecbf1dc2f18e7efce82ded4f705f4bd0cd02677ffccfb39e5c284c7e"}, + {file = "numpy-1.22.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3eb268dbd5cfaffd9448113539e44e2dd1c5ca9ce25576f7c04a5453edc26fa"}, + {file = "numpy-1.22.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37431a77ceb9307c28382c9773da9f306435135fae6b80b62a11c53cfedd8802"}, + {file = "numpy-1.22.4-cp39-cp39-win32.whl", hash = "sha256:cc7f00008eb7d3f2489fca6f334ec19ca63e31371be28fd5dad955b16ec285bd"}, + {file = "numpy-1.22.4-cp39-cp39-win_amd64.whl", hash = "sha256:f0725df166cf4785c0bc4cbfb320203182b1ecd30fee6e541c8752a92df6aa32"}, + {file = "numpy-1.22.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0791fbd1e43bf74b3502133207e378901272f3c156c4df4954cad833b1380207"}, + {file = "numpy-1.22.4.zip", hash = "sha256:425b390e4619f58d8526b3dcf656dde069133ae5c240229821f01b5f44ea07af"}, +] +packaging = [ + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, +] +pandas = [ + {file = "pandas-1.4.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d51674ed8e2551ef7773820ef5dab9322be0828629f2cbf8d1fc31a0c4fed640"}, + {file = "pandas-1.4.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:16ad23db55efcc93fa878f7837267973b61ea85d244fc5ff0ccbcfa5638706c5"}, + {file = "pandas-1.4.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:958a0588149190c22cdebbc0797e01972950c927a11a900fe6c2296f207b1d6f"}, + {file = "pandas-1.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e48fbb64165cda451c06a0f9e4c7a16b534fcabd32546d531b3c240ce2844112"}, + {file = "pandas-1.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f803320c9da732cc79210d7e8cc5c8019aad512589c910c66529eb1b1818230"}, + {file = "pandas-1.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:2893e923472a5e090c2d5e8db83e8f907364ec048572084c7d10ef93546be6d1"}, + {file = "pandas-1.4.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:24ea75f47bbd5574675dae21d51779a4948715416413b30614c1e8b480909f81"}, + {file = "pandas-1.4.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d5ebc990bd34f4ac3c73a2724c2dcc9ee7bf1ce6cf08e87bb25c6ad33507e318"}, + {file = "pandas-1.4.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d6c0106415ff1a10c326c49bc5dd9ea8b9897a6ca0c8688eb9c30ddec49535ef"}, + {file = "pandas-1.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78b00429161ccb0da252229bcda8010b445c4bf924e721265bec5a6e96a92e92"}, + {file = "pandas-1.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dfbf16b1ea4f4d0ee11084d9c026340514d1d30270eaa82a9f1297b6c8ecbf0"}, + {file = "pandas-1.4.3-cp38-cp38-win32.whl", hash = "sha256:48350592665ea3cbcd07efc8c12ff12d89be09cd47231c7925e3b8afada9d50d"}, + {file = "pandas-1.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:605d572126eb4ab2eadf5c59d5d69f0608df2bf7bcad5c5880a47a20a0699e3e"}, + {file = "pandas-1.4.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a3924692160e3d847e18702bb048dc38e0e13411d2b503fecb1adf0fcf950ba4"}, + {file = "pandas-1.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:07238a58d7cbc8a004855ade7b75bbd22c0db4b0ffccc721556bab8a095515f6"}, + {file = "pandas-1.4.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:755679c49460bd0d2f837ab99f0a26948e68fa0718b7e42afbabd074d945bf84"}, + {file = "pandas-1.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41fc406e374590a3d492325b889a2686b31e7a7780bec83db2512988550dadbf"}, + {file = "pandas-1.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d9382f72a4f0e93909feece6fef5500e838ce1c355a581b3d8f259839f2ea76"}, + {file = "pandas-1.4.3-cp39-cp39-win32.whl", hash = "sha256:0daf876dba6c622154b2e6741f29e87161f844e64f84801554f879d27ba63c0d"}, + {file = "pandas-1.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:721a3dd2f06ef942f83a819c0f3f6a648b2830b191a72bbe9451bcd49c3bd42e"}, + {file = "pandas-1.4.3.tar.gz", hash = "sha256:2ff7788468e75917574f080cd4681b27e1a7bf36461fe968b49a87b5a54d007c"}, +] +parso = [ + {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, + {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, +] +patiencediff = [ + {file = "patiencediff-0.2.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:e15b894d1941ed773b6c5f7479985fc17ec81bab33f82e3b736ab1920c1804d6"}, + {file = "patiencediff-0.2.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:f196516e980f17302317f2f6f6a4c2897c6107c34c5268d9d37b820e98fd0deb"}, + {file = "patiencediff-0.2.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:830be20a2e74972843362d7bc4b7a7929ff63205eade553d83256e51843b64d4"}, + {file = "patiencediff-0.2.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:5fcc3f9dc12040ddfb8165317af3425c4d2be49b147def22a72a44d43fff5141"}, + {file = "patiencediff-0.2.2.tar.gz", hash = "sha256:456d9fc47fe43f9aea863059ea2c6df5b997285590e4b7f9ee8fbb6c3419b5a7"}, +] +pdbpp = [ + {file = "pdbpp-0.10.3-py2.py3-none-any.whl", hash = "sha256:79580568e33eb3d6f6b462b1187f53e10cd8e4538f7d31495c9181e2cf9665d1"}, + {file = "pdbpp-0.10.3.tar.gz", hash = "sha256:d9e43f4fda388eeb365f2887f4e7b66ac09dce9b6236b76f63616530e2f669f5"}, +] +pexpect = [ + {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"}, + {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"}, +] +pickleshare = [ + {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, + {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, +] +pineappl = [ + {file = "pineappl-0.5.4-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:2bfb0ed75b07f01fd1fc7d962889c71b002c1fe51677c0ff117c3191b96d7875"}, + {file = "pineappl-0.5.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42bbdc878986a92f69a7770fa75f3e8da0b93840673555cf26a241dafbdb0c5c"}, + {file = "pineappl-0.5.4-cp310-none-win_amd64.whl", hash = "sha256:104acbd4c8dac385891c063a5922a0808e72e2774b01fbce5bdda99beceb0f2d"}, + {file = "pineappl-0.5.4-cp37-cp37m-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:62c06dfbbb01e25833067f7883f4783780a984a8631aa07e823903cdc4e939d6"}, + {file = "pineappl-0.5.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fb96be27e305c8f8428ed32d8fb71c3db1d13f3821f59fa241e36cbd4d1b2e0"}, + {file = "pineappl-0.5.4-cp37-none-win_amd64.whl", hash = "sha256:049b532bab81295d65340ab65da8188c37553887a7d2f6b95e9e34165dbe62b7"}, + {file = "pineappl-0.5.4-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:925027e5d6fa61fff1d624ac5182c3313b65a1d67c91bc3e51ff40a6c3028a8a"}, + {file = "pineappl-0.5.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9418b1c8c8f852670ce801c9345d0d7e6c4846582b302017813f0064cb0a5a5c"}, + {file = "pineappl-0.5.4-cp38-none-win_amd64.whl", hash = "sha256:40ddb8cbb8fb5371194866eaf5d48a93ebd1f0aa8fdc6dd163f37cf1cf83f34e"}, + {file = "pineappl-0.5.4-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:f612f606819d5bea4ec441a3baf0944efd6718e62e7eed98ef67b22ec38da862"}, + {file = "pineappl-0.5.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0bfe1cb19bde26922b876b7db431b9d409234db8d2e7bd7a40820e0089009a5b"}, + {file = "pineappl-0.5.4-cp39-none-win_amd64.whl", hash = "sha256:0f0d4fb2a9f398e50637940d788473ca829ff950a040a9c18a0b5d1e6ee2e378"}, + {file = "pineappl-0.5.4-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf52401750afe6c86e12baed3184f83f149da7b0142341f2d31ff6f8182b1f00"}, + {file = "pineappl-0.5.4.tar.gz", hash = "sha256:a5edf9e0fe6e49ac6cecc85ba5652624c50983e9200a41848cf597836dcbbeac"}, +] +pkgconfig = [ + {file = "pkgconfig-1.5.5-py3-none-any.whl", hash = "sha256:d20023bbeb42ee6d428a0fac6e0904631f545985a10cdd71a20aa58bc47a4209"}, + {file = "pkgconfig-1.5.5.tar.gz", hash = "sha256:deb4163ef11f75b520d822d9505c1f462761b4309b1bb713d08689759ea8b899"}, +] +platformdirs = [ + {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, + {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, +] +pluggy = [ + {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, + {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, +] +prompt-toolkit = [ + {file = "prompt_toolkit-3.0.30-py3-none-any.whl", hash = "sha256:d8916d3f62a7b67ab353a952ce4ced6a1d2587dfe9ef8ebc30dd7c386751f289"}, + {file = "prompt_toolkit-3.0.30.tar.gz", hash = "sha256:859b283c50bde45f5f97829f77a4674d1c1fcd88539364f1b28a37805cfd89c0"}, +] +ptyprocess = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] +py = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] +pybtex = [ + {file = "pybtex-0.24.0-py2.py3-none-any.whl", hash = "sha256:e1e0c8c69998452fea90e9179aa2a98ab103f3eed894405b7264e517cc2fcc0f"}, + {file = "pybtex-0.24.0.tar.gz", hash = "sha256:818eae35b61733e5c007c3fcd2cfb75ed1bc8b4173c1f70b56cc4c0802d34755"}, +] +pybtex-docutils = [ + {file = "pybtex-docutils-1.0.2.tar.gz", hash = "sha256:43aa353b6d498fd5ac30f0073a98e332d061d34fe619d3d50d1761f8fd4aa016"}, + {file = "pybtex_docutils-1.0.2-py3-none-any.whl", hash = "sha256:6f9e3c25a37bcaac8c4f69513272706ec6253bb708a93d8b4b173f43915ba239"}, +] +pycparser = [ + {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, + {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, +] +pygit2 = [ + {file = "pygit2-1.9.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6e7f56bf5338ec79e7521204ddf4f6848cd2ccd1de4ea8b2c0af163ed4b08ade"}, + {file = "pygit2-1.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:487ae81134b44b1e0173b3e9a478f93f18c1c22d53241d1fc8047e400094582b"}, + {file = "pygit2-1.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f84826586d5e7f32e560d0d55fd35484cebd49fefccfe8a3727bd4b7c4788b92"}, + {file = "pygit2-1.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81e1d25b2a0be1a8cd7d4131fe5af8efddc7015f522638e2c53fe820800e4de6"}, + {file = "pygit2-1.9.2-cp310-cp310-win32.whl", hash = "sha256:d52113184c38455bbc9576003054311d8c283a547a12790baf0210ccfd0cc90f"}, + {file = "pygit2-1.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:5f038afaeaf5cd1fa35ae02073f42558eb7daf6cbc57cdc41e5ee9dfdad6a653"}, + {file = "pygit2-1.9.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:14b51a909debdfdaa7757a581a1c6f6d1a5b150870da68881d3bd9d5b94842c7"}, + {file = "pygit2-1.9.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:308ce00e8a1f8d8dc3858b3e21f0ea701cdde675966aea68fcccf559cb5e9577"}, + {file = "pygit2-1.9.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6724885e4a31a843fd6d7d6cd90baef5c61a774d222fabbe39505c0b3dd2c55b"}, + {file = "pygit2-1.9.2-cp37-cp37m-win32.whl", hash = "sha256:eb2d916ec03c1dda7ab04506d42ef2c0bac2590827c5d15fec49b67f39f02704"}, + {file = "pygit2-1.9.2-cp37-cp37m-win_amd64.whl", hash = "sha256:ebe0b2371fe4d91adc5014cc94dc85497bec6a5e1e557856bb45f586e31519bd"}, + {file = "pygit2-1.9.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9bfd9d089942482ca0b5f426396b76fb86b25ca3414546388d8cfa8824ab1188"}, + {file = "pygit2-1.9.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:871682c3a910d71cc8bf6f8be4474085bf3eb27864a090f2132f6fa50fe2eb30"}, + {file = "pygit2-1.9.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe3eec281222c5778eed6a4185d0442a7d7aaac552039359d5ec4c5b8737baa3"}, + {file = "pygit2-1.9.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cef5b08544b895a75ed7908ca6c0d730b890ffeba7f2b46e5c8aec458786802"}, + {file = "pygit2-1.9.2-cp38-cp38-win32.whl", hash = "sha256:0a0aaadca823c2e6d1f6319190f53c55c8323a810a1d1117e378e907c98cf613"}, + {file = "pygit2-1.9.2-cp38-cp38-win_amd64.whl", hash = "sha256:55593d734a30e824f9136e0afcd15b287125ef41dac7833f564da454ba0969d0"}, + {file = "pygit2-1.9.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:da12d67bdb43736e3bd6464623e8aff06796527ea8525f65b76a776f26c7fa24"}, + {file = "pygit2-1.9.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8a5bf52fb75dc2d2da814996b8006559d0b57b573775f757a1997f89eabfdb0a"}, + {file = "pygit2-1.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a1ebd104105cc56ae2ba100090228a4db8cbeb7a480e8657a803d674331b82d"}, + {file = "pygit2-1.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0c18ed4ce7f06e6885ab01f1b1f80468e09d1bd72265e14575be0b44a581ae7"}, + {file = "pygit2-1.9.2-cp39-cp39-win32.whl", hash = "sha256:d2cb8571cd02acf739b26d2c2bb4828f7cfb4e23b564d6c4442bffe8714ec8e5"}, + {file = "pygit2-1.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:75a95ddab5d256c35377a2892bd5f5f3121552c3ae9af9b06eaa7ac426220d22"}, + {file = "pygit2-1.9.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bf160b3653168e5d11e6de9589018db55ef51a0859bf4a3719aa8cc0998c584e"}, + {file = "pygit2-1.9.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:084bc622205b6f495a0c7e6d8dde9a2e42967bd6b8e16e28d21725dbcc837e1a"}, + {file = "pygit2-1.9.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3068375e81a473d01d23d86abc5e978bac7bd277a91538416d31e06d0e97402f"}, + {file = "pygit2-1.9.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3f737e8eb42a818de2e604bfca125e79e3f386e8b77cceb1fe881f7603c378c2"}, + {file = "pygit2-1.9.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:490d6ba5ae4a539d147644e9ce20a2c5dd55dd3ea177cec78971b7422c0540d4"}, + {file = "pygit2-1.9.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6198c1010af273d91c182997693d61b2d00edeecdef9c39beef711568bec984"}, + {file = "pygit2-1.9.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8cdf963725b1f6bfad12a9238a421587af682164d90b3d5a81224d4a112ed4f6"}, + {file = "pygit2-1.9.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4625e8957b9e7e72a300d42e27e5392ac449517397fb22045b8c3e468f4b6f06"}, + {file = "pygit2-1.9.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b6d7b3613ef8358f24d32e4a1ef976218e351e84953c474d1fa1d29b28484db"}, + {file = "pygit2-1.9.2.tar.gz", hash = "sha256:20894433df1146481aacae37e2b0f3bbbfdea026db2f55061170bd9823e40b19"}, +] +pygments = [ + {file = "Pygments-2.12.0-py3-none-any.whl", hash = "sha256:dc9c10fb40944260f6ed4c688ece0cd2048414940f1cea51b8b226318411c519"}, + {file = "Pygments-2.12.0.tar.gz", hash = "sha256:5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb"}, +] +pylint = [ + {file = "pylint-2.14.5-py3-none-any.whl", hash = "sha256:fabe30000de7d07636d2e82c9a518ad5ad7908590fe135ace169b44839c15f90"}, + {file = "pylint-2.14.5.tar.gz", hash = "sha256:487ce2192eee48211269a0e976421f334cf94de1806ca9d0a99449adcdf0285e"}, +] +pyparsing = [ + {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, + {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, +] +pyreadline = [ + {file = "pyreadline-2.1.win-amd64.exe", hash = "sha256:9ce5fa65b8992dfa373bddc5b6e0864ead8f291c94fbfec05fbd5c836162e67b"}, + {file = "pyreadline-2.1.win32.exe", hash = "sha256:65540c21bfe14405a3a77e4c085ecfce88724743a4ead47c66b84defcf82c32e"}, + {file = "pyreadline-2.1.zip", hash = "sha256:4530592fc2e85b25b1a9f79664433da09237c1a270e4d78ea5aa3a2c7229e2d1"}, +] +pyrepl = [ + {file = "pyrepl-0.9.0.tar.gz", hash = "sha256:292570f34b5502e871bbb966d639474f2b57fbfcd3373c2d6a2f3d56e681a775"}, +] +pytest = [ + {file = "pytest-5.4.3-py3-none-any.whl", hash = "sha256:5c0db86b698e8f170ba4582a492248919255fcd4c79b1ee64ace34301fb589a1"}, + {file = "pytest-5.4.3.tar.gz", hash = "sha256:7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8"}, +] +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 = [ + {file = "pytz-2022.1-py2.py3-none-any.whl", hash = "sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c"}, + {file = "pytz-2022.1.tar.gz", hash = "sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7"}, +] +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"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, + {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-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"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, + {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, + {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, + {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, + {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, + {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, + {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, + {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, + {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, + {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, + {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, + {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, +] +requests = [ + {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, + {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, +] +rich = [ + {file = "rich-10.16.2-py3-none-any.whl", hash = "sha256:c59d73bd804c90f747c8d7b1d023b88f2a9ac2454224a4aeaf959b21eeb42d03"}, + {file = "rich-10.16.2.tar.gz", hash = "sha256:720974689960e06c2efdb54327f8bf0cdbdf4eae4ad73b6c94213cad405c371b"}, +] +scipy = [ + {file = "scipy-1.8.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:65b77f20202599c51eb2771d11a6b899b97989159b7975e9b5259594f1d35ef4"}, + {file = "scipy-1.8.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:e013aed00ed776d790be4cb32826adb72799c61e318676172495383ba4570aa4"}, + {file = "scipy-1.8.1-cp310-cp310-macosx_12_0_universal2.macosx_10_9_x86_64.whl", hash = "sha256:02b567e722d62bddd4ac253dafb01ce7ed8742cf8031aea030a41414b86c1125"}, + {file = "scipy-1.8.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1da52b45ce1a24a4a22db6c157c38b39885a990a566748fc904ec9f03ed8c6ba"}, + {file = "scipy-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0aa8220b89b2e3748a2836fbfa116194378910f1a6e78e4675a095bcd2c762d"}, + {file = "scipy-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:4e53a55f6a4f22de01ffe1d2f016e30adedb67a699a310cdcac312806807ca81"}, + {file = "scipy-1.8.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:28d2cab0c6ac5aa131cc5071a3a1d8e1366dad82288d9ec2ca44df78fb50e649"}, + {file = "scipy-1.8.1-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:6311e3ae9cc75f77c33076cb2794fb0606f14c8f1b1c9ff8ce6005ba2c283621"}, + {file = "scipy-1.8.1-cp38-cp38-macosx_12_0_universal2.macosx_10_9_x86_64.whl", hash = "sha256:3b69b90c9419884efeffaac2c38376d6ef566e6e730a231e15722b0ab58f0328"}, + {file = "scipy-1.8.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6cc6b33139eb63f30725d5f7fa175763dc2df6a8f38ddf8df971f7c345b652dc"}, + {file = "scipy-1.8.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c4e3ae8a716c8b3151e16c05edb1daf4cb4d866caa385e861556aff41300c14"}, + {file = "scipy-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23b22fbeef3807966ea42d8163322366dd89da9bebdc075da7034cee3a1441ca"}, + {file = "scipy-1.8.1-cp38-cp38-win32.whl", hash = "sha256:4b93ec6f4c3c4d041b26b5f179a6aab8f5045423117ae7a45ba9710301d7e462"}, + {file = "scipy-1.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:70ebc84134cf0c504ce6a5f12d6db92cb2a8a53a49437a6bb4edca0bc101f11c"}, + {file = "scipy-1.8.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f3e7a8867f307e3359cc0ed2c63b61a1e33a19080f92fe377bc7d49f646f2ec1"}, + {file = "scipy-1.8.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:2ef0fbc8bcf102c1998c1f16f15befe7cffba90895d6e84861cd6c6a33fb54f6"}, + {file = "scipy-1.8.1-cp39-cp39-macosx_12_0_universal2.macosx_10_9_x86_64.whl", hash = "sha256:83606129247e7610b58d0e1e93d2c5133959e9cf93555d3c27e536892f1ba1f2"}, + {file = "scipy-1.8.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:93d07494a8900d55492401917a119948ed330b8c3f1d700e0b904a578f10ead4"}, + {file = "scipy-1.8.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3b3c8924252caaffc54d4a99f1360aeec001e61267595561089f8b5900821bb"}, + {file = "scipy-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70de2f11bf64ca9921fda018864c78af7147025e467ce9f4a11bc877266900a6"}, + {file = "scipy-1.8.1-cp39-cp39-win32.whl", hash = "sha256:1166514aa3bbf04cb5941027c6e294a000bba0cf00f5cdac6c77f2dad479b434"}, + {file = "scipy-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:9dd4012ac599a1e7eb63c114d1eee1bcfc6dc75a29b589ff0ad0bb3d9412034f"}, + {file = "scipy-1.8.1.tar.gz", hash = "sha256:9e3fb1b0e896f14a85aa9a28d5f755daaeeb54c897b746df7a55ccb02b340f33"}, +] +six = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] +snowballstemmer = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] +sphinx = [ + {file = "Sphinx-4.5.0-py3-none-any.whl", hash = "sha256:ebf612653238bcc8f4359627a9b7ce44ede6fdd75d9d30f68255c7383d3a6226"}, + {file = "Sphinx-4.5.0.tar.gz", hash = "sha256:7bf8ca9637a4ee15af412d1a1d9689fec70523a68ca9bb9127c2f3eeb344e2e6"}, +] +sphinx-rtd-theme = [ + {file = "sphinx_rtd_theme-1.0.0-py2.py3-none-any.whl", hash = "sha256:4d35a56f4508cfee4c4fb604373ede6feae2a306731d533f409ef5c3496fdbd8"}, + {file = "sphinx_rtd_theme-1.0.0.tar.gz", hash = "sha256:eec6d497e4c2195fa0e8b2016b337532b8a699a68bcb22a512870e16925c6a5c"}, +] +sphinxcontrib-applehelp = [ + {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, + {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, +] +sphinxcontrib-bibtex = [ + {file = "sphinxcontrib-bibtex-2.4.2.tar.gz", hash = "sha256:65b023ee47f35f1f03ac4d71c824e67c624c7ecac1bb26e83623271a01f9da86"}, + {file = "sphinxcontrib_bibtex-2.4.2-py3-none-any.whl", hash = "sha256:608512afde6b732148cdc9123550bd560bf48e071d1fb7bb1bab4f4437ff04f4"}, +] +sphinxcontrib-devhelp = [ + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, +] +sphinxcontrib-htmlhelp = [ + {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, + {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, +] +sphinxcontrib-jsmath = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] +sphinxcontrib-qthelp = [ + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, +] +sphinxcontrib-serializinghtml = [ + {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, + {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, +] +tomli = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] +tomlkit = [ + {file = "tomlkit-0.11.1-py3-none-any.whl", hash = "sha256:1c5bebdf19d5051e2e1de6cf70adfc5948d47221f097fcff7a3ffc91e953eaf5"}, + {file = "tomlkit-0.11.1.tar.gz", hash = "sha256:61901f81ff4017951119cd0d1ed9b7af31c821d6845c8c477587bbdcd5e5854e"}, +] +tqdm = [ + {file = "tqdm-4.64.0-py2.py3-none-any.whl", hash = "sha256:74a2cdefe14d11442cedf3ba4e21a3b84ff9a2dbdc6cfae2c34addb2a14a5ea6"}, + {file = "tqdm-4.64.0.tar.gz", hash = "sha256:40be55d30e200777a307a7585aee69e4eabb46b4ec6a4b4a5f2d9f11e7d5408d"}, +] +traitlets = [ + {file = "traitlets-5.3.0-py3-none-any.whl", hash = "sha256:65fa18961659635933100db8ca120ef6220555286949774b9cfc106f941d1c7a"}, + {file = "traitlets-5.3.0.tar.gz", hash = "sha256:0bb9f1f9f017aa8ec187d8b1b2a7a6626a2a1d877116baba52a129bfa124f8e2"}, +] +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"}, +] +urllib3 = [ + {file = "urllib3-1.26.10-py2.py3-none-any.whl", hash = "sha256:8298d6d56d39be0e3bc13c1c97d133f9b45d797169a0e11cdd0e0489d786f7ec"}, + {file = "urllib3-1.26.10.tar.gz", hash = "sha256:879ba4d1e89654d9769ce13121e0f94310ea32e8d2f8cf587b77c08bbcdb30d6"}, +] +wcwidth = [ + {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, + {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, +] +wmctrl = [ + {file = "wmctrl-0.4.tar.gz", hash = "sha256:66cbff72b0ca06a22ec3883ac3a4d7c41078bdae4fb7310f52951769b10e14e0"}, +] +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"}, + {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5a9a0d155deafd9448baff28c08e150d9b24ff010e899311ddd63c45c2445e28"}, + {file = "wrapt-1.14.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ddaea91abf8b0d13443f6dac52e89051a5063c7d014710dcb4d4abb2ff811a59"}, + {file = "wrapt-1.14.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:36f582d0c6bc99d5f39cd3ac2a9062e57f3cf606ade29a0a0d6b323462f4dd87"}, + {file = "wrapt-1.14.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:7ef58fb89674095bfc57c4069e95d7a31cfdc0939e2a579882ac7d55aadfd2a1"}, + {file = "wrapt-1.14.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e2f83e18fe2f4c9e7db597e988f72712c0c3676d337d8b101f6758107c42425b"}, + {file = "wrapt-1.14.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:ee2b1b1769f6707a8a445162ea16dddf74285c3964f605877a20e38545c3c462"}, + {file = "wrapt-1.14.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:833b58d5d0b7e5b9832869f039203389ac7cbf01765639c7309fd50ef619e0b1"}, + {file = "wrapt-1.14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:80bb5c256f1415f747011dc3604b59bc1f91c6e7150bd7db03b19170ee06b320"}, + {file = "wrapt-1.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:07f7a7d0f388028b2df1d916e94bbb40624c59b48ecc6cbc232546706fac74c2"}, + {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02b41b633c6261feff8ddd8d11c711df6842aba629fdd3da10249a53211a72c4"}, + {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2fe803deacd09a233e4762a1adcea5db5d31e6be577a43352936179d14d90069"}, + {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:257fd78c513e0fb5cdbe058c27a0624c9884e735bbd131935fd49e9fe719d310"}, + {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4fcc4649dc762cddacd193e6b55bc02edca674067f5f98166d7713b193932b7f"}, + {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:11871514607b15cfeb87c547a49bca19fde402f32e2b1c24a632506c0a756656"}, + {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8ad85f7f4e20964db4daadcab70b47ab05c7c1cf2a7c1e51087bfaa83831854c"}, + {file = "wrapt-1.14.1-cp310-cp310-win32.whl", hash = "sha256:a9a52172be0b5aae932bef82a79ec0a0ce87288c7d132946d645eba03f0ad8a8"}, + {file = "wrapt-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:6d323e1554b3d22cfc03cd3243b5bb815a51f5249fdcbb86fda4bf62bab9e164"}, + {file = "wrapt-1.14.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:43ca3bbbe97af00f49efb06e352eae40434ca9d915906f77def219b88e85d907"}, + {file = "wrapt-1.14.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:6b1a564e6cb69922c7fe3a678b9f9a3c54e72b469875aa8018f18b4d1dd1adf3"}, + {file = "wrapt-1.14.1-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:00b6d4ea20a906c0ca56d84f93065b398ab74b927a7a3dbd470f6fc503f95dc3"}, + {file = "wrapt-1.14.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:a85d2b46be66a71bedde836d9e41859879cc54a2a04fad1191eb50c2066f6e9d"}, + {file = "wrapt-1.14.1-cp35-cp35m-win32.whl", hash = "sha256:dbcda74c67263139358f4d188ae5faae95c30929281bc6866d00573783c422b7"}, + {file = "wrapt-1.14.1-cp35-cp35m-win_amd64.whl", hash = "sha256:b21bb4c09ffabfa0e85e3a6b623e19b80e7acd709b9f91452b8297ace2a8ab00"}, + {file = "wrapt-1.14.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:9e0fd32e0148dd5dea6af5fee42beb949098564cc23211a88d799e434255a1f4"}, + {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9736af4641846491aedb3c3f56b9bc5568d92b0692303b5a305301a95dfd38b1"}, + {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b02d65b9ccf0ef6c34cba6cf5bf2aab1bb2f49c6090bafeecc9cd81ad4ea1c1"}, + {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21ac0156c4b089b330b7666db40feee30a5d52634cc4560e1905d6529a3897ff"}, + {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:9f3e6f9e05148ff90002b884fbc2a86bd303ae847e472f44ecc06c2cd2fcdb2d"}, + {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:6e743de5e9c3d1b7185870f480587b75b1cb604832e380d64f9504a0535912d1"}, + {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d79d7d5dc8a32b7093e81e97dad755127ff77bcc899e845f41bf71747af0c569"}, + {file = "wrapt-1.14.1-cp36-cp36m-win32.whl", hash = "sha256:81b19725065dcb43df02b37e03278c011a09e49757287dca60c5aecdd5a0b8ed"}, + {file = "wrapt-1.14.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b014c23646a467558be7da3d6b9fa409b2c567d2110599b7cf9a0c5992b3b471"}, + {file = "wrapt-1.14.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:88bd7b6bd70a5b6803c1abf6bca012f7ed963e58c68d76ee20b9d751c74a3248"}, + {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5901a312f4d14c59918c221323068fad0540e34324925c8475263841dbdfe68"}, + {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d77c85fedff92cf788face9bfa3ebaa364448ebb1d765302e9af11bf449ca36d"}, + {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d649d616e5c6a678b26d15ece345354f7c2286acd6db868e65fcc5ff7c24a77"}, + {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7d2872609603cb35ca513d7404a94d6d608fc13211563571117046c9d2bcc3d7"}, + {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:ee6acae74a2b91865910eef5e7de37dc6895ad96fa23603d1d27ea69df545015"}, + {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2b39d38039a1fdad98c87279b48bc5dce2c0ca0d73483b12cb72aa9609278e8a"}, + {file = "wrapt-1.14.1-cp37-cp37m-win32.whl", hash = "sha256:60db23fa423575eeb65ea430cee741acb7c26a1365d103f7b0f6ec412b893853"}, + {file = "wrapt-1.14.1-cp37-cp37m-win_amd64.whl", hash = "sha256:709fe01086a55cf79d20f741f39325018f4df051ef39fe921b1ebe780a66184c"}, + {file = "wrapt-1.14.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8c0ce1e99116d5ab21355d8ebe53d9460366704ea38ae4d9f6933188f327b456"}, + {file = "wrapt-1.14.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e3fb1677c720409d5f671e39bac6c9e0e422584e5f518bfd50aa4cbbea02433f"}, + {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:642c2e7a804fcf18c222e1060df25fc210b9c58db7c91416fb055897fc27e8cc"}, + {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b7c050ae976e286906dd3f26009e117eb000fb2cf3533398c5ad9ccc86867b1"}, + {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef3f72c9666bba2bab70d2a8b79f2c6d2c1a42a7f7e2b0ec83bb2f9e383950af"}, + {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:01c205616a89d09827986bc4e859bcabd64f5a0662a7fe95e0d359424e0e071b"}, + {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5a0f54ce2c092aaf439813735584b9537cad479575a09892b8352fea5e988dc0"}, + {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2cf71233a0ed05ccdabe209c606fe0bac7379fdcf687f39b944420d2a09fdb57"}, + {file = "wrapt-1.14.1-cp38-cp38-win32.whl", hash = "sha256:aa31fdcc33fef9eb2552cbcbfee7773d5a6792c137b359e82879c101e98584c5"}, + {file = "wrapt-1.14.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1967f46ea8f2db647c786e78d8cc7e4313dbd1b0aca360592d8027b8508e24d"}, + {file = "wrapt-1.14.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3232822c7d98d23895ccc443bbdf57c7412c5a65996c30442ebe6ed3df335383"}, + {file = "wrapt-1.14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:988635d122aaf2bdcef9e795435662bcd65b02f4f4c1ae37fbee7401c440b3a7"}, + {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cca3c2cdadb362116235fdbd411735de4328c61425b0aa9f872fd76d02c4e86"}, + {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d52a25136894c63de15a35bc0bdc5adb4b0e173b9c0d07a2be9d3ca64a332735"}, + {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40e7bc81c9e2b2734ea4bc1aceb8a8f0ceaac7c5299bc5d69e37c44d9081d43b"}, + {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b9b7a708dd92306328117d8c4b62e2194d00c365f18eff11a9b53c6f923b01e3"}, + {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6a9a25751acb379b466ff6be78a315e2b439d4c94c1e99cb7266d40a537995d3"}, + {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:34aa51c45f28ba7f12accd624225e2b1e5a3a45206aa191f6f9aac931d9d56fe"}, + {file = "wrapt-1.14.1-cp39-cp39-win32.whl", hash = "sha256:dee0ce50c6a2dd9056c20db781e9c1cfd33e77d2d569f5d1d9321c641bb903d5"}, + {file = "wrapt-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:dee60e1de1898bde3b238f18340eec6148986da0455d8ba7848d50470a7a32fb"}, + {file = "wrapt-1.14.1.tar.gz", hash = "sha256:380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d"}, +] +yadism = [ + {file = "yadism-0.11.2-py3-none-any.whl", hash = "sha256:108e14cad6ba24dcfc37743399d98fc726f91a8056080ef9887a1911aafef078"}, + {file = "yadism-0.11.2.tar.gz", hash = "sha256:760b31ab27fcaa681329aea51f42bb655bc50b42392761ac89cc48d0f84b3c1f"}, +] +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/pyproject.toml b/pyproject.toml index bf0a413e..fc7c8538 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ python = ">=3.8,<3.11" click = "^8.0.1" rich = "^10.6.0" PyYAML = "^6.0.0" -yadism = "^0.11.0" +yadism = "^0.11.2" pandas = "^1.3.0" lz4 = "^3.1.3" breezy = "^3.2.1" @@ -18,25 +18,25 @@ pygit2 = "^1.6.1" requests = "^2.26.0" a3b2bbc3ced97675ac3a71df45f55ba = "^6.4.0" lhapdf-management = "^0.2" -pineappl = "0.5.3" +pineappl = "0.5.4" +more-itertools = "^8.10.0" +appdirs = "^1.4.4" +tomli = "^2.0.1" # docs dependencies (for readthedocs) Sphinx = { version = "^4.2.0", optional = true } sphinx-rtd-theme = { version = "^1.0.0", optional = true } sphinxcontrib-bibtex = { version = "^2.4.1", optional = true } -more-itertools = "^8.10.0" eko = {extras = ["box"], version = "^0.9.4"} [tool.poetry.dev-dependencies] pytest = "^5.2" +pylint = "^2.11.1" pdbpp = "^0.10.3" -black = "^22.1.0" -isort = "^5.9.3" ipython = "^8.0" Sphinx = "^4.2.0" sphinx-rtd-theme = "^1.0.0" sphinxcontrib-bibtex = "^2.4.1" -pylint = "^2.11.1" [tool.poetry.extras] docs = ["sphinx", "sphinx-rtd-theme", "sphinxcontrib-bibtex"] From 441ab29d0419bd6527ec8f4b4361ffb3f8818c3f Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 22 Jul 2022 15:30:17 +0200 Subject: [PATCH 27/60] Prune outdated, unmaintained zero-dependency script --- rr | 33 --------------------------------- 1 file changed, 33 deletions(-) delete mode 100755 rr diff --git a/rr b/rr deleted file mode 100755 index 037a5219..00000000 --- a/rr +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -Zero-dependency bootstrap script -""" -import os -import pathlib -import site -import subprocess -import sys - -here = pathlib.Path(".").parent.absolute() - - -def update_path(): - """ - Since in some environments the User Scripts Directory (PEP-370) is not part - of the path, let's include it to make user to be able to run `poetry`. - - (for `pre-commit` the user will have to do on its own, since it's not run by - this script) - """ - scripts_base_dir = ( - site.getuserbase() + "/bin" - if not sys.platform.startswith("win") - else r"\Scripts" - ) - os.environ["PATH"] += os.pathsep + str(scripts_base_dir) - - -if __name__ == "__main__": - update_path() - subprocess.run("poetry run rr".split() + sys.argv[1:]) From 0e2535ec0df95ea99be01c65d9fd7ac7d1b6d53c Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 22 Jul 2022 16:09:01 +0200 Subject: [PATCH 28/60] Poetry update --- poetry.lock | 874 +++++++++++++++++++++++++++------------------------- 1 file changed, 447 insertions(+), 427 deletions(-) diff --git a/poetry.lock b/poetry.lock index cf06d185..831824d4 100644 --- a/poetry.lock +++ b/poetry.lock @@ -26,7 +26,7 @@ python-versions = "*" name = "appnope" version = "0.1.3" description = "Disable App Nap on macOS >= 10.9" -category = "dev" +category = "main" optional = false python-versions = "*" @@ -43,6 +43,20 @@ lazy-object-proxy = ">=1.4.0" typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""} wrapt = ">=1.11,<2" +[[package]] +name = "asttokens" +version = "2.0.5" +description = "Annotate AST trees with source code positions" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +six = "*" + +[package.extras] +test = ["astroid", "pytest"] + [[package]] name = "atomicwrites" version = "1.4.1" @@ -80,10 +94,33 @@ pytz = ">=2015.7" name = "backcall" version = "0.2.0" description = "Specifications for callback functions passed in to an API" -category = "dev" +category = "main" optional = false python-versions = "*" +[[package]] +name = "banana-hep" +version = "0.6.5" +description = "Benchmark QCD physics" +category = "main" +optional = false +python-versions = ">=3.8.0,<3.11" + +[package.dependencies] +appdirs = ">=1.4.4,<2.0.0" +click = ">=8.0.3,<9.0.0" +ipython = ">=8.1.0,<9.0.0" +matplotlib = ">=3.5.1,<4.0.0" +numpy = ">=1.21.0,<2.0.0" +pandas = ">=1.3.5,<2.0.0" +pendulum = ">=2.1.2,<3.0.0" +PyYAML = ">=6.0,<7.0" +rich = ">=10.16.1,<11.0.0" +SQLAlchemy = ">=1.4.29,<2.0.0" + +[package.extras] +docs = ["Sphinx (>=4.3.2,<5.0.0)", "sphinx-rtd-theme (>=1.0.0,<2.0.0)", "sphinxcontrib-bibtex (>=2.4.1,<3.0.0)"] + [[package]] name = "breezy" version = "3.2.2" @@ -177,11 +214,19 @@ python-versions = "*" [package.dependencies] six = "*" +[[package]] +name = "cycler" +version = "0.11.0" +description = "Composable style cycles" +category = "main" +optional = false +python-versions = ">=3.6" + [[package]] name = "decorator" version = "5.1.1" description = "Decorators for Humans" -category = "dev" +category = "main" optional = false python-versions = ">=3.5" @@ -231,17 +276,29 @@ optional = false python-versions = ">=3.8,<3.11" [package.dependencies] +banana-hep = {version = ">=0.6.5,<0.7.0", optional = true, markers = "extra == \"mark\" or extra == \"box\""} lz4 = ">=3.1.10,<4.0.0" +matplotlib = {version = ">=3.5.1,<4.0.0", optional = true, markers = "extra == \"mark\" or extra == \"box\""} numba = ">=0.55.0,<0.56.0" numpy = ">=1.21.0,<2.0.0" +pandas = {version = ">=1.3.0,<2.0.0", optional = true, markers = "extra == \"mark\" or extra == \"box\""} PyYAML = ">=6.0,<7.0" scipy = ">=1.7.3,<2.0.0" +sqlalchemy = {version = ">=1.4.21,<2.0.0", optional = true, markers = "extra == \"mark\" or extra == \"box\""} [package.extras] docs = ["Sphinx (>=4.3.2,<5.0.0)", "nbsphinx (>=0.8.8,<0.9.0)", "sphinx-rtd-theme (>=1.0.0,<2.0.0)", "sphinxcontrib-bibtex (>=2.4.1,<3.0.0)"] mark = ["banana-hep (>=0.6.5,<0.7.0)", "matplotlib (>=3.5.1,<4.0.0)", "pandas (>=1.3.0,<2.0.0)", "sqlalchemy (>=1.4.21,<2.0.0)"] box = ["banana-hep (>=0.6.5,<0.7.0)", "matplotlib (>=3.5.1,<4.0.0)", "pandas (>=1.3.0,<2.0.0)", "sqlalchemy (>=1.4.21,<2.0.0)"] +[[package]] +name = "executing" +version = "0.8.3" +description = "Get the currently executing AST node of a frame, and other information" +category = "main" +optional = false +python-versions = "*" + [[package]] name = "fancycompleter" version = "0.9.1" @@ -265,6 +322,39 @@ python-versions = "*" [package.extras] cext = ["cython (>=0.29)"] +[[package]] +name = "fonttools" +version = "4.34.4" +description = "Tools to manipulate font files" +category = "main" +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"] +graphite = ["lz4 (>=1.7.4.2)"] +interpolatable = ["scipy", "munkres"] +lxml = ["lxml (>=4.0,<5)"] +pathops = ["skia-pathops (>=0.5.0)"] +plot = ["matplotlib"] +repacker = ["uharfbuzz (>=0.23.0)"] +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)"] + +[[package]] +name = "greenlet" +version = "1.1.2" +description = "Lightweight in-process concurrent programming" +category = "main" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" + +[package.extras] +docs = ["sphinx"] + [[package]] name = "idna" version = "3.3" @@ -299,11 +389,11 @@ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest- [[package]] name = "ipython" -version = "7.34.0" +version = "8.4.0" description = "IPython: Productive Interactive Computing" -category = "dev" +category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" [package.dependencies] appnope = {version = "*", markers = "sys_platform == \"darwin\""} @@ -315,19 +405,22 @@ matplotlib-inline = "*" pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} pickleshare = "*" prompt-toolkit = ">=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0" -pygments = "*" -traitlets = ">=4.2" +pygments = ">=2.4.0" +stack-data = "*" +traitlets = ">=5" [package.extras] -all = ["Sphinx (>=1.3)", "ipykernel", "ipyparallel", "ipywidgets", "nbconvert", "nbformat", "nose (>=0.10.1)", "notebook", "numpy (>=1.17)", "pygments", "qtconsole", "requests", "testpath"] +all = ["black", "Sphinx (>=1.3)", "ipykernel", "nbconvert", "nbformat", "ipywidgets", "notebook", "ipyparallel", "qtconsole", "pytest (<7.1)", "pytest-asyncio", "testpath", "curio", "matplotlib (!=3.2.0)", "numpy (>=1.19)", "pandas", "trio"] +black = ["black"] doc = ["Sphinx (>=1.3)"] kernel = ["ipykernel"] nbconvert = ["nbconvert"] nbformat = ["nbformat"] -notebook = ["notebook", "ipywidgets"] +notebook = ["ipywidgets", "notebook"] parallel = ["ipyparallel"] qtconsole = ["qtconsole"] -test = ["nose (>=0.10.1)", "requests", "testpath", "pygments", "nbformat", "ipykernel", "numpy (>=1.17)"] +test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] +test_extra = ["pytest (<7.1)", "pytest-asyncio", "testpath", "curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.19)", "pandas", "trio"] [[package]] name = "isort" @@ -347,7 +440,7 @@ plugins = ["setuptools"] name = "jedi" version = "0.18.1" description = "An autocompletion tool for Python that can be used for text editors." -category = "dev" +category = "main" optional = false python-versions = ">=3.6" @@ -372,6 +465,14 @@ MarkupSafe = ">=2.0" [package.extras] i18n = ["Babel (>=2.7)"] +[[package]] +name = "kiwisolver" +version = "1.4.4" +description = "A fast implementation of the Cassowary constraint solver" +category = "main" +optional = false +python-versions = ">=3.7" + [[package]] name = "latexcodec" version = "2.0.1" @@ -446,11 +547,30 @@ category = "main" optional = false python-versions = ">=3.7" +[[package]] +name = "matplotlib" +version = "3.5.2" +description = "Python plotting package" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +cycler = ">=0.10" +fonttools = ">=4.22.0" +kiwisolver = ">=1.0.1" +numpy = ">=1.17" +packaging = ">=20.0" +pillow = ">=6.2.0" +pyparsing = ">=2.2.1" +python-dateutil = ">=2.7" +setuptools_scm = ">=4" + [[package]] name = "matplotlib-inline" version = "0.1.3" description = "Inline Matplotlib backend for Jupyter" -category = "dev" +category = "main" optional = false python-versions = ">=3.5" @@ -529,7 +649,7 @@ test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"] name = "parso" version = "0.8.3" description = "A Python Parser" -category = "dev" +category = "main" optional = false python-versions = ">=3.6" @@ -562,11 +682,23 @@ wmctrl = "*" funcsigs = ["funcsigs"] testing = ["funcsigs", "pytest"] +[[package]] +name = "pendulum" +version = "2.1.2" +description = "Python datetimes made easy" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.dependencies] +python-dateutil = ">=2.6,<3.0" +pytzdata = ">=2020.1" + [[package]] name = "pexpect" version = "4.8.0" description = "Pexpect allows easy control of interactive console applications." -category = "dev" +category = "main" optional = false python-versions = "*" @@ -577,10 +709,22 @@ ptyprocess = ">=0.5" name = "pickleshare" version = "0.7.5" description = "Tiny 'shelve'-like database with concurrency support" -category = "dev" +category = "main" optional = false python-versions = "*" +[[package]] +name = "pillow" +version = "9.2.0" +description = "Python Imaging Library (Fork)" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinxext-opengraph"] +tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] + [[package]] name = "pineappl" version = "0.5.4" @@ -631,7 +775,7 @@ dev = ["pre-commit", "tox"] name = "prompt-toolkit" version = "3.0.30" description = "Library for building powerful interactive command lines in Python" -category = "dev" +category = "main" optional = false python-versions = ">=3.6.2" @@ -642,10 +786,21 @@ wcwidth = "*" name = "ptyprocess" version = "0.7.0" description = "Run a subprocess in a pseudo terminal" -category = "dev" +category = "main" optional = false python-versions = "*" +[[package]] +name = "pure-eval" +version = "0.2.2" +description = "Safely evaluate AST nodes without side effects" +category = "main" +optional = false +python-versions = "*" + +[package.extras] +tests = ["pytest"] + [[package]] name = "py" version = "1.11.0" @@ -800,6 +955,14 @@ category = "main" optional = false python-versions = "*" +[[package]] +name = "pytzdata" +version = "2020.1" +description = "The Olson timezone database for Python." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + [[package]] name = "pyyaml" version = "6.0" @@ -853,6 +1016,23 @@ python-versions = ">=3.8,<3.11" [package.dependencies] numpy = ">=1.17.3,<1.25.0" +[[package]] +name = "setuptools-scm" +version = "7.0.5" +description = "the blessed package to manage your versions by scm tags" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +packaging = ">=20.0" +tomli = ">=1.0.0" +typing-extensions = "*" + +[package.extras] +test = ["pytest (>=6.2)", "virtualenv (>20)"] +toml = ["setuptools (>=42)"] + [[package]] name = "six" version = "1.16.0" @@ -1001,6 +1181,54 @@ python-versions = ">=3.5" lint = ["flake8", "mypy", "docutils-stubs"] test = ["pytest"] +[[package]] +name = "sqlalchemy" +version = "1.4.39" +description = "Database Abstraction Library" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" + +[package.dependencies] +greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"} + +[package.extras] +aiomysql = ["greenlet (!=0.4.17)", "aiomysql"] +aiosqlite = ["typing_extensions (!=3.10.0.1)", "greenlet (!=0.4.17)", "aiosqlite"] +asyncio = ["greenlet (!=0.4.17)"] +asyncmy = ["greenlet (!=0.4.17)", "asyncmy (>=0.2.3,!=0.2.4)"] +mariadb_connector = ["mariadb (>=1.0.1)"] +mssql = ["pyodbc"] +mssql_pymssql = ["pymssql"] +mssql_pyodbc = ["pyodbc"] +mypy = ["sqlalchemy2-stubs", "mypy (>=0.910)"] +mysql = ["mysqlclient (>=1.4.0,<2)", "mysqlclient (>=1.4.0)"] +mysql_connector = ["mysql-connector-python"] +oracle = ["cx_oracle (>=7,<8)", "cx_oracle (>=7)"] +postgresql = ["psycopg2 (>=2.7)"] +postgresql_asyncpg = ["greenlet (!=0.4.17)", "asyncpg"] +postgresql_pg8000 = ["pg8000 (>=1.16.6,!=1.29.0)"] +postgresql_psycopg2binary = ["psycopg2-binary"] +postgresql_psycopg2cffi = ["psycopg2cffi"] +pymysql = ["pymysql (<1)", "pymysql"] +sqlcipher = ["sqlcipher3-binary"] + +[[package]] +name = "stack-data" +version = "0.3.0" +description = "Extract data from python stack frames and tracebacks for informative displays" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +asttokens = "*" +executing = "*" +pure-eval = "*" + +[package.extras] +tests = ["pytest", "typeguard", "pygments", "littleutils", "cython"] + [[package]] name = "tomli" version = "2.0.1" @@ -1038,7 +1266,7 @@ telegram = ["requests"] name = "traitlets" version = "5.3.0" description = "" -category = "dev" +category = "main" optional = false python-versions = ">=3.7" @@ -1049,7 +1277,7 @@ test = ["pre-commit", "pytest"] name = "typing-extensions" version = "4.3.0" description = "Backported and Experimental Type Hints for Python 3.7+" -category = "dev" +category = "main" optional = false python-versions = ">=3.7" @@ -1070,7 +1298,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "wcwidth" version = "0.2.5" description = "Measures the displayed width of unicode strings in a terminal" -category = "dev" +category = "main" optional = false python-versions = "*" @@ -1130,7 +1358,7 @@ docs = ["Sphinx", "sphinx-rtd-theme", "sphinxcontrib-bibtex"] [metadata] lock-version = "1.1" python-versions = ">=3.8,<3.11" -content-hash = "3a5dbf9325d6e5e450829109adff916cf90eafd564365ca237b8b39e459dde4f" +content-hash = "0f5589c19b4a954abc22fc4323c313df713d944e7a4d043f942b29772d497023" [metadata.files] a3b2bbc3ced97675ac3a71df45f55ba = [ @@ -1142,10 +1370,7 @@ a3b2bbc3ced97675ac3a71df45f55ba = [ {file = "a3b2bbc3ced97675ac3a71df45f55ba-6.4.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0147a1d9dab10f8b23ef5fc97f570ce044e9f8409bfee2fbce551180fafcbb2e"}, {file = "a3b2bbc3ced97675ac3a71df45f55ba-6.4.0.tar.gz", hash = "sha256:1bd60035f9862db1130be035f631c2cfcf90d2ee0cfc6f33ce29fbf8a70b5a04"}, ] -alabaster = [ - {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, - {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, -] +alabaster = [] appdirs = [ {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, @@ -1154,241 +1379,144 @@ appnope = [ {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, ] -astroid = [ - {file = "astroid-2.11.7-py3-none-any.whl", hash = "sha256:86b0a340a512c65abf4368b80252754cda17c02cdbbd3f587dddf98112233e7b"}, - {file = "astroid-2.11.7.tar.gz", hash = "sha256:bb24615c77f4837c707669d16907331374ae8a964650a66999da3f5ca68dc946"}, -] -atomicwrites = [ - {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, +astroid = [] +asttokens = [ + {file = "asttokens-2.0.5-py2.py3-none-any.whl", hash = "sha256:0844691e88552595a6f4a4281a9f7f79b8dd45ca4ccea82e5e05b4bbdb76705c"}, + {file = "asttokens-2.0.5.tar.gz", hash = "sha256:9a54c114f02c7a9480d56550932546a3f1fe71d8a02f1bc7ccd0ee3ee35cf4d5"}, ] +atomicwrites = [] attrs = [ {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, ] -babel = [ - {file = "Babel-2.10.3-py3-none-any.whl", hash = "sha256:ff56f4892c1c4bf0d814575ea23471c230d544203c7748e8c68f0089478d48eb"}, - {file = "Babel-2.10.3.tar.gz", hash = "sha256:7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51"}, -] +babel = [] backcall = [ {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, ] -breezy = [ - {file = "breezy-3.2.2.tar.gz", hash = "sha256:187a6e45208dd05d81750736720c83710cf48094f547ec4081c571259559a4d5"}, -] -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"}, +banana-hep = [ + {file = "banana-hep-0.6.5.tar.gz", hash = "sha256:748923aae41d5be0e117516698e523935d5f68146b53a8565372c7489137b0f1"}, + {file = "banana_hep-0.6.5-py3-none-any.whl", hash = "sha256:6a8da394b0492cdd11f454a73c81727aff1bc96b206f1ca109cecdd087b980cd"}, ] +breezy = [] +certifi = [] +cffi = [] +charset-normalizer = [] click = [ {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, ] -colorama = [ - {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, - {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, -] +colorama = [] commonmark = [ {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"}, {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"}, ] -configobj = [ - {file = "configobj-5.0.6.tar.gz", hash = "sha256:a2f5650770e1c87fb335af19a9b7eb73fc05ccf22144eb68db7d00cd2bcb0902"}, +configobj = [] +cycler = [ + {file = "cycler-0.11.0-py3-none-any.whl", hash = "sha256:3a27e95f763a428a739d2add979fa7494c912a32c17c4c38c4d5f082cad165a3"}, + {file = "cycler-0.11.0.tar.gz", hash = "sha256:9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f"}, ] decorator = [ {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, ] -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"}, -] -docutils = [ - {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, - {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, -] -dulwich = [ - {file = "dulwich-0.20.45-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:9b689b05bc7baa5cb20ebff54291085b598a9bdf7caeab23daf93b46421d96ff"}, - {file = "dulwich-0.20.45-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7cf5171034d9d61b928bd5f9c509000e895d1ba29bd6ea850b9e4f93fca0f7"}, - {file = "dulwich-0.20.45-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:22d433ba9c776f2b0e19b1186e01e25ca286175e20f4ac422141db94eeaac08b"}, - {file = "dulwich-0.20.45-cp310-cp310-win_amd64.whl", hash = "sha256:6e02babb44bdad17b6c9c50b4f9df42f6e511e3a51555ac07dd85ec904efe0b1"}, - {file = "dulwich-0.20.45-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:042bc206764968b17338e32c52bb6a116154eb87a63651971946917dfa37a359"}, - {file = "dulwich-0.20.45-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e405ac9426288ca782c45e066f816d878b4a529acf4d4b0b2a5bb45a804dfec"}, - {file = "dulwich-0.20.45-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c8c0fc7d2e3b0ad6a4faadf96f0626fa50935ababfd774b9b94edaa28f0668ec"}, - {file = "dulwich-0.20.45-cp36-cp36m-win_amd64.whl", hash = "sha256:35015e43207752cf7924860e85a3c2290c652c0c3ee81e7c95c52d34638f605d"}, - {file = "dulwich-0.20.45-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:d89f53a739ac3394b5ef2f178480569b7d36d4fe7b4bb49678582914530ce35b"}, - {file = "dulwich-0.20.45-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abb1b0e1e50192ce7204c4e14f24c989c5920c56de908365f4e66c6e3458945"}, - {file = "dulwich-0.20.45-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:eb4189d72a0e2f3070e2abdbd10a05c0e62355cd5496761d6e68f1e865ac6fad"}, - {file = "dulwich-0.20.45-cp37-cp37m-win_amd64.whl", hash = "sha256:efe46167eb02ba85d9c2e993635e7543e1e04bb3261112e9d54daff2385ae5df"}, - {file = "dulwich-0.20.45-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:3f2c137a0003e80e384d116e65b453f8a704c2d393c30a47b447764e7f9c05a1"}, - {file = "dulwich-0.20.45-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65334bd7a1d91054516a49f86343e9c2549740bbddebcbb4763c8aacf2aac48c"}, - {file = "dulwich-0.20.45-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5e41044ac51a4b3454d67e5f691808540470deeb6a852d7c5c6ca44c48b4cdc3"}, - {file = "dulwich-0.20.45-cp38-cp38-win_amd64.whl", hash = "sha256:d8b6aae7af8edbfac8038e1777ae820efac33c7c22a8025d3254bbd53ec725b5"}, - {file = "dulwich-0.20.45-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:bb75268cec2f3ae6f6b7addbc0db50db2e9e42b2ad8364e74b9f5b17ab0053b5"}, - {file = "dulwich-0.20.45-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b3f64870f2f206dda3308cb73563f5f59fdc084179271651a0488d12ab4185b9"}, - {file = "dulwich-0.20.45-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:49852f12c1e1d50039f927e9fdee1bd00a9b428c31b078ba5ba9fc1cf88e9d3e"}, - {file = "dulwich-0.20.45-cp39-cp39-win_amd64.whl", hash = "sha256:3136bcaf7508522a2aa63f856743f06129261bc5a03331aa6a0654fa6d04a4ae"}, - {file = "dulwich-0.20.45.tar.gz", hash = "sha256:70710dd9ca2a442190c7e506892db074c318ac762e221f7529b8ce34802041b7"}, -] +dill = [] +docutils = [] +dulwich = [] eko = [ {file = "eko-0.9.4-py3-none-any.whl", hash = "sha256:5bdfa3bf718f3670706ce0644716ca51699804d3dcca5b2dc6264f8b9bcdb7e8"}, {file = "eko-0.9.4.tar.gz", hash = "sha256:c2325284a391cdd9119eb991a243df50a6e5de3f8bee7faae19d27c83278507a"}, ] +executing = [ + {file = "executing-0.8.3-py2.py3-none-any.whl", hash = "sha256:d1eef132db1b83649a3905ca6dd8897f71ac6f8cac79a7e58a1a09cf137546c9"}, + {file = "executing-0.8.3.tar.gz", hash = "sha256:c6554e21c6b060590a6d3be4b82fb78f8f0194d809de5ea7df1c093763311501"}, +] fancycompleter = [ {file = "fancycompleter-0.9.1-py3-none-any.whl", hash = "sha256:dd076bca7d9d524cc7f25ec8f35ef95388ffef9ef46def4d3d25e9b044ad7080"}, {file = "fancycompleter-0.9.1.tar.gz", hash = "sha256:09e0feb8ae242abdfd7ef2ba55069a46f011814a80fe5476be48f51b00247272"}, ] -fastbencode = [ - {file = "fastbencode-0.0.9.tar.gz", hash = "sha256:a508632c645f2e3ffbb4984cb544035c8946d6fec8cfe0aec5e556340773ce9c"}, +fastbencode = [] +fonttools = [] +greenlet = [ + {file = "greenlet-1.1.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:58df5c2a0e293bf665a51f8a100d3e9956febfbf1d9aaf8c0677cf70218910c6"}, + {file = "greenlet-1.1.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:aec52725173bd3a7b56fe91bc56eccb26fbdff1386ef123abb63c84c5b43b63a"}, + {file = "greenlet-1.1.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:833e1551925ed51e6b44c800e71e77dacd7e49181fdc9ac9a0bf3714d515785d"}, + {file = "greenlet-1.1.2-cp27-cp27m-win32.whl", hash = "sha256:aa5b467f15e78b82257319aebc78dd2915e4c1436c3c0d1ad6f53e47ba6e2713"}, + {file = "greenlet-1.1.2-cp27-cp27m-win_amd64.whl", hash = "sha256:40b951f601af999a8bf2ce8c71e8aaa4e8c6f78ff8afae7b808aae2dc50d4c40"}, + {file = "greenlet-1.1.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:95e69877983ea39b7303570fa6760f81a3eec23d0e3ab2021b7144b94d06202d"}, + {file = "greenlet-1.1.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:356b3576ad078c89a6107caa9c50cc14e98e3a6c4874a37c3e0273e4baf33de8"}, + {file = "greenlet-1.1.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:8639cadfda96737427330a094476d4c7a56ac03de7265622fcf4cfe57c8ae18d"}, + {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97e5306482182170ade15c4b0d8386ded995a07d7cc2ca8f27958d34d6736497"}, + {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e6a36bb9474218c7a5b27ae476035497a6990e21d04c279884eb10d9b290f1b1"}, + {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abb7a75ed8b968f3061327c433a0fbd17b729947b400747c334a9c29a9af6c58"}, + {file = "greenlet-1.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b336501a05e13b616ef81ce329c0e09ac5ed8c732d9ba7e3e983fcc1a9e86965"}, + {file = "greenlet-1.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:14d4f3cd4e8b524ae9b8aa567858beed70c392fdec26dbdb0a8a418392e71708"}, + {file = "greenlet-1.1.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:17ff94e7a83aa8671a25bf5b59326ec26da379ace2ebc4411d690d80a7fbcf23"}, + {file = "greenlet-1.1.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9f3cba480d3deb69f6ee2c1825060177a22c7826431458c697df88e6aeb3caee"}, + {file = "greenlet-1.1.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:fa877ca7f6b48054f847b61d6fa7bed5cebb663ebc55e018fda12db09dcc664c"}, + {file = "greenlet-1.1.2-cp35-cp35m-win32.whl", hash = "sha256:7cbd7574ce8e138bda9df4efc6bf2ab8572c9aff640d8ecfece1b006b68da963"}, + {file = "greenlet-1.1.2-cp35-cp35m-win_amd64.whl", hash = "sha256:903bbd302a2378f984aef528f76d4c9b1748f318fe1294961c072bdc7f2ffa3e"}, + {file = "greenlet-1.1.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:049fe7579230e44daef03a259faa24511d10ebfa44f69411d99e6a184fe68073"}, + {file = "greenlet-1.1.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:dd0b1e9e891f69e7675ba5c92e28b90eaa045f6ab134ffe70b52e948aa175b3c"}, + {file = "greenlet-1.1.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:7418b6bfc7fe3331541b84bb2141c9baf1ec7132a7ecd9f375912eca810e714e"}, + {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9d29ca8a77117315101425ec7ec2a47a22ccf59f5593378fc4077ac5b754fce"}, + {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21915eb821a6b3d9d8eefdaf57d6c345b970ad722f856cd71739493ce003ad08"}, + {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eff9d20417ff9dcb0d25e2defc2574d10b491bf2e693b4e491914738b7908168"}, + {file = "greenlet-1.1.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b8c008de9d0daba7b6666aa5bbfdc23dcd78cafc33997c9b7741ff6353bafb7f"}, + {file = "greenlet-1.1.2-cp36-cp36m-win32.whl", hash = "sha256:32ca72bbc673adbcfecb935bb3fb1b74e663d10a4b241aaa2f5a75fe1d1f90aa"}, + {file = "greenlet-1.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:f0214eb2a23b85528310dad848ad2ac58e735612929c8072f6093f3585fd342d"}, + {file = "greenlet-1.1.2-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:b92e29e58bef6d9cfd340c72b04d74c4b4e9f70c9fa7c78b674d1fec18896dc4"}, + {file = "greenlet-1.1.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:fdcec0b8399108577ec290f55551d926d9a1fa6cad45882093a7a07ac5ec147b"}, + {file = "greenlet-1.1.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:93f81b134a165cc17123626ab8da2e30c0455441d4ab5576eed73a64c025b25c"}, + {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e12bdc622676ce47ae9abbf455c189e442afdde8818d9da983085df6312e7a1"}, + {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c790abda465726cfb8bb08bd4ca9a5d0a7bd77c7ac1ca1b839ad823b948ea28"}, + {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f276df9830dba7a333544bd41070e8175762a7ac20350786b322b714b0e654f5"}, + {file = "greenlet-1.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c5d5b35f789a030ebb95bff352f1d27a93d81069f2adb3182d99882e095cefe"}, + {file = "greenlet-1.1.2-cp37-cp37m-win32.whl", hash = "sha256:64e6175c2e53195278d7388c454e0b30997573f3f4bd63697f88d855f7a6a1fc"}, + {file = "greenlet-1.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b11548073a2213d950c3f671aa88e6f83cda6e2fb97a8b6317b1b5b33d850e06"}, + {file = "greenlet-1.1.2-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:9633b3034d3d901f0a46b7939f8c4d64427dfba6bbc5a36b1a67364cf148a1b0"}, + {file = "greenlet-1.1.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:eb6ea6da4c787111adf40f697b4e58732ee0942b5d3bd8f435277643329ba627"}, + {file = "greenlet-1.1.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:f3acda1924472472ddd60c29e5b9db0cec629fbe3c5c5accb74d6d6d14773478"}, + {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e859fcb4cbe93504ea18008d1df98dee4f7766db66c435e4882ab35cf70cac43"}, + {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00e44c8afdbe5467e4f7b5851be223be68adb4272f44696ee71fe46b7036a711"}, + {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec8c433b3ab0419100bd45b47c9c8551248a5aee30ca5e9d399a0b57ac04651b"}, + {file = "greenlet-1.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2bde6792f313f4e918caabc46532aa64aa27a0db05d75b20edfc5c6f46479de2"}, + {file = "greenlet-1.1.2-cp38-cp38-win32.whl", hash = "sha256:288c6a76705dc54fba69fbcb59904ae4ad768b4c768839b8ca5fdadec6dd8cfd"}, + {file = "greenlet-1.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:8d2f1fb53a421b410751887eb4ff21386d119ef9cde3797bf5e7ed49fb51a3b3"}, + {file = "greenlet-1.1.2-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:166eac03e48784a6a6e0e5f041cfebb1ab400b394db188c48b3a84737f505b67"}, + {file = "greenlet-1.1.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:572e1787d1460da79590bf44304abbc0a2da944ea64ec549188fa84d89bba7ab"}, + {file = "greenlet-1.1.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:be5f425ff1f5f4b3c1e33ad64ab994eed12fc284a6ea71c5243fd564502ecbe5"}, + {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1692f7d6bc45e3200844be0dba153612103db241691088626a33ff1f24a0d88"}, + {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7227b47e73dedaa513cdebb98469705ef0d66eb5a1250144468e9c3097d6b59b"}, + {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ff61ff178250f9bb3cd89752df0f1dd0e27316a8bd1465351652b1b4a4cdfd3"}, + {file = "greenlet-1.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0051c6f1f27cb756ffc0ffbac7d2cd48cb0362ac1736871399a739b2885134d3"}, + {file = "greenlet-1.1.2-cp39-cp39-win32.whl", hash = "sha256:f70a9e237bb792c7cc7e44c531fd48f5897961701cdaa06cf22fc14965c496cf"}, + {file = "greenlet-1.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:013d61294b6cd8fe3242932c1c5e36e5d1db2c8afb58606c5a67efce62c1f5fd"}, + {file = "greenlet-1.1.2.tar.gz", hash = "sha256:e30f5ea4ae2346e62cedde8794a56858a67b878dd79f7df76a0767e356b1744a"}, ] idna = [ {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, ] -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"}, -] +imagesize = [] +importlib-metadata = [] ipython = [ - {file = "ipython-7.34.0-py3-none-any.whl", hash = "sha256:c175d2440a1caff76116eb719d40538fbb316e214eda85c5515c303aacbfb23e"}, - {file = "ipython-7.34.0.tar.gz", hash = "sha256:af3bdb46aa292bce5615b1b2ebc76c2080c5f77f54bda2ec72461317273e7cd6"}, -] -isort = [ - {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, - {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, + {file = "ipython-8.4.0-py3-none-any.whl", hash = "sha256:7ca74052a38fa25fe9bedf52da0be7d3fdd2fb027c3b778ea78dfe8c212937d1"}, + {file = "ipython-8.4.0.tar.gz", hash = "sha256:f2db3a10254241d9b447232cec8b424847f338d9d36f9a577a6192c332a46abd"}, ] +isort = [] jedi = [ {file = "jedi-0.18.1-py2.py3-none-any.whl", hash = "sha256:637c9635fcf47945ceb91cd7f320234a7be540ded6f3e99a50cb6febdfd1ba8d"}, {file = "jedi-0.18.1.tar.gz", hash = "sha256:74137626a64a99c8eb6ae5832d99b3bdd7d29a3850fe2aa80a4126b2a7d949ab"}, ] -jinja2 = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, -] -latexcodec = [ - {file = "latexcodec-2.0.1-py2.py3-none-any.whl", hash = "sha256:c277a193638dc7683c4c30f6684e3db728a06efb0dc9cf346db8bd0aa6c5d271"}, - {file = "latexcodec-2.0.1.tar.gz", hash = "sha256:2aa2551c373261cefe2ad3a8953a6d6533e68238d180eb4bb91d7964adb3fe9a"}, -] -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"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, - {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"}, -] +jinja2 = [] +kiwisolver = [] +latexcodec = [] +lazy-object-proxy = [] leprohq = [ {file = "LeProHQ-0.2.3-py3-none-any.whl", hash = "sha256:5dc27db91a554187715996cf9844442549802d505ed189dd501baefbf8735c58"}, ] -lhapdf-management = [ - {file = "lhapdf_management-0.2-py3-none-any.whl", hash = "sha256:7529f1ca5029ab93fb3beeba95a3a6db46f642632c69cdfc5d8bdeb75da82b83"}, - {file = "lhapdf_management-0.2.tar.gz", hash = "sha256:d9999cdf1eda9f90fe0d56d4b7ec1538975d0536594869d088523e66f7c86254"}, -] +lhapdf-management = [] llvmlite = [ {file = "llvmlite-0.38.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a7dd2bd1d6406e7789273e3f8a304ed5d9adcfaa5768052fca7dc233a857be98"}, {file = "llvmlite-0.38.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7a5e0ed215a576f0f872f47a70b8cb49864e0aefc8586aff5ce83e3bff47bc23"}, @@ -1442,60 +1570,50 @@ lz4 = [ {file = "lz4-3.1.10-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:59afeb136957ed7a2058e4ef61cb2d0f5894ca866a8bfca5ff43d49a5cbe4aa2"}, {file = "lz4-3.1.10.tar.gz", hash = "sha256:439e575ecfa9ecffcbd63cfed99baefbe422ab9645b1e82278024d8a21d9720b"}, ] -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"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-win32.whl", hash = "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-win32.whl", hash = "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-win32.whl", hash = "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-win32.whl", hash = "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"}, - {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"}, +markupsafe = [] +matplotlib = [ + {file = "matplotlib-3.5.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:03bbb3f5f78836855e127b5dab228d99551ad0642918ccbf3067fcd52ac7ac5e"}, + {file = "matplotlib-3.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:49a5938ed6ef9dda560f26ea930a2baae11ea99e1c2080c8714341ecfda72a89"}, + {file = "matplotlib-3.5.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:77157be0fc4469cbfb901270c205e7d8adb3607af23cef8bd11419600647ceed"}, + {file = "matplotlib-3.5.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5844cea45d804174bf0fac219b4ab50774e504bef477fc10f8f730ce2d623441"}, + {file = "matplotlib-3.5.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c87973ddec10812bddc6c286b88fdd654a666080fbe846a1f7a3b4ba7b11ab78"}, + {file = "matplotlib-3.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a05f2b37222319753a5d43c0a4fd97ed4ff15ab502113e3f2625c26728040cf"}, + {file = "matplotlib-3.5.2-cp310-cp310-win32.whl", hash = "sha256:9776e1a10636ee5f06ca8efe0122c6de57ffe7e8c843e0fb6e001e9d9256ec95"}, + {file = "matplotlib-3.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:b4fedaa5a9aa9ce14001541812849ed1713112651295fdddd640ea6620e6cf98"}, + {file = "matplotlib-3.5.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ee175a571e692fc8ae8e41ac353c0e07259113f4cb063b0ec769eff9717e84bb"}, + {file = "matplotlib-3.5.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e8bda1088b941ead50caabd682601bece983cadb2283cafff56e8fcddbf7d7f"}, + {file = "matplotlib-3.5.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9480842d5aadb6e754f0b8f4ebeb73065ac8be1855baa93cd082e46e770591e9"}, + {file = "matplotlib-3.5.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6c623b355d605a81c661546af7f24414165a8a2022cddbe7380a31a4170fa2e9"}, + {file = "matplotlib-3.5.2-cp37-cp37m-win32.whl", hash = "sha256:a91426ae910819383d337ba0dc7971c7cefdaa38599868476d94389a329e599b"}, + {file = "matplotlib-3.5.2-cp37-cp37m-win_amd64.whl", hash = "sha256:c4b82c2ae6d305fcbeb0eb9c93df2602ebd2f174f6e8c8a5d92f9445baa0c1d3"}, + {file = "matplotlib-3.5.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ebc27ad11df3c1661f4677a7762e57a8a91dd41b466c3605e90717c9a5f90c82"}, + {file = "matplotlib-3.5.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a32ea6e12e80dedaca2d4795d9ed40f97bfa56e6011e14f31502fdd528b9c89"}, + {file = "matplotlib-3.5.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2a0967d4156adbd0d46db06bc1a877f0370bce28d10206a5071f9ecd6dc60b79"}, + {file = "matplotlib-3.5.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2b696699386766ef171a259d72b203a3c75d99d03ec383b97fc2054f52e15cf"}, + {file = "matplotlib-3.5.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7f409716119fa39b03da3d9602bd9b41142fab7a0568758cd136cd80b1bf36c8"}, + {file = "matplotlib-3.5.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b8d3f4e71e26307e8c120b72c16671d70c5cd08ae412355c11254aa8254fb87f"}, + {file = "matplotlib-3.5.2-cp38-cp38-win32.whl", hash = "sha256:b6c63cd01cad0ea8704f1fd586e9dc5777ccedcd42f63cbbaa3eae8dd41172a1"}, + {file = "matplotlib-3.5.2-cp38-cp38-win_amd64.whl", hash = "sha256:75c406c527a3aa07638689586343f4b344fcc7ab1f79c396699eb550cd2b91f7"}, + {file = "matplotlib-3.5.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4a44cdfdb9d1b2f18b1e7d315eb3843abb097869cd1ef89cfce6a488cd1b5182"}, + {file = "matplotlib-3.5.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3d8e129af95b156b41cb3be0d9a7512cc6d73e2b2109f82108f566dbabdbf377"}, + {file = "matplotlib-3.5.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:364e6bca34edc10a96aa3b1d7cd76eb2eea19a4097198c1b19e89bee47ed5781"}, + {file = "matplotlib-3.5.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea75df8e567743207e2b479ba3d8843537be1c146d4b1e3e395319a4e1a77fe9"}, + {file = "matplotlib-3.5.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:44c6436868186564450df8fd2fc20ed9daaef5caad699aa04069e87099f9b5a8"}, + {file = "matplotlib-3.5.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7d7705022df2c42bb02937a2a824f4ec3cca915700dd80dc23916af47ff05f1a"}, + {file = "matplotlib-3.5.2-cp39-cp39-win32.whl", hash = "sha256:ee0b8e586ac07f83bb2950717e66cb305e2859baf6f00a9c39cc576e0ce9629c"}, + {file = "matplotlib-3.5.2-cp39-cp39-win_amd64.whl", hash = "sha256:c772264631e5ae61f0bd41313bbe48e1b9bcc95b974033e1118c9caa1a84d5c6"}, + {file = "matplotlib-3.5.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:751d3815b555dcd6187ad35b21736dc12ce6925fc3fa363bbc6dc0f86f16484f"}, + {file = "matplotlib-3.5.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:31fbc2af27ebb820763f077ec7adc79b5a031c2f3f7af446bd7909674cd59460"}, + {file = "matplotlib-3.5.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4fa28ca76ac5c2b2d54bc058b3dad8e22ee85d26d1ee1b116a6fd4d2277b6a04"}, + {file = "matplotlib-3.5.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:24173c23d1bcbaed5bf47b8785d27933a1ac26a5d772200a0f3e0e38f471b001"}, + {file = "matplotlib-3.5.2.tar.gz", hash = "sha256:48cf850ce14fa18067f2d9e0d646763681948487a8080ec0af2686468b4607a2"}, ] matplotlib-inline = [ {file = "matplotlib-inline-0.1.3.tar.gz", hash = "sha256:a04bfba22e0d1395479f866853ec1ee28eea1485c1d69a6faf00dc3e24ff34ee"}, {file = "matplotlib_inline-0.1.3-py3-none-any.whl", hash = "sha256:aed605ba3b72462d64d475a21a9296f400a19c4f74a31b59103d2a99ffd5aa5c"}, ] -mccabe = [ - {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, - {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, -] -more-itertools = [ - {file = "more-itertools-8.13.0.tar.gz", hash = "sha256:a42901a0a5b169d925f6f217cd5a190e32ef54360905b9c39ee7db5313bfec0f"}, - {file = "more_itertools-8.13.0-py3-none-any.whl", hash = "sha256:c5122bffc5f104d37c1626b8615b511f3427aa5389b94d61e5ef8236bfbc3ddb"}, -] +mccabe = [] +more-itertools = [] numba = [ {file = "numba-0.55.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:dd05f7c0ce64b6977596aa4e5a44747c6ef414d7989da1c7672337c54381a5ef"}, {file = "numba-0.55.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e36232eccd172c583b1f021c5c48744c087ae6fc9dc5c5f0dd2cb2286e517bf8"}, @@ -1581,17 +1699,34 @@ parso = [ {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, ] -patiencediff = [ - {file = "patiencediff-0.2.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:e15b894d1941ed773b6c5f7479985fc17ec81bab33f82e3b736ab1920c1804d6"}, - {file = "patiencediff-0.2.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:f196516e980f17302317f2f6f6a4c2897c6107c34c5268d9d37b820e98fd0deb"}, - {file = "patiencediff-0.2.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:830be20a2e74972843362d7bc4b7a7929ff63205eade553d83256e51843b64d4"}, - {file = "patiencediff-0.2.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:5fcc3f9dc12040ddfb8165317af3425c4d2be49b147def22a72a44d43fff5141"}, - {file = "patiencediff-0.2.2.tar.gz", hash = "sha256:456d9fc47fe43f9aea863059ea2c6df5b997285590e4b7f9ee8fbb6c3419b5a7"}, -] +patiencediff = [] pdbpp = [ {file = "pdbpp-0.10.3-py2.py3-none-any.whl", hash = "sha256:79580568e33eb3d6f6b462b1187f53e10cd8e4538f7d31495c9181e2cf9665d1"}, {file = "pdbpp-0.10.3.tar.gz", hash = "sha256:d9e43f4fda388eeb365f2887f4e7b66ac09dce9b6236b76f63616530e2f669f5"}, ] +pendulum = [ + {file = "pendulum-2.1.2-cp27-cp27m-macosx_10_15_x86_64.whl", hash = "sha256:b6c352f4bd32dff1ea7066bd31ad0f71f8d8100b9ff709fb343f3b86cee43efe"}, + {file = "pendulum-2.1.2-cp27-cp27m-win_amd64.whl", hash = "sha256:318f72f62e8e23cd6660dbafe1e346950281a9aed144b5c596b2ddabc1d19739"}, + {file = "pendulum-2.1.2-cp35-cp35m-macosx_10_15_x86_64.whl", hash = "sha256:0731f0c661a3cb779d398803655494893c9f581f6488048b3fb629c2342b5394"}, + {file = "pendulum-2.1.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:3481fad1dc3f6f6738bd575a951d3c15d4b4ce7c82dce37cf8ac1483fde6e8b0"}, + {file = "pendulum-2.1.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9702069c694306297ed362ce7e3c1ef8404ac8ede39f9b28b7c1a7ad8c3959e3"}, + {file = "pendulum-2.1.2-cp35-cp35m-win_amd64.whl", hash = "sha256:fb53ffa0085002ddd43b6ca61a7b34f2d4d7c3ed66f931fe599e1a531b42af9b"}, + {file = "pendulum-2.1.2-cp36-cp36m-macosx_10_15_x86_64.whl", hash = "sha256:c501749fdd3d6f9e726086bf0cd4437281ed47e7bca132ddb522f86a1645d360"}, + {file = "pendulum-2.1.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:c807a578a532eeb226150d5006f156632df2cc8c5693d778324b43ff8c515dd0"}, + {file = "pendulum-2.1.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:2d1619a721df661e506eff8db8614016f0720ac171fe80dda1333ee44e684087"}, + {file = "pendulum-2.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:f888f2d2909a414680a29ae74d0592758f2b9fcdee3549887779cd4055e975db"}, + {file = "pendulum-2.1.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:e95d329384717c7bf627bf27e204bc3b15c8238fa8d9d9781d93712776c14002"}, + {file = "pendulum-2.1.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:4c9c689747f39d0d02a9f94fcee737b34a5773803a64a5fdb046ee9cac7442c5"}, + {file = "pendulum-2.1.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:1245cd0075a3c6d889f581f6325dd8404aca5884dea7223a5566c38aab94642b"}, + {file = "pendulum-2.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:db0a40d8bcd27b4fb46676e8eb3c732c67a5a5e6bfab8927028224fbced0b40b"}, + {file = "pendulum-2.1.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:f5e236e7730cab1644e1b87aca3d2ff3e375a608542e90fe25685dae46310116"}, + {file = "pendulum-2.1.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:de42ea3e2943171a9e95141f2eecf972480636e8e484ccffaf1e833929e9e052"}, + {file = "pendulum-2.1.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7c5ec650cb4bec4c63a89a0242cc8c3cebcec92fcfe937c417ba18277d8560be"}, + {file = "pendulum-2.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:33fb61601083f3eb1d15edeb45274f73c63b3c44a8524703dc143f4212bf3269"}, + {file = "pendulum-2.1.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:29c40a6f2942376185728c9a0347d7c0f07905638c83007e1d262781f1e6953a"}, + {file = "pendulum-2.1.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:94b1fc947bfe38579b28e1cccb36f7e28a15e841f30384b5ad6c5e31055c85d7"}, + {file = "pendulum-2.1.2.tar.gz", hash = "sha256:b06a0ca1bfe41c990bbf0c029f0b6501a7f2ec4e38bfec730712015e8860f207"}, +] pexpect = [ {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"}, {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"}, @@ -1600,101 +1735,36 @@ pickleshare = [ {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, ] -pineappl = [ - {file = "pineappl-0.5.4-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:2bfb0ed75b07f01fd1fc7d962889c71b002c1fe51677c0ff117c3191b96d7875"}, - {file = "pineappl-0.5.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42bbdc878986a92f69a7770fa75f3e8da0b93840673555cf26a241dafbdb0c5c"}, - {file = "pineappl-0.5.4-cp310-none-win_amd64.whl", hash = "sha256:104acbd4c8dac385891c063a5922a0808e72e2774b01fbce5bdda99beceb0f2d"}, - {file = "pineappl-0.5.4-cp37-cp37m-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:62c06dfbbb01e25833067f7883f4783780a984a8631aa07e823903cdc4e939d6"}, - {file = "pineappl-0.5.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fb96be27e305c8f8428ed32d8fb71c3db1d13f3821f59fa241e36cbd4d1b2e0"}, - {file = "pineappl-0.5.4-cp37-none-win_amd64.whl", hash = "sha256:049b532bab81295d65340ab65da8188c37553887a7d2f6b95e9e34165dbe62b7"}, - {file = "pineappl-0.5.4-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:925027e5d6fa61fff1d624ac5182c3313b65a1d67c91bc3e51ff40a6c3028a8a"}, - {file = "pineappl-0.5.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9418b1c8c8f852670ce801c9345d0d7e6c4846582b302017813f0064cb0a5a5c"}, - {file = "pineappl-0.5.4-cp38-none-win_amd64.whl", hash = "sha256:40ddb8cbb8fb5371194866eaf5d48a93ebd1f0aa8fdc6dd163f37cf1cf83f34e"}, - {file = "pineappl-0.5.4-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:f612f606819d5bea4ec441a3baf0944efd6718e62e7eed98ef67b22ec38da862"}, - {file = "pineappl-0.5.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0bfe1cb19bde26922b876b7db431b9d409234db8d2e7bd7a40820e0089009a5b"}, - {file = "pineappl-0.5.4-cp39-none-win_amd64.whl", hash = "sha256:0f0d4fb2a9f398e50637940d788473ca829ff950a040a9c18a0b5d1e6ee2e378"}, - {file = "pineappl-0.5.4-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf52401750afe6c86e12baed3184f83f149da7b0142341f2d31ff6f8182b1f00"}, - {file = "pineappl-0.5.4.tar.gz", hash = "sha256:a5edf9e0fe6e49ac6cecc85ba5652624c50983e9200a41848cf597836dcbbeac"}, -] -pkgconfig = [ - {file = "pkgconfig-1.5.5-py3-none-any.whl", hash = "sha256:d20023bbeb42ee6d428a0fac6e0904631f545985a10cdd71a20aa58bc47a4209"}, - {file = "pkgconfig-1.5.5.tar.gz", hash = "sha256:deb4163ef11f75b520d822d9505c1f462761b4309b1bb713d08689759ea8b899"}, -] -platformdirs = [ - {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, - {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, -] -pluggy = [ - {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, - {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, -] -prompt-toolkit = [ - {file = "prompt_toolkit-3.0.30-py3-none-any.whl", hash = "sha256:d8916d3f62a7b67ab353a952ce4ced6a1d2587dfe9ef8ebc30dd7c386751f289"}, - {file = "prompt_toolkit-3.0.30.tar.gz", hash = "sha256:859b283c50bde45f5f97829f77a4674d1c1fcd88539364f1b28a37805cfd89c0"}, -] +pillow = [] +pineappl = [] +pkgconfig = [] +platformdirs = [] +pluggy = [] +prompt-toolkit = [] ptyprocess = [ {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, ] +pure-eval = [ + {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, + {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, +] py = [ {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, ] -pybtex = [ - {file = "pybtex-0.24.0-py2.py3-none-any.whl", hash = "sha256:e1e0c8c69998452fea90e9179aa2a98ab103f3eed894405b7264e517cc2fcc0f"}, - {file = "pybtex-0.24.0.tar.gz", hash = "sha256:818eae35b61733e5c007c3fcd2cfb75ed1bc8b4173c1f70b56cc4c0802d34755"}, -] -pybtex-docutils = [ - {file = "pybtex-docutils-1.0.2.tar.gz", hash = "sha256:43aa353b6d498fd5ac30f0073a98e332d061d34fe619d3d50d1761f8fd4aa016"}, - {file = "pybtex_docutils-1.0.2-py3-none-any.whl", hash = "sha256:6f9e3c25a37bcaac8c4f69513272706ec6253bb708a93d8b4b173f43915ba239"}, -] +pybtex = [] +pybtex-docutils = [] pycparser = [ {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, ] -pygit2 = [ - {file = "pygit2-1.9.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6e7f56bf5338ec79e7521204ddf4f6848cd2ccd1de4ea8b2c0af163ed4b08ade"}, - {file = "pygit2-1.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:487ae81134b44b1e0173b3e9a478f93f18c1c22d53241d1fc8047e400094582b"}, - {file = "pygit2-1.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f84826586d5e7f32e560d0d55fd35484cebd49fefccfe8a3727bd4b7c4788b92"}, - {file = "pygit2-1.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81e1d25b2a0be1a8cd7d4131fe5af8efddc7015f522638e2c53fe820800e4de6"}, - {file = "pygit2-1.9.2-cp310-cp310-win32.whl", hash = "sha256:d52113184c38455bbc9576003054311d8c283a547a12790baf0210ccfd0cc90f"}, - {file = "pygit2-1.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:5f038afaeaf5cd1fa35ae02073f42558eb7daf6cbc57cdc41e5ee9dfdad6a653"}, - {file = "pygit2-1.9.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:14b51a909debdfdaa7757a581a1c6f6d1a5b150870da68881d3bd9d5b94842c7"}, - {file = "pygit2-1.9.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:308ce00e8a1f8d8dc3858b3e21f0ea701cdde675966aea68fcccf559cb5e9577"}, - {file = "pygit2-1.9.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6724885e4a31a843fd6d7d6cd90baef5c61a774d222fabbe39505c0b3dd2c55b"}, - {file = "pygit2-1.9.2-cp37-cp37m-win32.whl", hash = "sha256:eb2d916ec03c1dda7ab04506d42ef2c0bac2590827c5d15fec49b67f39f02704"}, - {file = "pygit2-1.9.2-cp37-cp37m-win_amd64.whl", hash = "sha256:ebe0b2371fe4d91adc5014cc94dc85497bec6a5e1e557856bb45f586e31519bd"}, - {file = "pygit2-1.9.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9bfd9d089942482ca0b5f426396b76fb86b25ca3414546388d8cfa8824ab1188"}, - {file = "pygit2-1.9.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:871682c3a910d71cc8bf6f8be4474085bf3eb27864a090f2132f6fa50fe2eb30"}, - {file = "pygit2-1.9.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe3eec281222c5778eed6a4185d0442a7d7aaac552039359d5ec4c5b8737baa3"}, - {file = "pygit2-1.9.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cef5b08544b895a75ed7908ca6c0d730b890ffeba7f2b46e5c8aec458786802"}, - {file = "pygit2-1.9.2-cp38-cp38-win32.whl", hash = "sha256:0a0aaadca823c2e6d1f6319190f53c55c8323a810a1d1117e378e907c98cf613"}, - {file = "pygit2-1.9.2-cp38-cp38-win_amd64.whl", hash = "sha256:55593d734a30e824f9136e0afcd15b287125ef41dac7833f564da454ba0969d0"}, - {file = "pygit2-1.9.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:da12d67bdb43736e3bd6464623e8aff06796527ea8525f65b76a776f26c7fa24"}, - {file = "pygit2-1.9.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8a5bf52fb75dc2d2da814996b8006559d0b57b573775f757a1997f89eabfdb0a"}, - {file = "pygit2-1.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a1ebd104105cc56ae2ba100090228a4db8cbeb7a480e8657a803d674331b82d"}, - {file = "pygit2-1.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0c18ed4ce7f06e6885ab01f1b1f80468e09d1bd72265e14575be0b44a581ae7"}, - {file = "pygit2-1.9.2-cp39-cp39-win32.whl", hash = "sha256:d2cb8571cd02acf739b26d2c2bb4828f7cfb4e23b564d6c4442bffe8714ec8e5"}, - {file = "pygit2-1.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:75a95ddab5d256c35377a2892bd5f5f3121552c3ae9af9b06eaa7ac426220d22"}, - {file = "pygit2-1.9.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bf160b3653168e5d11e6de9589018db55ef51a0859bf4a3719aa8cc0998c584e"}, - {file = "pygit2-1.9.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:084bc622205b6f495a0c7e6d8dde9a2e42967bd6b8e16e28d21725dbcc837e1a"}, - {file = "pygit2-1.9.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3068375e81a473d01d23d86abc5e978bac7bd277a91538416d31e06d0e97402f"}, - {file = "pygit2-1.9.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3f737e8eb42a818de2e604bfca125e79e3f386e8b77cceb1fe881f7603c378c2"}, - {file = "pygit2-1.9.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:490d6ba5ae4a539d147644e9ce20a2c5dd55dd3ea177cec78971b7422c0540d4"}, - {file = "pygit2-1.9.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6198c1010af273d91c182997693d61b2d00edeecdef9c39beef711568bec984"}, - {file = "pygit2-1.9.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8cdf963725b1f6bfad12a9238a421587af682164d90b3d5a81224d4a112ed4f6"}, - {file = "pygit2-1.9.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4625e8957b9e7e72a300d42e27e5392ac449517397fb22045b8c3e468f4b6f06"}, - {file = "pygit2-1.9.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b6d7b3613ef8358f24d32e4a1ef976218e351e84953c474d1fa1d29b28484db"}, - {file = "pygit2-1.9.2.tar.gz", hash = "sha256:20894433df1146481aacae37e2b0f3bbbfdea026db2f55061170bd9823e40b19"}, -] +pygit2 = [] pygments = [ {file = "Pygments-2.12.0-py3-none-any.whl", hash = "sha256:dc9c10fb40944260f6ed4c688ece0cd2048414940f1cea51b8b226318411c519"}, {file = "Pygments-2.12.0.tar.gz", hash = "sha256:5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb"}, ] -pylint = [ - {file = "pylint-2.14.5-py3-none-any.whl", hash = "sha256:fabe30000de7d07636d2e82c9a518ad5ad7908590fe135ace169b44839c15f90"}, - {file = "pylint-2.14.5.tar.gz", hash = "sha256:487ce2192eee48211269a0e976421f334cf94de1806ca9d0a99449adcdf0285e"}, -] +pylint = [] pyparsing = [ {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, @@ -1707,10 +1777,7 @@ pyreadline = [ pyrepl = [ {file = "pyrepl-0.9.0.tar.gz", hash = "sha256:292570f34b5502e871bbb966d639474f2b57fbfcd3373c2d6a2f3d56e681a775"}, ] -pytest = [ - {file = "pytest-5.4.3-py3-none-any.whl", hash = "sha256:5c0db86b698e8f170ba4582a492248919255fcd4c79b1ee64ace34301fb589a1"}, - {file = "pytest-5.4.3.tar.gz", hash = "sha256:7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8"}, -] +pytest = [] 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"}, @@ -1719,6 +1786,10 @@ pytz = [ {file = "pytz-2022.1-py2.py3-none-any.whl", hash = "sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c"}, {file = "pytz-2022.1.tar.gz", hash = "sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7"}, ] +pytzdata = [ + {file = "pytzdata-2020.1-py2.py3-none-any.whl", hash = "sha256:e1e14750bcf95016381e4d472bad004eef710f2d6417240904070b3d6654485f"}, + {file = "pytzdata-2020.1.tar.gz", hash = "sha256:3efa13b335a00a8de1d345ae41ec78dd11c9f8807f522d39850f2dd828681540"}, +] 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"}, @@ -1754,10 +1825,7 @@ pyyaml = [ {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, ] -requests = [ - {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, - {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, -] +requests = [] rich = [ {file = "rich-10.16.2-py3-none-any.whl", hash = "sha256:c59d73bd804c90f747c8d7b1d023b88f2a9ac2454224a4aeaf959b21eeb42d03"}, {file = "rich-10.16.2.tar.gz", hash = "sha256:720974689960e06c2efdb54327f8bf0cdbdf4eae4ad73b6c94213cad405c371b"}, @@ -1787,74 +1855,32 @@ scipy = [ {file = "scipy-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:9dd4012ac599a1e7eb63c114d1eee1bcfc6dc75a29b589ff0ad0bb3d9412034f"}, {file = "scipy-1.8.1.tar.gz", hash = "sha256:9e3fb1b0e896f14a85aa9a28d5f755daaeeb54c897b746df7a55ccb02b340f33"}, ] +setuptools-scm = [] six = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] -snowballstemmer = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] -sphinx = [ - {file = "Sphinx-4.5.0-py3-none-any.whl", hash = "sha256:ebf612653238bcc8f4359627a9b7ce44ede6fdd75d9d30f68255c7383d3a6226"}, - {file = "Sphinx-4.5.0.tar.gz", hash = "sha256:7bf8ca9637a4ee15af412d1a1d9689fec70523a68ca9bb9127c2f3eeb344e2e6"}, -] -sphinx-rtd-theme = [ - {file = "sphinx_rtd_theme-1.0.0-py2.py3-none-any.whl", hash = "sha256:4d35a56f4508cfee4c4fb604373ede6feae2a306731d533f409ef5c3496fdbd8"}, - {file = "sphinx_rtd_theme-1.0.0.tar.gz", hash = "sha256:eec6d497e4c2195fa0e8b2016b337532b8a699a68bcb22a512870e16925c6a5c"}, -] -sphinxcontrib-applehelp = [ - {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, - {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, -] -sphinxcontrib-bibtex = [ - {file = "sphinxcontrib-bibtex-2.4.2.tar.gz", hash = "sha256:65b023ee47f35f1f03ac4d71c824e67c624c7ecac1bb26e83623271a01f9da86"}, - {file = "sphinxcontrib_bibtex-2.4.2-py3-none-any.whl", hash = "sha256:608512afde6b732148cdc9123550bd560bf48e071d1fb7bb1bab4f4437ff04f4"}, -] -sphinxcontrib-devhelp = [ - {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, - {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, -] -sphinxcontrib-htmlhelp = [ - {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, - {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, -] -sphinxcontrib-jsmath = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] -sphinxcontrib-qthelp = [ - {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, - {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, -] -sphinxcontrib-serializinghtml = [ - {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, - {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, -] +snowballstemmer = [] +sphinx = [] +sphinx-rtd-theme = [] +sphinxcontrib-applehelp = [] +sphinxcontrib-bibtex = [] +sphinxcontrib-devhelp = [] +sphinxcontrib-htmlhelp = [] +sphinxcontrib-jsmath = [] +sphinxcontrib-qthelp = [] +sphinxcontrib-serializinghtml = [] +sqlalchemy = [] +stack-data = [] tomli = [ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] -tomlkit = [ - {file = "tomlkit-0.11.1-py3-none-any.whl", hash = "sha256:1c5bebdf19d5051e2e1de6cf70adfc5948d47221f097fcff7a3ffc91e953eaf5"}, - {file = "tomlkit-0.11.1.tar.gz", hash = "sha256:61901f81ff4017951119cd0d1ed9b7af31c821d6845c8c477587bbdcd5e5854e"}, -] -tqdm = [ - {file = "tqdm-4.64.0-py2.py3-none-any.whl", hash = "sha256:74a2cdefe14d11442cedf3ba4e21a3b84ff9a2dbdc6cfae2c34addb2a14a5ea6"}, - {file = "tqdm-4.64.0.tar.gz", hash = "sha256:40be55d30e200777a307a7585aee69e4eabb46b4ec6a4b4a5f2d9f11e7d5408d"}, -] -traitlets = [ - {file = "traitlets-5.3.0-py3-none-any.whl", hash = "sha256:65fa18961659635933100db8ca120ef6220555286949774b9cfc106f941d1c7a"}, - {file = "traitlets-5.3.0.tar.gz", hash = "sha256:0bb9f1f9f017aa8ec187d8b1b2a7a6626a2a1d877116baba52a129bfa124f8e2"}, -] -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"}, -] -urllib3 = [ - {file = "urllib3-1.26.10-py2.py3-none-any.whl", hash = "sha256:8298d6d56d39be0e3bc13c1c97d133f9b45d797169a0e11cdd0e0489d786f7ec"}, - {file = "urllib3-1.26.10.tar.gz", hash = "sha256:879ba4d1e89654d9769ce13121e0f94310ea32e8d2f8cf587b77c08bbcdb30d6"}, -] +tomlkit = [] +tqdm = [] +traitlets = [] +typing-extensions = [] +urllib3 = [] wcwidth = [ {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, @@ -1928,11 +1954,5 @@ wrapt = [ {file = "wrapt-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:dee60e1de1898bde3b238f18340eec6148986da0455d8ba7848d50470a7a32fb"}, {file = "wrapt-1.14.1.tar.gz", hash = "sha256:380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d"}, ] -yadism = [ - {file = "yadism-0.11.2-py3-none-any.whl", hash = "sha256:108e14cad6ba24dcfc37743399d98fc726f91a8056080ef9887a1911aafef078"}, - {file = "yadism-0.11.2.tar.gz", hash = "sha256:760b31ab27fcaa681329aea51f42bb655bc50b42392761ac89cc48d0f84b3c1f"}, -] -zipp = [ - {file = "zipp-3.8.1-py3-none-any.whl", hash = "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009"}, - {file = "zipp-3.8.1.tar.gz", hash = "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2"}, -] +yadism = [] +zipp = [] From 95db07f4d53139762acc8e0ff965d7169dd3dcac Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 22 Jul 2022 16:59:22 +0200 Subject: [PATCH 29/60] Simplify configs --- runcardsrunner/configs.py | 43 ++++++++++++--------------------------- 1 file changed, 13 insertions(+), 30 deletions(-) diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index 0cec1d19..a53ab12a 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -65,9 +65,7 @@ def add_scope(parent, scope_id, scope): else: for key, value in scope.items(): # if already specified, do not override - if key not in newparent[scope_id]: - # else, add the default - newparent[scope_id] = value + newparent[scope_id].setdefault(value) return newparent @@ -78,40 +76,28 @@ def defaults(base_configs): Note ---- The general rule is to never replace user provided input. - """ - configs = copy.deepcopy(base_configs) - configs = add_paths(configs) + """ + configs = add_paths(base_configs) configs = add_commands(configs) return configs def add_paths(configs): - for key, default in dict( - runcards="runcards", - theories="theories", - prefix=".prefix", - results="results", - ).items(): - if key not in configs["paths"]: - configs["paths"][key] = configs["paths"]["root"] / default - elif pathlib.Path(configs["paths"][key]).anchor == "": - configs["paths"][key] = configs["paths"]["root"] / configs["paths"][key] - else: - configs["paths"][key] = pathlib.Path(configs["paths"][key]) - - configs["paths"]["rust_init"] = pathlib.Path(tempfile.mktemp()) - configs = add_prefix_paths(configs) + root = configs["paths"]["root"] - return configs + paths = {} + paths["root"] = root + paths["runcards"] = root / "runcards" + paths["theories"] = root / "theories" + paths["prefix"] = root / ".prefix" + paths["results"] = root / "results" -def add_prefix_paths(configs): - configs = copy.deepcopy(configs) - prefix = configs["paths"]["prefix"] - paths = {} + paths["rust_init"] = pathlib.Path(tempfile.mktemp()) + prefix = paths["prefix"] paths["bin"] = prefix / "bin" paths["lib"] = prefix / "lib" paths["mg5amc"] = prefix / "mg5amc" @@ -120,10 +106,7 @@ def add_prefix_paths(configs): paths["lhapdf"] = prefix / "lhapdf" paths["lhapdf_data_alternative"] = prefix / "share" / "LHAPDF" - prefix_scope = "prefixed" - - configs["paths"] = add_scope(configs["paths"], prefix_scope, paths) - return configs + return add_scope(configs, "paths", paths) def add_commands(configs): From e35f3d36a0469ae102fa6c6cb1d8f8cf4005393f Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 22 Jul 2022 16:59:59 +0200 Subject: [PATCH 30/60] Remove prefixed --- runcardsrunner/configs.py | 2 +- runcardsrunner/external/mg5/__init__.py | 4 ++-- runcardsrunner/install.py | 14 +++++++------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index a53ab12a..5ec73322 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -112,7 +112,7 @@ def add_paths(configs): def add_commands(configs): commands = {} - commands["mg5"] = configs["paths"]["prefixed"]["mg5amc"] / "bin" / "mg5_aMC" + commands["mg5"] = configs["paths"]["mg5amc"] / "bin" / "mg5_aMC" commands["vrap"] = configs["paths"]["prefix"] / "bin" / "Vrap" pineappl = shutil.which("pineappl") commands["pineappl"] = pathlib.Path(pineappl) if pineappl is not None else None diff --git a/runcardsrunner/external/mg5/__init__.py b/runcardsrunner/external/mg5/__init__.py index 02199626..e589019b 100644 --- a/runcardsrunner/external/mg5/__init__.py +++ b/runcardsrunner/external/mg5/__init__.py @@ -207,7 +207,7 @@ def collect_versions(self): versions["mg5amc_revno"] = ( subprocess.run( "brz revno".split(), - cwd=configs.configs["paths"]["prefixed"]["mg5amc"], + cwd=configs.configs["paths"]["mg5amc"], stdout=subprocess.PIPE, ) .stdout.decode() @@ -216,7 +216,7 @@ def collect_versions(self): mg5amc_repo = ( subprocess.run( "brz info".split(), - cwd=configs.configs["paths"]["prefixed"]["mg5amc"], + cwd=configs.configs["paths"]["mg5amc"], stdout=subprocess.PIPE, ) .stdout.decode() diff --git a/runcardsrunner/install.py b/runcardsrunner/install.py index 58d261a2..bba6c9d1 100644 --- a/runcardsrunner/install.py +++ b/runcardsrunner/install.py @@ -30,8 +30,8 @@ def init_prefix(): configs.configs["paths"]["prefix"].mkdir(exist_ok=True) - configs.configs["paths"]["prefixed"]["bin"].mkdir(exist_ok=True) - configs.configs["paths"]["prefixed"]["lib"].mkdir(exist_ok=True) + configs.configs["paths"]["bin"].mkdir(exist_ok=True) + configs.configs["paths"]["lib"].mkdir(exist_ok=True) def mg5amc(): @@ -132,7 +132,7 @@ def cargo(): if cargo_exe is not None: return cargo_exe - cargo_home = configs.configs["paths"]["prefixed"]["cargo"] + cargo_home = configs.configs["paths"]["cargo"] # if there is not a user cargo update environment os.environ["CARGO_HOME"] = str(cargo_home) @@ -267,7 +267,7 @@ def lhapdf_conf(pdf): except PermissionError: pass - lhapdf_data = configs.configs["paths"]["prefixed"]["lhapdf_data_alternative"] + lhapdf_data = configs.configs["paths"]["lhapdf_data_alternative"] lhapdf_data.mkdir(parents=True, exist_ok=True) shutil.copy2( pathlib.Path(__file__).absolute().parent / "confs" / "lhapdf.conf", lhapdf_data @@ -297,7 +297,7 @@ def installed(): return True version = "LHAPDF-6.4.0" - lhapdf_dest = configs.configs["paths"]["prefixed"]["lhapdf"] + lhapdf_dest = configs.configs["paths"]["lhapdf"] lhapdf_tar = lhapdf_dest / (version + ".tar.gz") lhapdf_code = lhapdf_dest / version @@ -333,12 +333,12 @@ def prepend(name, value): os.environ[name] = "" os.environ[name] = str(value) + os.pathsep + os.environ[name] - lib = configs.configs["paths"]["prefixed"]["lib"] + lib = configs.configs["paths"]["lib"] pyver = ".".join(sys.version.split(".")[:2]) prepend( "PYTHONPATH", lib / f"python{pyver}" / "site-packages", ) - prepend("PATH", configs.configs["paths"]["prefixed"]["bin"]) + prepend("PATH", configs.configs["paths"]["bin"]) prepend("LD_LIBRARY_PATH", lib) prepend("PKG_CONFIG_PATH", lib / "pkgconfig") From 8d730782e87b73fedec90de9bf6585b2e43628d8 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 22 Jul 2022 17:17:32 +0200 Subject: [PATCH 31/60] Update .github/CONTRIBUTING.md Co-authored-by: Juan M. Cruz-Martinez --- .github/CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index efd1a5fe..3e7712f9 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -6,7 +6,7 @@ The `runcardsrunner` package is managed by `poetry`. This has been chosen to automate a series of tasks, and to grant reproducible installations maintaining a `poetry.lock` file. -It might happen (frequently) that `poetry` complaints about version +It might happen (frequently) that `poetry` complains about version dependencies, if inconsistent. This is not `poetry`'s fault, and it's a useful -warning that will prevent to just break when installed by a user with a +warning that will prevent to just break when installed by an user with a different environment. From beee0241576d9ca237b1b5e009211900a26d58e1 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 22 Jul 2022 17:18:30 +0200 Subject: [PATCH 32/60] Add explanatory comment --- runcardsrunner.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/runcardsrunner.toml b/runcardsrunner.toml index 3d90ba57..0183d6bc 100644 --- a/runcardsrunner.toml +++ b/runcardsrunner.toml @@ -1,3 +1,4 @@ [paths] +# paths relative to the location of this file runcards = "nnpdf31_proc" results = "results" From 123dd3ffdadcc86fe4d0a5736171ca1b3fe3375f Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 22 Jul 2022 17:22:18 +0200 Subject: [PATCH 33/60] Fix wrong use of setdefault --- runcardsrunner/configs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index 5ec73322..6a1f2003 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -65,7 +65,7 @@ def add_scope(parent, scope_id, scope): else: for key, value in scope.items(): # if already specified, do not override - newparent[scope_id].setdefault(value) + newparent[scope_id].setdefault(key, value) return newparent From 52b85dff0e773cce79eb29304b4236b63002fc0d Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 22 Jul 2022 21:20:13 +0200 Subject: [PATCH 34/60] Move info collection to a single source of truth --- runcardsrunner/cli/info.py | 21 ++++++++++----------- runcardsrunner/cli/run.py | 25 +++++++------------------ runcardsrunner/info.py | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 29 deletions(-) create mode 100644 runcardsrunner/info.py diff --git a/runcardsrunner/cli/info.py b/runcardsrunner/cli/info.py index 32aa898e..2cb24a95 100644 --- a/runcardsrunner/cli/info.py +++ b/runcardsrunner/cli/info.py @@ -4,11 +4,11 @@ import click import rich -from .. import configs, tools -from ..external.yad import is_dis +from .. import configs, info, tools from ._base import command +# Meta-function to generate the group `info` @command.group("info") def subcommand(): """Retrieve information about managed objects.""" @@ -23,26 +23,25 @@ def runcards(datasets, metadata, kind): Obtain information about DATASET runcard. """ - info = {} + # collect requested info in a dictionary + infod = {} for dataset in datasets: dataset = pathlib.Path(dataset).name - info[dataset] = {} + infod[dataset] = {} + datainfo = infod[dataset] path = configs.configs["paths"]["runcards"] / dataset if path.is_dir(): - info[dataset]["path"] = str(path.absolute()) + datainfo["path"] = str(path.absolute()) if metadata: metadata = path / "metadata.txt" with open(metadata, encoding="utf-8") as fd: - info[dataset]["metadata"] = tools.parse_metadata(fd) + datainfo["metadata"] = tools.parse_metadata(fd) if kind: - if is_dis(dataset): - info[dataset]["kind"] = "dis" - else: - info[dataset]["kind"] = "hadronic" + datainfo["kind"] = info.label(dataset).kind.name - rich.print_json(data=info) + rich.print_json(data=infod) diff --git a/runcardsrunner/cli/run.py b/runcardsrunner/cli/run.py index cc892a94..0cbe16cf 100644 --- a/runcardsrunner/cli/run.py +++ b/runcardsrunner/cli/run.py @@ -6,8 +6,8 @@ import rich import yaml -from .. import install, log, table, tools -from ..external import mg5, positivity, vrap, yad +from .. import info, install, log, table, tools +from ..external import mg5 from ._base import command @@ -50,7 +50,7 @@ def main(dataset, theory, pdf): if "-" in dataset: try: dataset, timestamp = dataset.split("-") - except: + except ValueError: raise ValueError( f"'{dataset}' not valid. '-' is only allowed once," " to separate dataset name from timestamp." @@ -58,21 +58,10 @@ def main(dataset, theory, pdf): rich.print(dataset) - if yad.is_dis(dataset): - color = "red" - external = yad.Yadism - elif positivity.is_positivity(dataset): - color = "yellow" - external = positivity.Positivity - elif vrap.is_vrap(dataset): - color = "green" - external = vrap.Vrap - else: - color = "blue" - external = mg5.Mg5 - - rich.print(f"Computing [{color}]{dataset}[/]...") - runner = external(dataset, theory, pdf, timestamp=timestamp) + datainfo = info.label(dataset) + + rich.print(f"Computing [{datainfo.color}]{dataset}[/]...") + runner = datainfo.external(dataset, theory, pdf, timestamp=timestamp) install_reqs(runner, pdf) run_dataset(runner) diff --git a/runcardsrunner/info.py b/runcardsrunner/info.py new file mode 100644 index 00000000..52998b7b --- /dev/null +++ b/runcardsrunner/info.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +import dataclasses +import enum +import typing + +from .external import interface, mg5, positivity, vrap, yad + + +class Kind(enum.Enum): + dis = enum.auto() + positivity = enum.auto() + ftdy = enum.auto() + hadronic = enum.auto() + + +@dataclasses.dataclass +class Info: + color: str + external: typing.Type[interface.External] + kind: Kind + + +def label(dataset: str) -> Info: + if yad.is_dis(set): + return Info(color="red", external=yad.Yadism, kind=Kind.dis) + if positivity.is_positivity(dataset): + return Info( + color="yellow", external=positivity.Positivity, kind=Kind.positivity + ) + if vrap.is_vrap(dataset): + return Info(color="green", external=vrap.Vrap, kind=Kind.ftdy) + + return Info(color="blue", external=mg5.Mg5, kind=Kind.hadronic) From 30841457154b97d8441c6620c86366b4a6f00e72 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 22 Jul 2022 21:27:53 +0200 Subject: [PATCH 35/60] Add runcardsrunner version to those annotated --- runcardsrunner/external/interface.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/runcardsrunner/external/interface.py b/runcardsrunner/external/interface.py index a1b0a731..1cb266e2 100644 --- a/runcardsrunner/external/interface.py +++ b/runcardsrunner/external/interface.py @@ -6,7 +6,7 @@ import pygit2 -from .. import configs, tools +from .. import __version__, configs, tools class External(abc.ABC): @@ -107,12 +107,11 @@ def collect_versions(self) -> dict: def annotate_versions(self): """Add version informations as meta data.""" results_log = self.dest / "results.log" - # TODO: add pineappl version - # pineappl = configs.configs["commands"]["pineappl"]() versions = self.collect_versions() - # TODO: replace with __version__? - # maybe check if it is a repository or not + # the rr version will also pin pineappl_py version and all the other + # python dependencies versions + versions["rr"] = __version__ versions["runcard_gitversion"] = pygit2.Repository( configs.configs["paths"]["root"] ).describe( @@ -121,6 +120,9 @@ def annotate_versions(self): dirty_suffix="-dirty", show_commit_oid_as_fallback=True, ) + # TODO: add pineappl version + # pineappl = configs.configs["commands"]["pineappl"]() + versions["pineappl_capi"] = "???" entries = {} entries.update(versions) From 0fda593c6066b988f90a8ce5ea21b9da6d716352 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 22 Jul 2022 21:29:15 +0200 Subject: [PATCH 36/60] Update runcardsrunner/configs.py Co-authored-by: Juan M. Cruz-Martinez --- runcardsrunner/configs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index 6a1f2003..c0057dd4 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -9,7 +9,7 @@ import tomli name = "runcardsrunner.toml" -"Name of the config while (wherever it is placed)" +"""Name of the config while (wherever it is placed)""" def detect(path=None): From 68ae28c8b56c04083b73df63ccd7205676ed0dec Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 22 Jul 2022 21:34:25 +0200 Subject: [PATCH 37/60] Return correct info for missing datasets --- runcardsrunner/cli/info.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/runcardsrunner/cli/info.py b/runcardsrunner/cli/info.py index 2cb24a95..eab5aa4c 100644 --- a/runcardsrunner/cli/info.py +++ b/runcardsrunner/cli/info.py @@ -22,19 +22,23 @@ def runcards(datasets, metadata, kind): """Inspect runcards. Obtain information about DATASET runcard. + """ # collect requested info in a dictionary infod = {} for dataset in datasets: + # if does not contain `/`, it is just an identity dataset = pathlib.Path(dataset).name - infod[dataset] = {} - datainfo = infod[dataset] - path = configs.configs["paths"]["runcards"] / dataset - if path.is_dir(): - datainfo["path"] = str(path.absolute()) + if not path.is_dir(): + # if not found, set empty and keep going with the others + infod[dataset] = None + continue + + infod[dataset] = dict(path=str(path.absolute())) + datainfo = infod[dataset] if metadata: metadata = path / "metadata.txt" From 90287398779c673be2d915f70fdf5a9a7d4e6391 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 22 Jul 2022 21:42:04 +0200 Subject: [PATCH 38/60] Document configs main functions --- runcardsrunner/configs.py | 40 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index c0057dd4..0ff4dd5d 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -1,9 +1,11 @@ # -*- coding: utf-8 -*- import copy +import os import pathlib import shutil import tempfile import warnings +from typing import Optional import appdirs import tomli @@ -12,7 +14,25 @@ """Name of the config while (wherever it is placed)""" -def detect(path=None): +def detect(path: Optional[os.PathLike] = None) -> pathlib.Path: + """Detect configuration files. + + Parameters + ---------- + path: os.PathLike or None + optional explicit path to file to be used as configs (default: `None`) + + Returns + ------- + pathlib.Path + configuration file path + + Raises + ------ + FileNotFoundError + in case no valid configuration file is found + + """ paths = [] if path is not None: @@ -36,7 +56,23 @@ def detect(path=None): raise FileNotFoundError("No configurations file detected.") -def load(path=None): +def load(path: Optional[os.PathLike] = None) -> dict: + """Load configuration file. + + If no path is explicitly passed, a minimal configuration is used instead + (just setting root folder to the current one). + + Parameters + ---------- + path: os.PathLike or None + the path to the configuration file (default: `None`) + + Returns + ------- + dict + loaded configurations + + """ if path is None: warnings.warn("Using default minimal configuration ('root = $PWD').") return {"paths": {"root": pathlib.Path.cwd()}} From c70aa14c17cf8fc2b6c9f68fd957a704f3f98863 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 22 Jul 2022 21:45:08 +0200 Subject: [PATCH 39/60] Use consistent naming scheme for constant --- runcardsrunner/configs.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index 0ff4dd5d..2beb6cc5 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -10,9 +10,12 @@ import appdirs import tomli -name = "runcardsrunner.toml" +NAME = "runcardsrunner.toml" """Name of the config while (wherever it is placed)""" +configs = {} +"Holds loaded configurations" + def detect(path: Optional[os.PathLike] = None) -> pathlib.Path: """Detect configuration files. @@ -45,7 +48,7 @@ def detect(path: Optional[os.PathLike] = None) -> pathlib.Path: paths.append(pathlib.Path(appdirs.site_config_dir())) for p in paths: - configs_file = p / name if p.is_dir() else p + configs_file = p / NAME if p.is_dir() else p if configs_file.is_file(): return configs_file @@ -86,11 +89,6 @@ def load(path: Optional[os.PathLike] = None) -> dict: return loaded -# better to declare immediately the correct type -configs = {} -"Holds loaded configurations" - - def add_scope(parent, scope_id, scope): "Do not override." newparent = copy.deepcopy(parent) From e43312c70147d9caa1b296a2b1ca89287184090d Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 22 Jul 2022 21:51:22 +0200 Subject: [PATCH 40/60] Remove auto detection of system wide configs --- runcardsrunner/configs.py | 1 - 1 file changed, 1 deletion(-) diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index 2beb6cc5..b50fa785 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -45,7 +45,6 @@ def detect(path: Optional[os.PathLike] = None) -> pathlib.Path: paths.append(pathlib.Path.cwd()) paths.append(pathlib.Path.home()) paths.append(pathlib.Path(appdirs.user_config_dir())) - paths.append(pathlib.Path(appdirs.site_config_dir())) for p in paths: configs_file = p / NAME if p.is_dir() else p From 410ef1b54a574f5964eb16bb54997e45086b56db Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Fri, 22 Jul 2022 22:04:31 +0200 Subject: [PATCH 41/60] Lift executable testing to global function --- runcardsrunner/install.py | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/runcardsrunner/install.py b/runcardsrunner/install.py index bba6c9d1..c00107b3 100644 --- a/runcardsrunner/install.py +++ b/runcardsrunner/install.py @@ -15,16 +15,16 @@ from . import configs, tools from .external import vrap -mg5_repo = "lp:~maddevelopers/mg5amcnlo/3.3.1" +MG5_REPO = "lp:~maddevelopers/mg5amcnlo/3.3.1" "bazaar/breeze repo location for MG5aMC\\@NLO" -mg5_convert = """ +MG5_CONVERT = """ set auto_convert_model True import model loop_qcd_qed_sm_Gmu quit """ "instructions to set the correct model for MG5aMC\\@NLO" -pineappl_repo = "https://github.com/N3PDF/pineappl.git" +PINEAPPL_REPO = "https://github.com/N3PDF/pineappl.git" "git repo location for pineappl" @@ -34,6 +34,12 @@ def init_prefix(): configs.configs["paths"]["lib"].mkdir(exist_ok=True) +def is_exe(command: os.PathLike) -> bool: + """Check if given path exists and is executable.""" + command = pathlib.Path(command) + return command.exists() and os.access(command, os.X_OK) + + def mg5amc(): """Initialize `MadGraph5_aMC\\@NLO `_. @@ -45,13 +51,7 @@ def mg5amc(): """ mg5 = configs.configs["commands"]["mg5"] - # define availability condition - - def condition(): - return mg5.exists() and os.access(mg5, os.X_OK) - - # immediately test it - if condition(): + if is_exe(mg5): print("✓ Found mg5amc") return True @@ -59,14 +59,14 @@ def condition(): # download madgraph in prefix (if not present) subprocess.run( - f"brz branch {mg5_repo} {configs.configs['paths']['prefixed']['mg5amc']}".split() + f"brz branch {MG5_REPO} {configs.configs['paths']['prefixed']['mg5amc']}".split() ) # in case we're using python3, we need to convert the model file - subprocess.run(f"{mg5}", input=mg5_convert, encoding="ascii") + subprocess.run(f"{mg5}", input=MG5_CONVERT, encoding="ascii") # retest availability - return condition() + return is_exe(mg5) def hawaiian_vrap(): @@ -78,13 +78,9 @@ def hawaiian_vrap(): bool whether vrap is now installed """ + vrapx = configs.configs["paths"]["vrap"] - def condition(): - return configs.configs["paths"]["vrap"].exists() and os.access( - configs.configs["paths"]["vrap"], os.X_OK - ) - - if condition(): + if is_exe(vrapx): print("✓ Found vrap") return True @@ -112,7 +108,7 @@ def condition(): ) subprocess.run(["make", "install"], cwd=build_dir, check=True) - return condition() + return is_exe(vrapx) def cargo(): @@ -192,7 +188,7 @@ def cli_installed(): tools.git_pull(repo) except pygit2.GitError: repo = pygit2.clone_repository( - pineappl_repo, configs.configs["paths"]["pineappl"] + PINEAPPL_REPO, configs.configs["paths"]["pineappl"] ) cargo_exe = cargo() From 947bd389ca80849ada22c1b5b238a1d63a601ba0 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Sat, 23 Jul 2022 18:52:23 +0200 Subject: [PATCH 42/60] Implement nested update, give up on dedicate scope update --- runcardsrunner/configs.py | 56 +++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 23 deletions(-) diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index b50fa785..28509749 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -import copy import os import pathlib import shutil @@ -88,19 +87,28 @@ def load(path: Optional[os.PathLike] = None) -> dict: return loaded -def add_scope(parent, scope_id, scope): - "Do not override." - newparent = copy.deepcopy(parent) - # if the id not present, append the scope all at once - if scope_id not in newparent: - newparent[scope_id] = scope - # if the id already present, preserve existing values - else: - for key, value in scope.items(): - # if already specified, do not override - newparent[scope_id].setdefault(key, value) +def nestupdate(base: dict, update: dict): + """Merge nested dictionaries. - return newparent + Pay attention, `base` will be mutated in place. + + Parameters + ---------- + base: dict + dictionary to be updated + update: dict + dictionary containing update + + """ + for key, val in update.items(): + oldval = base[key] + + if isinstance(val, dict): + if not isinstance(oldval, dict): + raise ValueError() + base[key] = nestupdate(oldval, val) + else: + base[key] = val def defaults(base_configs): @@ -111,15 +119,17 @@ def defaults(base_configs): The general rule is to never replace user provided input. """ - configs = add_paths(base_configs) - configs = add_commands(configs) + configs = {} - return configs + configs["paths"] = add_paths(base_configs["paths"]["root"]) + configs["commands"] = add_commands(configs["paths"]) + nestupdate(configs, base_configs) + + return configs -def add_paths(configs): - root = configs["paths"]["root"] +def add_paths(root): paths = {} paths["root"] = root @@ -139,15 +149,15 @@ def add_paths(configs): paths["lhapdf"] = prefix / "lhapdf" paths["lhapdf_data_alternative"] = prefix / "share" / "LHAPDF" - return add_scope(configs, "paths", paths) + return paths -def add_commands(configs): +def add_commands(paths): commands = {} - commands["mg5"] = configs["paths"]["mg5amc"] / "bin" / "mg5_aMC" - commands["vrap"] = configs["paths"]["prefix"] / "bin" / "Vrap" + commands["mg5"] = paths["mg5amc"] / "bin" / "mg5_aMC" + commands["vrap"] = paths["prefix"] / "bin" / "Vrap" pineappl = shutil.which("pineappl") commands["pineappl"] = pathlib.Path(pineappl) if pineappl is not None else None - return add_scope(configs, "commands", commands) + return commands From 5773ac9db60f992e2125359b7ef0e429c9003af2 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Sat, 23 Jul 2022 19:30:49 +0200 Subject: [PATCH 43/60] Properly document the most simplified nested logic --- runcardsrunner/cli/_base.py | 3 +++ runcardsrunner/configs.py | 47 ++++++++++++++++++++++++++++++------- 2 files changed, 41 insertions(+), 9 deletions(-) diff --git a/runcardsrunner/cli/_base.py b/runcardsrunner/cli/_base.py index 587a4709..418c4b2b 100644 --- a/runcardsrunner/cli/_base.py +++ b/runcardsrunner/cli/_base.py @@ -27,5 +27,8 @@ def command(cfg): base_configs = configs.load(cfgpath) configs.configs = configs.defaults(base_configs) + + configs.nestupdate(configs.configs, base_configs) + if cfg is not None: print(f"Configurations loaded from '{cfg}'") diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index 28509749..96e9757c 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -91,6 +91,23 @@ def nestupdate(base: dict, update: dict): """Merge nested dictionaries. Pay attention, `base` will be mutated in place. + So the second one will overwrite the first. + + Note + ---- + Modifying in place avoids a lot of copies. + But not being performance intensive, it would be possible to obtain a non + in-place alternative just adding a first line:: + + base = copy.deepcopy(base) + + but it would be called at every recursion (the lots of copies above). + A simpler alternative is just to copy before calling, if needed:: + + mycopy = copy.deepcopy(mydict) + nestupdate(mycopy, update) + + that will make a single copy. Parameters ---------- @@ -100,14 +117,28 @@ def nestupdate(base: dict, update: dict): dictionary containing update """ - for key, val in update.items(): - oldval = base[key] - if isinstance(val, dict): - if not isinstance(oldval, dict): - raise ValueError() - base[key] = nestupdate(oldval, val) - else: + def newval(old, val): + """Build new value. + + If one of the two is not a dictionary, simply use update value `val`. + If they are both dictionaries, start recursion. + + """ + if not isinstance(val, dict) or not isinstance(old, dict): + return val + + nestupdate(old, val) + return old + + # add every value of update into base + for key, val in update.items(): + try: + # attempt to merge update value with old one + old = base[key] + base[key] = newval(old, val) + except KeyError: + # if value did not exist, simply add it base[key] = val @@ -124,8 +155,6 @@ def defaults(base_configs): configs["paths"] = add_paths(base_configs["paths"]["root"]) configs["commands"] = add_commands(configs["paths"]) - nestupdate(configs, base_configs) - return configs From b0d883fcdade57c0440ad513c6fe02ab562b5928 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Sat, 23 Jul 2022 19:39:40 +0200 Subject: [PATCH 44/60] Add note about chainmaps --- runcardsrunner/configs.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index 96e9757c..be9f18f0 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -109,6 +109,21 @@ def nestupdate(base: dict, update: dict): that will make a single copy. + Note + ---- + Another option could appear to be using something like + :class:`collections.ChainMap`. This is a smart way to implement cascade + configurations, but it is not going to support nesting:: + + configs = ChainMap({'a': {'b': 0}}, {'a': {'c': 1}}) + + in this case, even if there is no clash for ``configs['a']['c']``, this + would result in a :class:`KeyError` (since once ``configs['a']`` is + executed, the result is just a normal :class:`dict`, and the first one + encountered). + Any refinement would involve a custom :meth:`__geitem__`, with even more + complicate logic. + Parameters ---------- base: dict From 18b053a56d3c2da4d333eb45f8603d786a264964 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Sat, 23 Jul 2022 20:07:40 +0200 Subject: [PATCH 45/60] Resort defaults loading --- runcardsrunner/cli/_base.py | 12 +++++++++- runcardsrunner/configs.py | 48 ++++++++++++++++++++++++------------- 2 files changed, 43 insertions(+), 17 deletions(-) diff --git a/runcardsrunner/cli/_base.py b/runcardsrunner/cli/_base.py index 418c4b2b..8377103a 100644 --- a/runcardsrunner/cli/_base.py +++ b/runcardsrunner/cli/_base.py @@ -26,9 +26,19 @@ def command(cfg): cfgpath = None base_configs = configs.load(cfgpath) - configs.configs = configs.defaults(base_configs) + configs.configs["paths"] = configs.basic_paths(base_configs["paths"]["root"]) + # update once, to make all paths pathlib objects configs.nestupdate(configs.configs, base_configs) + configs.force_paths() + + # set all the other defaults, they might depend on paths + configs.configs["paths"] = configs.paths(configs.configs["paths"]) + configs.configs["commands"] = configs.commands(configs.configs["paths"]) + + # final update + configs.nestupdate(configs.configs, base_configs) + configs.force_paths() if cfg is not None: print(f"Configurations loaded from '{cfg}'") diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index be9f18f0..6316c03a 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +import copy import os import pathlib import shutil @@ -12,6 +13,9 @@ NAME = "runcardsrunner.toml" """Name of the config while (wherever it is placed)""" +PATHS_SECTIONS = ("paths", "commands") +"""Sections containing only paths""" + configs = {} "Holds loaded configurations" @@ -157,23 +161,12 @@ def newval(old, val): base[key] = val -def defaults(base_configs): - """Provide additional defaults. +def basic_paths(root: pathlib.Path) -> dict: + """Build all defaut independent paths. - Note - ---- - The general rule is to never replace user provided input. + Independent on anything but ``root``. """ - configs = {} - - configs["paths"] = add_paths(base_configs["paths"]["root"]) - configs["commands"] = add_commands(configs["paths"]) - - return configs - - -def add_paths(root): paths = {} paths["root"] = root @@ -184,6 +177,13 @@ def add_paths(root): paths["rust_init"] = pathlib.Path(tempfile.mktemp()) + return paths + + +def paths(paths: dict) -> dict: + """Build all default dependent paths.""" + paths = copy.deepcopy(paths) + prefix = paths["prefix"] paths["bin"] = prefix / "bin" paths["lib"] = prefix / "lib" @@ -196,12 +196,28 @@ def add_paths(root): return paths -def add_commands(paths): +def commands(paths: dict) -> dict: + """Set all default commands.""" commands = {} commands["mg5"] = paths["mg5amc"] / "bin" / "mg5_aMC" commands["vrap"] = paths["prefix"] / "bin" / "Vrap" pineappl = shutil.which("pineappl") - commands["pineappl"] = pathlib.Path(pineappl) if pineappl is not None else None + commands["pineappl"] = ( + pathlib.Path(pineappl) + if pineappl is not None + else paths["prefix"] / "bin" / "pineappl" + ) return commands + + +def force_paths(): + """Convert values in chosen sections to paths.""" + for sec in PATHS_SECTIONS: + # robust to early usage + if sec not in configs: + continue + + for key, val in configs[sec].items(): + configs[sec][key] = pathlib.Path(val).absolute() From 4a790ffeb973b2506f7e7ada5a8017081d828c82 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Sat, 23 Jul 2022 20:12:28 +0200 Subject: [PATCH 46/60] Write configs default in configs example comments --- runcardsrunner.toml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/runcardsrunner.toml b/runcardsrunner.toml index 0183d6bc..1c434428 100644 --- a/runcardsrunner.toml +++ b/runcardsrunner.toml @@ -1,4 +1,18 @@ [paths] -# paths relative to the location of this file +# paths relative to the location of this file runcards = "nnpdf31_proc" results = "results" +# theories = "theories" +# prefix = ".prefix" +# bin = ".prefix/bin" +# lib = ".prefix/lib" +# mg5amc = ".prefix/mg5amc" +# pineappl = ".prefix/pineappl" +# cargo = ".prefix/cargo" +# lhapdf = ".prefix/lhapdf" +# lhapdf_data_alternative = ".prefix/share/LHAPDF" + +[commands] +# mg5 = ".prefix/mg5amc/bin/mg5_aMC" +# vrap = ".prefix/bin/ "Vrap" +# pineappl = ".prefix/bin/pineappl" From 74154cdb953f3c6cf014fec8b11182097a47978d Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Sat, 23 Jul 2022 20:24:33 +0200 Subject: [PATCH 47/60] Add info subcommand, to inspect configs --- runcardsrunner/cli/info.py | 7 ++++++ runcardsrunner/configs.py | 51 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/runcardsrunner/cli/info.py b/runcardsrunner/cli/info.py index eab5aa4c..d6f748a8 100644 --- a/runcardsrunner/cli/info.py +++ b/runcardsrunner/cli/info.py @@ -49,3 +49,10 @@ def runcards(datasets, metadata, kind): datainfo["kind"] = info.label(dataset).kind.name rich.print_json(data=infod) + + +@subcommand.command("configs") +def subconfigs(): + """Inspect loaded configs.""" + + rich.print_json(data=configs.raw(configs.configs)) diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index 6316c03a..efd3058b 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -221,3 +221,54 @@ def force_paths(): for key, val in configs[sec].items(): configs[sec][key] = pathlib.Path(val).absolute() + + +def rawscalar(value): + """Turn scalar into serializable equivalent. + + Available conversions:: + + pathlib.Path -> str + + Parameters + ---------- + value: any + value to convert + + Returns + ------- + any + converted value, if no converter available the original one + + """ + if isinstance(value, pathlib.Path): + return str(value) + + return value + + +def raw(original: dict) -> dict: + """Convert configs (or dict) into serializable equivalent. + + Parameters + ---------- + original: dict + original dictionary to convert + + Returns + ------- + dict + converted dictionary + + See Also + -------- + :func:`rawscalar`, used to convert individual elements + + """ + rawd = copy.deepcopy(original) + + for key, val in rawd.items(): + val = rawscalar(val) + rawd[key] = val if not isinstance(val, dict) else raw(val) + + return rawd From f9e547926e11f3d4816be444273b949579152976 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Sat, 23 Jul 2022 20:37:55 +0200 Subject: [PATCH 48/60] Explain content of config file committed --- runcardsrunner.toml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/runcardsrunner.toml b/runcardsrunner.toml index 1c434428..1cb098ac 100644 --- a/runcardsrunner.toml +++ b/runcardsrunner.toml @@ -1,6 +1,13 @@ +# No configuration value is mandatory, those uncommented are just those needed +# to run with the current repository layourt. +# Not even the file itself is mandatory, if not present, root is simply set to +# $PWD. +# Values specified (both uncommented and commented) are defaults, if not +# explicitly declared to be different. + [paths] # paths relative to the location of this file -runcards = "nnpdf31_proc" +runcards = "nnpdf31_proc" # defaut: "runcards" results = "results" # theories = "theories" # prefix = ".prefix" From 0c5e370897299844ef1206de69a44986379e4e45 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Mon, 25 Jul 2022 11:50:56 +0200 Subject: [PATCH 49/60] Update runcardsrunner.toml Co-authored-by: Felix Hekhorn --- runcardsrunner.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runcardsrunner.toml b/runcardsrunner.toml index 1cb098ac..056a6b99 100644 --- a/runcardsrunner.toml +++ b/runcardsrunner.toml @@ -1,5 +1,5 @@ # No configuration value is mandatory, those uncommented are just those needed -# to run with the current repository layourt. +# to run with the current repository layout. # Not even the file itself is mandatory, if not present, root is simply set to # $PWD. # Values specified (both uncommented and commented) are defaults, if not From 3214c40cf56fb3ff60cc86095d9f42ed5272367f Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Mon, 25 Jul 2022 11:54:30 +0200 Subject: [PATCH 50/60] Update runcardsrunner/info.py Co-authored-by: Juan M. Cruz-Martinez --- runcardsrunner/info.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runcardsrunner/info.py b/runcardsrunner/info.py index 52998b7b..1f1bfddd 100644 --- a/runcardsrunner/info.py +++ b/runcardsrunner/info.py @@ -21,7 +21,7 @@ class Info: def label(dataset: str) -> Info: - if yad.is_dis(set): + if yad.is_dis(dataset): return Info(color="red", external=yad.Yadism, kind=Kind.dis) if positivity.is_positivity(dataset): return Info( From 50baf51b7b5f1b835438646da3174773aaa0a600 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Mon, 25 Jul 2022 12:13:53 +0200 Subject: [PATCH 51/60] Lift LHAPDF version top-level --- runcardsrunner/install.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/runcardsrunner/install.py b/runcardsrunner/install.py index c00107b3..a6220a4b 100644 --- a/runcardsrunner/install.py +++ b/runcardsrunner/install.py @@ -22,10 +22,13 @@ import model loop_qcd_qed_sm_Gmu quit """ -"instructions to set the correct model for MG5aMC\\@NLO" +"Instructions to set the correct model for MG5aMC\\@NLO." PINEAPPL_REPO = "https://github.com/N3PDF/pineappl.git" -"git repo location for pineappl" +"Git repo location for pineappl." + +LHAPDF_VERSION = "LHAPDF-6.4.0" +"Version of LHAPDF to be used by default (if not already available)." def init_prefix(): @@ -292,10 +295,9 @@ def installed(): print("✓ Found lhapdf") return True - version = "LHAPDF-6.4.0" lhapdf_dest = configs.configs["paths"]["lhapdf"] - lhapdf_tar = lhapdf_dest / (version + ".tar.gz") - lhapdf_code = lhapdf_dest / version + lhapdf_tar = lhapdf_dest / (LHAPDF_VERSION + ".tar.gz") + lhapdf_code = lhapdf_dest / LHAPDF_VERSION lhapdf_dest.mkdir(exist_ok=True) with requests.get( From 26a4d9b1cde492dddbdd03cbef3a59c088c34778 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Mon, 25 Jul 2022 12:21:07 +0200 Subject: [PATCH 52/60] Fix configs section for VRAP command --- runcardsrunner/install.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runcardsrunner/install.py b/runcardsrunner/install.py index a6220a4b..e77a01d5 100644 --- a/runcardsrunner/install.py +++ b/runcardsrunner/install.py @@ -81,7 +81,7 @@ def hawaiian_vrap(): bool whether vrap is now installed """ - vrapx = configs.configs["paths"]["vrap"] + vrapx = configs.configs["commands"]["vrap"] if is_exe(vrapx): print("✓ Found vrap") From 4b7054050cb422fe1fca1aa520c8341c8488baf2 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Mon, 25 Jul 2022 12:32:56 +0200 Subject: [PATCH 53/60] Update yadism output --- runcardsrunner/external/yad.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/runcardsrunner/external/yad.py b/runcardsrunner/external/yad.py index d0258067..0674dff6 100644 --- a/runcardsrunner/external/yad.py +++ b/runcardsrunner/external/yad.py @@ -35,6 +35,10 @@ def __init__(self, *args, **kwargs): ) as o: self.obs = yaml.safe_load(o) + @property + def output(self): + return self.grid.with_suffix(".tar") + def run(self): print("Running yadism...") @@ -47,17 +51,17 @@ def run(self): raise log.WhileRedirectedError(file=run_log) # dump output - out.dump_yaml_to_file(self.grid.with_suffix(".yaml")) + out.dump_tar(self.output) def generate_pineappl(self): - out = yadism.output.Output.load_yaml_from_file(self.grid.with_suffix(".yaml")) + out = yadism.output.Output.load_tar(self.output) out.dump_pineappl_to_file( str(self.grid), next(iter(self.obs["observables"].keys())) ) def results(self): pdf = lhapdf.mkPDF(self.pdf) - out = yadism.output.Output.load_yaml_from_file(self.grid.with_suffix(".yaml")) + out = yadism.output.Output.load_tar(self.output) pdf_out = out.apply_pdf_alphas_alphaqed_xir_xif( pdf, lambda muR: lhapdf.mkAlphaS(self.pdf).alphasQ(muR), From 135e912ace3a791d7fad46d1a639aaad42b24805 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Mon, 25 Jul 2022 12:37:45 +0200 Subject: [PATCH 54/60] Simplify gitignore rule for results --- .gitignore | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 280ec9af..8f56b783 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ .prefix/ -# ignore any folder like '-YYYYMMDDHHmmss' -*-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/ +results/ # madgraph junk py.py additional_command From cbf37aec26903c519792eb3c49918a428877ce8f Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Mon, 25 Jul 2022 23:25:02 +0200 Subject: [PATCH 55/60] Update runcardsrunner.toml Co-authored-by: Juan M. Cruz-Martinez --- runcardsrunner.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runcardsrunner.toml b/runcardsrunner.toml index 056a6b99..0783add2 100644 --- a/runcardsrunner.toml +++ b/runcardsrunner.toml @@ -21,5 +21,5 @@ results = "results" [commands] # mg5 = ".prefix/mg5amc/bin/mg5_aMC" -# vrap = ".prefix/bin/ "Vrap" +# vrap = ".prefix/bin/Vrap" # pineappl = ".prefix/bin/pineappl" From cd0aa94f9d2546d174bfd017b61e8445f09e40de Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Mon, 25 Jul 2022 23:25:16 +0200 Subject: [PATCH 56/60] Update runcardsrunner.toml Co-authored-by: Juan M. Cruz-Martinez --- runcardsrunner.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runcardsrunner.toml b/runcardsrunner.toml index 0783add2..40ceb911 100644 --- a/runcardsrunner.toml +++ b/runcardsrunner.toml @@ -7,7 +7,7 @@ [paths] # paths relative to the location of this file -runcards = "nnpdf31_proc" # defaut: "runcards" +runcards = "nnpdf31_proc" # default: "runcards" results = "results" # theories = "theories" # prefix = ".prefix" From bc9ffb8295107b2cac450467aacc41ea90c8f0ad Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Mon, 25 Jul 2022 23:25:40 +0200 Subject: [PATCH 57/60] Update runcardsrunner/configs.py Co-authored-by: Juan M. Cruz-Martinez --- runcardsrunner/configs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index efd3058b..27ab0715 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -162,7 +162,7 @@ def newval(old, val): def basic_paths(root: pathlib.Path) -> dict: - """Build all defaut independent paths. + """Build all default independent paths. Independent on anything but ``root``. From afef4f13c98e43be6175db35375f635ac119a90a Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Wed, 27 Jul 2022 12:27:09 +0200 Subject: [PATCH 58/60] Make root always a path object --- runcardsrunner/configs.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index 27ab0715..127f8e91 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -85,7 +85,9 @@ def load(path: Optional[os.PathLike] = None) -> dict: with open(path, "rb") as fd: loaded = tomli.load(fd) - if "root" not in loaded["paths"]: + try: + loaded["paths"]["root"] = pathlib.Path(loaded["paths"]["root"]) + except KeyError: loaded["paths"]["root"] = pathlib.Path(path).parent return loaded From 297589fa4be0ae59f885e7dd800878ed7bf26cda Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Wed, 27 Jul 2022 12:54:31 +0200 Subject: [PATCH 59/60] Use always root as basis for relative paths --- runcardsrunner/configs.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/runcardsrunner/configs.py b/runcardsrunner/configs.py index 127f8e91..af19bb61 100644 --- a/runcardsrunner/configs.py +++ b/runcardsrunner/configs.py @@ -85,10 +85,25 @@ def load(path: Optional[os.PathLike] = None) -> dict: with open(path, "rb") as fd: loaded = tomli.load(fd) + # ensure root try: - loaded["paths"]["root"] = pathlib.Path(loaded["paths"]["root"]) + root = pathlib.Path(loaded["paths"]["root"]) except KeyError: - loaded["paths"]["root"] = pathlib.Path(path).parent + root = pathlib.Path(path).parent + root = root.absolute() + loaded["paths"]["root"] = root + + # make all paths actual path objects, relative to root, if appropriate + for sec in PATHS_SECTIONS: + # all sections are optional in configs file (while root is filled in any + # case above), thus skip those not present + if sec not in loaded: + continue + + for key, value in loaded[sec].items(): + path = pathlib.Path(value) + # if `path` is absolute, `root` will be simply ignored + loaded[sec][key] = root / path return loaded From f7a38dd37df39d48ba0e4c82071155b54694a4b9 Mon Sep 17 00:00:00 2001 From: Alessandro Candido Date: Wed, 27 Jul 2022 14:24:51 +0200 Subject: [PATCH 60/60] Remove remnant 'prefixed' --- runcardsrunner/install.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runcardsrunner/install.py b/runcardsrunner/install.py index e77a01d5..31f85b51 100644 --- a/runcardsrunner/install.py +++ b/runcardsrunner/install.py @@ -62,7 +62,7 @@ def mg5amc(): # download madgraph in prefix (if not present) subprocess.run( - f"brz branch {MG5_REPO} {configs.configs['paths']['prefixed']['mg5amc']}".split() + f"brz branch {MG5_REPO} {configs.configs['paths']['mg5amc']}".split() ) # in case we're using python3, we need to convert the model file