diff --git a/docs/extras/integrations/document_loaders/pubmed.ipynb b/docs/extras/integrations/document_loaders/pubmed.ipynb
new file mode 100644
index 0000000000..30b69e5640
--- /dev/null
+++ b/docs/extras/integrations/document_loaders/pubmed.ipynb
@@ -0,0 +1,139 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "3df0dcf8",
+ "metadata": {},
+ "source": [
+ "# PubMed\n",
+ "\n",
+ ">[PubMed®](https://pubmed.ncbi.nlm.nih.gov/) by `The National Center for Biotechnology Information, National Library of Medicine` comprises more than 35 million citations for biomedical literature from `MEDLINE`, life science journals, and online books. Citations may include links to full text content from `PubMed Central` and publisher web sites."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "aecaff63",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from langchain.document_loaders import PubMedLoader"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "f2f7e8d3",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "loader = PubMedLoader(\"chatgpt\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "ed115aa1",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "docs = loader.load()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "b68d3264-b893-45e4-8ab0-077b25a586dc",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "3"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "len(docs)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "9f4626d2-068d-4aed-9ffe-ad754ad4b4cd",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'uid': '37548997',\n",
+ " 'Title': 'Performance of ChatGPT on the Situational Judgement Test-A Professional Dilemmas-Based Examination for Doctors in the United Kingdom.',\n",
+ " 'Published': '2023-08-07',\n",
+ " 'Copyright Information': '©Robin J Borchert, Charlotte R Hickman, Jack Pepys, Timothy J Sadler. Originally published in JMIR Medical Education (https://mededu.jmir.org), 07.08.2023.'}"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "docs[1].metadata"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "8000f687-b500-4cce-841b-70d6151304da",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "\"BACKGROUND: ChatGPT is a large language model that has performed well on professional examinations in the fields of medicine, law, and business. However, it is unclear how ChatGPT would perform on an examination assessing professionalism and situational judgement for doctors.\\nOBJECTIVE: We evaluated the performance of ChatGPT on the Situational Judgement Test (SJT): a national examination taken by all final-year medical students in the United Kingdom. This examination is designed to assess attributes such as communication, teamwork, patient safety, prioritization skills, professionalism, and ethics.\\nMETHODS: All questions from the UK Foundation Programme Office's (UKFPO's) 2023 SJT practice examination were inputted into ChatGPT. For each question, ChatGPT's answers and rationales were recorded and assessed on the basis of the official UK Foundation Programme Office scoring template. Questions were categorized into domains of Good Medical Practice on the basis of the domains referenced in the rationales provided in the scoring sheet. Questions without clear domain links were screened by reviewers and assigned one or multiple domains. ChatGPT's overall performance, as well as its performance across the domains of Good Medical Practice, was evaluated.\\nRESULTS: Overall, ChatGPT performed well, scoring 76% on the SJT but scoring full marks on only a few questions (9%), which may reflect possible flaws in ChatGPT's situational judgement or inconsistencies in the reasoning across questions (or both) in the examination itself. ChatGPT demonstrated consistent performance across the 4 outlined domains in Good Medical Practice for doctors.\\nCONCLUSIONS: Further research is needed to understand the potential applications of large language models, such as ChatGPT, in medical education for standardizing questions and providing consistent rationales for examinations assessing professionalism and ethics.\""
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "docs[1].page_content"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "1070e571-697d-4c33-9a4f-0b2dd6909629",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/docs/extras/integrations/providers/pubmed.md b/docs/extras/integrations/providers/pubmed.md
new file mode 100644
index 0000000000..b6b32420d2
--- /dev/null
+++ b/docs/extras/integrations/providers/pubmed.md
@@ -0,0 +1,30 @@
+# PubMed
+
+# PubMed
+
+>[PubMed®](https://pubmed.ncbi.nlm.nih.gov/) by `The National Center for Biotechnology Information, National Library of Medicine`
+> comprises more than 35 million citations for biomedical literature from `MEDLINE`, life science journals, and online books.
+> Citations may include links to full text content from `PubMed Central` and publisher web sites.
+
+## Setup
+You need to install a python package.
+
+```bash
+pip install xmltodict
+```
+
+### Retriever
+
+See a [usage example](/docs/integrations/retrievers/pubmed).
+
+```python
+from langchain.retrievers import PubMedRetriever
+```
+
+### Document Loader
+
+See a [usage example](/docs/integrations/document_loaders/pubmed).
+
+```python
+from langchain.document_loaders import PubMedLoader
+```
diff --git a/docs/extras/integrations/retrievers/pubmed.ipynb b/docs/extras/integrations/retrievers/pubmed.ipynb
index 6e0ce8a77c..336ee5fdd8 100644
--- a/docs/extras/integrations/retrievers/pubmed.ipynb
+++ b/docs/extras/integrations/retrievers/pubmed.ipynb
@@ -7,14 +7,15 @@
"source": [
"# PubMed\n",
"\n",
- "This notebook goes over how to use `PubMed` as a retriever\n",
"\n",
- "`PubMed®` comprises more than 35 million citations for biomedical literature from `MEDLINE`, life science journals, and online books. Citations may include links to full text content from `PubMed Central` and publisher web sites."
+ ">[PubMed®](https://pubmed.ncbi.nlm.nih.gov/) by `The National Center for Biotechnology Information, National Library of Medicine` comprises more than 35 million citations for biomedical literature from `MEDLINE`, life science journals, and online books. Citations may include links to full text content from `PubMed Central` and publisher web sites.\n",
+ "\n",
+ "This notebook goes over how to use `PubMed` as a retriever"
]
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 12,
"id": "aecaff63",
"metadata": {},
"outputs": [],
@@ -24,7 +25,7 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 34,
"id": "f2f7e8d3",
"metadata": {},
"outputs": [],
@@ -34,19 +35,19 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 35,
"id": "ed115aa1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "[Document(page_content='', metadata={'uid': '37268021', 'title': 'Dermatology in the wake of an AI revolution: who gets a say?', 'pub_date': '2023May31'}),\n",
- " Document(page_content='', metadata={'uid': '37267643', 'title': 'What is ChatGPT and what do we do with it? Implications of the age of AI for nursing and midwifery practice and education: An editorial.', 'pub_date': '2023May30'}),\n",
- " Document(page_content='The nursing field has undergone notable changes over time and is projected to undergo further modifications in the future, owing to the advent of sophisticated technologies and growing healthcare needs. The advent of ChatGPT, an AI-powered language model, is expected to exert a significant influence on the nursing profession, specifically in the domains of patient care and instruction. The present article delves into the ramifications of ChatGPT within the nursing domain and accentuates its capacity and constraints to transform the discipline.', metadata={'uid': '37266721', 'title': 'The Impact of ChatGPT on the Nursing Profession: Revolutionizing Patient Care and Education.', 'pub_date': '2023Jun02'})]"
+ "[Document(page_content='', metadata={'uid': '37549050', 'Title': 'ChatGPT: \"To Be or Not to Be\" in Bikini Bottom.', 'Published': '--', 'Copyright Information': ''}),\n",
+ " Document(page_content=\"BACKGROUND: ChatGPT is a large language model that has performed well on professional examinations in the fields of medicine, law, and business. However, it is unclear how ChatGPT would perform on an examination assessing professionalism and situational judgement for doctors.\\nOBJECTIVE: We evaluated the performance of ChatGPT on the Situational Judgement Test (SJT): a national examination taken by all final-year medical students in the United Kingdom. This examination is designed to assess attributes such as communication, teamwork, patient safety, prioritization skills, professionalism, and ethics.\\nMETHODS: All questions from the UK Foundation Programme Office's (UKFPO's) 2023 SJT practice examination were inputted into ChatGPT. For each question, ChatGPT's answers and rationales were recorded and assessed on the basis of the official UK Foundation Programme Office scoring template. Questions were categorized into domains of Good Medical Practice on the basis of the domains referenced in the rationales provided in the scoring sheet. Questions without clear domain links were screened by reviewers and assigned one or multiple domains. ChatGPT's overall performance, as well as its performance across the domains of Good Medical Practice, was evaluated.\\nRESULTS: Overall, ChatGPT performed well, scoring 76% on the SJT but scoring full marks on only a few questions (9%), which may reflect possible flaws in ChatGPT's situational judgement or inconsistencies in the reasoning across questions (or both) in the examination itself. ChatGPT demonstrated consistent performance across the 4 outlined domains in Good Medical Practice for doctors.\\nCONCLUSIONS: Further research is needed to understand the potential applications of large language models, such as ChatGPT, in medical education for standardizing questions and providing consistent rationales for examinations assessing professionalism and ethics.\", metadata={'uid': '37548997', 'Title': 'Performance of ChatGPT on the Situational Judgement Test-A Professional Dilemmas-Based Examination for Doctors in the United Kingdom.', 'Published': '2023-08-07', 'Copyright Information': '©Robin J Borchert, Charlotte R Hickman, Jack Pepys, Timothy J Sadler. Originally published in JMIR Medical Education (https://mededu.jmir.org), 07.08.2023.'}),\n",
+ " Document(page_content='', metadata={'uid': '37548971', 'Title': \"Large Language Models Answer Medical Questions Accurately, but Can't Match Clinicians' Knowledge.\", 'Published': '2023-08-07', 'Copyright Information': ''})]"
]
},
- "execution_count": 9,
+ "execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
@@ -54,6 +55,14 @@
"source": [
"retriever.get_relevant_documents(\"chatgpt\")"
]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a9ff7a25-bb4b-4cd5-896d-72f70f4af49b",
+ "metadata": {},
+ "outputs": [],
+ "source": []
}
],
"metadata": {
@@ -72,7 +81,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.10.6"
+ "version": "3.10.12"
}
},
"nbformat": 4,
diff --git a/libs/langchain/langchain/agents/load_tools.py b/libs/langchain/langchain/agents/load_tools.py
index 2486e37708..a7b8e86062 100644
--- a/libs/langchain/langchain/agents/load_tools.py
+++ b/libs/langchain/langchain/agents/load_tools.py
@@ -196,7 +196,7 @@ def _get_golden_query(**kwargs: Any) -> BaseTool:
return GoldenQueryRun(api_wrapper=GoldenQueryAPIWrapper(**kwargs))
-def _get_pupmed(**kwargs: Any) -> BaseTool:
+def _get_pubmed(**kwargs: Any) -> BaseTool:
return PubmedQueryRun(api_wrapper=PubMedAPIWrapper(**kwargs))
@@ -313,10 +313,7 @@ _EXTRA_OPTIONAL_TOOLS: Dict[str, Tuple[Callable[[KwArg(Any)], BaseTool], List[st
["top_k_results", "load_max_docs", "load_all_available_meta"],
),
"golden-query": (_get_golden_query, ["golden_api_key"]),
- "pupmed": (
- _get_pupmed,
- ["top_k_results", "load_max_docs", "load_all_available_meta"],
- ),
+ "pubmed": (_get_pubmed, ["top_k_results"]),
"human": (_get_human_tool, ["prompt_func", "input_func"]),
"awslambda": (
_get_lambda_api,
diff --git a/libs/langchain/langchain/document_loaders/__init__.py b/libs/langchain/langchain/document_loaders/__init__.py
index ccc59d3f0e..d0a2a0211c 100644
--- a/libs/langchain/langchain/document_loaders/__init__.py
+++ b/libs/langchain/langchain/document_loaders/__init__.py
@@ -122,6 +122,7 @@ from langchain.document_loaders.pdf import (
)
from langchain.document_loaders.powerpoint import UnstructuredPowerPointLoader
from langchain.document_loaders.psychic import PsychicLoader
+from langchain.document_loaders.pubmed import PubMedLoader
from langchain.document_loaders.pyspark_dataframe import PySparkDataFrameLoader
from langchain.document_loaders.python import PythonLoader
from langchain.document_loaders.readthedocs import ReadTheDocsLoader
@@ -184,13 +185,14 @@ PagedPDFSplitter = PyPDFLoader
TelegramChatLoader = TelegramChatFileLoader
__all__ = [
- "AcreomLoader",
- "AsyncHtmlLoader",
"AZLyricsLoader",
+ "AcreomLoader",
"AirbyteJSONLoader",
"AirtableLoader",
+ "AmazonTextractPDFLoader",
"ApifyDatasetLoader",
"ArxivLoader",
+ "AsyncHtmlLoader",
"AzureBlobStorageContainerLoader",
"AzureBlobStorageFileLoader",
"BSHTMLLoader",
@@ -207,10 +209,11 @@ __all__ = [
"ChatGPTLoader",
"CoNLLULoader",
"CollegeConfidentialLoader",
+ "ConcurrentLoader",
"ConfluenceLoader",
"CubeSemanticLoader",
- "DatadogLogsLoader",
"DataFrameLoader",
+ "DatadogLogsLoader",
"DiffbotLoader",
"DirectoryLoader",
"DiscordChatLoader",
@@ -246,12 +249,12 @@ __all__ = [
"JSONLoader",
"JoplinLoader",
"LarkSuiteDocLoader",
+ "MHTMLLoader",
"MWDumpLoader",
"MastodonTootsLoader",
"MathpixPDFLoader",
"MaxComputeLoader",
"MergedDataLoader",
- "MHTMLLoader",
"ModernTreasuryLoader",
"NewsURLLoader",
"NotebookLoader",
@@ -263,26 +266,27 @@ __all__ = [
"OneDriveFileLoader",
"OneDriveLoader",
"OnlinePDFLoader",
- "OutlookMessageLoader",
"OpenCityDataLoader",
+ "OutlookMessageLoader",
"PDFMinerLoader",
"PDFMinerPDFasHTMLLoader",
"PDFPlumberLoader",
"PagedPDFSplitter",
"PlaywrightURLLoader",
"PsychicLoader",
+ "PubMedLoader",
"PyMuPDFLoader",
"PyPDFDirectoryLoader",
"PyPDFLoader",
"PyPDFium2Loader",
"PySparkDataFrameLoader",
"PythonLoader",
+ "RSSFeedLoader",
"ReadTheDocsLoader",
"RecursiveUrlLoader",
"RedditPostsLoader",
"RoamLoader",
"RocksetLoader",
- "RSSFeedLoader",
"S3DirectoryLoader",
"S3FileLoader",
"SRTLoader",
@@ -292,11 +296,11 @@ __all__ = [
"SnowflakeLoader",
"SpreedlyLoader",
"StripeLoader",
- "TencentCOSDirectoryLoader",
- "TencentCOSFileLoader",
"TelegramChatApiLoader",
"TelegramChatFileLoader",
"TelegramChatLoader",
+ "TencentCOSDirectoryLoader",
+ "TencentCOSFileLoader",
"TextLoader",
"ToMarkdownLoader",
"TomlLoader",
@@ -330,6 +334,4 @@ __all__ = [
"XorbitsLoader",
"YoutubeAudioLoader",
"YoutubeLoader",
- "ConcurrentLoader",
- "AmazonTextractPDFLoader",
]
diff --git a/libs/langchain/langchain/document_loaders/pubmed.py b/libs/langchain/langchain/document_loaders/pubmed.py
new file mode 100644
index 0000000000..4e354acfaa
--- /dev/null
+++ b/libs/langchain/langchain/document_loaders/pubmed.py
@@ -0,0 +1,39 @@
+from typing import Iterator, List, Optional
+
+from langchain.docstore.document import Document
+from langchain.document_loaders.base import BaseLoader
+from langchain.utilities.pubmed import PubMedAPIWrapper
+
+
+class PubMedLoader(BaseLoader):
+ """Loads a query result from PubMed biomedical library into a list of Documents.
+
+ Attributes:
+ query: The query to be passed to the PubMed API.
+ load_max_docs: The maximum number of documents to load.
+ """
+
+ def __init__(
+ self,
+ query: str,
+ load_max_docs: Optional[int] = 3,
+ ):
+ """Initialize the PubMedLoader.
+
+ Args:
+ query: The query to be passed to the PubMed API.
+ load_max_docs: The maximum number of documents to load.
+ Defaults to 3.
+ """
+ self.query = query
+ self.load_max_docs = load_max_docs
+ self._client = PubMedAPIWrapper(
+ top_k_results=load_max_docs,
+ )
+
+ def load(self) -> List[Document]:
+ return list(self._client.lazy_load_docs(self.query))
+
+ def lazy_load(self) -> Iterator[Document]:
+ for doc in self._client.lazy_load_docs(self.query):
+ yield doc
diff --git a/libs/langchain/langchain/retrievers/pubmed.py b/libs/langchain/langchain/retrievers/pubmed.py
index d093bf23cb..751aae510e 100644
--- a/libs/langchain/langchain/retrievers/pubmed.py
+++ b/libs/langchain/langchain/retrievers/pubmed.py
@@ -2,7 +2,7 @@ from typing import List
from langchain.callbacks.manager import CallbackManagerForRetrieverRun
from langchain.schema import BaseRetriever, Document
-from langchain.utilities.pupmed import PubMedAPIWrapper
+from langchain.utilities.pubmed import PubMedAPIWrapper
class PubMedRetriever(BaseRetriever, PubMedAPIWrapper):
diff --git a/libs/langchain/langchain/tools/pubmed/tool.py b/libs/langchain/langchain/tools/pubmed/tool.py
index 0b2dedc8b2..dac103de73 100644
--- a/libs/langchain/langchain/tools/pubmed/tool.py
+++ b/libs/langchain/langchain/tools/pubmed/tool.py
@@ -1,12 +1,10 @@
-"""Tool for the Pubmed API."""
-
from typing import Optional
from pydantic import Field
from langchain.callbacks.manager import CallbackManagerForToolRun
from langchain.tools.base import BaseTool
-from langchain.utilities.pupmed import PubMedAPIWrapper
+from langchain.utilities.pubmed import PubMedAPIWrapper
class PubmedQueryRun(BaseTool):
@@ -14,11 +12,10 @@ class PubmedQueryRun(BaseTool):
name = "PubMed"
description = (
- "A wrapper around PubMed.org "
- "Useful for when you need to answer questions about Physics, Mathematics, "
- "Computer Science, Quantitative Biology, Quantitative Finance, Statistics, "
- "Electrical Engineering, and Economics "
- "from scientific articles on PubMed.org. "
+ "A wrapper around PubMed. "
+ "Useful for when you need to answer questions about medicine, health, "
+ "and biomedical topics "
+ "from biomedical literature, MEDLINE, life science journals, and online books. "
"Input should be a search query."
)
api_wrapper: PubMedAPIWrapper = Field(default_factory=PubMedAPIWrapper)
@@ -28,5 +25,5 @@ class PubmedQueryRun(BaseTool):
query: str,
run_manager: Optional[CallbackManagerForToolRun] = None,
) -> str:
- """Use the Arxiv tool."""
+ """Use the PubMed tool."""
return self.api_wrapper.run(query)
diff --git a/libs/langchain/langchain/utilities/__init__.py b/libs/langchain/langchain/utilities/__init__.py
index 0482ccafd2..b747ac9df5 100644
--- a/libs/langchain/langchain/utilities/__init__.py
+++ b/libs/langchain/langchain/utilities/__init__.py
@@ -21,7 +21,7 @@ from langchain.utilities.metaphor_search import MetaphorSearchAPIWrapper
from langchain.utilities.openweathermap import OpenWeatherMapAPIWrapper
from langchain.utilities.portkey import Portkey
from langchain.utilities.powerbi import PowerBIDataset
-from langchain.utilities.pupmed import PubMedAPIWrapper
+from langchain.utilities.pubmed import PubMedAPIWrapper
from langchain.utilities.python import PythonREPL
from langchain.utilities.requests import Requests, RequestsWrapper, TextRequestsWrapper
from langchain.utilities.scenexplain import SceneXplainAPIWrapper
diff --git a/libs/langchain/langchain/utilities/pupmed.py b/libs/langchain/langchain/utilities/pubmed.py
similarity index 53%
rename from libs/langchain/langchain/utilities/pupmed.py
rename to libs/langchain/langchain/utilities/pubmed.py
index f242be3abd..261358a6b3 100644
--- a/libs/langchain/langchain/utilities/pupmed.py
+++ b/libs/langchain/langchain/utilities/pubmed.py
@@ -3,9 +3,10 @@ import logging
import time
import urllib.error
import urllib.request
-from typing import List
+from typing import Any, Dict, Iterator, List
from pydantic import BaseModel
+from pydantic.class_validators import root_validator
from langchain.schema import Document
@@ -22,13 +23,19 @@ class PubMedAPIWrapper(BaseModel):
Parameters:
top_k_results: number of the top-scored document used for the PubMed tool
- load_max_docs: a limit to the number of loaded documents
- load_all_available_meta:
- if True: the `metadata` of the loaded Documents gets all available meta info
- (see https://www.ncbi.nlm.nih.gov/books/NBK25499/#chapter4.ESearch)
- if False: the `metadata` gets only the most informative fields.
+ MAX_QUERY_LENGTH: maximum length of the query.
+ Default is 300 characters.
+ doc_content_chars_max: maximum length of the document content.
+ Content will be truncated if it exceeds this length.
+ Default is 2000 characters.
+ max_retry: maximum number of retries for a request. Default is 5.
+ sleep_time: time to wait between retries.
+ Default is 0.2 seconds.
+ email: email address to be used for the PubMed API.
"""
+ parse: Any #: :meta private:
+
base_url_esearch = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?"
base_url_efetch = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?"
max_retry = 5
@@ -36,12 +43,24 @@ class PubMedAPIWrapper(BaseModel):
# Default values for the parameters
top_k_results: int = 3
- load_max_docs: int = 25
- ARXIV_MAX_QUERY_LENGTH = 300
+ MAX_QUERY_LENGTH = 300
doc_content_chars_max: int = 2000
- load_all_available_meta: bool = False
email: str = "your_email@example.com"
+ @root_validator()
+ def validate_environment(cls, values: Dict) -> Dict:
+ """Validate that the python package exists in environment."""
+ try:
+ import xmltodict
+
+ values["parse"] = xmltodict.parse
+ except ImportError:
+ raise ImportError(
+ "Could not import xmltodict python package. "
+ "Please install it with `pip install xmltodict`."
+ )
+ return values
+
def run(self, query: str) -> str:
"""
Run PubMed search and get the article meta information.
@@ -52,9 +71,11 @@ class PubMedAPIWrapper(BaseModel):
try:
# Retrieve the top-k results for the query
docs = [
- f"Published: {result['pub_date']}\nTitle: {result['title']}\n"
- f"Summary: {result['summary']}"
- for result in self.load(query[: self.ARXIV_MAX_QUERY_LENGTH])
+ f"Published: {result['Published']}\n"
+ f"Title: {result['Title']}\n"
+ f"Copyright Information: {result['Copyright Information']}\n"
+ f"Summary::\n{result['Summary']}"
+ for result in self.load(query[: self.MAX_QUERY_LENGTH])
]
# Join the results and limit the character count
@@ -66,10 +87,10 @@ class PubMedAPIWrapper(BaseModel):
except Exception as ex:
return f"PubMed exception: {ex}"
- def load(self, query: str) -> List[dict]:
+ def lazy_load(self, query: str) -> Iterator[dict]:
"""
Search PubMed for documents matching the query.
- Return a list of dictionaries containing the document metadata.
+ Return an iterator of dictionaries containing the document metadata.
"""
url = (
@@ -82,22 +103,27 @@ class PubMedAPIWrapper(BaseModel):
text = result.read().decode("utf-8")
json_text = json.loads(text)
- articles = []
webenv = json_text["esearchresult"]["webenv"]
for uid in json_text["esearchresult"]["idlist"]:
- article = self.retrieve_article(uid, webenv)
- articles.append(article)
+ yield self.retrieve_article(uid, webenv)
- # Convert the list of articles to a JSON string
- return articles
+ def load(self, query: str) -> List[dict]:
+ """
+ Search PubMed for documents matching the query.
+ Return a list of dictionaries containing the document metadata.
+ """
+ return list(self.lazy_load(query))
- def _transform_doc(self, doc: dict) -> Document:
- summary = doc.pop("summary")
+ def _dict2document(self, doc: dict) -> Document:
+ summary = doc.pop("Summary")
return Document(page_content=summary, metadata=doc)
+ def lazy_load_docs(self, query: str) -> Iterator[Document]:
+ for d in self.lazy_load(query=query):
+ yield self._dict2document(d)
+
def load_docs(self, query: str) -> List[Document]:
- document_dicts = self.load(query=query)
- return [self._transform_doc(d) for d in document_dicts]
+ return list(self.lazy_load_docs(query=query))
def retrieve_article(self, uid: str, webenv: str) -> dict:
url = (
@@ -115,7 +141,7 @@ class PubMedAPIWrapper(BaseModel):
break
except urllib.error.HTTPError as e:
if e.code == 429 and retry < self.max_retry:
- # Too Many Requests error
+ # Too Many Requests errors
# wait for an exponentially increasing amount of time
print(
f"Too Many Requests, "
@@ -128,39 +154,31 @@ class PubMedAPIWrapper(BaseModel):
raise e
xml_text = result.read().decode("utf-8")
-
- # Get title
- title = ""
- if "" in xml_text and "" in xml_text:
- start_tag = ""
- end_tag = ""
- title = xml_text[
- xml_text.index(start_tag) + len(start_tag) : xml_text.index(end_tag)
- ]
-
- # Get abstract
- abstract = ""
- if "" in xml_text and "" in xml_text:
- start_tag = ""
- end_tag = ""
- abstract = xml_text[
- xml_text.index(start_tag) + len(start_tag) : xml_text.index(end_tag)
- ]
-
- # Get publication date
- pub_date = ""
- if "" in xml_text and "" in xml_text:
- start_tag = ""
- end_tag = ""
- pub_date = xml_text[
- xml_text.index(start_tag) + len(start_tag) : xml_text.index(end_tag)
+ text_dict = self.parse(xml_text)
+ return self._parse_article(uid, text_dict)
+
+ def _parse_article(self, uid: str, text_dict: dict) -> dict:
+ ar = text_dict["PubmedArticleSet"]["PubmedArticle"]["MedlineCitation"][
+ "Article"
+ ]
+ summary = "\n".join(
+ [
+ f"{txt['@Label']}: {txt['#text']}"
+ for txt in ar.get("Abstract", {}).get("AbstractText", [])
+ if "#text" in txt and "@Label" in txt
]
+ )
+ a_d = ar.get("ArticleDate", {})
+ pub_date = "-".join(
+ [a_d.get("Year", ""), a_d.get("Month", ""), a_d.get("Day", "")]
+ )
- # Return article as dictionary
- article = {
+ return {
"uid": uid,
- "title": title,
- "summary": abstract,
- "pub_date": pub_date,
+ "Title": ar.get("ArticleTitle", ""),
+ "Published": pub_date,
+ "Copyright Information": ar.get("Abstract", {}).get(
+ "CopyrightInformation", ""
+ ),
+ "Summary": summary,
}
- return article
diff --git a/libs/langchain/poetry.lock b/libs/langchain/poetry.lock
index 9cdde5d680..0415bbb4a8 100644
--- a/libs/langchain/poetry.lock
+++ b/libs/langchain/poetry.lock
@@ -1,10 +1,9 @@
-# This file is automatically @generated by Poetry and should not be changed by hand.
+# This file is automatically @generated by Poetry 1.5.1 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 = [
@@ -16,7 +15,6 @@ files = [
name = "accelerate"
version = "0.20.3"
description = "Accelerate"
-category = "main"
optional = true
python-versions = ">=3.7.0"
files = [
@@ -45,7 +43,6 @@ 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 = [
@@ -64,7 +61,6 @@ 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 = [
@@ -87,7 +83,6 @@ 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 = [
@@ -102,7 +97,6 @@ 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 = [
@@ -114,7 +108,6 @@ files = [
name = "aiohttp"
version = "3.8.4"
description = "Async http client/server framework (asyncio)"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -223,7 +216,6 @@ 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 = [
@@ -238,7 +230,6 @@ 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 = [
@@ -253,7 +244,6 @@ 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 = [
@@ -268,7 +258,6 @@ frozenlist = ">=1.1.0"
name = "aiostream"
version = "0.4.5"
description = "Generator-based operators for asynchronous iteration"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -280,7 +269,6 @@ 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 = [
@@ -308,7 +296,6 @@ 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 = [
@@ -331,7 +318,6 @@ 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 = [
@@ -342,7 +328,6 @@ files = [
name = "amazon-textract-caller"
version = "0.0.29"
description = "Amazon Textract Caller tools"
-category = "main"
optional = true
python-versions = ">=3.6"
files = [
@@ -362,7 +347,6 @@ 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 = [
@@ -378,7 +362,6 @@ 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 = [
@@ -398,7 +381,6 @@ 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 = [
@@ -420,7 +402,6 @@ 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 = [
@@ -432,7 +413,6 @@ files = [
name = "appnope"
version = "0.1.3"
description = "Disable App Nap on macOS >= 10.9"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -444,7 +424,6 @@ files = [
name = "argon2-cffi"
version = "21.3.0"
description = "The secure Argon2 password hashing algorithm."
-category = "dev"
optional = false
python-versions = ">=3.6"
files = [
@@ -464,7 +443,6 @@ 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 = [
@@ -502,7 +480,6 @@ tests = ["pytest"]
name = "arrow"
version = "1.2.3"
description = "Better dates & times for Python"
-category = "dev"
optional = false
python-versions = ">=3.6"
files = [
@@ -517,7 +494,6 @@ 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 = [
@@ -532,7 +508,6 @@ feedparser = "*"
name = "asgiref"
version = "3.7.2"
description = "ASGI specs, helper code, and adapters"
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -550,7 +525,6 @@ 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 = [
@@ -568,7 +542,6 @@ test = ["astroid", "pytest"]
name = "astunparse"
version = "1.6.3"
description = "An AST unparser for Python"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -584,7 +557,6 @@ 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 = [
@@ -596,7 +568,6 @@ files = [
name = "atlassian-python-api"
version = "3.39.0"
description = "Python Atlassian REST API Wrapper"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -617,7 +588,6 @@ kerberos = ["requests-kerberos"]
name = "attrs"
version = "23.1.0"
description = "Classes Without Boilerplate"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -636,7 +606,6 @@ 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 = [
@@ -647,7 +616,6 @@ 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 = [
@@ -662,7 +630,6 @@ 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 = [
@@ -690,7 +657,6 @@ 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 = [
@@ -708,7 +674,6 @@ 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 = [
@@ -720,7 +685,6 @@ 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 = [
@@ -736,7 +700,6 @@ files = [
name = "azure-common"
version = "1.1.28"
description = "Microsoft Azure Client Library for Python (Common)"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -748,7 +711,6 @@ files = [
name = "azure-core"
version = "1.27.1"
description = "Microsoft Azure Core Library for Python"
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -768,7 +730,6 @@ 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 = [
@@ -783,7 +744,6 @@ 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 = [
@@ -802,7 +762,6 @@ 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 = [
@@ -819,7 +778,6 @@ 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 = [
@@ -831,7 +789,6 @@ 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 = [
@@ -843,7 +800,6 @@ 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 = [
@@ -872,7 +828,6 @@ tzdata = ["tzdata"]
name = "beautifulsoup4"
version = "4.12.2"
description = "Screen-scraping library"
-category = "main"
optional = false
python-versions = ">=3.6.0"
files = [
@@ -891,7 +846,6 @@ lxml = ["lxml"]
name = "bentoml"
version = "1.0.22"
description = "BentoML: The Unified Model Serving Framework"
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -968,7 +922,6 @@ 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 = [
@@ -982,7 +935,6 @@ pyparsing = ">=2.0.3"
name = "black"
version = "23.3.0"
description = "The uncompromising code formatter."
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -1032,7 +984,6 @@ 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 = [
@@ -1051,7 +1002,6 @@ 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 = [
@@ -1063,7 +1013,6 @@ 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 = [
@@ -1104,7 +1053,6 @@ 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 = [
@@ -1119,7 +1067,6 @@ 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 = [
@@ -1139,7 +1086,6 @@ 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 = [
@@ -1159,7 +1105,6 @@ 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 = [
@@ -1251,7 +1196,6 @@ files = [
name = "brotlicffi"
version = "1.0.9.2"
description = "Python CFFI bindings to the Brotli library"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -1294,7 +1238,6 @@ 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 = [
@@ -1318,7 +1261,6 @@ 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 = [
@@ -1330,7 +1272,6 @@ files = [
name = "cassandra-driver"
version = "3.28.0"
description = "DataStax Driver for Apache Cassandra"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1382,7 +1323,6 @@ 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 = [
@@ -1398,7 +1338,6 @@ 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 = [
@@ -1410,7 +1349,6 @@ 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 = [
@@ -1436,7 +1374,6 @@ 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 = [
@@ -1448,7 +1385,6 @@ files = [
name = "cffi"
version = "1.15.1"
description = "Foreign Function Interface for Python calling C code."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1525,7 +1461,6 @@ pycparser = "*"
name = "chardet"
version = "5.1.0"
description = "Universal encoding detector for Python 3"
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -1537,7 +1472,6 @@ 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 = [
@@ -1622,7 +1556,6 @@ files = [
name = "chroma-hnswlib"
version = "0.7.1"
description = "Chromas fork of hnswlib"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -1637,7 +1570,6 @@ numpy = "*"
name = "chromadb"
version = "0.4.1"
description = "Chroma."
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -1668,7 +1600,6 @@ 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 = [
@@ -1688,7 +1619,6 @@ 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 = [
@@ -1703,7 +1633,6 @@ 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 = [
@@ -1721,7 +1650,6 @@ 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 = [
@@ -1736,7 +1664,6 @@ 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 = [
@@ -1756,7 +1683,6 @@ 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 = [
@@ -1774,7 +1700,6 @@ 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 = [
@@ -1864,7 +1789,6 @@ 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 = [
@@ -1882,7 +1806,6 @@ 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 = [
@@ -1894,7 +1817,6 @@ files = [
name = "codespell"
version = "2.2.5"
description = "Codespell"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -1912,7 +1834,6 @@ 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 = [
@@ -1932,7 +1853,6 @@ 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 = [
@@ -1944,7 +1864,6 @@ files = [
name = "colored"
version = "1.4.4"
description = "Simple library for color and formatting to terminal"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -1955,7 +1874,6 @@ 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 = [
@@ -1973,7 +1891,6 @@ 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 = [
@@ -1993,7 +1910,6 @@ 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 = [
@@ -2009,7 +1925,6 @@ 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 = [
@@ -2021,7 +1936,6 @@ 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 = [
@@ -2080,7 +1994,6 @@ 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 = [
@@ -2156,7 +2069,6 @@ 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 = [
@@ -2198,7 +2110,6 @@ 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 = [
@@ -2210,7 +2121,6 @@ files = [
name = "cycler"
version = "0.11.0"
description = "Composable style cycles"
-category = "main"
optional = true
python-versions = ">=3.6"
files = [
@@ -2222,7 +2132,6 @@ files = [
name = "cymem"
version = "2.0.7"
description = "Manage calls to calloc/free through Cython"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -2260,7 +2169,6 @@ 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 = [
@@ -2280,7 +2188,6 @@ 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 = [
@@ -2323,7 +2230,6 @@ 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 = [
@@ -2351,7 +2257,6 @@ files = [
name = "decorator"
version = "5.1.1"
description = "Decorators for Humans"
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -2363,7 +2268,6 @@ files = [
name = "deeplake"
version = "3.6.11"
description = "Activeloop Deep Lake"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2401,7 +2305,6 @@ visualizer = ["IPython", "flask"]
name = "deepmerge"
version = "1.1.0"
description = "a toolset to deeply merge python dictionaries."
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -2413,7 +2316,6 @@ 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 = [
@@ -2425,7 +2327,6 @@ 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 = [
@@ -2443,7 +2344,6 @@ 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 = [
@@ -2458,7 +2358,6 @@ packaging = "*"
name = "dill"
version = "0.3.6"
description = "serialize all of python"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -2473,7 +2372,6 @@ 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 = [
@@ -2485,7 +2383,6 @@ files = [
name = "dnspython"
version = "2.3.0"
description = "DNS toolkit"
-category = "main"
optional = false
python-versions = ">=3.7,<4.0"
files = [
@@ -2506,7 +2403,6 @@ 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 = [
@@ -2545,7 +2441,6 @@ 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 = [
@@ -2567,7 +2462,6 @@ 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 = [
@@ -2578,7 +2472,6 @@ files = [
name = "duckdb"
version = "0.8.1"
description = "DuckDB embedded database"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -2640,7 +2533,6 @@ files = [
name = "duckdb-engine"
version = "0.7.3"
description = "SQLAlchemy driver for duckdb"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -2657,7 +2549,6 @@ 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 = [
@@ -2675,7 +2566,6 @@ 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 = [
@@ -2694,7 +2584,6 @@ 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 = [
@@ -2713,7 +2602,6 @@ 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 = [
@@ -2733,7 +2621,6 @@ 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 = [
@@ -2745,7 +2632,6 @@ files = [
name = "esprima"
version = "4.0.1"
description = "ECMAScript parsing infrastructure for multipurpose analysis in Python"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -2756,7 +2642,6 @@ files = [
name = "exceptiongroup"
version = "1.1.1"
description = "Backport of PEP 654 (exception groups)"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -2771,7 +2656,6 @@ 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 = [
@@ -2786,7 +2670,6 @@ 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 = [
@@ -2821,7 +2704,6 @@ 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 = [
@@ -2843,7 +2725,6 @@ 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 = [
@@ -2890,7 +2771,6 @@ zstandard = ["zstandard"]
name = "fastjsonschema"
version = "2.17.1"
description = "Fastest Python implementation of JSON schema"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -2905,7 +2785,6 @@ 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 = [
@@ -2921,7 +2800,6 @@ 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 = [
@@ -2936,7 +2814,6 @@ sgmllib3k = "*"
name = "ffmpy"
version = "0.3.1"
description = "A simple Python wrapper for ffmpeg"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -2947,7 +2824,6 @@ files = [
name = "filelock"
version = "3.12.2"
description = "A platform independent file lock."
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -2963,7 +2839,6 @@ 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 = [
@@ -2975,7 +2850,6 @@ 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 = [
@@ -3020,7 +2894,6 @@ 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 = [
@@ -3032,7 +2905,6 @@ 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 = [
@@ -3047,7 +2919,6 @@ msgpack = ">1.0"
name = "fonttools"
version = "4.41.1"
description = "Tools to manipulate font files"
-category = "main"
optional = true
python-versions = ">=3.8"
files = [
@@ -3105,7 +2976,6 @@ 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 = [
@@ -3117,7 +2987,6 @@ files = [
name = "freezegun"
version = "1.2.2"
description = "Let your Python tests travel through time"
-category = "dev"
optional = false
python-versions = ">=3.6"
files = [
@@ -3132,7 +3001,6 @@ 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 = [
@@ -3216,7 +3084,6 @@ files = [
name = "fs"
version = "2.4.16"
description = "Python's filesystem abstraction layer"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -3236,7 +3103,6 @@ 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 = [
@@ -3276,7 +3142,6 @@ 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 = [
@@ -3287,7 +3152,6 @@ 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 = [
@@ -3299,7 +3163,6 @@ files = [
name = "geojson"
version = "2.5.0"
description = "Python bindings and utilities for GeoJSON"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -3311,7 +3174,6 @@ 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 = [
@@ -3327,7 +3189,6 @@ six = "*"
name = "geopandas"
version = "0.13.2"
description = "Geographic pandas extensions"
-category = "main"
optional = true
python-versions = ">=3.8"
files = [
@@ -3346,7 +3207,6 @@ shapely = ">=1.7.1"
name = "gitdb"
version = "4.0.10"
description = "Git Object Database"
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -3361,7 +3221,6 @@ 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 = [
@@ -3376,7 +3235,6 @@ 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 = [
@@ -3399,7 +3257,6 @@ 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 = [
@@ -3408,7 +3265,7 @@ files = [
]
[package.dependencies]
-google-api-core = ">=1.31.5,<2.0.0 || >2.3.0,<3.0.0dev"
+google-api-core = ">=1.31.5,<2.0.dev0 || >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"
@@ -3418,7 +3275,6 @@ 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 = [
@@ -3444,7 +3300,6 @@ 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 = [
@@ -3461,7 +3316,6 @@ six = "*"
name = "google-auth-oauthlib"
version = "0.4.6"
description = "Google Authentication Library"
-category = "main"
optional = true
python-versions = ">=3.6"
files = [
@@ -3480,7 +3334,6 @@ 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 = [
@@ -3496,7 +3349,6 @@ 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 = [
@@ -3510,7 +3362,6 @@ 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 = [
@@ -3528,7 +3379,6 @@ 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 = [
@@ -3545,7 +3395,6 @@ requests = "*"
name = "gql"
version = "3.4.1"
description = "GraphQL client for Python"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -3572,7 +3421,6 @@ 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 = [
@@ -3613,7 +3461,6 @@ 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 = [
@@ -3634,7 +3481,6 @@ 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 = [
@@ -3646,7 +3492,6 @@ 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 = [
@@ -3658,7 +3503,6 @@ 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 = [
@@ -3732,7 +3576,6 @@ test = ["objgraph", "psutil"]
name = "grpcio"
version = "1.47.5"
description = "HTTP/2-based RPC framework"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -3794,7 +3637,6 @@ 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 = [
@@ -3810,7 +3652,6 @@ 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 = [
@@ -3826,7 +3667,6 @@ 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 = [
@@ -3887,7 +3727,6 @@ 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 = [
@@ -3899,7 +3738,6 @@ 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 = [
@@ -3915,7 +3753,6 @@ 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 = [
@@ -3953,7 +3790,6 @@ numpy = ">=1.14.5"
name = "hnswlib"
version = "0.7.0"
description = "hnswlib"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -3967,7 +3803,6 @@ numpy = "*"
name = "hpack"
version = "4.0.0"
description = "Pure-Python HPACK header compression"
-category = "main"
optional = true
python-versions = ">=3.6.1"
files = [
@@ -3979,7 +3814,6 @@ files = [
name = "html2text"
version = "2020.1.16"
description = "Turn HTML into equivalent Markdown-structured text."
-category = "main"
optional = true
python-versions = ">=3.5"
files = [
@@ -3991,7 +3825,6 @@ files = [
name = "httpcore"
version = "0.17.2"
description = "A minimal low-level HTTP client."
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -4003,17 +3836,16 @@ files = [
anyio = ">=3.0,<5.0"
certifi = "*"
h11 = ">=0.13,<0.15"
-sniffio = ">=1.0.0,<2.0.0"
+sniffio = "==1.*"
[package.extras]
http2 = ["h2 (>=3,<5)"]
-socks = ["socksio (>=1.0.0,<2.0.0)"]
+socks = ["socksio (==1.*)"]
[[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 = [
@@ -4028,7 +3860,6 @@ 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 = [
@@ -4082,7 +3913,6 @@ 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 = [
@@ -4098,19 +3928,18 @@ h2 = {version = ">=3,<5", optional = true, markers = "extra == \"http2\""}
httpcore = ">=0.15.0,<0.18.0"
idna = "*"
sniffio = "*"
-socksio = {version = ">=1.0.0,<2.0.0", optional = true, markers = "extra == \"socks\""}
+socksio = {version = "==1.*", optional = true, markers = "extra == \"socks\""}
[package.extras]
brotli = ["brotli", "brotlicffi"]
-cli = ["click (>=8.0.0,<9.0.0)", "pygments (>=2.0.0,<3.0.0)", "rich (>=10,<14)"]
+cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"]
http2 = ["h2 (>=3,<5)"]
-socks = ["socksio (>=1.0.0,<2.0.0)"]
+socks = ["socksio (==1.*)"]
[[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 = [
@@ -4142,7 +3971,6 @@ 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 = [
@@ -4157,7 +3985,6 @@ 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 = [
@@ -4177,7 +4004,6 @@ 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 = [
@@ -4189,7 +4015,6 @@ files = [
name = "idna"
version = "3.4"
description = "Internationalized Domain Names in Applications (IDNA)"
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -4201,7 +4026,6 @@ files = [
name = "importlib-metadata"
version = "6.0.1"
description = "Read metadata from Python packages"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -4221,7 +4045,6 @@ 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 = [
@@ -4240,7 +4063,6 @@ 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 = [
@@ -4252,7 +4074,6 @@ files = [
name = "iniconfig"
version = "2.0.0"
description = "brain-dead simple config-ini parsing"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -4264,7 +4085,6 @@ files = [
name = "ipykernel"
version = "6.23.2"
description = "IPython Kernel for Jupyter"
-category = "dev"
optional = false
python-versions = ">=3.8"
files = [
@@ -4278,7 +4098,7 @@ comm = ">=0.1.1"
debugpy = ">=1.6.5"
ipython = ">=7.23.1"
jupyter-client = ">=6.1.12"
-jupyter-core = ">=4.12,<5.0.0 || >=5.1.0"
+jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0"
matplotlib-inline = ">=0.1"
nest-asyncio = "*"
packaging = "*"
@@ -4298,7 +4118,6 @@ 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 = [
@@ -4338,7 +4157,6 @@ 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 = [
@@ -4350,7 +4168,6 @@ files = [
name = "ipywidgets"
version = "8.0.6"
description = "Jupyter interactive widgets"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -4372,7 +4189,6 @@ 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 = [
@@ -4387,7 +4203,6 @@ six = "*"
name = "isoduration"
version = "20.11.0"
description = "Operations with ISO 8601 durations"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -4402,7 +4217,6 @@ 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 = [
@@ -4418,7 +4232,6 @@ 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 = [
@@ -4441,7 +4254,6 @@ 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 = [
@@ -4461,7 +4273,6 @@ 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 = [
@@ -4472,7 +4283,6 @@ 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 = [
@@ -4588,7 +4398,6 @@ 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 = [
@@ -4614,7 +4423,6 @@ 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 = [
@@ -4632,7 +4440,6 @@ i18n = ["Babel (>=2.7)"]
name = "jmespath"
version = "1.0.1"
description = "JSON Matching Expressions"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -4644,7 +4451,6 @@ files = [
name = "joblib"
version = "1.2.0"
description = "Lightweight pipelining with Python functions"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -4656,7 +4462,6 @@ 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 = [
@@ -4721,7 +4526,6 @@ files = [
name = "jsonable"
version = "0.3.1"
description = "An abstract class that supports jsonserialization/deserialization."
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -4733,7 +4537,6 @@ 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 = [
@@ -4748,7 +4551,6 @@ 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 = [
@@ -4759,7 +4561,6 @@ 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 = [
@@ -4789,7 +4590,6 @@ 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 = [
@@ -4810,7 +4610,6 @@ qtconsole = "*"
name = "jupyter-client"
version = "7.4.9"
description = "Jupyter protocol implementation and client libraries"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -4835,7 +4634,6 @@ 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 = [
@@ -4847,7 +4645,7 @@ files = [
ipykernel = ">=6.14"
ipython = "*"
jupyter-client = ">=7.0.0"
-jupyter-core = ">=4.12,<5.0.0 || >=5.1.0"
+jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0"
prompt-toolkit = ">=3.0.30"
pygments = "*"
pyzmq = ">=17"
@@ -4860,7 +4658,6 @@ 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 = [
@@ -4881,7 +4678,6 @@ 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 = [
@@ -4906,7 +4702,6 @@ 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 = [
@@ -4919,7 +4714,7 @@ anyio = ">=3.1.0"
argon2-cffi = "*"
jinja2 = "*"
jupyter-client = ">=7.4.4"
-jupyter-core = ">=4.12,<5.0.0 || >=5.1.0"
+jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0"
jupyter-events = ">=0.6.0"
jupyter-server-terminals = "*"
nbconvert = ">=6.4.4"
@@ -4943,7 +4738,6 @@ 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 = [
@@ -4963,7 +4757,6 @@ 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 = [
@@ -4975,7 +4768,6 @@ files = [
name = "jupyterlab-widgets"
version = "3.0.7"
description = "Jupyter interactive widgets for JupyterLab"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -4987,7 +4779,6 @@ files = [
name = "keras"
version = "2.11.0"
description = "Deep learning for humans."
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -4998,7 +4789,6 @@ 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 = [
@@ -5076,7 +4866,6 @@ files = [
name = "lancedb"
version = "0.1.8"
description = "lancedb"
-category = "main"
optional = true
python-versions = ">=3.8"
files = [
@@ -5099,7 +4888,6 @@ 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 = [
@@ -5114,7 +4902,6 @@ 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 = [
@@ -5134,7 +4921,6 @@ 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 = [
@@ -5150,7 +4936,6 @@ requests = ">=2,<3"
name = "lark"
version = "1.1.5"
description = "a modern parsing library"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -5167,7 +4952,6 @@ regex = ["regex"]
name = "lazy-loader"
version = "0.3"
description = "lazy_loader"
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -5183,7 +4967,6 @@ 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 = [
@@ -5201,7 +4984,6 @@ files = [
name = "libdeeplake"
version = "0.0.60"
description = "C++ backend for Deep Lake"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -5234,7 +5016,6 @@ 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 = [
@@ -5259,14 +5040,13 @@ 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.0.0,<2.0.0)", "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.*)", "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 = [
@@ -5287,7 +5067,6 @@ 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 = [
@@ -5321,7 +5100,6 @@ files = [
name = "loguru"
version = "0.7.0"
description = "Python logging made (stupidly) simple"
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -5340,7 +5118,6 @@ 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 = [
@@ -5433,7 +5210,6 @@ 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 = [
@@ -5483,7 +5259,6 @@ 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 = [
@@ -5507,7 +5282,6 @@ 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 = [
@@ -5522,7 +5296,6 @@ 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 = [
@@ -5548,7 +5321,6 @@ 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 = [
@@ -5608,7 +5380,6 @@ files = [
name = "marqo"
version = "0.11.0"
description = "Tensor search for humans"
-category = "main"
optional = true
python-versions = ">=3"
files = [
@@ -5625,7 +5396,6 @@ 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 = [
@@ -5646,7 +5416,6 @@ tests = ["pytest", "pytz", "simplejson"]
name = "marshmallow-enum"
version = "1.5.1"
description = "Enum field for Marshmallow"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -5661,7 +5430,6 @@ 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 = [
@@ -5687,7 +5455,6 @@ 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 = [
@@ -5750,7 +5517,6 @@ 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 = [
@@ -5765,7 +5531,6 @@ 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 = [
@@ -5785,7 +5550,6 @@ 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 = [
@@ -5797,7 +5561,6 @@ files = [
name = "mistune"
version = "2.0.5"
description = "A sane Markdown parser with useful plugins and renderers"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -5809,7 +5572,6 @@ 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 = [
@@ -5854,7 +5616,6 @@ files = [
name = "momento"
version = "1.6.0"
description = "SDK for Momento"
-category = "main"
optional = false
python-versions = ">=3.7,<4.0"
files = [
@@ -5871,7 +5632,6 @@ 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 = [
@@ -5887,7 +5647,6 @@ 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 = [
@@ -5899,7 +5658,6 @@ 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 = [
@@ -5911,7 +5669,6 @@ files = [
name = "mpmath"
version = "1.3.0"
description = "Python library for arbitrary-precision floating-point arithmetic"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -5929,7 +5686,6 @@ 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 = [
@@ -5949,7 +5705,6 @@ 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 = [
@@ -5968,7 +5723,6 @@ portalocker = [
name = "msgpack"
version = "1.0.5"
description = "MessagePack serializer"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -6041,7 +5795,6 @@ files = [
name = "msrest"
version = "0.7.1"
description = "AutoRest swagger generator Python client runtime."
-category = "main"
optional = true
python-versions = ">=3.6"
files = [
@@ -6063,7 +5816,6 @@ async = ["aiodns", "aiohttp (>=3.0)"]
name = "multidict"
version = "6.0.4"
description = "multidict implementation"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -6147,7 +5899,6 @@ files = [
name = "multiprocess"
version = "0.70.14"
description = "better multiprocessing and multithreading in python"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -6174,7 +5925,6 @@ dill = ">=0.3.6"
name = "murmurhash"
version = "1.0.9"
description = "Cython bindings for MurmurHash"
-category = "main"
optional = true
python-versions = ">=3.6"
files = [
@@ -6212,7 +5962,6 @@ files = [
name = "mwcli"
version = "0.0.3"
description = "Utilities for processing MediaWiki on the command line."
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -6229,7 +5978,6 @@ para = "*"
name = "mwparserfromhell"
version = "0.6.4"
description = "MWParserFromHell is a parser for MediaWiki wikicode."
-category = "main"
optional = true
python-versions = ">= 3.6"
files = [
@@ -6267,7 +6015,6 @@ files = [
name = "mwtypes"
version = "0.3.2"
description = "A set of types for processing MediaWiki data."
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -6282,7 +6029,6 @@ 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 = [
@@ -6300,7 +6046,6 @@ para = ">=0.0.1"
name = "mypy"
version = "0.991"
description = "Optional static typing for Python"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -6351,7 +6096,6 @@ 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 = [
@@ -6363,7 +6107,6 @@ 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 = [
@@ -6379,7 +6122,6 @@ 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 = [
@@ -6415,7 +6157,6 @@ 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 = [
@@ -6425,7 +6166,7 @@ files = [
[package.dependencies]
jupyter-client = ">=6.1.12"
-jupyter-core = ">=4.12,<5.0.0 || >=5.1.0"
+jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0"
nbformat = ">=5.1"
traitlets = ">=5.3"
@@ -6438,7 +6179,6 @@ 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 = [
@@ -6477,7 +6217,6 @@ 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 = [
@@ -6499,7 +6238,6 @@ 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 = [
@@ -6517,7 +6255,6 @@ 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 = [
@@ -6535,7 +6272,6 @@ 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 = [
@@ -6547,7 +6283,6 @@ 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 = [
@@ -6566,7 +6301,6 @@ 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 = [
@@ -6593,7 +6327,6 @@ 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 = [
@@ -6608,7 +6341,6 @@ requests = "*"
name = "nltk"
version = "3.8.1"
description = "Natural Language Toolkit"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -6634,7 +6366,6 @@ twitter = ["twython"]
name = "nomic"
version = "1.1.14"
description = "The offical Nomic python client."
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -6662,7 +6393,6 @@ 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 = [
@@ -6697,7 +6427,6 @@ 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 = [
@@ -6715,7 +6444,6 @@ 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 = [
@@ -6747,14 +6475,13 @@ files = [
[package.dependencies]
importlib-metadata = {version = "*", markers = "python_version < \"3.9\""}
-llvmlite = ">=0.40.0dev0,<0.41"
+llvmlite = "==0.40.*"
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 = [
@@ -6787,7 +6514,6 @@ 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 = [
@@ -6830,7 +6556,6 @@ 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 = [
@@ -6868,7 +6593,6 @@ files = [
name = "nvidia-cublas-cu11"
version = "11.10.3.66"
description = "CUBLAS native runtime libraries"
-category = "main"
optional = false
python-versions = ">=3"
files = [
@@ -6884,7 +6608,6 @@ wheel = "*"
name = "nvidia-cuda-nvrtc-cu11"
version = "11.7.99"
description = "NVRTC native runtime libraries"
-category = "main"
optional = false
python-versions = ">=3"
files = [
@@ -6901,7 +6624,6 @@ wheel = "*"
name = "nvidia-cuda-runtime-cu11"
version = "11.7.99"
description = "CUDA Runtime native Libraries"
-category = "main"
optional = false
python-versions = ">=3"
files = [
@@ -6917,7 +6639,6 @@ wheel = "*"
name = "nvidia-cudnn-cu11"
version = "8.5.0.96"
description = "cuDNN runtime libraries"
-category = "main"
optional = false
python-versions = ">=3"
files = [
@@ -6933,7 +6654,6 @@ 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 = [
@@ -6954,7 +6674,6 @@ 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 = [
@@ -6971,7 +6690,6 @@ 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 = [
@@ -6995,7 +6713,6 @@ 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 = [
@@ -7037,7 +6754,6 @@ 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 = [
@@ -7052,7 +6768,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.0.0,<7.0.0)", "pytest-asyncio", "pytest-mock"]
+dev = ["black (>=21.6b0,<22.0)", "pytest (==6.*)", "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"]
@@ -7060,7 +6776,6 @@ 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 = [
@@ -7075,7 +6790,6 @@ 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 = [
@@ -7110,7 +6824,6 @@ 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 = [
@@ -7125,7 +6838,6 @@ 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 = [
@@ -7150,7 +6862,6 @@ kerberos = ["requests-kerberos"]
name = "opentelemetry-api"
version = "1.17.0"
description = "OpenTelemetry Python API"
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -7167,7 +6878,6 @@ setuptools = ">=16.0"
name = "opentelemetry-exporter-otlp"
version = "1.17.0"
description = "OpenTelemetry Collector Exporters"
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -7183,7 +6893,6 @@ 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 = [
@@ -7206,7 +6915,6 @@ 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 = [
@@ -7229,7 +6937,6 @@ 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 = [
@@ -7246,7 +6953,6 @@ 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 = [
@@ -7263,7 +6969,6 @@ 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 = [
@@ -7286,7 +6991,6 @@ 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 = [
@@ -7309,7 +7013,6 @@ 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 = [
@@ -7332,7 +7035,6 @@ 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 = [
@@ -7355,7 +7057,6 @@ 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 = [
@@ -7370,7 +7071,6 @@ 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 = [
@@ -7388,7 +7088,6 @@ 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 = [
@@ -7400,7 +7099,6 @@ files = [
name = "opentelemetry-util-http"
version = "0.38b0"
description = "Web util for OpenTelemetry"
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -7412,7 +7110,6 @@ files = [
name = "opt-einsum"
version = "3.3.0"
description = "Optimizing numpys einsum function"
-category = "main"
optional = true
python-versions = ">=3.5"
files = [
@@ -7431,7 +7128,6 @@ 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 = [
@@ -7472,7 +7168,6 @@ 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 = [
@@ -7528,7 +7223,6 @@ 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 = [
@@ -7540,7 +7234,6 @@ files = [
name = "packaging"
version = "23.1"
description = "Core utilities for Python packages"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -7552,7 +7245,6 @@ 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 = [
@@ -7620,7 +7312,6 @@ 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 = [
@@ -7632,7 +7323,6 @@ 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 = [
@@ -7644,7 +7334,6 @@ files = [
name = "parso"
version = "0.8.3"
description = "A Python Parser"
-category = "dev"
optional = false
python-versions = ">=3.6"
files = [
@@ -7660,7 +7349,6 @@ 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 = [
@@ -7678,7 +7366,6 @@ 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 = [
@@ -7690,7 +7377,6 @@ 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 = [
@@ -7713,7 +7399,6 @@ 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 = [
@@ -7734,7 +7419,6 @@ image = ["Pillow"]
name = "pexpect"
version = "4.8.0"
description = "Pexpect allows easy control of interactive console applications."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -7749,7 +7433,6 @@ ptyprocess = ">=0.5"
name = "pgvector"
version = "0.1.8"
description = "pgvector support for Python"
-category = "main"
optional = true
python-versions = ">=3.6"
files = [
@@ -7763,7 +7446,6 @@ numpy = "*"
name = "pickleshare"
version = "0.7.5"
description = "Tiny 'shelve'-like database with concurrency support"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -7775,7 +7457,6 @@ files = [
name = "pillow"
version = "9.5.0"
description = "Python Imaging Library (Fork)"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -7855,7 +7536,6 @@ 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 = [
@@ -7881,7 +7561,6 @@ 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 = [
@@ -7901,7 +7580,6 @@ 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 = [
@@ -7913,7 +7591,6 @@ 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 = [
@@ -7933,7 +7610,6 @@ 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 = [
@@ -7956,7 +7632,6 @@ 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 = [
@@ -7968,7 +7643,6 @@ 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 = [
@@ -7984,7 +7658,6 @@ 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 = [
@@ -8006,7 +7679,6 @@ 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 = [
@@ -8022,7 +7694,6 @@ 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 = [
@@ -8044,7 +7715,6 @@ 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 = [
@@ -8064,7 +7734,6 @@ 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 = [
@@ -8088,7 +7757,6 @@ 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 = [
@@ -8100,7 +7768,6 @@ files = [
name = "ppft"
version = "1.7.6.6"
description = "distributed and parallel python"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -8115,7 +7782,6 @@ 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 = [
@@ -8157,7 +7823,6 @@ 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 = [
@@ -8172,7 +7837,6 @@ 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 = [
@@ -8187,7 +7851,6 @@ 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 = [
@@ -8202,7 +7865,6 @@ requests = "*"
name = "protobuf"
version = "3.19.6"
description = "Protocol Buffers"
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -8237,7 +7899,6 @@ 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 = [
@@ -8264,7 +7925,6 @@ 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 = [
@@ -8279,7 +7939,6 @@ requests = "*"
name = "psycopg2-binary"
version = "2.9.6"
description = "psycopg2 - Python-PostgreSQL Database Adapter"
-category = "main"
optional = true
python-versions = ">=3.6"
files = [
@@ -8351,7 +8010,6 @@ files = [
name = "ptyprocess"
version = "0.7.0"
description = "Run a subprocess in a pseudo terminal"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -8363,7 +8021,6 @@ files = [
name = "pulsar-client"
version = "3.2.0"
description = "Apache Pulsar Python client library"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -8411,7 +8068,6 @@ 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 = [
@@ -8426,7 +8082,6 @@ 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 = [
@@ -8438,7 +8093,6 @@ files = [
name = "py-trello"
version = "0.19.0"
description = "Python wrapper around the Trello API"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -8455,7 +8109,6 @@ 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 = [
@@ -8467,7 +8120,6 @@ 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 = [
@@ -8478,7 +8130,6 @@ files = [
name = "pyarrow"
version = "12.0.1"
description = "Python library for Apache Arrow"
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -8516,7 +8167,6 @@ 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 = [
@@ -8528,7 +8178,6 @@ 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 = [
@@ -8543,7 +8192,6 @@ 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 = [
@@ -8611,7 +8259,6 @@ 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 = [
@@ -8623,7 +8270,6 @@ 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 = [
@@ -8676,7 +8322,6 @@ 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 = [
@@ -8696,7 +8341,6 @@ 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 = [
@@ -8708,7 +8352,6 @@ files = [
name = "pyee"
version = "9.0.4"
description = "A port of node.js's EventEmitter to python."
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -8723,7 +8366,6 @@ typing-extensions = "*"
name = "pygithub"
version = "1.59.0"
description = "Use the full Github API v3"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -8741,7 +8383,6 @@ 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 = [
@@ -8756,7 +8397,6 @@ 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 = [
@@ -8777,7 +8417,6 @@ 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 = [
@@ -8799,7 +8438,6 @@ 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 = [
@@ -8894,7 +8532,6 @@ 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 = [
@@ -8906,7 +8543,6 @@ 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 = [
@@ -8946,7 +8582,6 @@ 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 = [
@@ -8973,7 +8608,6 @@ 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 = [
@@ -8985,7 +8619,6 @@ files = [
name = "pyowm"
version = "3.3.0"
description = "A Python wrapper around OpenWeatherMap web APIs"
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -9005,7 +8638,6 @@ 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 = [
@@ -9020,7 +8652,6 @@ 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 = [
@@ -9042,7 +8673,6 @@ image = ["Pillow"]
name = "pypdfium2"
version = "4.15.0"
description = "Python bindings to PDFium"
-category = "main"
optional = true
python-versions = ">=3.6"
files = [
@@ -9064,7 +8694,6 @@ files = [
name = "pyphen"
version = "0.14.0"
description = "Pure Python module to hyphenate text"
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -9080,7 +8709,6 @@ 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 = [
@@ -9091,7 +8719,6 @@ 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 = [
@@ -9139,7 +8766,6 @@ 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 = [
@@ -9154,7 +8780,6 @@ 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 = [
@@ -9166,7 +8791,6 @@ files = [
name = "pyrsistent"
version = "0.19.3"
description = "Persistent/Functional/Immutable data structures"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -9203,7 +8827,6 @@ 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 = [
@@ -9216,7 +8839,6 @@ files = [
name = "pyspark"
version = "3.4.0"
description = "Apache Spark Python API"
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -9237,7 +8859,6 @@ 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 = [
@@ -9253,7 +8874,6 @@ 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 = [
@@ -9276,7 +8896,6 @@ 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 = [
@@ -9295,7 +8914,6 @@ 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 = [
@@ -9314,7 +8932,6 @@ 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 = [
@@ -9330,7 +8947,6 @@ 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 = [
@@ -9348,7 +8964,6 @@ 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 = [
@@ -9363,7 +8978,6 @@ 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 = [
@@ -9379,7 +8993,6 @@ 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 = [
@@ -9394,7 +9007,6 @@ 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 = [
@@ -9418,7 +9030,6 @@ 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 = [
@@ -9433,7 +9044,6 @@ 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 = [
@@ -9448,7 +9058,6 @@ cli = ["click (>=5.0)"]
name = "python-jose"
version = "3.3.0"
description = "JOSE implementation in Python"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -9470,7 +9079,6 @@ 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 = [
@@ -9482,7 +9090,6 @@ 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 = [
@@ -9494,7 +9101,6 @@ files = [
name = "python-magic-bin"
version = "0.4.14"
description = "File type identification using libmagic binary package"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -9507,7 +9113,6 @@ files = [
name = "python-multipart"
version = "0.0.6"
description = "A streaming multipart parser for Python"
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -9522,7 +9127,6 @@ 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 = [
@@ -9534,7 +9138,6 @@ 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 = [
@@ -9550,7 +9153,6 @@ 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 = [
@@ -9575,7 +9177,6 @@ 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 = [
@@ -9599,7 +9200,6 @@ files = [
name = "pywinpty"
version = "2.0.10"
description = "Pseudo terminal support for Windows from Python."
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -9615,7 +9215,6 @@ files = [
name = "pyyaml"
version = "6.0"
description = "YAML parser and emitter for Python"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -9665,7 +9264,6 @@ files = [
name = "pyzmq"
version = "25.1.0"
description = "Python bindings for 0MQ"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -9755,7 +9353,6 @@ 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 = [
@@ -9777,7 +9374,6 @@ 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 = [
@@ -9804,7 +9400,6 @@ 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 = [
@@ -9822,7 +9417,6 @@ 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 = [
@@ -9840,7 +9434,6 @@ dev = ["pytest"]
name = "rapidfuzz"
version = "3.1.1"
description = "rapid fuzzy string matching"
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -9945,7 +9538,6 @@ full = ["numpy"]
name = "ratelimiter"
version = "1.2.0.post0"
description = "Simple python rate limiting object"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -9960,7 +9552,6 @@ 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 = [
@@ -9982,7 +9573,6 @@ 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 = [
@@ -10001,7 +9591,6 @@ 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 = [
@@ -10099,7 +9688,6 @@ files = [
name = "requests"
version = "2.28.2"
description = "Python HTTP for Humans."
-category = "main"
optional = false
python-versions = ">=3.7, <4"
files = [
@@ -10122,7 +9710,6 @@ 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 = [
@@ -10138,7 +9725,6 @@ 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 = [
@@ -10157,7 +9743,6 @@ 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 = [
@@ -10172,7 +9757,6 @@ 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 = [
@@ -10193,7 +9777,6 @@ 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 = [
@@ -10209,7 +9792,6 @@ 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 = [
@@ -10224,7 +9806,6 @@ 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 = [
@@ -10236,7 +9817,6 @@ 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 = [
@@ -10256,7 +9836,6 @@ 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 = [
@@ -10271,7 +9850,6 @@ 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 = [
@@ -10298,7 +9876,6 @@ files = [
name = "s3transfer"
version = "0.6.1"
description = "An Amazon S3 Transfer Manager"
-category = "main"
optional = false
python-versions = ">= 3.7"
files = [
@@ -10316,7 +9893,6 @@ 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 = [
@@ -10377,7 +9953,6 @@ torch = ["torch (>=1.10)"]
name = "schema"
version = "0.7.5"
description = "Simple data validation library"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -10392,7 +9967,6 @@ 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 = [
@@ -10435,7 +10009,6 @@ 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 = [
@@ -10467,7 +10040,6 @@ 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 = [
@@ -10506,7 +10078,6 @@ 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 = [
@@ -10522,7 +10093,6 @@ 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 = [
@@ -10534,7 +10104,6 @@ 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 = [
@@ -10551,7 +10120,6 @@ win32 = ["pywin32"]
name = "sentence-transformers"
version = "2.2.2"
description = "Multilingual text embeddings"
-category = "main"
optional = false
python-versions = ">=3.6.0"
files = [
@@ -10574,7 +10142,6 @@ transformers = ">=4.6.0,<5.0.0"
name = "sentencepiece"
version = "0.1.99"
description = "SentencePiece python wrapper"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -10629,7 +10196,6 @@ 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 = [
@@ -10646,7 +10212,6 @@ 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 = [
@@ -10657,7 +10222,6 @@ files = [
name = "shapely"
version = "2.0.1"
description = "Manipulation and analysis of geometric objects"
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -10705,14 +10269,13 @@ files = [
numpy = ">=1.14"
[package.extras]
-docs = ["matplotlib", "numpydoc (>=1.1.0,<1.2.0)", "sphinx", "sphinx-book-theme", "sphinx-remove-toctrees"]
+docs = ["matplotlib", "numpydoc (==1.1.*)", "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 = [
@@ -10727,7 +10290,6 @@ 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 = [
@@ -10760,7 +10322,6 @@ 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 = [
@@ -10772,7 +10333,6 @@ 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 = [
@@ -10794,7 +10354,6 @@ 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 = [
@@ -10806,7 +10365,6 @@ 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 = [
@@ -10818,7 +10376,6 @@ 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 = [
@@ -10830,7 +10387,6 @@ files = [
name = "soundfile"
version = "0.12.1"
description = "An audio library based on libsndfile, CFFI and NumPy"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -10854,7 +10410,6 @@ 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 = [
@@ -10866,7 +10421,6 @@ 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 = [
@@ -10911,7 +10465,6 @@ 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 = [
@@ -10998,7 +10551,6 @@ 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 = [
@@ -11010,7 +10562,6 @@ files = [
name = "spacy-loggers"
version = "1.0.4"
description = "Logging utilities for SpaCy"
-category = "main"
optional = true
python-versions = ">=3.6"
files = [
@@ -11022,7 +10573,6 @@ files = [
name = "sqlalchemy"
version = "2.0.16"
description = "Database Abstraction Library"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -11070,7 +10620,7 @@ files = [
]
[package.dependencies]
-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\""}
+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\""}
typing-extensions = ">=4.2.0"
[package.extras]
@@ -11101,7 +10651,6 @@ 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 = [
@@ -11112,7 +10661,6 @@ 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 = [
@@ -11124,7 +10672,6 @@ files = [
name = "srsly"
version = "2.4.6"
description = "Modern high-performance serialization utilities for Python"
-category = "main"
optional = true
python-versions = ">=3.6"
files = [
@@ -11165,7 +10712,6 @@ 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 = [
@@ -11180,7 +10726,6 @@ 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 = [
@@ -11200,7 +10745,6 @@ 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 = [
@@ -11219,7 +10763,6 @@ 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 = [
@@ -11242,7 +10785,6 @@ 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 = [
@@ -11283,7 +10825,6 @@ snowflake = ["snowflake-snowpark-python"]
name = "stringcase"
version = "1.2.0"
description = "String case converter."
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -11294,7 +10835,6 @@ files = [
name = "sympy"
version = "1.12"
description = "Computer algebra system (CAS) in Python"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -11309,7 +10849,6 @@ 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 = [
@@ -11325,7 +10864,6 @@ 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 = [
@@ -11343,7 +10881,6 @@ widechars = ["wcwidth"]
name = "tair"
version = "1.3.4"
description = "Python client for Tair"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -11358,7 +10895,6 @@ redis = ">=4.4.4"
name = "tblib"
version = "2.0.0"
description = "Traceback serialization library."
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -11370,7 +10906,6 @@ 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 = [
@@ -11389,7 +10924,6 @@ cryptg = ["cryptg"]
name = "tenacity"
version = "8.2.2"
description = "Retry code until it succeeds"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -11404,7 +10938,6 @@ 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 = [
@@ -11430,7 +10963,6 @@ 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 = [
@@ -11443,7 +10975,6 @@ files = [
name = "tensorboard-plugin-wit"
version = "1.8.1"
description = "What-If Tool TensorBoard plugin."
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -11454,7 +10985,6 @@ 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 = [
@@ -11499,7 +11029,6 @@ wrapt = ">=1.11.0"
name = "tensorflow-estimator"
version = "2.11.0"
description = "TensorFlow Estimator."
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -11510,7 +11039,6 @@ 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 = [
@@ -11529,7 +11057,6 @@ 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 = [
@@ -11560,7 +11087,6 @@ 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 = [
@@ -11598,7 +11124,6 @@ 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 = [
@@ -11625,7 +11150,6 @@ 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 = [
@@ -11640,7 +11164,6 @@ 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 = [
@@ -11661,7 +11184,6 @@ 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 = [
@@ -11676,7 +11198,6 @@ 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 = [
@@ -11752,7 +11273,6 @@ torch = ["torch (>=1.6.0)"]
name = "threadpoolctl"
version = "3.1.0"
description = "threadpoolctl"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -11764,7 +11284,6 @@ files = [
name = "tigrisdb"
version = "1.0.0b6"
description = "Python SDK for Tigris "
-category = "main"
optional = true
python-versions = ">=3.8,<4.0"
files = [
@@ -11780,7 +11299,6 @@ 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 = [
@@ -11826,7 +11344,6 @@ blobfile = ["blobfile (>=2)"]
name = "tinycss2"
version = "1.2.1"
description = "A tiny CSS parser"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -11845,7 +11362,6 @@ test = ["flake8", "isort", "pytest"]
name = "tinysegmenter"
version = "0.3"
description = "Very compact Japanese tokenizer"
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -11856,7 +11372,6 @@ 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 = [
@@ -11874,7 +11389,6 @@ requests-file = ">=1.4"
name = "tokenizers"
version = "0.13.3"
description = "Fast and Customizable Tokenizers"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -11929,7 +11443,6 @@ 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 = [
@@ -11941,7 +11454,6 @@ files = [
name = "tomli"
version = "2.0.1"
description = "A lil' TOML parser"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -11953,7 +11465,6 @@ files = [
name = "toolz"
version = "0.12.0"
description = "List processing tools and functional utilities"
-category = "main"
optional = true
python-versions = ">=3.5"
files = [
@@ -11965,7 +11476,6 @@ 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 = [
@@ -12006,7 +11516,6 @@ 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 = [
@@ -12033,7 +11542,7 @@ files = [
[package.dependencies]
numpy = "*"
-pillow = ">=5.3.0,<8.3.0 || >=8.4.0"
+pillow = ">=5.3.0,<8.3.dev0 || >=8.4.dev0"
requests = "*"
torch = "1.13.1"
typing-extensions = "*"
@@ -12045,7 +11554,6 @@ 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 = [
@@ -12066,7 +11574,6 @@ files = [
name = "tqdm"
version = "4.65.0"
description = "Fast, Extensible Progress Meter"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -12087,7 +11594,6 @@ telegram = ["requests"]
name = "traitlets"
version = "5.9.0"
description = "Traitlets Python configuration system"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -12103,7 +11609,6 @@ 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 = [
@@ -12112,7 +11617,7 @@ files = [
]
[package.dependencies]
-accelerate = {version = ">=0.20.2", optional = true, markers = "extra == \"accelerate\""}
+accelerate = {version = ">=0.20.2", optional = true, markers = "extra == \"accelerate\" or extra == \"torch\""}
filelock = "*"
huggingface-hub = ">=0.14.1,<1.0"
numpy = ">=1.17"
@@ -12177,7 +11682,6 @@ 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 = [
@@ -12198,7 +11702,6 @@ 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 = [
@@ -12210,7 +11713,6 @@ files = [
name = "types-protobuf"
version = "4.23.0.1"
description = "Typing stubs for protobuf"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -12222,7 +11724,6 @@ files = [
name = "types-pyopenssl"
version = "23.2.0.0"
description = "Typing stubs for pyOpenSSL"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -12237,7 +11738,6 @@ cryptography = ">=35.0.0"
name = "types-pytz"
version = "2023.3.0.0"
description = "Typing stubs for pytz"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -12249,7 +11749,6 @@ files = [
name = "types-pyyaml"
version = "6.0.12.10"
description = "Typing stubs for PyYAML"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -12261,7 +11760,6 @@ files = [
name = "types-redis"
version = "4.5.5.2"
description = "Typing stubs for redis"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -12277,7 +11775,6 @@ types-pyOpenSSL = "*"
name = "types-requests"
version = "2.31.0.1"
description = "Typing stubs for requests"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -12292,7 +11789,6 @@ types-urllib3 = "*"
name = "types-toml"
version = "0.10.8.6"
description = "Typing stubs for toml"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -12304,7 +11800,6 @@ files = [
name = "types-urllib3"
version = "1.26.25.13"
description = "Typing stubs for urllib3"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -12316,7 +11811,6 @@ 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 = [
@@ -12328,7 +11822,6 @@ files = [
name = "typing-inspect"
version = "0.9.0"
description = "Runtime inspection utilities for typing module."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -12344,7 +11837,6 @@ 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 = [
@@ -12356,7 +11848,6 @@ files = [
name = "tzlocal"
version = "4.3"
description = "tzinfo object for the local timezone"
-category = "main"
optional = true
python-versions = ">=3.7"
files = [
@@ -12376,7 +11867,6 @@ 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 = [
@@ -12391,7 +11881,6 @@ 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 = [
@@ -12406,7 +11895,6 @@ 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 = [
@@ -12418,7 +11906,6 @@ 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 = [
@@ -12435,7 +11922,6 @@ 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 = [
@@ -12450,7 +11936,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\""}
@@ -12461,7 +11947,6 @@ 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 = [
@@ -12506,7 +11991,6 @@ 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 = [
@@ -12523,7 +12007,6 @@ 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 = [
@@ -12542,7 +12025,6 @@ yarl = "*"
name = "wasabi"
version = "1.1.2"
description = "A lightweight console printing and formatting toolkit"
-category = "main"
optional = true
python-versions = ">=3.6"
files = [
@@ -12557,7 +12039,6 @@ 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 = [
@@ -12597,7 +12078,6 @@ 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 = [
@@ -12632,7 +12112,6 @@ 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 = [
@@ -12644,7 +12123,6 @@ files = [
name = "weaviate-client"
version = "3.20.1"
description = "A python native Weaviate client"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -12665,7 +12143,6 @@ 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 = [
@@ -12681,7 +12158,6 @@ 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 = [
@@ -12693,7 +12169,6 @@ 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 = [
@@ -12710,7 +12185,6 @@ 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 = [
@@ -12790,7 +12264,6 @@ files = [
name = "werkzeug"
version = "2.3.6"
description = "The comprehensive WSGI web application library."
-category = "main"
optional = true
python-versions = ">=3.8"
files = [
@@ -12808,7 +12281,6 @@ watchdog = ["watchdog (>=2.3)"]
name = "wget"
version = "3.2"
description = "pure python download utility"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -12819,7 +12291,6 @@ files = [
name = "wheel"
version = "0.40.0"
description = "A built-package format for Python"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -12834,7 +12305,6 @@ 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 = [
@@ -12850,7 +12320,6 @@ 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 = [
@@ -12884,7 +12353,6 @@ 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 = [
@@ -12925,7 +12393,6 @@ files = [
name = "widgetsnbextension"
version = "4.0.7"
description = "Jupyter interactive widgets for Jupyter Notebook"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -12937,7 +12404,6 @@ files = [
name = "wikipedia"
version = "1.4.0"
description = "Wikipedia API for Python"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -12952,7 +12418,6 @@ 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 = [
@@ -12967,7 +12432,6 @@ 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 = [
@@ -12988,7 +12452,6 @@ 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 = [
@@ -13003,7 +12466,6 @@ 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 = [
@@ -13088,7 +12550,6 @@ files = [
name = "xata"
version = "1.0.0a7"
description = "Python client for Xata.io"
-category = "main"
optional = true
python-versions = ">=3.8,<4.0"
files = [
@@ -13106,7 +12567,6 @@ 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 = [
@@ -13136,7 +12596,6 @@ 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 = [
@@ -13148,7 +12607,6 @@ 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 = [
@@ -13204,7 +12662,6 @@ 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 = [
@@ -13266,7 +12723,6 @@ vineyard = ["vineyard (>=0.3)"]
name = "xoscar"
version = "0.0.8"
description = "Python actor framework for heterogeneous computing."
-category = "main"
optional = true
python-versions = "*"
files = [
@@ -13318,7 +12774,6 @@ 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 = [
@@ -13426,7 +12881,6 @@ files = [
name = "yarl"
version = "1.9.2"
description = "Yet another URL library"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -13514,7 +12968,6 @@ 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 = [
@@ -13530,7 +12983,6 @@ 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 = [
@@ -13546,7 +12998,6 @@ 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 = [
@@ -13602,15 +13053,15 @@ cffi = {version = ">=1.11", markers = "platform_python_implementation == \"PyPy\
cffi = ["cffi (>=1.11)"]
[extras]
-all = ["anthropic", "clarifai", "cohere", "openai", "nlpcloud", "huggingface_hub", "jina", "manifest-ml", "elasticsearch", "opensearch-py", "google-search-results", "faiss-cpu", "sentence-transformers", "transformers", "spacy", "nltk", "wikipedia", "beautifulsoup4", "tiktoken", "torch", "jinja2", "pinecone-client", "pinecone-text", "marqo", "pymongo", "weaviate-client", "redis", "google-api-python-client", "google-auth", "wolframalpha", "qdrant-client", "tensorflow-text", "pypdf", "networkx", "nomic", "aleph-alpha-client", "deeplake", "libdeeplake", "pgvector", "psycopg2-binary", "pyowm", "pytesseract", "html2text", "atlassian-python-api", "gptcache", "duckduckgo-search", "arxiv", "azure-identity", "clickhouse-connect", "azure-cosmos", "lancedb", "langkit", "lark", "pexpect", "pyvespa", "O365", "jq", "docarray", "steamship", "pdfminer-six", "lxml", "requests-toolbelt", "neo4j", "openlm", "azure-ai-formrecognizer", "azure-ai-vision", "azure-cognitiveservices-speech", "momento", "singlestoredb", "tigrisdb", "nebula3-python", "awadb", "esprima", "octoai-sdk", "rdflib", "amadeus", "xinference", "librosa", "python-arango"]
-azure = ["azure-identity", "azure-cosmos", "openai", "azure-core", "azure-ai-formrecognizer", "azure-ai-vision", "azure-cognitiveservices-speech", "azure-search-documents"]
+all = ["O365", "aleph-alpha-client", "amadeus", "anthropic", "arxiv", "atlassian-python-api", "awadb", "azure-ai-formrecognizer", "azure-ai-vision", "azure-cognitiveservices-speech", "azure-cosmos", "azure-identity", "beautifulsoup4", "clarifai", "clickhouse-connect", "cohere", "deeplake", "docarray", "duckduckgo-search", "elasticsearch", "esprima", "faiss-cpu", "google-api-python-client", "google-auth", "google-search-results", "gptcache", "html2text", "huggingface_hub", "jina", "jinja2", "jq", "lancedb", "langkit", "lark", "libdeeplake", "librosa", "lxml", "manifest-ml", "marqo", "momento", "nebula3-python", "neo4j", "networkx", "nlpcloud", "nltk", "nomic", "octoai-sdk", "openai", "openlm", "opensearch-py", "pdfminer-six", "pexpect", "pgvector", "pinecone-client", "pinecone-text", "psycopg2-binary", "pymongo", "pyowm", "pypdf", "pytesseract", "python-arango", "pyvespa", "qdrant-client", "rdflib", "redis", "requests-toolbelt", "sentence-transformers", "singlestoredb", "spacy", "steamship", "tensorflow-text", "tigrisdb", "tiktoken", "torch", "transformers", "weaviate-client", "wikipedia", "wolframalpha", "xinference"]
+azure = ["azure-ai-formrecognizer", "azure-ai-vision", "azure-cognitiveservices-speech", "azure-core", "azure-cosmos", "azure-identity", "azure-search-documents", "openai"]
clarifai = ["clarifai"]
cohere = ["cohere"]
docarray = ["docarray"]
embeddings = ["sentence-transformers"]
-extended-testing = ["amazon-textract-caller", "beautifulsoup4", "bibtexparser", "cassio", "chardet", "esprima", "jq", "pdfminer-six", "pgvector", "pypdf", "pymupdf", "pypdfium2", "tqdm", "lxml", "atlassian-python-api", "mwparserfromhell", "mwxml", "pandas", "telethon", "psychicapi", "zep-python", "gql", "requests-toolbelt", "html2text", "py-trello", "scikit-learn", "streamlit", "pyspark", "openai", "sympy", "rapidfuzz", "openai", "rank-bm25", "geopandas", "jinja2", "xinference", "gitpython", "newspaper3k", "feedparser", "xata"]
+extended-testing = ["amazon-textract-caller", "atlassian-python-api", "beautifulsoup4", "bibtexparser", "cassio", "chardet", "esprima", "feedparser", "geopandas", "gitpython", "gql", "html2text", "jinja2", "jq", "lxml", "mwparserfromhell", "mwxml", "newspaper3k", "openai", "openai", "pandas", "pdfminer-six", "pgvector", "psychicapi", "py-trello", "pymupdf", "pypdf", "pypdfium2", "pyspark", "rank-bm25", "rapidfuzz", "requests-toolbelt", "scikit-learn", "streamlit", "sympy", "telethon", "tqdm", "xata", "xinference", "xmltodict", "zep-python"]
javascript = ["esprima"]
-llms = ["anthropic", "clarifai", "cohere", "openai", "openllm", "openlm", "nlpcloud", "huggingface_hub", "manifest-ml", "torch", "transformers", "xinference"]
+llms = ["anthropic", "clarifai", "cohere", "huggingface_hub", "manifest-ml", "nlpcloud", "openai", "openllm", "openlm", "torch", "transformers", "xinference"]
openai = ["openai", "tiktoken"]
qdrant = ["qdrant-client"]
text-helpers = ["chardet"]
@@ -13618,4 +13069,4 @@ text-helpers = ["chardet"]
[metadata]
lock-version = "2.0"
python-versions = ">=3.8.1,<4.0"
-content-hash = "9c970917244d05f76c8592b986007e689495e94c6c47e2609677e2907dd0a312"
+content-hash = "6cdb30d8ab9f67aee7410dcae43520f99cd6aba31db4a2eb40c482d9d08d69ac"
diff --git a/libs/langchain/pyproject.toml b/libs/langchain/pyproject.toml
index 2bf3f78a70..4a6e9eb1db 100644
--- a/libs/langchain/pyproject.toml
+++ b/libs/langchain/pyproject.toml
@@ -132,6 +132,7 @@ feedparser = {version = "^6.0.10", optional = true}
newspaper3k = {version = "^0.2.8", optional = true}
amazon-textract-caller = {version = "<2", optional = true}
xata = {version = "^1.0.0a7", optional = true}
+xmltodict = {version = "^0.13.0", optional = true}
[tool.poetry.group.test.dependencies]
# The only dependencies that should be added are
@@ -371,6 +372,7 @@ extended_testing = [
"newspaper3k",
"feedparser",
"xata",
+ "xmltodict",
]
[tool.ruff]
diff --git a/libs/langchain/tests/integration_tests/document_loaders/test_pubmed.py b/libs/langchain/tests/integration_tests/document_loaders/test_pubmed.py
new file mode 100644
index 0000000000..6b58cceda8
--- /dev/null
+++ b/libs/langchain/tests/integration_tests/document_loaders/test_pubmed.py
@@ -0,0 +1,54 @@
+"""Integration test for PubMed API Wrapper."""
+from typing import List
+
+import pytest
+
+from langchain.document_loaders import PubMedLoader
+from langchain.schema import Document
+
+xmltodict = pytest.importorskip("xmltodict")
+
+
+def test_load_success() -> None:
+ """Test that returns the correct answer"""
+ api_client = PubMedLoader(query="chatgpt")
+ docs = api_client.load()
+ print(docs)
+ assert len(docs) == api_client.load_max_docs == 3
+ assert_docs(docs)
+
+
+def test_load_success_load_max_docs() -> None:
+ """Test that returns the correct answer"""
+ api_client = PubMedLoader(query="chatgpt", load_max_docs=2)
+ docs = api_client.load()
+ print(docs)
+ assert len(docs) == api_client.load_max_docs == 2
+ assert_docs(docs)
+
+
+def test_load_returns_no_result() -> None:
+ """Test that gives no result."""
+ api_client = PubMedLoader(query="1605.08386WWW")
+ docs = api_client.load()
+ assert len(docs) == 0
+
+
+def test_load_no_content() -> None:
+ """Returns a Document without content."""
+ api_client = PubMedLoader(query="37548971")
+ docs = api_client.load()
+ print(docs)
+ assert len(docs) > 0
+ assert docs[0].page_content == ""
+
+
+def assert_docs(docs: List[Document]) -> None:
+ for doc in docs:
+ assert doc.metadata
+ assert set(doc.metadata) == {
+ "Copyright Information",
+ "uid",
+ "Title",
+ "Published",
+ }
diff --git a/libs/langchain/tests/integration_tests/retrievers/test_pubmed.py b/libs/langchain/tests/integration_tests/retrievers/test_pubmed.py
new file mode 100644
index 0000000000..7819c03e0e
--- /dev/null
+++ b/libs/langchain/tests/integration_tests/retrievers/test_pubmed.py
@@ -0,0 +1,41 @@
+"""Integration test for PubMed API Wrapper."""
+from typing import List
+
+import pytest
+
+from langchain.retrievers import PubMedRetriever
+from langchain.schema import Document
+
+
+@pytest.fixture
+def retriever() -> PubMedRetriever:
+ return PubMedRetriever()
+
+
+def assert_docs(docs: List[Document]) -> None:
+ for doc in docs:
+ assert doc.metadata
+ assert set(doc.metadata) == {
+ "Copyright Information",
+ "uid",
+ "Title",
+ "Published",
+ }
+
+
+def test_load_success(retriever: PubMedRetriever) -> None:
+ docs = retriever.get_relevant_documents(query="chatgpt")
+ assert len(docs) == 3
+ assert_docs(docs)
+
+
+def test_load_success_top_k_results(retriever: PubMedRetriever) -> None:
+ retriever.top_k_results = 2
+ docs = retriever.get_relevant_documents(query="chatgpt")
+ assert len(docs) == 2
+ assert_docs(docs)
+
+
+def test_load_no_result(retriever: PubMedRetriever) -> None:
+ docs = retriever.get_relevant_documents("1605.08386WWW")
+ assert not docs
diff --git a/libs/langchain/tests/integration_tests/retrievers/test_pupmed.py b/libs/langchain/tests/integration_tests/retrievers/test_pupmed.py
deleted file mode 100644
index 451d696aa7..0000000000
--- a/libs/langchain/tests/integration_tests/retrievers/test_pupmed.py
+++ /dev/null
@@ -1,50 +0,0 @@
-"""Integration test for PubMed API Wrapper."""
-from typing import List
-
-import pytest
-
-from langchain.retrievers import PubMedRetriever
-from langchain.schema import Document
-
-
-@pytest.fixture
-def retriever() -> PubMedRetriever:
- return PubMedRetriever()
-
-
-def assert_docs(docs: List[Document], all_meta: bool = False) -> None:
- for doc in docs:
- assert doc.page_content
- assert doc.metadata
- main_meta = {"Published", "Title", "Authors", "Summary"}
- assert set(doc.metadata).issuperset(main_meta)
- if all_meta:
- assert len(set(doc.metadata)) > len(main_meta)
- else:
- assert len(set(doc.metadata)) == len(main_meta)
-
-
-def test_load_success(retriever: PubMedRetriever) -> None:
- docs = retriever.get_relevant_documents(query="1605.08386")
- assert len(docs) == 1
- assert_docs(docs, all_meta=False)
-
-
-def test_load_success_all_meta(retriever: PubMedRetriever) -> None:
- retriever.load_all_available_meta = True
- retriever.load_max_docs = 2
- docs = retriever.get_relevant_documents(query="ChatGPT")
- assert len(docs) > 1
- assert_docs(docs, all_meta=True)
-
-
-def test_load_success_init_args() -> None:
- retriever = PubMedRetriever(load_max_docs=1, load_all_available_meta=True)
- docs = retriever.get_relevant_documents(query="ChatGPT")
- assert len(docs) == 1
- assert_docs(docs, all_meta=True)
-
-
-def test_load_no_result(retriever: PubMedRetriever) -> None:
- docs = retriever.get_relevant_documents("1605.08386WWW")
- assert not docs
diff --git a/libs/langchain/tests/integration_tests/utilities/test_pupmed.py b/libs/langchain/tests/integration_tests/utilities/test_pubmed.py
similarity index 57%
rename from libs/langchain/tests/integration_tests/utilities/test_pupmed.py
rename to libs/langchain/tests/integration_tests/utilities/test_pubmed.py
index 03af928dc7..cda90258d3 100644
--- a/libs/langchain/tests/integration_tests/utilities/test_pupmed.py
+++ b/libs/langchain/tests/integration_tests/utilities/test_pubmed.py
@@ -5,9 +5,12 @@ import pytest
from langchain.agents.load_tools import load_tools
from langchain.schema import Document
+from langchain.tools import PubmedQueryRun
from langchain.tools.base import BaseTool
from langchain.utilities import PubMedAPIWrapper
+xmltodict = pytest.importorskip("xmltodict")
+
@pytest.fixture
def api_client() -> PubMedAPIWrapper:
@@ -17,15 +20,9 @@ def api_client() -> PubMedAPIWrapper:
def test_run_success(api_client: PubMedAPIWrapper) -> None:
"""Test that returns the correct answer"""
- output = api_client.run("1605.08386")
- assert "Heat-bath random walks with Markov bases" in output
-
-
-def test_run_returns_several_docs(api_client: PubMedAPIWrapper) -> None:
- """Test that returns several docs"""
-
- output = api_client.run("Caprice Stanley")
- assert "On Mixing Behavior of a Family of Random Walks" in output
+ output = api_client.run("chatgpt")
+ assert "Performance of ChatGPT on the Situational Judgement Test-A" in output
+ assert len(output) == api_client.doc_content_chars_max
def test_run_returns_no_result(api_client: PubMedAPIWrapper) -> None:
@@ -37,30 +34,34 @@ def test_run_returns_no_result(api_client: PubMedAPIWrapper) -> None:
def assert_docs(docs: List[Document]) -> None:
for doc in docs:
- assert doc.page_content
assert doc.metadata
- assert set(doc.metadata) == {"Published", "Title", "Authors", "Summary"}
+ assert set(doc.metadata) == {
+ "Copyright Information",
+ "uid",
+ "Title",
+ "Published",
+ }
def test_load_success(api_client: PubMedAPIWrapper) -> None:
"""Test that returns one document"""
- docs = api_client.load_docs("1605.08386")
- assert len(docs) == 1
+ docs = api_client.load_docs("chatgpt")
+ assert len(docs) == api_client.top_k_results == 3
assert_docs(docs)
def test_load_returns_no_result(api_client: PubMedAPIWrapper) -> None:
"""Test that returns no docs"""
- docs = api_client.load("1605.08386WWW")
+ docs = api_client.load_docs("1605.08386WWW")
assert len(docs) == 0
def test_load_returns_limited_docs() -> None:
"""Test that returns several docs"""
expected_docs = 2
- api_client = PubMedAPIWrapper(load_max_docs=expected_docs)
+ api_client = PubMedAPIWrapper(top_k_results=expected_docs)
docs = api_client.load_docs("ChatGPT")
assert len(docs) == expected_docs
assert_docs(docs)
@@ -70,42 +71,31 @@ def test_load_returns_full_set_of_metadata() -> None:
"""Test that returns several docs"""
api_client = PubMedAPIWrapper(load_max_docs=1, load_all_available_meta=True)
docs = api_client.load_docs("ChatGPT")
- assert len(docs) == 1
+ assert len(docs) == 3
for doc in docs:
- assert doc.page_content
assert doc.metadata
assert set(doc.metadata).issuperset(
- {"Published", "Title", "Authors", "Summary"}
+ {"Copyright Information", "Published", "Title", "uid"}
)
- print(doc.metadata)
- assert len(set(doc.metadata)) > 4
def _load_pubmed_from_universal_entry(**kwargs: Any) -> BaseTool:
- tools = load_tools(["pupmed"], **kwargs)
+ tools = load_tools(["pubmed"], **kwargs)
assert len(tools) == 1, "loaded more than 1 tool"
return tools[0]
def test_load_pupmed_from_universal_entry() -> None:
- pupmed_tool = _load_pubmed_from_universal_entry()
- output = pupmed_tool("Caprice Stanley")
- assert (
- "On Mixing Behavior of a Family of Random Walks" in output
- ), "failed to fetch a valid result"
+ pubmed_tool = _load_pubmed_from_universal_entry()
+ output = pubmed_tool("chatgpt")
+ assert "Performance of ChatGPT on the Situational Judgement Test-A" in output
def test_load_pupmed_from_universal_entry_with_params() -> None:
params = {
"top_k_results": 1,
- "load_max_docs": 10,
- "load_all_available_meta": True,
}
- pupmed_tool = _load_pubmed_from_universal_entry(**params)
- assert isinstance(pupmed_tool, PubMedAPIWrapper)
- wp = pupmed_tool.api_wrapper
+ pubmed_tool = _load_pubmed_from_universal_entry(**params)
+ assert isinstance(pubmed_tool, PubmedQueryRun)
+ wp = pubmed_tool.api_wrapper
assert wp.top_k_results == 1, "failed to assert top_k_results"
- assert wp.load_max_docs == 10, "failed to assert load_max_docs"
- assert (
- wp.load_all_available_meta is True
- ), "failed to assert load_all_available_meta"