diff --git a/.github/workflows/langchain_experimental_ci.yml b/.github/workflows/langchain_experimental_ci.yml index 8971a771e32..9c95634e49c 100644 --- a/.github/workflows/langchain_experimental_ci.yml +++ b/.github/workflows/langchain_experimental_ci.yml @@ -1,5 +1,5 @@ --- -name: libs/langchain-experimental CI +name: libs/experimental CI on: push: diff --git a/.github/workflows/langchain_experimental_release.yml b/.github/workflows/langchain_experimental_release.yml index 2873a230964..a9706b2593b 100644 --- a/.github/workflows/langchain_experimental_release.yml +++ b/.github/workflows/langchain_experimental_release.yml @@ -1,5 +1,5 @@ --- -name: libs/langchain-experimental Release +name: libs/experimental Release on: pull_request: diff --git a/.github/workflows/scheduled_test.yml b/.github/workflows/scheduled_test.yml new file mode 100644 index 00000000000..a1ab54a840f --- /dev/null +++ b/.github/workflows/scheduled_test.yml @@ -0,0 +1,38 @@ +name: Scheduled tests + +on: + scheduled: + - cron: '0 13 * * *' + +env: + POETRY_VERSION: "1.4.2" + +jobs: + build: + runs-on: ubuntu-latest + environment: Scheduled testing + strategy: + matrix: + python-version: + - "3.8" + - "3.9" + - "3.10" + - "3.11" + name: Python ${{ matrix.python-version }} + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: "./.github/actions/poetry_setup" + with: + python-version: ${{ matrix.python-version }} + poetry-version: "1.4.2" + install-command: | + echo "Running scheduled tests, installing dependencies with poetry..." + poetry install -E scheduled_testing + - name: Run tests + env: + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + run: | + make scheduled_tests + shell: bash + secrets: inherit diff --git a/libs/langchain/tests/integration_tests/chains/test_cpal.py b/libs/experimental/tests/integration_tests/chains/test_cpal.py similarity index 100% rename from libs/langchain/tests/integration_tests/chains/test_cpal.py rename to libs/experimental/tests/integration_tests/chains/test_cpal.py index 35b00bb0e8a..c9f703de81a 100644 --- a/libs/langchain/tests/integration_tests/chains/test_cpal.py +++ b/libs/experimental/tests/integration_tests/chains/test_cpal.py @@ -7,6 +7,10 @@ from unittest import mock import pydantic import pytest +from langchain import OpenAI +from langchain.output_parsers import PydanticOutputParser +from langchain.prompts.prompt import PromptTemplate + from langchain_experimental.cpal.base import ( CausalChain, CPALChain, @@ -35,10 +39,6 @@ from langchain_experimental.cpal.templates.univariate.narrative import ( from langchain_experimental.cpal.templates.univariate.query import ( template as query_template, ) - -from langchain import OpenAI -from langchain.output_parsers import PydanticOutputParser -from langchain.prompts.prompt import PromptTemplate from tests.unit_tests.llms.fake_llm import FakeLLM diff --git a/libs/langchain/tests/integration_tests/chains/test_pal.py b/libs/experimental/tests/integration_tests/chains/test_pal.py similarity index 100% rename from libs/langchain/tests/integration_tests/chains/test_pal.py rename to libs/experimental/tests/integration_tests/chains/test_pal.py diff --git a/libs/langchain/tests/integration_tests/chains/test_sql_database.py b/libs/experimental/tests/integration_tests/chains/test_sql_database.py similarity index 98% rename from libs/langchain/tests/integration_tests/chains/test_sql_database.py rename to libs/experimental/tests/integration_tests/chains/test_sql_database.py index 18be75bf7ca..cf1dc445cae 100644 --- a/libs/langchain/tests/integration_tests/chains/test_sql_database.py +++ b/libs/experimental/tests/integration_tests/chains/test_sql_database.py @@ -1,12 +1,11 @@ """Test SQL Database Chain.""" -from sqlalchemy import Column, Integer, MetaData, String, Table, create_engine, insert - -from langchain.chains.sql_database.base import ( +from langchain.llms.openai import OpenAI +from langchain.utilities.sql_database import SQLDatabase +from libs.experimental.langchain_experimental.sql.base import ( SQLDatabaseChain, SQLDatabaseSequentialChain, ) -from langchain.llms.openai import OpenAI -from langchain.utilities.sql_database import SQLDatabase +from sqlalchemy import Column, Integer, MetaData, String, Table, create_engine, insert metadata_obj = MetaData() diff --git a/libs/langchain/Makefile b/libs/langchain/Makefile index db4b8c089b8..46a9ca63efb 100644 --- a/libs/langchain/Makefile +++ b/libs/langchain/Makefile @@ -59,6 +59,9 @@ test_watch: integration_tests: poetry run pytest tests/integration_tests +scheduled_tests: + poetry run pytest -m scheduled tests/integration_tests + docker_tests: docker build -t my-langchain-image:test . docker run --rm my-langchain-image:test diff --git a/libs/langchain/poetry.lock b/libs/langchain/poetry.lock index 0415bbb4a86..dc34e82d2e6 100644 --- a/libs/langchain/poetry.lock +++ b/libs/langchain/poetry.lock @@ -1,9 +1,10 @@ -# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. [[package]] name = "absl-py" version = "1.4.0" description = "Abseil Python Common Libraries, see https://github.com/abseil/abseil-py." +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -15,6 +16,7 @@ files = [ name = "accelerate" version = "0.20.3" description = "Accelerate" +category = "main" optional = true python-versions = ">=3.7.0" files = [ @@ -43,6 +45,7 @@ testing = ["datasets", "deepspeed", "evaluate", "parameterized", "pytest", "pyte name = "aioboto3" version = "11.2.0" description = "Async boto3 wrapper" +category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -61,6 +64,7 @@ s3cse = ["cryptography (>=2.3.1)"] name = "aiobotocore" version = "2.5.0" description = "Async client for aws services using botocore and aiohttp" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -83,6 +87,7 @@ boto3 = ["boto3 (>=1.26.76,<1.26.77)"] name = "aiodns" version = "3.0.0" description = "Simple DNS resolver for asyncio" +category = "main" optional = true python-versions = "*" files = [ @@ -97,6 +102,7 @@ pycares = ">=4.0.0" name = "aiofiles" version = "23.1.0" description = "File support for asyncio." +category = "main" optional = true python-versions = ">=3.7,<4.0" files = [ @@ -108,6 +114,7 @@ files = [ name = "aiohttp" version = "3.8.4" description = "Async http client/server framework (asyncio)" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -216,6 +223,7 @@ speedups = ["Brotli", "aiodns", "cchardet"] name = "aiohttp-retry" version = "2.8.3" description = "Simple retry client for aiohttp" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -230,6 +238,7 @@ aiohttp = "*" name = "aioitertools" version = "0.11.0" description = "itertools and builtins for AsyncIO and mixed iterables" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -244,6 +253,7 @@ typing_extensions = {version = ">=4.0", markers = "python_version < \"3.10\""} name = "aiosignal" version = "1.3.1" description = "aiosignal: a list of registered asynchronous callbacks" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -258,6 +268,7 @@ frozenlist = ">=1.1.0" name = "aiostream" version = "0.4.5" description = "Generator-based operators for asynchronous iteration" +category = "main" optional = true python-versions = "*" files = [ @@ -269,6 +280,7 @@ files = [ name = "aleph-alpha-client" version = "2.17.0" description = "python client to interact with Aleph Alpha api endpoints" +category = "main" optional = true python-versions = "*" files = [ @@ -296,6 +308,7 @@ types = ["mypy", "types-Pillow", "types-requests"] name = "altair" version = "4.2.2" description = "Altair: A declarative statistical visualization library for Python." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -318,6 +331,7 @@ dev = ["black", "docutils", "flake8", "ipython", "m2r", "mistune (<2.0.0)", "pyt name = "amadeus" version = "8.1.0" description = "Python module for the Amadeus travel APIs" +category = "main" optional = true python-versions = ">=3.4.8" files = [ @@ -328,6 +342,7 @@ files = [ name = "amazon-textract-caller" version = "0.0.29" description = "Amazon Textract Caller tools" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -347,6 +362,7 @@ testing = ["amazon-textract-response-parser", "pytest"] name = "amazon-textract-response-parser" version = "1.0.0" description = "Easily parse JSON returned by Amazon Textract." +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -362,6 +378,7 @@ marshmallow = ">=3.14,<4" name = "anthropic" version = "0.3.2" description = "Client library for the anthropic API" +category = "main" optional = true python-versions = ">=3.7,<4.0" files = [ @@ -381,6 +398,7 @@ typing-extensions = ">=4.1.1" name = "anyio" version = "3.7.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -402,6 +420,7 @@ trio = ["trio (<0.22)"] 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 = true python-versions = "*" files = [ @@ -413,6 +432,7 @@ files = [ name = "appnope" version = "0.1.3" description = "Disable App Nap on macOS >= 10.9" +category = "dev" optional = false python-versions = "*" files = [ @@ -424,6 +444,7 @@ files = [ name = "argon2-cffi" version = "21.3.0" description = "The secure Argon2 password hashing algorithm." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -443,6 +464,7 @@ tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pytest"] name = "argon2-cffi-bindings" version = "21.2.0" description = "Low-level CFFI bindings for Argon2" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -480,6 +502,7 @@ tests = ["pytest"] name = "arrow" version = "1.2.3" description = "Better dates & times for Python" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -494,6 +517,7 @@ python-dateutil = ">=2.7.0" name = "arxiv" version = "1.4.7" description = "Python wrapper for the arXiv API: http://arxiv.org/help/api/" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -508,6 +532,7 @@ feedparser = "*" name = "asgiref" version = "3.7.2" description = "ASGI specs, helper code, and adapters" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -525,6 +550,7 @@ tests = ["mypy (>=0.800)", "pytest", "pytest-asyncio"] name = "asttokens" version = "2.2.1" description = "Annotate AST trees with source code positions" +category = "dev" optional = false python-versions = "*" files = [ @@ -542,6 +568,7 @@ test = ["astroid", "pytest"] name = "astunparse" version = "1.6.3" description = "An AST unparser for Python" +category = "main" optional = true python-versions = "*" files = [ @@ -557,6 +584,7 @@ wheel = ">=0.23.0,<1.0" name = "async-timeout" version = "4.0.2" description = "Timeout context manager for asyncio programs" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -568,6 +596,7 @@ files = [ name = "atlassian-python-api" version = "3.39.0" description = "Python Atlassian REST API Wrapper" +category = "main" optional = true python-versions = "*" files = [ @@ -588,6 +617,7 @@ kerberos = ["requests-kerberos"] name = "attrs" version = "23.1.0" description = "Classes Without Boilerplate" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -606,6 +636,7 @@ tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pyte name = "audioread" version = "3.0.0" description = "multi-library, cross-platform audio decoding" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -616,6 +647,7 @@ files = [ name = "authlib" version = "1.2.0" description = "The ultimate Python library in building OAuth and OpenID Connect servers and clients." +category = "main" optional = false python-versions = "*" files = [ @@ -630,6 +662,7 @@ cryptography = ">=3.2" name = "awadb" version = "0.3.9" description = "AI Native database for embedding vectors" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -657,6 +690,7 @@ test = ["pytest (>=6.0)"] name = "azure-ai-formrecognizer" version = "3.2.1" description = "Microsoft Azure Form Recognizer Client Library for Python" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -674,6 +708,7 @@ typing-extensions = ">=4.0.1" name = "azure-ai-vision" version = "0.11.1b1" description = "Microsoft Azure AI Vision SDK for Python" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -685,6 +720,7 @@ files = [ name = "azure-cognitiveservices-speech" version = "1.29.0" description = "Microsoft Cognitive Services Speech SDK for Python" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -700,6 +736,7 @@ files = [ name = "azure-common" version = "1.1.28" description = "Microsoft Azure Client Library for Python (Common)" +category = "main" optional = true python-versions = "*" files = [ @@ -711,6 +748,7 @@ files = [ name = "azure-core" version = "1.27.1" description = "Microsoft Azure Core Library for Python" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -730,6 +768,7 @@ aio = ["aiohttp (>=3.0)"] name = "azure-cosmos" version = "4.4.0" description = "Microsoft Azure Cosmos Client Library for Python" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -744,6 +783,7 @@ azure-core = ">=1.23.0,<2.0.0" name = "azure-identity" version = "1.13.0" description = "Microsoft Azure Identity Library for Python" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -762,6 +802,7 @@ six = ">=1.12.0" name = "azure-search-documents" version = "11.4.0b6" description = "Microsoft Azure Cognitive Search Client Library for Python" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -778,6 +819,7 @@ isodate = ">=0.6.0" name = "backcall" version = "0.2.0" description = "Specifications for callback functions passed in to an API" +category = "dev" optional = false python-versions = "*" files = [ @@ -789,6 +831,7 @@ files = [ name = "backoff" version = "2.2.1" description = "Function decoration for backoff and retry" +category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -800,6 +843,7 @@ files = [ name = "backports-zoneinfo" version = "0.2.1" description = "Backport of the standard library zoneinfo module" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -828,6 +872,7 @@ tzdata = ["tzdata"] name = "beautifulsoup4" version = "4.12.2" description = "Screen-scraping library" +category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -846,6 +891,7 @@ lxml = ["lxml"] name = "bentoml" version = "1.0.22" description = "BentoML: The Unified Model Serving Framework" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -922,6 +968,7 @@ triton = ["tritonclient[all] (>=2.29.0)"] name = "bibtexparser" version = "1.4.0" description = "Bibtex parser for python 3" +category = "main" optional = true python-versions = "*" files = [ @@ -935,6 +982,7 @@ pyparsing = ">=2.0.3" name = "black" version = "23.3.0" description = "The uncompromising code formatter." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -984,6 +1032,7 @@ uvloop = ["uvloop (>=0.15.2)"] name = "bleach" version = "6.0.0" description = "An easy safelist-based HTML-sanitizing tool." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1002,6 +1051,7 @@ css = ["tinycss2 (>=1.1.0,<1.2)"] name = "blinker" version = "1.6.2" description = "Fast, simple object-to-object and broadcast signaling" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1013,6 +1063,7 @@ files = [ name = "blis" version = "0.7.9" description = "The Blis BLAS-like linear algebra library, as a self-contained C-extension." +category = "main" optional = true python-versions = "*" files = [ @@ -1053,6 +1104,7 @@ numpy = ">=1.15.0" name = "blurhash" version = "1.1.4" description = "Pure-Python implementation of the blurhash algorithm." +category = "dev" optional = false python-versions = "*" files = [ @@ -1067,6 +1119,7 @@ test = ["Pillow", "numpy", "pytest"] name = "boto3" version = "1.26.76" description = "The AWS SDK for Python" +category = "main" optional = false python-versions = ">= 3.7" files = [ @@ -1086,6 +1139,7 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] name = "botocore" version = "1.29.76" description = "Low-level, data-driven core of boto 3." +category = "main" optional = false python-versions = ">= 3.7" files = [ @@ -1105,6 +1159,7 @@ crt = ["awscrt (==0.16.9)"] name = "brotli" version = "1.0.9" description = "Python bindings for the Brotli compression library" +category = "main" optional = true python-versions = "*" files = [ @@ -1196,6 +1251,7 @@ files = [ name = "brotlicffi" version = "1.0.9.2" description = "Python CFFI bindings to the Brotli library" +category = "main" optional = true python-versions = "*" files = [ @@ -1238,6 +1294,7 @@ cffi = ">=1.0.0" name = "build" version = "0.10.0" description = "A simple, correct Python build frontend" +category = "main" optional = true python-versions = ">= 3.7" files = [ @@ -1261,6 +1318,7 @@ virtualenv = ["virtualenv (>=20.0.35)"] name = "cachetools" version = "5.3.1" description = "Extensible memoizing collections and decorators" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1272,6 +1330,7 @@ files = [ name = "cassandra-driver" version = "3.28.0" description = "DataStax Driver for Apache Cassandra" +category = "main" optional = false python-versions = "*" files = [ @@ -1323,6 +1382,7 @@ graph = ["gremlinpython (==3.4.6)"] name = "cassio" version = "0.0.7" description = "A framework-agnostic Python library to seamlessly integrate Apache Cassandra with ML/LLM/genAI workloads." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1338,6 +1398,7 @@ numpy = ">=1.0" name = "catalogue" version = "2.0.8" description = "Super lightweight function registries for your library" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -1349,6 +1410,7 @@ files = [ name = "cattrs" version = "23.1.2" description = "Composable complex class support for attrs and dataclasses." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1374,6 +1436,7 @@ ujson = ["ujson (>=5.4.0,<6.0.0)"] name = "certifi" version = "2023.5.7" description = "Python package for providing Mozilla's CA Bundle." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1385,6 +1448,7 @@ files = [ name = "cffi" version = "1.15.1" description = "Foreign Function Interface for Python calling C code." +category = "main" optional = false python-versions = "*" files = [ @@ -1461,6 +1525,7 @@ pycparser = "*" name = "chardet" version = "5.1.0" description = "Universal encoding detector for Python 3" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1472,6 +1537,7 @@ files = [ name = "charset-normalizer" version = "3.1.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -1556,6 +1622,7 @@ files = [ name = "chroma-hnswlib" version = "0.7.1" description = "Chromas fork of hnswlib" +category = "dev" optional = false python-versions = "*" files = [ @@ -1570,6 +1637,7 @@ numpy = "*" name = "chromadb" version = "0.4.1" description = "Chroma." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1600,6 +1668,7 @@ uvicorn = {version = ">=0.18.3", extras = ["standard"]} name = "circus" version = "0.18.0" description = "Circus is a program that will let you run and watch multiple processes and sockets." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1619,6 +1688,7 @@ test = ["coverage", "flake8 (==2.1.0)", "gevent", "mock", "nose2", "pyyaml", "to name = "clarifai" version = "9.1.0" description = "Clarifai Python Utilities" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1633,6 +1703,7 @@ clarifai-grpc = ">=9.1.0" name = "clarifai-grpc" version = "9.1.1" description = "Clarifai gRPC API Client" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -1650,6 +1721,7 @@ requests = ">=2.25.1" name = "click" version = "8.1.3" description = "Composable command line interface toolkit" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1664,6 +1736,7 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "click-option-group" version = "0.5.6" description = "Option groups missing in Click" +category = "main" optional = true python-versions = ">=3.6,<4" files = [ @@ -1683,6 +1756,7 @@ tests-cov = ["coverage", "coveralls", "pytest", "pytest-cov"] name = "click-plugins" version = "1.1.1" description = "An extension module for click to enable registering CLI commands via setuptools entry-points." +category = "main" optional = true python-versions = "*" files = [ @@ -1700,6 +1774,7 @@ dev = ["coveralls", "pytest (>=3.6)", "pytest-cov", "wheel"] name = "clickhouse-connect" version = "0.5.25" description = "ClickHouse core driver, SqlAlchemy, and Superset libraries" +category = "main" optional = false python-versions = "~=3.7" files = [ @@ -1789,6 +1864,7 @@ superset = ["apache-superset (>=1.4.1)"] name = "cligj" version = "0.7.2" description = "Click params for commmand line interfaces to GeoJSON" +category = "main" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4" files = [ @@ -1806,6 +1882,7 @@ test = ["pytest-cov"] name = "cloudpickle" version = "2.2.1" description = "Extended pickling support for Python objects" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -1817,6 +1894,7 @@ files = [ name = "codespell" version = "2.2.5" description = "Codespell" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1834,6 +1912,7 @@ types = ["chardet (>=5.1.0)", "mypy", "pytest", "pytest-cov", "pytest-dependency name = "cohere" version = "4.18.0" description = "" +category = "main" optional = true python-versions = ">=3.7,<4.0" files = [ @@ -1853,6 +1932,7 @@ urllib3 = ">=1.26,<3" name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -1864,6 +1944,7 @@ files = [ name = "colored" version = "1.4.4" description = "Simple library for color and formatting to terminal" +category = "dev" optional = false python-versions = "*" files = [ @@ -1874,6 +1955,7 @@ files = [ name = "coloredlogs" version = "15.0.1" description = "Colored terminal output for Python's logging module" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1891,6 +1973,7 @@ cron = ["capturer (>=2.4)"] name = "comm" version = "0.1.3" description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1910,6 +1993,7 @@ typing = ["mypy (>=0.990)"] name = "confection" version = "0.0.4" description = "The sweetest config system for Python" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -1925,6 +2009,7 @@ srsly = ">=2.4.0,<3.0.0" name = "contextlib2" version = "21.6.0" description = "Backports and enhancements for the contextlib module" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -1936,6 +2021,7 @@ files = [ name = "contourpy" version = "1.1.0" description = "Python library for calculating contours of 2D quadrilateral grids" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -1994,6 +2080,7 @@ test-no-images = ["pytest", "pytest-cov", "wurlitzer"] name = "coverage" version = "7.2.7" description = "Code coverage measurement for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2069,6 +2156,7 @@ toml = ["tomli"] name = "cryptography" version = "41.0.1" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2110,6 +2198,7 @@ test-randomorder = ["pytest-randomly"] name = "cssselect" version = "1.2.0" description = "cssselect parses CSS3 Selectors and translates them to XPath 1.0" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -2121,6 +2210,7 @@ files = [ name = "cycler" version = "0.11.0" description = "Composable style cycles" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -2132,6 +2222,7 @@ files = [ name = "cymem" version = "2.0.7" description = "Manage calls to calloc/free through Cython" +category = "main" optional = true python-versions = "*" files = [ @@ -2169,6 +2260,7 @@ files = [ name = "dataclasses-json" version = "0.5.8" description = "Easily serialize dataclasses to and from JSON" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2188,6 +2280,7 @@ dev = ["flake8", "hypothesis", "ipython", "mypy (>=0.710)", "portray", "pytest ( name = "datasets" version = "2.13.0" description = "HuggingFace community-driven open-source library of datasets" +category = "main" optional = true python-versions = ">=3.7.0" files = [ @@ -2230,6 +2323,7 @@ vision = ["Pillow (>=6.2.1)"] name = "debugpy" version = "1.6.7" description = "An implementation of the Debug Adapter Protocol for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2257,6 +2351,7 @@ files = [ name = "decorator" version = "5.1.1" description = "Decorators for Humans" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -2268,6 +2363,7 @@ files = [ name = "deeplake" version = "3.6.11" description = "Activeloop Deep Lake" +category = "main" optional = false python-versions = "*" files = [ @@ -2305,6 +2401,7 @@ visualizer = ["IPython", "flask"] name = "deepmerge" version = "1.1.0" description = "a toolset to deeply merge python dictionaries." +category = "main" optional = true python-versions = "*" files = [ @@ -2316,6 +2413,7 @@ files = [ name = "defusedxml" version = "0.7.1" description = "XML bomb protection for Python stdlib modules" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -2327,6 +2425,7 @@ files = [ name = "deprecated" version = "1.2.14" description = "Python @deprecated decorator to deprecate old python classes, functions or methods." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -2344,6 +2443,7 @@ dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "sphinx (<2)", "tox"] name = "deprecation" version = "2.1.0" description = "A library to handle automated deprecations" +category = "main" optional = true python-versions = "*" files = [ @@ -2358,6 +2458,7 @@ packaging = "*" name = "dill" version = "0.3.6" description = "serialize all of python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2372,6 +2473,7 @@ graph = ["objgraph (>=1.7.2)"] name = "distro" version = "1.8.0" description = "Distro - an OS platform information API" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -2383,6 +2485,7 @@ files = [ name = "dnspython" version = "2.3.0" description = "DNS toolkit" +category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -2403,6 +2506,7 @@ wmi = ["wmi (>=1.5.1,<2.0.0)"] name = "docarray" version = "0.32.1" description = "The data structure for multimodal data" +category = "main" optional = true python-versions = ">=3.7,<4.0" files = [ @@ -2441,6 +2545,7 @@ web = ["fastapi (>=0.87.0)"] name = "docker" version = "6.1.3" description = "A Python library for the Docker Engine API." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -2462,6 +2567,7 @@ ssh = ["paramiko (>=2.4.3)"] name = "docopt" version = "0.6.2" description = "Pythonic argument parser, that will make you smile" +category = "main" optional = true python-versions = "*" files = [ @@ -2472,6 +2578,7 @@ files = [ name = "duckdb" version = "0.8.1" description = "DuckDB embedded database" +category = "dev" optional = false python-versions = "*" files = [ @@ -2533,6 +2640,7 @@ files = [ name = "duckdb-engine" version = "0.7.3" description = "SQLAlchemy driver for duckdb" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2549,6 +2657,7 @@ sqlalchemy = ">=1.3.22" name = "duckduckgo-search" version = "3.8.3" description = "Search for words, documents, images, news, maps and text translation using the DuckDuckGo.com search engine." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -2566,6 +2675,7 @@ lxml = ">=4.9.2" name = "ecdsa" version = "0.18.0" description = "ECDSA cryptographic signature library (pure python)" +category = "main" optional = true python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -2584,6 +2694,7 @@ gmpy2 = ["gmpy2"] name = "elastic-transport" version = "8.4.0" description = "Transport classes and utilities shared among Python Elastic client libraries" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2602,6 +2713,7 @@ develop = ["aiohttp", "mock", "pytest", "pytest-asyncio", "pytest-cov", "pytest- name = "elasticsearch" version = "8.8.0" description = "Python client for Elasticsearch" +category = "main" optional = false python-versions = ">=3.6, <4" files = [ @@ -2621,6 +2733,7 @@ requests = ["requests (>=2.4.0,<3.0.0)"] name = "entrypoints" version = "0.4" description = "Discover and load entry points from installed packages." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2632,6 +2745,7 @@ files = [ name = "esprima" version = "4.0.1" description = "ECMAScript parsing infrastructure for multipurpose analysis in Python" +category = "main" optional = true python-versions = "*" files = [ @@ -2642,6 +2756,7 @@ files = [ name = "exceptiongroup" version = "1.1.1" description = "Backport of PEP 654 (exception groups)" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2656,6 +2771,7 @@ test = ["pytest (>=6)"] name = "executing" version = "1.2.0" description = "Get the currently executing AST node of a frame, and other information" +category = "dev" optional = false python-versions = "*" files = [ @@ -2670,6 +2786,7 @@ tests = ["asttokens", "littleutils", "pytest", "rich"] name = "faiss-cpu" version = "1.7.4" description = "A library for efficient similarity search and clustering of dense vectors." +category = "main" optional = true python-versions = "*" files = [ @@ -2704,6 +2821,7 @@ files = [ name = "fastapi" version = "0.95.2" description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2725,6 +2843,7 @@ test = ["anyio[trio] (>=3.2.1,<4.0.0)", "black (==23.1.0)", "coverage[toml] (>=6 name = "fastavro" version = "1.7.4" description = "Fast read/write of AVRO files" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -2771,6 +2890,7 @@ zstandard = ["zstandard"] name = "fastjsonschema" version = "2.17.1" description = "Fastest Python implementation of JSON schema" +category = "dev" optional = false python-versions = "*" files = [ @@ -2785,6 +2905,7 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc name = "feedfinder2" version = "0.0.4" description = "Find the feed URLs for a website." +category = "main" optional = true python-versions = "*" files = [ @@ -2800,6 +2921,7 @@ six = "*" name = "feedparser" version = "6.0.10" description = "Universal feed parser, handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2814,6 +2936,7 @@ sgmllib3k = "*" name = "ffmpy" version = "0.3.1" description = "A simple Python wrapper for ffmpeg" +category = "main" optional = true python-versions = "*" files = [ @@ -2824,6 +2947,7 @@ files = [ name = "filelock" version = "3.12.2" description = "A platform independent file lock." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2839,6 +2963,7 @@ testing = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "diff-cover (>=7.5)", "p name = "filetype" version = "1.2.0" description = "Infer file type and MIME type of any file/buffer. No external dependencies." +category = "main" optional = true python-versions = "*" files = [ @@ -2850,6 +2975,7 @@ files = [ name = "fiona" version = "1.9.4.post1" description = "Fiona reads and writes spatial data files" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -2894,6 +3020,7 @@ test = ["Fiona[s3]", "pytest (>=7)", "pytest-cov", "pytz"] name = "flatbuffers" version = "23.5.26" description = "The FlatBuffers serialization format for Python" +category = "main" optional = false python-versions = "*" files = [ @@ -2905,6 +3032,7 @@ files = [ name = "fluent-logger" version = "0.10.0" description = "A Python logging handler for Fluentd event collector" +category = "main" optional = true python-versions = ">=3.5" files = [ @@ -2919,6 +3047,7 @@ msgpack = ">1.0" name = "fonttools" version = "4.41.1" description = "Tools to manipulate font files" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -2976,6 +3105,7 @@ woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] 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" files = [ @@ -2987,6 +3117,7 @@ files = [ name = "freezegun" version = "1.2.2" description = "Let your Python tests travel through time" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3001,6 +3132,7 @@ python-dateutil = ">=2.7" name = "frozenlist" version = "1.3.3" description = "A list-like structure which implements collections.abc.MutableSequence" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3084,6 +3216,7 @@ files = [ name = "fs" version = "2.4.16" description = "Python's filesystem abstraction layer" +category = "main" optional = true python-versions = "*" files = [ @@ -3103,6 +3236,7 @@ scandir = ["scandir (>=1.5,<2.0)"] name = "fsspec" version = "2023.6.0" description = "File-system specification" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3142,6 +3276,7 @@ tqdm = ["tqdm"] name = "future" version = "0.18.3" description = "Clean single-source support for Python 3 and 2" +category = "main" optional = true python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -3152,6 +3287,7 @@ files = [ name = "gast" version = "0.4.0" description = "Python AST that abstracts the underlying Python version" +category = "main" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3163,6 +3299,7 @@ files = [ name = "geojson" version = "2.5.0" description = "Python bindings and utilities for GeoJSON" +category = "main" optional = true python-versions = "*" files = [ @@ -3174,6 +3311,7 @@ files = [ name = "geomet" version = "0.2.1.post1" description = "GeoJSON <-> WKT/WKB conversion utilities" +category = "main" optional = false python-versions = ">2.6, !=3.3.*, <4" files = [ @@ -3189,6 +3327,7 @@ six = "*" name = "geopandas" version = "0.13.2" description = "Geographic pandas extensions" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -3207,6 +3346,7 @@ shapely = ">=1.7.1" name = "gitdb" version = "4.0.10" description = "Git Object Database" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -3221,6 +3361,7 @@ smmap = ">=3.0.1,<6" name = "gitpython" version = "3.1.32" description = "GitPython is a Python library used to interact with Git repositories" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -3235,6 +3376,7 @@ gitdb = ">=4.0.1,<5" name = "google-api-core" version = "2.11.1" description = "Google API client core library" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -3257,6 +3399,7 @@ grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] name = "google-api-python-client" version = "2.70.0" description = "Google API Client Library for Python" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -3265,7 +3408,7 @@ files = [ ] [package.dependencies] -google-api-core = ">=1.31.5,<2.0.dev0 || >2.3.0,<3.0.0dev" +google-api-core = ">=1.31.5,<2.0.0 || >2.3.0,<3.0.0dev" google-auth = ">=1.19.0,<3.0.0dev" google-auth-httplib2 = ">=0.1.0" httplib2 = ">=0.15.0,<1dev" @@ -3275,6 +3418,7 @@ uritemplate = ">=3.0.1,<5" name = "google-auth" version = "2.20.0" description = "Google Authentication Library" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -3300,6 +3444,7 @@ requests = ["requests (>=2.20.0,<3.0.0.dev0)"] name = "google-auth-httplib2" version = "0.1.0" description = "Google Authentication Library: httplib2 transport" +category = "main" optional = true python-versions = "*" files = [ @@ -3316,6 +3461,7 @@ six = "*" name = "google-auth-oauthlib" version = "0.4.6" description = "Google Authentication Library" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -3334,6 +3480,7 @@ tool = ["click (>=6.0.0)"] name = "google-pasta" version = "0.2.0" description = "pasta is an AST-based Python refactoring library" +category = "main" optional = true python-versions = "*" files = [ @@ -3349,6 +3496,7 @@ six = "*" name = "google-search-results" version = "2.4.2" description = "Scrape and search localized results from Google, Bing, Baidu, Yahoo, Yandex, Ebay, Homedepot, youtube at scale using SerpApi.com" +category = "main" optional = true python-versions = ">=3.5" files = [ @@ -3362,6 +3510,7 @@ requests = "*" name = "googleapis-common-protos" version = "1.59.1" description = "Common protobufs used in Google APIs" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -3379,6 +3528,7 @@ grpc = ["grpcio (>=1.44.0,<2.0.0.dev0)"] name = "gptcache" version = "0.1.32" description = "GPTCache, a powerful caching library that can be used to speed up and lower the cost of chat applications that rely on the LLM service. GPTCache works as a memcache for AIGC applications, similar to how Redis works for traditional applications." +category = "main" optional = false python-versions = ">=3.8.1" files = [ @@ -3395,6 +3545,7 @@ requests = "*" name = "gql" version = "3.4.1" description = "GraphQL client for Python" +category = "main" optional = true python-versions = "*" files = [ @@ -3421,6 +3572,7 @@ websockets = ["websockets (>=10,<11)", "websockets (>=9,<10)"] name = "gradio" version = "3.38.0" description = "Python library for easily interacting with trained machine learning models" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -3461,6 +3613,7 @@ websockets = ">=10.0,<12.0" name = "gradio-client" version = "0.2.10" description = "Python library for easily interacting with trained machine learning models" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -3481,6 +3634,7 @@ websockets = ">=10.0,<12.0" name = "graphlib-backport" version = "1.0.3" description = "Backport of the Python 3.9 graphlib module for Python 3.6+" +category = "dev" optional = false python-versions = ">=3.6,<4.0" files = [ @@ -3492,6 +3646,7 @@ files = [ name = "graphql-core" version = "3.2.3" description = "GraphQL implementation for Python, a port of GraphQL.js, the JavaScript reference implementation for GraphQL." +category = "main" optional = true python-versions = ">=3.6,<4" files = [ @@ -3503,6 +3658,7 @@ files = [ name = "greenlet" version = "2.0.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.*" files = [ @@ -3576,6 +3732,7 @@ test = ["objgraph", "psutil"] name = "grpcio" version = "1.47.5" description = "HTTP/2-based RPC framework" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3637,6 +3794,7 @@ protobuf = ["grpcio-tools (>=1.47.5)"] name = "grpcio-health-checking" version = "1.47.5" description = "Standard Health Checking Service for gRPC" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -3652,6 +3810,7 @@ protobuf = ">=3.12.0" name = "grpcio-reflection" version = "1.47.5" description = "Standard Protobuf Reflection Service for gRPC" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -3667,6 +3826,7 @@ protobuf = ">=3.12.0" name = "grpcio-tools" version = "1.47.5" description = "Protobuf code generator for gRPC" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -3727,6 +3887,7 @@ setuptools = "*" name = "h11" version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3738,6 +3899,7 @@ files = [ name = "h2" version = "4.1.0" description = "HTTP/2 State-Machine based protocol implementation" +category = "main" optional = true python-versions = ">=3.6.1" files = [ @@ -3753,6 +3915,7 @@ hyperframe = ">=6.0,<7" name = "h5py" version = "3.8.0" description = "Read and write HDF5 files from Python" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -3790,6 +3953,7 @@ numpy = ">=1.14.5" name = "hnswlib" version = "0.7.0" description = "hnswlib" +category = "main" optional = true python-versions = "*" files = [ @@ -3803,6 +3967,7 @@ numpy = "*" name = "hpack" version = "4.0.0" description = "Pure-Python HPACK header compression" +category = "main" optional = true python-versions = ">=3.6.1" files = [ @@ -3814,6 +3979,7 @@ files = [ name = "html2text" version = "2020.1.16" description = "Turn HTML into equivalent Markdown-structured text." +category = "main" optional = true python-versions = ">=3.5" files = [ @@ -3825,6 +3991,7 @@ files = [ name = "httpcore" version = "0.17.2" description = "A minimal low-level HTTP client." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -3836,16 +4003,17 @@ files = [ anyio = ">=3.0,<5.0" certifi = "*" h11 = ">=0.13,<0.15" -sniffio = "==1.*" +sniffio = ">=1.0.0,<2.0.0" [package.extras] http2 = ["h2 (>=3,<5)"] -socks = ["socksio (==1.*)"] +socks = ["socksio (>=1.0.0,<2.0.0)"] [[package]] name = "httplib2" version = "0.22.0" description = "A comprehensive HTTP client library." +category = "main" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3860,6 +4028,7 @@ pyparsing = {version = ">=2.4.2,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0 name = "httptools" version = "0.5.0" description = "A collection of framework independent HTTP protocol utils." +category = "main" optional = false python-versions = ">=3.5.0" files = [ @@ -3913,6 +4082,7 @@ test = ["Cython (>=0.29.24,<0.30.0)"] name = "httpx" version = "0.24.1" description = "The next generation HTTP client." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -3928,18 +4098,19 @@ h2 = {version = ">=3,<5", optional = true, markers = "extra == \"http2\""} httpcore = ">=0.15.0,<0.18.0" idna = "*" sniffio = "*" -socksio = {version = "==1.*", optional = true, markers = "extra == \"socks\""} +socksio = {version = ">=1.0.0,<2.0.0", optional = true, markers = "extra == \"socks\""} [package.extras] brotli = ["brotli", "brotlicffi"] -cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +cli = ["click (>=8.0.0,<9.0.0)", "pygments (>=2.0.0,<3.0.0)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] -socks = ["socksio (==1.*)"] +socks = ["socksio (>=1.0.0,<2.0.0)"] [[package]] name = "huggingface-hub" version = "0.15.1" description = "Client library to download and publish models, datasets and other repos on the huggingface.co hub" +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -3971,6 +4142,7 @@ typing = ["types-PyYAML", "types-requests", "types-simplejson", "types-toml", "t name = "humanfriendly" version = "10.0" description = "Human friendly output for text interfaces using Python" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -3985,6 +4157,7 @@ pyreadline3 = {version = "*", markers = "sys_platform == \"win32\" and python_ve name = "humbug" version = "0.3.1" description = "Humbug: Do you build developer tools? Humbug helps you know your users." +category = "main" optional = false python-versions = "*" files = [ @@ -4004,6 +4177,7 @@ profile = ["GPUtil", "psutil", "types-psutil"] name = "hyperframe" version = "6.0.1" description = "HTTP/2 framing layer for Python" +category = "main" optional = true python-versions = ">=3.6.1" files = [ @@ -4015,6 +4189,7 @@ files = [ name = "idna" version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -4026,6 +4201,7 @@ files = [ name = "importlib-metadata" version = "6.0.1" description = "Read metadata from Python packages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4045,6 +4221,7 @@ testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3)", "packag name = "importlib-resources" version = "5.12.0" description = "Read resources from Python packages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4063,6 +4240,7 @@ testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-chec name = "inflection" version = "0.5.1" description = "A port of Ruby on Rails inflector to Python" +category = "main" optional = true python-versions = ">=3.5" files = [ @@ -4074,6 +4252,7 @@ files = [ name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4085,6 +4264,7 @@ files = [ name = "ipykernel" version = "6.23.2" description = "IPython Kernel for Jupyter" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -4098,7 +4278,7 @@ comm = ">=0.1.1" debugpy = ">=1.6.5" ipython = ">=7.23.1" jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" matplotlib-inline = ">=0.1" nest-asyncio = "*" packaging = "*" @@ -4118,6 +4298,7 @@ test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio" name = "ipython" version = "8.12.2" description = "IPython: Productive Interactive Computing" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -4157,6 +4338,7 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pa name = "ipython-genutils" version = "0.2.0" description = "Vestigial utilities from IPython" +category = "dev" optional = false python-versions = "*" files = [ @@ -4168,6 +4350,7 @@ files = [ name = "ipywidgets" version = "8.0.6" description = "Jupyter interactive widgets" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4189,6 +4372,7 @@ test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] name = "isodate" version = "0.6.1" description = "An ISO 8601 date/time/duration parser and formatter" +category = "main" optional = true python-versions = "*" files = [ @@ -4203,6 +4387,7 @@ six = "*" name = "isoduration" version = "20.11.0" description = "Operations with ISO 8601 durations" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4217,6 +4402,7 @@ arrow = ">=0.15.0" name = "jaraco-context" version = "4.3.0" description = "Context managers by jaraco" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -4232,6 +4418,7 @@ testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-chec name = "jcloud" version = "0.2.12" description = "Simplify deploying and managing Jina projects on Jina Cloud" +category = "main" optional = true python-versions = "*" files = [ @@ -4254,6 +4441,7 @@ test = ["black (==22.3.0)", "jina (>=3.7.0)", "mock", "pytest", "pytest-asyncio" name = "jedi" version = "0.18.2" description = "An autocompletion tool for Python that can be used for text editors." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -4273,6 +4461,7 @@ testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] name = "jieba3k" version = "0.35.1" description = "Chinese Words Segementation Utilities" +category = "main" optional = true python-versions = "*" files = [ @@ -4283,6 +4472,7 @@ files = [ name = "jina" version = "3.14.1" description = "Build multimodal AI services via cloud native technologies · Neural Search · Generative AI · MLOps" +category = "main" optional = true python-versions = "*" files = [ @@ -4398,6 +4588,7 @@ websockets = ["websockets"] name = "jina-hubble-sdk" version = "0.38.0" description = "SDK for Hubble API at Jina AI." +category = "main" optional = true python-versions = ">=3.7.0" files = [ @@ -4423,6 +4614,7 @@ full = ["aiohttp", "black (==22.3.0)", "docker", "filelock", "flake8 (==4.0.1)", name = "jinja2" version = "3.1.2" description = "A very fast and expressive template engine." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4440,6 +4632,7 @@ i18n = ["Babel (>=2.7)"] name = "jmespath" version = "1.0.1" description = "JSON Matching Expressions" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4451,6 +4644,7 @@ files = [ name = "joblib" version = "1.2.0" description = "Lightweight pipelining with Python functions" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4462,6 +4656,7 @@ files = [ name = "jq" version = "1.4.1" description = "jq is a lightweight and flexible JSON processor." +category = "main" optional = true python-versions = ">=3.5" files = [ @@ -4526,6 +4721,7 @@ files = [ name = "jsonable" version = "0.3.1" description = "An abstract class that supports jsonserialization/deserialization." +category = "main" optional = true python-versions = "*" files = [ @@ -4537,6 +4733,7 @@ files = [ name = "jsonlines" version = "3.1.0" description = "Library with helpers for the jsonlines file format" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -4551,6 +4748,7 @@ attrs = ">=19.2.0" 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.*" files = [ @@ -4561,6 +4759,7 @@ files = [ name = "jsonschema" version = "4.17.3" description = "An implementation of JSON Schema validation for Python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4590,6 +4789,7 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "jupyter" version = "1.0.0" description = "Jupyter metapackage. Install all the Jupyter components in one go." +category = "dev" optional = false python-versions = "*" files = [ @@ -4610,6 +4810,7 @@ qtconsole = "*" name = "jupyter-client" version = "7.4.9" description = "Jupyter protocol implementation and client libraries" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4634,6 +4835,7 @@ test = ["codecov", "coverage", "ipykernel (>=6.12)", "ipython", "mypy", "pre-com name = "jupyter-console" version = "6.6.3" description = "Jupyter terminal console" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4645,7 +4847,7 @@ files = [ ipykernel = ">=6.14" ipython = "*" jupyter-client = ">=7.0.0" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" prompt-toolkit = ">=3.0.30" pygments = "*" pyzmq = ">=17" @@ -4658,6 +4860,7 @@ test = ["flaky", "pexpect", "pytest"] name = "jupyter-core" version = "5.3.1" description = "Jupyter core package. A base package on which Jupyter projects rely." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -4678,6 +4881,7 @@ test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] name = "jupyter-events" version = "0.6.3" description = "Jupyter Event System library" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4702,6 +4906,7 @@ test = ["click", "coverage", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>= name = "jupyter-server" version = "2.6.0" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -4714,7 +4919,7 @@ anyio = ">=3.1.0" argon2-cffi = "*" jinja2 = "*" jupyter-client = ">=7.4.4" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" jupyter-events = ">=0.6.0" jupyter-server-terminals = "*" nbconvert = ">=6.4.4" @@ -4738,6 +4943,7 @@ test = ["ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-scripts", " name = "jupyter-server-terminals" version = "0.4.4" description = "A Jupyter Server Extension Providing Terminals." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -4757,6 +4963,7 @@ test = ["coverage", "jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-cov", name = "jupyterlab-pygments" version = "0.2.2" description = "Pygments theme using JupyterLab CSS variables" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4768,6 +4975,7 @@ files = [ name = "jupyterlab-widgets" version = "3.0.7" description = "Jupyter interactive widgets for JupyterLab" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4779,6 +4987,7 @@ files = [ name = "keras" version = "2.11.0" description = "Deep learning for humans." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -4789,6 +4998,7 @@ files = [ name = "kiwisolver" version = "1.4.4" description = "A fast implementation of the Cassowary constraint solver" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -4866,6 +5076,7 @@ files = [ name = "lancedb" version = "0.1.8" description = "lancedb" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -4888,6 +5099,7 @@ tests = ["doctest", "pytest", "pytest-mock"] name = "langcodes" version = "3.3.0" description = "Tools for labeling human languages with IETF language tags" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -4902,6 +5114,7 @@ data = ["language-data (>=1.1,<2.0)"] name = "langkit" version = "0.0.6" description = "A collection of text metric udfs for whylogs profiling and monitoring in WhyLabs" +category = "main" optional = true python-versions = ">=3.8,<4.0" files = [ @@ -4921,6 +5134,7 @@ all = ["datasets (>=2.12.0,<3.0.0)", "nltk (>=3.8.1,<4.0.0)", "openai (>=0.27.6, name = "langsmith" version = "0.0.11" description = "Client library to connect to the LangSmith LLM Tracing and Evaluation Platform." +category = "main" optional = false python-versions = ">=3.8.1,<4.0" files = [ @@ -4936,6 +5150,7 @@ requests = ">=2,<3" name = "lark" version = "1.1.5" description = "a modern parsing library" +category = "main" optional = false python-versions = "*" files = [ @@ -4952,6 +5167,7 @@ regex = ["regex"] name = "lazy-loader" version = "0.3" description = "lazy_loader" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -4967,6 +5183,7 @@ test = ["pytest (>=7.4)", "pytest-cov (>=4.1)"] name = "libclang" version = "16.0.0" description = "Clang Python Bindings, mirrored from the official LLVM repo: https://github.com/llvm/llvm-project/tree/main/clang/bindings/python, to make the installation process easier." +category = "main" optional = true python-versions = "*" files = [ @@ -4984,6 +5201,7 @@ files = [ name = "libdeeplake" version = "0.0.60" description = "C++ backend for Deep Lake" +category = "main" optional = false python-versions = "*" files = [ @@ -5016,6 +5234,7 @@ numpy = "*" name = "librosa" version = "0.10.0.post2" description = "Python module for audio and music processing" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -5040,13 +5259,14 @@ typing-extensions = ">=4.1.1" [package.extras] display = ["matplotlib (>=3.3.0)"] -docs = ["ipython (>=7.0)", "matplotlib (>=3.3.0)", "mir-eval (>=0.5)", "numba (>=0.51)", "numpydoc", "presets", "sphinx (!=1.3.1,<6)", "sphinx-gallery (>=0.7)", "sphinx-multiversion (>=0.2.3)", "sphinx-rtd-theme (==1.*)", "sphinxcontrib-svg2pdfconverter"] +docs = ["ipython (>=7.0)", "matplotlib (>=3.3.0)", "mir-eval (>=0.5)", "numba (>=0.51)", "numpydoc", "presets", "sphinx (!=1.3.1,<6)", "sphinx-gallery (>=0.7)", "sphinx-multiversion (>=0.2.3)", "sphinx-rtd-theme (>=1.0.0,<2.0.0)", "sphinxcontrib-svg2pdfconverter"] tests = ["matplotlib (>=3.3.0)", "packaging (>=20.0)", "pytest", "pytest-cov", "pytest-mpl", "resampy (>=0.2.2)", "samplerate", "types-decorator"] [[package]] name = "linkify-it-py" version = "2.0.2" description = "Links recognition library with FULL unicode support." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -5067,6 +5287,7 @@ test = ["coverage", "pytest", "pytest-cov"] name = "llvmlite" version = "0.40.1" description = "lightweight wrapper around basic LLVM functionality" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -5100,6 +5321,7 @@ files = [ name = "loguru" version = "0.7.0" description = "Python logging made (stupidly) simple" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -5118,6 +5340,7 @@ dev = ["Sphinx (==5.3.0)", "colorama (==0.4.5)", "colorama (==0.4.6)", "freezegu name = "lxml" version = "4.9.2" description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +category = "main" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" files = [ @@ -5210,6 +5433,7 @@ source = ["Cython (>=0.29.7)"] name = "lz4" version = "4.3.2" description = "LZ4 Bindings for Python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5259,6 +5483,7 @@ tests = ["psutil", "pytest (!=3.3.0)", "pytest-cov"] name = "manifest-ml" version = "0.0.1" description = "Manifest for Prompt Programming Foundation Models." +category = "main" optional = true python-versions = ">=3.8.0" files = [ @@ -5282,6 +5507,7 @@ dev = ["autopep8 (>=1.6.0)", "black (>=22.3.0)", "docformatter (>=1.4)", "flake8 name = "markdown" version = "3.4.3" description = "Python implementation of John Gruber's Markdown." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -5296,6 +5522,7 @@ testing = ["coverage", "pyyaml"] name = "markdown-it-py" version = "2.2.0" description = "Python port of markdown-it. Markdown parsing, done right!" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -5321,6 +5548,7 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] name = "markupsafe" version = "2.1.3" description = "Safely add untrusted strings to HTML/XML markup." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5380,6 +5608,7 @@ files = [ name = "marqo" version = "0.11.0" description = "Tensor search for humans" +category = "main" optional = true python-versions = ">=3" files = [ @@ -5396,6 +5625,7 @@ urllib3 = "*" name = "marshmallow" version = "3.19.0" description = "A lightweight library for converting complex datatypes to and from native Python datatypes." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5416,6 +5646,7 @@ tests = ["pytest", "pytz", "simplejson"] name = "marshmallow-enum" version = "1.5.1" description = "Enum field for Marshmallow" +category = "main" optional = false python-versions = "*" files = [ @@ -5430,6 +5661,7 @@ marshmallow = ">=2.0.0" name = "mastodon-py" version = "1.8.1" description = "Python wrapper for the Mastodon API" +category = "dev" optional = false python-versions = "*" files = [ @@ -5455,6 +5687,7 @@ webpush = ["cryptography (>=1.6.0)", "http-ece (>=1.0.5)"] name = "matplotlib" version = "3.7.2" description = "Python plotting package" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -5517,6 +5750,7 @@ python-dateutil = ">=2.7" name = "matplotlib-inline" version = "0.1.6" description = "Inline Matplotlib backend for Jupyter" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -5531,6 +5765,7 @@ traitlets = "*" name = "mdit-py-plugins" version = "0.3.3" description = "Collection of plugins for markdown-it-py" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -5550,6 +5785,7 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] name = "mdurl" version = "0.1.2" description = "Markdown URL utilities" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -5561,6 +5797,7 @@ files = [ name = "mistune" version = "2.0.5" description = "A sane Markdown parser with useful plugins and renderers" +category = "dev" optional = false python-versions = "*" files = [ @@ -5572,6 +5809,7 @@ files = [ name = "mmh3" version = "3.1.0" description = "Python wrapper for MurmurHash (MurmurHash3), a set of fast and robust hash functions." +category = "main" optional = false python-versions = "*" files = [ @@ -5616,6 +5854,7 @@ files = [ name = "momento" version = "1.6.0" description = "SDK for Momento" +category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -5632,6 +5871,7 @@ pyjwt = ">=2.4.0,<3.0.0" name = "momento-wire-types" version = "0.64.1" description = "Momento Client Proto Generated Files" +category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -5647,6 +5887,7 @@ protobuf = ">=3,<5" name = "monotonic" version = "1.6" description = "An implementation of time.monotonic() for Python 2 & < 3.3" +category = "dev" optional = false python-versions = "*" files = [ @@ -5658,6 +5899,7 @@ files = [ name = "more-itertools" version = "9.1.0" description = "More routines for operating on iterables, beyond itertools" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -5669,6 +5911,7 @@ files = [ name = "mpmath" version = "1.3.0" description = "Python library for arbitrary-precision floating-point arithmetic" +category = "main" optional = false python-versions = "*" files = [ @@ -5686,6 +5929,7 @@ tests = ["pytest (>=4.6)"] name = "msal" version = "1.22.0" description = "The Microsoft Authentication Library (MSAL) for Python library enables your app to access the Microsoft Cloud by supporting authentication of users with Microsoft Azure Active Directory accounts (AAD) and Microsoft Accounts (MSA) using industry standard OAuth2 and OpenID Connect." +category = "main" optional = true python-versions = "*" files = [ @@ -5705,6 +5949,7 @@ broker = ["pymsalruntime (>=0.13.2,<0.14)"] name = "msal-extensions" version = "1.0.0" description = "Microsoft Authentication Library extensions (MSAL EX) provides a persistence API that can save your data on disk, encrypted on Windows, macOS and Linux. Concurrent data access will be coordinated by a file lock mechanism." +category = "main" optional = true python-versions = "*" files = [ @@ -5723,6 +5968,7 @@ portalocker = [ name = "msgpack" version = "1.0.5" description = "MessagePack serializer" +category = "main" optional = true python-versions = "*" files = [ @@ -5795,6 +6041,7 @@ files = [ name = "msrest" version = "0.7.1" description = "AutoRest swagger generator Python client runtime." +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -5816,6 +6063,7 @@ async = ["aiodns", "aiohttp (>=3.0)"] name = "multidict" version = "6.0.4" description = "multidict implementation" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5899,6 +6147,7 @@ files = [ name = "multiprocess" version = "0.70.14" description = "better multiprocessing and multithreading in python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5925,6 +6174,7 @@ dill = ">=0.3.6" name = "murmurhash" version = "1.0.9" description = "Cython bindings for MurmurHash" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -5962,6 +6212,7 @@ files = [ name = "mwcli" version = "0.0.3" description = "Utilities for processing MediaWiki on the command line." +category = "main" optional = true python-versions = "*" files = [ @@ -5978,6 +6229,7 @@ para = "*" name = "mwparserfromhell" version = "0.6.4" description = "MWParserFromHell is a parser for MediaWiki wikicode." +category = "main" optional = true python-versions = ">= 3.6" files = [ @@ -6015,6 +6267,7 @@ files = [ name = "mwtypes" version = "0.3.2" description = "A set of types for processing MediaWiki data." +category = "main" optional = true python-versions = "*" files = [ @@ -6029,6 +6282,7 @@ jsonable = ">=0.3.0" name = "mwxml" version = "0.3.3" description = "A set of utilities for processing MediaWiki XML dump data." +category = "main" optional = true python-versions = "*" files = [ @@ -6046,6 +6300,7 @@ para = ">=0.0.1" name = "mypy" version = "0.991" description = "Optional static typing for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -6096,6 +6351,7 @@ reports = ["lxml"] name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -6107,6 +6363,7 @@ files = [ name = "mypy-protobuf" version = "3.3.0" description = "Generate mypy stub files from protobuf specs" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -6122,6 +6379,7 @@ types-protobuf = ">=3.19.12" name = "nbclassic" version = "1.0.0" description = "Jupyter Notebook as a Jupyter Server extension." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -6157,6 +6415,7 @@ test = ["coverage", "nbval", "pytest", "pytest-cov", "pytest-jupyter", "pytest-p name = "nbclient" version = "0.7.4" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +category = "dev" optional = false python-versions = ">=3.7.0" files = [ @@ -6166,7 +6425,7 @@ files = [ [package.dependencies] jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" nbformat = ">=5.1" traitlets = ">=5.3" @@ -6179,6 +6438,7 @@ test = ["flaky", "ipykernel", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "p name = "nbconvert" version = "7.5.0" description = "Converting Jupyter Notebooks" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -6217,6 +6477,7 @@ webpdf = ["pyppeteer (>=1,<1.1)"] name = "nbformat" version = "5.9.0" description = "The Jupyter Notebook format" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -6238,6 +6499,7 @@ test = ["pep440", "pre-commit", "pytest", "testpath"] name = "nebula3-python" version = "3.4.0" description = "Python client for NebulaGraph V3.4" +category = "main" optional = true python-versions = "*" files = [ @@ -6255,6 +6517,7 @@ six = ">=1.16.0" name = "neo4j" version = "5.9.0" description = "Neo4j Bolt driver for Python" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -6272,6 +6535,7 @@ pandas = ["numpy (>=1.7.0,<2.0.0)", "pandas (>=1.1.0,<3.0.0)"] name = "nest-asyncio" version = "1.5.6" description = "Patch asyncio to allow nested event loops" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -6283,6 +6547,7 @@ files = [ name = "networkx" version = "2.8.8" description = "Python package for creating and manipulating graphs and networks" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -6301,6 +6566,7 @@ test = ["codecov (>=2.1)", "pytest (>=7.2)", "pytest-cov (>=4.0)"] name = "newspaper3k" version = "0.2.8" description = "Simplified python article discovery & extraction." +category = "main" optional = true python-versions = "*" files = [ @@ -6327,6 +6593,7 @@ tldextract = ">=2.0.1" name = "nlpcloud" version = "1.0.42" description = "Python client for the NLP Cloud API" +category = "main" optional = true python-versions = "*" files = [ @@ -6341,6 +6608,7 @@ requests = "*" name = "nltk" version = "3.8.1" description = "Natural Language Toolkit" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -6366,6 +6634,7 @@ twitter = ["twython"] name = "nomic" version = "1.1.14" description = "The offical Nomic python client." +category = "main" optional = true python-versions = "*" files = [ @@ -6393,6 +6662,7 @@ gpt4all = ["peft (==0.3.0.dev0)", "sentencepiece", "torch", "transformers (==4.2 name = "notebook" version = "6.5.4" description = "A web-based notebook environment for interactive computing" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -6427,6 +6697,7 @@ test = ["coverage", "nbval", "pytest", "pytest-cov", "requests", "requests-unixs name = "notebook-shim" version = "0.2.3" description = "A shim layer for notebook traits and config" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -6444,6 +6715,7 @@ test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync" name = "numba" version = "0.57.1" description = "compiling Python code using LLVM" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -6475,13 +6747,14 @@ files = [ [package.dependencies] importlib-metadata = {version = "*", markers = "python_version < \"3.9\""} -llvmlite = "==0.40.*" +llvmlite = ">=0.40.0dev0,<0.41" numpy = ">=1.21,<1.25" [[package]] name = "numcodecs" version = "0.11.0" description = "A Python package providing buffer compression and transformation codecs for use" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -6514,6 +6787,7 @@ zfpy = ["zfpy (>=1.0.0)"] name = "numexpr" version = "2.8.4" description = "Fast numerical expression evaluator for NumPy" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -6556,6 +6830,7 @@ numpy = ">=1.13.3" name = "numpy" version = "1.24.3" description = "Fundamental package for array computing in Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -6593,6 +6868,7 @@ files = [ name = "nvidia-cublas-cu11" version = "11.10.3.66" description = "CUBLAS native runtime libraries" +category = "main" optional = false python-versions = ">=3" files = [ @@ -6608,6 +6884,7 @@ wheel = "*" name = "nvidia-cuda-nvrtc-cu11" version = "11.7.99" description = "NVRTC native runtime libraries" +category = "main" optional = false python-versions = ">=3" files = [ @@ -6624,6 +6901,7 @@ wheel = "*" name = "nvidia-cuda-runtime-cu11" version = "11.7.99" description = "CUDA Runtime native Libraries" +category = "main" optional = false python-versions = ">=3" files = [ @@ -6639,6 +6917,7 @@ wheel = "*" name = "nvidia-cudnn-cu11" version = "8.5.0.96" description = "cuDNN runtime libraries" +category = "main" optional = false python-versions = ">=3" files = [ @@ -6654,6 +6933,7 @@ wheel = "*" name = "o365" version = "2.0.27" description = "Microsoft Graph and Office 365 API made easy" +category = "main" optional = true python-versions = ">=3.4" files = [ @@ -6674,6 +6954,7 @@ tzlocal = ">=4.0,<5.0" name = "oauthlib" version = "3.2.2" description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -6690,6 +6971,7 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] name = "octoai-sdk" version = "0.1.1" description = "A runtime library for OctoAI." +category = "main" optional = true python-versions = ">=3.8.1,<4.0.0" files = [ @@ -6713,6 +6995,7 @@ uvicorn = ">=0.22.0,<0.23.0" name = "onnxruntime" version = "1.15.1" description = "ONNX Runtime is a runtime accelerator for Machine Learning models" +category = "dev" optional = false python-versions = "*" files = [ @@ -6754,6 +7037,7 @@ sympy = "*" name = "openai" version = "0.27.8" description = "Python client library for the OpenAI API" +category = "main" optional = false python-versions = ">=3.7.1" files = [ @@ -6768,7 +7052,7 @@ tqdm = "*" [package.extras] datalib = ["numpy", "openpyxl (>=3.0.7)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] -dev = ["black (>=21.6b0,<22.0)", "pytest (==6.*)", "pytest-asyncio", "pytest-mock"] +dev = ["black (>=21.6b0,<22.0)", "pytest (>=6.0.0,<7.0.0)", "pytest-asyncio", "pytest-mock"] embeddings = ["matplotlib", "numpy", "openpyxl (>=3.0.7)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)", "plotly", "scikit-learn (>=1.0.2)", "scipy", "tenacity (>=8.0.1)"] wandb = ["numpy", "openpyxl (>=3.0.7)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)", "wandb"] @@ -6776,6 +7060,7 @@ wandb = ["numpy", "openpyxl (>=3.0.7)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1 name = "openapi-schema-pydantic" version = "1.2.4" description = "OpenAPI (v3) specification schema as pydantic class" +category = "main" optional = false python-versions = ">=3.6.1" files = [ @@ -6790,6 +7075,7 @@ pydantic = ">=1.8.2" name = "openllm" version = "0.1.19" description = "OpenLLM: REST/gRPC API server for running any open Large-Language Model - StableLM, Llama, Alpaca, Dolly, Flan-T5, Custom" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -6824,6 +7110,7 @@ starcoder = ["bitsandbytes"] name = "openlm" version = "0.0.5" description = "Drop-in OpenAI-compatible that can call LLMs from other providers" +category = "main" optional = true python-versions = ">=3.8.1,<4.0" files = [ @@ -6838,6 +7125,7 @@ requests = ">=2,<3" name = "opensearch-py" version = "2.2.0" description = "Python client for OpenSearch" +category = "main" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4" files = [ @@ -6862,6 +7150,7 @@ kerberos = ["requests-kerberos"] name = "opentelemetry-api" version = "1.17.0" description = "OpenTelemetry Python API" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -6878,6 +7167,7 @@ setuptools = ">=16.0" name = "opentelemetry-exporter-otlp" version = "1.17.0" description = "OpenTelemetry Collector Exporters" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -6893,6 +7183,7 @@ opentelemetry-exporter-otlp-proto-http = "1.17.0" name = "opentelemetry-exporter-otlp-proto-grpc" version = "1.17.0" description = "OpenTelemetry Collector Protobuf over gRPC Exporter" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -6915,6 +7206,7 @@ test = ["pytest-grpc"] name = "opentelemetry-exporter-otlp-proto-http" version = "1.17.0" description = "OpenTelemetry Collector Protobuf over HTTP Exporter" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -6937,6 +7229,7 @@ test = ["responses (==0.22.0)"] name = "opentelemetry-exporter-prometheus" version = "1.12.0rc1" description = "Prometheus Metric Exporter for OpenTelemetry" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -6953,6 +7246,7 @@ prometheus-client = ">=0.5.0,<1.0.0" name = "opentelemetry-instrumentation" version = "0.38b0" description = "Instrumentation Tools & Auto Instrumentation for OpenTelemetry Python" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -6969,6 +7263,7 @@ wrapt = ">=1.0.0,<2.0.0" name = "opentelemetry-instrumentation-aiohttp-client" version = "0.38b0" description = "OpenTelemetry aiohttp client instrumentation" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -6991,6 +7286,7 @@ test = ["opentelemetry-instrumentation-aiohttp-client[instruments]"] name = "opentelemetry-instrumentation-asgi" version = "0.38b0" description = "ASGI instrumentation for OpenTelemetry" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -7013,6 +7309,7 @@ test = ["opentelemetry-instrumentation-asgi[instruments]", "opentelemetry-test-u name = "opentelemetry-instrumentation-fastapi" version = "0.38b0" description = "OpenTelemetry FastAPI Instrumentation" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -7035,6 +7332,7 @@ test = ["httpx (>=0.22,<1.0)", "opentelemetry-instrumentation-fastapi[instrument name = "opentelemetry-instrumentation-grpc" version = "0.38b0" description = "OpenTelemetry gRPC instrumentation" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -7057,6 +7355,7 @@ test = ["opentelemetry-instrumentation-grpc[instruments]", "opentelemetry-sdk (> name = "opentelemetry-proto" version = "1.17.0" description = "OpenTelemetry Python Proto" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -7071,6 +7370,7 @@ protobuf = ">=3.19,<5.0" name = "opentelemetry-sdk" version = "1.17.0" description = "OpenTelemetry Python SDK" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -7088,6 +7388,7 @@ typing-extensions = ">=3.7.4" name = "opentelemetry-semantic-conventions" version = "0.38b0" description = "OpenTelemetry Semantic Conventions" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -7099,6 +7400,7 @@ files = [ name = "opentelemetry-util-http" version = "0.38b0" description = "Web util for OpenTelemetry" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -7110,6 +7412,7 @@ files = [ name = "opt-einsum" version = "3.3.0" description = "Optimizing numpys einsum function" +category = "main" optional = true python-versions = ">=3.5" files = [ @@ -7128,6 +7431,7 @@ tests = ["pytest", "pytest-cov", "pytest-pep8"] name = "optimum" version = "1.8.8" description = "Optimum Library is an extension of the Hugging Face Transformers library, providing a framework to integrate third-party libraries from Hardware Partners and interface with their specific functionality." +category = "main" optional = true python-versions = ">=3.7.0" files = [ @@ -7168,6 +7472,7 @@ tests = ["Pillow", "diffusers (>=0.17.0)", "parameterized", "pytest", "pytest-xd name = "orjson" version = "3.9.1" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -7223,6 +7528,7 @@ files = [ name = "overrides" version = "7.3.1" description = "A decorator to automatically detect mismatch when overriding a method." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -7234,6 +7540,7 @@ files = [ name = "packaging" version = "23.1" description = "Core utilities for Python packages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -7245,6 +7552,7 @@ files = [ name = "pandas" version = "2.0.2" description = "Powerful data structures for data analysis, time series, and statistics" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -7312,6 +7620,7 @@ xml = ["lxml (>=4.6.3)"] 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.*" files = [ @@ -7323,6 +7632,7 @@ files = [ name = "para" version = "0.0.8" description = "a set utilities that ake advantage of python's 'multiprocessing' module to distribute CPU-intensive tasks" +category = "main" optional = true python-versions = "*" files = [ @@ -7334,6 +7644,7 @@ files = [ name = "parso" version = "0.8.3" description = "A Python Parser" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -7349,6 +7660,7 @@ testing = ["docopt", "pytest (<6.0.0)"] name = "pathos" version = "0.3.0" description = "parallel graph management and execution in heterogeneous computing" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -7366,6 +7678,7 @@ ppft = ">=1.7.6.6" name = "pathspec" version = "0.11.1" description = "Utility library for gitignore style pattern matching of file paths." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -7377,6 +7690,7 @@ files = [ name = "pathy" version = "0.10.1" description = "pathlib.Path subclasses for local and cloud bucket storage" +category = "main" optional = true python-versions = ">= 3.6" files = [ @@ -7399,6 +7713,7 @@ test = ["mock", "pytest", "pytest-coverage", "typer-cli"] name = "pdfminer-six" version = "20221105" description = "PDF parser and analyzer" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -7419,6 +7734,7 @@ image = ["Pillow"] name = "pexpect" version = "4.8.0" description = "Pexpect allows easy control of interactive console applications." +category = "main" optional = false python-versions = "*" files = [ @@ -7433,6 +7749,7 @@ ptyprocess = ">=0.5" name = "pgvector" version = "0.1.8" description = "pgvector support for Python" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -7446,6 +7763,7 @@ numpy = "*" name = "pickleshare" version = "0.7.5" description = "Tiny 'shelve'-like database with concurrency support" +category = "dev" optional = false python-versions = "*" files = [ @@ -7457,6 +7775,7 @@ files = [ name = "pillow" version = "9.5.0" description = "Python Imaging Library (Fork)" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -7536,6 +7855,7 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa name = "pinecone-client" version = "2.2.2" description = "Pinecone client and SDK" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -7561,6 +7881,7 @@ grpc = ["googleapis-common-protos (>=1.53.0)", "grpc-gateway-protoc-gen-openapiv name = "pinecone-text" version = "0.4.2" description = "Text utilities library by Pinecone.io" +category = "main" optional = false python-versions = ">=3.8,<4.0" files = [ @@ -7580,6 +7901,7 @@ wget = ">=3.2,<4.0" name = "pip" version = "23.1.2" description = "The PyPA recommended tool for installing Python packages." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -7591,6 +7913,7 @@ files = [ name = "pip-requirements-parser" version = "32.0.1" description = "pip requirements parser - a mostly correct pip requirements parsing library because it uses pip's own code." +category = "main" optional = true python-versions = ">=3.6.0" files = [ @@ -7610,6 +7933,7 @@ testing = ["aboutcode-toolkit (>=6.0.0)", "black", "pytest (>=6,!=7.0.0)", "pyte name = "pip-tools" version = "6.13.0" description = "pip-tools keeps your pinned dependencies fresh." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -7632,6 +7956,7 @@ testing = ["flit-core (>=2,<4)", "poetry-core (>=1.0.0)", "pytest (>=7.2.0)", "p name = "pkgutil-resolve-name" version = "1.3.10" description = "Resolve a name to an object." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -7643,6 +7968,7 @@ files = [ name = "platformdirs" version = "3.6.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -7658,6 +7984,7 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest- name = "playwright" version = "1.35.0" description = "A high-level API to automate web browsers" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -7679,6 +8006,7 @@ typing-extensions = {version = "*", markers = "python_version <= \"3.8\""} name = "pluggy" version = "1.0.0" description = "plugin and hook calling mechanisms for python" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -7694,6 +8022,7 @@ testing = ["pytest", "pytest-benchmark"] name = "pooch" version = "1.6.0" description = "\"Pooch manages your Python library's sample data files: it automatically downloads and stores them in a local directory, with support for versioning and corruption checks.\"" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -7715,6 +8044,7 @@ xxhash = ["xxhash (>=1.4.3)"] name = "portalocker" version = "2.7.0" description = "Wraps the portalocker recipe for easy usage" +category = "main" optional = true python-versions = ">=3.5" files = [ @@ -7734,6 +8064,7 @@ tests = ["pytest (>=5.4.1)", "pytest-cov (>=2.8.1)", "pytest-mypy (>=0.8.0)", "p name = "posthog" version = "3.0.1" description = "Integrate PostHog into any python application." +category = "dev" optional = false python-versions = "*" files = [ @@ -7757,6 +8088,7 @@ test = ["coverage", "flake8", "freezegun (==0.3.15)", "mock (>=2.0.0)", "pylint" name = "pox" version = "0.3.2" description = "utilities for filesystem exploration and automated builds" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -7768,6 +8100,7 @@ files = [ name = "ppft" version = "1.7.6.6" description = "distributed and parallel python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -7782,6 +8115,7 @@ dill = ["dill (>=0.3.6)"] name = "preshed" version = "3.0.8" description = "Cython hash table that trusts the keys are pre-hashed" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -7823,6 +8157,7 @@ murmurhash = ">=0.28.0,<1.1.0" name = "prometheus-client" version = "0.17.0" description = "Python client for the Prometheus monitoring system." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -7837,6 +8172,7 @@ twisted = ["twisted"] name = "prompt-toolkit" version = "3.0.38" description = "Library for building powerful interactive command lines in Python" +category = "dev" optional = false python-versions = ">=3.7.0" files = [ @@ -7851,6 +8187,7 @@ wcwidth = "*" name = "promptlayer" version = "0.1.89" description = "PromptLayer is a package to keep track of your GPT models training" +category = "dev" optional = false python-versions = "*" files = [ @@ -7865,6 +8202,7 @@ requests = "*" name = "protobuf" version = "3.19.6" description = "Protocol Buffers" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -7899,6 +8237,7 @@ files = [ name = "psutil" version = "5.9.5" description = "Cross-platform lib for process and system monitoring in Python." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -7925,6 +8264,7 @@ test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] name = "psychicapi" version = "0.8.0" description = "Psychic.dev is an open-source data integration platform for LLMs. This is the Python client for Psychic" +category = "main" optional = true python-versions = "*" files = [ @@ -7939,6 +8279,7 @@ requests = "*" name = "psycopg2-binary" version = "2.9.6" description = "psycopg2 - Python-PostgreSQL Database Adapter" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -8010,6 +8351,7 @@ files = [ name = "ptyprocess" version = "0.7.0" description = "Run a subprocess in a pseudo terminal" +category = "main" optional = false python-versions = "*" files = [ @@ -8021,6 +8363,7 @@ files = [ name = "pulsar-client" version = "3.2.0" description = "Apache Pulsar Python client library" +category = "dev" optional = false python-versions = "*" files = [ @@ -8068,6 +8411,7 @@ functions = ["apache-bookkeeper-client (>=4.16.1)", "grpcio (>=1.8.2)", "prometh name = "pure-eval" version = "0.2.2" description = "Safely evaluate AST nodes without side effects" +category = "dev" optional = false python-versions = "*" files = [ @@ -8082,6 +8426,7 @@ tests = ["pytest"] name = "py" version = "1.11.0" description = "library with cross-python path, ini-parsing, io, code, log facilities" +category = "main" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -8093,6 +8438,7 @@ files = [ name = "py-trello" version = "0.19.0" description = "Python wrapper around the Trello API" +category = "main" optional = true python-versions = "*" files = [ @@ -8109,6 +8455,7 @@ requests-oauthlib = ">=0.4.1" name = "py4j" version = "0.10.9.7" description = "Enables Python programs to dynamically access arbitrary Java objects" +category = "main" optional = true python-versions = "*" files = [ @@ -8120,6 +8467,7 @@ files = [ name = "pyaes" version = "1.6.1" description = "Pure-Python Implementation of the AES block-cipher and common modes of operation" +category = "main" optional = true python-versions = "*" files = [ @@ -8130,6 +8478,7 @@ files = [ name = "pyarrow" version = "12.0.1" description = "Python library for Apache Arrow" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -8167,6 +8516,7 @@ numpy = ">=1.16.6" name = "pyasn1" version = "0.5.0" description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" +category = "main" optional = true python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -8178,6 +8528,7 @@ files = [ name = "pyasn1-modules" version = "0.3.0" description = "A collection of ASN.1-based protocols modules" +category = "main" optional = true python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -8192,6 +8543,7 @@ pyasn1 = ">=0.4.6,<0.6.0" name = "pycares" version = "4.3.0" description = "Python interface for c-ares" +category = "main" optional = true python-versions = "*" files = [ @@ -8259,6 +8611,7 @@ idna = ["idna (>=2.1)"] 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.*" files = [ @@ -8270,6 +8623,7 @@ files = [ name = "pydantic" version = "1.10.9" description = "Data validation and settings management using python type hints" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -8322,6 +8676,7 @@ email = ["email-validator (>=1.0.3)"] name = "pydeck" version = "0.8.0" description = "Widget for deck.gl maps" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -8341,6 +8696,7 @@ jupyter = ["ipykernel (>=5.1.2)", "ipython (>=5.8.0)", "ipywidgets (>=7,<8)", "t name = "pydub" version = "0.25.1" description = "Manipulate audio with an simple and easy high level interface" +category = "main" optional = true python-versions = "*" files = [ @@ -8352,6 +8708,7 @@ files = [ name = "pyee" version = "9.0.4" description = "A port of node.js's EventEmitter to python." +category = "dev" optional = false python-versions = "*" files = [ @@ -8366,6 +8723,7 @@ typing-extensions = "*" name = "pygithub" version = "1.59.0" description = "Use the full Github API v3" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -8383,6 +8741,7 @@ requests = ">=2.14.0" name = "pygments" version = "2.15.1" description = "Pygments is a syntax highlighting package written in Python." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -8397,6 +8756,7 @@ plugins = ["importlib-metadata"] name = "pyjwt" version = "2.7.0" description = "JSON Web Token implementation in Python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -8417,6 +8777,7 @@ tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] name = "pylance" version = "0.4.21" description = "python wrapper for lance-rs" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -8438,6 +8799,7 @@ tests = ["duckdb", "polars[pandas,pyarrow]", "pytest"] name = "pymongo" version = "4.3.3" description = "Python driver for MongoDB " +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -8532,6 +8894,7 @@ zstd = ["zstandard"] name = "pympler" version = "1.0.1" description = "A development tool to measure, monitor and analyze the memory behavior of Python objects." +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -8543,6 +8906,7 @@ files = [ name = "pymupdf" version = "1.22.3" description = "Python bindings for the PDF toolkit and renderer MuPDF" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -8582,6 +8946,7 @@ files = [ name = "pynacl" version = "1.5.0" description = "Python binding to the Networking and Cryptography (NaCl) library" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -8608,6 +8973,7 @@ tests = ["hypothesis (>=3.27.0)", "pytest (>=3.2.1,!=3.3.0)"] name = "pynvml" version = "11.5.0" description = "Python Bindings for the NVIDIA Management Library" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -8619,6 +8985,7 @@ files = [ name = "pyowm" version = "3.3.0" description = "A Python wrapper around OpenWeatherMap web APIs" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -8638,6 +9005,7 @@ requests = [ name = "pyparsing" version = "3.0.9" description = "pyparsing module - Classes and methods to define and execute parsing grammars" +category = "main" optional = true python-versions = ">=3.6.8" files = [ @@ -8652,6 +9020,7 @@ diagrams = ["jinja2", "railroad-diagrams"] name = "pypdf" version = "3.9.1" description = "A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -8673,6 +9042,7 @@ image = ["Pillow"] name = "pypdfium2" version = "4.15.0" description = "Python bindings to PDFium" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -8694,6 +9064,7 @@ files = [ name = "pyphen" version = "0.14.0" description = "Pure Python module to hyphenate text" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -8709,6 +9080,7 @@ test = ["flake8", "isort", "pytest"] name = "pypika" version = "0.48.9" description = "A SQL query builder API for Python" +category = "dev" optional = false python-versions = "*" files = [ @@ -8719,6 +9091,7 @@ files = [ name = "pyproj" version = "3.5.0" description = "Python interface to PROJ (cartographic projections and coordinate transformations library)" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -8766,6 +9139,7 @@ certifi = "*" name = "pyproject-hooks" version = "1.0.0" description = "Wrappers to call pyproject.toml-based build backend hooks." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -8780,6 +9154,7 @@ tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} name = "pyreadline3" version = "3.4.1" description = "A python implementation of GNU readline." +category = "main" optional = false python-versions = "*" files = [ @@ -8791,6 +9166,7 @@ files = [ name = "pyrsistent" version = "0.19.3" description = "Persistent/Functional/Immutable data structures" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -8827,6 +9203,7 @@ files = [ name = "pysocks" version = "1.7.1" description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information." +category = "main" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -8839,6 +9216,7 @@ files = [ name = "pyspark" version = "3.4.0" description = "Apache Spark Python API" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -8859,6 +9237,7 @@ sql = ["numpy (>=1.15)", "pandas (>=1.0.5)", "pyarrow (>=1.0.0)"] name = "pytesseract" version = "0.3.10" description = "Python-tesseract is a python wrapper for Google's Tesseract-OCR" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -8874,6 +9253,7 @@ Pillow = ">=8.0.0" name = "pytest" version = "7.3.2" description = "pytest: simple powerful testing with Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -8896,6 +9276,7 @@ testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "no name = "pytest-asyncio" version = "0.20.3" description = "Pytest support for asyncio" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -8914,6 +9295,7 @@ testing = ["coverage (>=6.2)", "flaky (>=3.5.0)", "hypothesis (>=5.7.1)", "mypy name = "pytest-cov" version = "4.1.0" description = "Pytest plugin for measuring coverage." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -8932,6 +9314,7 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale name = "pytest-dotenv" version = "0.5.2" description = "A py.test plugin that parses environment files before running tests" +category = "dev" optional = false python-versions = "*" files = [ @@ -8947,6 +9330,7 @@ python-dotenv = ">=0.9.1" name = "pytest-mock" version = "3.11.1" description = "Thin-wrapper around the mock package for easier use with pytest" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -8964,6 +9348,7 @@ dev = ["pre-commit", "pytest-asyncio", "tox"] name = "pytest-socket" version = "0.6.0" description = "Pytest Plugin to disable socket calls during tests" +category = "dev" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -8978,6 +9363,7 @@ pytest = ">=3.6.3" name = "pytest-vcr" version = "1.0.2" description = "Plugin for managing VCR.py cassettes" +category = "dev" optional = false python-versions = "*" files = [ @@ -8993,6 +9379,7 @@ vcrpy = "*" name = "pytest-watcher" version = "0.2.6" description = "Continiously runs pytest on changes in *.py files" +category = "dev" optional = false python-versions = ">=3.7.0,<4.0.0" files = [ @@ -9007,6 +9394,7 @@ watchdog = ">=2.0.0" name = "python-arango" version = "7.5.9" description = "Python Driver for ArangoDB" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -9030,6 +9418,7 @@ dev = ["black (>=22.3.0)", "flake8 (>=4.0.1)", "isort (>=5.10.1)", "mock", "mypy 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" files = [ @@ -9044,6 +9433,7 @@ six = ">=1.5" name = "python-dotenv" version = "1.0.0" description = "Read key-value pairs from a .env file and set them as environment variables" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -9058,6 +9448,7 @@ cli = ["click (>=5.0)"] name = "python-jose" version = "3.3.0" description = "JOSE implementation in Python" +category = "main" optional = true python-versions = "*" files = [ @@ -9079,6 +9470,7 @@ pycryptodome = ["pyasn1", "pycryptodome (>=3.3.1,<4.0.0)"] name = "python-json-logger" version = "2.0.7" description = "A python library adding a json log formatter" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -9090,6 +9482,7 @@ files = [ name = "python-magic" version = "0.4.27" description = "File type identification using libmagic" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -9101,6 +9494,7 @@ files = [ name = "python-magic-bin" version = "0.4.14" description = "File type identification using libmagic binary package" +category = "dev" optional = false python-versions = "*" files = [ @@ -9113,6 +9507,7 @@ files = [ name = "python-multipart" version = "0.0.6" description = "A streaming multipart parser for Python" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -9127,6 +9522,7 @@ dev = ["atomicwrites (==1.2.1)", "attrs (==19.2.0)", "coverage (==6.5.0)", "hatc name = "pytz" version = "2023.3" description = "World timezone definitions, modern and historical" +category = "main" optional = false python-versions = "*" files = [ @@ -9138,6 +9534,7 @@ files = [ name = "pytz-deprecation-shim" version = "0.1.0.post0" description = "Shims to make deprecation of pytz easier" +category = "main" optional = true python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -9153,6 +9550,7 @@ tzdata = {version = "*", markers = "python_version >= \"3.6\""} name = "pyvespa" version = "0.33.0" description = "Python API for vespa.ai" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -9177,6 +9575,7 @@ ml = ["keras-tuner", "tensorflow", "tensorflow-ranking", "torch (<1.13)", "trans name = "pywin32" version = "306" description = "Python for Window Extensions" +category = "main" optional = false python-versions = "*" files = [ @@ -9200,6 +9599,7 @@ files = [ name = "pywinpty" version = "2.0.10" description = "Pseudo terminal support for Windows from Python." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -9215,6 +9615,7 @@ files = [ name = "pyyaml" version = "6.0" description = "YAML parser and emitter for Python" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -9264,6 +9665,7 @@ files = [ name = "pyzmq" version = "25.1.0" description = "Python bindings for 0MQ" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -9353,6 +9755,7 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} name = "qdrant-client" version = "1.3.1" description = "Client library for the Qdrant vector search engine" +category = "main" optional = true python-versions = ">=3.7,<3.12" files = [ @@ -9374,6 +9777,7 @@ urllib3 = ">=1.26.14,<2.0.0" name = "qtconsole" version = "5.4.3" description = "Jupyter Qt console" +category = "dev" optional = false python-versions = ">= 3.7" files = [ @@ -9400,6 +9804,7 @@ test = ["flaky", "pytest", "pytest-qt"] name = "qtpy" version = "2.3.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" files = [ @@ -9417,6 +9822,7 @@ test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] name = "rank-bm25" version = "0.2.2" description = "Various BM25 algorithms for document ranking" +category = "main" optional = true python-versions = "*" files = [ @@ -9434,6 +9840,7 @@ dev = ["pytest"] name = "rapidfuzz" version = "3.1.1" description = "rapid fuzzy string matching" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -9538,6 +9945,7 @@ full = ["numpy"] name = "ratelimiter" version = "1.2.0.post0" description = "Simple python rate limiting object" +category = "main" optional = true python-versions = "*" files = [ @@ -9552,6 +9960,7 @@ test = ["pytest (>=3.0)", "pytest-asyncio"] name = "rdflib" version = "6.3.2" description = "RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information." +category = "main" optional = true python-versions = ">=3.7,<4.0" files = [ @@ -9573,6 +9982,7 @@ networkx = ["networkx (>=2.0.0,<3.0.0)"] name = "redis" version = "4.5.5" description = "Python client for Redis database and key-value store" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -9591,6 +10001,7 @@ ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==20.0.1)", "requests (>=2.26.0)" name = "regex" version = "2023.6.3" description = "Alternative regular expression module, to replace re." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -9688,6 +10099,7 @@ files = [ name = "requests" version = "2.28.2" description = "Python HTTP for Humans." +category = "main" optional = false python-versions = ">=3.7, <4" files = [ @@ -9710,6 +10122,7 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "requests-file" version = "1.5.1" description = "File transport adapter for Requests" +category = "main" optional = true python-versions = "*" files = [ @@ -9725,6 +10138,7 @@ six = "*" name = "requests-oauthlib" version = "1.3.1" description = "OAuthlib authentication support for Requests." +category = "main" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -9743,6 +10157,7 @@ rsa = ["oauthlib[signedtoken] (>=3.0.0)"] name = "requests-toolbelt" version = "1.0.0" description = "A utility belt for advanced users of python-requests" +category = "main" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -9757,6 +10172,7 @@ requests = ">=2.0.1,<3.0.0" name = "responses" version = "0.22.0" description = "A utility library for mocking out the `requests` Python library." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -9777,6 +10193,7 @@ tests = ["coverage (>=6.0.0)", "flake8", "mypy", "pytest (>=7.0.0)", "pytest-asy name = "retry" version = "0.9.2" description = "Easy to use retry decorator." +category = "main" optional = true python-versions = "*" files = [ @@ -9792,6 +10209,7 @@ py = ">=1.4.26,<2.0.0" 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.*" files = [ @@ -9806,6 +10224,7 @@ six = "*" 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.*" files = [ @@ -9817,6 +10236,7 @@ files = [ name = "rich" version = "13.4.2" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +category = "main" optional = true python-versions = ">=3.7.0" files = [ @@ -9836,6 +10256,7 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] name = "rsa" version = "4.9" description = "Pure-Python RSA implementation" +category = "main" optional = true python-versions = ">=3.6,<4" files = [ @@ -9850,6 +10271,7 @@ pyasn1 = ">=0.1.3" name = "ruff" version = "0.0.249" description = "An extremely fast Python linter, written in Rust." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -9876,6 +10298,7 @@ files = [ name = "s3transfer" version = "0.6.1" description = "An Amazon S3 Transfer Manager" +category = "main" optional = false python-versions = ">= 3.7" files = [ @@ -9893,6 +10316,7 @@ crt = ["botocore[crt] (>=1.20.29,<2.0a.0)"] name = "safetensors" version = "0.3.1" description = "Fast and Safe Tensor serialization" +category = "main" optional = false python-versions = "*" files = [ @@ -9953,6 +10377,7 @@ torch = ["torch (>=1.10)"] name = "schema" version = "0.7.5" description = "Simple data validation library" +category = "main" optional = true python-versions = "*" files = [ @@ -9967,6 +10392,7 @@ contextlib2 = ">=0.5.5" name = "scikit-learn" version = "1.2.2" description = "A set of python modules for machine learning and data mining" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -10009,6 +10435,7 @@ tests = ["black (>=22.3.0)", "flake8 (>=3.8.2)", "matplotlib (>=3.1.3)", "mypy ( name = "scipy" version = "1.6.1" description = "SciPy: Scientific Library for Python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -10040,6 +10467,7 @@ numpy = ">=1.16.5" name = "scipy" version = "1.9.3" description = "Fundamental algorithms for scientific computing in Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -10078,6 +10506,7 @@ test = ["asv", "gmpy2", "mpmath", "pytest", "pytest-cov", "pytest-xdist", "sciki name = "semantic-version" version = "2.10.0" description = "A library implementing the 'SemVer' scheme." +category = "main" optional = true python-versions = ">=2.7" files = [ @@ -10093,6 +10522,7 @@ doc = ["Sphinx", "sphinx-rtd-theme"] name = "semver" version = "3.0.1" description = "Python helper for Semantic Versioning (https://semver.org)" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -10104,6 +10534,7 @@ files = [ 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" files = [ @@ -10120,6 +10551,7 @@ win32 = ["pywin32"] name = "sentence-transformers" version = "2.2.2" description = "Multilingual text embeddings" +category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -10142,6 +10574,7 @@ transformers = ">=4.6.0,<5.0.0" name = "sentencepiece" version = "0.1.99" description = "SentencePiece python wrapper" +category = "main" optional = false python-versions = "*" files = [ @@ -10196,6 +10629,7 @@ files = [ name = "setuptools" version = "67.8.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -10212,6 +10646,7 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs ( name = "sgmllib3k" version = "1.0.0" description = "Py3k port of sgmllib." +category = "main" optional = false python-versions = "*" files = [ @@ -10222,6 +10657,7 @@ files = [ name = "shapely" version = "2.0.1" description = "Manipulation and analysis of geometric objects" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -10269,13 +10705,14 @@ files = [ numpy = ">=1.14" [package.extras] -docs = ["matplotlib", "numpydoc (==1.1.*)", "sphinx", "sphinx-book-theme", "sphinx-remove-toctrees"] +docs = ["matplotlib", "numpydoc (>=1.1.0,<1.2.0)", "sphinx", "sphinx-book-theme", "sphinx-remove-toctrees"] test = ["pytest", "pytest-cov"] [[package]] name = "simple-di" version = "0.1.5" description = "simple dependency injection library" +category = "main" optional = true python-versions = ">=3.6.1" files = [ @@ -10290,6 +10727,7 @@ test = ["mypy", "pytest"] name = "singlestoredb" version = "0.7.1" description = "Interface to the SingleStore database and cluster management APIs" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -10322,6 +10760,7 @@ sqlalchemy = ["sqlalchemy-singlestoredb"] 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.*" files = [ @@ -10333,6 +10772,7 @@ files = [ name = "smart-open" version = "6.3.0" description = "Utils for streaming large files (S3, HDFS, GCS, Azure Blob Storage, gzip, bz2...)" +category = "main" optional = true python-versions = ">=3.6,<4.0" files = [ @@ -10354,6 +10794,7 @@ webhdfs = ["requests"] name = "smmap" version = "5.0.0" description = "A pure Python implementation of a sliding window memory map manager" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -10365,6 +10806,7 @@ files = [ name = "sniffio" version = "1.3.0" description = "Sniff out which async library your code is running under" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -10376,6 +10818,7 @@ files = [ name = "socksio" version = "1.0.0" description = "Sans-I/O implementation of SOCKS4, SOCKS4A, and SOCKS5." +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -10387,6 +10830,7 @@ files = [ name = "soundfile" version = "0.12.1" description = "An audio library based on libsndfile, CFFI and NumPy" +category = "main" optional = true python-versions = "*" files = [ @@ -10410,6 +10854,7 @@ numpy = ["numpy"] name = "soupsieve" version = "2.4.1" description = "A modern CSS selector implementation for Beautiful Soup." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -10421,6 +10866,7 @@ files = [ name = "soxr" version = "0.3.5" description = "High quality, one-dimensional sample-rate conversion library" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -10465,6 +10911,7 @@ test = ["pytest"] name = "spacy" version = "3.5.3" description = "Industrial-strength Natural Language Processing (NLP) in Python" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -10551,6 +10998,7 @@ transformers = ["spacy-transformers (>=1.1.2,<1.3.0)"] name = "spacy-legacy" version = "3.0.12" description = "Legacy registered functions for spaCy backwards compatibility" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -10562,6 +11010,7 @@ files = [ name = "spacy-loggers" version = "1.0.4" description = "Logging utilities for SpaCy" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -10573,6 +11022,7 @@ files = [ name = "sqlalchemy" version = "2.0.16" description = "Database Abstraction Library" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -10620,7 +11070,7 @@ files = [ ] [package.dependencies] -greenlet = {version = "!=0.4.17", markers = "platform_machine == \"win32\" or platform_machine == \"WIN32\" or platform_machine == \"AMD64\" or platform_machine == \"amd64\" or platform_machine == \"x86_64\" or platform_machine == \"ppc64le\" or platform_machine == \"aarch64\""} +greenlet = {version = "!=0.4.17", markers = "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\""} typing-extensions = ">=4.2.0" [package.extras] @@ -10651,6 +11101,7 @@ sqlcipher = ["sqlcipher3-binary"] name = "sqlitedict" version = "2.1.0" description = "Persistent dict in Python, backed up by sqlite3 and pickle, multithread-safe." +category = "main" optional = true python-versions = "*" files = [ @@ -10661,6 +11112,7 @@ files = [ name = "sqlparams" version = "5.1.0" description = "Convert between various DB API 2.0 parameter styles." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -10672,6 +11124,7 @@ files = [ name = "srsly" version = "2.4.6" description = "Modern high-performance serialization utilities for Python" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -10712,6 +11165,7 @@ catalogue = ">=2.0.3,<2.1.0" name = "sse-starlette" version = "1.6.1" description = "\"SSE plugin for Starlette\"" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -10726,6 +11180,7 @@ starlette = "*" name = "stack-data" version = "0.6.2" description = "Extract data from python stack frames and tracebacks for informative displays" +category = "dev" optional = false python-versions = "*" files = [ @@ -10745,6 +11200,7 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] name = "starlette" version = "0.27.0" description = "The little ASGI library that shines." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -10763,6 +11219,7 @@ full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart", "pyyam name = "steamship" version = "2.17.10" description = "The fastest way to add language AI to your product." +category = "main" optional = true python-versions = "*" files = [ @@ -10785,6 +11242,7 @@ toml = ">=0.10.2,<0.11.0" name = "streamlit" version = "1.22.0" description = "A faster way to build and share data apps" +category = "main" optional = true python-versions = ">=3.7, !=3.9.7" files = [ @@ -10825,6 +11283,7 @@ snowflake = ["snowflake-snowpark-python"] name = "stringcase" version = "1.2.0" description = "String case converter." +category = "main" optional = true python-versions = "*" files = [ @@ -10835,6 +11294,7 @@ files = [ name = "sympy" version = "1.12" description = "Computer algebra system (CAS) in Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -10849,6 +11309,7 @@ mpmath = ">=0.19" name = "syrupy" version = "4.0.2" description = "Pytest Snapshot Test Utility" +category = "dev" optional = false python-versions = ">=3.8.1,<4" files = [ @@ -10864,6 +11325,7 @@ pytest = ">=7.0.0,<8.0.0" name = "tabulate" version = "0.9.0" description = "Pretty-print tabular data" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -10881,6 +11343,7 @@ widechars = ["wcwidth"] name = "tair" version = "1.3.4" description = "Python client for Tair" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -10895,6 +11358,7 @@ redis = ">=4.4.4" name = "tblib" version = "2.0.0" description = "Traceback serialization library." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -10906,6 +11370,7 @@ files = [ name = "telethon" version = "1.28.5" description = "Full-featured Telegram client library for Python 3" +category = "main" optional = true python-versions = ">=3.5" files = [ @@ -10924,6 +11389,7 @@ cryptg = ["cryptg"] name = "tenacity" version = "8.2.2" description = "Retry code until it succeeds" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -10938,6 +11404,7 @@ doc = ["reno", "sphinx", "tornado (>=4.5)"] name = "tensorboard" version = "2.11.2" description = "TensorBoard lets you watch Tensors Flow" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -10963,6 +11430,7 @@ wheel = ">=0.26" name = "tensorboard-data-server" version = "0.6.1" description = "Fast data loading for TensorBoard" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -10975,6 +11443,7 @@ files = [ name = "tensorboard-plugin-wit" version = "1.8.1" description = "What-If Tool TensorBoard plugin." +category = "main" optional = true python-versions = "*" files = [ @@ -10985,6 +11454,7 @@ files = [ name = "tensorflow" version = "2.11.1" description = "TensorFlow is an open source machine learning framework for everyone." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -11029,6 +11499,7 @@ wrapt = ">=1.11.0" name = "tensorflow-estimator" version = "2.11.0" description = "TensorFlow Estimator." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -11039,6 +11510,7 @@ files = [ name = "tensorflow-hub" version = "0.13.0" description = "TensorFlow Hub is a library to foster the publication, discovery, and consumption of reusable parts of machine learning models." +category = "main" optional = true python-versions = "*" files = [ @@ -11057,6 +11529,7 @@ make-nearest-neighbour-index = ["annoy", "apache-beam"] name = "tensorflow-io-gcs-filesystem" version = "0.32.0" description = "TensorFlow IO" +category = "main" optional = true python-versions = ">=3.7, <3.12" files = [ @@ -11087,6 +11560,7 @@ tensorflow-rocm = ["tensorflow-rocm (>=2.12.0,<2.13.0)"] name = "tensorflow-macos" version = "2.11.0" description = "TensorFlow is an open source machine learning framework for everyone." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -11124,6 +11598,7 @@ wrapt = ">=1.11.0" name = "tensorflow-text" version = "2.11.0" description = "TF.Text is a TensorFlow library of text related ops, modules, and subgraphs." +category = "main" optional = true python-versions = "*" files = [ @@ -11150,6 +11625,7 @@ tests = ["absl-py", "pytest", "tensorflow-datasets (>=3.2.0)"] name = "termcolor" version = "2.3.0" description = "ANSI color formatting for output in terminal" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -11164,6 +11640,7 @@ tests = ["pytest", "pytest-cov"] name = "terminado" version = "0.17.1" description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -11184,6 +11661,7 @@ test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] name = "textstat" version = "0.7.3" description = "Calculate statistical features from text" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -11198,6 +11676,7 @@ pyphen = "*" name = "thinc" version = "8.1.10" description = "A refreshing functional take on deep learning, compatible with your favorite libraries" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -11273,6 +11752,7 @@ torch = ["torch (>=1.6.0)"] name = "threadpoolctl" version = "3.1.0" description = "threadpoolctl" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -11284,6 +11764,7 @@ files = [ name = "tigrisdb" version = "1.0.0b6" description = "Python SDK for Tigris " +category = "main" optional = true python-versions = ">=3.8,<4.0" files = [ @@ -11299,6 +11780,7 @@ protobuf = ">=3.19.6" name = "tiktoken" version = "0.3.3" description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -11344,6 +11826,7 @@ blobfile = ["blobfile (>=2)"] name = "tinycss2" version = "1.2.1" description = "A tiny CSS parser" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -11362,6 +11845,7 @@ test = ["flake8", "isort", "pytest"] name = "tinysegmenter" version = "0.3" description = "Very compact Japanese tokenizer" +category = "main" optional = true python-versions = "*" files = [ @@ -11372,6 +11856,7 @@ files = [ name = "tldextract" version = "3.4.4" description = "Accurately separates a URL's subdomain, domain, and public suffix, using the Public Suffix List (PSL). By default, this includes the public ICANN TLDs and their exceptions. You can optionally support the Public Suffix List's private domains as well." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -11389,6 +11874,7 @@ requests-file = ">=1.4" name = "tokenizers" version = "0.13.3" description = "Fast and Customizable Tokenizers" +category = "main" optional = false python-versions = "*" files = [ @@ -11443,6 +11929,7 @@ testing = ["black (==22.3)", "datasets", "numpy", "pytest", "requests"] name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -11454,6 +11941,7 @@ files = [ name = "tomli" version = "2.0.1" description = "A lil' TOML parser" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -11465,6 +11953,7 @@ files = [ name = "toolz" version = "0.12.0" description = "List processing tools and functional utilities" +category = "main" optional = true python-versions = ">=3.5" files = [ @@ -11476,6 +11965,7 @@ files = [ name = "torch" version = "1.13.1" description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -11516,6 +12006,7 @@ opt-einsum = ["opt-einsum (>=3.3)"] name = "torchvision" version = "0.14.1" description = "image and video datasets and models for torch deep learning" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -11542,7 +12033,7 @@ files = [ [package.dependencies] numpy = "*" -pillow = ">=5.3.0,<8.3.dev0 || >=8.4.dev0" +pillow = ">=5.3.0,<8.3.0 || >=8.4.0" requests = "*" torch = "1.13.1" typing-extensions = "*" @@ -11554,6 +12045,7 @@ scipy = ["scipy"] name = "tornado" version = "6.3.2" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +category = "main" optional = false python-versions = ">= 3.8" files = [ @@ -11574,6 +12066,7 @@ files = [ name = "tqdm" version = "4.65.0" description = "Fast, Extensible Progress Meter" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -11594,6 +12087,7 @@ telegram = ["requests"] name = "traitlets" version = "5.9.0" description = "Traitlets Python configuration system" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -11609,6 +12103,7 @@ test = ["argcomplete (>=2.0)", "pre-commit", "pytest", "pytest-mock"] name = "transformers" version = "4.30.2" description = "State-of-the-art Machine Learning for JAX, PyTorch and TensorFlow" +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -11682,6 +12177,7 @@ vision = ["Pillow"] name = "typer" version = "0.7.0" description = "Typer, build great CLIs. Easy to code. Based on Python type hints." +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -11702,6 +12198,7 @@ test = ["black (>=22.3.0,<23.0.0)", "coverage (>=6.2,<7.0)", "isort (>=5.0.6,<6. name = "types-chardet" version = "5.0.4.6" description = "Typing stubs for chardet" +category = "dev" optional = false python-versions = "*" files = [ @@ -11713,6 +12210,7 @@ files = [ name = "types-protobuf" version = "4.23.0.1" description = "Typing stubs for protobuf" +category = "dev" optional = false python-versions = "*" files = [ @@ -11724,6 +12222,7 @@ files = [ name = "types-pyopenssl" version = "23.2.0.0" description = "Typing stubs for pyOpenSSL" +category = "dev" optional = false python-versions = "*" files = [ @@ -11738,6 +12237,7 @@ cryptography = ">=35.0.0" name = "types-pytz" version = "2023.3.0.0" description = "Typing stubs for pytz" +category = "dev" optional = false python-versions = "*" files = [ @@ -11749,6 +12249,7 @@ files = [ name = "types-pyyaml" version = "6.0.12.10" description = "Typing stubs for PyYAML" +category = "main" optional = false python-versions = "*" files = [ @@ -11760,6 +12261,7 @@ files = [ name = "types-redis" version = "4.5.5.2" description = "Typing stubs for redis" +category = "dev" optional = false python-versions = "*" files = [ @@ -11775,6 +12277,7 @@ types-pyOpenSSL = "*" name = "types-requests" version = "2.31.0.1" description = "Typing stubs for requests" +category = "main" optional = false python-versions = "*" files = [ @@ -11789,6 +12292,7 @@ types-urllib3 = "*" name = "types-toml" version = "0.10.8.6" description = "Typing stubs for toml" +category = "dev" optional = false python-versions = "*" files = [ @@ -11800,6 +12304,7 @@ files = [ name = "types-urllib3" version = "1.26.25.13" description = "Typing stubs for urllib3" +category = "main" optional = false python-versions = "*" files = [ @@ -11811,6 +12316,7 @@ files = [ name = "typing-extensions" version = "4.5.0" description = "Backported and Experimental Type Hints for Python 3.7+" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -11822,6 +12328,7 @@ files = [ name = "typing-inspect" version = "0.9.0" description = "Runtime inspection utilities for typing module." +category = "main" optional = false python-versions = "*" files = [ @@ -11837,6 +12344,7 @@ typing-extensions = ">=3.7.4" name = "tzdata" version = "2023.3" description = "Provider of IANA time zone data" +category = "main" optional = false python-versions = ">=2" files = [ @@ -11848,6 +12356,7 @@ files = [ name = "tzlocal" version = "4.3" description = "tzinfo object for the local timezone" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -11867,6 +12376,7 @@ devenv = ["black", "check-manifest", "flake8", "pyroma", "pytest (>=4.3)", "pyte name = "uc-micro-py" version = "1.0.2" description = "Micro subset of unicode data files for linkify-it-py projects." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -11881,6 +12391,7 @@ test = ["coverage", "pytest", "pytest-cov"] name = "uri-template" version = "1.2.0" description = "RFC 6570 URI Template Processor" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -11895,6 +12406,7 @@ dev = ["flake8 (<4.0.0)", "flake8-annotations", "flake8-bugbear", "flake8-commas name = "uritemplate" version = "4.1.1" description = "Implementation of RFC 6570 URI Templates" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -11906,6 +12418,7 @@ files = [ name = "urllib3" version = "1.26.16" 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.*" files = [ @@ -11922,6 +12435,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "uvicorn" version = "0.22.0" description = "The lightning-fast ASGI server." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -11936,7 +12450,7 @@ h11 = ">=0.8" httptools = {version = ">=0.5.0", optional = true, markers = "extra == \"standard\""} python-dotenv = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} pyyaml = {version = ">=5.1", optional = true, markers = "extra == \"standard\""} -uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and extra == \"standard\""} +uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\" and extra == \"standard\""} watchfiles = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} websockets = {version = ">=10.4", optional = true, markers = "extra == \"standard\""} @@ -11947,6 +12461,7 @@ standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", name = "uvloop" version = "0.17.0" description = "Fast implementation of asyncio event loop on top of libuv" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -11991,6 +12506,7 @@ test = ["Cython (>=0.29.32,<0.30.0)", "aiohttp", "flake8 (>=3.9.2,<3.10.0)", "my name = "validators" version = "0.20.0" description = "Python Data Validation for Humans™." +category = "main" optional = false python-versions = ">=3.4" files = [ @@ -12007,6 +12523,7 @@ test = ["flake8 (>=2.4.0)", "isort (>=4.2.2)", "pytest (>=2.2.3)"] name = "vcrpy" version = "4.3.1" description = "Automatically mock your HTTP interactions to simplify and speed up testing" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -12025,6 +12542,7 @@ yarl = "*" name = "wasabi" version = "1.1.2" description = "A lightweight console printing and formatting toolkit" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -12039,6 +12557,7 @@ colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\" and python name = "watchdog" version = "3.0.0" description = "Filesystem events monitoring" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -12078,6 +12597,7 @@ watchmedo = ["PyYAML (>=3.10)"] name = "watchfiles" version = "0.19.0" description = "Simple, modern and high performance file watching and code reload in python." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -12112,6 +12632,7 @@ anyio = ">=3.0.0" name = "wcwidth" version = "0.2.6" description = "Measures the displayed width of unicode strings in a terminal" +category = "main" optional = false python-versions = "*" files = [ @@ -12123,6 +12644,7 @@ files = [ name = "weaviate-client" version = "3.20.1" description = "A python native Weaviate client" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -12143,6 +12665,7 @@ grpc = ["grpcio", "grpcio-tools"] 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" files = [ @@ -12158,6 +12681,7 @@ tests = ["pytest", "pytest-cov"] name = "webencodings" version = "0.5.1" description = "Character encoding aliases for legacy web content" +category = "dev" optional = false python-versions = "*" files = [ @@ -12169,6 +12693,7 @@ files = [ name = "websocket-client" version = "1.6.0" description = "WebSocket client for Python with low level API options" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -12185,6 +12710,7 @@ test = ["websockets"] name = "websockets" version = "11.0.3" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -12264,6 +12790,7 @@ files = [ name = "werkzeug" version = "2.3.6" description = "The comprehensive WSGI web application library." +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -12281,6 +12808,7 @@ watchdog = ["watchdog (>=2.3)"] name = "wget" version = "3.2" description = "pure python download utility" +category = "main" optional = false python-versions = "*" files = [ @@ -12291,6 +12819,7 @@ files = [ name = "wheel" version = "0.40.0" description = "A built-package format for Python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -12305,6 +12834,7 @@ test = ["pytest (>=6.0.0)"] name = "whylabs-client" version = "0.5.1" description = "WhyLabs API client" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -12320,6 +12850,7 @@ urllib3 = ">=1.25.3" name = "whylogs" version = "1.2.3" description = "Profile and monitor your ML data pipeline end-to-end" +category = "main" optional = true python-versions = ">=3.7.1,<4" files = [ @@ -12353,6 +12884,7 @@ viz = ["Pillow (>=9.2.0,<10.0.0)", "ipython", "numpy", "numpy (>=1.23.2)", "pyba name = "whylogs-sketching" version = "3.4.1.dev3" description = "sketching library of whylogs" +category = "main" optional = true python-versions = "*" files = [ @@ -12393,6 +12925,7 @@ files = [ name = "widgetsnbextension" version = "4.0.7" description = "Jupyter interactive widgets for Jupyter Notebook" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -12404,6 +12937,7 @@ files = [ name = "wikipedia" version = "1.4.0" description = "Wikipedia API for Python" +category = "main" optional = false python-versions = "*" files = [ @@ -12418,6 +12952,7 @@ requests = ">=2.0.0,<3.0.0" name = "win32-setctime" version = "1.1.0" description = "A small Python utility to set file creation time on Windows" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -12432,6 +12967,7 @@ dev = ["black (>=19.3b0)", "pytest (>=4.6.2)"] name = "wolframalpha" version = "5.0.0" description = "Wolfram|Alpha 2.0 API client" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -12452,6 +12988,7 @@ testing = ["keyring", "pmxbot", "pytest (>=3.5,!=3.7.3)", "pytest-black (>=0.3.7 name = "wonderwords" version = "2.2.0" description = "A python package for random words and sentences in the english language" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -12466,6 +13003,7 @@ cli = ["rich (==9.10.0)"] name = "wrapt" version = "1.15.0" description = "Module for decorators, wrappers and monkey patching." +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -12550,6 +13088,7 @@ files = [ name = "xata" version = "1.0.0a7" description = "Python client for Xata.io" +category = "main" optional = true python-versions = ">=3.8,<4.0" files = [ @@ -12567,6 +13106,7 @@ requests = ">=2.28.1,<3.0.0" name = "xinference" version = "0.0.6" description = "Model Serving Made Easy" +category = "main" optional = true python-versions = "*" files = [ @@ -12596,6 +13136,7 @@ doc = ["ipython (>=6.5.0)", "pydata-sphinx-theme (>=0.3.0)", "sphinx (>=3.0.0,<5 name = "xmltodict" version = "0.13.0" description = "Makes working with XML feel like you are working with JSON" +category = "main" optional = true python-versions = ">=3.4" files = [ @@ -12607,6 +13148,7 @@ files = [ name = "xorbits" version = "0.2.0" description = "Scalable Python data science, in an API compatible & lightning fast way." +category = "main" optional = true python-versions = "*" files = [ @@ -12662,6 +13204,7 @@ vineyard = ["vineyard (>=0.3)"] name = "xorbits" version = "0.4.4" description = "Scalable Python data science, in an API compatible & lightning fast way." +category = "main" optional = true python-versions = "*" files = [ @@ -12723,6 +13266,7 @@ vineyard = ["vineyard (>=0.3)"] name = "xoscar" version = "0.0.8" description = "Python actor framework for heterogeneous computing." +category = "main" optional = true python-versions = "*" files = [ @@ -12774,6 +13318,7 @@ ray = ["xoscar-ray (>=0.0.1)"] name = "xxhash" version = "3.2.0" description = "Python binding for xxHash" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -12881,6 +13426,7 @@ files = [ name = "yarl" version = "1.9.2" description = "Yet another URL library" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -12968,6 +13514,7 @@ multidict = ">=4.0" name = "zep-python" version = "0.32" description = "Zep stores, manages, enriches, indexes, and searches long-term memory for conversational AI applications. This is the Python client for the Zep service." +category = "main" optional = true python-versions = ">=3.8,<4.0" files = [ @@ -12983,6 +13530,7 @@ pydantic = ">=1.10.7,<2.0.0" name = "zipp" version = "3.15.0" description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -12998,6 +13546,7 @@ testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more name = "zstandard" version = "0.21.0" description = "Zstandard bindings for Python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -13064,9 +13613,10 @@ javascript = ["esprima"] llms = ["anthropic", "clarifai", "cohere", "huggingface_hub", "manifest-ml", "nlpcloud", "openai", "openllm", "openlm", "torch", "transformers", "xinference"] openai = ["openai", "tiktoken"] qdrant = ["qdrant-client"] +scheduled-testing = ["openai"] text-helpers = ["chardet"] [metadata] lock-version = "2.0" python-versions = ">=3.8.1,<4.0" -content-hash = "6cdb30d8ab9f67aee7410dcae43520f99cd6aba31db4a2eb40c482d9d08d69ac" +content-hash = "a8bc3bc0555543de183b659147b47d4b686843bb80a2be94ef5c319af3cb1ed0" diff --git a/libs/langchain/pyproject.toml b/libs/langchain/pyproject.toml index 8ef120f91a2..99b7718d8a3 100644 --- a/libs/langchain/pyproject.toml +++ b/libs/langchain/pyproject.toml @@ -375,6 +375,10 @@ extended_testing = [ "xmltodict", ] +scheduled_testing = [ + "openai", +] + [tool.ruff] select = [ "E", # pycodestyle @@ -413,7 +417,8 @@ addopts = "--strict-markers --strict-config --durations=5 --snapshot-warn-unused # Registering custom markers. # https://docs.pytest.org/en/7.1.x/example/markers.html#registering-markers markers = [ - "requires: mark tests as requiring a specific library" + "requires: mark tests as requiring a specific library", + "scheduled: mark tests to run in scheduled testing", ] [tool.codespell] diff --git a/libs/langchain/tests/integration_tests/cache/test_gptcache.py b/libs/langchain/tests/integration_tests/cache/test_gptcache.py index 823ec0c3034..509f0b67ec2 100644 --- a/libs/langchain/tests/integration_tests/cache/test_gptcache.py +++ b/libs/langchain/tests/integration_tests/cache/test_gptcache.py @@ -18,7 +18,7 @@ except ImportError: gptcache_installed = False -def init_gptcache_map(cache_obj: Cache) -> None: +def init_gptcache_map(cache_obj: Any) -> None: i = getattr(init_gptcache_map, "_i", 0) cache_path = f"data_map_{i}.txt" if os.path.isfile(cache_path): @@ -30,7 +30,7 @@ def init_gptcache_map(cache_obj: Cache) -> None: init_gptcache_map._i = i + 1 # type: ignore -def init_gptcache_map_with_llm(cache_obj: Cache, llm: str) -> None: +def init_gptcache_map_with_llm(cache_obj: Any, llm: str) -> None: cache_path = f"data_map_{llm}.txt" if os.path.isfile(cache_path): os.remove(cache_path) diff --git a/libs/langchain/tests/integration_tests/cache/test_momento_cache.py b/libs/langchain/tests/integration_tests/cache/test_momento_cache.py index dec8f44cbf8..09517305c0f 100644 --- a/libs/langchain/tests/integration_tests/cache/test_momento_cache.py +++ b/libs/langchain/tests/integration_tests/cache/test_momento_cache.py @@ -11,7 +11,6 @@ from datetime import timedelta from typing import Iterator import pytest -from momento import CacheClient, Configurations, CredentialProvider import langchain from langchain.cache import MomentoCache @@ -25,6 +24,8 @@ def random_string() -> str: @pytest.fixture(scope="module") def momento_cache() -> Iterator[MomentoCache]: + from momento import CacheClient, Configurations, CredentialProvider + cache_name = f"langchain-test-cache-{random_string()}" client = CacheClient( Configurations.Laptop.v1(), @@ -40,6 +41,8 @@ def momento_cache() -> Iterator[MomentoCache]: def test_invalid_ttl() -> None: + from momento import CacheClient, Configurations, CredentialProvider + client = CacheClient( Configurations.Laptop.v1(), CredentialProvider.from_environment_variable("MOMENTO_AUTH_TOKEN"), diff --git a/libs/langchain/tests/integration_tests/cache/test_redis_cache.py b/libs/langchain/tests/integration_tests/cache/test_redis_cache.py index b39cc0fac96..7d43c9a4058 100644 --- a/libs/langchain/tests/integration_tests/cache/test_redis_cache.py +++ b/libs/langchain/tests/integration_tests/cache/test_redis_cache.py @@ -1,6 +1,5 @@ """Test Redis cache functionality.""" import pytest -import redis import langchain from langchain.cache import RedisCache, RedisSemanticCache @@ -13,6 +12,8 @@ REDIS_TEST_URL = "redis://localhost:6379" def test_redis_cache() -> None: + import redis + langchain.llm_cache = RedisCache(redis_=redis.Redis.from_url(REDIS_TEST_URL)) llm = FakeLLM() params = llm.dict() @@ -31,6 +32,8 @@ def test_redis_cache() -> None: def test_redis_cache_chat() -> None: + import redis + langchain.llm_cache = RedisCache(redis_=redis.Redis.from_url(REDIS_TEST_URL)) llm = FakeChatModel() params = llm.dict() @@ -69,6 +72,8 @@ def test_redis_semantic_cache() -> None: def test_redis_semantic_cache_chat() -> None: + import redis + langchain.llm_cache = RedisCache(redis_=redis.Redis.from_url(REDIS_TEST_URL)) llm = FakeChatModel() params = llm.dict() diff --git a/libs/langchain/tests/integration_tests/document_loaders/test_unstructured.py b/libs/langchain/tests/integration_tests/document_loaders/test_unstructured.py index 26d90f6f29a..7930a6b7f27 100644 --- a/libs/langchain/tests/integration_tests/document_loaders/test_unstructured.py +++ b/libs/langchain/tests/integration_tests/document_loaders/test_unstructured.py @@ -2,8 +2,6 @@ import os from contextlib import ExitStack from pathlib import Path -from unstructured.cleaners.core import clean_extra_whitespace - from langchain.document_loaders import ( UnstructuredAPIFileIOLoader, UnstructuredAPIFileLoader, @@ -14,6 +12,8 @@ EXAMPLE_DOCS_DIRECTORY = str(Path(__file__).parent.parent / "examples/") def test_unstructured_loader_with_post_processor() -> None: + from unstructured.cleaners.core import clean_extra_whitespace + file_path = os.path.join(EXAMPLE_DOCS_DIRECTORY, "layout-parser-paper.pdf") loader = UnstructuredFileLoader( file_path=file_path, diff --git a/libs/langchain/tests/integration_tests/llms/test_baseten.py b/libs/langchain/tests/integration_tests/llms/test_baseten.py index 0e1226b91b2..6409f62270f 100644 --- a/libs/langchain/tests/integration_tests/llms/test_baseten.py +++ b/libs/langchain/tests/integration_tests/llms/test_baseten.py @@ -1,15 +1,13 @@ """Test Baseten API wrapper.""" import os -import baseten -import pytest - from langchain.llms.baseten import Baseten -@pytest.mark.requires(baseten) def test_baseten_call() -> None: """Test valid call to Baseten.""" + import baseten + baseten.login(os.environ["BASETEN_API_KEY"]) llm = Baseten(model=os.environ["BASETEN_MODEL_ID"]) output = llm("Say foo:") diff --git a/libs/langchain/tests/integration_tests/llms/test_openai.py b/libs/langchain/tests/integration_tests/llms/test_openai.py index ca8911078a4..4ec967667b3 100644 --- a/libs/langchain/tests/integration_tests/llms/test_openai.py +++ b/libs/langchain/tests/integration_tests/llms/test_openai.py @@ -7,16 +7,17 @@ import pytest from langchain.callbacks.manager import CallbackManager from langchain.chat_models.openai import ChatOpenAI from langchain.llms.loading import load_llm -from langchain.llms.openai import OpenAI, OpenAIChat +from langchain.llms.openai import OpenAI from langchain.schema import LLMResult from tests.unit_tests.callbacks.fake_callback_handler import ( FakeCallbackHandler, ) +@pytest.mark.scheduled def test_openai_call() -> None: """Test valid call to openai.""" - llm = OpenAI(max_tokens=10, n=3) + llm = OpenAI() output = llm("Say something nice:") assert isinstance(output, str) @@ -86,6 +87,7 @@ def test_saving_loading_llm(tmp_path: Path) -> None: assert loaded_llm == llm +@pytest.mark.scheduled def test_openai_streaming() -> None: """Test streaming tokens from OpenAI.""" llm = OpenAI(max_tokens=10) @@ -97,6 +99,7 @@ def test_openai_streaming() -> None: assert isinstance(token, str) +@pytest.mark.scheduled @pytest.mark.asyncio async def test_openai_astream() -> None: """Test streaming tokens from OpenAI.""" @@ -106,6 +109,7 @@ async def test_openai_astream() -> None: assert isinstance(token, str) +@pytest.mark.scheduled @pytest.mark.asyncio async def test_openai_abatch() -> None: """Test streaming tokens from OpenAI.""" @@ -128,6 +132,7 @@ async def test_openai_abatch_tags() -> None: assert isinstance(token, str) +@pytest.mark.scheduled def test_openai_batch() -> None: """Test streaming tokens from OpenAI.""" llm = OpenAI(max_tokens=10) @@ -137,6 +142,7 @@ def test_openai_batch() -> None: assert isinstance(token, str) +@pytest.mark.scheduled @pytest.mark.asyncio async def test_openai_ainvoke() -> None: """Test streaming tokens from OpenAI.""" @@ -146,6 +152,7 @@ async def test_openai_ainvoke() -> None: assert isinstance(result, str) +@pytest.mark.scheduled def test_openai_invoke() -> None: """Test streaming tokens from OpenAI.""" llm = OpenAI(max_tokens=10) @@ -154,6 +161,7 @@ def test_openai_invoke() -> None: assert isinstance(result, str) +@pytest.mark.scheduled def test_openai_multiple_prompts() -> None: """Test completion with multiple prompts.""" llm = OpenAI(max_tokens=10) @@ -181,6 +189,7 @@ def test_openai_streaming_multiple_prompts_error() -> None: OpenAI(streaming=True).generate(["I'm Pickle Rick", "I'm Pickle Rick"]) +@pytest.mark.scheduled def test_openai_streaming_call() -> None: """Test valid call to openai.""" llm = OpenAI(max_tokens=10, streaming=True) @@ -203,6 +212,7 @@ def test_openai_streaming_callback() -> None: assert callback_handler.llm_streams == 10 +@pytest.mark.scheduled @pytest.mark.asyncio async def test_openai_async_generate() -> None: """Test async generation.""" @@ -235,60 +245,6 @@ def test_openai_chat_wrong_class() -> None: assert isinstance(output, str) -def test_openai_chat() -> None: - """Test OpenAIChat.""" - llm = OpenAIChat(max_tokens=10) - output = llm("Say foo:") - assert isinstance(output, str) - - -def test_openai_chat_streaming() -> None: - """Test OpenAIChat with streaming option.""" - llm = OpenAIChat(max_tokens=10, streaming=True) - output = llm("Say foo:") - assert isinstance(output, str) - - -def test_openai_chat_streaming_callback() -> None: - """Test that streaming correctly invokes on_llm_new_token callback.""" - callback_handler = FakeCallbackHandler() - callback_manager = CallbackManager([callback_handler]) - llm = OpenAIChat( - max_tokens=10, - streaming=True, - temperature=0, - callback_manager=callback_manager, - verbose=True, - ) - llm("Write me a sentence with 100 words.") - assert callback_handler.llm_streams != 0 - - -@pytest.mark.asyncio -async def test_openai_chat_async_generate() -> None: - """Test async chat.""" - llm = OpenAIChat(max_tokens=10) - output = await llm.agenerate(["Hello, how are you?"]) - assert isinstance(output, LLMResult) - - -@pytest.mark.asyncio -async def test_openai_chat_async_streaming_callback() -> None: - """Test that streaming correctly invokes on_llm_new_token callback.""" - callback_handler = FakeCallbackHandler() - callback_manager = CallbackManager([callback_handler]) - llm = OpenAIChat( - max_tokens=10, - streaming=True, - temperature=0, - callback_manager=callback_manager, - verbose=True, - ) - result = await llm.agenerate(["Write me a sentence with 100 words."]) - assert callback_handler.llm_streams != 0 - assert isinstance(result, LLMResult) - - def test_openai_modelname_to_contextsize_valid() -> None: """Test model name to context size on a valid model.""" assert OpenAI().modelname_to_contextsize("davinci") == 2049 diff --git a/libs/langchain/tests/integration_tests/memory/test_cosmos_db.py b/libs/langchain/tests/integration_tests/memory/test_cosmos_db.py index 1792692bc1f..0a32883351b 100644 --- a/libs/langchain/tests/integration_tests/memory/test_cosmos_db.py +++ b/libs/langchain/tests/integration_tests/memory/test_cosmos_db.py @@ -6,8 +6,8 @@ from langchain.memory.chat_message_histories import CosmosDBChatMessageHistory from langchain.schema.messages import _message_to_dict # Replace these with your Azure Cosmos DB endpoint and key -endpoint = os.environ["COSMOS_DB_ENDPOINT"] -credential = os.environ["COSMOS_DB_KEY"] +endpoint = os.environ.get("COSMOS_DB_ENDPOINT", "") +credential = os.environ.get("COSMOS_DB_KEY", "") def test_memory_with_message_store() -> None: diff --git a/libs/langchain/tests/integration_tests/memory/test_momento.py b/libs/langchain/tests/integration_tests/memory/test_momento.py index 99f2327a7a7..395232689b2 100644 --- a/libs/langchain/tests/integration_tests/memory/test_momento.py +++ b/libs/langchain/tests/integration_tests/memory/test_momento.py @@ -10,7 +10,6 @@ from datetime import timedelta from typing import Iterator import pytest -from momento import CacheClient, Configurations, CredentialProvider from langchain.memory import ConversationBufferMemory from langchain.memory.chat_message_histories import MomentoChatMessageHistory @@ -23,6 +22,8 @@ def random_string() -> str: @pytest.fixture(scope="function") def message_history() -> Iterator[MomentoChatMessageHistory]: + from momento import CacheClient, Configurations, CredentialProvider + cache_name = f"langchain-test-cache-{random_string()}" client = CacheClient( Configurations.Laptop.v1(), diff --git a/libs/langchain/tests/integration_tests/memory/test_mongodb.py b/libs/langchain/tests/integration_tests/memory/test_mongodb.py index a57ccd0522d..cb7cdbe7352 100644 --- a/libs/langchain/tests/integration_tests/memory/test_mongodb.py +++ b/libs/langchain/tests/integration_tests/memory/test_mongodb.py @@ -6,7 +6,7 @@ from langchain.memory.chat_message_histories import MongoDBChatMessageHistory from langchain.schema.messages import _message_to_dict # Replace these with your mongodb connection string -connection_string = os.environ["MONGODB_CONNECTION_STRING"] +connection_string = os.environ.get("MONGODB_CONNECTION_STRING", "") def test_memory_with_message_store() -> None: diff --git a/libs/langchain/tests/integration_tests/retrievers/docarray/fixtures.py b/libs/langchain/tests/integration_tests/retrievers/docarray/fixtures.py index 28e0b61c4b6..520f3e54e5a 100644 --- a/libs/langchain/tests/integration_tests/retrievers/docarray/fixtures.py +++ b/libs/langchain/tests/integration_tests/retrievers/docarray/fixtures.py @@ -1,43 +1,30 @@ +from __future__ import annotations + from pathlib import Path -from typing import Any, Dict, Generator, Tuple +from typing import TYPE_CHECKING, Any, Dict, Generator, Tuple import numpy as np import pytest -from docarray import BaseDoc -from docarray.index import ( - ElasticDocIndex, - HnswDocumentIndex, - InMemoryExactNNIndex, - QdrantDocumentIndex, - WeaviateDocumentIndex, -) -from docarray.typing import NdArray from pydantic import Field -from qdrant_client.http import models as rest + +if TYPE_CHECKING: + from docarray.index import ( + ElasticDocIndex, + HnswDocumentIndex, + InMemoryExactNNIndex, + QdrantDocumentIndex, + WeaviateDocumentIndex, + ) + from docarray.typing import NdArray + from qdrant_client.http import models as rest from langchain.embeddings import FakeEmbeddings -class MyDoc(BaseDoc): - title: str - title_embedding: NdArray[32] # type: ignore - other_emb: NdArray[32] # type: ignore - year: int - - -class WeaviateDoc(BaseDoc): - # When initializing the Weaviate index, denote the field - # you want to search on with `is_embedding=True` - title: str - title_embedding: NdArray[32] = Field(is_embedding=True) # type: ignore - other_emb: NdArray[32] # type: ignore - year: int - - @pytest.fixture def init_weaviate() -> ( Generator[ - Tuple[WeaviateDocumentIndex[WeaviateDoc], Dict[str, Any], FakeEmbeddings], + Tuple[WeaviateDocumentIndex, Dict[str, Any], FakeEmbeddings], None, None, ] @@ -46,6 +33,19 @@ def init_weaviate() -> ( cd tests/integration_tests/vectorstores/docker-compose docker compose -f weaviate.yml up """ + from docarray import BaseDoc + from docarray.index import ( + WeaviateDocumentIndex, + ) + + class WeaviateDoc(BaseDoc): + # When initializing the Weaviate index, denote the field + # you want to search on with `is_embedding=True` + title: str + title_embedding: NdArray[32] = Field(is_embedding=True) # type: ignore + other_emb: NdArray[32] # type: ignore + year: int + embeddings = FakeEmbeddings(size=32) # initialize WeaviateDocumentIndex @@ -76,12 +76,23 @@ def init_weaviate() -> ( @pytest.fixture def init_elastic() -> ( - Generator[Tuple[ElasticDocIndex[MyDoc], Dict[str, Any], FakeEmbeddings], None, None] + Generator[Tuple[ElasticDocIndex, Dict[str, Any], FakeEmbeddings], None, None] ): """ cd tests/integration_tests/vectorstores/docker-compose docker-compose -f elasticsearch.yml up """ + from docarray import BaseDoc + from docarray.index import ( + ElasticDocIndex, + ) + + class MyDoc(BaseDoc): + title: str + title_embedding: NdArray[32] # type: ignore + other_emb: NdArray[32] # type: ignore + year: int + embeddings = FakeEmbeddings(size=32) # initialize ElasticDocIndex @@ -109,7 +120,16 @@ def init_elastic() -> ( @pytest.fixture -def init_qdrant() -> Tuple[QdrantDocumentIndex[MyDoc], rest.Filter, FakeEmbeddings]: +def init_qdrant() -> Tuple[QdrantDocumentIndex, rest.Filter, FakeEmbeddings]: + from docarray import BaseDoc + from docarray.index import QdrantDocumentIndex + + class MyDoc(BaseDoc): + title: str + title_embedding: NdArray[32] # type: ignore + other_emb: NdArray[32] # type: ignore + year: int + embeddings = FakeEmbeddings(size=32) # initialize QdrantDocumentIndex @@ -144,9 +164,16 @@ def init_qdrant() -> Tuple[QdrantDocumentIndex[MyDoc], rest.Filter, FakeEmbeddin @pytest.fixture -def init_in_memory() -> ( - Tuple[InMemoryExactNNIndex[MyDoc], Dict[str, Any], FakeEmbeddings] -): +def init_in_memory() -> Tuple[InMemoryExactNNIndex, Dict[str, Any], FakeEmbeddings]: + from docarray import BaseDoc + from docarray.index import InMemoryExactNNIndex + + class MyDoc(BaseDoc): + title: str + title_embedding: NdArray[32] # type: ignore + other_emb: NdArray[32] # type: ignore + year: int + embeddings = FakeEmbeddings(size=32) # initialize InMemoryExactNNIndex @@ -172,7 +199,18 @@ def init_in_memory() -> ( @pytest.fixture def init_hnsw( tmp_path: Path, -) -> Tuple[HnswDocumentIndex[MyDoc], Dict[str, Any], FakeEmbeddings]: +) -> Tuple[HnswDocumentIndex, Dict[str, Any], FakeEmbeddings]: + from docarray import BaseDoc + from docarray.index import ( + HnswDocumentIndex, + ) + + class MyDoc(BaseDoc): + title: str + title_embedding: NdArray[32] # type: ignore + other_emb: NdArray[32] # type: ignore + year: int + embeddings = FakeEmbeddings(size=32) # initialize InMemoryExactNNIndex diff --git a/libs/langchain/tests/integration_tests/retrievers/docarray/test_backends.py b/libs/langchain/tests/integration_tests/retrievers/docarray/test_backends.py index b1f34b253f1..8f364f1a39d 100644 --- a/libs/langchain/tests/integration_tests/retrievers/docarray/test_backends.py +++ b/libs/langchain/tests/integration_tests/retrievers/docarray/test_backends.py @@ -1,7 +1,6 @@ from typing import Any import pytest -from vcr.request import Request from langchain.retrievers import DocArrayRetriever from tests.integration_tests.retrievers.docarray.fixtures import ( # noqa: F401 @@ -17,7 +16,7 @@ from tests.integration_tests.retrievers.docarray.fixtures import ( # noqa: F401 "backend", ["init_hnsw", "init_in_memory", "init_qdrant", "init_elastic", "init_weaviate"], ) -def test_backends(request: Request, backend: Any) -> None: +def test_backends(request: Any, backend: Any) -> None: index, filter_query, embeddings = request.getfixturevalue(backend) # create a retriever diff --git a/libs/langchain/tests/integration_tests/retrievers/test_weaviate_hybrid_search.py b/libs/langchain/tests/integration_tests/retrievers/test_weaviate_hybrid_search.py index 267820cf2ac..93c1a34f1aa 100644 --- a/libs/langchain/tests/integration_tests/retrievers/test_weaviate_hybrid_search.py +++ b/libs/langchain/tests/integration_tests/retrievers/test_weaviate_hybrid_search.py @@ -6,7 +6,6 @@ from typing import Generator, Union from uuid import uuid4 import pytest -from weaviate import Client from langchain.docstore.document import Document from langchain.retrievers.weaviate_hybrid_search import WeaviateHybridSearchRetriever @@ -28,6 +27,8 @@ class TestWeaviateHybridSearchRetriever: @pytest.fixture(scope="class", autouse=True) def weaviate_url(self) -> Union[str, Generator[str, None, None]]: """Return the weaviate url.""" + from weaviate import Client + url = "http://localhost:8080" yield url @@ -38,6 +39,8 @@ class TestWeaviateHybridSearchRetriever: @pytest.mark.vcr(ignore_localhost=True) def test_get_relevant_documents(self, weaviate_url: str) -> None: """Test end to end construction and MRR search.""" + from weaviate import Client + texts = ["foo", "bar", "baz"] metadatas = [{"page": i} for i in range(len(texts))] @@ -64,6 +67,8 @@ class TestWeaviateHybridSearchRetriever: @pytest.mark.vcr(ignore_localhost=True) def test_get_relevant_documents_with_score(self, weaviate_url: str) -> None: """Test end to end construction and MRR search.""" + from weaviate import Client + texts = ["foo", "bar", "baz"] metadatas = [{"page": i} for i in range(len(texts))] @@ -87,6 +92,8 @@ class TestWeaviateHybridSearchRetriever: @pytest.mark.vcr(ignore_localhost=True) def test_get_relevant_documents_with_filter(self, weaviate_url: str) -> None: """Test end to end construction and MRR search.""" + from weaviate import Client + texts = ["foo", "bar", "baz"] metadatas = [{"page": i} for i in range(len(texts))] @@ -113,6 +120,8 @@ class TestWeaviateHybridSearchRetriever: @pytest.mark.vcr(ignore_localhost=True) def test_get_relevant_documents_with_uuids(self, weaviate_url: str) -> None: """Test end to end construction and MRR search.""" + from weaviate import Client + texts = ["foo", "bar", "baz"] metadatas = [{"page": i} for i in range(len(texts))] # Weaviate replaces the object if the UUID already exists diff --git a/libs/langchain/tests/integration_tests/vectorstores/qdrant/async_api/test_add_texts.py b/libs/langchain/tests/integration_tests/vectorstores/qdrant/async_api/test_add_texts.py index a6f3e72b785..b1689e836a1 100644 --- a/libs/langchain/tests/integration_tests/vectorstores/qdrant/async_api/test_add_texts.py +++ b/libs/langchain/tests/integration_tests/vectorstores/qdrant/async_api/test_add_texts.py @@ -2,7 +2,6 @@ import uuid from typing import Optional import pytest -from qdrant_client.http import models as rest from langchain.vectorstores import Qdrant from tests.integration_tests.vectorstores.fake_embeddings import ( @@ -69,6 +68,7 @@ async def test_qdrant_aadd_texts_stores_ids( ) -> None: """Test end to end Qdrant.aadd_texts stores provided ids.""" from qdrant_client import QdrantClient + from qdrant_client.http import models as rest ids = [ "fa38d572-4c31-4579-aedc-1960d79df6df", @@ -101,6 +101,7 @@ async def test_qdrant_aadd_texts_stores_embeddings_as_named_vectors( ) -> None: """Test end to end Qdrant.aadd_texts stores named vectors if name is provided.""" from qdrant_client import QdrantClient + from qdrant_client.http import models as rest collection_name = uuid.uuid4().hex diff --git a/libs/langchain/tests/integration_tests/vectorstores/qdrant/async_api/test_similarity_search.py b/libs/langchain/tests/integration_tests/vectorstores/qdrant/async_api/test_similarity_search.py index c6158bbb50d..55e1fc3aa30 100644 --- a/libs/langchain/tests/integration_tests/vectorstores/qdrant/async_api/test_similarity_search.py +++ b/libs/langchain/tests/integration_tests/vectorstores/qdrant/async_api/test_similarity_search.py @@ -2,7 +2,6 @@ from typing import Optional import numpy as np import pytest -from qdrant_client.http import models as rest from langchain.schema import Document from langchain.vectorstores import Qdrant @@ -239,6 +238,8 @@ async def test_qdrant_similarity_search_filters_with_qdrant_filters( qdrant_location: str, ) -> None: """Test end to end construction and search.""" + from qdrant_client.http import models as rest + texts = ["foo", "bar", "baz"] metadatas = [ {"page": i, "details": {"page": i + 1, "pages": [i + 2, -1]}} diff --git a/libs/langchain/tests/integration_tests/vectorstores/qdrant/test_add_texts.py b/libs/langchain/tests/integration_tests/vectorstores/qdrant/test_add_texts.py index 0290911e40c..052ef3c0747 100644 --- a/libs/langchain/tests/integration_tests/vectorstores/qdrant/test_add_texts.py +++ b/libs/langchain/tests/integration_tests/vectorstores/qdrant/test_add_texts.py @@ -2,7 +2,6 @@ import uuid from typing import Optional import pytest -from qdrant_client.http import models as rest from langchain.schema import Document from langchain.vectorstores import Qdrant @@ -81,6 +80,7 @@ def test_qdrant_add_texts_stores_duplicated_texts(vector_name: Optional[str]) -> def test_qdrant_add_texts_stores_ids(batch_size: int) -> None: """Test end to end Qdrant.add_texts stores provided ids.""" from qdrant_client import QdrantClient + from qdrant_client.http import models as rest ids = [ "fa38d572-4c31-4579-aedc-1960d79df6df", @@ -107,6 +107,7 @@ def test_qdrant_add_texts_stores_ids(batch_size: int) -> None: def test_qdrant_add_texts_stores_embeddings_as_named_vectors(vector_name: str) -> None: """Test end to end Qdrant.add_texts stores named vectors if name is provided.""" from qdrant_client import QdrantClient + from qdrant_client.http import models as rest collection_name = uuid.uuid4().hex diff --git a/libs/langchain/tests/integration_tests/vectorstores/qdrant/test_similarity_search.py b/libs/langchain/tests/integration_tests/vectorstores/qdrant/test_similarity_search.py index cfd413fbef2..b1aae06ab57 100644 --- a/libs/langchain/tests/integration_tests/vectorstores/qdrant/test_similarity_search.py +++ b/libs/langchain/tests/integration_tests/vectorstores/qdrant/test_similarity_search.py @@ -2,7 +2,6 @@ from typing import Optional import numpy as np import pytest -from qdrant_client.http import models as rest from langchain.schema import Document from langchain.vectorstores import Qdrant @@ -209,6 +208,8 @@ def test_qdrant_similarity_search_filters_with_qdrant_filters( vector_name: Optional[str], ) -> None: """Test end to end construction and search.""" + from qdrant_client.http import models as rest + texts = ["foo", "bar", "baz"] metadatas = [ {"page": i, "details": {"page": i + 1, "pages": [i + 2, -1]}} diff --git a/libs/langchain/tests/integration_tests/vectorstores/test_azuresearch.py b/libs/langchain/tests/integration_tests/vectorstores/test_azuresearch.py index b5c3b720cf2..2819f819d60 100644 --- a/libs/langchain/tests/integration_tests/vectorstores/test_azuresearch.py +++ b/libs/langchain/tests/integration_tests/vectorstores/test_azuresearch.py @@ -1,7 +1,6 @@ import os import time -import openai import pytest from dotenv import load_dotenv @@ -10,13 +9,7 @@ from langchain.vectorstores.azuresearch import AzureSearch load_dotenv() -# Azure OpenAI settings -openai.api_type = "azure" -openai.api_base = os.getenv("OPENAI_API_BASE", "") -openai.api_version = "2023-05-15" -openai.api_key = os.getenv("OPENAI_API_KEY", "") -model: str = os.getenv("OPENAI_EMBEDDINGS_ENGINE_DOC", "text-embedding-ada-002") - +model = os.getenv("OPENAI_EMBEDDINGS_ENGINE_DOC", "text-embedding-ada-002") # Vector store settings vector_store_address: str = os.getenv("AZURE_SEARCH_ENDPOINT", "") vector_store_password: str = os.getenv("AZURE_SEARCH_ADMIN_KEY", "") diff --git a/libs/langchain/tests/integration_tests/vectorstores/test_deeplake.py b/libs/langchain/tests/integration_tests/vectorstores/test_deeplake.py index 9274392ae86..a666329cce8 100644 --- a/libs/langchain/tests/integration_tests/vectorstores/test_deeplake.py +++ b/libs/langchain/tests/integration_tests/vectorstores/test_deeplake.py @@ -1,5 +1,4 @@ """Test Deep Lake functionality.""" -import deeplake import pytest from pytest import FixtureRequest @@ -53,6 +52,8 @@ def test_deeplake_with_metadatas() -> None: def test_deeplakewith_persistence() -> None: """Test end to end construction and search, with persistence.""" + import deeplake + dataset_path = "./tests/persist_dir" if deeplake.exists(dataset_path): deeplake.delete(dataset_path) @@ -84,6 +85,8 @@ def test_deeplakewith_persistence() -> None: def test_deeplake_overwrite_flag() -> None: """Test overwrite behavior""" + import deeplake + dataset_path = "./tests/persist_dir" if deeplake.exists(dataset_path): deeplake.delete(dataset_path) @@ -234,6 +237,8 @@ def test_delete_dataset_by_filter(deeplake_datastore: DeepLake) -> None: def test_delete_by_path(deeplake_datastore: DeepLake) -> None: """Test delete dataset.""" + import deeplake + path = deeplake_datastore.dataset_path DeepLake.force_delete_by_path(path) assert not deeplake.exists(path) diff --git a/libs/langchain/tests/integration_tests/vectorstores/test_elasticsearch.py b/libs/langchain/tests/integration_tests/vectorstores/test_elasticsearch.py index cb2d0c0e026..db87f0bc5a2 100644 --- a/libs/langchain/tests/integration_tests/vectorstores/test_elasticsearch.py +++ b/libs/langchain/tests/integration_tests/vectorstores/test_elasticsearch.py @@ -5,7 +5,6 @@ import uuid from typing import Generator, List, Union import pytest -from elasticsearch import Elasticsearch from langchain.docstore.document import Document from langchain.embeddings import OpenAIEmbeddings @@ -29,6 +28,8 @@ class TestElasticsearch: @pytest.fixture(scope="class", autouse=True) def elasticsearch_url(self) -> Union[str, Generator[str, None, None]]: """Return the elasticsearch url.""" + from elasticsearch import Elasticsearch + url = "http://localhost:9200" yield url es = Elasticsearch(hosts=url) @@ -108,6 +109,7 @@ class TestElasticsearch: ) -> None: """This test checks the construction of a custom ElasticSearch index using the 'from_documents'.""" + from elasticsearch import Elasticsearch index_name = f"custom_index_{uuid.uuid4().hex}" elastic_vector_search = ElasticVectorSearch.from_documents( @@ -134,6 +136,7 @@ class TestElasticsearch: ) -> None: """This test checks the construction of a custom ElasticSearch index using the 'add_documents'.""" + from elasticsearch import Elasticsearch index_name = f"custom_index_{uuid.uuid4().hex}" elastic_vector_search = ElasticVectorSearch( diff --git a/libs/langchain/tests/integration_tests/vectorstores/test_lancedb.py b/libs/langchain/tests/integration_tests/vectorstores/test_lancedb.py index b2f7e4cc2cc..cf9199f6791 100644 --- a/libs/langchain/tests/integration_tests/vectorstores/test_lancedb.py +++ b/libs/langchain/tests/integration_tests/vectorstores/test_lancedb.py @@ -1,10 +1,10 @@ -import lancedb - from langchain.vectorstores import LanceDB from tests.integration_tests.vectorstores.fake_embeddings import FakeEmbeddings def test_lancedb() -> None: + import lancedb + embeddings = FakeEmbeddings() db = lancedb.connect("/tmp/lancedb") texts = ["text 1", "text 2", "item 3"] @@ -24,6 +24,8 @@ def test_lancedb() -> None: def test_lancedb_add_texts() -> None: + import lancedb + embeddings = FakeEmbeddings() db = lancedb.connect("/tmp/lancedb") texts = ["text 1"] diff --git a/libs/langchain/tests/integration_tests/vectorstores/test_marqo.py b/libs/langchain/tests/integration_tests/vectorstores/test_marqo.py index f2685ecc1bf..4821ee2dc2a 100644 --- a/libs/langchain/tests/integration_tests/vectorstores/test_marqo.py +++ b/libs/langchain/tests/integration_tests/vectorstores/test_marqo.py @@ -1,7 +1,6 @@ """Test Marqo functionality.""" from typing import Dict -import marqo import pytest from langchain.docstore.document import Document @@ -14,6 +13,8 @@ INDEX_NAME = "langchain-integration-tests" @pytest.fixture def client() -> Marqo: + import marqo + # fixture for marqo client to be used throughout testing, resets the index client = marqo.Client(url=DEFAULT_MARQO_URL, api_key=DEFAULT_MARQO_API_KEY) try: @@ -128,6 +129,8 @@ def test_marqo_weighted_query(client: Marqo) -> None: def test_marqo_multimodal() -> None: + import marqo + client = marqo.Client(url=DEFAULT_MARQO_URL, api_key=DEFAULT_MARQO_API_KEY) try: client.index(INDEX_NAME).delete() diff --git a/libs/langchain/tests/integration_tests/vectorstores/test_meilisearch.py b/libs/langchain/tests/integration_tests/vectorstores/test_meilisearch.py index 630f9a0b750..1041ad315b6 100644 --- a/libs/langchain/tests/integration_tests/vectorstores/test_meilisearch.py +++ b/libs/langchain/tests/integration_tests/vectorstores/test_meilisearch.py @@ -1,7 +1,6 @@ """Test Meilisearch functionality.""" -from typing import Generator +from typing import TYPE_CHECKING, Generator -import meilisearch import pytest import requests @@ -9,6 +8,9 @@ from langchain.docstore.document import Document from langchain.vectorstores import Meilisearch from tests.integration_tests.vectorstores.fake_embeddings import FakeEmbeddings +if TYPE_CHECKING: + import meilisearch + INDEX_NAME = "test-langchain-demo" TEST_MEILI_HTTP_ADDR = "http://localhost:7700" TEST_MEILI_MASTER_KEY = "masterKey" @@ -49,7 +51,9 @@ class TestMeilisearchVectorSearch: task = client.index(index.uid).delete() client.wait_for_task(task.task_uid) - def client(self) -> meilisearch.Client: + def client(self) -> "meilisearch.Client": + import meilisearch + return meilisearch.Client(TEST_MEILI_HTTP_ADDR, TEST_MEILI_MASTER_KEY) def _wait_last_task(self) -> None: diff --git a/libs/langchain/tests/integration_tests/vectorstores/test_mongodb_atlas.py b/libs/langchain/tests/integration_tests/vectorstores/test_mongodb_atlas.py index ec27bbdaadd..c57b1110182 100644 --- a/libs/langchain/tests/integration_tests/vectorstores/test_mongodb_atlas.py +++ b/libs/langchain/tests/integration_tests/vectorstores/test_mongodb_atlas.py @@ -3,7 +3,7 @@ from __future__ import annotations import os from time import sleep -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any import pytest @@ -21,23 +21,27 @@ DB_NAME, COLLECTION_NAME = NAMESPACE.split(".") # Instantiate as constant instead of pytest fixture to prevent needing to make multiple # connections. -TEST_CLIENT: MongoClient = MongoClient(CONNECTION_STRING) -collection = TEST_CLIENT[DB_NAME][COLLECTION_NAME] + + +@pytest.fixture +def collection() -> Any: + test_client = MongoClient(CONNECTION_STRING) + return test_client[DB_NAME][COLLECTION_NAME] class TestMongoDBAtlasVectorSearch: @classmethod - def setup_class(cls) -> None: + def setup_class(cls, collection: Any) -> None: # insure the test collection is empty assert collection.count_documents({}) == 0 # type: ignore[index] # noqa: E501 @classmethod - def teardown_class(cls) -> None: + def teardown_class(cls, collection: Any) -> None: # delete all the documents in the collection collection.delete_many({}) # type: ignore[index] @pytest.fixture(autouse=True) - def setup(self) -> None: + def setup(self, collection: Any) -> None: # delete all the documents in the collection collection.delete_many({}) # type: ignore[index] diff --git a/libs/langchain/tests/integration_tests/vectorstores/test_opensearch.py b/libs/langchain/tests/integration_tests/vectorstores/test_opensearch.py index 7b16c2a5d82..49752c88a06 100644 --- a/libs/langchain/tests/integration_tests/vectorstores/test_opensearch.py +++ b/libs/langchain/tests/integration_tests/vectorstores/test_opensearch.py @@ -1,8 +1,6 @@ """Test OpenSearch functionality.""" -import boto3 import pytest -from opensearchpy import AWSV4SignerAuth from langchain.docstore.document import Document from langchain.vectorstores.opensearch_vector_search import ( @@ -219,6 +217,9 @@ def test_opensearch_with_custom_field_name_appx_false() -> None: def test_opensearch_serverless_with_scripting_search_indexing_throws_error() -> None: """Test to validate indexing using Serverless without Approximate Search.""" + import boto3 + from opensearchpy import AWSV4SignerAuth + region = "test-region" service = "aoss" credentials = boto3.Session().get_credentials() @@ -235,6 +236,9 @@ def test_opensearch_serverless_with_scripting_search_indexing_throws_error() -> def test_opensearch_serverless_with_lucene_engine_throws_error() -> None: """Test to validate indexing using lucene engine with Serverless.""" + import boto3 + from opensearchpy import AWSV4SignerAuth + region = "test-region" service = "aoss" credentials = boto3.Session().get_credentials() diff --git a/libs/langchain/tests/integration_tests/vectorstores/test_pinecone.py b/libs/langchain/tests/integration_tests/vectorstores/test_pinecone.py index cc380150cbe..db6b6cdbd93 100644 --- a/libs/langchain/tests/integration_tests/vectorstores/test_pinecone.py +++ b/libs/langchain/tests/integration_tests/vectorstores/test_pinecone.py @@ -2,16 +2,18 @@ import importlib import os import time import uuid -from typing import List +from typing import TYPE_CHECKING, List import numpy as np -import pinecone import pytest from langchain.docstore.document import Document from langchain.embeddings import OpenAIEmbeddings from langchain.vectorstores.pinecone import Pinecone +if TYPE_CHECKING: + import pinecone + index_name = "langchain-test-index" # name of the index namespace_name = "langchain-test-namespace" # name of the namespace dimension = 1536 # dimension of the embeddings @@ -32,10 +34,12 @@ def reset_pinecone() -> None: class TestPinecone: - index: pinecone.Index + index: "pinecone.Index" @classmethod def setup_class(cls) -> None: + import pinecone + reset_pinecone() cls.index = pinecone.Index(index_name) diff --git a/libs/langchain/tests/integration_tests/vectorstores/test_rocksetdb.py b/libs/langchain/tests/integration_tests/vectorstores/test_rocksetdb.py index f9072101659..e62b8e86532 100644 --- a/libs/langchain/tests/integration_tests/vectorstores/test_rocksetdb.py +++ b/libs/langchain/tests/integration_tests/vectorstores/test_rocksetdb.py @@ -1,9 +1,6 @@ import logging import os -import rockset -import rockset.models - from langchain.docstore.document import Document from langchain.vectorstores.rocksetdb import Rockset from tests.integration_tests.vectorstores.fake_embeddings import ( @@ -44,6 +41,9 @@ class TestRockset: @classmethod def setup_class(cls) -> None: + import rockset + import rockset.models + assert os.environ.get("ROCKSET_API_KEY") is not None assert os.environ.get("ROCKSET_REGION") is not None diff --git a/libs/langchain/tests/integration_tests/vectorstores/test_weaviate.py b/libs/langchain/tests/integration_tests/vectorstores/test_weaviate.py index a9e1736a497..0f8487285a4 100644 --- a/libs/langchain/tests/integration_tests/vectorstores/test_weaviate.py +++ b/libs/langchain/tests/integration_tests/vectorstores/test_weaviate.py @@ -5,7 +5,6 @@ import uuid from typing import Generator, Union import pytest -from weaviate import Client from langchain.docstore.document import Document from langchain.embeddings.openai import OpenAIEmbeddings @@ -29,6 +28,8 @@ class TestWeaviate: @pytest.fixture(scope="class", autouse=True) def weaviate_url(self) -> Union[str, Generator[str, None, None]]: """Return the weaviate url.""" + from weaviate import Client + url = "http://localhost:8080" yield url