[[package]] name = "anyio" version = "4.1.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} idna = ">=2.8" sniffio = ">=1.1" [package.extras] doc = ["packaging", "Sphinx (>=7)", "sphinx-rtd-theme", "sphinx-autodoc-typehints (>=1.2.0)"] test = ["anyio", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] trio = ["trio (>=0.23)"] [[package]] name = "appnope" version = "0.1.3" description = "Disable App Nap on macOS >= 10.9" category = "dev" optional = false python-versions = "*" [[package]] name = "argon2-cffi" version = "23.1.0" description = "Argon2 for Python" category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] argon2-cffi-bindings = "*" [package.extras] dev = ["argon2-cffi", "tox (>4)"] docs = ["furo", "myst-parser", "sphinx", "sphinx-copybutton", "sphinx-notfound-page"] tests = ["hypothesis", "pytest"] typing = ["mypy"] [[package]] name = "argon2-cffi-bindings" version = "21.2.0" description = "Low-level CFFI bindings for Argon2" category = "dev" optional = false python-versions = ">=3.6" [package.dependencies] cffi = ">=1.0.1" [package.extras] dev = ["pytest", "cogapp", "pre-commit", "wheel"] tests = ["pytest"] [[package]] name = "arrow" version = "1.3.0" description = "Better dates & times for Python" category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] python-dateutil = ">=2.7.0" types-python-dateutil = ">=2.8.10" [package.extras] doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] test = ["dateparser (>=1.0.0,<2.0.0)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (>=3.0.0,<4.0.0)"] [[package]] name = "asttokens" version = "2.4.1" description = "Annotate AST trees with source code positions" category = "dev" optional = false python-versions = "*" [package.dependencies] six = ">=1.12.0" [package.extras] astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] test = ["pytest", "astroid (>=1,<2)", "astroid (>=2,<4)"] [[package]] name = "async-lru" version = "2.0.4" description = "Simple LRU cache for asyncio" category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} [[package]] name = "attrs" version = "23.1.0" description = "Classes Without Boilerplate" category = "dev" optional = false python-versions = ">=3.7" [package.extras] cov = ["attrs", "coverage[toml] (>=5.3)"] dev = ["attrs", "pre-commit"] docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] tests = ["attrs", "zope-interface"] tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest-mypy-plugins", "pytest-xdist", "pytest (>=4.3.0)"] [[package]] name = "babel" version = "2.13.1" description = "Internationalization utilities" category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] setuptools = {version = "*", markers = "python_version >= \"3.12\""} [package.extras] dev = ["pytest (>=6.0)", "pytest-cov", "freezegun (>=1.0,<2.0)"] [[package]] name = "beautifulsoup4" version = "4.12.2" description = "Screen-scraping library" category = "dev" optional = false python-versions = ">=3.6.0" [package.dependencies] soupsieve = ">1.2" [package.extras] html5lib = ["html5lib"] lxml = ["lxml"] [[package]] name = "bleach" version = "6.1.0" description = "An easy safelist-based HTML-sanitizing tool." category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] six = ">=1.9.0" webencodings = "*" [package.extras] css = ["tinycss2 (>=1.1.0,<1.3)"] [[package]] name = "certifi" version = "2023.11.17" description = "Python package for providing Mozilla's CA Bundle." category = "dev" optional = false python-versions = ">=3.6" [[package]] name = "cffi" version = "1.16.0" description = "Foreign Function Interface for Python calling C code." category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] pycparser = "*" [[package]] name = "charset-normalizer" version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "dev" optional = false python-versions = ">=3.7.0" [[package]] name = "click" version = "8.1.7" description = "Composable command line interface toolkit" category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} [[package]] name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" [[package]] name = "comm" version = "0.2.0" description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] traitlets = ">=4" [package.extras] test = ["pytest"] [[package]] name = "contourpy" version = "1.2.0" description = "Python library for calculating contours of 2D quadrilateral grids" category = "dev" optional = false python-versions = ">=3.9" [package.dependencies] numpy = ">=1.20,<2.0" [package.extras] docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] bokeh = ["bokeh", "selenium"] mypy = ["contourpy", "docutils-stubs", "mypy (==1.6.1)", "types-pillow"] test = ["contourpy", "matplotlib", "pillow"] test-no-images = ["pytest", "pytest-cov", "pytest-xdist", "wurlitzer"] [[package]] name = "cycler" version = "0.12.1" description = "Composable style cycles" category = "dev" optional = false python-versions = ">=3.8" [package.extras] docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] tests = ["pytest", "pytest-cov", "pytest-xdist"] [[package]] name = "debugpy" version = "1.8.0" description = "An implementation of the Debug Adapter Protocol for Python" category = "dev" optional = false python-versions = ">=3.8" [[package]] name = "decorator" version = "5.1.1" description = "Decorators for Humans" category = "dev" optional = false python-versions = ">=3.5" [[package]] name = "defusedxml" version = "0.7.1" description = "XML bomb protection for Python stdlib modules" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] name = "exceptiongroup" version = "1.2.0" description = "Backport of PEP 654 (exception groups)" category = "dev" optional = false python-versions = ">=3.7" [package.extras] test = ["pytest (>=6)"] [[package]] name = "executing" version = "2.0.1" description = "Get the currently executing AST node of a frame, and other information" category = "dev" optional = false python-versions = ">=3.5" [package.extras] tests = ["asttokens (>=2.1.0)", "ipython", "pytest", "coverage", "coverage-enable-subprocess", "littleutils", "rich"] [[package]] name = "fastjsonschema" version = "2.19.0" description = "Fastest Python implementation of JSON schema" category = "dev" optional = false python-versions = "*" [package.extras] devel = ["colorama", "jsonschema", "json-spec", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] [[package]] name = "fonttools" version = "4.46.0" description = "Tools to manipulate font files" category = "dev" optional = false python-versions = ">=3.8" [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 (>=15.1.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 (>=15.1.0)"] woff = ["zopfli (>=0.1.4)", "brotlicffi (>=0.8.0)", "brotli (>=1.0.1)"] [[package]] name = "fqdn" version = "1.5.1" description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" category = "dev" optional = false python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" [[package]] name = "gensim" version = "4.3.2" description = "Python framework for fast Vector Space Modelling" category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] numpy = ">=1.18.5" scipy = ">=1.7.0" smart-open = ">=1.8.1" [package.extras] distributed = ["Pyro4 (>=4.27)"] docs = ["pytest", "pytest-cov", "mock", "testfixtures", "pot", "Pyro4 (>=4.27)", "visdom (>=0.1.8,!=0.1.8.7)", "sphinx (==5.1.1)", "sphinx-gallery (==0.11.1)", "sphinxcontrib.programoutput (==0.17)", "sphinxcontrib-napoleon (==0.7)", "matplotlib", "memory-profiler", "annoy", "pyro4", "scikit-learn", "nltk", "statsmodels", "pandas"] test = ["pytest", "pytest-cov", "mock", "testfixtures", "pot", "visdom (>=0.1.8,!=0.1.8.7)"] test-win = ["pytest", "pytest-cov", "mock", "testfixtures", "pot"] [[package]] name = "idna" version = "3.6" description = "Internationalized Domain Names in Applications (IDNA)" category = "dev" optional = false python-versions = ">=3.5" [[package]] name = "ipykernel" version = "6.27.1" description = "IPython Kernel for Jupyter" category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] appnope = {version = "*", markers = "platform_system == \"Darwin\""} comm = ">=0.1.1" debugpy = ">=1.6.5" ipython = ">=7.23.1" jupyter-client = ">=6.1.12" jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" matplotlib-inline = ">=0.1" nest-asyncio = "*" packaging = "*" psutil = "*" pyzmq = ">=20" tornado = ">=6.1" traitlets = ">=5.4.0" [package.extras] cov = ["coverage", "curio", "matplotlib", "pytest-cov", "trio"] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] pyqt5 = ["pyqt5"] pyside6 = ["pyside6"] test = ["flaky", "ipyparallel", "pre-commit", "pytest-asyncio", "pytest-cov", "pytest-timeout", "pytest (>=7.0)"] [[package]] name = "ipython" version = "8.18.1" description = "IPython: Productive Interactive Computing" category = "dev" optional = false python-versions = ">=3.9" [package.dependencies] colorama = {version = "*", markers = "sys_platform == \"win32\""} decorator = "*" exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} jedi = ">=0.16" matplotlib-inline = "*" pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} prompt-toolkit = ">=3.0.41,<3.1.0" pygments = ">=2.4.0" stack-data = "*" traitlets = ">=5" [package.extras] all = ["black", "ipykernel", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "docrepr", "matplotlib", "stack-data", "pytest (<7)", "typing-extensions", "exceptiongroup", "pytest (<7.1)", "pytest-asyncio (<0.22)", "testpath", "pickleshare", "nbconvert", "nbformat", "ipywidgets", "notebook", "ipyparallel", "qtconsole", "curio", "matplotlib (!=3.2.0)", "numpy (>=1.22)", "pandas", "trio"] black = ["black"] doc = ["ipykernel", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "docrepr", "matplotlib", "stack-data", "pytest (<7)", "typing-extensions", "exceptiongroup", "pytest (<7.1)", "pytest-asyncio (<0.22)", "testpath", "pickleshare"] kernel = ["ipykernel"] nbconvert = ["nbconvert"] nbformat = ["nbformat"] notebook = ["ipywidgets", "notebook"] parallel = ["ipyparallel"] qtconsole = ["qtconsole"] test = ["pytest (<7.1)", "pytest-asyncio (<0.22)", "testpath", "pickleshare"] test_extra = ["pytest (<7.1)", "pytest-asyncio (<0.22)", "testpath", "pickleshare", "curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.22)", "pandas", "trio"] [[package]] name = "ipywidgets" version = "8.1.1" description = "Jupyter interactive widgets" category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] comm = ">=0.1.3" ipython = ">=6.1.0" jupyterlab-widgets = ">=3.0.9,<3.1.0" traitlets = ">=4.3.1" widgetsnbextension = ">=4.0.9,<4.1.0" [package.extras] test = ["jsonschema", "ipykernel", "pytest (>=3.6.0)", "pytest-cov", "pytz"] [[package]] name = "isoduration" version = "20.11.0" description = "Operations with ISO 8601 durations" category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] arrow = ">=0.15.0" [[package]] name = "jedi" version = "0.19.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.3,<0.9.0" [package.extras] docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx-rtd-theme (==0.4.3)", "sphinx (==1.8.5)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] testing = ["django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] [[package]] name = "jinja2" version = "3.1.2" description = "A very fast and expressive template engine." category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] MarkupSafe = ">=2.0" [package.extras] i18n = ["Babel (>=2.7)"] [[package]] name = "joblib" version = "1.3.2" description = "Lightweight pipelining with Python functions" category = "main" optional = false python-versions = ">=3.7" [[package]] name = "json5" version = "0.9.14" description = "A Python implementation of the JSON5 data format." category = "dev" optional = false python-versions = "*" [package.extras] dev = ["hypothesis"] [[package]] name = "jsonpointer" version = "2.4" description = "Identify specific nodes in a JSON document (RFC 6901)" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" [[package]] name = "jsonschema" version = "4.20.0" description = "An implementation of JSON Schema validation for Python" category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] attrs = ">=22.2.0" fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} jsonschema-specifications = ">=2023.03.6" referencing = ">=0.28.4" rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} rpds-py = ">=0.7.1" uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format-nongpl\""} [package.extras] format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] [[package]] name = "jsonschema-specifications" version = "2023.11.2" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] referencing = ">=0.31.0" [[package]] name = "jupyter" version = "1.0.0" description = "Jupyter metapackage. Install all the Jupyter components in one go." category = "dev" optional = false python-versions = "*" [package.dependencies] ipykernel = "*" ipywidgets = "*" jupyter-console = "*" nbconvert = "*" notebook = "*" qtconsole = "*" [[package]] name = "jupyter-client" version = "8.6.0" description = "Jupyter protocol implementation and client libraries" category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" python-dateutil = ">=2.8.2" pyzmq = ">=23.0" tornado = ">=6.2" traitlets = ">=5.3" [package.extras] docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinx (>=4)", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] [[package]] name = "jupyter-console" version = "6.6.3" description = "Jupyter terminal console" category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] ipykernel = ">=6.14" ipython = "*" jupyter-client = ">=7.0.0" jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" prompt-toolkit = ">=3.0.30" pygments = "*" pyzmq = ">=17" traitlets = ">=5.4" [package.extras] test = ["flaky", "pexpect", "pytest"] [[package]] name = "jupyter-core" version = "5.5.0" description = "Jupyter core package. A base package on which Jupyter projects rely." category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] platformdirs = ">=2.5" pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} traitlets = ">=5.3" [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] [[package]] name = "jupyter-events" version = "0.9.0" description = "Jupyter Event System library" category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] jsonschema = {version = ">=4.18.0", extras = ["format-nongpl"]} python-json-logger = ">=2.0.4" pyyaml = ">=5.3" referencing = "*" rfc3339-validator = "*" rfc3986-validator = ">=0.1.1" traitlets = ">=5.3" [package.extras] cli = ["click", "rich"] docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme", "sphinxcontrib-spelling"] test = ["click", "pre-commit", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "pytest (>=7.0)", "rich"] [[package]] name = "jupyter-lsp" version = "2.2.1" description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] jupyter-server = ">=1.1.2" [[package]] name = "jupyter-server" version = "2.12.1" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] anyio = ">=3.1.0" argon2-cffi = "*" jinja2 = "*" jupyter-client = ">=7.4.4" jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" jupyter-events = ">=0.9.0" jupyter-server-terminals = "*" nbconvert = ">=6.4.4" nbformat = ">=5.3.0" overrides = "*" packaging = "*" prometheus-client = "*" pywinpty = {version = "*", markers = "os_name == \"nt\""} pyzmq = ">=24" send2trash = ">=1.8.2" terminado = ">=0.8.3" tornado = ">=6.2.0" traitlets = ">=5.6.0" websocket-client = "*" [package.extras] docs = ["ipykernel", "jinja2", "jupyter-client", "jupyter-server", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] test = ["flaky", "ipykernel", "pre-commit", "pytest-console-scripts", "pytest-jupyter[server] (>=0.4)", "pytest-timeout", "pytest (>=7.0)", "requests"] [[package]] name = "jupyter-server-terminals" version = "0.4.4" description = "A Jupyter Server Extension Providing Terminals." category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} terminado = ">=0.8.3" [package.extras] docs = ["jinja2", "jupyter-server", "mistune (<3.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] test = ["coverage", "jupyter-server (>=2.0.0)", "pytest-cov", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout", "pytest (>=7.0)"] [[package]] name = "jupyterlab" version = "4.0.9" description = "JupyterLab computational environment" category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] async-lru = ">=1.0.0" ipykernel = "*" jinja2 = ">=3.0.3" jupyter-core = "*" jupyter-lsp = ">=2.0.0" jupyter-server = ">=2.4.0,<3" jupyterlab-server = ">=2.19.0,<3" notebook-shim = ">=0.2" packaging = "*" tomli = {version = "*", markers = "python_version < \"3.11\""} tornado = ">=6.2.0" traitlets = "*" [package.extras] dev = ["black[jupyter] (==23.10.1)", "build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.1.4)"] docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-tornasync", "sphinx-copybutton", "sphinx (>=1.8,<7.2.0)"] docs-screenshots = ["altair (==5.0.1)", "ipython (==8.14.0)", "ipywidgets (==8.0.6)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.0.post0)", "matplotlib (==3.7.1)", "nbconvert (>=7.0.0)", "pandas (==2.0.2)", "scipy (==1.10.1)", "vega-datasets (==0.9.0)"] test = ["coverage", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "pytest (>=7.0)", "requests", "requests-cache", "virtualenv"] [[package]] name = "jupyterlab-pygments" version = "0.3.0" description = "Pygments theme using JupyterLab CSS variables" category = "dev" optional = false python-versions = ">=3.8" [[package]] name = "jupyterlab-server" version = "2.25.2" description = "A set of server components for JupyterLab and JupyterLab like applications." category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] babel = ">=2.10" jinja2 = ">=3.0.3" json5 = ">=0.9.0" jsonschema = ">=4.18.0" jupyter-server = ">=1.21,<3" packaging = ">=21.3" requests = ">=2.31" [package.extras] docs = ["autodoc-traits", "jinja2 (<3.2.0)", "mistune (<4)", "myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-copybutton", "sphinxcontrib-openapi (>0.8)"] openapi = ["openapi-core (>=0.18.0,<0.19.0)", "ruamel-yaml"] test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-validator (>=0.6.0,<0.8.0)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter[server] (>=0.6.2)", "pytest-timeout", "pytest (>=7.0)", "requests-mock", "ruamel-yaml", "sphinxcontrib-spelling", "strict-rfc3339", "werkzeug"] [[package]] name = "jupyterlab-widgets" version = "3.0.9" description = "Jupyter interactive widgets for JupyterLab" category = "dev" optional = false python-versions = ">=3.7" [[package]] name = "kiwisolver" version = "1.4.5" description = "A fast implementation of the Cassowary constraint solver" category = "dev" optional = false python-versions = ">=3.7" [[package]] name = "llvmlite" version = "0.41.1" description = "lightweight wrapper around basic LLVM functionality" category = "main" optional = false python-versions = ">=3.8" [[package]] name = "markupsafe" version = "2.1.3" description = "Safely add untrusted strings to HTML/XML markup." category = "dev" optional = false python-versions = ">=3.7" [[package]] name = "matplotlib" version = "3.8.2" description = "Python plotting package" category = "dev" optional = false python-versions = ">=3.9" [package.dependencies] contourpy = ">=1.0.1" cycler = ">=0.10" fonttools = ">=4.22.0" kiwisolver = ">=1.3.1" numpy = ">=1.21,<2" packaging = ">=20.0" pillow = ">=8" pyparsing = ">=2.3.1" python-dateutil = ">=2.7" [[package]] name = "matplotlib-inline" version = "0.1.6" description = "Inline Matplotlib backend for Jupyter" category = "dev" optional = false python-versions = ">=3.5" [package.dependencies] traitlets = "*" [[package]] name = "mistune" version = "3.0.2" description = "A sane and fast Markdown parser with useful plugins and renderers" category = "dev" optional = false python-versions = ">=3.7" [[package]] name = "nbclient" version = "0.9.0" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." category = "dev" optional = false python-versions = ">=3.8.0" [package.dependencies] jupyter-client = ">=6.1.12" jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" nbformat = ">=5.1" traitlets = ">=5.4" [package.extras] dev = ["pre-commit"] docs = ["autodoc-traits", "mock", "moto", "myst-parser", "nbclient", "sphinx-book-theme", "sphinx (>=1.7)", "sphinxcontrib-spelling"] test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest-asyncio", "pytest-cov (>=4.0)", "pytest (>=7.0)", "testpath", "xmltodict"] [[package]] name = "nbconvert" version = "7.12.0" description = "Converting Jupyter Notebooks" category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] beautifulsoup4 = "*" bleach = "!=5.0.0" defusedxml = "*" jinja2 = ">=3.0" jupyter-core = ">=4.7" jupyterlab-pygments = "*" markupsafe = ">=2.0" mistune = ">=2.0.3,<4" nbclient = ">=0.5.0" nbformat = ">=5.7" packaging = "*" pandocfilters = ">=1.4.1" pygments = ">=2.4.1" tinycss2 = "*" traitlets = ">=5.1" [package.extras] all = ["nbconvert"] docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sphinx-theme", "sphinx (==5.0.2)", "sphinxcontrib-spelling"] qtpdf = ["nbconvert"] qtpng = ["pyqtwebengine (>=5.15)"] serve = ["tornado (>=6.1)"] test = ["flaky", "ipykernel", "ipywidgets (>=7)", "pytest"] webpdf = ["playwright"] [[package]] name = "nbformat" version = "5.9.2" description = "The Jupyter Notebook format" category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] fastjsonschema = "*" jsonschema = ">=2.6" jupyter-core = "*" traitlets = ">=5.1" [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] test = ["pep440", "pre-commit", "pytest", "testpath"] [[package]] name = "nest-asyncio" version = "1.5.8" description = "Patch asyncio to allow nested event loops" category = "dev" optional = false python-versions = ">=3.5" [[package]] name = "networkx" version = "3.2.1" description = "Python package for creating and manipulating graphs and networks" category = "dev" optional = false python-versions = ">=3.9" [package.extras] default = ["numpy (>=1.22)", "scipy (>=1.9,!=1.11.0,!=1.11.1)", "matplotlib (>=3.5)", "pandas (>=1.4)"] developer = ["changelist (==0.4)", "pre-commit (>=3.2)", "mypy (>=1.1)", "rtoml"] doc = ["sphinx (>=7)", "pydata-sphinx-theme (>=0.14)", "sphinx-gallery (>=0.14)", "numpydoc (>=1.6)", "pillow (>=9.4)", "nb2plots (>=0.7)", "texext (>=0.6.7)", "nbconvert (<7.9)"] extra = ["lxml (>=4.6)", "pygraphviz (>=1.11)", "pydot (>=1.4.2)", "sympy (>=1.10)"] test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] [[package]] name = "nltk" version = "3.8.1" description = "Natural Language Toolkit" category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] click = "*" joblib = "*" regex = ">=2021.8.3" tqdm = "*" [package.extras] all = ["scikit-learn", "python-crfsuite", "requests", "numpy", "pyparsing", "twython", "scipy", "matplotlib"] corenlp = ["requests"] machine_learning = ["numpy", "python-crfsuite", "scikit-learn", "scipy"] plot = ["matplotlib"] tgrep = ["pyparsing"] twitter = ["twython"] [[package]] name = "notebook" version = "7.0.6" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] jupyter-server = ">=2.4.0,<3" jupyterlab = ">=4.0.2,<5" jupyterlab-server = ">=2.22.1,<3" notebook-shim = ">=0.2,<0.3" tornado = ">=6.2.0" [package.extras] dev = ["hatch", "pre-commit"] docs = ["myst-parser", "nbsphinx", "pydata-sphinx-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.22.1,<3)", "nbval", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "pytest (>=7.0)", "requests"] [[package]] name = "notebook-shim" version = "0.2.3" description = "A shim layer for notebook traits and config" category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] jupyter-server = ">=1.8,<3" [package.extras] test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] [[package]] name = "numba" version = "0.58.1" description = "compiling Python code using LLVM" category = "main" optional = false python-versions = ">=3.8" [package.dependencies] llvmlite = ">=0.41.0dev0,<0.42" numpy = ">=1.22,<1.27" [[package]] name = "numpy" version = "1.26.2" description = "Fundamental package for array computing in Python" category = "main" optional = false python-versions = ">=3.9" [[package]] name = "overrides" version = "7.4.0" description = "A decorator to automatically detect mismatch when overriding a method." category = "dev" optional = false python-versions = ">=3.6" [[package]] name = "packaging" version = "23.2" description = "Core utilities for Python packages" category = "dev" optional = false python-versions = ">=3.7" [[package]] name = "pandas" version = "2.1.3" description = "Powerful data structures for data analysis, time series, and statistics" category = "dev" optional = false python-versions = ">=3.9" [package.dependencies] numpy = [ {version = ">=1.22.4,<2", markers = "python_version < \"3.11\""}, {version = ">=1.23.2,<2", markers = "python_version == \"3.11\""}, {version = ">=1.26.0,<2", markers = "python_version >= \"3.12\""}, ] python-dateutil = ">=2.8.2" pytz = ">=2020.1" tzdata = ">=2022.1" [package.extras] test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] performance = ["bottleneck (>=1.3.4)", "numba (>=0.55.2)", "numexpr (>=2.8.0)"] computation = ["scipy (>=1.8.1)", "xarray (>=2022.03.0)"] fss = ["fsspec (>=2022.05.0)"] aws = ["s3fs (>=2022.05.0)"] gcp = ["gcsfs (>=2022.05.0)", "pandas-gbq (>=0.17.5)"] excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.0.10)", "pyxlsb (>=1.0.9)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.3)"] parquet = ["pyarrow (>=7.0.0)"] feather = ["pyarrow (>=7.0.0)"] hdf5 = ["tables (>=3.7.0)"] spss = ["pyreadstat (>=1.1.5)"] postgresql = ["SQLAlchemy (>=1.4.36)", "psycopg2 (>=2.9.3)"] mysql = ["SQLAlchemy (>=1.4.36)", "pymysql (>=1.0.2)"] sql-other = ["SQLAlchemy (>=1.4.36)"] html = ["beautifulsoup4 (>=4.11.1)", "html5lib (>=1.1)", "lxml (>=4.8.0)"] xml = ["lxml (>=4.8.0)"] plot = ["matplotlib (>=3.6.1)"] output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.8.10)"] clipboard = ["PyQt5 (>=5.15.6)", "qtpy (>=2.2.0)"] compression = ["zstandard (>=0.17.0)"] consortium-standard = ["dataframe-api-compat (>=0.1.7)"] all = ["beautifulsoup4 (>=4.11.1)", "bottleneck (>=1.3.4)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=0.8.1)", "fsspec (>=2022.05.0)", "gcsfs (>=2022.05.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.8.0)", "matplotlib (>=3.6.1)", "numba (>=0.55.2)", "numexpr (>=2.8.0)", "odfpy (>=1.4.1)", "openpyxl (>=3.0.10)", "pandas-gbq (>=0.17.5)", "psycopg2 (>=2.9.3)", "pyarrow (>=7.0.0)", "pymysql (>=1.0.2)", "PyQt5 (>=5.15.6)", "pyreadstat (>=1.1.5)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "pyxlsb (>=1.0.9)", "qtpy (>=2.2.0)", "scipy (>=1.8.1)", "s3fs (>=2022.05.0)", "SQLAlchemy (>=1.4.36)", "tables (>=3.7.0)", "tabulate (>=0.8.10)", "xarray (>=2022.03.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.3)", "zstandard (>=0.17.0)"] [[package]] name = "pandocfilters" version = "1.5.0" description = "Utilities for writing pandoc filters in python" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[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 = "pexpect" version = "4.9.0" description = "Pexpect allows easy control of interactive console applications." category = "dev" optional = false python-versions = "*" [package.dependencies] ptyprocess = ">=0.5" [[package]] name = "pillow" version = "10.1.0" description = "Python Imaging Library (Fork)" category = "dev" optional = false python-versions = ">=3.8" [package.extras] docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] [[package]] name = "platformdirs" version = "4.1.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." category = "dev" optional = false python-versions = ">=3.8" [package.extras] docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx-autodoc-typehints (>=1.24)", "sphinx (>=7.1.1)"] test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest (>=7.4)"] [[package]] name = "prometheus-client" version = "0.19.0" description = "Python client for the Prometheus monitoring system." category = "dev" optional = false python-versions = ">=3.8" [package.extras] twisted = ["twisted"] [[package]] name = "prompt-toolkit" version = "3.0.41" description = "Library for building powerful interactive command lines in Python" category = "dev" optional = false python-versions = ">=3.7.0" [package.dependencies] wcwidth = "*" [[package]] name = "psutil" version = "5.9.6" description = "Cross-platform lib for process and system monitoring in Python." category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" [package.extras] test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] [[package]] name = "ptyprocess" version = "0.7.0" description = "Run a subprocess in a pseudo terminal" category = "dev" optional = false python-versions = "*" [[package]] name = "pure-eval" version = "0.2.2" description = "Safely evaluate AST nodes without side effects" category = "dev" optional = false python-versions = "*" [package.extras] tests = ["pytest"] [[package]] name = "pycparser" version = "2.21" description = "C parser in Python" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "pygments" version = "2.17.2" description = "Pygments is a syntax highlighting package written in Python." category = "dev" optional = false python-versions = ">=3.7" [package.extras] plugins = ["importlib-metadata"] windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pynndescent" version = "0.5.11" description = "Nearest Neighbor Descent" category = "main" optional = false python-versions = "*" [package.dependencies] joblib = ">=0.11" llvmlite = ">=0.30" numba = ">=0.51.2" scikit-learn = ">=0.18" scipy = ">=1.0" [[package]] name = "pyparsing" version = "3.1.1" description = "pyparsing module - Classes and methods to define and execute parsing grammars" category = "dev" optional = false python-versions = ">=3.6.8" [package.extras] diagrams = ["railroad-diagrams", "jinja2"] [[package]] name = "python-dateutil" version = "2.8.2" description = "Extensions to the standard Python datetime module" category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" [package.dependencies] six = ">=1.5" [[package]] name = "python-json-logger" version = "2.0.7" description = "A python library adding a json log formatter" category = "dev" optional = false python-versions = ">=3.6" [[package]] name = "pytz" version = "2023.3.post1" description = "World timezone definitions, modern and historical" category = "dev" optional = false python-versions = "*" [[package]] name = "pywin32" version = "306" description = "Python for Window Extensions" category = "dev" optional = false python-versions = "*" [[package]] name = "pywinpty" version = "2.0.12" description = "Pseudo terminal support for Windows from Python." category = "dev" optional = false python-versions = ">=3.8" [[package]] name = "pyyaml" version = "6.0.1" description = "YAML parser and emitter for Python" category = "dev" optional = false python-versions = ">=3.6" [[package]] name = "pyzmq" version = "25.1.2" description = "Python bindings for 0MQ" category = "dev" optional = false python-versions = ">=3.6" [package.dependencies] cffi = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "qtconsole" version = "5.5.1" description = "Jupyter Qt console" category = "dev" optional = false python-versions = ">= 3.8" [package.dependencies] ipykernel = ">=4.1" jupyter-client = ">=4.1" jupyter-core = "*" packaging = "*" pygments = "*" pyzmq = ">=17.1" qtpy = ">=2.4.0" traitlets = "<5.2.1 || >5.2.1,<5.2.2 || >5.2.2" [package.extras] doc = ["Sphinx (>=1.3)"] test = ["flaky", "pytest", "pytest-qt"] [[package]] name = "qtpy" version = "2.4.1" description = "Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6)." category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] packaging = "*" [package.extras] test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] [[package]] name = "referencing" version = "0.32.0" description = "JSON Referencing + Python" category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] attrs = ">=22.2.0" rpds-py = ">=0.7.0" [[package]] name = "regex" version = "2023.10.3" description = "Alternative regular expression module, to replace re." category = "dev" optional = false python-versions = ">=3.7" [[package]] name = "requests" version = "2.31.0" description = "Python HTTP for Humans." category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] certifi = ">=2017.4.17" charset-normalizer = ">=2,<4" idna = ">=2.5,<4" urllib3 = ">=1.21.1,<3" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "rfc3339-validator" version = "0.1.4" description = "A pure python RFC3339 validator" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [package.dependencies] six = "*" [[package]] name = "rfc3986-validator" version = "0.1.1" description = "Pure python rfc3986 validator" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] name = "rpds-py" version = "0.13.2" description = "Python bindings to Rust's persistent data structures (rpds)" category = "dev" optional = false python-versions = ">=3.8" [[package]] name = "scikit-learn" version = "1.3.2" description = "A set of python modules for machine learning and data mining" category = "main" optional = false python-versions = ">=3.8" [package.dependencies] joblib = ">=1.1.1" numpy = ">=1.17.3,<2.0" scipy = ">=1.5.0" threadpoolctl = ">=2.0.0" [package.extras] benchmark = ["matplotlib (>=3.1.3)", "pandas (>=1.0.5)", "memory-profiler (>=0.57.0)"] docs = ["matplotlib (>=3.1.3)", "scikit-image (>=0.16.2)", "pandas (>=1.0.5)", "seaborn (>=0.9.0)", "memory-profiler (>=0.57.0)", "sphinx (>=6.0.0)", "sphinx-copybutton (>=0.5.2)", "sphinx-gallery (>=0.10.1)", "numpydoc (>=1.2.0)", "Pillow (>=7.1.2)", "pooch (>=1.6.0)", "sphinx-prompt (>=1.3.0)", "sphinxext-opengraph (>=0.4.2)", "plotly (>=5.14.0)"] examples = ["matplotlib (>=3.1.3)", "scikit-image (>=0.16.2)", "pandas (>=1.0.5)", "seaborn (>=0.9.0)", "pooch (>=1.6.0)", "plotly (>=5.14.0)"] tests = ["matplotlib (>=3.1.3)", "scikit-image (>=0.16.2)", "pandas (>=1.0.5)", "pytest (>=7.1.2)", "pytest-cov (>=2.9.0)", "ruff (>=0.0.272)", "black (>=23.3.0)", "mypy (>=1.3)", "pyamg (>=4.0.0)", "numpydoc (>=1.2.0)", "pooch (>=1.6.0)"] [[package]] name = "scipy" version = "1.11.4" description = "Fundamental algorithms for scientific computing in Python" category = "main" optional = false python-versions = ">=3.9" [package.dependencies] numpy = ">=1.21.6,<1.28.0" [package.extras] test = ["pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "asv", "mpmath", "gmpy2", "threadpoolctl", "scikit-umfpack", "pooch"] doc = ["sphinx (!=4.1.0)", "pydata-sphinx-theme (==0.9.0)", "sphinx-design (>=0.2.0)", "matplotlib (>2)", "numpydoc", "jupytext", "myst-nb", "pooch"] dev = ["mypy", "typing-extensions", "types-psutil", "pycodestyle", "ruff", "cython-lint (>=0.12.2)", "rich-click", "click", "doit (>=0.36.0)", "pydevtool"] [[package]] name = "send2trash" version = "1.8.2" description = "Send file to trash natively under Mac OS X, Windows and Linux" category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" [package.extras] nativelib = ["pyobjc-framework-cocoa", "pywin32"] objc = ["pyobjc-framework-cocoa"] win32 = ["pywin32"] [[package]] name = "setuptools" version = "69.0.2" description = "Easily download, build, install, upgrade, and uninstall Python packages" category = "dev" optional = false python-versions = ">=3.8" [package.extras] docs = ["sphinx (>=3.5)", "sphinx (<7.2.5)", "jaraco.packaging (>=9.3)", "rst.linker (>=1.9)", "furo", "sphinx-lint", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-reredirects", "sphinxcontrib-towncrier", "sphinx-notfound-page (>=1,<2)"] testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-enabler (>=2.2)", "flake8-2020", "virtualenv (>=13.0.0)", "wheel", "pip (>=19.1)", "jaraco.envs (>=2.2)", "pytest-xdist", "jaraco.path (>=3.2.0)", "build", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.9)", "tomli-w (>=1.0.0)", "pytest-timeout", "pytest-black (>=0.3.7)", "pytest-cov", "pytest-mypy (>=0.9.1)", "jaraco.develop (>=7.21)", "pytest-ruff", "pytest-perf"] testing-integration = ["pytest", "pytest-xdist", "pytest-enabler", "virtualenv (>=13.0.0)", "tomli", "wheel", "jaraco.path (>=3.2.0)", "jaraco.envs (>=2.2)", "build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "packaging (>=23.1)"] [[package]] name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" [[package]] name = "smart-open" version = "6.4.0" description = "Utils for streaming large files (S3, HDFS, GCS, Azure Blob Storage, gzip, bz2...)" category = "dev" optional = false python-versions = ">=3.6,<4.0" [package.extras] all = ["boto3", "google-cloud-storage (>=2.6.0)", "azure-storage-blob", "azure-common", "azure-core", "requests", "paramiko"] azure = ["azure-storage-blob", "azure-common", "azure-core"] gcs = ["google-cloud-storage (>=2.6.0)"] http = ["requests"] s3 = ["boto3"] ssh = ["paramiko"] test = ["boto3", "google-cloud-storage (>=2.6.0)", "azure-storage-blob", "azure-common", "azure-core", "requests", "paramiko", "moto", "responses", "pytest", "pytest-rerunfailures"] webhdfs = ["requests"] [[package]] name = "sniffio" version = "1.3.0" description = "Sniff out which async library your code is running under" category = "dev" optional = false python-versions = ">=3.7" [[package]] name = "soupsieve" version = "2.5" description = "A modern CSS selector implementation for Beautiful Soup." category = "dev" optional = false python-versions = ">=3.8" [[package]] name = "stack-data" version = "0.6.3" description = "Extract data from python stack frames and tracebacks for informative displays" category = "dev" optional = false python-versions = "*" [package.dependencies] asttokens = ">=2.1.0" executing = ">=1.2.0" pure-eval = "*" [package.extras] tests = ["pytest", "typeguard", "pygments", "littleutils", "cython"] [[package]] name = "terminado" version = "0.18.0" description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." category = "dev" optional = false python-versions = ">=3.8" [package.dependencies] ptyprocess = {version = "*", markers = "os_name != \"nt\""} pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} tornado = ">=6.1.0" [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] test = ["pre-commit", "pytest-timeout", "pytest (>=7.0)"] typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] [[package]] name = "threadpoolctl" version = "3.2.0" description = "threadpoolctl" category = "dev" optional = false python-versions = ">=3.8" [[package]] name = "tinycss2" version = "1.2.1" description = "A tiny CSS parser" category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] webencodings = ">=0.4" [package.extras] doc = ["sphinx", "sphinx-rtd-theme"] test = ["pytest", "isort", "flake8"] [[package]] name = "tomli" version = "2.0.1" description = "A lil' TOML parser" category = "dev" optional = false python-versions = ">=3.7" [[package]] name = "tornado" version = "6.4" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." category = "dev" optional = false python-versions = ">= 3.8" [[package]] name = "tqdm" version = "4.66.1" description = "Fast, Extensible Progress Meter" category = "main" optional = false python-versions = ">=3.7" [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} [package.extras] dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] notebook = ["ipywidgets (>=6)"] slack = ["slack-sdk"] telegram = ["requests"] [[package]] name = "traitlets" version = "5.14.0" description = "Traitlets Python configuration system" category = "dev" optional = false python-versions = ">=3.8" [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest-mock", "pytest-mypy-testing", "pytest (>=7.0,<7.5)"] [[package]] name = "types-python-dateutil" version = "2.8.19.14" description = "Typing stubs for python-dateutil" category = "dev" optional = false python-versions = "*" [[package]] name = "typing-extensions" version = "4.8.0" description = "Backported and Experimental Type Hints for Python 3.8+" category = "dev" optional = false python-versions = ">=3.8" [[package]] name = "tzdata" version = "2023.3" description = "Provider of IANA time zone data" category = "dev" optional = false python-versions = ">=2" [[package]] name = "umap-learn" version = "0.5.5" description = "Uniform Manifold Approximation and Projection" category = "main" optional = false python-versions = "*" [package.dependencies] numba = ">=0.51.2" numpy = ">=1.17" pynndescent = ">=0.5" scikit-learn = ">=0.22" scipy = ">=1.3.1" tqdm = "*" [package.extras] parametric_umap = ["tensorflow (>=2.1)", "tensorflow-probability (>=0.10)"] plot = ["pandas", "matplotlib", "datashader", "bokeh", "holoviews", "colorcet", "seaborn", "scikit-image"] tbb = ["tbb (>=2019.0)"] [[package]] name = "uri-template" version = "1.3.0" description = "RFC 6570 URI Template Processor" category = "dev" optional = false python-versions = ">=3.7" [package.extras] dev = ["types-pyyaml", "mypy", "flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "pep8-naming"] [[package]] name = "urllib3" version = "2.1.0" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "dev" optional = false python-versions = ">=3.8" [package.extras] brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] [[package]] name = "wcwidth" version = "0.2.12" description = "Measures the displayed width of unicode strings in a terminal" category = "dev" optional = false python-versions = "*" [[package]] name = "webcolors" version = "1.13" description = "A library for working with the color formats defined by HTML and CSS." category = "dev" optional = false python-versions = ">=3.7" [package.extras] docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"] tests = ["pytest", "pytest-cov"] [[package]] name = "webencodings" version = "0.5.1" description = "Character encoding aliases for legacy web content" category = "dev" optional = false python-versions = "*" [[package]] name = "websocket-client" version = "1.7.0" description = "WebSocket client for Python with low level API options" category = "dev" optional = false python-versions = ">=3.8" [package.extras] docs = ["Sphinx (>=6.0)", "sphinx-rtd-theme (>=1.1.0)"] optional = ["python-socks", "wsaccel"] test = ["websockets"] [[package]] name = "widgetsnbextension" version = "4.0.9" description = "Jupyter interactive widgets for Jupyter Notebook" category = "dev" optional = false python-versions = ">=3.7" [metadata] lock-version = "1.1" python-versions = "^3.10" content-hash = "0d00acc6405edab84d72baf0e1573c6d70c89c042048986773378c2675bc7ff8" [metadata.files] anyio = [] appnope = [] argon2-cffi = [] argon2-cffi-bindings = [] arrow = [] asttokens = [] async-lru = [] attrs = [] babel = [] beautifulsoup4 = [] bleach = [] certifi = [] cffi = [] charset-normalizer = [] click = [] colorama = [] comm = [] contourpy = [] cycler = [] debugpy = [] decorator = [] defusedxml = [] exceptiongroup = [] executing = [] fastjsonschema = [] fonttools = [] fqdn = [] gensim = [] idna = [] ipykernel = [] ipython = [] ipywidgets = [] isoduration = [] jedi = [] jinja2 = [] joblib = [] json5 = [] jsonpointer = [] jsonschema = [] jsonschema-specifications = [] jupyter = [] jupyter-client = [] jupyter-console = [] jupyter-core = [] jupyter-events = [] jupyter-lsp = [] jupyter-server = [] jupyter-server-terminals = [] jupyterlab = [] jupyterlab-pygments = [] jupyterlab-server = [] jupyterlab-widgets = [] kiwisolver = [] llvmlite = [] markupsafe = [] matplotlib = [] matplotlib-inline = [] mistune = [] nbclient = [] nbconvert = [] nbformat = [] nest-asyncio = [] networkx = [] nltk = [] notebook = [] notebook-shim = [] numba = [] numpy = [] overrides = [] packaging = [] pandas = [] pandocfilters = [] parso = [] pexpect = [] pillow = [] platformdirs = [] prometheus-client = [] prompt-toolkit = [] psutil = [] ptyprocess = [] pure-eval = [] pycparser = [] pygments = [] pynndescent = [] pyparsing = [] python-dateutil = [] python-json-logger = [] pytz = [] pywin32 = [] pywinpty = [] pyyaml = [] pyzmq = [] qtconsole = [] qtpy = [] referencing = [] regex = [] requests = [] rfc3339-validator = [] rfc3986-validator = [] rpds-py = [] scikit-learn = [] scipy = [] send2trash = [] setuptools = [] six = [] smart-open = [] sniffio = [] soupsieve = [] stack-data = [] terminado = [] threadpoolctl = [] tinycss2 = [] tomli = [] tornado = [] tqdm = [] traitlets = [] types-python-dateutil = [] typing-extensions = [] tzdata = [] umap-learn = [] uri-template = [] urllib3 = [] wcwidth = [] webcolors = [] webencodings = [] websocket-client = [] widgetsnbextension = []