From 6947814c3fe1508b2ffccc5b9ad36d3c2bb8ce4c Mon Sep 17 00:00:00 2001 From: jagadeeswaran-zipstack Date: Thu, 9 Jan 2025 09:48:50 +0530 Subject: [PATCH 01/15] unifyied llmw adapters --- .../x2text/llm_whisperer/src/constants.py | 18 +- .../x2text/llm_whisperer/src/helper.py | 81 ++++++ .../x2text/llm_whisperer/src/llm_whisperer.py | 203 ++++++++++---- .../llm_whisperer/src/static/json_schema.json | 252 +++++++++++------- 4 files changed, 397 insertions(+), 157 deletions(-) create mode 100644 src/unstract/sdk/adapters/x2text/llm_whisperer/src/helper.py diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py index 6b11d65b..87b11a49 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py @@ -18,6 +18,7 @@ class OutputModes(Enum): LINE_PRINTER = "line-printer" DUMP_TEXT = "dump-text" TEXT = "text" + LAYOUT_PRESERVING = "layout_preserving" class HTTPMethod(Enum): @@ -48,10 +49,13 @@ class WhispererEnv: LLMWhisperer's status API. Defaults to 30s MAX_POLLS: Total number of times to poll the status API. Set to -1 to poll indefinitely. Defaults to -1 + STATUS_RETRIES: Number of times to retry calling LLLMWhisperer's status API + on failure during polling. Defaults to 5. """ POLL_INTERVAL = "ADAPTER_LLMW_POLL_INTERVAL" MAX_POLLS = "ADAPTER_LLMW_MAX_POLLS" + STATUS_RETRIES = "ADAPTER_LLMW_STATUS_RETRIES" class WhispererConfig: @@ -66,6 +70,7 @@ class WhispererConfig: GAUSSIAN_BLUR_RADIUS = "gaussian_blur_radius" FORCE_TEXT_PROCESSING = "force_text_processing" LINE_SPLITTER_TOLERANCE = "line_splitter_tolerance" + LINE_SPLITTER_STRATEGY = "line_splitter_strategy" HORIZONTAL_STRETCH_FACTOR = "horizontal_stretch_factor" PAGES_TO_EXTRACT = "pages_to_extract" STORE_METADATA_FOR_HIGHLIGHTING = "store_metadata_for_highlighting" @@ -74,7 +79,12 @@ class WhispererConfig: PAGE_SEPARATOR = "page_seperator" MARK_VERTICAL_LINES = "mark_vertical_lines" MARK_HORIZONTAL_LINES = "mark_horizontal_lines" - + URL_IN_POST = "url_in_post" + TAG = "tag" + USE_WEBHOOK = "use_webhook" + WEBHOOK_METADATA = "webhook_metadata" + TEXT_ONLY = "text_only" + VERSION = "version" class WhisperStatus: """Values returned / used by /whisper-status endpoint.""" @@ -86,6 +96,7 @@ class WhisperStatus: # Used for async processing WHISPER_HASH = "whisper-hash" STATUS = "status" + WHISPER_HASH_V2 = "whisper_hash" class WhispererDefaults: @@ -95,6 +106,7 @@ class WhispererDefaults: GAUSSIAN_BLUR_RADIUS = 0.0 FORCE_TEXT_PROCESSING = False LINE_SPLITTER_TOLERANCE = 0.75 + LINE_SPLITTER_STRATEGY = "left-priority" HORIZONTAL_STRETCH_FACTOR = 1.0 POLL_INTERVAL = int(os.getenv(WhispererEnv.POLL_INTERVAL, 30)) MAX_POLLS = int(os.getenv(WhispererEnv.MAX_POLLS, 30)) @@ -104,3 +116,7 @@ class WhispererDefaults: PAGE_SEPARATOR = "<<< >>>" MARK_VERTICAL_LINES = False MARK_HORIZONTAL_LINES = False + STATUS_RETRIES = int(os.getenv(WhispererEnv.STATUS_RETRIES, 5)) + URL_IN_POST = False + TAG = "default" + TEXT_ONLY = False diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/helper.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/helper.py new file mode 100644 index 00000000..11648674 --- /dev/null +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/helper.py @@ -0,0 +1,81 @@ +import logging +from typing import Any +from unstract.sdk.adapters.x2text.llm_whisperer.src.constants import ( + Modes, + OutputModes, + WhispererConfig, + WhispererDefaults, +) +logger = logging.getLogger(__name__) + + +class LLMWhispererHelper: + + @staticmethod + def get_whisperer_params(config: dict[str, Any]) -> dict[str, Any]: + """Gets query params meant for /whisper endpoint. + + The params is filled based on the configuration passed. + + Returns: + dict[str, Any]: Query params + """ + params = { + WhispererConfig.MODE: config.get(WhispererConfig.MODE, Modes.FORM.value), + WhispererConfig.OUTPUT_MODE: config.get( + WhispererConfig.OUTPUT_MODE, OutputModes.LAYOUT_PRESERVING.value + ), + WhispererConfig.LINE_SPLITTER_TOLERANCE: config.get( + WhispererConfig.LINE_SPLITTER_TOLERANCE, + WhispererDefaults.LINE_SPLITTER_TOLERANCE, + ), + WhispererConfig.LINE_SPLITTER_STRATEGY: config.get( + WhispererConfig.LINE_SPLITTER_STRATEGY, + WhispererDefaults.LINE_SPLITTER_STRATEGY, + ), + WhispererConfig.HORIZONTAL_STRETCH_FACTOR: config.get( + WhispererConfig.HORIZONTAL_STRETCH_FACTOR, + WhispererDefaults.HORIZONTAL_STRETCH_FACTOR, + ), + WhispererConfig.PAGES_TO_EXTRACT: config.get( + WhispererConfig.PAGES_TO_EXTRACT, + WhispererDefaults.PAGES_TO_EXTRACT, + ), + WhispererConfig.MARK_VERTICAL_LINES: config.get( + WhispererConfig.MARK_VERTICAL_LINES, + WhispererDefaults.MARK_VERTICAL_LINES, + ), + WhispererConfig.MARK_HORIZONTAL_LINES: config.get( + WhispererConfig.MARK_HORIZONTAL_LINES, + WhispererDefaults.MARK_HORIZONTAL_LINES, + ), + WhispererConfig.URL_IN_POST: WhispererDefaults.URL_IN_POST, + WhispererConfig.PAGE_SEPARATOR: config.get( + WhispererConfig.PAGE_SEPARATOR, + WhispererDefaults.PAGE_SEPARATOR, + ), + # Not providing default value to maintain legacy compatablity + # these are optional params and identifiers for audit + WhispererConfig.TAG: config.get( + WhispererConfig.TAG, + WhispererDefaults.TAG, + ), + WhispererConfig.USE_WEBHOOK: config.get(WhispererConfig.USE_WEBHOOK), + WhispererConfig.WEBHOOK_METADATA: config.get( + WhispererConfig.WEBHOOK_METADATA + ), + } + if params[WhispererConfig.MODE] == Modes.LOW_COST.value: + params.update( + { + WhispererConfig.MEDIAN_FILTER_SIZE: config.get( + WhispererConfig.MEDIAN_FILTER_SIZE, + WhispererDefaults.MEDIAN_FILTER_SIZE, + ), + WhispererConfig.GAUSSIAN_BLUR_RADIUS: config.get( + WhispererConfig.GAUSSIAN_BLUR_RADIUS, + WhispererDefaults.GAUSSIAN_BLUR_RADIUS, + ), + } + ) + return params diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py index e753bed8..64dd9661 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py @@ -26,6 +26,7 @@ WhispererHeader, WhisperStatus, ) +from unstract.sdk.adapters.x2text.llm_whisperer.src.helper import LLMWhispererHelper from unstract.sdk.adapters.x2text.x2text_adapter import X2TextAdapter from unstract.sdk.constants import MimeType from unstract.sdk.file_storage import FileStorage, FileStorageProvider @@ -34,25 +35,43 @@ class LLMWhisperer(X2TextAdapter): + _version = "v2" def __init__(self, settings: dict[str, Any]): super().__init__("LLMWhisperer") self.config = settings + self.config["version"] = settings.get(WhispererConfig.VERSION, "v2") + LLMWhisperer._version = settings.get(WhispererConfig.VERSION, "v2") + + V1_NAME = "LLMWhisperer" + V1_DESCRIPTION = "LLMWhisperer X2Text" + V1_ICON = "/icons/adapter-icons/LLMWhisperer.png" + + V2_ID = "llmwhisperer|a5e6b8af-3e1f-4a80-b006-d017e8e67f93" + V2_NAME = "LLMWhisperer V2" + V2_DESCRIPTION = "LLMWhisperer V2 X2Text" + V2_ICON = "/icons/adapter-icons/LLMWhispererV2.png" @staticmethod def get_id() -> str: - return "llmwhisperer|0a1647f0-f65f-410d-843b-3d979c78350e" - - @staticmethod - def get_name() -> str: - return "LLMWhisperer" - - @staticmethod - def get_description() -> str: - return "LLMWhisperer X2Text" - - @staticmethod - def get_icon() -> str: - return "/icons/adapter-icons/LLMWhisperer.png" + return "llmwhisperer|a5e6b8af-3e1f-4a80-b006-d017e8e67f93" + + @classmethod + def get_name(cls) -> str: + if cls._version == "v2": + return cls.V2_NAME + return cls.V1_NAME + + @classmethod + def get_description(cls) -> str: + if cls._version == "v2": + return cls.V2_DESCRIPTION + return cls.V1_DESCRIPTION + + @classmethod + def get_icon(cls) -> str: + if cls._version == "v2": + return cls.V2_ICON + return cls.V1_ICON @staticmethod def get_json_schema() -> str: @@ -95,24 +114,23 @@ def _make_request( Returns: Response: Response from the request """ - llm_whisperer_svc_url = ( - f"{self.config.get(WhispererConfig.URL)}" f"/v1/{request_endpoint}" - ) + # Determine version and set appropriate URL + version = self.config.get("version", "v1") + base_url = (f"{self.config.get(WhispererConfig.URL)}/api/v2/{request_endpoint}" + if version == "v2" + else f"{self.config.get(WhispererConfig.URL)}" f"/v1/{request_endpoint}" + ) + if not headers: headers = self._get_request_headers() try: response: Response if request_method == HTTPMethod.GET: - response = requests.get( - url=llm_whisperer_svc_url, headers=headers, params=params - ) + response = requests.get(url=base_url, headers=headers, params=params) elif request_method == HTTPMethod.POST: response = requests.post( - url=llm_whisperer_svc_url, - headers=headers, - params=params, - data=data, + url=base_url, headers=headers, params=params, data=data ) else: raise ExtractorError(f"Unsupported request method: {request_method}") @@ -120,7 +138,7 @@ def _make_request( except ConnectionError as e: logger.error(f"Adapter error: {e}") raise ExtractorError( - "Unable to connect to LLMWhisperer service, please check the URL" + "Unable to connect to LLMWhisperer service, please check the URL", ) except Timeout as e: msg = "Request to LLMWhisperer has timed out" @@ -213,61 +231,87 @@ def test_connection(self) -> bool: return True def _check_status_until_ready( - self, whisper_hash: str, headers: dict[str, Any], params: dict[str, Any] + + self, + whisper_hash: str = "", + headers: dict[str, Any] = None, + params: dict[str, Any] = None, ) -> WhisperStatus: - """Checks the extraction status by polling. + """Checks the extraction status by polling for both v1 and v2. Polls the /whisper-status endpoint in fixed intervals of env: ADAPTER_LLMW_POLL_INTERVAL for a certain number of times controlled by env: ADAPTER_LLMW_MAX_POLLS. Args: - whisper_hash (str): Identifier for the extraction, - returned by LLMWhisperer + version (str): Version of the LLMWhisperer API (either 'v1' or 'v2') + config (Optional[dict[str, Any]]): Configuration for v2 (None for v1) + whisper_hash (str): Identifier for the extraction, returned by LLMWhisperer headers (dict[str, Any]): Headers to pass for the status check params (dict[str, Any]): Params to pass for the status check Returns: WhisperStatus: Status of the extraction """ + version = self.config['version'] POLL_INTERVAL = WhispererDefaults.POLL_INTERVAL MAX_POLLS = WhispererDefaults.MAX_POLLS + STATUS_RETRY_THRESHOLD = WhispererDefaults.STATUS_RETRIES if version == "v2" else 0 + status_retry_count = 0 request_count = 0 - # Check status in fixed intervals upto max poll count. while True: request_count += 1 logger.info( - f"Checking status with interval: {POLL_INTERVAL}s" - f", request count: {request_count} [max: {MAX_POLLS}]" + f"Checking status{' for whisper-hash ' if version == 'v2' else ''}" + f"'{whisper_hash}' with interval: {POLL_INTERVAL}s, request count: " + f"{request_count} [max: {MAX_POLLS}]" ) + + # Make request based on version status_response = self._make_request( request_method=HTTPMethod.GET, request_endpoint=WhispererEndpoint.STATUS, headers=headers, params=params, ) + if status_response.status_code == 200: status_data = status_response.json() status = status_data.get(WhisperStatus.STATUS, WhisperStatus.UNKNOWN) - logger.info(f"Whisper status for {whisper_hash}: {status}") + logger.info(f"Whisper status for '{whisper_hash}': {status}") if status in [WhisperStatus.PROCESSED, WhisperStatus.DELIVERED]: break else: - raise ExtractorError( - "Error checking LLMWhisperer status: " - f"{status_response.status_code} - {status_response.text}" - ) + if version == "v2" and status_retry_count >= STATUS_RETRY_THRESHOLD: + raise ExtractorError( + f"Error checking LLMWhisperer status for whisper-hash " + f"'{whisper_hash}': {status_response.text}" + ) + elif version == "v2": + status_retry_count += 1 + logger.warning( + f"Whisper status for '{whisper_hash}' failed " + f"{status_retry_count} time(s), retrying... " + f"[threshold: {STATUS_RETRY_THRESHOLD}]: {status_response.text}" + ) + else: # v1 error handling + raise ExtractorError( + "Error checking LLMWhisperer status: " + f"{status_response.status_code} - {status_response.text}" + ) - # Exit with error if max poll count is reached if request_count >= MAX_POLLS: raise ExtractorError( - "Unable to extract text after attempting" f" {request_count} times" + f"Unable to extract text for whisper-hash '{whisper_hash}' " + f"after attempting {request_count} times" ) + time.sleep(POLL_INTERVAL) return status + def _extract_async(self, whisper_hash: str) -> str: """Makes an async extraction with LLMWhisperer. @@ -280,12 +324,16 @@ def _extract_async(self, whisper_hash: str) -> str: str: Extracted contents from the file """ logger.info(f"Extracting async for whisper hash: {whisper_hash}") - + version = self.config['version'] headers: dict[str, Any] = self._get_request_headers() - params = { + params =({ WhisperStatus.WHISPER_HASH: whisper_hash, WhispererConfig.OUTPUT_JSON: WhispererDefaults.OUTPUT_JSON, - } + } if version == 'v1' + else { + WhisperStatus.WHISPER_HASH_V2: whisper_hash, + WhispererConfig.TEXT_ONLY: WhispererDefaults.TEXT_ONLY, + }) # Polls in fixed intervals and checks status self._check_status_until_ready( @@ -312,22 +360,43 @@ def _send_whisper_request( fs: FileStorage = FileStorage(provider=FileStorageProvider.LOCAL), enable_highlight: bool = False, ) -> requests.Response: + """Sends a whisper request for both v1 and v2. + + Args: + version (str): Version of the LLMWhisperer API (either 'v1' or 'v2') + input_file_path (str): Path to the input file to be processed + fs (FileStorage): File storage object to read the file + enable_highlight (bool): Whether to enable highlight (only for v1) + + Returns: + requests.Response: Response from the whisper request + """ + version = self.config['version'] + config = self.config + params = {} headers = self._get_request_headers() + if version == "v1": + params = self._get_whisper_params(enable_highlight) + elif version == "v2": + params = LLMWhispererHelper.get_whisperer_params(config) + else: + raise ValueError("Unsupported version. Only 'v1' and 'v2' are allowed.") + headers["Content-Type"] = "application/octet-stream" - params = self._get_whisper_params(enable_highlight) - response: requests.Response try: + input_file_data = fs.read(input_file_path, "rb") response = self._make_request( request_method=HTTPMethod.POST, request_endpoint=WhispererEndpoint.WHISPER, headers=headers, params=params, - data=fs.read(path=input_file_path, mode="rb"), + data=input_file_data, ) except OSError as e: logger.error(f"OS error while reading {input_file_path}: {e}") raise ExtractorError(str(e)) + return response def _extract_text_from_response( @@ -337,10 +406,12 @@ def _extract_text_from_response( fs: FileStorage = FileStorage(provider=FileStorageProvider.LOCAL), ) -> str: output_json = {} + version = self.config['version'] if response.status_code == 200: output_json = response.json() elif response.status_code == 202: - whisper_hash = response.json().get(WhisperStatus.WHISPER_HASH) + whisper_hash_key = WhisperStatus.WHISPER_HASH_V2 if version == "v2" else WhisperStatus.WHISPER_HASH + whisper_hash = response.json().get(whisper_hash_key) output_json = self._extract_async(whisper_hash=whisper_hash) else: raise ExtractorError("Couldn't extract text from file") @@ -348,7 +419,8 @@ def _extract_text_from_response( self._write_output_to_file( output_json=output_json, output_file_path=Path(output_file_path), fs=fs ) - return output_json.get("text", "") + output_key = "text" if version == "v1" else "result_text" + return output_json.get(output_key, "") def _write_output_to_file( self, @@ -369,7 +441,9 @@ def _write_output_to_file( ExtractorError: If there is an error while writing the output file. """ try: - text_output = output_json.get("text", "") + version = self.config['version'] + output_key = "text" if version == "v1" else "result_text" + text_output = output_json.get(output_key, "") logger.info(f"Writing output to {output_file_path}") fs.write( path=output_file_path, @@ -423,22 +497,35 @@ def process( Defaults to None. Returns: - str: Extracted text + TextExtractionResult: Extracted text along with metadata. """ + if self.config['version'] == "v2": + # V2 logic + response: requests.Response = self._send_whisper_request( + input_file_path, fs=fs + ) + response_text = response.text + response_dict = json.loads(response_text) + metadata = TextExtractionMetadata( + whisper_hash=response_dict.get(WhisperStatus.WHISPER_HASH_V2, "") + ) + else: + # V1 logic + response: requests.Response = self._send_whisper_request( + input_file_path, + fs, + bool(kwargs.get(X2TextConstants.ENABLE_HIGHLIGHT, False)), + ) - response: requests.Response = self._send_whisper_request( - input_file_path, - fs, - bool(kwargs.get(X2TextConstants.ENABLE_HIGHLIGHT, False)), - ) + metadata = TextExtractionMetadata( + whisper_hash=response.headers.get(X2TextConstants.WHISPER_HASH, "") + ) - metadata = TextExtractionMetadata( - whisper_hash=response.headers.get(X2TextConstants.WHISPER_HASH, "") + extracted_text = self._extract_text_from_response( + output_file_path, response, fs ) return TextExtractionResult( - extracted_text=self._extract_text_from_response( - output_file_path, response, fs - ), + extracted_text=extracted_text, extraction_metadata=metadata, ) diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/static/json_schema.json b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/static/json_schema.json index 2bccb688..d4bde9ea 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/static/json_schema.json +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/static/json_schema.json @@ -1,13 +1,23 @@ { - "title": "LLMWhisperer v1 Text Extractor", + "title": "LLMWhisperer Text Extractor", "type": "object", "required": [ "adapter_name", "unstract_key", - "url" + "url", + "version" ], - "description": "LLMWhisperer v1 is deprecated, use the cheaper and faster [LLMWhisperer v2](https://docs.unstract.com/llmwhisperer/llm_whisperer/faqs/v1_to_v2/) instead.", "properties": { + "version": { + "type": "string", + "title": "Version", + "enum": [ + "v1", + "v2" + ], + "default": "v2", + "description": "Select the version of LLMWhisperer to use." + }, "adapter_name": { "type": "string", "title": "Name", @@ -18,120 +28,166 @@ "type": "string", "title": "URL", "format": "uri", - "default": "https://llmwhisperer-api.unstract.com", - "description": "Provide the URL of the LLMWhisperer service. Please note that this version of LLMWhisperer is deprecated." + "default": "https://llmwhisperer-api.us-central.unstract.com", + "description": "Provide the URL of the LLMWhisperer service." }, "unstract_key": { "type": "string", "title": "Unstract Key", "format": "password", - "description": "API key obtained from the [Unstract developer portal](https://unstract-api-resource.developer.azure-api.net)" - }, - "mode": { - "type": "string", - "title": "Mode", - "enum": [ - "native_text", - "low_cost", - "high_quality", - "form" - ], - "default": "form", - "description": "Processing mode to use, described in the [LLMWhisperer v1 documentation](https://docs.unstract.com/llmwhisperer/1.0.0/llm_whisperer/apis/llm_whisperer_text_extraction_api/#processing-modes)" - }, - "output_mode": { - "type": "string", - "title": "Output Mode", - "enum": [ - "line-printer", - "dump-text", - "text" - ], - "default": "line-printer", - "description": "Output mode to use, described in the [LLMWhisperer v1 documentation](https://docs.unstract.com/llmwhisperer/1.0.0/llm_whisperer/apis/llm_whisperer_text_extraction_api/#output-modes)" - }, - - "line_splitter_tolerance": { - "type": "number", - "title": "Line Splitter Tolerance", - "default": 0.4, - "description": "Reduce this value to split lines less often, increase to split lines more often. Useful when PDFs have multi column layout with text in each column that is not aligned." - }, - "horizontal_stretch_factor": { - "type": "number", - "title": "Horizontal Stretch Factor", - "default": 1.0, - "description": "Increase this value to stretch text horizontally, decrease to compress text horizontally. Useful when multi column text merge with each other." - }, - "pages_to_extract": { - "type": "string", - "title": "Page number(s) or range to extract", - "default": "", - "pattern": "^(\\s*\\d+-\\d+|\\s*\\d+-|\\s*\\d+|^$)(,\\d+-\\d+|,\\d+-|,\\d+)*$", - "description": "Specify the range of pages to extract (e.g., 1-5, 7, 10-12, 50-). Leave it empty to extract all pages." - }, - "page_seperator": { - "type": "string", - "title": "Page separator", - "default": "<<< >>>", - "description": "Specify a pattern to separate the pages in the document (e.g., <<< {{page_no}} >>>, <<< >>>). This pattern will be inserted at the end of every page. Omit {{page_no}} if you don't want to include the page number in the separator." + "description": "API key obtained from the [Unstract developer portal](https://us-central.unstract.com/landing?selectedProduct=llm-whisperer)" } }, - "if": { - "anyOf": [ - { + "allOf": [ + { + "if": { "properties": { - "mode": { - "const": "low_cost" + "version": { + "const": "v1" } } }, - { + "then": { + "description": "LLMWhisperer v1 is deprecated, use the cheaper and faster [LLMWhisperer v2](https://docs.unstract.com/llmwhisperer/llm_whisperer/faqs/v1_to_v2/) instead.", "properties": { "mode": { - "const": "high_quality" + "type": "string", + "title": "Mode", + "enum": [ + "native_text", + "low_cost", + "high_quality", + "form" + ], + "default": "form", + "description": "Processing mode to use, described in the [LLMWhisperer v1 documentation](https://docs.unstract.com/llmwhisperer/1.0.0/llm_whisperer/apis/llm_whisperer_text_extraction_api/#processing-modes)" + }, + "output_mode": { + "type": "string", + "title": "Output Mode", + "enum": [ + "line-printer", + "dump-text", + "text" + ], + "default": "line-printer", + "description": "Output mode to use, described in the [LLMWhisperer v1 documentation](https://docs.unstract.com/llmwhisperer/1.0.0/llm_whisperer/apis/llm_whisperer_text_extraction_api/#output-modes)" + }, + "line_splitter_tolerance": { + "type": "number", + "title": "Line Splitter Tolerance", + "default": 0.4, + "description": "Reduce this value to split lines less often, increase to split lines more often. Useful when PDFs have multi-column layout with text in each column that is not aligned." + }, + "horizontal_stretch_factor": { + "type": "number", + "title": "Horizontal Stretch Factor", + "default": 1.0, + "description": "Increase this value to stretch text horizontally, decrease to compress text horizontally. Useful when multi-column text merges with each other." + }, + "pages_to_extract": { + "type": "string", + "title": "Page number(s) or range to extract", + "default": "", + "pattern": "^(\\s*\\d+-\\d+|\\s*\\d+-|\\s*\\d+|^$)(,\\d+-\\d+|,\\d+-|,\\d+)*$", + "description": "Specify the range of pages to extract (e.g., 1-5, 7, 10-12, 50-). Leave it empty to extract all pages." + }, + "page_seperator": { + "type": "string", + "title": "Page separator", + "default": "<<< >>>", + "description": "Specify a pattern to separate the pages in the document (e.g., <<< {{page_no}} >>>, <<< >>>). This pattern will be inserted at the end of every page. Omit {{page_no}} if you don't want to include the page number in the separator." + } + }, + "required": [ + "mode", + "output_mode" + ] + } + }, + { + "if": { + "properties": { + "version": { + "const": "v2" } } }, - { + "then": { "properties": { "mode": { - "const": "form" + "type": "string", + "title": "Mode", + "enum": [ + "native_text", + "low_cost", + "high_quality", + "form" + ], + "default": "form", + "description": "Processing mode to use, described in the [LLMWhisperer documentation](https://docs.unstract.com/llmwhisperer/llm_whisperer/apis/llm_whisperer_text_extraction_api/#modes)." + }, + "output_mode": { + "type": "string", + "title": "Output Mode", + "enum": [ + "layout_preserving", + "text" + ], + "default": "layout_preserving", + "description": "Output format, described in the [LLMWhisperer documentation](https://docs.unstract.com/llmwhisperer/llm_whisperer/apis/llm_whisperer_text_extraction_api/#output-modes)" + }, + "line_splitter_tolerance": { + "type": "number", + "title": "Line Splitter Tolerance", + "default": 0.4, + "description": "Factor to decide when to move text to the next line when it is above or below the baseline. The default value of 0.4 signifies 40% of the average character height." + }, + "line_splitter_strategy": { + "type": "string", + "title": "Line Splitter Strategy", + "default": "left-priority", + "description": "An advanced option for customizing the line splitting process." + }, + "horizontal_stretch_factor": { + "type": "number", + "title": "Horizontal Stretch Factor", + "default": 1.0, + "description": "Increase this value to stretch text horizontally, decrease to compress text horizontally. Useful when multi-column text merges with each other." + }, + "pages_to_extract": { + "type": "string", + "title": "Page number(s) or range to extract", + "default": "", + "pattern": "^(\\s*\\d+-\\d+|\\s*\\d+-|\\s*\\d+|^$)(,\\d+-\\d+|,\\d+-|,\\d+)*$", + "description": "Specify the range of pages to extract (e.g., 1-5, 7, 10-12, 50-). Leave it empty to extract all pages." + }, + "page_seperator": { + "type": "string", + "title": "Page separator", + "default": "<<<", + "description": "Specify a pattern to separate the pages in the document. This pattern will be inserted at the end of every page (e.g., `<<< {{page_no}} >>>`, `<<< >>>`). Omit `{{page_no}}` if you don't want to include the page number in the separator." + }, + "tag": { + "type": "string", + "title": "Tag", + "default": "default", + "description": "Auditing feature. Set a value which will be associated with the invocation of the adapter. This can be used for cross-referencing in usage reports." + }, + "use_webhook": { + "type": "string", + "title": "Webhook", + "default": "", + "description": "The webhook's name which should be called after the conversion is complete. The name should have been registered earlier using the webhooks management endpoint." + }, + "webhook_metadata": { + "type": "string", + "title": "Webhook Metadata", + "default": "", + "description": "Any metadata which should be sent to the webhook. This data is sent verbatim to the callback endpoint." } } } - ] - }, - "then": { - "properties": { - "median_filter_size": { - "type": "integer", - "title": "Median Filter Size", - "default": 0, - "description": "The size of the median filter to use for pre-processing the image during OCR based extraction. Useful to eliminate scanning artifacts and low quality JPEG artifacts. Default is 0 if the value is not explicitly set. Available only in the Enterprise version." - }, - "gaussian_blur_radius": { - "type": "number", - "title": "Gaussian Blur Radius", - "default": 0.0, - "description": "The radius of the gaussian blur to use for pre-processing the image during OCR based extraction. Useful to eliminate noise from the image. Default is 0.0 if the value is not explicitly set. Available only in the Enterprise version." - }, - "mark_vertical_lines": { - "type": "boolean", - "title": "Mark Vertical Lines", - "default": false, - "description": "Detect vertical lines in the document and replicate the same using text (using \"|\" symbol). Use this for displaying tables with borders." - }, - "mark_horizontal_lines": { - "type": "boolean", - "title": "Mark Horizontal Lines", - "default": false, - "description": "Detect horizontal lines in the document and replicate the same using text (using \"-\" symbol). Use this for displaying tables with borders and other horizontal serperators found in the document." - } - }, - "required": [ - "median_filter_size", - "gaussian_blur_radius" - ] - } + } + ] } From b771e943f103313fb38eccaaccb0ace2fd2f73e3 Mon Sep 17 00:00:00 2001 From: jagadeeswaran-zipstack Date: Mon, 13 Jan 2025 16:39:47 +0530 Subject: [PATCH 02/15] updated read me and unified adapter names --- .../adapters/x2text/llm_whisperer/README.md | 56 ++++++++- .../x2text/llm_whisperer/src/llm_whisperer.py | 43 +++---- .../llm_whisperer/src/static/json_schema.json | 106 +++++++++++++++++- 3 files changed, 170 insertions(+), 35 deletions(-) diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/README.md b/src/unstract/sdk/adapters/x2text/llm_whisperer/README.md index 0c1a9ea1..484b5979 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/README.md +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/README.md @@ -4,7 +4,55 @@ The below env variables are resolved by LLMWhisperer adapter -| Variable | Description | -| ---------------------------- | -------------------------------------------------------------------------------------------- | -| `ADAPTER_LLMW_POLL_INTERVAL` | Time in seconds to wait before polling LLMWhisperer's status API. Defaults to 30s | -| `ADAPTER_LLMW_MAX_POLLS` | Total number of times to poll the status API. Defaults to 30 | +| Variable | Description | +| ---------------------------- | --------------------------------------------------------------------------------- | +| `ADAPTER_LLMW_POLL_INTERVAL` | Time in seconds to wait before polling LLMWhisperer's status API. Defaults to 30s | +| `ADAPTER_LLMW_MAX_POLLS` | Total number of times to poll the status API. Defaults to 30 | + +--- + +## id: llm_whisperer_apis_changelog + +# Changelog + +## Version 2.0.0 + +:::warning +This version of the API is not backward compatible with the previous version. +::: + +### API endpoint + +- The base URL for the **V2** APIs is `https://llmwhisperer-api.unstract.com/api/v2` + +### Global change in parameter naming + +- All use of `whisper-hash` as a parameter has been replaced with `whisper_hash` for consistency. + +### Whisper parameters + +#### Added + +- `mode` (str, optional): The processing mode. +- `mark_vertical_lines` (bool, optional): Whether to reproduce vertical lines in the document. +- `mark_horizontal_lines` (bool, optional): Whether to reproduce horizontal lines in the document. +- `line_splitter_strategy` (str, optional): The line splitter strategy to use. An advanced option for customizing the line splitting process. +- `lang` (str, optional): The language of the document. +- `tag` (str, optional): A tag to associate with the document. Used for auditing and tracking purposes. +- `file_name` (str, optional): The name of the file being processed. Used for auditing and tracking purposes. +- `use_webhook` (str, optional): The name of the webhook to call after the document is processed. +- `webhook_metadata` (str, optional): Metadata to send to the webhook after the document is processed. + +#### Removed + +- `timeout` (int, optional): The timeout for API requests. _There is no sync mode now. All requests are async._ +- `force_text_processing` (bool, optional): Whether to force text processing. _This is feature is removed_ +- `ocr_provider` (str, optional): The OCR provider to use. _This is superseded by `mode`_ +- `processing_mode` (str, optional): The processing mode. _This is superseded by `mode`_ +- `store_metadata_for_highlighting` (bool, optional): Whether to store metadata for highlighting. _Feature is removed. Data still available and set back when retrieve is called_ + +### New features + +#### Webhooks + +- Added support for webhooks. You can now register a webhook and use it to receive the processed document. diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py index 64dd9661..7a230d17 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py @@ -42,36 +42,27 @@ def __init__(self, settings: dict[str, Any]): self.config["version"] = settings.get(WhispererConfig.VERSION, "v2") LLMWhisperer._version = settings.get(WhispererConfig.VERSION, "v2") - V1_NAME = "LLMWhisperer" - V1_DESCRIPTION = "LLMWhisperer X2Text" - V1_ICON = "/icons/adapter-icons/LLMWhisperer.png" - V2_ID = "llmwhisperer|a5e6b8af-3e1f-4a80-b006-d017e8e67f93" - V2_NAME = "LLMWhisperer V2" - V2_DESCRIPTION = "LLMWhisperer V2 X2Text" - V2_ICON = "/icons/adapter-icons/LLMWhispererV2.png" + ID = "llmwhisperer|a5e6b8af-3e1f-4a80-b006-d017e8e67f93" + NAME = "LLMWhisperer V2" + DESCRIPTION = "LLMWhisperer V2 X2Text" + ICON = "/icons/adapter-icons/LLMWhispererV2.png" @staticmethod def get_id() -> str: - return "llmwhisperer|a5e6b8af-3e1f-4a80-b006-d017e8e67f93" - - @classmethod - def get_name(cls) -> str: - if cls._version == "v2": - return cls.V2_NAME - return cls.V1_NAME - - @classmethod - def get_description(cls) -> str: - if cls._version == "v2": - return cls.V2_DESCRIPTION - return cls.V1_DESCRIPTION - - @classmethod - def get_icon(cls) -> str: - if cls._version == "v2": - return cls.V2_ICON - return cls.V1_ICON + return LLMWhisperer.ID + + @staticmethod + def get_name() -> str: + return LLMWhisperer.NAME + + @staticmethod + def get_description() -> str: + return LLMWhisperer.DESCRIPTION + + @staticmethod + def get_icon() -> str: + return LLMWhisperer.ICON @staticmethod def get_json_schema() -> str: diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/static/json_schema.json b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/static/json_schema.json index d4bde9ea..d0316d59 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/static/json_schema.json +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/static/json_schema.json @@ -99,10 +99,63 @@ "description": "Specify a pattern to separate the pages in the document (e.g., <<< {{page_no}} >>>, <<< >>>). This pattern will be inserted at the end of every page. Omit {{page_no}} if you don't want to include the page number in the separator." } }, - "required": [ - "mode", - "output_mode" - ] + "if": { + "anyOf": [ + { + "properties": { + "mode": { + "const": "low_cost" + } + } + }, + { + "properties": { + "mode": { + "const": "high_quality" + } + } + }, + { + "properties": { + "mode": { + "const": "form" + } + } + } + ] + }, + "then": { + "properties": { + "median_filter_size": { + "type": "integer", + "title": "Median Filter Size", + "default": 0, + "description": "The size of the median filter to use for pre-processing the image during OCR based extraction. Useful to eliminate scanning artifacts and low quality JPEG artifacts. Default is 0 if the value is not explicitly set. Available only in the Enterprise version." + }, + "gaussian_blur_radius": { + "type": "number", + "title": "Gaussian Blur Radius", + "default": 0.0, + "description": "The radius of the gaussian blur to use for pre-processing the image during OCR based extraction. Useful to eliminate noise from the image. Default is 0.0 if the value is not explicitly set. Available only in the Enterprise version." + }, + "mark_vertical_lines": { + "type": "boolean", + "title": "Mark Vertical Lines", + "default": false, + "description": "Detect vertical lines in the document and replicate the same using text (using \"|\" symbol). Use this for displaying tables with borders." + }, + "mark_horizontal_lines": { + "type": "boolean", + "title": "Mark Horizontal Lines", + "default": false, + "description": "Detect horizontal lines in the document and replicate the same using text (using \"-\" symbol). Use this for displaying tables with borders and other horizontal serperators found in the document." + } + }, + "required": [ + "median_filter_size", + "gaussian_blur_radius" + ] + } } }, { @@ -168,6 +221,18 @@ "default": "<<<", "description": "Specify a pattern to separate the pages in the document. This pattern will be inserted at the end of every page (e.g., `<<< {{page_no}} >>>`, `<<< >>>`). Omit `{{page_no}}` if you don't want to include the page number in the separator." }, + "mark_vertical_lines": { + "type": "boolean", + "title": "Mark vertical lines", + "default": false, + "description": "States whether to reproduce vertical lines in the document." + }, + "mark_horizontal_lines": { + "type": "boolean", + "title": "Mark horizontal lines", + "default": false, + "description": "States whether to reproduce horizontal lines in the document." + }, "tag": { "type": "string", "title": "Tag", @@ -186,8 +251,39 @@ "default": "", "description": "Any metadata which should be sent to the webhook. This data is sent verbatim to the callback endpoint." } + }, + "if": { + "anyOf": [ + { + "properties": { + "mode": { + "const": "low_cost" + } + } + } + ] + }, + "then": { + "properties": { + "median_filter_size": { + "type": "integer", + "title": "Median Filter Size", + "default": 0, + "description": "The size of the median filter to use for pre-processing the image during OCR based extraction. Useful to eliminate scanning artifacts and low quality JPEG artifacts. Default is 0 if the value is not explicitly set. Available only in the Enterprise version." + }, + "gaussian_blur_radius": { + "type": "number", + "title": "Gaussian Blur Radius", + "default": 0.0, + "description": "The radius of the gaussian blur to use for pre-processing the image during OCR based extraction. Useful to eliminate noise from the image. Default is 0.0 if the value is not explicitly set. Available only in the Enterprise version." + } + }, + "required": [ + "median_filter_size", + "gaussian_blur_radius" + ] } } } ] -} +} \ No newline at end of file From 5243ab8e7151c922762941c447092fb73dab30b6 Mon Sep 17 00:00:00 2001 From: jagadeeswaran-zipstack Date: Mon, 13 Jan 2025 16:50:57 +0530 Subject: [PATCH 03/15] env seperation for v1 and v2 --- .../x2text/llm_whisperer/src/__init__.py | 2 +- .../x2text/llm_whisperer/src/constants.py | 4 + .../x2text/llm_whisperer/src/llm_whisperer.py | 4 +- .../x2text/llm_whisperer_v2/README.md | 58 --- .../x2text/llm_whisperer_v2/pyproject.toml | 25 -- .../x2text/llm_whisperer_v2/src/__init__.py | 9 - .../x2text/llm_whisperer_v2/src/constants.py | 107 ----- .../x2text/llm_whisperer_v2/src/helper.py | 388 ------------------ .../llm_whisperer_v2/src/llm_whisperer_v2.py | 93 ----- .../src/static/json_schema.json | 144 ------- 10 files changed, 7 insertions(+), 827 deletions(-) delete mode 100644 src/unstract/sdk/adapters/x2text/llm_whisperer_v2/README.md delete mode 100644 src/unstract/sdk/adapters/x2text/llm_whisperer_v2/pyproject.toml delete mode 100644 src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/__init__.py delete mode 100644 src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/constants.py delete mode 100644 src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/helper.py delete mode 100644 src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/llm_whisperer_v2.py delete mode 100644 src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/static/json_schema.json diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/__init__.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/__init__.py index ba216498..c4f02191 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/__init__.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/__init__.py @@ -2,7 +2,7 @@ metadata = { "name": LLMWhisperer.__name__, - "version": "1.0.0", + "version": "2.0.0", "adapter": LLMWhisperer, "description": "LLMWhisperer X2Text adapter", "is_active": True, diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py index 87b11a49..d0c60286 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py @@ -55,6 +55,8 @@ class WhispererEnv: POLL_INTERVAL = "ADAPTER_LLMW_POLL_INTERVAL" MAX_POLLS = "ADAPTER_LLMW_MAX_POLLS" + POLL_INTERVAL_V2 = "ADAPTER_LLMW_POLL_INTERVAL_V2" + MAX_POLLS_V2 = "ADAPTER_LLMW_MAX_POLLS_V2" STATUS_RETRIES = "ADAPTER_LLMW_STATUS_RETRIES" @@ -110,6 +112,8 @@ class WhispererDefaults: HORIZONTAL_STRETCH_FACTOR = 1.0 POLL_INTERVAL = int(os.getenv(WhispererEnv.POLL_INTERVAL, 30)) MAX_POLLS = int(os.getenv(WhispererEnv.MAX_POLLS, 30)) + POLL_INTERVAL_V2 = int(os.getenv(WhispererEnv.POLL_INTERVAL_V2, 30)) + MAX_POLLS_V2 = int(os.getenv(WhispererEnv.MAX_POLLS_V2, 30)) PAGES_TO_EXTRACT = "" ADD_LINE_NOS = True OUTPUT_JSON = True diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py index 7a230d17..59b61a1d 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py @@ -245,8 +245,8 @@ def _check_status_until_ready( WhisperStatus: Status of the extraction """ version = self.config['version'] - POLL_INTERVAL = WhispererDefaults.POLL_INTERVAL - MAX_POLLS = WhispererDefaults.MAX_POLLS + POLL_INTERVAL = WhispererDefaults.POLL_INTERVAL_V2 if version == "v2" else WhispererDefaults.POLL_INTERVAL + MAX_POLLS = WhispererDefaults.MAX_POLLS_V2 if version == "v2" else WhispererDefaults.MAX_POLLS STATUS_RETRY_THRESHOLD = WhispererDefaults.STATUS_RETRIES if version == "v2" else 0 status_retry_count = 0 request_count = 0 diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/README.md b/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/README.md deleted file mode 100644 index f33810b3..00000000 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Unstract LLMWWhisperer v2 X2Text Adapter - -## Env variables - -The below env variables are resolved by LLMWhisperer adapter - -| Variable | Description | -| ---------------------------- | -------------------------------------------------------------------------------------------- | -| `ADAPTER_LLMW_POLL_INTERVAL` | Time in seconds to wait before polling LLMWhisperer's status API. Defaults to 30s | -| `ADAPTER_LLMW_MAX_POLLS` | Total number of times to poll the status API. Defaults to 30 | - - ---- -id: llm_whisperer_apis_changelog ---- - -# Changelog - -## Version 2.0.0 - -:::warning -This version of the API is not backward compatible with the previous version. -::: - -### API endpoint - -- The base URL for the **V2** APIs is `https://llmwhisperer-api.unstract.com/api/v2` - -### Global change in parameter naming - -- All use of `whisper-hash` as a parameter has been replaced with `whisper_hash` for consistency. - -### Whisper parameters - -#### Added -- `mode` (str, optional): The processing mode. -- `mark_vertical_lines` (bool, optional): Whether to reproduce vertical lines in the document. -- `mark_horizontal_lines` (bool, optional): Whether to reproduce horizontal lines in the document. -- `line_splitter_strategy` (str, optional): The line splitter strategy to use. An advanced option for customizing the line splitting process. -- `lang` (str, optional): The language of the document. -- `tag` (str, optional): A tag to associate with the document. Used for auditing and tracking purposes. -- `file_name` (str, optional): The name of the file being processed. Used for auditing and tracking purposes. -- `use_webhook` (str, optional): The name of the webhook to call after the document is processed. -- `webhook_metadata` (str, optional): Metadata to send to the webhook after the document is processed. - -#### Removed -- `timeout` (int, optional): The timeout for API requests. *There is no sync mode now. All requests are async.* -- `force_text_processing` (bool, optional): Whether to force text processing. *This is feature is removed* -- `ocr_provider` (str, optional): The OCR provider to use. *This is superseded by `mode`* -- `processing_mode` (str, optional): The processing mode. *This is superseded by `mode`* -- `store_metadata_for_highlighting` (bool, optional): Whether to store metadata for highlighting. *Feature is removed. Data still available and set back when retrieve is called* - - -### New features - -#### Webhooks - -- Added support for webhooks. You can now register a webhook and use it to receive the processed document. diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/pyproject.toml b/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/pyproject.toml deleted file mode 100644 index bf7ad3a4..00000000 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/pyproject.toml +++ /dev/null @@ -1,25 +0,0 @@ -[build-system] -requires = ["pdm-backend"] -build-backend = "pdm.backend" - - -[project] -name = "unstract-llm_whisperer-x2text-v2" -version = "0.0.1" -description = "V2 of LLMWhisperer X2Text Adapter" -authors = [ - {name = "Zipstack Inc.", email = "devsupport@zipstack.com"}, -] -dependencies = [ -] -requires-python = ">=3.9" -readme = "README.md" -classifiers = [ - "Programming Language :: Python" -] -license = {text = "MIT"} - -[tool.pdm.build] -includes = ["src"] -package-dir = "src" -# source-includes = ["tests"] diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/__init__.py b/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/__init__.py deleted file mode 100644 index 14240c6a..00000000 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from .llm_whisperer_v2 import LLMWhispererV2 - -metadata = { - "name": LLMWhispererV2.__name__, - "version": "1.0.0", - "adapter": LLMWhispererV2, - "description": "LLMWhispererV2 X2Text adapter", - "is_active": True, -} diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/constants.py b/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/constants.py deleted file mode 100644 index 7e2d7dcf..00000000 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/constants.py +++ /dev/null @@ -1,107 +0,0 @@ -import os -from enum import Enum - - -class Modes(Enum): - NATIVE_TEXT = "native_text" - LOW_COST = "low_cost" - HIGH_QUALITY = "high_quality" - FORM = "form" - - -class OutputModes(Enum): - LAYOUT_PRESERVING = "layout_preserving" - TEXT = "text" - - -class HTTPMethod(Enum): - GET = "GET" - POST = "POST" - - -class WhispererHeader: - UNSTRACT_KEY = "unstract-key" - - -class WhispererEndpoint: - """Endpoints available at LLMWhisperer service.""" - - TEST_CONNECTION = "test-connection" - WHISPER = "whisper" - STATUS = "whisper-status" - RETRIEVE = "whisper-retrieve" - - -class WhispererEnv: - """Env variables for LLMWhisperer. - - Can be used to alter behaviour at runtime. - - Attributes: - POLL_INTERVAL: Time in seconds to wait before polling - LLMWhisperer's status API. Defaults to 30s - MAX_POLLS: Total number of times to poll the status API. - Set to -1 to poll indefinitely. Defaults to -1 - STATUS_RETRIES: Number of times to retry calling LLLMWhisperer's status API - on failure during polling. Defaults to 5. - """ - - POLL_INTERVAL = "ADAPTER_LLMW_POLL_INTERVAL" - MAX_POLLS = "ADAPTER_LLMW_MAX_POLLS" - STATUS_RETRIES = "ADAPTER_LLMW_STATUS_RETRIES" - - -class WhispererConfig: - """Dictionary keys used to configure LLMWhisperer service.""" - - URL = "url" - MODE = "mode" - OUTPUT_MODE = "output_mode" - UNSTRACT_KEY = "unstract_key" - MEDIAN_FILTER_SIZE = "median_filter_size" - GAUSSIAN_BLUR_RADIUS = "gaussian_blur_radius" - LINE_SPLITTER_TOLERANCE = "line_splitter_tolerance" - LINE_SPLITTER_STRATEGY = "line_splitter_strategy" - HORIZONTAL_STRETCH_FACTOR = "horizontal_stretch_factor" - PAGES_TO_EXTRACT = "pages_to_extract" - MARK_VERTICAL_LINES = "mark_vertical_lines" - MARK_HORIZONTAL_LINES = "mark_horizontal_lines" - PAGE_SEPARATOR = "page_seperator" - URL_IN_POST = "url_in_post" - TAG = "tag" - USE_WEBHOOK = "use_webhook" - WEBHOOK_METADATA = "webhook_metadata" - TEXT_ONLY = "text_only" - - -class WhisperStatus: - """Values returned / used by /whisper-status endpoint.""" - - PROCESSING = "processing" - PROCESSED = "processed" - DELIVERED = "delivered" - UNKNOWN = "unknown" - # Used for async processing - WHISPER_HASH = "whisper_hash" - STATUS = "status" - - -class WhispererDefaults: - """Defaults meant for LLMWhisperer.""" - - MEDIAN_FILTER_SIZE = 0 - GAUSSIAN_BLUR_RADIUS = 0.0 - FORCE_TEXT_PROCESSING = False - LINE_SPLITTER_TOLERANCE = 0.75 - LINE_SPLITTER_STRATEGY = "left-priority" - HORIZONTAL_STRETCH_FACTOR = 1.0 - POLL_INTERVAL = int(os.getenv(WhispererEnv.POLL_INTERVAL, 30)) - MAX_POLLS = int(os.getenv(WhispererEnv.MAX_POLLS, 30)) - STATUS_RETRIES = int(os.getenv(WhispererEnv.STATUS_RETRIES, 5)) - PAGES_TO_EXTRACT = "" - PAGE_SEPARATOR = "<<<" - MARK_VERTICAL_LINES = False - MARK_HORIZONTAL_LINES = False - URL_IN_POST = False - TAG = "default" - TEXT_ONLY = False diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/helper.py b/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/helper.py deleted file mode 100644 index dfea856c..00000000 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/helper.py +++ /dev/null @@ -1,388 +0,0 @@ -import json -import logging -import time -from pathlib import Path -from typing import Any, Optional - -import requests -from requests import Response -from requests.exceptions import ConnectionError, HTTPError, Timeout - -from unstract.sdk.adapters.exceptions import ExtractorError -from unstract.sdk.adapters.utils import AdapterUtils -from unstract.sdk.adapters.x2text.llm_whisperer_v2.src.constants import ( - HTTPMethod, - Modes, - OutputModes, - WhispererConfig, - WhispererDefaults, - WhispererEndpoint, - WhispererHeader, - WhisperStatus, -) -from unstract.sdk.constants import MimeType -from unstract.sdk.file_storage import FileStorage, FileStorageProvider - -logger = logging.getLogger(__name__) - - -class LLMWhispererHelper: - @staticmethod - def get_request_headers(config: dict[str, Any]) -> dict[str, Any]: - """Obtains the request headers to authenticate with LLMWhisperer. - - Returns: - str: Request headers - """ - return { - "accept": MimeType.JSON, - WhispererHeader.UNSTRACT_KEY: config.get(WhispererConfig.UNSTRACT_KEY), - } - - @staticmethod - def make_request( - config: dict[str, Any], - request_method: HTTPMethod, - request_endpoint: str, - headers: Optional[dict[str, Any]] = None, - params: Optional[dict[str, Any]] = None, - data: Optional[Any] = None, - ) -> Response: - """Makes a request to LLMWhisperer service. - - Args: - request_method (HTTPMethod): HTTPMethod to call. Can be GET or POST - request_endpoint (str): LLMWhisperer endpoint to hit - headers (Optional[dict[str, Any]], optional): Headers to pass. - Defaults to None. - params (Optional[dict[str, Any]], optional): Query params to pass. - Defaults to None. - data (Optional[Any], optional): Data to pass in case of POST. - Defaults to None. - - Returns: - Response: Response from the request - """ - llm_whisperer_svc_url = ( - f"{config.get(WhispererConfig.URL)}" f"/api/v2/{request_endpoint}" - ) - if not headers: - headers = LLMWhispererHelper.get_request_headers(config=config) - - try: - response: Response - if request_method == HTTPMethod.GET: - response = requests.get( - url=llm_whisperer_svc_url, headers=headers, params=params - ) - elif request_method == HTTPMethod.POST: - response = requests.post( - url=llm_whisperer_svc_url, - headers=headers, - params=params, - data=data, - ) - else: - raise ExtractorError( - f"Unsupported request method: {request_method}", status_code=500 - ) - response.raise_for_status() - except ConnectionError as e: - logger.error(f"Adapter error: {e}") - raise ExtractorError( - "Unable to connect to LLMWhisperer service, please check the URL", - actual_err=e, - status_code=503, - ) - except Timeout as e: - msg = "Request to LLMWhisperer has timed out" - logger.error(f"{msg}: {e}") - raise ExtractorError(msg, actual_err=e, status_code=504) - except HTTPError as e: - logger.error(f"Adapter error: {e}") - default_err = "Error while calling the LLMWhisperer service" - msg = AdapterUtils.get_msg_from_request_exc( - err=e, message_key="message", default_err=default_err - ) - raise ExtractorError(msg) - return response - - @staticmethod - def get_whisperer_params(config: dict[str, Any]) -> dict[str, Any]: - """Gets query params meant for /whisper endpoint. - - The params is filled based on the configuration passed. - - Returns: - dict[str, Any]: Query params - """ - params = { - WhispererConfig.MODE: config.get(WhispererConfig.MODE, Modes.FORM.value), - WhispererConfig.OUTPUT_MODE: config.get( - WhispererConfig.OUTPUT_MODE, OutputModes.LAYOUT_PRESERVING.value - ), - WhispererConfig.LINE_SPLITTER_TOLERANCE: config.get( - WhispererConfig.LINE_SPLITTER_TOLERANCE, - WhispererDefaults.LINE_SPLITTER_TOLERANCE, - ), - WhispererConfig.LINE_SPLITTER_STRATEGY: config.get( - WhispererConfig.LINE_SPLITTER_STRATEGY, - WhispererDefaults.LINE_SPLITTER_STRATEGY, - ), - WhispererConfig.HORIZONTAL_STRETCH_FACTOR: config.get( - WhispererConfig.HORIZONTAL_STRETCH_FACTOR, - WhispererDefaults.HORIZONTAL_STRETCH_FACTOR, - ), - WhispererConfig.PAGES_TO_EXTRACT: config.get( - WhispererConfig.PAGES_TO_EXTRACT, - WhispererDefaults.PAGES_TO_EXTRACT, - ), - WhispererConfig.MARK_VERTICAL_LINES: config.get( - WhispererConfig.MARK_VERTICAL_LINES, - WhispererDefaults.MARK_VERTICAL_LINES, - ), - WhispererConfig.MARK_HORIZONTAL_LINES: config.get( - WhispererConfig.MARK_HORIZONTAL_LINES, - WhispererDefaults.MARK_HORIZONTAL_LINES, - ), - WhispererConfig.URL_IN_POST: WhispererDefaults.URL_IN_POST, - WhispererConfig.PAGE_SEPARATOR: config.get( - WhispererConfig.PAGE_SEPARATOR, - WhispererDefaults.PAGE_SEPARATOR, - ), - # Not providing default value to maintain legacy compatablity - # these are optional params and identifiers for audit - WhispererConfig.TAG: config.get( - WhispererConfig.TAG, - WhispererDefaults.TAG, - ), - WhispererConfig.USE_WEBHOOK: config.get(WhispererConfig.USE_WEBHOOK), - WhispererConfig.WEBHOOK_METADATA: config.get( - WhispererConfig.WEBHOOK_METADATA - ), - } - if params[WhispererConfig.MODE] == Modes.LOW_COST.value: - params.update( - { - WhispererConfig.MEDIAN_FILTER_SIZE: config.get( - WhispererConfig.MEDIAN_FILTER_SIZE, - WhispererDefaults.MEDIAN_FILTER_SIZE, - ), - WhispererConfig.GAUSSIAN_BLUR_RADIUS: config.get( - WhispererConfig.GAUSSIAN_BLUR_RADIUS, - WhispererDefaults.GAUSSIAN_BLUR_RADIUS, - ), - } - ) - return params - - @staticmethod - def check_status_until_ready( - config: dict[str, Any], - whisper_hash: str, - headers: dict[str, Any], - params: dict[str, Any], - ) -> WhisperStatus: - """Checks the extraction status by polling. - - Polls the /whisper-status endpoint in fixed intervals of - env: ADAPTER_LLMW_POLL_INTERVAL for a certain number of times - controlled by env: ADAPTER_LLMW_MAX_POLLS. - - Args: - whisper_hash (str): Identifier for the extraction, - returned by LLMWhisperer - headers (dict[str, Any]): Headers to pass for the status check - params (dict[str, Any]): Params to pass for the status check - - Returns: - WhisperStatus: Status of the extraction - """ - POLL_INTERVAL = WhispererDefaults.POLL_INTERVAL - MAX_POLLS = WhispererDefaults.MAX_POLLS - STATUS_RETRY_THRESHOLD = WhispererDefaults.STATUS_RETRIES - status_retry_count = 0 - request_count = 0 - - # Check status in fixed intervals upto max poll count. - while True: - request_count += 1 - logger.info( - f"Checking status for whisper-hash '{whisper_hash}' with interval: " - f"{POLL_INTERVAL}s, request count: {request_count} [max: {MAX_POLLS}]" - ) - status_response = LLMWhispererHelper.make_request( - config=config, - request_method=HTTPMethod.GET, - request_endpoint=WhispererEndpoint.STATUS, - headers=headers, - params=params, - ) - if status_response.status_code == 200: - status_data = status_response.json() - status = status_data.get(WhisperStatus.STATUS, WhisperStatus.UNKNOWN) - logger.info(f"Whisper status for '{whisper_hash}': {status}") - if status in [WhisperStatus.PROCESSED, WhisperStatus.DELIVERED]: - break - else: - if status_retry_count >= STATUS_RETRY_THRESHOLD: - raise ExtractorError( - f"Error checking LLMWhisperer status for whisper-hash " - f"'{whisper_hash}': {status_response.text}" - ) - else: - status_retry_count += 1 - logger.warning( - f"Whisper status for '{whisper_hash}' failed " - f"{status_retry_count} time(s), retrying... " - f"[threshold: {STATUS_RETRY_THRESHOLD}]: {status_response.text}" - ) - - # Exit with error if max poll count is reached - if request_count >= MAX_POLLS: - raise ExtractorError( - f"Unable to extract text for whisper-hash '{whisper_hash}' " - f"after attempting {request_count} times" - ) - time.sleep(POLL_INTERVAL) - - return status - - @staticmethod - def extract_async(config: dict[str, Any], whisper_hash: str) -> dict[Any, Any]: - """Makes an async extraction with LLMWhisperer. - - Polls and checks the status first before proceeding to retrieve once. - - Args: - whisper_hash (str): Identifier of the extraction - - Returns: - str: Extracted contents from the file - """ - logger.info(f"Extracting async for whisper hash: {whisper_hash}") - - headers: dict[str, Any] = LLMWhispererHelper.get_request_headers(config) - params = { - WhisperStatus.WHISPER_HASH: whisper_hash, - WhispererConfig.TEXT_ONLY: WhispererDefaults.TEXT_ONLY, - } - - # Polls in fixed intervals and checks status - LLMWhispererHelper.check_status_until_ready( - config=config, whisper_hash=whisper_hash, headers=headers, params=params - ) - - retrieve_response = LLMWhispererHelper.make_request( - config=config, - request_method=HTTPMethod.GET, - request_endpoint=WhispererEndpoint.RETRIEVE, - headers=headers, - params=params, - ) - if retrieve_response.status_code == 200: - return retrieve_response.json() - else: - raise ExtractorError( - "Error retrieving from LLMWhisperer: " - f"{retrieve_response.status_code} - {retrieve_response.text}" - ) - - @staticmethod - def send_whisper_request( - input_file_path: str, - config: dict[str, Any], - fs: FileStorage = FileStorage(provider=FileStorageProvider.LOCAL), - ) -> requests.Response: - headers = LLMWhispererHelper.get_request_headers(config) - headers["Content-Type"] = "application/octet-stream" - params = LLMWhispererHelper.get_whisperer_params(config) - - response: requests.Response - try: - input_file_data = fs.read(input_file_path, "rb") - response = LLMWhispererHelper.make_request( - config=config, - request_method=HTTPMethod.POST, - request_endpoint=WhispererEndpoint.WHISPER, - headers=headers, - params=params, - data=input_file_data, - ) - except OSError as e: - logger.error(f"OS error while reading {input_file_path}: {e}") - raise ExtractorError(str(e)) - return response - - @staticmethod - def extract_text_from_response( - config: dict[str, Any], - output_file_path: Optional[str], - response_dict: dict[str, Any], - response: Response, - fs: FileStorage = FileStorage(provider=FileStorageProvider.LOCAL), - ) -> str: - output_json = {} - if response.status_code == 200: - output_json = response.json() - elif response.status_code == 202: - whisper_hash = response_dict.get(WhisperStatus.WHISPER_HASH) - output_json = LLMWhispererHelper.extract_async( - config=config, whisper_hash=whisper_hash - ) - else: - raise ExtractorError("Couldn't extract text from file") - if output_file_path: - LLMWhispererHelper.write_output_to_file( - output_json=output_json, - output_file_path=Path(output_file_path), - fs=fs, - ) - return output_json.get("result_text", "") - - @staticmethod - def write_output_to_file( - output_json: dict, - output_file_path: Path, - fs: FileStorage = FileStorage(provider=FileStorageProvider.LOCAL), - ) -> None: - """Writes the extracted text and metadata to the specified output file - and metadata file. - - Args: - output_json (dict): The dictionary containing the extracted data, - with "text" as the key for the main content. - output_file_path (Path): The file path where the extracted text - should be written. - - Raises: - ExtractorError: If there is an error while writing the output file. - """ - try: - text_output = output_json.get("result_text", "") - logger.info(f"Writing output to {output_file_path}") - fs.write( - path=output_file_path, mode="w", data=text_output, encoding="utf-8" - ) - except Exception as e: - logger.error(f"Error while writing {output_file_path}: {e}") - raise ExtractorError(str(e)) - try: - # Define the directory of the output file and metadata paths - output_dir = output_file_path.parent - metadata_dir = output_dir / "metadata" - metadata_file_name = output_file_path.with_suffix(".json").name - metadata_file_path = metadata_dir / metadata_file_name - # Ensure the metadata directory exists - fs.mkdir(create_parents=True, path=metadata_dir) - # Remove the "result_text" key from the metadata - metadata = { - key: value for key, value in output_json.items() if key != "result_text" - } - metadata_json = json.dumps(metadata, ensure_ascii=False, indent=4) - logger.info(f"Writing metadata to {metadata_file_path}") - fs.write( - path=metadata_file_path, mode="w", data=metadata_json, encoding="utf-8" - ) - except Exception as e: - logger.warn(f"Error while writing metadata to {metadata_file_path}: {e}") diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/llm_whisperer_v2.py b/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/llm_whisperer_v2.py deleted file mode 100644 index 94d6b246..00000000 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/llm_whisperer_v2.py +++ /dev/null @@ -1,93 +0,0 @@ -import json -import logging -import os -from typing import Any, Optional - -import requests - -from unstract.sdk.adapters.x2text.constants import X2TextConstants -from unstract.sdk.adapters.x2text.dto import ( - TextExtractionMetadata, - TextExtractionResult, -) -from unstract.sdk.adapters.x2text.llm_whisperer_v2.src.constants import ( - HTTPMethod, - WhispererEndpoint, -) -from unstract.sdk.adapters.x2text.llm_whisperer_v2.src.helper import LLMWhispererHelper -from unstract.sdk.adapters.x2text.x2text_adapter import X2TextAdapter -from unstract.sdk.file_storage import FileStorage, FileStorageProvider - -logger = logging.getLogger(__name__) - - -class LLMWhispererV2(X2TextAdapter): - def __init__(self, settings: dict[str, Any]): - super().__init__("LLMWhispererV2") - self.config = settings - - @staticmethod - def get_id() -> str: - return "llmwhisperer|a5e6b8af-3e1f-4a80-b006-d017e8e67f93" - - @staticmethod - def get_name() -> str: - return "LLMWhisperer V2" - - @staticmethod - def get_description() -> str: - return "LLMWhisperer V2 X2Text" - - @staticmethod - def get_icon() -> str: - return "/icons/adapter-icons/LLMWhispererV2.png" - - @staticmethod - def get_json_schema() -> str: - f = open(f"{os.path.dirname(__file__)}/static/json_schema.json") - schema = f.read() - f.close() - return schema - - def test_connection(self) -> bool: - LLMWhispererHelper.make_request( - config=self.config, - request_method=HTTPMethod.GET, - request_endpoint=WhispererEndpoint.TEST_CONNECTION, - ) - return True - - def process( - self, - input_file_path: str, - output_file_path: Optional[str] = None, - fs: FileStorage = FileStorage(provider=FileStorageProvider.LOCAL), - **kwargs: dict[Any, Any], - ) -> TextExtractionResult: - """Used to extract text from documents. - - Args: - input_file_path (str): Path to file that needs to be extracted - output_file_path (Optional[str], optional): File path to write - extracted text into, if None doesn't write to a file. - Defaults to None. - - Returns: - str: Extracted text - """ - - response: requests.Response = LLMWhispererHelper.send_whisper_request( - input_file_path, self.config, fs=fs - ) - response_text = response.text - reponse_dict = json.loads(response_text) - metadata = TextExtractionMetadata( - whisper_hash=reponse_dict.get(X2TextConstants.WHISPER_HASH_V2, "") - ) - - return TextExtractionResult( - extracted_text=LLMWhispererHelper.extract_text_from_response( - self.config, output_file_path, reponse_dict, response, fs=fs - ), - extraction_metadata=metadata, - ) diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/static/json_schema.json b/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/static/json_schema.json deleted file mode 100644 index b2a62c4b..00000000 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/static/json_schema.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "title": "LLMWhisperer v2 Text Extractor", - "type": "object", - "required": [ - "adapter_name", - "unstract_key", - "url" - ], - "properties": { - "adapter_name": { - "type": "string", - "title": "Name", - "default": "llm-whisperer-v2", - "description": "Provide a unique name for this adapter instance. Example: LLMWhisperer 1" - }, - "url": { - "type": "string", - "title": "URL", - "format": "uri", - "default": "https://llmwhisperer-api.us-central.unstract.com", - "description": "Provide the base URL of the LLMWhisperer service based on your region, can be obtained from the [Unstract developer portal](https://us-central.unstract.com/landing?selectedProduct=llm-whisperer)." - }, - "unstract_key": { - "type": "string", - "title": "Unstract Key", - "format": "password", - "description": "API key obtained from the [Unstract developer portal](https://us-central.unstract.com/landing?selectedProduct=llm-whisperer)" - }, - "mode": { - "type": "string", - "title": "Mode", - "enum": [ - "native_text", - "low_cost", - "high_quality", - "form" - ], - "default": "form", - "description": "Processing mode to use, described in the [LLMWhisperer documentation](https://docs.unstract.com/llmwhisperer/llm_whisperer/apis/llm_whisperer_text_extraction_api/#modes)." - }, - "output_mode": { - "type": "string", - "title": "Output Mode", - "enum": [ - "layout_preserving", - "text" - ], - "default": "layout_preserving", - "description": "Output format, described in the [LLMWhisperer documentation](https://docs.unstract.com/llmwhisperer/llm_whisperer/apis/llm_whisperer_text_extraction_api/#output-modes)" - }, - "line_splitter_tolerance": { - "type": "number", - "title": "Line Splitter Tolerance", - "default": 0.4, - "description": "Factor to decide when to move text to the next line when it is above or below the baseline. The default value of 0.4 signifies 40% of the average character height" - }, - "line_splitter_strategy": { - "type": "string", - "title": "Line Splitter Strategy", - "default":"left-priority", - "description": "An advanced option for customizing the line splitting process." - }, - "horizontal_stretch_factor": { - "type": "number", - "title": "Horizontal Stretch Factor", - "default": 1.0, - "description": "Increase this value to stretch text horizontally, decrease to compress text horizontally. Useful when multi column text merge with each other." - }, - "pages_to_extract": { - "type": "string", - "title": "Page number(s) or range to extract", - "default": "", - "pattern": "^(\\s*\\d+-\\d+|\\s*\\d+-|\\s*\\d+|^$)(,\\d+-\\d+|,\\d+-|,\\d+)*$", - "description": "Specify the range of pages to extract (e.g., 1-5, 7, 10-12, 50-). Leave it empty to extract all pages." - }, - "page_seperator": { - "type": "string", - "title": "Page separator", - "default": "<<<", - "description": "Specify a pattern to separate the pages in the document. This pattern will be inserted at the end of every page (e.g., `<<< {{page_no}} >>>`, `<<< >>>`). Omit `{{page_no}}` if you don't want to include the page number in the separator." - }, - "mark_vertical_lines": { - "type": "boolean", - "title": "Mark vertical lines", - "default": false, - "description": "States whether to reproduce vertical lines in the document." - }, - "mark_horizontal_lines": { - "type": "boolean", - "title": "Mark horizontal lines", - "default": false, - "description": "States whether to reproduce horizontal lines in the document." - }, - "tag": { - "type": "string", - "title": "Tag", - "default": "default", - "description": "Auditing feature. Set a value which will be associated with the invocation of the adapter. This can be used for cross referencing in usage reports." - }, - "use_webhook": { - "type": "string", - "title": "Webhook", - "default": "", - "description": "The webhook's name which will should be called after the conversion is complete. The name should have been registered earlier using the webhooks management endpoint" - }, - "webhook_metadata": { - "type": "string", - "title": "Webhook Metadata", - "default": "", - "description": "Any metadata which should be sent to the webhook. This data is sent verbatim to the callback endpoint." - } - }, - "if": { - "anyOf": [ - { - "properties": { - "mode": { - "const": "low_cost" - } - } - } - ] - }, - "then": { - "properties": { - "median_filter_size": { - "type": "integer", - "title": "Median Filter Size", - "default": 0, - "description": "The size of the median filter to use for pre-processing the image during OCR based extraction. Useful to eliminate scanning artifacts and low quality JPEG artifacts. Default is 0 if the value is not explicitly set. Available only in the Enterprise version." - }, - "gaussian_blur_radius": { - "type": "number", - "title": "Gaussian Blur Radius", - "default": 0.0, - "description": "The radius of the gaussian blur to use for pre-processing the image during OCR based extraction. Useful to eliminate noise from the image. Default is 0.0 if the value is not explicitly set. Available only in the Enterprise version." - } - }, - "required": [ - "median_filter_size", - "gaussian_blur_radius" - ] - } -} From 4f235a5a9a109e79a1f72259c63662cc50ce3714 Mon Sep 17 00:00:00 2001 From: jagadeeswaran-zipstack Date: Mon, 13 Jan 2025 16:58:50 +0530 Subject: [PATCH 04/15] reverting version updated in init file --- src/unstract/sdk/adapters/x2text/llm_whisperer/src/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/__init__.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/__init__.py index c4f02191..ba216498 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/__init__.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/__init__.py @@ -2,7 +2,7 @@ metadata = { "name": LLMWhisperer.__name__, - "version": "2.0.0", + "version": "1.0.0", "adapter": LLMWhisperer, "description": "LLMWhisperer X2Text adapter", "is_active": True, From 8ab74471e1da4e7c7c45f9ca6222fc97a55dd950 Mon Sep 17 00:00:00 2001 From: jagadeeswaran-zipstack Date: Thu, 16 Jan 2025 10:22:54 +0530 Subject: [PATCH 05/15] adapter name change --- .../sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py index 59b61a1d..9f3d862e 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py @@ -44,8 +44,8 @@ def __init__(self, settings: dict[str, Any]): ID = "llmwhisperer|a5e6b8af-3e1f-4a80-b006-d017e8e67f93" - NAME = "LLMWhisperer V2" - DESCRIPTION = "LLMWhisperer V2 X2Text" + NAME = "LLMWhisperer" + DESCRIPTION = "LLMWhisperer X2Text" ICON = "/icons/adapter-icons/LLMWhispererV2.png" @staticmethod From 649f586a2cb97e6c6e2497a62410c1eff01f372c Mon Sep 17 00:00:00 2001 From: jagadeeswaran-zipstack Date: Sat, 25 Jan 2025 19:19:19 +0530 Subject: [PATCH 06/15] merge main --- pdm.lock | 1996 ++++++++--------- pyproject.toml | 49 +- src/unstract/sdk/__init__.py | 2 +- src/unstract/sdk/adapters/llm/exceptions.py | 4 +- .../sdk/adapters/llm/mistral/src/mistral.py | 4 +- src/unstract/sdk/adapters/x2text/constants.py | 1 + src/unstract/sdk/adapters/x2text/helper.py | 2 +- .../x2text/llama_parse/src/llama_parse.py | 2 +- .../llm_whisperer/src/static/json_schema.json | 4 +- .../x2text/llm_whisperer_v2/src/dto.py | 20 + src/unstract/sdk/constants.py | 9 + src/unstract/sdk/file_storage/impl.py | 19 + src/unstract/sdk/file_storage/interface.py | 4 + src/unstract/sdk/index.py | 14 +- src/unstract/sdk/tool/base.py | 10 +- tests/test_file_storage.py | 69 + 16 files changed, 1102 insertions(+), 1107 deletions(-) create mode 100644 src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/dto.py diff --git a/pdm.lock b/pdm.lock index d7c7857a..cd1caa49 100644 --- a/pdm.lock +++ b/pdm.lock @@ -3,25 +3,29 @@ [metadata] groups = ["default", "docs", "lint", "test"] -strategy = ["cross_platform", "inherit_metadata"] -lock_version = "4.4.2" -content_hash = "sha256:68912926d0675ccf13de8f59a6aaeb7c2c0df80fcf9d7c5249ea1f7325a44171" +strategy = ["inherit_metadata"] +lock_version = "4.5.0" +content_hash = "sha256:59ecf065654780ad472ba3d22e0e468bf53c4c6d3f28def5ebdc0cae0054274a" + +[[metadata.targets]] +requires_python = ">=3.10,<3.11.1" [[package]] name = "aiobotocore" -version = "2.15.2" +version = "2.16.1" requires_python = ">=3.8" summary = "Async client for aws services using botocore and aiohttp" groups = ["test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "aiohttp<4.0.0,>=3.9.2", "aioitertools<1.0.0,>=0.5.1", - "botocore<1.35.37,>=1.35.16", + "botocore<1.35.89,>=1.35.74", "wrapt<2.0.0,>=1.10.10", ] files = [ - {file = "aiobotocore-2.15.2-py3-none-any.whl", hash = "sha256:d4d3128b4b558e2b4c369bfa963b022d7e87303adb82eec623cec8aa77ae578a"}, - {file = "aiobotocore-2.15.2.tar.gz", hash = "sha256:9ac1cfcaccccc80602968174aa032bf978abe36bd4e55e6781d6500909af1375"}, + {file = "aiobotocore-2.16.1-py3-none-any.whl", hash = "sha256:e7cf6295471224c82a111deaf31c2c3a4bcd6dbd6973e75c7fc4739fcccd5b0b"}, + {file = "aiobotocore-2.16.1.tar.gz", hash = "sha256:0f94904c6a1d14d5aac0502fcc1d721b95ee60d46d8a0e546f6203de0410d522"}, ] [[package]] @@ -30,6 +34,7 @@ version = "2.4.4" requires_python = ">=3.8" summary = "Happy Eyeballs for asyncio" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8"}, {file = "aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"}, @@ -37,10 +42,11 @@ files = [ [[package]] name = "aiohttp" -version = "3.11.10" +version = "3.11.11" requires_python = ">=3.9" summary = "Async http client/server framework (asyncio)" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "aiohappyeyeballs>=2.3.0", "aiosignal>=1.1.2", @@ -52,52 +58,37 @@ dependencies = [ "yarl<2.0,>=1.17.0", ] files = [ - {file = "aiohttp-3.11.10-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cbad88a61fa743c5d283ad501b01c153820734118b65aee2bd7dbb735475ce0d"}, - {file = "aiohttp-3.11.10-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:80886dac673ceaef499de2f393fc80bb4481a129e6cb29e624a12e3296cc088f"}, - {file = "aiohttp-3.11.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:61b9bae80ed1f338c42f57c16918853dc51775fb5cb61da70d590de14d8b5fb4"}, - {file = "aiohttp-3.11.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9e2e576caec5c6a6b93f41626c9c02fc87cd91538b81a3670b2e04452a63def6"}, - {file = "aiohttp-3.11.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02c13415b5732fb6ee7ff64583a5e6ed1c57aa68f17d2bda79c04888dfdc2769"}, - {file = "aiohttp-3.11.10-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4cfce37f31f20800a6a6620ce2cdd6737b82e42e06e6e9bd1b36f546feb3c44f"}, - {file = "aiohttp-3.11.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3bbbfff4c679c64e6e23cb213f57cc2c9165c9a65d63717108a644eb5a7398df"}, - {file = "aiohttp-3.11.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49c7dbbc1a559ae14fc48387a115b7d4bbc84b4a2c3b9299c31696953c2a5219"}, - {file = "aiohttp-3.11.10-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:68386d78743e6570f054fe7949d6cb37ef2b672b4d3405ce91fafa996f7d9b4d"}, - {file = "aiohttp-3.11.10-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:9ef405356ba989fb57f84cac66f7b0260772836191ccefbb987f414bcd2979d9"}, - {file = "aiohttp-3.11.10-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5d6958671b296febe7f5f859bea581a21c1d05430d1bbdcf2b393599b1cdce77"}, - {file = "aiohttp-3.11.10-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:99b7920e7165be5a9e9a3a7f1b680f06f68ff0d0328ff4079e5163990d046767"}, - {file = "aiohttp-3.11.10-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0dc49f42422163efb7e6f1df2636fe3db72713f6cd94688e339dbe33fe06d61d"}, - {file = "aiohttp-3.11.10-cp310-cp310-win32.whl", hash = "sha256:40d1c7a7f750b5648642586ba7206999650208dbe5afbcc5284bcec6579c9b91"}, - {file = "aiohttp-3.11.10-cp310-cp310-win_amd64.whl", hash = "sha256:68ff6f48b51bd78ea92b31079817aff539f6c8fc80b6b8d6ca347d7c02384e33"}, - {file = "aiohttp-3.11.10-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:77c4aa15a89847b9891abf97f3d4048f3c2d667e00f8a623c89ad2dccee6771b"}, - {file = "aiohttp-3.11.10-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:909af95a72cedbefe5596f0bdf3055740f96c1a4baa0dd11fd74ca4de0b4e3f1"}, - {file = "aiohttp-3.11.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:386fbe79863eb564e9f3615b959e28b222259da0c48fd1be5929ac838bc65683"}, - {file = "aiohttp-3.11.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3de34936eb1a647aa919655ff8d38b618e9f6b7f250cc19a57a4bf7fd2062b6d"}, - {file = "aiohttp-3.11.10-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c9527819b29cd2b9f52033e7fb9ff08073df49b4799c89cb5754624ecd98299"}, - {file = "aiohttp-3.11.10-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65a96e3e03300b41f261bbfd40dfdbf1c301e87eab7cd61c054b1f2e7c89b9e8"}, - {file = "aiohttp-3.11.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98f5635f7b74bcd4f6f72fcd85bea2154b323a9f05226a80bc7398d0c90763b0"}, - {file = "aiohttp-3.11.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:03b6002e20938fc6ee0918c81d9e776bebccc84690e2b03ed132331cca065ee5"}, - {file = "aiohttp-3.11.10-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6362cc6c23c08d18ddbf0e8c4d5159b5df74fea1a5278ff4f2c79aed3f4e9f46"}, - {file = "aiohttp-3.11.10-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3691ed7726fef54e928fe26344d930c0c8575bc968c3e239c2e1a04bd8cf7838"}, - {file = "aiohttp-3.11.10-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31d5093d3acd02b31c649d3a69bb072d539d4c7659b87caa4f6d2bcf57c2fa2b"}, - {file = "aiohttp-3.11.10-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:8b3cf2dc0f0690a33f2d2b2cb15db87a65f1c609f53c37e226f84edb08d10f52"}, - {file = "aiohttp-3.11.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:fbbaea811a2bba171197b08eea288b9402faa2bab2ba0858eecdd0a4105753a3"}, - {file = "aiohttp-3.11.10-cp311-cp311-win32.whl", hash = "sha256:4b2c7ac59c5698a7a8207ba72d9e9c15b0fc484a560be0788b31312c2c5504e4"}, - {file = "aiohttp-3.11.10-cp311-cp311-win_amd64.whl", hash = "sha256:974d3a2cce5fcfa32f06b13ccc8f20c6ad9c51802bb7f829eae8a1845c4019ec"}, - {file = "aiohttp-3.11.10-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0580f2e12de2138f34debcd5d88894786453a76e98febaf3e8fe5db62d01c9bf"}, - {file = "aiohttp-3.11.10-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a55d2ad345684e7c3dd2c20d2f9572e9e1d5446d57200ff630e6ede7612e307f"}, - {file = "aiohttp-3.11.10-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:04814571cb72d65a6899db6099e377ed00710bf2e3eafd2985166f2918beaf59"}, - {file = "aiohttp-3.11.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e44a9a3c053b90c6f09b1bb4edd880959f5328cf63052503f892c41ea786d99f"}, - {file = "aiohttp-3.11.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:502a1464ccbc800b4b1995b302efaf426e8763fadf185e933c2931df7db9a199"}, - {file = "aiohttp-3.11.10-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:613e5169f8ae77b1933e42e418a95931fb4867b2991fc311430b15901ed67079"}, - {file = "aiohttp-3.11.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cca22a61b7fe45da8fc73c3443150c3608750bbe27641fc7558ec5117b27fdf"}, - {file = "aiohttp-3.11.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:86a5dfcc39309470bd7b68c591d84056d195428d5d2e0b5ccadfbaf25b026ebc"}, - {file = "aiohttp-3.11.10-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:77ae58586930ee6b2b6f696c82cf8e78c8016ec4795c53e36718365f6959dc82"}, - {file = "aiohttp-3.11.10-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:78153314f26d5abef3239b4a9af20c229c6f3ecb97d4c1c01b22c4f87669820c"}, - {file = "aiohttp-3.11.10-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:98283b94cc0e11c73acaf1c9698dea80c830ca476492c0fe2622bd931f34b487"}, - {file = "aiohttp-3.11.10-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:53bf2097e05c2accc166c142a2090e4c6fd86581bde3fd9b2d3f9e93dda66ac1"}, - {file = "aiohttp-3.11.10-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c5532f0441fc09c119e1dca18fbc0687e64fbeb45aa4d6a87211ceaee50a74c4"}, - {file = "aiohttp-3.11.10-cp39-cp39-win32.whl", hash = "sha256:47ad15a65fb41c570cd0ad9a9ff8012489e68176e7207ec7b82a0940dddfd8be"}, - {file = "aiohttp-3.11.10-cp39-cp39-win_amd64.whl", hash = "sha256:c6b9e6d7e41656d78e37ce754813fa44b455c3d0d0dced2a047def7dc5570b74"}, - {file = "aiohttp-3.11.10.tar.gz", hash = "sha256:b1fc6b45010a8d0ff9e88f9f2418c6fd408c99c211257334aff41597ebece42e"}, + {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a60804bff28662cbcf340a4d61598891f12eea3a66af48ecfdc975ceec21e3c8"}, + {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b4fa1cb5f270fb3eab079536b764ad740bb749ce69a94d4ec30ceee1b5940d5"}, + {file = "aiohttp-3.11.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:731468f555656767cda219ab42e033355fe48c85fbe3ba83a349631541715ba2"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb23d8bb86282b342481cad4370ea0853a39e4a32a0042bb52ca6bdde132df43"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f047569d655f81cb70ea5be942ee5d4421b6219c3f05d131f64088c73bb0917f"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd7659baae9ccf94ae5fe8bfaa2c7bc2e94d24611528395ce88d009107e00c6d"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af01e42ad87ae24932138f154105e88da13ce7d202a6de93fafdafb2883a00ef"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5854be2f3e5a729800bac57a8d76af464e160f19676ab6aea74bde18ad19d438"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6526e5fb4e14f4bbf30411216780c9967c20c5a55f2f51d3abd6de68320cc2f3"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:85992ee30a31835fc482468637b3e5bd085fa8fe9392ba0bdcbdc1ef5e9e3c55"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:88a12ad8ccf325a8a5ed80e6d7c3bdc247d66175afedbe104ee2aaca72960d8e"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0a6d3fbf2232e3a08c41eca81ae4f1dff3d8f1a30bae415ebe0af2d2458b8a33"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84a585799c58b795573c7fa9b84c455adf3e1d72f19a2bf498b54a95ae0d194c"}, + {file = "aiohttp-3.11.11-cp310-cp310-win32.whl", hash = "sha256:bfde76a8f430cf5c5584553adf9926534352251d379dcb266ad2b93c54a29745"}, + {file = "aiohttp-3.11.11-cp310-cp310-win_amd64.whl", hash = "sha256:0fd82b8e9c383af11d2b26f27a478640b6b83d669440c0a71481f7c865a51da9"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ba74ec819177af1ef7f59063c6d35a214a8fde6f987f7661f4f0eecc468a8f76"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4af57160800b7a815f3fe0eba9b46bf28aafc195555f1824555fa2cfab6c1538"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ffa336210cf9cd8ed117011085817d00abe4c08f99968deef0013ea283547204"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81b8fe282183e4a3c7a1b72f5ade1094ed1c6345a8f153506d114af5bf8accd9"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3af41686ccec6a0f2bdc66686dc0f403c41ac2089f80e2214a0f82d001052c03"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70d1f9dde0e5dd9e292a6d4d00058737052b01f3532f69c0c65818dac26dc287"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:249cc6912405917344192b9f9ea5cd5b139d49e0d2f5c7f70bdfaf6b4dbf3a2e"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0eb98d90b6690827dcc84c246811feeb4e1eea683c0eac6caed7549be9c84665"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec82bf1fda6cecce7f7b915f9196601a1bd1a3079796b76d16ae4cce6d0ef89b"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9fd46ce0845cfe28f108888b3ab17abff84ff695e01e73657eec3f96d72eef34"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:bd176afcf8f5d2aed50c3647d4925d0db0579d96f75a31e77cbaf67d8a87742d"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:ec2aa89305006fba9ffb98970db6c8221541be7bee4c1d027421d6f6df7d1ce2"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:92cde43018a2e17d48bb09c79e4d4cb0e236de5063ce897a5e40ac7cb4878773"}, + {file = "aiohttp-3.11.11-cp311-cp311-win32.whl", hash = "sha256:aba807f9569455cba566882c8938f1a549f205ee43c27b126e5450dc9f83cc62"}, + {file = "aiohttp-3.11.11-cp311-cp311-win_amd64.whl", hash = "sha256:ae545f31489548c87b0cced5755cfe5a5308d00407000e72c4fa30b19c3220ac"}, + {file = "aiohttp-3.11.11.tar.gz", hash = "sha256:bb49c7f1e6ebf3821a42d81d494f538107610c3a705987f53068546b0e90303e"}, ] [[package]] @@ -106,6 +97,7 @@ version = "0.12.0" requires_python = ">=3.8" summary = "itertools and builtins for AsyncIO and mixed iterables" groups = ["test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "typing-extensions>=4.0; python_version < \"3.10\"", ] @@ -120,6 +112,7 @@ version = "1.3.2" requires_python = ">=3.9" summary = "aiosignal: a list of registered asynchronous callbacks" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "frozenlist>=1.1.0", ] @@ -134,6 +127,10 @@ version = "0.7.0" requires_python = ">=3.8" summary = "Reusable constraint types to use with typing.Annotated" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" +dependencies = [ + "typing-extensions>=4.0.0; python_version < \"3.9\"", +] files = [ {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, @@ -141,10 +138,11 @@ files = [ [[package]] name = "anthropic" -version = "0.28.1" -requires_python = ">=3.7" +version = "0.42.0" +requires_python = ">=3.8" summary = "The official Python library for the anthropic API" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "anyio<5,>=3.5.0", "distro<2,>=1.7.0", @@ -152,12 +150,30 @@ dependencies = [ "jiter<1,>=0.4.0", "pydantic<3,>=1.9.0", "sniffio", - "tokenizers>=0.13.0", - "typing-extensions<5,>=4.7", + "typing-extensions<5,>=4.10", ] files = [ - {file = "anthropic-0.28.1-py3-none-any.whl", hash = "sha256:c4773ae2b42951a6b747bed328b0d03fa412938c95c3a8b9dce70d69badb710b"}, - {file = "anthropic-0.28.1.tar.gz", hash = "sha256:e3a6d595bde241141bdc685edc393903ec95c7fa378013a71186cfb8f32b1793"}, + {file = "anthropic-0.42.0-py3-none-any.whl", hash = "sha256:46775f65b723c078a2ac9e9de44a46db5c6a4fabeacfd165e5ea78e6817f4eff"}, + {file = "anthropic-0.42.0.tar.gz", hash = "sha256:bf8b0ed8c8cb2c2118038f29c58099d2f99f7847296cafdaa853910bfff4edf4"}, +] + +[[package]] +name = "anthropic" +version = "0.42.0" +extras = ["bedrock", "vertex"] +requires_python = ">=3.8" +summary = "The official Python library for the anthropic API" +groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" +dependencies = [ + "anthropic==0.42.0", + "boto3>=1.28.57", + "botocore>=1.31.57", + "google-auth<3,>=2", +] +files = [ + {file = "anthropic-0.42.0-py3-none-any.whl", hash = "sha256:46775f65b723c078a2ac9e9de44a46db5c6a4fabeacfd165e5ea78e6817f4eff"}, + {file = "anthropic-0.42.0.tar.gz", hash = "sha256:bf8b0ed8c8cb2c2118038f29c58099d2f99f7847296cafdaa853910bfff4edf4"}, ] [[package]] @@ -166,6 +182,7 @@ version = "4.7.0" requires_python = ">=3.9" summary = "High level compatibility layer for multiple asynchronous event loop implementations" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "exceptiongroup>=1.0.2; python_version < \"3.11\"", "idna>=2.8", @@ -183,7 +200,7 @@ version = "5.0.1" requires_python = ">=3.8" summary = "Timeout context manager for asyncio programs" groups = ["default", "test"] -marker = "python_version < \"3.12.0\"" +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, @@ -191,39 +208,32 @@ files = [ [[package]] name = "asyncpg" -version = "0.29.0" +version = "0.30.0" requires_python = ">=3.8.0" summary = "An asyncio PostgreSQL driver" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "async-timeout>=4.0.3; python_version < \"3.12.0\"", -] -files = [ - {file = "asyncpg-0.29.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72fd0ef9f00aeed37179c62282a3d14262dbbafb74ec0ba16e1b1864d8a12169"}, - {file = "asyncpg-0.29.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:52e8f8f9ff6e21f9b39ca9f8e3e33a5fcdceaf5667a8c5c32bee158e313be385"}, - {file = "asyncpg-0.29.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9e6823a7012be8b68301342ba33b4740e5a166f6bbda0aee32bc01638491a22"}, - {file = "asyncpg-0.29.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:746e80d83ad5d5464cfbf94315eb6744222ab00aa4e522b704322fb182b83610"}, - {file = "asyncpg-0.29.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ff8e8109cd6a46ff852a5e6bab8b0a047d7ea42fcb7ca5ae6eaae97d8eacf397"}, - {file = "asyncpg-0.29.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:97eb024685b1d7e72b1972863de527c11ff87960837919dac6e34754768098eb"}, - {file = "asyncpg-0.29.0-cp310-cp310-win32.whl", hash = "sha256:5bbb7f2cafd8d1fa3e65431833de2642f4b2124be61a449fa064e1a08d27e449"}, - {file = "asyncpg-0.29.0-cp310-cp310-win_amd64.whl", hash = "sha256:76c3ac6530904838a4b650b2880f8e7af938ee049e769ec2fba7cd66469d7772"}, - {file = "asyncpg-0.29.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4900ee08e85af01adb207519bb4e14b1cae8fd21e0ccf80fac6aa60b6da37b4"}, - {file = "asyncpg-0.29.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a65c1dcd820d5aea7c7d82a3fdcb70e096f8f70d1a8bf93eb458e49bfad036ac"}, - {file = "asyncpg-0.29.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b52e46f165585fd6af4863f268566668407c76b2c72d366bb8b522fa66f1870"}, - {file = "asyncpg-0.29.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc600ee8ef3dd38b8d67421359779f8ccec30b463e7aec7ed481c8346decf99f"}, - {file = "asyncpg-0.29.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:039a261af4f38f949095e1e780bae84a25ffe3e370175193174eb08d3cecab23"}, - {file = "asyncpg-0.29.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6feaf2d8f9138d190e5ec4390c1715c3e87b37715cd69b2c3dfca616134efd2b"}, - {file = "asyncpg-0.29.0-cp311-cp311-win32.whl", hash = "sha256:1e186427c88225ef730555f5fdda6c1812daa884064bfe6bc462fd3a71c4b675"}, - {file = "asyncpg-0.29.0-cp311-cp311-win_amd64.whl", hash = "sha256:cfe73ffae35f518cfd6e4e5f5abb2618ceb5ef02a2365ce64f132601000587d3"}, - {file = "asyncpg-0.29.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5340dd515d7e52f4c11ada32171d87c05570479dc01dc66d03ee3e150fb695da"}, - {file = "asyncpg-0.29.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e17b52c6cf83e170d3d865571ba574577ab8e533e7361a2b8ce6157d02c665d3"}, - {file = "asyncpg-0.29.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f100d23f273555f4b19b74a96840aa27b85e99ba4b1f18d4ebff0734e78dc090"}, - {file = "asyncpg-0.29.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48e7c58b516057126b363cec8ca02b804644fd012ef8e6c7e23386b7d5e6ce83"}, - {file = "asyncpg-0.29.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f9ea3f24eb4c49a615573724d88a48bd1b7821c890c2effe04f05382ed9e8810"}, - {file = "asyncpg-0.29.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8d36c7f14a22ec9e928f15f92a48207546ffe68bc412f3be718eedccdf10dc5c"}, - {file = "asyncpg-0.29.0-cp39-cp39-win32.whl", hash = "sha256:797ab8123ebaed304a1fad4d7576d5376c3a006a4100380fb9d517f0b59c1ab2"}, - {file = "asyncpg-0.29.0-cp39-cp39-win_amd64.whl", hash = "sha256:cce08a178858b426ae1aa8409b5cc171def45d4293626e7aa6510696d46decd8"}, - {file = "asyncpg-0.29.0.tar.gz", hash = "sha256:d1c49e1f44fffafd9a55e1a9b101590859d881d639ea2922516f5d9c512d354e"}, + "async-timeout>=4.0.3; python_version < \"3.11.0\"", +] +files = [ + {file = "asyncpg-0.30.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bfb4dd5ae0699bad2b233672c8fc5ccbd9ad24b89afded02341786887e37927e"}, + {file = "asyncpg-0.30.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dc1f62c792752a49f88b7e6f774c26077091b44caceb1983509edc18a2222ec0"}, + {file = "asyncpg-0.30.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3152fef2e265c9c24eec4ee3d22b4f4d2703d30614b0b6753e9ed4115c8a146f"}, + {file = "asyncpg-0.30.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7255812ac85099a0e1ffb81b10dc477b9973345793776b128a23e60148dd1af"}, + {file = "asyncpg-0.30.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:578445f09f45d1ad7abddbff2a3c7f7c291738fdae0abffbeb737d3fc3ab8b75"}, + {file = "asyncpg-0.30.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c42f6bb65a277ce4d93f3fba46b91a265631c8df7250592dd4f11f8b0152150f"}, + {file = "asyncpg-0.30.0-cp310-cp310-win32.whl", hash = "sha256:aa403147d3e07a267ada2ae34dfc9324e67ccc4cdca35261c8c22792ba2b10cf"}, + {file = "asyncpg-0.30.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb622c94db4e13137c4c7f98834185049cc50ee01d8f657ef898b6407c7b9c50"}, + {file = "asyncpg-0.30.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5e0511ad3dec5f6b4f7a9e063591d407eee66b88c14e2ea636f187da1dcfff6a"}, + {file = "asyncpg-0.30.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:915aeb9f79316b43c3207363af12d0e6fd10776641a7de8a01212afd95bdf0ed"}, + {file = "asyncpg-0.30.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c198a00cce9506fcd0bf219a799f38ac7a237745e1d27f0e1f66d3707c84a5a"}, + {file = "asyncpg-0.30.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3326e6d7381799e9735ca2ec9fd7be4d5fef5dcbc3cb555d8a463d8460607956"}, + {file = "asyncpg-0.30.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:51da377487e249e35bd0859661f6ee2b81db11ad1f4fc036194bc9cb2ead5056"}, + {file = "asyncpg-0.30.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bc6d84136f9c4d24d358f3b02be4b6ba358abd09f80737d1ac7c444f36108454"}, + {file = "asyncpg-0.30.0-cp311-cp311-win32.whl", hash = "sha256:574156480df14f64c2d76450a3f3aaaf26105869cad3865041156b38459e935d"}, + {file = "asyncpg-0.30.0-cp311-cp311-win_amd64.whl", hash = "sha256:3356637f0bd830407b5597317b3cb3571387ae52ddc3bca6233682be88bbbc1f"}, + {file = "asyncpg-0.30.0.tar.gz", hash = "sha256:c551e9928ab6707602f44811817f82ba3c446e018bfe1d3abecc8ba5f3eac851"}, ] [[package]] @@ -232,6 +242,7 @@ version = "24.3.0" requires_python = ">=3.8" summary = "Classes Without Boilerplate" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308"}, {file = "attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff"}, @@ -243,6 +254,7 @@ version = "1.3.1" requires_python = ">=3.8" summary = "The ultimate Python library in building OAuth and OpenID Connect servers and clients." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "cryptography", ] @@ -257,6 +269,7 @@ version = "2.0.4" requires_python = ">=3.6" summary = "A tool that automatically formats Python code to conform to the PEP 8 style guide" groups = ["lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "pycodestyle>=2.10.0", "tomli; python_version < \"3.11\"", @@ -272,6 +285,7 @@ version = "1.32.0" requires_python = ">=3.8" summary = "Microsoft Azure Core Library for Python" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "requests>=2.21.0", "six>=1.11.0", @@ -288,6 +302,7 @@ version = "1.19.0" requires_python = ">=3.8" summary = "Microsoft Azure Identity Library for Python" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "azure-core>=1.31.0", "cryptography>=2.5", @@ -306,6 +321,7 @@ version = "4.12.3" requires_python = ">=3.6.0" summary = "Screen-scraping library" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "soupsieve>1.2", ] @@ -320,6 +336,7 @@ version = "23.3.0" requires_python = ">=3.7" summary = "The uncompromising code formatter." groups = ["lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "click>=8.0.0", "mypy-extensions>=0.4.3", @@ -327,6 +344,7 @@ dependencies = [ "pathspec>=0.9.0", "platformdirs>=2", "tomli>=1.1.0; python_version < \"3.11\"", + "typed-ast>=1.4.2; python_version < \"3.8\" and implementation_name == \"cpython\"", "typing-extensions>=3.10.0.0; python_version < \"3.10\"", ] files = [ @@ -340,37 +358,34 @@ files = [ {file = "black-23.3.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:a6f6886c9869d4daae2d1715ce34a19bbc4b95006d20ed785ca00fa03cba312d"}, {file = "black-23.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f3c333ea1dd6771b2d3777482429864f8e258899f6ff05826c3a4fcc5ce3f70"}, {file = "black-23.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:11c410f71b876f961d1de77b9699ad19f939094c3a677323f43d7a29855fe326"}, - {file = "black-23.3.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:3238f2aacf827d18d26db07524e44741233ae09a584273aa059066d644ca7b30"}, - {file = "black-23.3.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:f0bd2f4a58d6666500542b26354978218a9babcdc972722f4bf90779524515f3"}, - {file = "black-23.3.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:92c543f6854c28a3c7f39f4d9b7694f9a6eb9d3c5e2ece488c327b6e7ea9b266"}, - {file = "black-23.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a150542a204124ed00683f0db1f5cf1c2aaaa9cc3495b7a3b5976fb136090ab"}, - {file = "black-23.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:6b39abdfb402002b8a7d030ccc85cf5afff64ee90fa4c5aebc531e3ad0175ddb"}, {file = "black-23.3.0-py3-none-any.whl", hash = "sha256:ec751418022185b0c1bb7d7736e6933d40bbb14c14a0abcf9123d1b159f98dd4"}, {file = "black-23.3.0.tar.gz", hash = "sha256:1c7b8d606e728a41ea1ccbd7264677e494e87cf630e399262ced92d4a8dac940"}, ] [[package]] name = "boto3" -version = "1.35.36" +version = "1.35.88" requires_python = ">=3.8" summary = "The AWS SDK for Python" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "botocore<1.36.0,>=1.35.36", + "botocore<1.36.0,>=1.35.88", "jmespath<2.0.0,>=0.7.1", "s3transfer<0.11.0,>=0.10.0", ] files = [ - {file = "boto3-1.35.36-py3-none-any.whl", hash = "sha256:33735b9449cd2ef176531ba2cb2265c904a91244440b0e161a17da9d24a1e6d1"}, - {file = "boto3-1.35.36.tar.gz", hash = "sha256:586524b623e4fbbebe28b604c6205eb12f263cc4746bccb011562d07e217a4cb"}, + {file = "boto3-1.35.88-py3-none-any.whl", hash = "sha256:7bc9b27ad87607256470c70a86c8b8c319ddd6ecae89cc191687cbf8ccb7b6a6"}, + {file = "boto3-1.35.88.tar.gz", hash = "sha256:43c6a7a70bb226770a82a601870136e3bb3bf2808f4576ab5b9d7d140dbf1323"}, ] [[package]] name = "botocore" -version = "1.35.36" +version = "1.35.88" requires_python = ">=3.8" summary = "Low-level, data-driven core of boto 3." groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "jmespath<2.0.0,>=0.7.1", "python-dateutil<3.0.0,>=2.1", @@ -378,8 +393,8 @@ dependencies = [ "urllib3<1.27,>=1.25.4; python_version < \"3.10\"", ] files = [ - {file = "botocore-1.35.36-py3-none-any.whl", hash = "sha256:64241c778bf2dc863d93abab159e14024d97a926a5715056ef6411418cb9ead3"}, - {file = "botocore-1.35.36.tar.gz", hash = "sha256:354ec1b766f0029b5d6ff0c45d1a0f9e5007b7d2f3ec89bcdd755b208c5bc797"}, + {file = "botocore-1.35.88-py3-none-any.whl", hash = "sha256:e60cc3fbe8d7a10f70e7e852d76be2b29f23ead418a5899d366ea32b1eacb5a5"}, + {file = "botocore-1.35.88.tar.gz", hash = "sha256:58dcd9a464c354b8c6c25261d8de830d175d9739eae568bf0c52e57116fb03c6"}, ] [[package]] @@ -388,6 +403,7 @@ version = "5.5.0" requires_python = ">=3.7" summary = "Extensible memoizing collections and decorators" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "cachetools-5.5.0-py3-none-any.whl", hash = "sha256:02134e8439cdc2ffb62023ce1debca2944c3f289d66bb17ead3ab3dede74b292"}, {file = "cachetools-5.5.0.tar.gz", hash = "sha256:2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a"}, @@ -399,6 +415,7 @@ version = "2024.12.14" requires_python = ">=3.6" summary = "Python package for providing Mozilla's CA Bundle." groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, @@ -410,7 +427,7 @@ version = "1.17.1" requires_python = ">=3.8" summary = "Foreign Function Interface for Python calling C code." groups = ["default"] -marker = "platform_python_implementation != \"PyPy\"" +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\" and platform_python_implementation != \"PyPy\"" dependencies = [ "pycparser", ] @@ -439,18 +456,6 @@ files = [ {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, - {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, - {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, - {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, - {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, - {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, - {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, - {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, ] @@ -460,6 +465,7 @@ version = "3.4.0" requires_python = ">=3.8" summary = "Validate configuration and produce human readable error messages." groups = ["lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, @@ -467,72 +473,56 @@ files = [ [[package]] name = "charset-normalizer" -version = "3.4.0" -requires_python = ">=3.7.0" +version = "3.4.1" +requires_python = ">=3.7" summary = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." groups = ["default", "test"] -files = [ - {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-win32.whl", hash = "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca"}, - {file = "charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079"}, - {file = "charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e"}, +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" +files = [ + {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, + {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, + {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, ] [[package]] name = "click" -version = "8.1.7" +version = "8.1.8" requires_python = ">=3.7" summary = "Composable command line interface toolkit" groups = ["default", "docs", "lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "colorama; platform_system == \"Windows\"", + "importlib-metadata; python_version < \"3.8\"", ] files = [ - {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, - {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, + {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, + {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, ] [[package]] @@ -541,7 +531,7 @@ version = "0.4.6" requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" summary = "Cross-platform colored terminal text." groups = ["default", "docs", "lint", "test"] -marker = "sys_platform == \"win32\" or platform_system == \"Windows\"" +marker = "sys_platform == \"win32\" and python_version >= \"3.10\" and python_full_version < \"3.11.1\" or platform_system == \"Windows\" and python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, @@ -549,41 +539,42 @@ files = [ [[package]] name = "cryptography" -version = "43.0.3" -requires_python = ">=3.7" +version = "44.0.0" +requires_python = "!=3.9.0,!=3.9.1,>=3.7" summary = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "cffi>=1.12; platform_python_implementation != \"PyPy\"", ] files = [ - {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18"}, - {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd"}, - {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73"}, - {file = "cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2"}, - {file = "cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd"}, - {file = "cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405"}, - {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16"}, - {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73"}, - {file = "cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995"}, - {file = "cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, - {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, + {file = "cryptography-44.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:84111ad4ff3f6253820e6d3e58be2cc2a00adb29335d4cacb5ab4d4d34f2a123"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15492a11f9e1b62ba9d73c210e2416724633167de94607ec6069ef724fad092"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:831c3c4d0774e488fdc83a1923b49b9957d33287de923d58ebd3cec47a0ae43f"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:761817a3377ef15ac23cd7834715081791d4ec77f9297ee694ca1ee9c2c7e5eb"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3c672a53c0fb4725a29c303be906d3c1fa99c32f58abe008a82705f9ee96f40b"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:4ac4c9f37eba52cb6fbeaf5b59c152ea976726b865bd4cf87883a7e7006cc543"}, + {file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ed3534eb1090483c96178fcb0f8893719d96d5274dfde98aa6add34614e97c8e"}, + {file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f3f6fdfa89ee2d9d496e2c087cebef9d4fcbb0ad63c40e821b39f74bf48d9c5e"}, + {file = "cryptography-44.0.0-cp37-abi3-win32.whl", hash = "sha256:eb33480f1bad5b78233b0ad3e1b0be21e8ef1da745d8d2aecbb20671658b9053"}, + {file = "cryptography-44.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:abc998e0c0eee3c8a1904221d3f67dcfa76422b23620173e28c11d3e626c21bd"}, + {file = "cryptography-44.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:660cb7312a08bc38be15b696462fa7cc7cd85c3ed9c576e81f4dc4d8b2b31591"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1923cb251c04be85eec9fda837661c67c1049063305d6be5721643c22dd4e2b7"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:404fdc66ee5f83a1388be54300ae978b2efd538018de18556dde92575e05defc"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:c5eb858beed7835e5ad1faba59e865109f3e52b3783b9ac21e7e47dc5554e289"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f53c2c87e0fb4b0c00fa9571082a057e37690a8f12233306161c8f4b819960b7"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:9e6fc8a08e116fb7c7dd1f040074c9d7b51d74a8ea40d4df2fc7aa08b76b9e6c"}, + {file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d2436114e46b36d00f8b72ff57e598978b37399d2786fd39793c36c6d5cb1c64"}, + {file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a01956ddfa0a6790d594f5b34fc1bfa6098aca434696a03cfdbe469b8ed79285"}, + {file = "cryptography-44.0.0-cp39-abi3-win32.whl", hash = "sha256:eca27345e1214d1b9f9490d200f9db5a874479be914199194e746c893788d417"}, + {file = "cryptography-44.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:708ee5f1bafe76d041b53a4f95eb28cdeb8d18da17e597d46d7833ee59b97ede"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:37d76e6863da3774cd9db5b409a9ecfd2c71c981c38788d3fcfaf177f447b731"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:f677e1268c4e23420c3acade68fac427fffcb8d19d7df95ed7ad17cdef8404f4"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f5e7cb1e5e56ca0933b4873c0220a78b773b24d40d186b6738080b73d3d0a756"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:8b3e6eae66cf54701ee7d9c83c30ac0a1e3fa17be486033000f2a73a12ab507c"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:be4ce505894d15d5c5037167ffb7f0ae90b7be6f2a98f9a5c3442395501c32fa"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:62901fb618f74d7d81bf408c8719e9ec14d863086efe4185afd07c352aee1d2c"}, + {file = "cryptography-44.0.0.tar.gz", hash = "sha256:cd4e834f340b4293430701e772ec543b0fbe6c2dea510a5286fe0acabe153a02"}, ] [[package]] @@ -592,6 +583,7 @@ version = "0.6.7" requires_python = "<4.0,>=3.7" summary = "Easily serialize dataclasses to and from JSON." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "marshmallow<4.0.0,>=3.18.0", "typing-inspect<1,>=0.4.0", @@ -607,6 +599,7 @@ version = "5.1.1" requires_python = ">=3.5" summary = "Decorators for Humans" groups = ["test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, @@ -618,6 +611,7 @@ version = "1.2.15" requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" summary = "Python @deprecated decorator to deprecate old python classes, functions or methods." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "wrapt<2,>=1.10", ] @@ -631,6 +625,7 @@ name = "dirtyjson" version = "1.0.8" summary = "JSON decoder for Python that can extract data from the muck" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "dirtyjson-1.0.8-py3-none-any.whl", hash = "sha256:125e27248435a58acace26d5c2c4c11a1c0de0a9c5124c5a94ba78e517d74f53"}, {file = "dirtyjson-1.0.8.tar.gz", hash = "sha256:90ca4a18f3ff30ce849d100dcf4a003953c79d3a2348ef056f1d9c22231a25fd"}, @@ -641,6 +636,7 @@ name = "distlib" version = "0.3.9" summary = "Distribution utilities" groups = ["lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, @@ -652,6 +648,7 @@ version = "1.9.0" requires_python = ">=3.6" summary = "Distro - an OS platform information API" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"}, {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, @@ -663,6 +660,7 @@ version = "0.16" requires_python = ">=3.6,<4.0" summary = "Parse Python docstrings in reST, Google and Numpydoc format" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "docstring_parser-0.16-py3-none-any.whl", hash = "sha256:bf0a1387354d3691d102edef7ec124f219ef639982d096e26e3b60aeffa90637"}, {file = "docstring_parser-0.16.tar.gz", hash = "sha256:538beabd0af1e2db0146b6bd3caa526c35a34d61af9fd2887f3a8a27a739aa6e"}, @@ -674,6 +672,7 @@ version = "0.20.1" requires_python = ">=3.7" summary = "Docutils -- Python Documentation Utilities" groups = ["lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6"}, {file = "docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b"}, @@ -685,6 +684,7 @@ version = "9.5.0" requires_python = ">=3.6" summary = "simplified environment variable parsing" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "marshmallow>=3.0.0", "python-dotenv", @@ -694,13 +694,25 @@ files = [ {file = "environs-9.5.0.tar.gz", hash = "sha256:a76307b36fbe856bdca7ee9161e6c466fd7fcffc297109a118c59b54e27e30c9"}, ] +[[package]] +name = "eval-type-backport" +version = "0.2.2" +requires_python = ">=3.8" +summary = "Like `typing._eval_type`, but lets older Python versions use newer typing features." +groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" +files = [ + {file = "eval_type_backport-0.2.2-py3-none-any.whl", hash = "sha256:cb6ad7c393517f476f96d456d0412ea80f0a8cf96f6892834cd9340149111b0a"}, + {file = "eval_type_backport-0.2.2.tar.gz", hash = "sha256:f0576b4cf01ebb5bd358d02314d31846af5e07678387486e2c798af0e7d849c1"}, +] + [[package]] name = "exceptiongroup" version = "1.2.2" requires_python = ">=3.7" summary = "Backport of PEP 654 (exception groups)" groups = ["default", "test"] -marker = "python_version < \"3.11\"" +marker = "python_version >= \"3.10\" and python_version < \"3.11\"" files = [ {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, @@ -712,6 +724,7 @@ version = "3.16.1" requires_python = ">=3.8" summary = "A platform independent file lock." groups = ["default", "lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, @@ -722,6 +735,7 @@ name = "filetype" version = "1.2.0" summary = "Infer file type and MIME type of any file/buffer. No external dependencies." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "filetype-1.2.0-py2.py3-none-any.whl", hash = "sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25"}, {file = "filetype-1.2.0.tar.gz", hash = "sha256:66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb"}, @@ -733,6 +747,7 @@ version = "6.0.0" requires_python = ">=3.8.1" summary = "the modular source code checker: pep8 pyflakes and co" groups = ["lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "mccabe<0.8.0,>=0.7.0", "pycodestyle<2.11.0,>=2.10.0", @@ -749,9 +764,11 @@ version = "1.2.3" requires_python = ">= 3.6" summary = "Flake8 plug-in loading the configuration from pyproject.toml" groups = ["lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "Flake8>=5", "TOMLi; python_version < \"3.11\"", + "TOMLi<2; python_version < \"3.7\"", ] files = [ {file = "flake8_pyproject-1.2.3-py3-none-any.whl", hash = "sha256:6249fe53545205af5e76837644dc80b4c10037e73a0e5db87ff562d75fb5bd4a"}, @@ -763,6 +780,7 @@ version = "1.5.0" requires_python = ">=3.8" summary = "A list-like structure which implements collections.abc.MutableSequence" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, @@ -794,21 +812,6 @@ files = [ {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, - {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, - {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, - {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, - {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, - {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, ] @@ -819,6 +822,7 @@ version = "2024.10.0" requires_python = ">=3.8" summary = "File-system specification" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "fsspec-2024.10.0-py3-none-any.whl", hash = "sha256:03b9a6785766a4de40368b88906366755e2819e758b83705c88cd7cb5fe81871"}, {file = "fsspec-2024.10.0.tar.gz", hash = "sha256:eda2d8a4116d4f2429db8550f2457da57279247dd930bb12f821b58391359493"}, @@ -830,6 +834,7 @@ version = "2024.10.0" requires_python = ">=3.8" summary = "Convenient Filesystem interface over GCS" groups = ["test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "aiohttp!=4.0.0a0,!=4.0.0a1", "decorator>4.1.2", @@ -846,18 +851,20 @@ files = [ [[package]] name = "google-ai-generativelanguage" -version = "0.4.0" +version = "0.6.4" requires_python = ">=3.7" summary = "Google Ai Generativelanguage API client library" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.10.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3.0.0dev,>=1.34.0", + "google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.10.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3.0.0dev,>=1.34.1", + "google-auth!=2.24.0,!=2.25.0,<3.0.0dev,>=2.14.1", "proto-plus<2.0.0dev,>=1.22.3", "protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.19.5", ] files = [ - {file = "google-ai-generativelanguage-0.4.0.tar.gz", hash = "sha256:c8199066c08f74c4e91290778329bb9f357ba1ea5d6f82de2bc0d10552bf4f8c"}, - {file = "google_ai_generativelanguage-0.4.0-py3-none-any.whl", hash = "sha256:e4c425376c1ee26c78acbc49a24f735f90ebfa81bf1a06495fae509a2433232c"}, + {file = "google-ai-generativelanguage-0.6.4.tar.gz", hash = "sha256:1750848c12af96cb24ae1c3dd05e4bfe24867dc4577009ed03e1042d8421e874"}, + {file = "google_ai_generativelanguage-0.6.4-py3-none-any.whl", hash = "sha256:730e471aa549797118fb1c88421ba1957741433ada575cf5dd08d3aebf903ab1"}, ] [[package]] @@ -866,10 +873,12 @@ version = "2.24.0" requires_python = ">=3.7" summary = "Google API client core library" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "google-auth<3.0.dev0,>=2.14.1", "googleapis-common-protos<2.0.dev0,>=1.56.2", "proto-plus<2.0.0dev,>=1.22.3", + "proto-plus<2.0.0dev,>=1.25.0; python_version >= \"3.13\"", "protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<6.0.0.dev0,>=3.19.5", "requests<3.0.0.dev0,>=2.18.0", ] @@ -885,6 +894,7 @@ extras = ["grpc"] requires_python = ">=3.7" summary = "Google API client core library" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "google-api-core==2.24.0", "grpcio-status<2.0.dev0,>=1.33.2", @@ -897,12 +907,32 @@ files = [ {file = "google_api_core-2.24.0.tar.gz", hash = "sha256:e255640547a597a4da010876d333208ddac417d60add22b6851a0c66a831fcaf"}, ] +[[package]] +name = "google-api-python-client" +version = "2.157.0" +requires_python = ">=3.7" +summary = "Google API Client Library for Python" +groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" +dependencies = [ + "google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0.dev0,>=1.31.5", + "google-auth!=2.24.0,!=2.25.0,<3.0.0.dev0,>=1.32.0", + "google-auth-httplib2<1.0.0,>=0.2.0", + "httplib2<1.dev0,>=0.19.0", + "uritemplate<5,>=3.0.1", +] +files = [ + {file = "google_api_python_client-2.157.0-py2.py3-none-any.whl", hash = "sha256:0b0231db106324c659bf8b85f390391c00da57a60ebc4271e33def7aac198c75"}, + {file = "google_api_python_client-2.157.0.tar.gz", hash = "sha256:2ee342d0967ad1cedec43ccd7699671d94bff151e1f06833ea81303f9a6d86fd"}, +] + [[package]] name = "google-auth" version = "2.37.0" requires_python = ">=3.7" summary = "Google Authentication Library" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "cachetools<6.0,>=2.0.0", "pyasn1-modules>=0.2.1", @@ -913,12 +943,28 @@ files = [ {file = "google_auth-2.37.0.tar.gz", hash = "sha256:0054623abf1f9c83492c63d3f47e77f0a544caa3d40b2d98e099a611c2dd5d00"}, ] +[[package]] +name = "google-auth-httplib2" +version = "0.2.0" +summary = "Google Authentication Library: httplib2 transport" +groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" +dependencies = [ + "google-auth", + "httplib2>=0.19.0", +] +files = [ + {file = "google-auth-httplib2-0.2.0.tar.gz", hash = "sha256:38aa7badf48f974f1eb9861794e9c0cb2a0511a4ec0679b1f886d108f5640e05"}, + {file = "google_auth_httplib2-0.2.0-py2.py3-none-any.whl", hash = "sha256:b65a0a2123300dd71281a7bf6e64d65a0759287df52729bdd1ae2e47dc311a3d"}, +] + [[package]] name = "google-auth-oauthlib" version = "1.2.1" requires_python = ">=3.6" summary = "Google Authentication Library" groups = ["test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "google-auth>=2.15.0", "requests-oauthlib>=0.7.0", @@ -930,10 +976,11 @@ files = [ [[package]] name = "google-cloud-aiplatform" -version = "1.74.0" +version = "1.75.0" requires_python = ">=3.8" summary = "Vertex AI API client library" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "docstring-parser<1", "google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,<3.0.0dev,>=1.34.1", @@ -948,8 +995,8 @@ dependencies = [ "shapely<3.0.0dev", ] files = [ - {file = "google_cloud_aiplatform-1.74.0-py2.py3-none-any.whl", hash = "sha256:7f37a835e543a4cb4b62505928b983e307c5fee6d949f831cd3804f03c753d87"}, - {file = "google_cloud_aiplatform-1.74.0.tar.gz", hash = "sha256:2202e4e0cbbd2db02835737a1ae9a51ad7bf75c8ed130a3fdbcfced33525e3f0"}, + {file = "google_cloud_aiplatform-1.75.0-py2.py3-none-any.whl", hash = "sha256:eb5d79b5f7210d79a22b53c93a69b5bae5680dfc829387ea020765b97786b3d0"}, + {file = "google_cloud_aiplatform-1.75.0.tar.gz", hash = "sha256:eb8404abf1134b3b368535fe429c4eec2fd12d444c2e9ffbc329ddcbc72b36c9"}, ] [[package]] @@ -958,6 +1005,7 @@ version = "3.27.0" requires_python = ">=3.7" summary = "Google BigQuery API client library" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "google-api-core[grpc]<3.0.0dev,>=2.11.1", "google-auth<3.0.0dev,>=2.14.1", @@ -978,9 +1026,11 @@ version = "2.4.1" requires_python = ">=3.7" summary = "Google Cloud API client core library" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0dev,>=1.31.6", "google-auth<3.0dev,>=1.25.0", + "importlib-metadata>1.0.0; python_version < \"3.8\"", ] files = [ {file = "google-cloud-core-2.4.1.tar.gz", hash = "sha256:9b7749272a812bde58fff28868d0c5e2f585b82f37e09a1f6ed2d4d10f134073"}, @@ -993,11 +1043,13 @@ version = "1.14.0" requires_python = ">=3.7" summary = "Google Cloud Resource Manager API client library" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.10.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3.0.0dev,>=1.34.1", "google-auth!=2.24.0,!=2.25.0,<3.0.0dev,>=2.14.1", "grpc-google-iam-v1<1.0.0dev,>=0.12.4", "proto-plus<2.0.0dev,>=1.22.3", + "proto-plus<2.0.0dev,>=1.25.0; python_version >= \"3.13\"", "protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<6.0.0dev,>=3.20.2", ] files = [ @@ -1011,6 +1063,7 @@ version = "2.19.0" requires_python = ">=3.7" summary = "Google Cloud Storage API client library" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "google-api-core<3.0.0dev,>=2.15.0", "google-auth<3.0dev,>=2.26.1", @@ -1030,6 +1083,10 @@ version = "1.6.0" requires_python = ">=3.9" summary = "A python wrapper of the C library 'Google CRC32C'" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" +dependencies = [ + "importlib-resources>=1.3; python_version < \"3.9\" and os_name == \"nt\"", +] files = [ {file = "google_crc32c-1.6.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:5bcc90b34df28a4b38653c36bb5ada35671ad105c99cfe915fb5bed7ad6924aa"}, {file = "google_crc32c-1.6.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:d9e9913f7bd69e093b81da4535ce27af842e7bf371cde42d1ae9e9bd382dc0e9"}, @@ -1042,28 +1099,22 @@ files = [ {file = "google_crc32c-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9e4b426c3702f3cd23b933436487eb34e01e00327fac20c9aebb68ccf34117d"}, {file = "google_crc32c-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51c4f54dd8c6dfeb58d1df5e4f7f97df8abf17a36626a217f169893d1d7f3e9f"}, {file = "google_crc32c-1.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:bb8b3c75bd157010459b15222c3fd30577042a7060e29d42dabce449c087f2b3"}, - {file = "google_crc32c-1.6.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:e2806553238cd076f0a55bddab37a532b53580e699ed8e5606d0de1f856b5205"}, - {file = "google_crc32c-1.6.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:bb0966e1c50d0ef5bc743312cc730b533491d60585a9a08f897274e57c3f70e0"}, - {file = "google_crc32c-1.6.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:386122eeaaa76951a8196310432c5b0ef3b53590ef4c317ec7588ec554fec5d2"}, - {file = "google_crc32c-1.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2952396dc604544ea7476b33fe87faedc24d666fb0c2d5ac971a2b9576ab871"}, - {file = "google_crc32c-1.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35834855408429cecf495cac67ccbab802de269e948e27478b1e47dfb6465e57"}, - {file = "google_crc32c-1.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:d8797406499f28b5ef791f339594b0b5fdedf54e203b5066675c406ba69d705c"}, {file = "google_crc32c-1.6.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48abd62ca76a2cbe034542ed1b6aee851b6f28aaca4e6551b5599b6f3ef175cc"}, {file = "google_crc32c-1.6.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18e311c64008f1f1379158158bb3f0c8d72635b9eb4f9545f8cf990c5668e59d"}, - {file = "google_crc32c-1.6.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05e2d8c9a2f853ff116db9706b4a27350587f341eda835f46db3c0a8c8ce2f24"}, - {file = "google_crc32c-1.6.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ca8145b060679ec9176e6de4f89b07363d6805bd4760631ef254905503598d"}, {file = "google_crc32c-1.6.0.tar.gz", hash = "sha256:6eceb6ad197656a1ff49ebfbbfa870678c75be4344feb35ac1edf694309413dc"}, ] [[package]] name = "google-generativeai" -version = "0.4.1" +version = "0.5.4" requires_python = ">=3.9" summary = "Google Generative AI High level API client library and tools." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "google-ai-generativelanguage==0.4.0", + "google-ai-generativelanguage==0.6.4", "google-api-core", + "google-api-python-client", "google-auth>=2.15.0", "protobuf", "pydantic", @@ -1071,7 +1122,7 @@ dependencies = [ "typing-extensions", ] files = [ - {file = "google_generativeai-0.4.1-py3-none-any.whl", hash = "sha256:89be3c00c2e688108fccefc50f47f45fc9d37ecd53c1ade9d86b5d982919c24a"}, + {file = "google_generativeai-0.5.4-py3-none-any.whl", hash = "sha256:036d63ee35e7c8aedceda4f81c390a5102808af09ff3a6e57e27ed0be0708f3c"}, ] [[package]] @@ -1080,6 +1131,7 @@ version = "2.7.2" requires_python = ">=3.7" summary = "Utilities for Google Media Downloads and Resumable Uploads" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "google-crc32c<2.0dev,>=1.0", ] @@ -1094,6 +1146,7 @@ version = "1.66.0" requires_python = ">=3.7" summary = "Common protobufs used in Google APIs" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "protobuf!=3.20.0,!=3.20.1,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<6.0.0.dev0,>=3.20.2", ] @@ -1109,6 +1162,7 @@ extras = ["grpc"] requires_python = ">=3.7" summary = "Common protobufs used in Google APIs" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "googleapis-common-protos==1.66.0", "grpcio<2.0.0.dev0,>=1.44.0", @@ -1124,6 +1178,7 @@ version = "3.1.1" requires_python = ">=3.7" summary = "Lightweight in-process concurrent programming" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "greenlet-3.1.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0bbae94a29c9e5c7e4a2b7f0aae5c17e8e90acbfd3bf6270eeba60c39fce3563"}, {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fde093fb93f35ca72a556cf72c92ea3ebfda3d79fc35bb19fbe685853869a83"}, @@ -1143,33 +1198,24 @@ files = [ {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62ee94988d6b4722ce0028644418d93a52429e977d742ca2ccbe1c4f4a792511"}, {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1776fd7f989fc6b8d8c8cb8da1f6b82c5814957264d1f6cf818d475ec2bf6395"}, {file = "greenlet-3.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:48ca08c771c268a768087b408658e216133aecd835c0ded47ce955381105ba39"}, - {file = "greenlet-3.1.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:396979749bd95f018296af156201d6211240e7a23090f50a8d5d18c370084dc3"}, - {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca9d0ff5ad43e785350894d97e13633a66e2b50000e8a183a50a88d834752d42"}, - {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f6ff3b14f2df4c41660a7dec01045a045653998784bf8cfcb5a525bdffffbc8f"}, - {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94ebba31df2aa506d7b14866fed00ac141a867e63143fe5bca82a8e503b36437"}, - {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73aaad12ac0ff500f62cebed98d8789198ea0e6f233421059fa68a5aa7220145"}, - {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63e4844797b975b9af3a3fb8f7866ff08775f5426925e1e0bbcfe7932059a12c"}, - {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7939aa3ca7d2a1593596e7ac6d59391ff30281ef280d8632fa03d81f7c5f955e"}, - {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d0028e725ee18175c6e422797c407874da24381ce0690d6b9396c204c7f7276e"}, - {file = "greenlet-3.1.1-cp39-cp39-win32.whl", hash = "sha256:5e06afd14cbaf9e00899fae69b24a32f2196c19de08fcb9f4779dd4f004e5e7c"}, - {file = "greenlet-3.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:3319aa75e0e0639bc15ff54ca327e8dc7a6fe404003496e3c6925cd3142e0e22"}, {file = "greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467"}, ] [[package]] name = "grpc-google-iam-v1" -version = "0.13.1" +version = "0.14.0" requires_python = ">=3.7" summary = "IAM API client library" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "googleapis-common-protos[grpc]<2.0.0dev,>=1.56.0", "grpcio<2.0.0dev,>=1.44.0", "protobuf!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<6.0.0dev,>=3.20.2", ] files = [ - {file = "grpc-google-iam-v1-0.13.1.tar.gz", hash = "sha256:3ff4b2fd9d990965e410965253c0da6f66205d5a8291c4c31c6ebecca18a9001"}, - {file = "grpc_google_iam_v1-0.13.1-py2.py3-none-any.whl", hash = "sha256:c3e86151a981811f30d5e7330f271cee53e73bb87755e88cc3b6f0c7b5fe374e"}, + {file = "grpc_google_iam_v1-0.14.0-py2.py3-none-any.whl", hash = "sha256:fb4a084b30099ba3ab07d61d620a0d4429570b13ff53bd37bac75235f98b7da4"}, + {file = "grpc_google_iam_v1-0.14.0.tar.gz", hash = "sha256:c66e07aa642e39bb37950f9e7f491f70dad150ac9801263b42b2814307c2df99"}, ] [[package]] @@ -1178,6 +1224,7 @@ version = "1.62.3" requires_python = ">=3.7" summary = "HTTP/2-based RPC framework" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "grpcio-1.62.3-cp310-cp310-linux_armv7l.whl", hash = "sha256:13571a5b868dcc308a55d36669a2d17d9dcd6ec8335213f6c49cc68da7305abe"}, {file = "grpcio-1.62.3-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:f5def814c5a4c90c8fe389c526ab881f4a28b7e239b23ed8e02dd02934dfaa1a"}, @@ -1197,15 +1244,6 @@ files = [ {file = "grpcio-1.62.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a1b85d35a7d9638c03321dfe466645b87e23c30df1266f9e04bbb5f44e7579a9"}, {file = "grpcio-1.62.3-cp311-cp311-win32.whl", hash = "sha256:6be243f3954b0ca709f56f9cae926c84ac96e1cce19844711e647a1f1db88b99"}, {file = "grpcio-1.62.3-cp311-cp311-win_amd64.whl", hash = "sha256:e9ffdb7bc9ccd56ec201aec3eab3432e1e820335b5a16ad2b37e094218dcd7a6"}, - {file = "grpcio-1.62.3-cp39-cp39-linux_armv7l.whl", hash = "sha256:8a5f00b2508937952d23a1767739e95bbbe1120f8a66d10187d5e971d56bb55c"}, - {file = "grpcio-1.62.3-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:059444f0ed5dba73ab7dd0ee7e8e6b606df4130d2b0a9f010f84da4ab9f6c2d8"}, - {file = "grpcio-1.62.3-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:114f2a865886ff33f85d70670e971fe0e3d252a1209656fefa5470286e3fcc76"}, - {file = "grpcio-1.62.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6da20a1ae010a988bc4ed47850f1122de0a88e18cd2f901fcf56007be1fc6c30"}, - {file = "grpcio-1.62.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2ff8ac447765e173842b554b31307b98b3bb1852710903ebb936e7efb7df6e5"}, - {file = "grpcio-1.62.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:81b7c121c4e52a0749bf0759185b8d5cfa48a786cd7d411cdab08269813e0aab"}, - {file = "grpcio-1.62.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9d5f8e0050a179b3bce9189b522dc91008d44f08c757a7c310e0fd06b4d3d147"}, - {file = "grpcio-1.62.3-cp39-cp39-win32.whl", hash = "sha256:74f3fc9b93290e58264844f5bc46df4c58a94c4287a277dbcf75344fc6c37ca4"}, - {file = "grpcio-1.62.3-cp39-cp39-win_amd64.whl", hash = "sha256:582bd03e9c3d1bd1162eb51fa0f1a35633d66e73f4f36702d3b8484a8b45eda7"}, {file = "grpcio-1.62.3.tar.gz", hash = "sha256:4439bbd759636e37b66841117a66444b454937e27f0125205d2d117d7827c643"}, ] @@ -1215,6 +1253,7 @@ version = "1.62.3" requires_python = ">=3.6" summary = "Standard Health Checking Service for gRPC" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "grpcio>=1.62.3", "protobuf>=4.21.6", @@ -1230,6 +1269,7 @@ version = "1.62.3" requires_python = ">=3.6" summary = "Status proto mapping for gRPC" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "googleapis-common-protos>=1.5.5", "grpcio>=1.62.3", @@ -1246,6 +1286,7 @@ version = "1.62.3" requires_python = ">=3.7" summary = "Protobuf code generator for gRPC" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "grpcio>=1.62.3", "protobuf<5.0dev,>=4.21.6", @@ -1269,14 +1310,6 @@ files = [ {file = "grpcio_tools-1.62.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8ad0473af5544f89fc5a1ece8676dd03bdf160fb3230f967e05d0f4bf89620e3"}, {file = "grpcio_tools-1.62.3-cp311-cp311-win32.whl", hash = "sha256:db3bc9fa39afc5e4e2767da4459df82b095ef0cab2f257707be06c44a1c2c3e5"}, {file = "grpcio_tools-1.62.3-cp311-cp311-win_amd64.whl", hash = "sha256:e0898d412a434e768a0c7e365acabe13ff1558b767e400936e26b5b6ed1ee51f"}, - {file = "grpcio_tools-1.62.3-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:8e62cc7164b0b7c5128e637e394eb2ef3db0e61fc798e80c301de3b2379203ed"}, - {file = "grpcio_tools-1.62.3-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:c8ad5cce554e2fcaf8842dee5d9462583b601a3a78f8b76a153c38c963f58c10"}, - {file = "grpcio_tools-1.62.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ec279dcf3518201fc592c65002754f58a6b542798cd7f3ecd4af086422f33f29"}, - {file = "grpcio_tools-1.62.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c989246c2aebc13253f08be32538a4039a64e12d9c18f6d662d7aee641dc8b5"}, - {file = "grpcio_tools-1.62.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:ca4f5eeadbb57cf03317d6a2857823239a63a59cc935f5bd6cf6e8b7af7a7ecc"}, - {file = "grpcio_tools-1.62.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0cb3a3436ac119cbd37a7d3331d9bdf85dad21a6ac233a3411dff716dcbf401e"}, - {file = "grpcio_tools-1.62.3-cp39-cp39-win32.whl", hash = "sha256:3eae6ea76d62fcac091e1f15c2dcedf1dc3f114f8df1a972a8a0745e89f4cf61"}, - {file = "grpcio_tools-1.62.3-cp39-cp39-win_amd64.whl", hash = "sha256:eec73a005443061f4759b71a056f745e3b000dc0dc125c9f20560232dfbcbd14"}, ] [[package]] @@ -1285,6 +1318,10 @@ version = "0.14.0" requires_python = ">=3.7" summary = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" +dependencies = [ + "typing-extensions; python_version < \"3.8\"", +] files = [ {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, @@ -1296,6 +1333,7 @@ version = "4.1.0" requires_python = ">=3.6.1" summary = "HTTP/2 State-Machine based protocol implementation" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "hpack<5,>=4.0", "hyperframe<7,>=6.0", @@ -1311,6 +1349,7 @@ version = "4.0.0" requires_python = ">=3.6.1" summary = "Pure-Python HPACK header compression" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "hpack-4.0.0-py3-none-any.whl", hash = "sha256:84a076fad3dc9a9f8063ccb8041ef100867b1878b25ef0ee63847a5d53818a6c"}, {file = "hpack-4.0.0.tar.gz", hash = "sha256:fc41de0c63e687ebffde81187a948221294896f6bdc0ae2312708df339430095"}, @@ -1322,6 +1361,7 @@ version = "1.0.7" requires_python = ">=3.8" summary = "A minimal low-level HTTP client." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "certifi", "h11<0.15,>=0.13", @@ -1331,12 +1371,29 @@ files = [ {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, ] +[[package]] +name = "httplib2" +version = "0.22.0" +requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +summary = "A comprehensive HTTP client library." +groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" +dependencies = [ + "pyparsing!=3.0.0,!=3.0.1,!=3.0.2,!=3.0.3,<4,>=2.4.2; python_version > \"3.0\"", + "pyparsing<3,>=2.4.2; python_version < \"3.0\"", +] +files = [ + {file = "httplib2-0.22.0-py3-none-any.whl", hash = "sha256:14ae0a53c1ba8f3d37e9e27cf37eabb0fb9980f435ba405d546948b009dd64dc"}, + {file = "httplib2-0.22.0.tar.gz", hash = "sha256:d7a10bc5ef5ab08322488bde8c726eeee5c8618723fdb399597ec58f3d82df81"}, +] + [[package]] name = "httpx" version = "0.27.2" requires_python = ">=3.8" summary = "The next generation HTTP client." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "anyio", "certifi", @@ -1356,6 +1413,7 @@ extras = ["http2"] requires_python = ">=3.8" summary = "The next generation HTTP client." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "h2<5,>=3", "httpx==0.27.2", @@ -1371,6 +1429,7 @@ version = "0.27.0" requires_python = ">=3.8.0" summary = "Client library to download and publish models, datasets and other repos on the huggingface.co hub" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "filelock", "fsspec>=2023.5.0", @@ -1391,6 +1450,7 @@ version = "6.0.1" requires_python = ">=3.6.1" summary = "HTTP/2 framing layer for Python" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "hyperframe-6.0.1-py3-none-any.whl", hash = "sha256:0ec6bafd80d8ad2195c4f03aacba3a8265e57bc4cff261e802bf39970ed02a15"}, {file = "hyperframe-6.0.1.tar.gz", hash = "sha256:ae510046231dc8e9ecb1a6586f63d2347bf4c8905914aa84ba585ae85f28a914"}, @@ -1398,13 +1458,14 @@ files = [ [[package]] name = "identify" -version = "2.6.3" +version = "2.6.4" requires_python = ">=3.9" summary = "File identification library for Python" groups = ["lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ - {file = "identify-2.6.3-py2.py3-none-any.whl", hash = "sha256:9edba65473324c2ea9684b1f944fe3191db3345e50b6d04571d10ed164f8d7bd"}, - {file = "identify-2.6.3.tar.gz", hash = "sha256:62f5dae9b5fef52c84cc188514e9ea4f3f636b1d8799ab5ebc475471f9e47a02"}, + {file = "identify-2.6.4-py2.py3-none-any.whl", hash = "sha256:993b0f01b97e0568c179bb9196391ff391bfb88a99099dbf5ce392b68f42d0af"}, + {file = "identify-2.6.4.tar.gz", hash = "sha256:285a7d27e397652e8cafe537a6cc97dd470a970f48fb2e9d979aa38eae5513ac"}, ] [[package]] @@ -1413,6 +1474,7 @@ version = "3.10" requires_python = ">=3.6" summary = "Internationalized Domain Names in Applications (IDNA)" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, @@ -1424,6 +1486,7 @@ version = "2.0.0" requires_python = ">=3.7" summary = "brain-dead simple config-ini parsing" groups = ["test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, @@ -1435,6 +1498,7 @@ version = "5.12.0" requires_python = ">=3.8.0" summary = "A Python utility / library to sort Python imports." groups = ["lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, @@ -1446,6 +1510,7 @@ version = "0.8.2" requires_python = ">=3.8" summary = "Fast iterable JSON parser." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "jiter-0.8.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ca8577f6a413abe29b079bc30f907894d7eb07a865c4df69475e868d73e71c7b"}, {file = "jiter-0.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b25bd626bde7fb51534190c7e3cb97cee89ee76b76d7585580e22f34f5e3f393"}, @@ -1471,18 +1536,6 @@ files = [ {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5127dc1abd809431172bc3fbe8168d6b90556a30bb10acd5ded41c3cfd6f43b6"}, {file = "jiter-0.8.2-cp311-cp311-win32.whl", hash = "sha256:66227a2c7b575720c1871c8800d3a0122bb8ee94edb43a5685aa9aceb2782d44"}, {file = "jiter-0.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:cde031d8413842a1e7501e9129b8e676e62a657f8ec8166e18a70d94d4682855"}, - {file = "jiter-0.8.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e41e75344acef3fc59ba4765df29f107f309ca9e8eace5baacabd9217e52a5ee"}, - {file = "jiter-0.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f22b16b35d5c1df9dfd58843ab2cd25e6bf15191f5a236bed177afade507bfc"}, - {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7200b8f7619d36aa51c803fd52020a2dfbea36ffec1b5e22cab11fd34d95a6d"}, - {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:70bf4c43652cc294040dbb62256c83c8718370c8b93dd93d934b9a7bf6c4f53c"}, - {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f9d471356dc16f84ed48768b8ee79f29514295c7295cb41e1133ec0b2b8d637d"}, - {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:859e8eb3507894093d01929e12e267f83b1d5f6221099d3ec976f0c995cb6bd9"}, - {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaa58399c01db555346647a907b4ef6d4f584b123943be6ed5588c3f2359c9f4"}, - {file = "jiter-0.8.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8f2d5ed877f089862f4c7aacf3a542627c1496f972a34d0474ce85ee7d939c27"}, - {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:03c9df035d4f8d647f8c210ddc2ae0728387275340668fb30d2421e17d9a0841"}, - {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8bd2a824d08d8977bb2794ea2682f898ad3d8837932e3a74937e93d62ecbb637"}, - {file = "jiter-0.8.2-cp39-cp39-win32.whl", hash = "sha256:ca29b6371ebc40e496995c94b988a101b9fbbed48a51190a4461fcb0a68b4a36"}, - {file = "jiter-0.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:1c0dfbd1be3cbefc7510102370d86e35d1d53e5a93d48519688b1bf0f761160a"}, {file = "jiter-0.8.2.tar.gz", hash = "sha256:cd73d3e740666d0e639f678adb176fad25c1bcbdae88d8d7b857e1783bb4212d"}, ] @@ -1492,6 +1545,7 @@ version = "1.0.1" requires_python = ">=3.7" summary = "JSON Matching Expressions" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980"}, {file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"}, @@ -1503,20 +1557,36 @@ version = "1.4.2" requires_python = ">=3.8" summary = "Lightweight pipelining with Python functions" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6"}, {file = "joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e"}, ] +[[package]] +name = "jsonpath-python" +version = "1.0.6" +requires_python = ">=3.6" +summary = "A more powerful JSONPath implementation in modern python" +groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" +files = [ + {file = "jsonpath-python-1.0.6.tar.gz", hash = "sha256:dd5be4a72d8a2995c3f583cf82bf3cd1a9544cfdabf2d22595b67aff07349666"}, + {file = "jsonpath_python-1.0.6-py3-none-any.whl", hash = "sha256:1e3b78df579f5efc23565293612decee04214609208a2335884b3ee3f786b575"}, +] + [[package]] name = "jsonschema" version = "4.18.6" requires_python = ">=3.8" summary = "An implementation of JSON Schema validation for Python" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "attrs>=22.2.0", + "importlib-resources>=1.4.0; python_version < \"3.9\"", "jsonschema-specifications>=2023.03.6", + "pkgutil-resolve-name>=1.3.10; python_version < \"3.9\"", "referencing>=0.28.4", "rpds-py>=0.7.1", ] @@ -1531,6 +1601,7 @@ version = "2024.10.1" requires_python = ">=3.9" summary = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "referencing>=0.31.0", ] @@ -1545,6 +1616,7 @@ version = "0.4.8" requires_python = ">=3.6" summary = "Generate markdown API documentation for Google-style Python docstring." groups = ["docs"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "typer", ] @@ -1555,82 +1627,88 @@ files = [ [[package]] name = "llama-cloud" -version = "0.1.6" +version = "0.1.7" requires_python = "<4,>=3.8" summary = "" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ + "certifi<2025.0.0,>=2024.7.4", "httpx>=0.20.0", "pydantic>=1.10", ] files = [ - {file = "llama_cloud-0.1.6-py3-none-any.whl", hash = "sha256:43595081e03ff552fd18d9553fcaada897ff267456c0f89f4cb098b927dc4dc7"}, - {file = "llama_cloud-0.1.6.tar.gz", hash = "sha256:21200f6fdd46e08455d34b136f645ce6b8c3800e0ae13d8077913171a921da5a"}, + {file = "llama_cloud-0.1.7-py3-none-any.whl", hash = "sha256:266db22939c537a2b802eea6a9af2701beff98d5ba46513248011a4f1c17afc6"}, + {file = "llama_cloud-0.1.7.tar.gz", hash = "sha256:7c1767cb209905400e894566661a91230bcff83cd4d9c08e782fd2143ca6a646"}, ] [[package]] name = "llama-index" -version = "0.10.58" -requires_python = "<4.0,>=3.8.1" +version = "0.12.8" +requires_python = "<4.0,>=3.9" summary = "Interface between LLMs and your data" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-agent-openai<0.3.0,>=0.1.4", - "llama-index-cli<0.2.0,>=0.1.2", - "llama-index-core==0.10.58", - "llama-index-embeddings-openai<0.2.0,>=0.1.5", - "llama-index-indices-managed-llama-cloud>=0.2.0", - "llama-index-legacy<0.10.0,>=0.9.48", - "llama-index-llms-openai<0.2.0,>=0.1.27", - "llama-index-multi-modal-llms-openai<0.2.0,>=0.1.3", - "llama-index-program-openai<0.2.0,>=0.1.3", - "llama-index-question-gen-openai<0.2.0,>=0.1.2", - "llama-index-readers-file<0.2.0,>=0.1.4", - "llama-index-readers-llama-parse>=0.1.2", + "llama-index-agent-openai<0.5.0,>=0.4.0", + "llama-index-cli<0.5.0,>=0.4.0", + "llama-index-core<0.13.0,>=0.12.8", + "llama-index-embeddings-openai<0.4.0,>=0.3.0", + "llama-index-indices-managed-llama-cloud>=0.4.0", + "llama-index-llms-openai<0.4.0,>=0.3.0", + "llama-index-multi-modal-llms-openai<0.5.0,>=0.4.0", + "llama-index-program-openai<0.4.0,>=0.3.0", + "llama-index-question-gen-openai<0.4.0,>=0.3.0", + "llama-index-readers-file<0.5.0,>=0.4.0", + "llama-index-readers-llama-parse>=0.4.0", + "nltk>3.8.1", ] files = [ - {file = "llama_index-0.10.58-py3-none-any.whl", hash = "sha256:4a6cd89aeb9a450ce5b367fc4d771193c38ac226baa71af63494e096c5043951"}, - {file = "llama_index-0.10.58.tar.gz", hash = "sha256:8fe09b4d6e9071f89cf2f5af4eae490b08713e5238492236de893e758428d4dc"}, + {file = "llama_index-0.12.8-py3-none-any.whl", hash = "sha256:6b98ea44c225c7d230fd7f552dfcc2911ef327e3be352dc239011118242e4a28"}, + {file = "llama_index-0.12.8.tar.gz", hash = "sha256:f1578bb6873fa4f90a8645a80f4f997d184770e63bd7a2b45a98ab6e5c70fb59"}, ] [[package]] name = "llama-index-agent-openai" -version = "0.2.9" -requires_python = "<4.0,>=3.8.1" +version = "0.4.1" +requires_python = "<4.0,>=3.9" summary = "llama-index agent openai integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-core<0.11.0,>=0.10.41", - "llama-index-llms-openai<0.2.0,>=0.1.5", + "llama-index-core<0.13.0,>=0.12.0", + "llama-index-llms-openai<0.4.0,>=0.3.0", "openai>=1.14.0", ] files = [ - {file = "llama_index_agent_openai-0.2.9-py3-none-any.whl", hash = "sha256:d7f0fd4c87124781acd783be603871f8808b1a3969e876a9c96e2ed0844d46ac"}, - {file = "llama_index_agent_openai-0.2.9.tar.gz", hash = "sha256:debe86da6d9d983db32b445ddca7c798ac140fe59573bafded73595b3995f3d5"}, + {file = "llama_index_agent_openai-0.4.1-py3-none-any.whl", hash = "sha256:162507543082f739a8c806911344c8d7f2434d0ee91124cfdd7b0ba5f76d0e57"}, + {file = "llama_index_agent_openai-0.4.1.tar.gz", hash = "sha256:3a89137b228a6e9c2b3f46e367a27b75fb31b458e21777bba819de654707d59e"}, ] [[package]] name = "llama-index-cli" -version = "0.1.13" -requires_python = "<4.0,>=3.8.1" +version = "0.4.0" +requires_python = "<4.0,>=3.9" summary = "llama-index cli" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-core<0.11.0,>=0.10.11.post1", - "llama-index-embeddings-openai<0.2.0,>=0.1.1", - "llama-index-llms-openai<0.2.0,>=0.1.1", + "llama-index-core<0.13.0,>=0.12.0", + "llama-index-embeddings-openai<0.4.0,>=0.3.0", + "llama-index-llms-openai<0.4.0,>=0.3.0", ] files = [ - {file = "llama_index_cli-0.1.13-py3-none-any.whl", hash = "sha256:5e05bc3ce55ee1bf6e5af7e87631a71d6b6cf8fc2af10cd3947b09b1bac6788d"}, - {file = "llama_index_cli-0.1.13.tar.gz", hash = "sha256:86147ded4439fbab1d6c7c0d72e8f231d2935da9fdf5c9d3f0dde4f35d44aa59"}, + {file = "llama_index_cli-0.4.0-py3-none-any.whl", hash = "sha256:60d12f89e6b85e80a0cc3a8b531f05a911b5eebaebc37314411476d1ba685904"}, + {file = "llama_index_cli-0.4.0.tar.gz", hash = "sha256:d6ab201359962a8a34368aeda3a49bbbe67e9e009c59bd925c4fb2be4ace3906"}, ] [[package]] name = "llama-index-core" -version = "0.10.58" -requires_python = "<4.0,>=3.8.1" +version = "0.12.9" +requires_python = "<4.0,>=3.9" summary = "Interface between LLMs and your data" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "PyYAML>=6.0.1", "SQLAlchemy[asyncio]>=1.4.49", @@ -1638,17 +1716,18 @@ dependencies = [ "dataclasses-json", "deprecated>=1.2.9.3", "dirtyjson<2.0.0,>=1.0.8", + "eval-type-backport<0.3.0,>=0.2.0; python_version < \"3.10\"", + "filetype<2.0.0,>=1.2.0", "fsspec>=2023.5.0", "httpx", "nest-asyncio<2.0.0,>=1.5.8", "networkx>=3.0", - "nltk<4.0.0,>=3.8.1", - "numpy<2.0.0", - "openai>=1.1.0", - "pandas", + "nltk>3.8.1", + "numpy", "pillow>=9.0.0", + "pydantic>=2.8.0", "requests>=2.31.0", - "tenacity!=8.4.0,<9.0.0,>=8.2.0", + "tenacity!=8.4.0,<10.0.0,>=8.2.0", "tiktoken>=0.3.3", "tqdm<5.0.0,>=4.66.1", "typing-extensions>=4.5.0", @@ -1656,437 +1735,437 @@ dependencies = [ "wrapt", ] files = [ - {file = "llama_index_core-0.10.58-py3-none-any.whl", hash = "sha256:2345d9b20e21d0ec00e9282fe88a5e4a0eba2e732e577d1b0348512e9181a74f"}, - {file = "llama_index_core-0.10.58.tar.gz", hash = "sha256:f5730be1861a8fd0ef94e9f412a713132184b887b8a79347514efb672bf749fc"}, + {file = "llama_index_core-0.12.9-py3-none-any.whl", hash = "sha256:75bfdece8e1eb37faba43345cfbd9a8004859c177c1b5b358fc77620908c0f3f"}, + {file = "llama_index_core-0.12.9.tar.gz", hash = "sha256:a6a702af13f8a840ff2a459024d21280e5b04d37f22c73efdc52def60e047af6"}, ] [[package]] name = "llama-index-embeddings-azure-openai" -version = "0.1.11" -requires_python = "<4.0,>=3.8.1" +version = "0.3.0" +requires_python = "<4.0,>=3.9" summary = "llama-index embeddings azure openai integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-core<0.11.0,>=0.10.11.post1", - "llama-index-embeddings-openai<0.2.0,>=0.1.3", - "llama-index-llms-azure-openai<0.2.0,>=0.1.3", + "llama-index-core<0.13.0,>=0.12.0", + "llama-index-embeddings-openai<0.4.0,>=0.3.0", + "llama-index-llms-azure-openai<0.4.0,>=0.3.0", ] files = [ - {file = "llama_index_embeddings_azure_openai-0.1.11-py3-none-any.whl", hash = "sha256:afefe55ee69934528c569ddf71fb1e9ddf2992b6c344c4c9d72a03fa8c33cf40"}, - {file = "llama_index_embeddings_azure_openai-0.1.11.tar.gz", hash = "sha256:40a4fd9a31ba74f071739d6c8405187b66e7f584ae2f64a30316c6c7b6a25325"}, + {file = "llama_index_embeddings_azure_openai-0.3.0-py3-none-any.whl", hash = "sha256:2ca61d6b75468d1230cfc1151a878d892b237130b8af09b4434f8c0466d44dfe"}, + {file = "llama_index_embeddings_azure_openai-0.3.0.tar.gz", hash = "sha256:80b0cf977d8b967a08536d65b8e2d0c6c966eeaf1b8fff084e97f3081fd70c34"}, ] [[package]] name = "llama-index-embeddings-google" -version = "0.1.5" +version = "0.3.0" requires_python = "<4.0,>=3.9" summary = "llama-index embeddings google integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "google-generativeai<0.5.0,>=0.4.1", - "llama-index-core<0.11.0,>=0.10.11.post1", + "google-generativeai<0.6.0,>=0.5.2", + "llama-index-core<0.13.0,>=0.12.0", ] files = [ - {file = "llama_index_embeddings_google-0.1.5-py3-none-any.whl", hash = "sha256:a5dda93a4452e06490e4e4da1eb3d0609b5a1c5e9d4779086fd996d661fd68a2"}, - {file = "llama_index_embeddings_google-0.1.5.tar.gz", hash = "sha256:989f87e249661a5a531972c4ae52cd587e485291b25e76c084db204f97f0087b"}, + {file = "llama_index_embeddings_google-0.3.0-py3-none-any.whl", hash = "sha256:9fc29b5f8e29a11dd2795eef55c3864129cb9f544a10d3df6d5f9ca99f774bc1"}, + {file = "llama_index_embeddings_google-0.3.0.tar.gz", hash = "sha256:5d2d1960bc5eeff7b378b10913f94453371a2303754f34bf6c0e6c091cb1fcb9"}, ] [[package]] name = "llama-index-embeddings-ollama" -version = "0.1.2" -requires_python = ">=3.8.1,<4.0" +version = "0.5.0" +requires_python = "<4.0,>=3.9" summary = "llama-index embeddings ollama integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-core<0.11.0,>=0.10.1", + "llama-index-core<0.13.0,>=0.12.0", + "ollama>=0.3.1", ] files = [ - {file = "llama_index_embeddings_ollama-0.1.2-py3-none-any.whl", hash = "sha256:ac7afabfa1134059af351b021e05e256bf86dd15e5176ffa5ab0305bcf03b33f"}, - {file = "llama_index_embeddings_ollama-0.1.2.tar.gz", hash = "sha256:a9e0809bddd2e4ad888f249519edc7e3d339c74e4e03fc5a40c3060dc41d47a9"}, + {file = "llama_index_embeddings_ollama-0.5.0-py3-none-any.whl", hash = "sha256:843ecccfbe2db548a39e71a85e8ebbfe3cf2659db9533c080dcb291e4975af3b"}, + {file = "llama_index_embeddings_ollama-0.5.0.tar.gz", hash = "sha256:fec8fa249ed2fb13912e1511decb21c025a53294728a21f25bd2d5f30f435a94"}, ] [[package]] name = "llama-index-embeddings-openai" -version = "0.1.11" -requires_python = "<4.0,>=3.8.1" +version = "0.3.1" +requires_python = "<4.0,>=3.9" summary = "llama-index embeddings openai integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-core<0.11.0,>=0.10.1", + "llama-index-core<0.13.0,>=0.12.0", + "openai>=1.1.0", ] files = [ - {file = "llama_index_embeddings_openai-0.1.11-py3-none-any.whl", hash = "sha256:e20806fc4baff6b8f5274decf2c1ca7c5c737648e01865475ffada164e32e173"}, - {file = "llama_index_embeddings_openai-0.1.11.tar.gz", hash = "sha256:6025e229e375201788a9b14d6ebe470329907576cba5f6b7b832c3d68f39db30"}, + {file = "llama_index_embeddings_openai-0.3.1-py3-none-any.whl", hash = "sha256:f15a3d13da9b6b21b8bd51d337197879a453d1605e625a1c6d45e741756c0290"}, + {file = "llama_index_embeddings_openai-0.3.1.tar.gz", hash = "sha256:1368aad3ce24cbaed23d5ad251343cef1eb7b4a06d6563d6606d59cb347fef20"}, ] [[package]] name = "llama-index-indices-managed-llama-cloud" -version = "0.2.7" -requires_python = "<4.0,>=3.8.1" +version = "0.6.3" +requires_python = "<4.0,>=3.9" summary = "llama-index indices llama-cloud integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-cloud>=0.0.11", - "llama-index-core<0.11.0,>=0.10.48.post1", + "llama-cloud>=0.1.5", + "llama-index-core<0.13.0,>=0.12.0", ] files = [ - {file = "llama_index_indices_managed_llama_cloud-0.2.7-py3-none-any.whl", hash = "sha256:94335504eab2a6baf7361bbd8bda3ae20a68c7d0111587c9a0793440e9edff21"}, - {file = "llama_index_indices_managed_llama_cloud-0.2.7.tar.gz", hash = "sha256:d7e9b4cc50214b3cfcd75ea63cacce4ee36092cb672c003f15fd23ba31c49ec0"}, -] - -[[package]] -name = "llama-index-legacy" -version = "0.9.48.post4" -requires_python = "<4.0,>=3.8.1" -summary = "Interface between LLMs and your data" -groups = ["default"] -dependencies = [ - "SQLAlchemy[asyncio]>=1.4.49", - "aiohttp<4.0.0,>=3.8.6", - "dataclasses-json", - "deprecated>=1.2.9.3", - "dirtyjson<2.0.0,>=1.0.8", - "fsspec>=2023.5.0", - "httpx", - "nest-asyncio<2.0.0,>=1.5.8", - "networkx>=3.0", - "nltk>=3.8.1", - "numpy", - "openai>=1.1.0", - "pandas", - "requests>=2.31.0", - "tenacity<9.0.0,>=8.2.0", - "tiktoken>=0.3.3", - "typing-extensions>=4.5.0", - "typing-inspect>=0.8.0", -] -files = [ - {file = "llama_index_legacy-0.9.48.post4-py3-none-any.whl", hash = "sha256:4b817d7c343fb5f7f00c4410eff519f320013b8d5f24c4fedcf270c471f92038"}, - {file = "llama_index_legacy-0.9.48.post4.tar.gz", hash = "sha256:f8a9764e7e134a52bfef5e53d2d62561bfc01fc09874c51cc001df6f5302ae30"}, + {file = "llama_index_indices_managed_llama_cloud-0.6.3-py3-none-any.whl", hash = "sha256:7f125602f624a2d321b6a4130cd98df35eb8c15818a159390755b2c13068f4ce"}, + {file = "llama_index_indices_managed_llama_cloud-0.6.3.tar.gz", hash = "sha256:f09e4182cbc2a2bd75ae85cebb1681075247f0d91b931b094cac4315386ce87a"}, ] [[package]] name = "llama-index-llms-anthropic" -version = "0.1.16" -requires_python = "<4.0,>=3.8.1" +version = "0.6.3" +requires_python = "<4.0,>=3.9" summary = "llama-index llms anthropic integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "anthropic<0.29.0,>=0.26.2", - "llama-index-core<0.11.0,>=0.10.57", + "anthropic[bedrock,vertex]>=0.41.0", + "llama-index-core<0.13.0,>=0.12.5", ] files = [ - {file = "llama_index_llms_anthropic-0.1.16-py3-none-any.whl", hash = "sha256:6037410d54eb1315858c9c1452a396fbb2039be937bcdb9c5c37c77c7b7f5fc5"}, - {file = "llama_index_llms_anthropic-0.1.16.tar.gz", hash = "sha256:09fa9188a362cfed4cfad0d2a13a46265d755657fe1e5071e4cd3b8e7174362d"}, + {file = "llama_index_llms_anthropic-0.6.3-py3-none-any.whl", hash = "sha256:7eeee643e7d191d7f1b7cb86c4b86bba7dbf17899ef902010fa0618f8b7b41e0"}, + {file = "llama_index_llms_anthropic-0.6.3.tar.gz", hash = "sha256:a02704b8f8028c7cbd6bee22f02cf75e1ff8d4d292361b2f1739cf2569fcd118"}, ] [[package]] name = "llama-index-llms-anyscale" -version = "0.1.4" -requires_python = "<4.0,>=3.8.1" +version = "0.3.0" +requires_python = "<4.0,>=3.9" summary = "llama-index llms anyscale integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-core<0.11.0,>=0.10.1", - "llama-index-llms-openai<0.2.0,>=0.1.1", + "llama-index-core<0.13.0,>=0.12.0", + "llama-index-llms-openai<0.4.0,>=0.3.0", ] files = [ - {file = "llama_index_llms_anyscale-0.1.4-py3-none-any.whl", hash = "sha256:94c081c97102529ebc35be606cf31caddde2aaba2dc4fbf4940bff86fd9dae3e"}, - {file = "llama_index_llms_anyscale-0.1.4.tar.gz", hash = "sha256:a8426b261e85ac59d2fc0712065a86cf0d1dbaef34a1d910ede9f331d0cc44f7"}, + {file = "llama_index_llms_anyscale-0.3.0-py3-none-any.whl", hash = "sha256:90655064f3ed05efa7f053ee9ddeb2dff9d39d20ef2a250e46045acb60e7e020"}, + {file = "llama_index_llms_anyscale-0.3.0.tar.gz", hash = "sha256:187fddd7ba54aa929d19976b77f64fc370b4cfe6654316474e5644899384b290"}, ] [[package]] name = "llama-index-llms-azure-openai" -version = "0.1.10" -requires_python = "<4.0,>=3.8.1" +version = "0.3.0" +requires_python = "<4.0,>=3.9" summary = "llama-index llms azure openai integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "azure-identity<2.0.0,>=1.15.0", "httpx", - "llama-index-core<0.11.0,>=0.10.11.post1", - "llama-index-llms-openai<0.2.0,>=0.1.1", + "llama-index-core<0.13.0,>=0.12.0", + "llama-index-llms-openai<0.4.0,>=0.3.0", ] files = [ - {file = "llama_index_llms_azure_openai-0.1.10-py3-none-any.whl", hash = "sha256:8666b095118ed9c5087dc2d91a83a826d4549ea4d442b9eef363e243207d3539"}, - {file = "llama_index_llms_azure_openai-0.1.10.tar.gz", hash = "sha256:f1624c9bd7bf4458e98cca6f3b805eec06105fa951536ff24b098d913d2368bd"}, + {file = "llama_index_llms_azure_openai-0.3.0-py3-none-any.whl", hash = "sha256:24091aedf7ba24a7b217d17c4358e62b5d6b43a4d3ca44750d442b02a440d26e"}, + {file = "llama_index_llms_azure_openai-0.3.0.tar.gz", hash = "sha256:0feea9319d832c8b5e8e0f397c905e45df54c529b6a778825adcd0d254bd7d63"}, ] [[package]] name = "llama-index-llms-bedrock" -version = "0.1.13" -requires_python = "<4.0,>=3.8.1" +version = "0.3.3" +requires_python = "<4.0,>=3.9" summary = "llama-index llms bedrock integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "boto3<2.0.0,>=1.34.26", - "llama-index-core<0.11.0,>=0.10.1", - "llama-index-llms-anthropic<0.2.0,>=0.1.7", + "llama-index-core<0.13.0,>=0.12.0", + "llama-index-llms-anthropic<0.7.0,>=0.6.3", ] files = [ - {file = "llama_index_llms_bedrock-0.1.13-py3-none-any.whl", hash = "sha256:ac66932dc08b9ba83ad5914bee74975488bcdf1be143af7aa31289c120c76d3e"}, - {file = "llama_index_llms_bedrock-0.1.13.tar.gz", hash = "sha256:9a7a2e257302a7692dab23b42cf97eec5c6209c2afa7a865a42f9c1e29e689c7"}, + {file = "llama_index_llms_bedrock-0.3.3-py3-none-any.whl", hash = "sha256:ba3657c1ace61eb19474802dbf052a30b8cd0f184823d69ed3276f687193ddd4"}, + {file = "llama_index_llms_bedrock-0.3.3.tar.gz", hash = "sha256:b11c29eff88760522b6e9013459a5a4cc57a5dd5d66e57f855d6096b2fb0acd3"}, ] [[package]] name = "llama-index-llms-mistralai" -version = "0.1.19" +version = "0.3.1" requires_python = "<4.0,>=3.9" summary = "llama-index llms mistral ai integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-core<0.11.0,>=0.10.57", - "mistralai>=0.4.2", + "llama-index-core<0.13.0,>=0.12.0", + "mistralai>=1.0.0", ] files = [ - {file = "llama_index_llms_mistralai-0.1.19-py3-none-any.whl", hash = "sha256:268341e87f9de4765dd0d3afcc8c2c2e6c9304fd1e69fccc90d2b3510869dc47"}, - {file = "llama_index_llms_mistralai-0.1.19.tar.gz", hash = "sha256:77d9dd0accc0e4aebeba59bf7416ae6e7c42f9998b4ec1eedb5d4f7cb80da4ea"}, + {file = "llama_index_llms_mistralai-0.3.1-py3-none-any.whl", hash = "sha256:a5cdec297ef430876a8046204625e6534e74e2f70585243301317a4a3b514c74"}, + {file = "llama_index_llms_mistralai-0.3.1.tar.gz", hash = "sha256:a6c7f2f3303120c2dab5b6f6dde61cf2f824fc36cc71fd3e1c7d4a42a30111e8"}, ] [[package]] name = "llama-index-llms-ollama" -version = "0.2.2" -requires_python = "<4.0,>=3.8.1" +version = "0.5.0" +requires_python = "<4.0,>=3.9" summary = "llama-index llms ollama integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-core<0.11.0,>=0.10.1", - "ollama>=0.3.0", + "llama-index-core<0.13.0,>=0.12.4", + "ollama>=0.4.3", ] files = [ - {file = "llama_index_llms_ollama-0.2.2-py3-none-any.whl", hash = "sha256:c224d7c17d641045bc9b6a6681dab434c1c421af0bacb5825eea444fefd8ed78"}, - {file = "llama_index_llms_ollama-0.2.2.tar.gz", hash = "sha256:0c7f192cb8b768707bd5154b97e2a41284732d62070eb76190dee125e95245ea"}, + {file = "llama_index_llms_ollama-0.5.0-py3-none-any.whl", hash = "sha256:f5976865a60264e9e3c9a5625971235860cc85b03d437f9cff4d2bb8ca4eb9c8"}, + {file = "llama_index_llms_ollama-0.5.0.tar.gz", hash = "sha256:f3c0da04f854079033ee3c1b111e097456005b9a3867ed4bb49b8d28e4a0f336"}, ] [[package]] name = "llama-index-llms-openai" -version = "0.1.27" -requires_python = "<4.0,>=3.8.1" +version = "0.3.12" +requires_python = "<4.0,>=3.9" summary = "llama-index llms openai integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-core<0.11.0,>=0.10.57", + "llama-index-core<0.13.0,>=0.12.4", + "openai<2.0.0,>=1.58.1", ] files = [ - {file = "llama_index_llms_openai-0.1.27-py3-none-any.whl", hash = "sha256:8da0e90d4a558667d2b9cf1b3f577a4cb7723b7680ed6d22027b0baf9cd5999e"}, - {file = "llama_index_llms_openai-0.1.27.tar.gz", hash = "sha256:37c2d1159b56607d3a807d90260ee25b4f002086d6251c7272afbc53f2514603"}, + {file = "llama_index_llms_openai-0.3.12-py3-none-any.whl", hash = "sha256:08be76b9e649f6085e93292504074728a6531eb7f8930eaf40a2fce70a9f59df"}, + {file = "llama_index_llms_openai-0.3.12.tar.gz", hash = "sha256:1880273a7e409c05f1dbccdbac5ce3c214771901cd3696aeb556a29dfed8477a"}, ] [[package]] name = "llama-index-llms-palm" -version = "0.1.5" +version = "0.3.0" requires_python = "<4.0,>=3.9" summary = "llama-index llms palm integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "google-generativeai<0.5.0,>=0.4.1", - "llama-index-core<0.11.0,>=0.10.11.post1", + "google-generativeai<0.6.0,>=0.5.2", + "llama-index-core<0.13.0,>=0.12.0", ] files = [ - {file = "llama_index_llms_palm-0.1.5-py3-none-any.whl", hash = "sha256:0fd45b0b4e7580a420d712c23556812c7348d0781a08aa4aa0060789d7a1e7ef"}, - {file = "llama_index_llms_palm-0.1.5.tar.gz", hash = "sha256:43194174e4b4061a5b82a84408f2e7f5b9a38273595d5274f500a40b2e644869"}, + {file = "llama_index_llms_palm-0.3.0-py3-none-any.whl", hash = "sha256:63b5deda76519678c7760c662fbbed7035b93af780b81d5191c22011592c8453"}, + {file = "llama_index_llms_palm-0.3.0.tar.gz", hash = "sha256:bd86caae7269f6f40cb2b1006ebfcdf888c274c23b7454f46350c1f41b509ca4"}, ] [[package]] name = "llama-index-llms-replicate" -version = "0.1.3" -requires_python = ">=3.8.1,<4.0" +version = "0.4.0" +requires_python = "<4.0,>=3.9" summary = "llama-index llms replicate integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-core<0.11.0,>=0.10.1", + "llama-index-core<0.13.0,>=0.12.0", ] files = [ - {file = "llama_index_llms_replicate-0.1.3-py3-none-any.whl", hash = "sha256:585ad62653c4a97807161f38c7f5c47e53c24fdbd7dd10c39da1dd0c703913f8"}, - {file = "llama_index_llms_replicate-0.1.3.tar.gz", hash = "sha256:2e8769c0f79c99bc77d152152428e46e9491a84a8346051efbfdd825fece0816"}, + {file = "llama_index_llms_replicate-0.4.0-py3-none-any.whl", hash = "sha256:07ba499b99a34dc830c0f2b26e88eb076ff53bfd177aa1e27cc062277a3c5869"}, + {file = "llama_index_llms_replicate-0.4.0.tar.gz", hash = "sha256:46df7cb4e6c0a0543aef44cb88da81cc90a49619fb769257bf085b56fba88006"}, ] [[package]] name = "llama-index-llms-vertex" -version = "0.2.2" -requires_python = "<4.0,>=3.8.1" +version = "0.4.2" +requires_python = "<4.0,>=3.9" summary = "llama-index llms vertex integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "google-cloud-aiplatform<2.0.0,>=1.39.0", - "llama-index-core<0.11.0,>=0.10.57", - "pyarrow<16.0.0,>=15.0.2", + "llama-index-core<0.13.0,>=0.12.0", ] files = [ - {file = "llama_index_llms_vertex-0.2.2-py3-none-any.whl", hash = "sha256:d9be5676d70b737cd0d35c2c343d3efe7dfc79357e310832b9fa349a138d53cd"}, - {file = "llama_index_llms_vertex-0.2.2.tar.gz", hash = "sha256:75ad7d49f7f4ddde3e8f05c02274efc3a903441f380681ed251d3bfc3d9660b2"}, + {file = "llama_index_llms_vertex-0.4.2-py3-none-any.whl", hash = "sha256:cc95d91048a560c5414985e2ea6a875d2edada950420a09d9815bebe8922796a"}, + {file = "llama_index_llms_vertex-0.4.2.tar.gz", hash = "sha256:925c2b3537f9524e80bd58b28d339dd59f84974b6f62cbdf58fab924e023ed11"}, ] [[package]] name = "llama-index-multi-modal-llms-openai" -version = "0.1.9" -requires_python = "<4.0,>=3.8.1" +version = "0.4.2" +requires_python = "<4.0,>=3.9" summary = "llama-index multi-modal-llms openai integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-core<0.11.0,>=0.10.1", - "llama-index-llms-openai<0.2.0,>=0.1.1", + "llama-index-core<0.13.0,>=0.12.3", + "llama-index-llms-openai<0.4.0,>=0.3.0", ] files = [ - {file = "llama_index_multi_modal_llms_openai-0.1.9-py3-none-any.whl", hash = "sha256:614f40427a4671e72742780be8fda77297dbf2942519bffcb2c9de8696a9edff"}, - {file = "llama_index_multi_modal_llms_openai-0.1.9.tar.gz", hash = "sha256:dbacf44d5c2cca07ca424eacd1337583002d70387a3c1868cf8ae743b1dbec4a"}, + {file = "llama_index_multi_modal_llms_openai-0.4.2-py3-none-any.whl", hash = "sha256:093f60f59fc423abab110810f8f129b96b0212b9737d74480f0e3e1b715e975b"}, + {file = "llama_index_multi_modal_llms_openai-0.4.2.tar.gz", hash = "sha256:3437a08cec85cebbc212aa73da5c9b8b054b4dc628338568435a7df88489476f"}, ] [[package]] name = "llama-index-program-openai" -version = "0.1.7" -requires_python = "<4.0,>=3.8.1" +version = "0.3.1" +requires_python = "<4.0,>=3.9" summary = "llama-index program openai integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-agent-openai<0.3.0,>=0.1.1", - "llama-index-core<0.11.0,>=0.10.57", - "llama-index-llms-openai>=0.1.1", + "llama-index-agent-openai<0.5.0,>=0.4.0", + "llama-index-core<0.13.0,>=0.12.0", + "llama-index-llms-openai<0.4.0,>=0.3.0", ] files = [ - {file = "llama_index_program_openai-0.1.7-py3-none-any.whl", hash = "sha256:33489b573c1050a3f583ff68fcbc4bcbd49f29e74f3e5baea08ab0d5f363403c"}, - {file = "llama_index_program_openai-0.1.7.tar.gz", hash = "sha256:bf7eb61a073381714be5a049d93b40044dfe51bd4333bee539d1532b7407621f"}, + {file = "llama_index_program_openai-0.3.1-py3-none-any.whl", hash = "sha256:93646937395dc5318fd095153d2f91bd632b25215d013d14a87c088887d205f9"}, + {file = "llama_index_program_openai-0.3.1.tar.gz", hash = "sha256:6039a6cdbff62c6388c07e82a157fe2edd3bbef0c5adf292ad8546bf4ec75b82"}, ] [[package]] name = "llama-index-question-gen-openai" -version = "0.1.3" -requires_python = ">=3.8.1,<4.0" +version = "0.3.0" +requires_python = "<4.0,>=3.9" summary = "llama-index question_gen openai integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-core<0.11.0,>=0.10.1", - "llama-index-llms-openai<0.2.0,>=0.1.1", - "llama-index-program-openai<0.2.0,>=0.1.1", + "llama-index-core<0.13.0,>=0.12.0", + "llama-index-llms-openai<0.4.0,>=0.3.0", + "llama-index-program-openai<0.4.0,>=0.3.0", ] files = [ - {file = "llama_index_question_gen_openai-0.1.3-py3-none-any.whl", hash = "sha256:1f83b49e8b2e665030d1ec8c54687d6985d9fa8426147b64e46628a9e489b302"}, - {file = "llama_index_question_gen_openai-0.1.3.tar.gz", hash = "sha256:4486198117a45457d2e036ae60b93af58052893cc7d78fa9b6f47dd47b81e2e1"}, + {file = "llama_index_question_gen_openai-0.3.0-py3-none-any.whl", hash = "sha256:9b60ec114273a63b50349948666e5744a8f58acb645824e07c979041e8fec598"}, + {file = "llama_index_question_gen_openai-0.3.0.tar.gz", hash = "sha256:efd3b468232808e9d3474670aaeab00e41b90f75f52d0c9bfbf11207e0963d62"}, ] [[package]] name = "llama-index-readers-file" -version = "0.1.33" -requires_python = "<4.0,>=3.8.1" +version = "0.4.1" +requires_python = "<4.0,>=3.9" summary = "llama-index readers file integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "beautifulsoup4<5.0.0,>=4.12.3", - "llama-index-core<0.11.0,>=0.10.37.post1", - "pypdf<5.0.0,>=4.0.1", + "llama-index-core<0.13.0,>=0.12.0", + "pandas", + "pypdf<6.0.0,>=5.1.0", "striprtf<0.0.27,>=0.0.26", ] files = [ - {file = "llama_index_readers_file-0.1.33-py3-none-any.whl", hash = "sha256:c968308497c1355acf61fe7e3f05ad8e308bb6487dddd3bd2a60e102225d0b38"}, - {file = "llama_index_readers_file-0.1.33.tar.gz", hash = "sha256:247a4d5bfabc7d1022027adf58064bc16c224d006db142abb0d182ac5574a887"}, + {file = "llama_index_readers_file-0.4.1-py3-none-any.whl", hash = "sha256:51df6c4c6f6f244a704907aac4edc5c7a1c61a67672b1ca7fb182e6409226708"}, + {file = "llama_index_readers_file-0.4.1.tar.gz", hash = "sha256:1150300bcebab7cddd9e29b7271e097b278fbe3518de26e435595855b12c3b9a"}, ] [[package]] name = "llama-index-readers-llama-parse" -version = "0.1.6" -requires_python = "<4.0,>=3.8.1" +version = "0.4.0" +requires_python = "<4.0,>=3.9" summary = "llama-index readers llama-parse integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-core<0.11.0,>=0.10.7", - "llama-parse>=0.4.0", + "llama-index-core<0.13.0,>=0.12.0", + "llama-parse>=0.5.0", ] files = [ - {file = "llama_index_readers_llama_parse-0.1.6-py3-none-any.whl", hash = "sha256:71d445a2357ce4c632e0fada7c913ac62790e77c062f12d916dd86378380ff1f"}, - {file = "llama_index_readers_llama_parse-0.1.6.tar.gz", hash = "sha256:04f2dcfbb0fb87ce70890f5a2f4f89941d79be6a818b43738f053560e4b451cf"}, + {file = "llama_index_readers_llama_parse-0.4.0-py3-none-any.whl", hash = "sha256:574e48386f28d2c86c3f961ca4a4906910312f3400dd0c53014465bfbc6b32bf"}, + {file = "llama_index_readers_llama_parse-0.4.0.tar.gz", hash = "sha256:e99ec56f4f8546d7fda1a7c1ae26162fb9acb7ebcac343b5abdb4234b4644e0f"}, ] [[package]] name = "llama-index-vector-stores-milvus" -version = "0.1.21" -requires_python = "<4.0,>=3.8.1" +version = "0.4.0" +requires_python = "<4.0,>=3.9" summary = "llama-index vector_stores milvus integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-core<0.11.0,>=0.10.1", + "llama-index-core<0.13.0,>=0.12.0", "pymilvus<3.0.0,>=2.3.6", ] files = [ - {file = "llama_index_vector_stores_milvus-0.1.21-py3-none-any.whl", hash = "sha256:272047d5fec42a00fb44b3368f194b074888688195a12b46d9d94b25bb903377"}, - {file = "llama_index_vector_stores_milvus-0.1.21.tar.gz", hash = "sha256:09467f730ebc4cdebfe8a5fc1b0ce49c5ed0ca4cf68b5826f64fc31535992da6"}, + {file = "llama_index_vector_stores_milvus-0.4.0-py3-none-any.whl", hash = "sha256:e2c7b4783eb7a66b6681879374aa2f79aaa3a3fb1e81e43e734d686d7d0d9138"}, + {file = "llama_index_vector_stores_milvus-0.4.0.tar.gz", hash = "sha256:b24b572a1e25487640273e0365fb53f5defdcb295ccc8aaae968e43d5b786782"}, ] [[package]] name = "llama-index-vector-stores-pinecone" -version = "0.1.8" -requires_python = "<3.13,>=3.8.1" +version = "0.4.2" +requires_python = "<3.13,>=3.9" summary = "llama-index vector_stores pinecone integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-core<0.11.0,>=0.10.11.post1", - "pinecone-client<4.0.0,>=3.0.2", + "llama-index-core<0.13.0,>=0.12.0", + "pinecone-client<6.0.0,>=3.2.2", ] files = [ - {file = "llama_index_vector_stores_pinecone-0.1.8-py3-none-any.whl", hash = "sha256:162e7aab267f995080c6b0c69ad9a19bc32a81c112afe9b5ae68d7174b843b6f"}, - {file = "llama_index_vector_stores_pinecone-0.1.8.tar.gz", hash = "sha256:ed06555a87581427e791de8a1ab2b139958f4ac927d43bdb8f6947b0eb523f92"}, + {file = "llama_index_vector_stores_pinecone-0.4.2-py3-none-any.whl", hash = "sha256:bd5fd308720d3ccc93f8b659c4a4e1f3c4e374375dbd30447b5b550de11c2d7e"}, + {file = "llama_index_vector_stores_pinecone-0.4.2.tar.gz", hash = "sha256:999acfadcf09fc17b7eac58410facf31cf49f4342b7a75d67886155d4ecfb9fd"}, ] [[package]] name = "llama-index-vector-stores-postgres" -version = "0.1.13" -requires_python = "<4.0,>=3.8.1" +version = "0.4.1" +requires_python = "<4.0,>=3.9" summary = "llama-index vector_stores postgres integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "asyncpg<0.30.0,>=0.29.0", - "llama-index-core<0.11.0,>=0.10.20", - "pgvector<0.3.0,>=0.2.4", + "asyncpg<1.0.0,>=0.29.0", + "llama-index-core<0.13.0,>=0.12.6", + "pgvector<1.0.0,>=0.3.6", "psycopg2-binary<3.0.0,>=2.9.9", "sqlalchemy[asyncio]<2.1,>=1.4.49", ] files = [ - {file = "llama_index_vector_stores_postgres-0.1.13-py3-none-any.whl", hash = "sha256:1cfc545b7b8ce5632f569843362d920beb6e851c3aa05822c5e84ed3a6f32859"}, - {file = "llama_index_vector_stores_postgres-0.1.13.tar.gz", hash = "sha256:6aa4928176f57e6118f7ca63f31350a250cb3856ecabf50e5c255945e1d8803e"}, + {file = "llama_index_vector_stores_postgres-0.4.1-py3-none-any.whl", hash = "sha256:6cea5c54952e71ce32d48f551d5ff67014bdfdbee89e9048fb6e3299f0d4ce45"}, + {file = "llama_index_vector_stores_postgres-0.4.1.tar.gz", hash = "sha256:e1b6e35cc1f84ff05127f97ebc3398a9bbf69e7d0713df79de1e2a1515c59574"}, ] [[package]] name = "llama-index-vector-stores-qdrant" -version = "0.2.14" +version = "0.4.2" requires_python = "<3.13,>=3.9" summary = "llama-index vector_stores qdrant integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "grpcio<2.0.0,>=1.60.0", - "llama-index-core<0.11.0,>=0.10.1", + "llama-index-core<0.13.0,>=0.12.6", "qdrant-client>=1.7.1", ] files = [ - {file = "llama_index_vector_stores_qdrant-0.2.14-py3-none-any.whl", hash = "sha256:ddf5d6ac85d93459dc1e578394de97f6eb5ecb56c584daec3cf6063f0d715cc0"}, - {file = "llama_index_vector_stores_qdrant-0.2.14.tar.gz", hash = "sha256:fb0c3064d417b76341495a98705e404e2cb92b60a4bbe02eba1ba78bbbac9ca2"}, + {file = "llama_index_vector_stores_qdrant-0.4.2-py3-none-any.whl", hash = "sha256:62fe070fc2aa19407ea260141fe65672c693732e6335edbdac7692e06fba247e"}, + {file = "llama_index_vector_stores_qdrant-0.4.2.tar.gz", hash = "sha256:020cba4f4da3e6c499660888e9e4a0c4b4e1c04936a19358c8cca0068e875ae8"}, ] [[package]] name = "llama-index-vector-stores-weaviate" -version = "1.0.2" -requires_python = "<4.0,>=3.8.1" +version = "1.3.1" +requires_python = "<4.0,>=3.9" summary = "llama-index vector_stores weaviate integration" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-core<0.11.0,>=0.10.1", + "llama-index-core<0.13.0,>=0.12.0", "weaviate-client<5.0.0,>=4.5.7", ] files = [ - {file = "llama_index_vector_stores_weaviate-1.0.2-py3-none-any.whl", hash = "sha256:3de2b5f5d666c34f143df7660bff9dc9741899db5f4b6c316604b9722a04ec57"}, - {file = "llama_index_vector_stores_weaviate-1.0.2.tar.gz", hash = "sha256:80d36e098a8a11c3d806cebe02c53f67bcf0f32777be067b4af933d19c5373b5"}, + {file = "llama_index_vector_stores_weaviate-1.3.1-py3-none-any.whl", hash = "sha256:24b5e253ad94930fa655ab9e08ec6507f09859a9a894218e7783383d144f060f"}, + {file = "llama_index_vector_stores_weaviate-1.3.1.tar.gz", hash = "sha256:c522abfb8af5ad3a33183bfb0b0d32c95dbc350989827d49a324b1904610e61d"}, ] [[package]] name = "llama-parse" -version = "0.4.9" -requires_python = "<4.0,>=3.8.1" +version = "0.5.19" +requires_python = "<4.0,>=3.9" summary = "Parse files into RAG-Optimized formats." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "llama-index-core>=0.10.29", + "click<9.0.0,>=8.1.7", + "llama-index-core>=0.11.0", + "pydantic!=2.10", ] files = [ - {file = "llama_parse-0.4.9-py3-none-any.whl", hash = "sha256:71974a57a73d642608cc406942bee4e7fc1a713fa410f51df67da509479ba544"}, - {file = "llama_parse-0.4.9.tar.gz", hash = "sha256:657f8fa5f7d399f14c0454fc05cae6034da0373f191df6cfca17a1b4a704ef87"}, + {file = "llama_parse-0.5.19-py3-none-any.whl", hash = "sha256:715cc895d183531b4299359d4f4004089b2e522f5f137f316084e7aa04035b62"}, + {file = "llama_parse-0.5.19.tar.gz", hash = "sha256:db69da70e199a2664705eb983a70fa92b7cee19dd6cff175af7692a0b8a4dd53"}, ] [[package]] @@ -2095,6 +2174,7 @@ version = "3.0.0" requires_python = ">=3.8" summary = "Python port of markdown-it. Markdown parsing, done right!" groups = ["docs"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "mdurl~=0.1", ] @@ -2105,16 +2185,17 @@ files = [ [[package]] name = "marshmallow" -version = "3.23.1" +version = "3.23.2" requires_python = ">=3.9" summary = "A lightweight library for converting complex datatypes to and from native Python datatypes." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "packaging>=17.0", ] files = [ - {file = "marshmallow-3.23.1-py3-none-any.whl", hash = "sha256:fece2eb2c941180ea1b7fcbd4a83c51bfdd50093fdd3ad2585ee5e1df2508491"}, - {file = "marshmallow-3.23.1.tar.gz", hash = "sha256:3a8dfda6edd8dcdbf216c0ede1d1e78d230a6dc9c5a088f58c4083b974a0d468"}, + {file = "marshmallow-3.23.2-py3-none-any.whl", hash = "sha256:bcaf2d6fd74fb1459f8450e85d994997ad3e70036452cbfa4ab685acb19479b3"}, + {file = "marshmallow-3.23.2.tar.gz", hash = "sha256:c448ac6455ca4d794773f00bae22c2f351d62d739929f761dce5eacb5c468d7f"}, ] [[package]] @@ -2123,6 +2204,7 @@ version = "0.7.0" requires_python = ">=3.6" summary = "McCabe checker, plugin for flake8" groups = ["lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, @@ -2134,6 +2216,7 @@ version = "0.1.2" requires_python = ">=3.7" summary = "Markdown URL utilities" groups = ["docs"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, @@ -2141,35 +2224,39 @@ files = [ [[package]] name = "milvus-lite" -version = "2.4.10" +version = "2.4.11" requires_python = ">=3.7" summary = "A lightweight version of Milvus wrapped with Python." groups = ["default"] -marker = "sys_platform != \"win32\"" +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\" and sys_platform != \"win32\"" dependencies = [ "tqdm", ] files = [ - {file = "milvus_lite-2.4.10-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:fc4246d3ed7d1910847afce0c9ba18212e93a6e9b8406048436940578dfad5cb"}, - {file = "milvus_lite-2.4.10-py3-none-macosx_11_0_arm64.whl", hash = "sha256:74a8e07c5e3b057df17fbb46913388e84df1dc403a200f4e423799a58184c800"}, - {file = "milvus_lite-2.4.10-py3-none-manylinux2014_aarch64.whl", hash = "sha256:240c7386b747bad696ecb5bd1f58d491e86b9d4b92dccee3315ed7256256eddc"}, - {file = "milvus_lite-2.4.10-py3-none-manylinux2014_x86_64.whl", hash = "sha256:211d2e334a043f9282bdd9755f76b9b2d93b23bffa7af240919ffce6a8dfe325"}, + {file = "milvus_lite-2.4.11-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:9e563ae0dca1b41bfd76b90f06b2bcc474460fe4eba142c9bab18d2747ff843b"}, + {file = "milvus_lite-2.4.11-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d21472bd24eb327542817829ce7cb51878318e6173c4d62353c77421aecf98d6"}, + {file = "milvus_lite-2.4.11-py3-none-manylinux2014_aarch64.whl", hash = "sha256:8e6ef27f7f84976f9fd0047b675ede746db2e0cc581c44a916ac9e71e0cef05d"}, + {file = "milvus_lite-2.4.11-py3-none-manylinux2014_x86_64.whl", hash = "sha256:551f56b49fcfbb330b658b4a3c56ed29ba9b692ec201edd1f2dade7f5e39957d"}, ] [[package]] name = "mistralai" -version = "0.4.2" -requires_python = "<4.0,>=3.9" -summary = "" +version = "1.2.5" +requires_python = "<4.0,>=3.8" +summary = "Python Client SDK for the Mistral AI API." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ - "httpx<1,>=0.25", - "orjson<3.11,>=3.9.10", - "pydantic<3,>=2.5.2", + "eval-type-backport<0.3.0,>=0.2.0", + "httpx<0.28.0,>=0.27.0", + "jsonpath-python<2.0.0,>=1.0.6", + "pydantic<3.0.0,>=2.9.0", + "python-dateutil<3.0.0,>=2.8.2", + "typing-inspect<0.10.0,>=0.9.0", ] files = [ - {file = "mistralai-0.4.2-py3-none-any.whl", hash = "sha256:63c98eea139585f0a3b2c4c6c09c453738bac3958055e6f2362d3866e96b0168"}, - {file = "mistralai-0.4.2.tar.gz", hash = "sha256:5eb656710517168ae053f9847b0bb7f617eda07f1f93f946ad6c91a4d407fd93"}, + {file = "mistralai-1.2.5-py3-none-any.whl", hash = "sha256:5f0ef2680ead0329569111face1bf2ff7c67c454d43aa0e21324a8faf6c3ab22"}, + {file = "mistralai-1.2.5.tar.gz", hash = "sha256:05d4130f79704e3b19c0b6320944a348547879fce6894feeb72d9e9d0ee65151"}, ] [[package]] @@ -2178,6 +2265,7 @@ version = "1.31.1" requires_python = ">=3.7" summary = "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." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "PyJWT[crypto]<3,>=1.0.0", "cryptography<46,>=2.5", @@ -2194,6 +2282,7 @@ version = "1.2.0" requires_python = ">=3.7" summary = "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." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "msal<2,>=1.29", "portalocker<3,>=1.4", @@ -2209,6 +2298,7 @@ version = "6.1.0" requires_python = ">=3.8" summary = "multidict implementation" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "typing-extensions>=4.1.0; python_version < \"3.11\"", ] @@ -2243,21 +2333,6 @@ files = [ {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"}, {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"}, {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"}, - {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"}, - {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"}, - {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"}, - {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"}, - {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"}, {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"}, {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"}, ] @@ -2268,6 +2343,7 @@ version = "1.0.0" requires_python = ">=3.5" summary = "Type system extensions for programs checked with the mypy type checker." groups = ["default", "lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, @@ -2279,6 +2355,7 @@ version = "1.6.0" requires_python = ">=3.5" summary = "Patch asyncio to allow nested event loops" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, @@ -2286,13 +2363,14 @@ files = [ [[package]] name = "networkx" -version = "3.2.1" -requires_python = ">=3.9" +version = "3.4.2" +requires_python = ">=3.10" summary = "Python package for creating and manipulating graphs and networks" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ - {file = "networkx-3.2.1-py3-none-any.whl", hash = "sha256:f18c69adc97877c42332c170849c96cefa91881c99a7cb3e95b7c659ebdc1ec2"}, - {file = "networkx-3.2.1.tar.gz", hash = "sha256:9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6"}, + {file = "networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f"}, + {file = "networkx-3.4.2.tar.gz", hash = "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1"}, ] [[package]] @@ -2301,6 +2379,7 @@ version = "3.9.1" requires_python = ">=3.8" summary = "Natural Language Toolkit" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "click", "joblib", @@ -2318,6 +2397,7 @@ version = "1.9.1" requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" summary = "Node.js virtual environment builder" groups = ["lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, @@ -2325,39 +2405,37 @@ files = [ [[package]] name = "numpy" -version = "1.26.4" -requires_python = ">=3.9" +version = "2.2.1" +requires_python = ">=3.10" summary = "Fundamental package for array computing in Python" groups = ["default"] -files = [ - {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, - {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, - {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, - {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, - {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, - {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, - {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, - {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, - {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" +files = [ + {file = "numpy-2.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5edb4e4caf751c1518e6a26a83501fda79bff41cc59dac48d70e6d65d4ec4440"}, + {file = "numpy-2.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aa3017c40d513ccac9621a2364f939d39e550c542eb2a894b4c8da92b38896ab"}, + {file = "numpy-2.2.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:61048b4a49b1c93fe13426e04e04fdf5a03f456616f6e98c7576144677598675"}, + {file = "numpy-2.2.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:7671dc19c7019103ca44e8d94917eba8534c76133523ca8406822efdd19c9308"}, + {file = "numpy-2.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4250888bcb96617e00bfa28ac24850a83c9f3a16db471eca2ee1f1714df0f957"}, + {file = "numpy-2.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7746f235c47abc72b102d3bce9977714c2444bdfaea7888d241b4c4bb6a78bf"}, + {file = "numpy-2.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:059e6a747ae84fce488c3ee397cee7e5f905fd1bda5fb18c66bc41807ff119b2"}, + {file = "numpy-2.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f62aa6ee4eb43b024b0e5a01cf65a0bb078ef8c395e8713c6e8a12a697144528"}, + {file = "numpy-2.2.1-cp310-cp310-win32.whl", hash = "sha256:48fd472630715e1c1c89bf1feab55c29098cb403cc184b4859f9c86d4fcb6a95"}, + {file = "numpy-2.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:b541032178a718c165a49638d28272b771053f628382d5e9d1c93df23ff58dbf"}, + {file = "numpy-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:40f9e544c1c56ba8f1cf7686a8c9b5bb249e665d40d626a23899ba6d5d9e1484"}, + {file = "numpy-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f9b57eaa3b0cd8db52049ed0330747b0364e899e8a606a624813452b8203d5f7"}, + {file = "numpy-2.2.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:bc8a37ad5b22c08e2dbd27df2b3ef7e5c0864235805b1e718a235bcb200cf1cb"}, + {file = "numpy-2.2.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:9036d6365d13b6cbe8f27a0eaf73ddcc070cae584e5ff94bb45e3e9d729feab5"}, + {file = "numpy-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51faf345324db860b515d3f364eaa93d0e0551a88d6218a7d61286554d190d73"}, + {file = "numpy-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38efc1e56b73cc9b182fe55e56e63b044dd26a72128fd2fbd502f75555d92591"}, + {file = "numpy-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:31b89fa67a8042e96715c68e071a1200c4e172f93b0fbe01a14c0ff3ff820fc8"}, + {file = "numpy-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4c86e2a209199ead7ee0af65e1d9992d1dce7e1f63c4b9a616500f93820658d0"}, + {file = "numpy-2.2.1-cp311-cp311-win32.whl", hash = "sha256:b34d87e8a3090ea626003f87f9392b3929a7bbf4104a05b6667348b6bd4bf1cd"}, + {file = "numpy-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:360137f8fb1b753c5cde3ac388597ad680eccbbbb3865ab65efea062c4a1fd16"}, + {file = "numpy-2.2.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7ba9cc93a91d86365a5d270dee221fdc04fb68d7478e6bf6af650de78a8339e3"}, + {file = "numpy-2.2.1-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:3d03883435a19794e41f147612a77a8f56d4e52822337844fff3d4040a142964"}, + {file = "numpy-2.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4511d9e6071452b944207c8ce46ad2f897307910b402ea5fa975da32e0102800"}, + {file = "numpy-2.2.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5c5cc0cbabe9452038ed984d05ac87910f89370b9242371bd9079cb4af61811e"}, + {file = "numpy-2.2.1.tar.gz", hash = "sha256:45681fd7128c8ad1c379f0ca0776a8b0c6583d2f69889ddac01559dfe4390918"}, ] [[package]] @@ -2366,6 +2444,7 @@ version = "3.2.2" requires_python = ">=3.6" summary = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" groups = ["test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "oauthlib-3.2.2-py3-none-any.whl", hash = "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca"}, {file = "oauthlib-3.2.2.tar.gz", hash = "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918"}, @@ -2373,25 +2452,27 @@ files = [ [[package]] name = "ollama" -version = "0.4.4" +version = "0.4.5" requires_python = "<4.0,>=3.8" summary = "The official Python client for Ollama." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "httpx<0.28.0,>=0.27.0", "pydantic<3.0.0,>=2.9.0", ] files = [ - {file = "ollama-0.4.4-py3-none-any.whl", hash = "sha256:0f466e845e2205a1cbf5a2fef4640027b90beaa3b06c574426d8b6b17fd6e139"}, - {file = "ollama-0.4.4.tar.gz", hash = "sha256:e1db064273c739babc2dde9ea84029c4a43415354741b6c50939ddd3dd0f7ffb"}, + {file = "ollama-0.4.5-py3-none-any.whl", hash = "sha256:74936de89a41c87c9745f09f2e1db964b4783002188ac21241bfab747f46d925"}, + {file = "ollama-0.4.5.tar.gz", hash = "sha256:e7fb71a99147046d028ab8b75e51e09437099aea6f8f9a0d91a71f787e97439e"}, ] [[package]] name = "openai" -version = "1.57.4" +version = "1.58.1" requires_python = ">=3.8" summary = "The official Python library for the openai API" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "anyio<5,>=3.5.0", "distro<2,>=1.7.0", @@ -2403,57 +2484,8 @@ dependencies = [ "typing-extensions<5,>=4.11", ] files = [ - {file = "openai-1.57.4-py3-none-any.whl", hash = "sha256:7def1ab2d52f196357ce31b9cfcf4181529ce00838286426bb35be81c035dafb"}, - {file = "openai-1.57.4.tar.gz", hash = "sha256:a8f071a3e9198e2818f63aade68e759417b9f62c0971bdb83de82504b70b77f7"}, -] - -[[package]] -name = "orjson" -version = "3.10.12" -requires_python = ">=3.8" -summary = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" -groups = ["default"] -files = [ - {file = "orjson-3.10.12-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ece01a7ec71d9940cc654c482907a6b65df27251255097629d0dea781f255c6d"}, - {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c34ec9aebc04f11f4b978dd6caf697a2df2dd9b47d35aa4cc606cabcb9df69d7"}, - {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd6ec8658da3480939c79b9e9e27e0db31dffcd4ba69c334e98c9976ac29140e"}, - {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f17e6baf4cf01534c9de8a16c0c611f3d94925d1701bf5f4aff17003677d8ced"}, - {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6402ebb74a14ef96f94a868569f5dccf70d791de49feb73180eb3c6fda2ade56"}, - {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0000758ae7c7853e0a4a6063f534c61656ebff644391e1f81698c1b2d2fc8cd2"}, - {file = "orjson-3.10.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:888442dcee99fd1e5bd37a4abb94930915ca6af4db50e23e746cdf4d1e63db13"}, - {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c1f7a3ce79246aa0e92f5458d86c54f257fb5dfdc14a192651ba7ec2c00f8a05"}, - {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:802a3935f45605c66fb4a586488a38af63cb37aaad1c1d94c982c40dcc452e85"}, - {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1da1ef0113a2be19bb6c557fb0ec2d79c92ebd2fed4cfb1b26bab93f021fb885"}, - {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a3273e99f367f137d5b3fecb5e9f45bcdbfac2a8b2f32fbc72129bbd48789c2"}, - {file = "orjson-3.10.12-cp310-none-win32.whl", hash = "sha256:475661bf249fd7907d9b0a2a2421b4e684355a77ceef85b8352439a9163418c3"}, - {file = "orjson-3.10.12-cp310-none-win_amd64.whl", hash = "sha256:87251dc1fb2b9e5ab91ce65d8f4caf21910d99ba8fb24b49fd0c118b2362d509"}, - {file = "orjson-3.10.12-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a734c62efa42e7df94926d70fe7d37621c783dea9f707a98cdea796964d4cf74"}, - {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:750f8b27259d3409eda8350c2919a58b0cfcd2054ddc1bd317a643afc646ef23"}, - {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb52c22bfffe2857e7aa13b4622afd0dd9d16ea7cc65fd2bf318d3223b1b6252"}, - {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:440d9a337ac8c199ff8251e100c62e9488924c92852362cd27af0e67308c16ef"}, - {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9e15c06491c69997dfa067369baab3bf094ecb74be9912bdc4339972323f252"}, - {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:362d204ad4b0b8724cf370d0cd917bb2dc913c394030da748a3bb632445ce7c4"}, - {file = "orjson-3.10.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b57cbb4031153db37b41622eac67329c7810e5f480fda4cfd30542186f006ae"}, - {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:165c89b53ef03ce0d7c59ca5c82fa65fe13ddf52eeb22e859e58c237d4e33b9b"}, - {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5dee91b8dfd54557c1a1596eb90bcd47dbcd26b0baaed919e6861f076583e9da"}, - {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:77a4e1cfb72de6f905bdff061172adfb3caf7a4578ebf481d8f0530879476c07"}, - {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:038d42c7bc0606443459b8fe2d1f121db474c49067d8d14c6a075bbea8bf14dd"}, - {file = "orjson-3.10.12-cp311-none-win32.whl", hash = "sha256:03b553c02ab39bed249bedd4abe37b2118324d1674e639b33fab3d1dafdf4d79"}, - {file = "orjson-3.10.12-cp311-none-win_amd64.whl", hash = "sha256:8b8713b9e46a45b2af6b96f559bfb13b1e02006f4242c156cbadef27800a55a8"}, - {file = "orjson-3.10.12-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:f29de3ef71a42a5822765def1febfb36e0859d33abf5c2ad240acad5c6a1b78d"}, - {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de365a42acc65d74953f05e4772c974dad6c51cfc13c3240899f534d611be967"}, - {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:91a5a0158648a67ff0004cb0df5df7dcc55bfc9ca154d9c01597a23ad54c8d0c"}, - {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c47ce6b8d90fe9646a25b6fb52284a14ff215c9595914af63a5933a49972ce36"}, - {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0eee4c2c5bfb5c1b47a5db80d2ac7aaa7e938956ae88089f098aff2c0f35d5d8"}, - {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35d3081bbe8b86587eb5c98a73b97f13d8f9fea685cf91a579beddacc0d10566"}, - {file = "orjson-3.10.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:73c23a6e90383884068bc2dba83d5222c9fcc3b99a0ed2411d38150734236755"}, - {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5472be7dc3269b4b52acba1433dac239215366f89dc1d8d0e64029abac4e714e"}, - {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:7319cda750fca96ae5973efb31b17d97a5c5225ae0bc79bf5bf84df9e1ec2ab6"}, - {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:74d5ca5a255bf20b8def6a2b96b1e18ad37b4a122d59b154c458ee9494377f80"}, - {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ff31d22ecc5fb85ef62c7d4afe8301d10c558d00dd24274d4bbe464380d3cd69"}, - {file = "orjson-3.10.12-cp39-none-win32.whl", hash = "sha256:c22c3ea6fba91d84fcb4cda30e64aff548fcf0c44c876e681f47d61d24b12e6b"}, - {file = "orjson-3.10.12-cp39-none-win_amd64.whl", hash = "sha256:be604f60d45ace6b0b33dd990a66b4526f1a7a186ac411c942674625456ca548"}, - {file = "orjson-3.10.12.tar.gz", hash = "sha256:0a78bbda3aea0f9f079057ee1ee8a1ecf790d4f1af88dd67493c6b8ee52506ff"}, + {file = "openai-1.58.1-py3-none-any.whl", hash = "sha256:e2910b1170a6b7f88ef491ac3a42c387f08bd3db533411f7ee391d166571d63c"}, + {file = "openai-1.58.1.tar.gz", hash = "sha256:f5a035fd01e141fc743f4b0e02c41ca49be8fab0866d3b67f5f29b4f4d3c0973"}, ] [[package]] @@ -2462,6 +2494,7 @@ version = "24.2" requires_python = ">=3.8" summary = "Core utilities for Python packages" groups = ["default", "lint", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, @@ -2473,9 +2506,11 @@ version = "2.2.3" requires_python = ">=3.9" summary = "Powerful data structures for data analysis, time series, and statistics" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "numpy>=1.22.4; python_version < \"3.11\"", "numpy>=1.23.2; python_version == \"3.11\"", + "numpy>=1.26.0; python_version >= \"3.12\"", "python-dateutil>=2.8.2", "pytz>=2020.1", "tzdata>=2022.7", @@ -2495,13 +2530,6 @@ files = [ {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, - {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, - {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, - {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, - {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, - {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, - {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, - {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, ] @@ -2511,6 +2539,7 @@ version = "0.9.0" requires_python = ">=3.7" summary = "Parameterized testing with any Python test framework" groups = ["test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "parameterized-0.9.0-py2.py3-none-any.whl", hash = "sha256:4e0758e3d41bea3bbd05ec14fc2c24736723f243b28d702081aef438c9372b1b"}, {file = "parameterized-0.9.0.tar.gz", hash = "sha256:7fc905272cefa4f364c1a3429cbbe9c0f98b793988efb5bf90aac80f08db09b1"}, @@ -2522,6 +2551,7 @@ version = "0.12.1" requires_python = ">=3.8" summary = "Utility library for gitignore style pattern matching of file paths." groups = ["lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, @@ -2533,9 +2563,12 @@ version = "20231228" requires_python = ">=3.6" summary = "PDF parser and analyzer" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "charset-normalizer>=2.0.0", "cryptography>=36.0.0", + "importlib-metadata; python_version < \"3.8\"", + "typing-extensions; python_version < \"3.8\"", ] files = [ {file = "pdfminer.six-20231228-py3-none-any.whl", hash = "sha256:e8d3c3310e6fbc1fe414090123ab01351634b4ecb021232206c4c9a8ca3e3b8f"}, @@ -2544,102 +2577,122 @@ files = [ [[package]] name = "pdfplumber" -version = "0.11.4" +version = "0.11.5" requires_python = ">=3.8" summary = "Plumb a PDF for detailed information about each char, rectangle, and line." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "Pillow>=9.1", "pdfminer-six==20231228", "pypdfium2>=4.18.0", ] files = [ - {file = "pdfplumber-0.11.4-py3-none-any.whl", hash = "sha256:6150f0678c7aaba974ac09839c17475d6c0c4d126b5f92cb85154885f31c6d73"}, - {file = "pdfplumber-0.11.4.tar.gz", hash = "sha256:147b55cde2351fcb9523b46b09cc771eea3602faecfb60d463c6bf951694fbe8"}, + {file = "pdfplumber-0.11.5-py3-none-any.whl", hash = "sha256:a6e0921a57e0ef7356001a0fd811250b0e37a0b42630a922ee48f55cdd534070"}, + {file = "pdfplumber-0.11.5.tar.gz", hash = "sha256:dadd81b62a0b23e078cdd89de26e013850d4daf5690fcf46dec396b07e6737d6"}, ] [[package]] name = "pgvector" -version = "0.2.5" +version = "0.3.6" requires_python = ">=3.8" summary = "pgvector support for Python" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "numpy", ] files = [ - {file = "pgvector-0.2.5-py2.py3-none-any.whl", hash = "sha256:5e5e93ec4d3c45ab1fa388729d56c602f6966296e19deee8878928c6d567e41b"}, + {file = "pgvector-0.3.6-py3-none-any.whl", hash = "sha256:f6c269b3c110ccb7496bac87202148ed18f34b390a0189c783e351062400a75a"}, + {file = "pgvector-0.3.6.tar.gz", hash = "sha256:31d01690e6ea26cea8a633cde5f0f55f5b246d9c8292d68efdef8c22ec994ade"}, ] [[package]] name = "pillow" -version = "11.0.0" +version = "11.1.0" requires_python = ">=3.9" summary = "Python Imaging Library (Fork)" groups = ["default"] -files = [ - {file = "pillow-11.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:6619654954dc4936fcff82db8eb6401d3159ec6be81e33c6000dfd76ae189947"}, - {file = "pillow-11.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b3c5ac4bed7519088103d9450a1107f76308ecf91d6dabc8a33a2fcfb18d0fba"}, - {file = "pillow-11.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a65149d8ada1055029fcb665452b2814fe7d7082fcb0c5bed6db851cb69b2086"}, - {file = "pillow-11.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88a58d8ac0cc0e7f3a014509f0455248a76629ca9b604eca7dc5927cc593c5e9"}, - {file = "pillow-11.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:c26845094b1af3c91852745ae78e3ea47abf3dbcd1cf962f16b9a5fbe3ee8488"}, - {file = "pillow-11.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:1a61b54f87ab5786b8479f81c4b11f4d61702830354520837f8cc791ebba0f5f"}, - {file = "pillow-11.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:674629ff60030d144b7bca2b8330225a9b11c482ed408813924619c6f302fdbb"}, - {file = "pillow-11.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:598b4e238f13276e0008299bd2482003f48158e2b11826862b1eb2ad7c768b97"}, - {file = "pillow-11.0.0-cp310-cp310-win32.whl", hash = "sha256:9a0f748eaa434a41fccf8e1ee7a3eed68af1b690e75328fd7a60af123c193b50"}, - {file = "pillow-11.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:a5629742881bcbc1f42e840af185fd4d83a5edeb96475a575f4da50d6ede337c"}, - {file = "pillow-11.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:ee217c198f2e41f184f3869f3e485557296d505b5195c513b2bfe0062dc537f1"}, - {file = "pillow-11.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1c1d72714f429a521d8d2d018badc42414c3077eb187a59579f28e4270b4b0fc"}, - {file = "pillow-11.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:499c3a1b0d6fc8213519e193796eb1a86a1be4b1877d678b30f83fd979811d1a"}, - {file = "pillow-11.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8b2351c85d855293a299038e1f89db92a2f35e8d2f783489c6f0b2b5f3fe8a3"}, - {file = "pillow-11.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f4dba50cfa56f910241eb7f883c20f1e7b1d8f7d91c750cd0b318bad443f4d5"}, - {file = "pillow-11.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:5ddbfd761ee00c12ee1be86c9c0683ecf5bb14c9772ddbd782085779a63dd55b"}, - {file = "pillow-11.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:45c566eb10b8967d71bf1ab8e4a525e5a93519e29ea071459ce517f6b903d7fa"}, - {file = "pillow-11.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b4fd7bd29610a83a8c9b564d457cf5bd92b4e11e79a4ee4716a63c959699b306"}, - {file = "pillow-11.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cb929ca942d0ec4fac404cbf520ee6cac37bf35be479b970c4ffadf2b6a1cad9"}, - {file = "pillow-11.0.0-cp311-cp311-win32.whl", hash = "sha256:006bcdd307cc47ba43e924099a038cbf9591062e6c50e570819743f5607404f5"}, - {file = "pillow-11.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:52a2d8323a465f84faaba5236567d212c3668f2ab53e1c74c15583cf507a0291"}, - {file = "pillow-11.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:16095692a253047fe3ec028e951fa4221a1f3ed3d80c397e83541a3037ff67c9"}, - {file = "pillow-11.0.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:2e46773dc9f35a1dd28bd6981332fd7f27bec001a918a72a79b4133cf5291dba"}, - {file = "pillow-11.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2679d2258b7f1192b378e2893a8a0a0ca472234d4c2c0e6bdd3380e8dfa21b6a"}, - {file = "pillow-11.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eda2616eb2313cbb3eebbe51f19362eb434b18e3bb599466a1ffa76a033fb916"}, - {file = "pillow-11.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ec184af98a121fb2da42642dea8a29ec80fc3efbaefb86d8fdd2606619045d"}, - {file = "pillow-11.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:8594f42df584e5b4bb9281799698403f7af489fba84c34d53d1c4bfb71b7c4e7"}, - {file = "pillow-11.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:c12b5ae868897c7338519c03049a806af85b9b8c237b7d675b8c5e089e4a618e"}, - {file = "pillow-11.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:70fbbdacd1d271b77b7721fe3cdd2d537bbbd75d29e6300c672ec6bb38d9672f"}, - {file = "pillow-11.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5178952973e588b3f1360868847334e9e3bf49d19e169bbbdfaf8398002419ae"}, - {file = "pillow-11.0.0-cp39-cp39-win32.whl", hash = "sha256:8c676b587da5673d3c75bd67dd2a8cdfeb282ca38a30f37950511766b26858c4"}, - {file = "pillow-11.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:94f3e1780abb45062287b4614a5bc0874519c86a777d4a7ad34978e86428b8dd"}, - {file = "pillow-11.0.0-cp39-cp39-win_arm64.whl", hash = "sha256:290f2cc809f9da7d6d622550bbf4c1e57518212da51b6a30fe8e0a270a5b78bd"}, - {file = "pillow-11.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1187739620f2b365de756ce086fdb3604573337cc28a0d3ac4a01ab6b2d2a6d2"}, - {file = "pillow-11.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fbbcb7b57dc9c794843e3d1258c0fbf0f48656d46ffe9e09b63bbd6e8cd5d0a2"}, - {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d203af30149ae339ad1b4f710d9844ed8796e97fda23ffbc4cc472968a47d0b"}, - {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21a0d3b115009ebb8ac3d2ebec5c2982cc693da935f4ab7bb5c8ebe2f47d36f2"}, - {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:73853108f56df97baf2bb8b522f3578221e56f646ba345a372c78326710d3830"}, - {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e58876c91f97b0952eb766123bfef372792ab3f4e3e1f1a2267834c2ab131734"}, - {file = "pillow-11.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:224aaa38177597bb179f3ec87eeefcce8e4f85e608025e9cfac60de237ba6316"}, - {file = "pillow-11.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5bd2d3bdb846d757055910f0a59792d33b555800813c3b39ada1829c372ccb06"}, - {file = "pillow-11.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:375b8dd15a1f5d2feafff536d47e22f69625c1aa92f12b339ec0b2ca40263273"}, - {file = "pillow-11.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:daffdf51ee5db69a82dd127eabecce20729e21f7a3680cf7cbb23f0829189790"}, - {file = "pillow-11.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7326a1787e3c7b0429659e0a944725e1b03eeaa10edd945a86dead1913383944"}, - {file = "pillow-11.0.0.tar.gz", hash = "sha256:72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739"}, +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" +files = [ + {file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"}, + {file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269"}, + {file = "pillow-11.1.0-cp310-cp310-win32.whl", hash = "sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49"}, + {file = "pillow-11.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a"}, + {file = "pillow-11.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96"}, + {file = "pillow-11.1.0-cp311-cp311-win32.whl", hash = "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f"}, + {file = "pillow-11.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761"}, + {file = "pillow-11.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0"}, + {file = "pillow-11.1.0.tar.gz", hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20"}, ] [[package]] name = "pinecone-client" -version = "3.2.2" +version = "5.0.1" requires_python = "<4.0,>=3.8" summary = "Pinecone client and SDK" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "certifi>=2019.11.17", + "pinecone-plugin-inference<2.0.0,>=1.0.3", + "pinecone-plugin-interface<0.0.8,>=0.0.7", "tqdm>=4.64.1", "typing-extensions>=3.7.4", "urllib3>=1.26.0; python_version >= \"3.8\" and python_version < \"3.12\"", + "urllib3>=1.26.5; python_version ~= \"3.12\"", +] +files = [ + {file = "pinecone_client-5.0.1-py3-none-any.whl", hash = "sha256:c8f7835e1045ba84e295f217a8e85573ffb80b41501bbc1af6d92c9631c567a7"}, + {file = "pinecone_client-5.0.1.tar.gz", hash = "sha256:11c33ff5d1c38a6ce69e69fe532c0f22f312fb28d761bb30b3767816d3181d64"}, +] + +[[package]] +name = "pinecone-plugin-inference" +version = "1.1.0" +requires_python = "<4.0,>=3.8" +summary = "Embeddings plugin for Pinecone SDK" +groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" +dependencies = [ + "pinecone-plugin-interface<0.0.8,>=0.0.7", +] +files = [ + {file = "pinecone_plugin_inference-1.1.0-py3-none-any.whl", hash = "sha256:32c61aba21c9a28fdcd0e782204c1ca641aeb3fd6e42764fbf0de8186eb657ec"}, + {file = "pinecone_plugin_inference-1.1.0.tar.gz", hash = "sha256:283e5ae4590b901bf2179beb56fc3d1b715e63582f37ec7abb0708cf70912d1f"}, ] + +[[package]] +name = "pinecone-plugin-interface" +version = "0.0.7" +requires_python = "<4.0,>=3.8" +summary = "Plugin interface for the Pinecone python client" +groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ - {file = "pinecone_client-3.2.2-py3-none-any.whl", hash = "sha256:7e492fdda23c73726bc0cb94c689bb950d06fb94e82b701a0c610c2e830db327"}, - {file = "pinecone_client-3.2.2.tar.gz", hash = "sha256:887a12405f90ac11c396490f605fc479f31cf282361034d1ae0fccc02ac75bee"}, + {file = "pinecone_plugin_interface-0.0.7-py3-none-any.whl", hash = "sha256:875857ad9c9fc8bbc074dbe780d187a2afd21f5bfe0f3b08601924a61ef1bba8"}, + {file = "pinecone_plugin_interface-0.0.7.tar.gz", hash = "sha256:b8e6675e41847333aa13923cc44daa3f85676d7157324682dc1640588a982846"}, ] [[package]] @@ -2648,6 +2701,7 @@ version = "4.3.6" requires_python = ">=3.8" summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." groups = ["lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, @@ -2659,6 +2713,7 @@ version = "1.5.0" requires_python = ">=3.8" summary = "plugin and hook calling mechanisms for python" groups = ["test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, @@ -2670,6 +2725,7 @@ version = "2.10.1" requires_python = ">=3.8" summary = "Wraps the portalocker recipe for easy usage" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "pywin32>=226; platform_system == \"Windows\"", ] @@ -2684,6 +2740,7 @@ version = "3.3.3" requires_python = ">=3.8" summary = "A framework for managing and maintaining multi-language pre-commit hooks." groups = ["lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "cfgv>=2.0.0", "identify>=1.0.0", @@ -2702,6 +2759,7 @@ version = "0.2.1" requires_python = ">=3.9" summary = "Accelerated property cache" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6b3f39a85d671436ee3d12c017f8fdea38509e4f25b28eb25877293c98c243f6"}, {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d51fbe4285d5db5d92a929e3e21536ea3dd43732c5b177c7ef03f918dff9f2"}, @@ -2735,22 +2793,6 @@ files = [ {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:160291c60081f23ee43d44b08a7e5fb76681221a8e10b3139618c5a9a291b84e"}, {file = "propcache-0.2.1-cp311-cp311-win32.whl", hash = "sha256:819ce3b883b7576ca28da3861c7e1a88afd08cc8c96908e08a3f4dd64a228034"}, {file = "propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3"}, - {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6a9a8c34fb7bb609419a211e59da8887eeca40d300b5ea8e56af98f6fbbb1541"}, - {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae1aa1cd222c6d205853b3013c69cd04515f9d6ab6de4b0603e2e1c33221303e"}, - {file = "propcache-0.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:accb6150ce61c9c4b7738d45550806aa2b71c7668c6942f17b0ac182b6142fd4"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eee736daafa7af6d0a2dc15cc75e05c64f37fc37bafef2e00d77c14171c2097"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7a31fc1e1bd362874863fdeed71aed92d348f5336fd84f2197ba40c59f061bd"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba4cfa1052819d16699e1d55d18c92b6e094d4517c41dd231a8b9f87b6fa681"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f089118d584e859c62b3da0892b88a83d611c2033ac410e929cb6754eec0ed16"}, - {file = "propcache-0.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:781e65134efaf88feb447e8c97a51772aa75e48b794352f94cb7ea717dedda0d"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31f5af773530fd3c658b32b6bdc2d0838543de70eb9a2156c03e410f7b0d3aae"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a7a078f5d37bee6690959c813977da5291b24286e7b962e62a94cec31aa5188b"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cea7daf9fc7ae6687cf1e2c049752f19f146fdc37c2cc376e7d0032cf4f25347"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:8b3489ff1ed1e8315674d0775dc7d2195fb13ca17b3808721b54dbe9fd020faf"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9403db39be1393618dd80c746cb22ccda168efce239c73af13c3763ef56ffc04"}, - {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5d97151bc92d2b2578ff7ce779cdb9174337390a535953cbb9452fb65164c587"}, - {file = "propcache-0.2.1-cp39-cp39-win32.whl", hash = "sha256:9caac6b54914bdf41bcc91e7eb9147d331d29235a7c967c150ef5df6464fd1bb"}, - {file = "propcache-0.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:92fc4500fcb33899b05ba73276dfb684a20d31caa567b7cb5252d48f896a91b1"}, {file = "propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54"}, {file = "propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64"}, ] @@ -2761,6 +2803,7 @@ version = "1.25.0" requires_python = ">=3.7" summary = "Beautiful, Pythonic protocol buffers." groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "protobuf<6.0.0dev,>=3.19.0", ] @@ -2775,14 +2818,13 @@ version = "4.25.5" requires_python = ">=3.8" summary = "" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "protobuf-4.25.5-cp310-abi3-win32.whl", hash = "sha256:5e61fd921603f58d2f5acb2806a929b4675f8874ff5f330b7d6f7e2e784bbcd8"}, {file = "protobuf-4.25.5-cp310-abi3-win_amd64.whl", hash = "sha256:4be0571adcbe712b282a330c6e89eae24281344429ae95c6d85e79e84780f5ea"}, {file = "protobuf-4.25.5-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:b2fde3d805354df675ea4c7c6338c1aecd254dfc9925e88c6d31a2bcb97eb173"}, {file = "protobuf-4.25.5-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:919ad92d9b0310070f8356c24b855c98df2b8bd207ebc1c0c6fcc9ab1e007f3d"}, {file = "protobuf-4.25.5-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:fe14e16c22be926d3abfcb500e60cab068baf10b542b8c858fa27e098123e331"}, - {file = "protobuf-4.25.5-cp39-cp39-win32.whl", hash = "sha256:abe32aad8561aa7cc94fc7ba4fdef646e576983edb94a73381b03c53728a626f"}, - {file = "protobuf-4.25.5-cp39-cp39-win_amd64.whl", hash = "sha256:7a183f592dc80aa7c8da7ad9e55091c4ffc9497b3054452d629bb85fa27c2a45"}, {file = "protobuf-4.25.5-py3-none-any.whl", hash = "sha256:0aebecb809cae990f8129ada5ca273d9d670b76d9bfc9b1809f0a9c02b7dbf41"}, {file = "protobuf-4.25.5.tar.gz", hash = "sha256:7f8249476b4a9473645db7f8ab42b02fe1488cbe5fb72fddd445e0665afd8584"}, ] @@ -2793,6 +2835,7 @@ version = "2.9.10" requires_python = ">=3.8" summary = "psycopg2 - Python-PostgreSQL Database Adapter" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "psycopg2-binary-2.9.10.tar.gz", hash = "sha256:4b3df0e6990aa98acda57d983942eff13d824135fe2250e6522edaa782a06de2"}, {file = "psycopg2_binary-2.9.10-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:0ea8e3d0ae83564f2fc554955d327fa081d065c8ca5cc6d2abb643e2c9c1200f"}, @@ -2819,51 +2862,6 @@ files = [ {file = "psycopg2_binary-2.9.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:35958ec9e46432d9076286dda67942ed6d968b9c3a6a2fd62b48939d1d78bf68"}, {file = "psycopg2_binary-2.9.10-cp311-cp311-win32.whl", hash = "sha256:ecced182e935529727401b24d76634a357c71c9275b356efafd8a2a91ec07392"}, {file = "psycopg2_binary-2.9.10-cp311-cp311-win_amd64.whl", hash = "sha256:ee0e8c683a7ff25d23b55b11161c2663d4b099770f6085ff0a20d4505778d6b4"}, - {file = "psycopg2_binary-2.9.10-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:7a813c8bdbaaaab1f078014b9b0b13f5de757e2b5d9be6403639b298a04d218b"}, - {file = "psycopg2_binary-2.9.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d00924255d7fc916ef66e4bf22f354a940c67179ad3fd7067d7a0a9c84d2fbfc"}, - {file = "psycopg2_binary-2.9.10-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7559bce4b505762d737172556a4e6ea8a9998ecac1e39b5233465093e8cee697"}, - {file = "psycopg2_binary-2.9.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e8b58f0a96e7a1e341fc894f62c1177a7c83febebb5ff9123b579418fdc8a481"}, - {file = "psycopg2_binary-2.9.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b269105e59ac96aba877c1707c600ae55711d9dcd3fc4b5012e4af68e30c648"}, - {file = "psycopg2_binary-2.9.10-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:79625966e176dc97ddabc142351e0409e28acf4660b88d1cf6adb876d20c490d"}, - {file = "psycopg2_binary-2.9.10-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:8aabf1c1a04584c168984ac678a668094d831f152859d06e055288fa515e4d30"}, - {file = "psycopg2_binary-2.9.10-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:19721ac03892001ee8fdd11507e6a2e01f4e37014def96379411ca99d78aeb2c"}, - {file = "psycopg2_binary-2.9.10-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7f5d859928e635fa3ce3477704acee0f667b3a3d3e4bb109f2b18d4005f38287"}, - {file = "psycopg2_binary-2.9.10-cp39-cp39-win32.whl", hash = "sha256:3216ccf953b3f267691c90c6fe742e45d890d8272326b4a8b20850a03d05b7b8"}, - {file = "psycopg2_binary-2.9.10-cp39-cp39-win_amd64.whl", hash = "sha256:30e34c4e97964805f715206c7b789d54a78b70f3ff19fbe590104b71c45600e5"}, -] - -[[package]] -name = "pyarrow" -version = "15.0.2" -requires_python = ">=3.8" -summary = "Python library for Apache Arrow" -groups = ["default"] -dependencies = [ - "numpy<2,>=1.16.6", -] -files = [ - {file = "pyarrow-15.0.2-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:88b340f0a1d05b5ccc3d2d986279045655b1fe8e41aba6ca44ea28da0d1455d8"}, - {file = "pyarrow-15.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:eaa8f96cecf32da508e6c7f69bb8401f03745c050c1dd42ec2596f2e98deecac"}, - {file = "pyarrow-15.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23c6753ed4f6adb8461e7c383e418391b8d8453c5d67e17f416c3a5d5709afbd"}, - {file = "pyarrow-15.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f639c059035011db8c0497e541a8a45d98a58dbe34dc8fadd0ef128f2cee46e5"}, - {file = "pyarrow-15.0.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:290e36a59a0993e9a5224ed2fb3e53375770f07379a0ea03ee2fce2e6d30b423"}, - {file = "pyarrow-15.0.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:06c2bb2a98bc792f040bef31ad3e9be6a63d0cb39189227c08a7d955db96816e"}, - {file = "pyarrow-15.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:f7a197f3670606a960ddc12adbe8075cea5f707ad7bf0dffa09637fdbb89f76c"}, - {file = "pyarrow-15.0.2-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:5f8bc839ea36b1f99984c78e06e7a06054693dc2af8920f6fb416b5bca9944e4"}, - {file = "pyarrow-15.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f5e81dfb4e519baa6b4c80410421528c214427e77ca0ea9461eb4097c328fa33"}, - {file = "pyarrow-15.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a4f240852b302a7af4646c8bfe9950c4691a419847001178662a98915fd7ee7"}, - {file = "pyarrow-15.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e7d9cfb5a1e648e172428c7a42b744610956f3b70f524aa3a6c02a448ba853e"}, - {file = "pyarrow-15.0.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:2d4f905209de70c0eb5b2de6763104d5a9a37430f137678edfb9a675bac9cd98"}, - {file = "pyarrow-15.0.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:90adb99e8ce5f36fbecbbc422e7dcbcbed07d985eed6062e459e23f9e71fd197"}, - {file = "pyarrow-15.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:b116e7fd7889294cbd24eb90cd9bdd3850be3738d61297855a71ac3b8124ee38"}, - {file = "pyarrow-15.0.2-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:89722cb64286ab3d4daf168386f6968c126057b8c7ec3ef96302e81d8cdb8ae4"}, - {file = "pyarrow-15.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cd0ba387705044b3ac77b1b317165c0498299b08261d8122c96051024f953cd5"}, - {file = "pyarrow-15.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad2459bf1f22b6a5cdcc27ebfd99307d5526b62d217b984b9f5c974651398832"}, - {file = "pyarrow-15.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58922e4bfece8b02abf7159f1f53a8f4d9f8e08f2d988109126c17c3bb261f22"}, - {file = "pyarrow-15.0.2-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:adccc81d3dc0478ea0b498807b39a8d41628fa9210729b2f718b78cb997c7c91"}, - {file = "pyarrow-15.0.2-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:8bd2baa5fe531571847983f36a30ddbf65261ef23e496862ece83bdceb70420d"}, - {file = "pyarrow-15.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6669799a1d4ca9da9c7e06ef48368320f5856f36f9a4dd31a11839dda3f6cc8c"}, - {file = "pyarrow-15.0.2.tar.gz", hash = "sha256:9c9bc803cb3b7bfacc1e96ffbfd923601065d9d3f911179d81e72d99fd74a3d9"}, ] [[package]] @@ -2872,6 +2870,7 @@ version = "0.6.1" requires_python = ">=3.8" summary = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629"}, {file = "pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034"}, @@ -2883,6 +2882,7 @@ version = "0.4.1" requires_python = ">=3.8" summary = "A collection of ASN.1-based protocols modules" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "pyasn1<0.7.0,>=0.4.6", ] @@ -2897,6 +2897,7 @@ version = "2.10.0" requires_python = ">=3.6" summary = "Python style guide checker" groups = ["lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "pycodestyle-2.10.0-py2.py3-none-any.whl", hash = "sha256:8a4eaf0d0495c7395bdab3589ac2db602797d76207242c17d470186815706610"}, {file = "pycodestyle-2.10.0.tar.gz", hash = "sha256:347187bdb476329d98f695c213d7295a846d1152ff4fe9bacb8a9590b8ee7053"}, @@ -2908,7 +2909,7 @@ version = "2.22" requires_python = ">=3.8" summary = "C parser in Python" groups = ["default"] -marker = "platform_python_implementation != \"PyPy\"" +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\" and platform_python_implementation != \"PyPy\"" files = [ {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, @@ -2916,89 +2917,69 @@ files = [ [[package]] name = "pydantic" -version = "2.10.3" +version = "2.10.4" requires_python = ">=3.8" summary = "Data validation using Python type hints" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "annotated-types>=0.6.0", - "pydantic-core==2.27.1", + "pydantic-core==2.27.2", "typing-extensions>=4.12.2", ] files = [ - {file = "pydantic-2.10.3-py3-none-any.whl", hash = "sha256:be04d85bbc7b65651c5f8e6b9976ed9c6f41782a55524cef079a34a0bb82144d"}, - {file = "pydantic-2.10.3.tar.gz", hash = "sha256:cb5ac360ce894ceacd69c403187900a02c4b20b693a9dd1d643e1effab9eadf9"}, + {file = "pydantic-2.10.4-py3-none-any.whl", hash = "sha256:597e135ea68be3a37552fb524bc7d0d66dcf93d395acd93a00682f1efcb8ee3d"}, + {file = "pydantic-2.10.4.tar.gz", hash = "sha256:82f12e9723da6de4fe2ba888b5971157b3be7ad914267dea8f05f82b28254f06"}, ] [[package]] name = "pydantic-core" -version = "2.27.1" +version = "2.27.2" requires_python = ">=3.8" summary = "Core functionality for Pydantic validation and serialization" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "typing-extensions!=4.7.0,>=4.6.0", ] files = [ - {file = "pydantic_core-2.27.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:71a5e35c75c021aaf400ac048dacc855f000bdfed91614b4a726f7432f1f3d6a"}, - {file = "pydantic_core-2.27.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f82d068a2d6ecfc6e054726080af69a6764a10015467d7d7b9f66d6ed5afa23b"}, - {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:121ceb0e822f79163dd4699e4c54f5ad38b157084d97b34de8b232bcaad70278"}, - {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4603137322c18eaf2e06a4495f426aa8d8388940f3c457e7548145011bb68e05"}, - {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a33cd6ad9017bbeaa9ed78a2e0752c5e250eafb9534f308e7a5f7849b0b1bfb4"}, - {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15cc53a3179ba0fcefe1e3ae50beb2784dede4003ad2dfd24f81bba4b23a454f"}, - {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45d9c5eb9273aa50999ad6adc6be5e0ecea7e09dbd0d31bd0c65a55a2592ca08"}, - {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8bf7b66ce12a2ac52d16f776b31d16d91033150266eb796967a7e4621707e4f6"}, - {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:655d7dd86f26cb15ce8a431036f66ce0318648f8853d709b4167786ec2fa4807"}, - {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:5556470f1a2157031e676f776c2bc20acd34c1990ca5f7e56f1ebf938b9ab57c"}, - {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f69ed81ab24d5a3bd93861c8c4436f54afdf8e8cc421562b0c7504cf3be58206"}, - {file = "pydantic_core-2.27.1-cp310-none-win32.whl", hash = "sha256:f5a823165e6d04ccea61a9f0576f345f8ce40ed533013580e087bd4d7442b52c"}, - {file = "pydantic_core-2.27.1-cp310-none-win_amd64.whl", hash = "sha256:57866a76e0b3823e0b56692d1a0bf722bffb324839bb5b7226a7dbd6c9a40b17"}, - {file = "pydantic_core-2.27.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac3b20653bdbe160febbea8aa6c079d3df19310d50ac314911ed8cc4eb7f8cb8"}, - {file = "pydantic_core-2.27.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a5a8e19d7c707c4cadb8c18f5f60c843052ae83c20fa7d44f41594c644a1d330"}, - {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f7059ca8d64fea7f238994c97d91f75965216bcbe5f695bb44f354893f11d52"}, - {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bed0f8a0eeea9fb72937ba118f9db0cb7e90773462af7962d382445f3005e5a4"}, - {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a3cb37038123447cf0f3ea4c74751f6a9d7afef0eb71aa07bf5f652b5e6a132c"}, - {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84286494f6c5d05243456e04223d5a9417d7f443c3b76065e75001beb26f88de"}, - {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acc07b2cfc5b835444b44a9956846b578d27beeacd4b52e45489e93276241025"}, - {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4fefee876e07a6e9aad7a8c8c9f85b0cdbe7df52b8a9552307b09050f7512c7e"}, - {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:258c57abf1188926c774a4c94dd29237e77eda19462e5bb901d88adcab6af919"}, - {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:35c14ac45fcfdf7167ca76cc80b2001205a8d5d16d80524e13508371fb8cdd9c"}, - {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d1b26e1dff225c31897696cab7d4f0a315d4c0d9e8666dbffdb28216f3b17fdc"}, - {file = "pydantic_core-2.27.1-cp311-none-win32.whl", hash = "sha256:2cdf7d86886bc6982354862204ae3b2f7f96f21a3eb0ba5ca0ac42c7b38598b9"}, - {file = "pydantic_core-2.27.1-cp311-none-win_amd64.whl", hash = "sha256:3af385b0cee8df3746c3f406f38bcbfdc9041b5c2d5ce3e5fc6637256e60bbc5"}, - {file = "pydantic_core-2.27.1-cp311-none-win_arm64.whl", hash = "sha256:81f2ec23ddc1b476ff96563f2e8d723830b06dceae348ce02914a37cb4e74b89"}, - {file = "pydantic_core-2.27.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e9386266798d64eeb19dd3677051f5705bf873e98e15897ddb7d76f477131967"}, - {file = "pydantic_core-2.27.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4228b5b646caa73f119b1ae756216b59cc6e2267201c27d3912b592c5e323b60"}, - {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b3dfe500de26c52abe0477dde16192ac39c98f05bf2d80e76102d394bd13854"}, - {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aee66be87825cdf72ac64cb03ad4c15ffef4143dbf5c113f64a5ff4f81477bf9"}, - {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b748c44bb9f53031c8cbc99a8a061bc181c1000c60a30f55393b6e9c45cc5bd"}, - {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ca038c7f6a0afd0b2448941b6ef9d5e1949e999f9e5517692eb6da58e9d44be"}, - {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e0bd57539da59a3e4671b90a502da9a28c72322a4f17866ba3ac63a82c4498e"}, - {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ac6c2c45c847bbf8f91930d88716a0fb924b51e0c6dad329b793d670ec5db792"}, - {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b94d4ba43739bbe8b0ce4262bcc3b7b9f31459ad120fb595627eaeb7f9b9ca01"}, - {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:00e6424f4b26fe82d44577b4c842d7df97c20be6439e8e685d0d715feceb9fb9"}, - {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:38de0a70160dd97540335b7ad3a74571b24f1dc3ed33f815f0880682e6880131"}, - {file = "pydantic_core-2.27.1-cp39-none-win32.whl", hash = "sha256:7ccebf51efc61634f6c2344da73e366c75e735960b5654b63d7e6f69a5885fa3"}, - {file = "pydantic_core-2.27.1-cp39-none-win_amd64.whl", hash = "sha256:a57847b090d7892f123726202b7daa20df6694cbd583b67a592e856bff603d6c"}, - {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3fa80ac2bd5856580e242dbc202db873c60a01b20309c8319b5c5986fbe53ce6"}, - {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d950caa237bb1954f1b8c9227b5065ba6875ac9771bb8ec790d956a699b78676"}, - {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e4216e64d203e39c62df627aa882f02a2438d18a5f21d7f721621f7a5d3611d"}, - {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02a3d637bd387c41d46b002f0e49c52642281edacd2740e5a42f7017feea3f2c"}, - {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:161c27ccce13b6b0c8689418da3885d3220ed2eae2ea5e9b2f7f3d48f1d52c27"}, - {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:19910754e4cc9c63bc1c7f6d73aa1cfee82f42007e407c0f413695c2f7ed777f"}, - {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:e173486019cc283dc9778315fa29a363579372fe67045e971e89b6365cc035ed"}, - {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:af52d26579b308921b73b956153066481f064875140ccd1dfd4e77db89dbb12f"}, - {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:981fb88516bd1ae8b0cbbd2034678a39dedc98752f264ac9bc5839d3923fa04c"}, - {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5fde892e6c697ce3e30c61b239330fc5d569a71fefd4eb6512fc6caec9dd9e2f"}, - {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:816f5aa087094099fff7edabb5e01cc370eb21aa1a1d44fe2d2aefdfb5599b31"}, - {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c10c309e18e443ddb108f0ef64e8729363adbfd92d6d57beec680f6261556f3"}, - {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98476c98b02c8e9b2eec76ac4156fd006628b1b2d0ef27e548ffa978393fd154"}, - {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c3027001c28434e7ca5a6e1e527487051136aa81803ac812be51802150d880dd"}, - {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:7699b1df36a48169cdebda7ab5a2bac265204003f153b4bd17276153d997670a"}, - {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:1c39b07d90be6b48968ddc8c19e7585052088fd7ec8d568bb31ff64c70ae3c97"}, - {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:46ccfe3032b3915586e469d4972973f893c0a2bb65669194a5bdea9bacc088c2"}, - {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:62ba45e21cf6571d7f716d903b5b7b6d2617e2d5d67c0923dc47b9d41369f840"}, - {file = "pydantic_core-2.27.1.tar.gz", hash = "sha256:62a763352879b84aa31058fc931884055fd75089cccbd9d58bb6afd01141b235"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, + {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, ] [[package]] @@ -3007,6 +2988,7 @@ version = "3.0.1" requires_python = ">=3.6" summary = "passive checker of Python programs" groups = ["lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "pyflakes-3.0.1-py2.py3-none-any.whl", hash = "sha256:ec55bf7fe21fff7f1ad2f7da62363d749e2a470500eab1b555334b67aa1ef8cf"}, {file = "pyflakes-3.0.1.tar.gz", hash = "sha256:ec8b276a6b60bd80defed25add7e439881c19e64850afd9b346283d4165fd0fd"}, @@ -3018,6 +3000,7 @@ version = "2.18.0" requires_python = ">=3.8" summary = "Pygments is a syntax highlighting package written in Python." groups = ["docs"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, @@ -3029,6 +3012,7 @@ version = "2.10.1" requires_python = ">=3.9" summary = "JSON Web Token implementation in Python" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb"}, {file = "pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953"}, @@ -3041,6 +3025,7 @@ extras = ["crypto"] requires_python = ">=3.9" summary = "JSON Web Token implementation in Python" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "PyJWT==2.10.1", "cryptography>=3.4.0", @@ -3056,12 +3041,15 @@ version = "2.4.9" requires_python = ">=3.8" summary = "Python Sdk for Milvus" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "environs<=9.5.0", "grpcio>=1.49.1", "milvus-lite<2.5.0,>=2.4.0; sys_platform != \"win32\"", + "numpy<1.25.0; python_version <= \"3.8\"", "pandas>=1.2.4", "protobuf>=3.20.0", + "setuptools<70.1; python_version <= \"3.8\"", "setuptools>69", "ujson>=2.0.0", ] @@ -3070,40 +3058,54 @@ files = [ {file = "pymilvus-2.4.9.tar.gz", hash = "sha256:0937663700007c23a84cfc0656160b301f6ff9247aaec4c96d599a6b43572136"}, ] +[[package]] +name = "pyparsing" +version = "3.2.1" +requires_python = ">=3.9" +summary = "pyparsing module - Classes and methods to define and execute parsing grammars" +groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" +files = [ + {file = "pyparsing-3.2.1-py3-none-any.whl", hash = "sha256:506ff4f4386c4cec0590ec19e6302d3aedb992fdc02c761e90416f158dacf8e1"}, + {file = "pyparsing-3.2.1.tar.gz", hash = "sha256:61980854fd66de3a90028d679a954d5f2623e83144b5afe5ee86f43d762e5f0a"}, +] + [[package]] name = "pypdf" -version = "4.3.1" -requires_python = ">=3.6" +version = "5.1.0" +requires_python = ">=3.8" summary = "A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "typing-extensions>=4.0; python_version < \"3.11\"", ] files = [ - {file = "pypdf-4.3.1-py3-none-any.whl", hash = "sha256:64b31da97eda0771ef22edb1bfecd5deee4b72c3d1736b7df2689805076d6418"}, - {file = "pypdf-4.3.1.tar.gz", hash = "sha256:b2f37fe9a3030aa97ca86067a56ba3f9d3565f9a791b305c7355d8392c30d91b"}, + {file = "pypdf-5.1.0-py3-none-any.whl", hash = "sha256:3bd4f503f4ebc58bae40d81e81a9176c400cbbac2ba2d877367595fb524dfdfc"}, + {file = "pypdf-5.1.0.tar.gz", hash = "sha256:425a129abb1614183fd1aca6982f650b47f8026867c0ce7c4b9f281c443d2740"}, ] [[package]] name = "pypdfium2" -version = "4.30.0" +version = "4.30.1" requires_python = ">=3.6" summary = "Python bindings to PDFium" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ - {file = "pypdfium2-4.30.0-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:b33ceded0b6ff5b2b93bc1fe0ad4b71aa6b7e7bd5875f1ca0cdfb6ba6ac01aab"}, - {file = "pypdfium2-4.30.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:4e55689f4b06e2d2406203e771f78789bd4f190731b5d57383d05cf611d829de"}, - {file = "pypdfium2-4.30.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e6e50f5ce7f65a40a33d7c9edc39f23140c57e37144c2d6d9e9262a2a854854"}, - {file = "pypdfium2-4.30.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3d0dd3ecaffd0b6dbda3da663220e705cb563918249bda26058c6036752ba3a2"}, - {file = "pypdfium2-4.30.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cc3bf29b0db8c76cdfaac1ec1cde8edf211a7de7390fbf8934ad2aa9b4d6dfad"}, - {file = "pypdfium2-4.30.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1f78d2189e0ddf9ac2b7a9b9bd4f0c66f54d1389ff6c17e9fd9dc034d06eb3f"}, - {file = "pypdfium2-4.30.0-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:5eda3641a2da7a7a0b2f4dbd71d706401a656fea521b6b6faa0675b15d31a163"}, - {file = "pypdfium2-4.30.0-py3-none-musllinux_1_1_i686.whl", hash = "sha256:0dfa61421b5eb68e1188b0b2231e7ba35735aef2d867d86e48ee6cab6975195e"}, - {file = "pypdfium2-4.30.0-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:f33bd79e7a09d5f7acca3b0b69ff6c8a488869a7fab48fdf400fec6e20b9c8be"}, - {file = "pypdfium2-4.30.0-py3-none-win32.whl", hash = "sha256:ee2410f15d576d976c2ab2558c93d392a25fb9f6635e8dd0a8a3a5241b275e0e"}, - {file = "pypdfium2-4.30.0-py3-none-win_amd64.whl", hash = "sha256:90dbb2ac07be53219f56be09961eb95cf2473f834d01a42d901d13ccfad64b4c"}, - {file = "pypdfium2-4.30.0-py3-none-win_arm64.whl", hash = "sha256:119b2969a6d6b1e8d55e99caaf05290294f2d0fe49c12a3f17102d01c441bd29"}, - {file = "pypdfium2-4.30.0.tar.gz", hash = "sha256:48b5b7e5566665bc1015b9d69c1ebabe21f6aee468b509531c3c8318eeee2e16"}, + {file = "pypdfium2-4.30.1-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:e07c47633732cc18d890bb7e965ad28a9c5a932e548acb928596f86be2e5ae37"}, + {file = "pypdfium2-4.30.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:5ea2d44e96d361123b67b00f527017aa9c847c871b5714e013c01c3eb36a79fe"}, + {file = "pypdfium2-4.30.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1de7a3a36803171b3f66911131046d65a732f9e7834438191cb58235e6163c4e"}, + {file = "pypdfium2-4.30.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b8a4231efb13170354f568c722d6540b8d5b476b08825586d48ef70c40d16e03"}, + {file = "pypdfium2-4.30.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f434a4934e8244aa95343ffcf24e9ad9f120dbb4785f631bb40a88c39292493"}, + {file = "pypdfium2-4.30.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f454032a0bc7681900170f67d8711b3942824531e765f91c2f5ce7937f999794"}, + {file = "pypdfium2-4.30.1-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:bbf9130a72370ee9d602e39949b902db669a2a1c24746a91e5586eb829055d9f"}, + {file = "pypdfium2-4.30.1-py3-none-musllinux_1_1_i686.whl", hash = "sha256:5cb52884b1583b96e94fd78542c63bb42e06df5e8f9e52f8f31f5ad5a1e53367"}, + {file = "pypdfium2-4.30.1-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:1a9e372bd4867ff223cc8c338e33fe11055dad12f22885950fc27646cc8d9122"}, + {file = "pypdfium2-4.30.1-py3-none-win32.whl", hash = "sha256:421f1cf205e213e07c1f2934905779547f4f4a2ff2f59dde29da3d511d3fc806"}, + {file = "pypdfium2-4.30.1-py3-none-win_amd64.whl", hash = "sha256:598a7f20264ab5113853cba6d86c4566e4356cad037d7d1f849c8c9021007e05"}, + {file = "pypdfium2-4.30.1-py3-none-win_arm64.whl", hash = "sha256:c2b6d63f6d425d9416c08d2511822b54b8e3ac38e639fc41164b1d75584b3a8c"}, + {file = "pypdfium2-4.30.1.tar.gz", hash = "sha256:5f5c7c6d03598e107d974f66b220a49436aceb191da34cda5f692be098a814ce"}, ] [[package]] @@ -3112,6 +3114,7 @@ version = "8.3.3" requires_python = ">=3.8" summary = "pytest: simple powerful testing with Python" groups = ["test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "colorama; sys_platform == \"win32\"", "exceptiongroup>=1.0.0rc8; python_version < \"3.11\"", @@ -3131,6 +3134,7 @@ version = "3.14.0" requires_python = ">=3.8" summary = "Thin-wrapper around the mock package for easier use with pytest" groups = ["test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "pytest>=6.2.5", ] @@ -3145,6 +3149,7 @@ version = "2.9.0.post0" requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" summary = "Extensions to the standard Python datetime module" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "six>=1.5", ] @@ -3159,6 +3164,7 @@ version = "1.0.0" requires_python = ">=3.8" summary = "Read key-value pairs from a .env file and set them as environment variables" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "python-dotenv-1.0.0.tar.gz", hash = "sha256:a8df96034aae6d2d50a4ebe8216326c61c3eb64836776504fcca410e5937a3ba"}, {file = "python_dotenv-1.0.0-py3-none-any.whl", hash = "sha256:f5971a9226b701070a4bf2c38c89e5a3f0d64de8debda981d1db98583009122a"}, @@ -3170,6 +3176,7 @@ version = "0.4.27" requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" summary = "File type identification using libmagic" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "python-magic-0.4.27.tar.gz", hash = "sha256:c1ba14b08e4a5f5c31a302b7721239695b2f0f058d125bd5ce1ee36b9d9d3c3b"}, {file = "python_magic-0.4.27-py2.py3-none-any.whl", hash = "sha256:c212960ad306f700aa0d01e5d7a325d20548ff97eb9920dcd29513174f0294d3"}, @@ -3180,6 +3187,7 @@ name = "pytz" version = "2024.2" summary = "World timezone definitions, modern and historical" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, @@ -3190,7 +3198,7 @@ name = "pywin32" version = "308" summary = "Python for Window Extensions" groups = ["default"] -marker = "platform_system == \"Windows\"" +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\" and platform_system == \"Windows\"" files = [ {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, @@ -3198,8 +3206,6 @@ files = [ {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, - {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, - {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, ] [[package]] @@ -3208,6 +3214,7 @@ version = "6.0.2" requires_python = ">=3.8" summary = "YAML parser and emitter for Python" groups = ["default", "lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, @@ -3227,36 +3234,31 @@ files = [ {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, - {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, - {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, ] [[package]] name = "qdrant-client" -version = "1.12.1" -requires_python = ">=3.8" +version = "1.12.2" +requires_python = ">=3.9" summary = "Client library for the Qdrant vector search engine" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "grpcio-tools>=1.41.0", "grpcio>=1.41.0", "httpx[http2]>=0.20.0", - "numpy>=1.21; python_version >= \"3.8\" and python_version < \"3.12\"", + "numpy<2.1.0,>=1.21; python_version < \"3.10\"", + "numpy>=1.21; python_version >= \"3.10\" and python_version < \"3.12\"", + "numpy>=1.26; python_version >= \"3.12\" and python_version < \"3.13\"", + "numpy>=2.1.0; python_version >= \"3.13\"", "portalocker<3.0.0,>=2.7.0", "pydantic>=1.10.8", "urllib3<3,>=1.26.14", ] files = [ - {file = "qdrant_client-1.12.1-py3-none-any.whl", hash = "sha256:b2d17ce18e9e767471368380dd3bbc4a0e3a0e2061fedc9af3542084b48451e0"}, - {file = "qdrant_client-1.12.1.tar.gz", hash = "sha256:35e8e646f75b7b883b3d2d0ee4c69c5301000bba41c82aa546e985db0f1aeb72"}, + {file = "qdrant_client-1.12.2-py3-none-any.whl", hash = "sha256:a0ae500a46a679ff3521ba3f1f1cf3d72b57090a768cec65fc317066bcbac1e6"}, + {file = "qdrant_client-1.12.2.tar.gz", hash = "sha256:2777e09b3e89bb22bb490384d8b1fa8140f3915287884f18984f7031a346aba5"}, ] [[package]] @@ -3265,6 +3267,7 @@ version = "5.2.1" requires_python = ">=3.8" summary = "Python client for Redis database and key-value store" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "async-timeout>=4.0.3; python_full_version < \"3.11.3\"", ] @@ -3279,6 +3282,7 @@ version = "0.35.1" requires_python = ">=3.8" summary = "JSON Referencing + Python" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "attrs>=22.2.0", "rpds-py>=0.7.0", @@ -3294,6 +3298,7 @@ version = "2024.11.6" requires_python = ">=3.8" summary = "Alternative regular expression module, to replace re." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, @@ -3326,22 +3331,6 @@ files = [ {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45"}, {file = "regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9"}, {file = "regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60"}, - {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5704e174f8ccab2026bd2f1ab6c510345ae8eac818b613d7d73e785f1310f839"}, - {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:220902c3c5cc6af55d4fe19ead504de80eb91f786dc102fbd74894b1551f095e"}, - {file = "regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7e351589da0850c125f1600a4c4ba3c722efefe16b297de54300f08d734fbf"}, - {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056b185ca113c88e18223183aa1a50e66507769c9640a6ff75859619d73957b"}, - {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e34b51b650b23ed3354b5a07aab37034d9f923db2a40519139af34f485f77d0"}, - {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5670bce7b200273eee1840ef307bfa07cda90b38ae56e9a6ebcc9f50da9c469b"}, - {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08986dce1339bc932923e7d1232ce9881499a0e02925f7402fb7c982515419ef"}, - {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93c0b12d3d3bc25af4ebbf38f9ee780a487e8bf6954c115b9f015822d3bb8e48"}, - {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:764e71f22ab3b305e7f4c21f1a97e1526a25ebdd22513e251cf376760213da13"}, - {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f056bf21105c2515c32372bbc057f43eb02aae2fda61052e2f7622c801f0b4e2"}, - {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:69ab78f848845569401469da20df3e081e6b5a11cb086de3eed1d48f5ed57c95"}, - {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:86fddba590aad9208e2fa8b43b4c098bb0ec74f15718bb6a704e3c63e2cef3e9"}, - {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:684d7a212682996d21ca12ef3c17353c021fe9de6049e19ac8481ec35574a70f"}, - {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a03e02f48cd1abbd9f3b7e3586d97c8f7a9721c436f51a5245b3b9483044480b"}, - {file = "regex-2024.11.6-cp39-cp39-win32.whl", hash = "sha256:41758407fc32d5c3c5de163888068cfee69cb4c2be844e7ac517a52770f9af57"}, - {file = "regex-2024.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:b2837718570f95dd41675328e111345f9b7095d821bac435aac173ac80b19983"}, {file = "regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519"}, ] @@ -3351,6 +3340,7 @@ version = "2.32.3" requires_python = ">=3.8" summary = "Python HTTP for Humans." groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "certifi>=2017.4.17", "charset-normalizer<4,>=2", @@ -3368,6 +3358,7 @@ version = "2.0.0" requires_python = ">=3.4" summary = "OAuthlib authentication support for Requests." groups = ["test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "oauthlib>=3.0.0", "requests>=2.0.0", @@ -3383,6 +3374,7 @@ version = "13.9.4" requires_python = ">=3.8.0" summary = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" groups = ["docs"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "markdown-it-py>=2.2.0", "pygments<3.0.0,>=2.13.0", @@ -3399,6 +3391,7 @@ version = "0.22.3" requires_python = ">=3.9" summary = "Python bindings to Rust's persistent data structures (rpds)" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "rpds_py-0.22.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:6c7b99ca52c2c1752b544e310101b98a659b720b21db00e65edca34483259967"}, {file = "rpds_py-0.22.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:be2eb3f2495ba669d2a985f9b426c1797b7d48d6963899276d22f23e33d47e37"}, @@ -3426,19 +3419,6 @@ files = [ {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1352ae4f7c717ae8cba93421a63373e582d19d55d2ee2cbb184344c82d2ae55a"}, {file = "rpds_py-0.22.3-cp311-cp311-win32.whl", hash = "sha256:b0b4136a252cadfa1adb705bb81524eee47d9f6aab4f2ee4fa1e9d3cd4581f64"}, {file = "rpds_py-0.22.3-cp311-cp311-win_amd64.whl", hash = "sha256:8bd7c8cfc0b8247c8799080fbff54e0b9619e17cdfeb0478ba7295d43f635d7c"}, - {file = "rpds_py-0.22.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:378753b4a4de2a7b34063d6f95ae81bfa7b15f2c1a04a9518e8644e81807ebea"}, - {file = "rpds_py-0.22.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3445e07bf2e8ecfeef6ef67ac83de670358abf2996916039b16a218e3d95e97e"}, - {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b2513ba235829860b13faa931f3b6846548021846ac808455301c23a101689d"}, - {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eaf16ae9ae519a0e237a0f528fd9f0197b9bb70f40263ee57ae53c2b8d48aeb3"}, - {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:583f6a1993ca3369e0f80ba99d796d8e6b1a3a2a442dd4e1a79e652116413091"}, - {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4617e1915a539a0d9a9567795023de41a87106522ff83fbfaf1f6baf8e85437e"}, - {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c150c7a61ed4a4f4955a96626574e9baf1adf772c2fb61ef6a5027e52803543"}, - {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2fa4331c200c2521512595253f5bb70858b90f750d39b8cbfd67465f8d1b596d"}, - {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:214b7a953d73b5e87f0ebece4a32a5bd83c60a3ecc9d4ec8f1dca968a2d91e99"}, - {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f47ad3d5f3258bd7058d2d506852217865afefe6153a36eb4b6928758041d831"}, - {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f276b245347e6e36526cbd4a266a417796fc531ddf391e43574cf6466c492520"}, - {file = "rpds_py-0.22.3-cp39-cp39-win32.whl", hash = "sha256:bbb232860e3d03d544bc03ac57855cd82ddf19c7a07651a7c0fdb95e9efea8b9"}, - {file = "rpds_py-0.22.3-cp39-cp39-win_amd64.whl", hash = "sha256:cfbc454a2880389dbb9b5b398e50d439e2e58669160f27b60e5eca11f68ae17c"}, {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d48424e39c2611ee1b84ad0f44fb3b2b53d473e65de061e3f460fc0be5f1939d"}, {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:24e8abb5878e250f2eb0d7859a8e561846f98910326d06c0d51381fed59357bd"}, {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b232061ca880db21fa14defe219840ad9b74b6158adb52ddf0e87bead9e8493"}, @@ -3451,18 +3431,6 @@ files = [ {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:e35ba67d65d49080e8e5a1dd40101fccdd9798adb9b050ff670b7d74fa41c566"}, {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:26fd7cac7dd51011a245f29a2cc6489c4608b5a8ce8d75661bb4a1066c52dfbe"}, {file = "rpds_py-0.22.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:177c7c0fce2855833819c98e43c262007f42ce86651ffbb84f37883308cb0e7d"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bb47271f60660803ad11f4c61b42242b8c1312a31c98c578f79ef9387bbde21c"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:70fb28128acbfd264eda9bf47015537ba3fe86e40d046eb2963d75024be4d055"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44d61b4b7d0c2c9ac019c314e52d7cbda0ae31078aabd0f22e583af3e0d79723"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f0e260eaf54380380ac3808aa4ebe2d8ca28b9087cf411649f96bad6900c728"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b25bc607423935079e05619d7de556c91fb6adeae9d5f80868dde3468657994b"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fb6116dfb8d1925cbdb52595560584db42a7f664617a1f7d7f6e32f138cdf37d"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a63cbdd98acef6570c62b92a1e43266f9e8b21e699c363c0fef13bd530799c11"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b8f60e1b739a74bab7e01fcbe3dddd4657ec685caa04681df9d562ef15b625f"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:2e8b55d8517a2fda8d95cb45d62a5a8bbf9dd0ad39c5b25c8833efea07b880ca"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:2de29005e11637e7a2361fa151f780ff8eb2543a0da1413bb951e9f14b699ef3"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:666ecce376999bf619756a24ce15bb14c5bfaf04bf00abc7e663ce17c3f34fe7"}, - {file = "rpds_py-0.22.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5246b14ca64a8675e0a7161f7af68fe3e910e6b90542b4bfb5439ba752191df6"}, {file = "rpds_py-0.22.3.tar.gz", hash = "sha256:e32fee8ab45d3c2db6da19a5323bc3362237c8b653c70194414b892fd06a080d"}, ] @@ -3472,6 +3440,7 @@ version = "4.9" requires_python = ">=3.6,<4" summary = "Pure-Python RSA implementation" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "pyasn1>=0.1.3", ] @@ -3486,6 +3455,7 @@ version = "2024.10.0" requires_python = ">=3.8" summary = "Convenient Filesystem interface over S3" groups = ["test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "aiobotocore<3.0.0,>=2.5.4", "aiohttp!=4.0.0a0,!=4.0.0a1", @@ -3502,6 +3472,7 @@ version = "0.10.4" requires_python = ">=3.8" summary = "An Amazon S3 Transfer Manager" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "botocore<2.0a.0,>=1.33.2", ] @@ -3512,75 +3483,27 @@ files = [ [[package]] name = "safetensors" -version = "0.4.5" +version = "0.5.0" requires_python = ">=3.7" summary = "" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ - {file = "safetensors-0.4.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a63eaccd22243c67e4f2b1c3e258b257effc4acd78f3b9d397edc8cf8f1298a7"}, - {file = "safetensors-0.4.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:23fc9b4ec7b602915cbb4ec1a7c1ad96d2743c322f20ab709e2c35d1b66dad27"}, - {file = "safetensors-0.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6885016f34bef80ea1085b7e99b3c1f92cb1be78a49839203060f67b40aee761"}, - {file = "safetensors-0.4.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:133620f443450429322f238fda74d512c4008621227fccf2f8cf4a76206fea7c"}, - {file = "safetensors-0.4.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4fb3e0609ec12d2a77e882f07cced530b8262027f64b75d399f1504ffec0ba56"}, - {file = "safetensors-0.4.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d0f1dd769f064adc33831f5e97ad07babbd728427f98e3e1db6902e369122737"}, - {file = "safetensors-0.4.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6d156bdb26732feada84f9388a9f135528c1ef5b05fae153da365ad4319c4c5"}, - {file = "safetensors-0.4.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9e347d77e2c77eb7624400ccd09bed69d35c0332f417ce8c048d404a096c593b"}, - {file = "safetensors-0.4.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9f556eea3aec1d3d955403159fe2123ddd68e880f83954ee9b4a3f2e15e716b6"}, - {file = "safetensors-0.4.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:9483f42be3b6bc8ff77dd67302de8ae411c4db39f7224dec66b0eb95822e4163"}, - {file = "safetensors-0.4.5-cp310-none-win32.whl", hash = "sha256:7389129c03fadd1ccc37fd1ebbc773f2b031483b04700923c3511d2a939252cc"}, - {file = "safetensors-0.4.5-cp310-none-win_amd64.whl", hash = "sha256:e98ef5524f8b6620c8cdef97220c0b6a5c1cef69852fcd2f174bb96c2bb316b1"}, - {file = "safetensors-0.4.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:21f848d7aebd5954f92538552d6d75f7c1b4500f51664078b5b49720d180e47c"}, - {file = "safetensors-0.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bb07000b19d41e35eecef9a454f31a8b4718a185293f0d0b1c4b61d6e4487971"}, - {file = "safetensors-0.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09dedf7c2fda934ee68143202acff6e9e8eb0ddeeb4cfc24182bef999efa9f42"}, - {file = "safetensors-0.4.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:59b77e4b7a708988d84f26de3ebead61ef1659c73dcbc9946c18f3b1786d2688"}, - {file = "safetensors-0.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d3bc83e14d67adc2e9387e511097f254bd1b43c3020440e708858c684cbac68"}, - {file = "safetensors-0.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39371fc551c1072976073ab258c3119395294cf49cdc1f8476794627de3130df"}, - {file = "safetensors-0.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6c19feda32b931cae0acd42748a670bdf56bee6476a046af20181ad3fee4090"}, - {file = "safetensors-0.4.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a659467495de201e2f282063808a41170448c78bada1e62707b07a27b05e6943"}, - {file = "safetensors-0.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bad5e4b2476949bcd638a89f71b6916fa9a5cae5c1ae7eede337aca2100435c0"}, - {file = "safetensors-0.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a3a315a6d0054bc6889a17f5668a73f94f7fe55121ff59e0a199e3519c08565f"}, - {file = "safetensors-0.4.5-cp311-none-win32.whl", hash = "sha256:a01e232e6d3d5cf8b1667bc3b657a77bdab73f0743c26c1d3c5dd7ce86bd3a92"}, - {file = "safetensors-0.4.5-cp311-none-win_amd64.whl", hash = "sha256:cbd39cae1ad3e3ef6f63a6f07296b080c951f24cec60188378e43d3713000c04"}, - {file = "safetensors-0.4.5-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:cf727bb1281d66699bef5683b04d98c894a2803442c490a8d45cd365abfbdeb2"}, - {file = "safetensors-0.4.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:96f1d038c827cdc552d97e71f522e1049fef0542be575421f7684756a748e457"}, - {file = "safetensors-0.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:139fbee92570ecea774e6344fee908907db79646d00b12c535f66bc78bd5ea2c"}, - {file = "safetensors-0.4.5-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c36302c1c69eebb383775a89645a32b9d266878fab619819ce660309d6176c9b"}, - {file = "safetensors-0.4.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d641f5b8149ea98deb5ffcf604d764aad1de38a8285f86771ce1abf8e74c4891"}, - {file = "safetensors-0.4.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b4db6a61d968de73722b858038c616a1bebd4a86abe2688e46ca0cc2d17558f2"}, - {file = "safetensors-0.4.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b75a616e02f21b6f1d5785b20cecbab5e2bd3f6358a90e8925b813d557666ec1"}, - {file = "safetensors-0.4.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:788ee7d04cc0e0e7f944c52ff05f52a4415b312f5efd2ee66389fb7685ee030c"}, - {file = "safetensors-0.4.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:87bc42bd04fd9ca31396d3ca0433db0be1411b6b53ac5a32b7845a85d01ffc2e"}, - {file = "safetensors-0.4.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4037676c86365a721a8c9510323a51861d703b399b78a6b4486a54a65a975fca"}, - {file = "safetensors-0.4.5-cp39-none-win32.whl", hash = "sha256:1500418454529d0ed5c1564bda376c4ddff43f30fce9517d9bee7bcce5a8ef50"}, - {file = "safetensors-0.4.5-cp39-none-win_amd64.whl", hash = "sha256:9d1a94b9d793ed8fe35ab6d5cea28d540a46559bafc6aae98f30ee0867000cab"}, - {file = "safetensors-0.4.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:fdadf66b5a22ceb645d5435a0be7a0292ce59648ca1d46b352f13cff3ea80410"}, - {file = "safetensors-0.4.5-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d42ffd4c2259f31832cb17ff866c111684c87bd930892a1ba53fed28370c918c"}, - {file = "safetensors-0.4.5-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd8a1f6d2063a92cd04145c7fd9e31a1c7d85fbec20113a14b487563fdbc0597"}, - {file = "safetensors-0.4.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:951d2fcf1817f4fb0ef0b48f6696688a4e852a95922a042b3f96aaa67eedc920"}, - {file = "safetensors-0.4.5-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6ac85d9a8c1af0e3132371d9f2d134695a06a96993c2e2f0bbe25debb9e3f67a"}, - {file = "safetensors-0.4.5-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:e3cec4a29eb7fe8da0b1c7988bc3828183080439dd559f720414450de076fcab"}, - {file = "safetensors-0.4.5-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:21742b391b859e67b26c0b2ac37f52c9c0944a879a25ad2f9f9f3cd61e7fda8f"}, - {file = "safetensors-0.4.5-pp37-pypy37_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c7db3006a4915151ce1913652e907cdede299b974641a83fbc092102ac41b644"}, - {file = "safetensors-0.4.5-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f68bf99ea970960a237f416ea394e266e0361895753df06e3e06e6ea7907d98b"}, - {file = "safetensors-0.4.5-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8158938cf3324172df024da511839d373c40fbfaa83e9abf467174b2910d7b4c"}, - {file = "safetensors-0.4.5-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:540ce6c4bf6b58cb0fd93fa5f143bc0ee341c93bb4f9287ccd92cf898cc1b0dd"}, - {file = "safetensors-0.4.5-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bfeaa1a699c6b9ed514bd15e6a91e74738b71125a9292159e3d6b7f0a53d2cde"}, - {file = "safetensors-0.4.5-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:01c8f00da537af711979e1b42a69a8ec9e1d7112f208e0e9b8a35d2c381085ef"}, - {file = "safetensors-0.4.5-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a0dd565f83b30f2ca79b5d35748d0d99dd4b3454f80e03dfb41f0038e3bdf180"}, - {file = "safetensors-0.4.5-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:023b6e5facda76989f4cba95a861b7e656b87e225f61811065d5c501f78cdb3f"}, - {file = "safetensors-0.4.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9633b663393d5796f0b60249549371e392b75a0b955c07e9c6f8708a87fc841f"}, - {file = "safetensors-0.4.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78dd8adfb48716233c45f676d6e48534d34b4bceb50162c13d1f0bdf6f78590a"}, - {file = "safetensors-0.4.5-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8e8deb16c4321d61ae72533b8451ec4a9af8656d1c61ff81aa49f966406e4b68"}, - {file = "safetensors-0.4.5-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:52452fa5999dc50c4decaf0c53aa28371f7f1e0fe5c2dd9129059fbe1e1599c7"}, - {file = "safetensors-0.4.5-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:d5f23198821e227cfc52d50fa989813513db381255c6d100927b012f0cfec63d"}, - {file = "safetensors-0.4.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f4beb84b6073b1247a773141a6331117e35d07134b3bb0383003f39971d414bb"}, - {file = "safetensors-0.4.5-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:68814d599d25ed2fdd045ed54d370d1d03cf35e02dce56de44c651f828fb9b7b"}, - {file = "safetensors-0.4.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0b6453c54c57c1781292c46593f8a37254b8b99004c68d6c3ce229688931a22"}, - {file = "safetensors-0.4.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:adaa9c6dead67e2dd90d634f89131e43162012479d86e25618e821a03d1eb1dc"}, - {file = "safetensors-0.4.5-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:73e7d408e9012cd17511b382b43547850969c7979efc2bc353f317abaf23c84c"}, - {file = "safetensors-0.4.5-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:775409ce0fcc58b10773fdb4221ed1eb007de10fe7adbdf8f5e8a56096b6f0bc"}, - {file = "safetensors-0.4.5-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:834001bed193e4440c4a3950a31059523ee5090605c907c66808664c932b549c"}, - {file = "safetensors-0.4.5.tar.gz", hash = "sha256:d73de19682deabb02524b3d5d1f8b3aaba94c72f1bbfc7911b9b9d5d391c0310"}, + {file = "safetensors-0.5.0-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:c683b9b485bee43422ba2855f72777c37647190281e03da4c8d2a69fa5336558"}, + {file = "safetensors-0.5.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:6106aa835deb7263f7014f74c05842ab828d6c11d789f2e7e98f26b1a305e72d"}, + {file = "safetensors-0.5.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1349611f74f55c5ee1c1c144c536a2743c38f7d8bf60b9fc8267e0efc0591a2"}, + {file = "safetensors-0.5.0-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:56d936028ac799e18644b08a91fd98b4b62ae3dcd0440b1cfcb56535785589f1"}, + {file = "safetensors-0.5.0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2f26afada2233576ffea6b80042c2c0a8105c164254af56168ec14299ad3122"}, + {file = "safetensors-0.5.0-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:20067e7a5e63f0cbc88457b2a1161e70ff73af4cc3a24bce90309430cd6f6e7e"}, + {file = "safetensors-0.5.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:649d6a4aa34d5174ae87289068ccc2fec2a1a998ecf83425aa5a42c3eff69bcf"}, + {file = "safetensors-0.5.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:debff88f41d569a3e93a955469f83864e432af35bb34b16f65a9ddf378daa3ae"}, + {file = "safetensors-0.5.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:bdf6a3e366ea8ba1a0538db6099229e95811194432c684ea28ea7ae28763b8dc"}, + {file = "safetensors-0.5.0-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:0371afd84c200a80eb7103bf715108b0c3846132fb82453ae018609a15551580"}, + {file = "safetensors-0.5.0-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:5ec7fc8c3d2f32ebf1c7011bc886b362e53ee0a1ec6d828c39d531fed8b325d6"}, + {file = "safetensors-0.5.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:53715e4ea0ef23c08f004baae0f609a7773de7d4148727760417c6760cfd6b76"}, + {file = "safetensors-0.5.0-cp38-abi3-win32.whl", hash = "sha256:b85565bc2f0456961a788d2f11d9d892eec46603db0e4923aa9512c2355aa727"}, + {file = "safetensors-0.5.0-cp38-abi3-win_amd64.whl", hash = "sha256:f451941f8aa11e7be5c3fa450e264609a2b1e65fa38ae590a74e55a94d646b76"}, + {file = "safetensors-0.5.0.tar.gz", hash = "sha256:c47b34c549fa1e0c655c4644da31332c61332c732c47c8dd9399347e9aac69d1"}, ] [[package]] @@ -3589,6 +3512,7 @@ version = "75.6.0" requires_python = ">=3.9" summary = "Easily download, build, install, upgrade, and uninstall Python packages" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "setuptools-75.6.0-py3-none-any.whl", hash = "sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d"}, {file = "setuptools-75.6.0.tar.gz", hash = "sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6"}, @@ -3600,6 +3524,7 @@ version = "2.0.6" requires_python = ">=3.7" summary = "Manipulation and analysis of geometric objects" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "numpy<3,>=1.14", ] @@ -3616,12 +3541,6 @@ files = [ {file = "shapely-2.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3dc9fb0eb56498912025f5eb352b5126f04801ed0e8bdbd867d21bdbfd7cbd0"}, {file = "shapely-2.0.6-cp311-cp311-win32.whl", hash = "sha256:d93b7e0e71c9f095e09454bf18dad5ea716fb6ced5df3cb044564a00723f339d"}, {file = "shapely-2.0.6-cp311-cp311-win_amd64.whl", hash = "sha256:c02eb6bf4cfb9fe6568502e85bb2647921ee49171bcd2d4116c7b3109724ef9b"}, - {file = "shapely-2.0.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:392f66f458a0a2c706254f473290418236e52aa4c9b476a072539d63a2460595"}, - {file = "shapely-2.0.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eba5bae271d523c938274c61658ebc34de6c4b33fdf43ef7e938b5776388c1be"}, - {file = "shapely-2.0.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7060566bc4888b0c8ed14b5d57df8a0ead5c28f9b69fb6bed4476df31c51b0af"}, - {file = "shapely-2.0.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b02154b3e9d076a29a8513dffcb80f047a5ea63c897c0cd3d3679f29363cf7e5"}, - {file = "shapely-2.0.6-cp39-cp39-win32.whl", hash = "sha256:44246d30124a4f1a638a7d5419149959532b99dfa25b54393512e6acc9c211ac"}, - {file = "shapely-2.0.6-cp39-cp39-win_amd64.whl", hash = "sha256:2b542d7f1dbb89192d3512c52b679c822ba916f93479fa5d4fc2fe4fa0b3c9e8"}, {file = "shapely-2.0.6.tar.gz", hash = "sha256:997f6159b1484059ec239cacaa53467fd8b5564dabe186cd84ac2944663b0bf6"}, ] @@ -3631,6 +3550,7 @@ version = "1.5.4" requires_python = ">=3.7" summary = "Tool to Detect Surrounding Shell" groups = ["docs"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, @@ -3641,6 +3561,7 @@ name = "singleton-decorator" version = "1.0.0" summary = "A testable singleton decorator" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "singleton-decorator-1.0.0.tar.gz", hash = "sha256:1a90ad8a8a738be591c9c167fdd677c5d4a43d1bc6b1c128227be1c5e03bee07"}, ] @@ -3651,6 +3572,7 @@ version = "1.17.0" requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" summary = "Python 2 and 3 compatibility utilities" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, @@ -3662,6 +3584,7 @@ version = "1.3.1" requires_python = ">=3.7" summary = "Sniff out which async library your code is running under" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, @@ -3673,6 +3596,7 @@ version = "2.6" requires_python = ">=3.8" summary = "A modern CSS selector implementation for Beautiful Soup." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, @@ -3684,8 +3608,10 @@ version = "2.0.36" requires_python = ">=3.7" summary = "Database Abstraction Library" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "greenlet!=0.4.17; (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\") and python_version < \"3.13\"", + "importlib-metadata; python_version < \"3.8\"", "typing-extensions>=4.6.0", ] files = [ @@ -3705,14 +3631,6 @@ files = [ {file = "SQLAlchemy-2.0.36-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:39769a115f730d683b0eb7b694db9789267bcd027326cccc3125e862eb03bfd8"}, {file = "SQLAlchemy-2.0.36-cp311-cp311-win32.whl", hash = "sha256:66bffbad8d6271bb1cc2f9a4ea4f86f80fe5e2e3e501a5ae2a3dc6a76e604e6f"}, {file = "SQLAlchemy-2.0.36-cp311-cp311-win_amd64.whl", hash = "sha256:23623166bfefe1487d81b698c423f8678e80df8b54614c2bf4b4cfcd7c711959"}, - {file = "SQLAlchemy-2.0.36-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dc022184d3e5cacc9579e41805a681187650e170eb2fd70e28b86192a479dcaa"}, - {file = "SQLAlchemy-2.0.36-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b817d41d692bf286abc181f8af476c4fbef3fd05e798777492618378448ee689"}, - {file = "SQLAlchemy-2.0.36-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4e46a888b54be23d03a89be510f24a7652fe6ff660787b96cd0e57a4ebcb46d"}, - {file = "SQLAlchemy-2.0.36-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4ae3005ed83f5967f961fd091f2f8c5329161f69ce8480aa8168b2d7fe37f06"}, - {file = "SQLAlchemy-2.0.36-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:03e08af7a5f9386a43919eda9de33ffda16b44eb11f3b313e6822243770e9763"}, - {file = "SQLAlchemy-2.0.36-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3dbb986bad3ed5ceaf090200eba750b5245150bd97d3e67343a3cfed06feecf7"}, - {file = "SQLAlchemy-2.0.36-cp39-cp39-win32.whl", hash = "sha256:9fe53b404f24789b5ea9003fc25b9a3988feddebd7e7b369c8fac27ad6f52f28"}, - {file = "SQLAlchemy-2.0.36-cp39-cp39-win_amd64.whl", hash = "sha256:af148a33ff0349f53512a049c6406923e4e02bf2f26c5fb285f143faf4f0e46a"}, {file = "SQLAlchemy-2.0.36-py3-none-any.whl", hash = "sha256:fddbe92b4760c6f5d48162aef14824add991aeda8ddadb3c31d56eb15ca69f8e"}, {file = "sqlalchemy-2.0.36.tar.gz", hash = "sha256:7f2767680b6d2398aea7082e45a774b2b0767b5c8d8ffb9c8b683088ea9b29c5"}, ] @@ -3724,6 +3642,7 @@ extras = ["asyncio"] requires_python = ">=3.7" summary = "Database Abstraction Library" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "greenlet!=0.4.17", "sqlalchemy==2.0.36", @@ -3745,14 +3664,6 @@ files = [ {file = "SQLAlchemy-2.0.36-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:39769a115f730d683b0eb7b694db9789267bcd027326cccc3125e862eb03bfd8"}, {file = "SQLAlchemy-2.0.36-cp311-cp311-win32.whl", hash = "sha256:66bffbad8d6271bb1cc2f9a4ea4f86f80fe5e2e3e501a5ae2a3dc6a76e604e6f"}, {file = "SQLAlchemy-2.0.36-cp311-cp311-win_amd64.whl", hash = "sha256:23623166bfefe1487d81b698c423f8678e80df8b54614c2bf4b4cfcd7c711959"}, - {file = "SQLAlchemy-2.0.36-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dc022184d3e5cacc9579e41805a681187650e170eb2fd70e28b86192a479dcaa"}, - {file = "SQLAlchemy-2.0.36-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b817d41d692bf286abc181f8af476c4fbef3fd05e798777492618378448ee689"}, - {file = "SQLAlchemy-2.0.36-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4e46a888b54be23d03a89be510f24a7652fe6ff660787b96cd0e57a4ebcb46d"}, - {file = "SQLAlchemy-2.0.36-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4ae3005ed83f5967f961fd091f2f8c5329161f69ce8480aa8168b2d7fe37f06"}, - {file = "SQLAlchemy-2.0.36-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:03e08af7a5f9386a43919eda9de33ffda16b44eb11f3b313e6822243770e9763"}, - {file = "SQLAlchemy-2.0.36-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3dbb986bad3ed5ceaf090200eba750b5245150bd97d3e67343a3cfed06feecf7"}, - {file = "SQLAlchemy-2.0.36-cp39-cp39-win32.whl", hash = "sha256:9fe53b404f24789b5ea9003fc25b9a3988feddebd7e7b369c8fac27ad6f52f28"}, - {file = "SQLAlchemy-2.0.36-cp39-cp39-win_amd64.whl", hash = "sha256:af148a33ff0349f53512a049c6406923e4e02bf2f26c5fb285f143faf4f0e46a"}, {file = "SQLAlchemy-2.0.36-py3-none-any.whl", hash = "sha256:fddbe92b4760c6f5d48162aef14824add991aeda8ddadb3c31d56eb15ca69f8e"}, {file = "sqlalchemy-2.0.36.tar.gz", hash = "sha256:7f2767680b6d2398aea7082e45a774b2b0767b5c8d8ffb9c8b683088ea9b29c5"}, ] @@ -3762,6 +3673,7 @@ name = "striprtf" version = "0.0.26" summary = "A simple library to convert rtf to text" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "striprtf-0.0.26-py3-none-any.whl", hash = "sha256:8c8f9d32083cdc2e8bfb149455aa1cc5a4e0a035893bedc75db8b73becb3a1bb"}, {file = "striprtf-0.0.26.tar.gz", hash = "sha256:fdb2bba7ac440072d1c41eab50d8d74ae88f60a8b6575c6e2c7805dc462093aa"}, @@ -3769,13 +3681,14 @@ files = [ [[package]] name = "tenacity" -version = "8.5.0" +version = "9.0.0" requires_python = ">=3.8" summary = "Retry code until it succeeds" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ - {file = "tenacity-8.5.0-py3-none-any.whl", hash = "sha256:b594c2a5945830c267ce6b79a166228323ed52718f30302c1359836112346687"}, - {file = "tenacity-8.5.0.tar.gz", hash = "sha256:8bc6c0c8a09b31e6cad13c47afbed1a567518250a9a171418582ed8d9c20ca78"}, + {file = "tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539"}, + {file = "tenacity-9.0.0.tar.gz", hash = "sha256:807f37ca97d62aa361264d497b0e31e92b8027044942bfa756160d908320d73b"}, ] [[package]] @@ -3784,6 +3697,7 @@ version = "0.4.0" requires_python = ">=3.8" summary = "tiktoken is a fast BPE tokeniser for use with OpenAI's models" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "regex>=2022.1.18", "requests>=2.26.0", @@ -3803,13 +3717,6 @@ files = [ {file = "tiktoken-0.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:329f548a821a2f339adc9fbcfd9fc12602e4b3f8598df5593cfc09839e9ae5e4"}, {file = "tiktoken-0.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b1a038cee487931a5caaef0a2e8520e645508cde21717eacc9af3fbda097d8bb"}, {file = "tiktoken-0.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:08efa59468dbe23ed038c28893e2a7158d8c211c3dd07f2bbc9a30e012512f1d"}, - {file = "tiktoken-0.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8d1d97f83697ff44466c6bef5d35b6bcdb51e0125829a9c0ed1e6e39fb9a08fb"}, - {file = "tiktoken-0.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1b6bce7c68aa765f666474c7c11a7aebda3816b58ecafb209afa59c799b0dd2d"}, - {file = "tiktoken-0.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a73286c35899ca51d8d764bc0b4d60838627ce193acb60cc88aea60bddec4fd"}, - {file = "tiktoken-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0394967d2236a60fd0aacef26646b53636423cc9c70c32f7c5124ebe86f3093"}, - {file = "tiktoken-0.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:dae2af6f03ecba5f679449fa66ed96585b2fa6accb7fd57d9649e9e398a94f44"}, - {file = "tiktoken-0.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:55e251b1da3c293432179cf7c452cfa35562da286786be5a8b1ee3405c2b0dd2"}, - {file = "tiktoken-0.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:c835d0ee1f84a5aa04921717754eadbc0f0a56cf613f78dfc1cf9ad35f6c3fea"}, {file = "tiktoken-0.4.0.tar.gz", hash = "sha256:59b20a819969735b48161ced9b92f05dc4519c17be4015cfb73b65270a243620"}, ] @@ -3819,6 +3726,7 @@ version = "0.15.2" requires_python = ">=3.7" summary = "" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "huggingface-hub<1.0,>=0.16.4", ] @@ -3847,18 +3755,6 @@ files = [ {file = "tokenizers-0.15.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0ff110ecc57b7aa4a594396525a3451ad70988e517237fe91c540997c4e50e29"}, {file = "tokenizers-0.15.2-cp311-none-win32.whl", hash = "sha256:6d76f00f5c32da36c61f41c58346a4fa7f0a61be02f4301fd30ad59834977cc3"}, {file = "tokenizers-0.15.2-cp311-none-win_amd64.whl", hash = "sha256:cc90102ed17271cf0a1262babe5939e0134b3890345d11a19c3145184b706055"}, - {file = "tokenizers-0.15.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:82f8652a74cc107052328b87ea8b34291c0f55b96d8fb261b3880216a9f9e48e"}, - {file = "tokenizers-0.15.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:02458bee6f5f3139f1ebbb6d042b283af712c0981f5bc50edf771d6b762d5e4f"}, - {file = "tokenizers-0.15.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c9a09cd26cca2e1c349f91aa665309ddb48d71636370749414fbf67bc83c5343"}, - {file = "tokenizers-0.15.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:158be8ea8554e5ed69acc1ce3fbb23a06060bd4bbb09029431ad6b9a466a7121"}, - {file = "tokenizers-0.15.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ddba9a2b0c8c81633eca0bb2e1aa5b3a15362b1277f1ae64176d0f6eba78ab1"}, - {file = "tokenizers-0.15.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3ef5dd1d39797044642dbe53eb2bc56435308432e9c7907728da74c69ee2adca"}, - {file = "tokenizers-0.15.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:454c203164e07a860dbeb3b1f4a733be52b0edbb4dd2e5bd75023ffa8b49403a"}, - {file = "tokenizers-0.15.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0cf6b7f1d4dc59af960e6ffdc4faffe6460bbfa8dce27a58bf75755ffdb2526d"}, - {file = "tokenizers-0.15.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2ef09bbc16519f6c25d0c7fc0c6a33a6f62923e263c9d7cca4e58b8c61572afb"}, - {file = "tokenizers-0.15.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c9a2ebdd2ad4ec7a68e7615086e633857c85e2f18025bd05d2a4399e6c5f7169"}, - {file = "tokenizers-0.15.2-cp39-none-win32.whl", hash = "sha256:918fbb0eab96fe08e72a8c2b5461e9cce95585d82a58688e7f01c2bd546c79d0"}, - {file = "tokenizers-0.15.2-cp39-none-win_amd64.whl", hash = "sha256:524e60da0135e106b254bd71f0659be9f89d83f006ea9093ce4d1fab498c6d0d"}, {file = "tokenizers-0.15.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6a9b648a58281c4672212fab04e60648fde574877d0139cd4b4f93fe28ca8944"}, {file = "tokenizers-0.15.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7c7d18b733be6bbca8a55084027f7be428c947ddf871c500ee603e375013ffba"}, {file = "tokenizers-0.15.2-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:13ca3611de8d9ddfbc4dc39ef54ab1d2d4aaa114ac8727dfdc6a6ec4be017378"}, @@ -3866,26 +3762,6 @@ files = [ {file = "tokenizers-0.15.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67a0fe1e49e60c664915e9fb6b0cb19bac082ab1f309188230e4b2920230edb3"}, {file = "tokenizers-0.15.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:4e022fe65e99230b8fd89ebdfea138c24421f91c1a4f4781a8f5016fd5cdfb4d"}, {file = "tokenizers-0.15.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:d857be2df69763362ac699f8b251a8cd3fac9d21893de129bc788f8baaef2693"}, - {file = "tokenizers-0.15.2-pp37-pypy37_pp73-macosx_10_12_x86_64.whl", hash = "sha256:708bb3e4283177236309e698da5fcd0879ce8fd37457d7c266d16b550bcbbd18"}, - {file = "tokenizers-0.15.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:64c35e09e9899b72a76e762f9854e8750213f67567787d45f37ce06daf57ca78"}, - {file = "tokenizers-0.15.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1257f4394be0d3b00de8c9e840ca5601d0a4a8438361ce9c2b05c7d25f6057b"}, - {file = "tokenizers-0.15.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02272fe48280e0293a04245ca5d919b2c94a48b408b55e858feae9618138aeda"}, - {file = "tokenizers-0.15.2-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:dc3ad9ebc76eabe8b1d7c04d38be884b8f9d60c0cdc09b0aa4e3bcf746de0388"}, - {file = "tokenizers-0.15.2-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:32e16bdeffa7c4f46bf2152172ca511808b952701d13e7c18833c0b73cb5c23f"}, - {file = "tokenizers-0.15.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:fb16ba563d59003028b678d2361a27f7e4ae0ab29c7a80690efa20d829c81fdb"}, - {file = "tokenizers-0.15.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:2277c36d2d6cdb7876c274547921a42425b6810d38354327dd65a8009acf870c"}, - {file = "tokenizers-0.15.2-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1cf75d32e8d250781940d07f7eece253f2fe9ecdb1dc7ba6e3833fa17b82fcbc"}, - {file = "tokenizers-0.15.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1b3b31884dc8e9b21508bb76da80ebf7308fdb947a17affce815665d5c4d028"}, - {file = "tokenizers-0.15.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b10122d8d8e30afb43bb1fe21a3619f62c3e2574bff2699cf8af8b0b6c5dc4a3"}, - {file = "tokenizers-0.15.2-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d88b96ff0fe8e91f6ef01ba50b0d71db5017fa4e3b1d99681cec89a85faf7bf7"}, - {file = "tokenizers-0.15.2-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:37aaec5a52e959892870a7c47cef80c53797c0db9149d458460f4f31e2fb250e"}, - {file = "tokenizers-0.15.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e2ea752f2b0fe96eb6e2f3adbbf4d72aaa1272079b0dfa1145507bd6a5d537e6"}, - {file = "tokenizers-0.15.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:4b19a808d8799fda23504a5cd31d2f58e6f52f140380082b352f877017d6342b"}, - {file = "tokenizers-0.15.2-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:64c86e5e068ac8b19204419ed8ca90f9d25db20578f5881e337d203b314f4104"}, - {file = "tokenizers-0.15.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de19c4dc503c612847edf833c82e9f73cd79926a384af9d801dcf93f110cea4e"}, - {file = "tokenizers-0.15.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea09acd2fe3324174063d61ad620dec3bcf042b495515f27f638270a7d466e8b"}, - {file = "tokenizers-0.15.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:cf27fd43472e07b57cf420eee1e814549203d56de00b5af8659cb99885472f1f"}, - {file = "tokenizers-0.15.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:7ca22bd897537a0080521445d91a58886c8c04084a6a19e6c78c586e0cfa92a5"}, {file = "tokenizers-0.15.2.tar.gz", hash = "sha256:e6e9c6e019dd5484be5beafc775ae6c925f4c69a3487040ed09b45e13df2cb91"}, ] @@ -3895,7 +3771,7 @@ version = "2.2.1" requires_python = ">=3.8" summary = "A lil' TOML parser" groups = ["lint", "test"] -marker = "python_version < \"3.11\"" +marker = "python_version >= \"3.10\" and python_version < \"3.11\"" files = [ {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, @@ -3917,6 +3793,7 @@ version = "4.67.1" requires_python = ">=3.7" summary = "Fast, Extensible Progress Meter" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "colorama; platform_system == \"Windows\"", ] @@ -3931,6 +3808,7 @@ version = "4.37.0" requires_python = ">=3.8.0" summary = "State-of-the-art Machine Learning for JAX, PyTorch and TensorFlow" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "filelock", "huggingface-hub<1.0,>=0.19.3", @@ -3954,6 +3832,7 @@ version = "0.15.1" requires_python = ">=3.7" summary = "Typer, build great CLIs. Easy to code. Based on Python type hints." groups = ["docs"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "click>=8.0.0", "rich>=10.11.0", @@ -3970,7 +3849,8 @@ name = "typing-extensions" version = "4.12.2" requires_python = ">=3.8" summary = "Backported and Experimental Type Hints for Python 3.8+" -groups = ["default", "docs", "lint", "test"] +groups = ["default", "docs", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, @@ -3981,9 +3861,11 @@ name = "typing-inspect" version = "0.9.0" summary = "Runtime inspection utilities for typing module." groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "mypy-extensions>=0.3.0", "typing-extensions>=3.7.4", + "typing>=3.7.4; python_version < \"3.5\"", ] files = [ {file = "typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"}, @@ -3996,6 +3878,7 @@ version = "2024.2" requires_python = ">=2" summary = "Provider of IANA time zone data" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"}, {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"}, @@ -4007,6 +3890,7 @@ version = "5.10.0" requires_python = ">=3.8" summary = "Ultra fast JSON encoder and decoder for Python" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "ujson-5.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2601aa9ecdbee1118a1c2065323bda35e2c5a2cf0797ef4522d485f9d3ef65bd"}, {file = "ujson-5.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:348898dd702fc1c4f1051bc3aacbf894caa0927fe2c53e68679c073375f732cf"}, @@ -4028,45 +3912,37 @@ files = [ {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:57aaf98b92d72fc70886b5a0e1a1ca52c2320377360341715dd3933a18e827b1"}, {file = "ujson-5.10.0-cp311-cp311-win32.whl", hash = "sha256:2987713a490ceb27edff77fb184ed09acdc565db700ee852823c3dc3cffe455f"}, {file = "ujson-5.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:f00ea7e00447918ee0eff2422c4add4c5752b1b60e88fcb3c067d4a21049a720"}, - {file = "ujson-5.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dfef2814c6b3291c3c5f10065f745a1307d86019dbd7ea50e83504950136ed5b"}, - {file = "ujson-5.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4734ee0745d5928d0ba3a213647f1c4a74a2a28edc6d27b2d6d5bd9fa4319e27"}, - {file = "ujson-5.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d47ebb01bd865fdea43da56254a3930a413f0c5590372a1241514abae8aa7c76"}, - {file = "ujson-5.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dee5e97c2496874acbf1d3e37b521dd1f307349ed955e62d1d2f05382bc36dd5"}, - {file = "ujson-5.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7490655a2272a2d0b072ef16b0b58ee462f4973a8f6bbe64917ce5e0a256f9c0"}, - {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ba17799fcddaddf5c1f75a4ba3fd6441f6a4f1e9173f8a786b42450851bd74f1"}, - {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2aff2985cef314f21d0fecc56027505804bc78802c0121343874741650a4d3d1"}, - {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ad88ac75c432674d05b61184178635d44901eb749786c8eb08c102330e6e8996"}, - {file = "ujson-5.10.0-cp39-cp39-win32.whl", hash = "sha256:2544912a71da4ff8c4f7ab5606f947d7299971bdd25a45e008e467ca638d13c9"}, - {file = "ujson-5.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:3ff201d62b1b177a46f113bb43ad300b424b7847f9c5d38b1b4ad8f75d4a282a"}, {file = "ujson-5.10.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5b6fee72fa77dc172a28f21693f64d93166534c263adb3f96c413ccc85ef6e64"}, {file = "ujson-5.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:61d0af13a9af01d9f26d2331ce49bb5ac1fb9c814964018ac8df605b5422dcb3"}, {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecb24f0bdd899d368b715c9e6664166cf694d1e57be73f17759573a6986dd95a"}, {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fbd8fd427f57a03cff3ad6574b5e299131585d9727c8c366da4624a9069ed746"}, {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:beeaf1c48e32f07d8820c705ff8e645f8afa690cca1544adba4ebfa067efdc88"}, {file = "ujson-5.10.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:baed37ea46d756aca2955e99525cc02d9181de67f25515c468856c38d52b5f3b"}, - {file = "ujson-5.10.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7663960f08cd5a2bb152f5ee3992e1af7690a64c0e26d31ba7b3ff5b2ee66337"}, - {file = "ujson-5.10.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:d8640fb4072d36b08e95a3a380ba65779d356b2fee8696afeb7794cf0902d0a1"}, - {file = "ujson-5.10.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78778a3aa7aafb11e7ddca4e29f46bc5139131037ad628cc10936764282d6753"}, - {file = "ujson-5.10.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0111b27f2d5c820e7f2dbad7d48e3338c824e7ac4d2a12da3dc6061cc39c8e6"}, - {file = "ujson-5.10.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:c66962ca7565605b355a9ed478292da628b8f18c0f2793021ca4425abf8b01e5"}, - {file = "ujson-5.10.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ba43cc34cce49cf2d4bc76401a754a81202d8aa926d0e2b79f0ee258cb15d3a4"}, - {file = "ujson-5.10.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ac56eb983edce27e7f51d05bc8dd820586c6e6be1c5216a6809b0c668bb312b8"}, - {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f44bd4b23a0e723bf8b10628288c2c7c335161d6840013d4d5de20e48551773b"}, - {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c10f4654e5326ec14a46bcdeb2b685d4ada6911050aa8baaf3501e57024b804"}, - {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0de4971a89a762398006e844ae394bd46991f7c385d7a6a3b93ba229e6dac17e"}, - {file = "ujson-5.10.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e1402f0564a97d2a52310ae10a64d25bcef94f8dd643fcf5d310219d915484f7"}, {file = "ujson-5.10.0.tar.gz", hash = "sha256:b3cd8f3c5d8c7738257f1018880444f7b7d9b66232c64649f562d7ba86ad4bc1"}, ] +[[package]] +name = "uritemplate" +version = "4.1.1" +requires_python = ">=3.6" +summary = "Implementation of RFC 6570 URI Templates" +groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" +files = [ + {file = "uritemplate-4.1.1-py2.py3-none-any.whl", hash = "sha256:830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e"}, + {file = "uritemplate-4.1.1.tar.gz", hash = "sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0"}, +] + [[package]] name = "urllib3" -version = "1.26.20" -requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +version = "2.3.0" +requires_python = ">=3.9" summary = "HTTP library with thread-safe connection pooling, file post, and more." groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ - {file = "urllib3-1.26.20-py2.py3-none-any.whl", hash = "sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e"}, - {file = "urllib3-1.26.20.tar.gz", hash = "sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32"}, + {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, + {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, ] [[package]] @@ -4075,6 +3951,7 @@ version = "0.34.0" requires_python = ">=3.8" summary = "Python Data Validation for Humansâ„¢" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "validators-0.34.0-py3-none-any.whl", hash = "sha256:c804b476e3e6d3786fa07a30073a4ef694e617805eb1946ceee3fe5a9b8b1321"}, {file = "validators-0.34.0.tar.gz", hash = "sha256:647fe407b45af9a74d245b943b18e6a816acf4926974278f6dd617778e1e781f"}, @@ -4082,18 +3959,20 @@ files = [ [[package]] name = "virtualenv" -version = "20.28.0" +version = "20.28.1" requires_python = ">=3.8" summary = "Virtual Python Environment builder" groups = ["lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "distlib<1,>=0.3.7", "filelock<4,>=3.12.2", + "importlib-metadata>=6.6; python_version < \"3.8\"", "platformdirs<5,>=3.9.1", ] files = [ - {file = "virtualenv-20.28.0-py3-none-any.whl", hash = "sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0"}, - {file = "virtualenv-20.28.0.tar.gz", hash = "sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa"}, + {file = "virtualenv-20.28.1-py3-none-any.whl", hash = "sha256:412773c85d4dab0409b83ec36f7a6499e72eaf08c80e81e9576bca61831c71cb"}, + {file = "virtualenv-20.28.1.tar.gz", hash = "sha256:5d34ab240fdb5d21549b76f9e8ff3af28252f5499fb6d6f031adac4e5a8c5329"}, ] [[package]] @@ -4102,6 +3981,7 @@ version = "4.10.2" requires_python = ">=3.9" summary = "A python native Weaviate client" groups = ["default"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "authlib<1.3.2,>=1.2.1", "grpcio-health-checking<2.0.0,>=1.66.2", @@ -4122,6 +4002,7 @@ version = "1.17.0" requires_python = ">=3.8" summary = "Module for decorators, wrappers and monkey patching." groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" files = [ {file = "wrapt-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2a0c23b8319848426f305f9cb0c98a6e32ee68a36264f45948ccf8e7d2b941f8"}, {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1ca5f060e205f72bec57faae5bd817a1560fcfc4af03f414b08fa29106b7e2d"}, @@ -4141,15 +4022,6 @@ files = [ {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bdf62d25234290db1837875d4dceb2151e4ea7f9fff2ed41c0fde23ed542eb5b"}, {file = "wrapt-1.17.0-cp311-cp311-win32.whl", hash = "sha256:5d8fd17635b262448ab8f99230fe4dac991af1dabdbb92f7a70a6afac8a7e346"}, {file = "wrapt-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:92a3d214d5e53cb1db8b015f30d544bc9d3f7179a05feb8f16df713cecc2620a"}, - {file = "wrapt-1.17.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d751300b94e35b6016d4b1e7d0e7bbc3b5e1751e2405ef908316c2a9024008a1"}, - {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7264cbb4a18dc4acfd73b63e4bcfec9c9802614572025bdd44d0721983fc1d9c"}, - {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:33539c6f5b96cf0b1105a0ff4cf5db9332e773bb521cc804a90e58dc49b10578"}, - {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c30970bdee1cad6a8da2044febd824ef6dc4cc0b19e39af3085c763fdec7de33"}, - {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:bc7f729a72b16ee21795a943f85c6244971724819819a41ddbaeb691b2dd85ad"}, - {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6ff02a91c4fc9b6a94e1c9c20f62ea06a7e375f42fe57587f004d1078ac86ca9"}, - {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2dfb7cff84e72e7bf975b06b4989477873dcf160b2fd89959c629535df53d4e0"}, - {file = "wrapt-1.17.0-cp39-cp39-win32.whl", hash = "sha256:2399408ac33ffd5b200480ee858baa58d77dd30e0dd0cab6a8a9547135f30a88"}, - {file = "wrapt-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:4f763a29ee6a20c529496a20a7bcb16a73de27f5da6a843249c7047daf135977"}, {file = "wrapt-1.17.0-py3-none-any.whl", hash = "sha256:d2c63b93548eda58abf5188e505ffed0229bf675f7c3090f8e36ad55b8cbc371"}, {file = "wrapt-1.17.0.tar.gz", hash = "sha256:16187aa2317c731170a88ef35e8937ae0f533c402872c1ee5e6d079fcf320801"}, ] @@ -4160,6 +4032,7 @@ version = "1.35.1" requires_python = ">=3.8" summary = "A linter for YAML files." groups = ["lint"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "pathspec>=0.5.3", "pyyaml", @@ -4175,6 +4048,7 @@ version = "1.18.3" requires_python = ">=3.9" summary = "Yet another URL library" groups = ["default", "test"] +marker = "python_version >= \"3.10\" and python_full_version < \"3.11.1\"" dependencies = [ "idna>=2.0", "multidict>=4.0", @@ -4213,22 +4087,6 @@ files = [ {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a"}, {file = "yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1"}, {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61e5e68cb65ac8f547f6b5ef933f510134a6bf31bb178be428994b0cb46c2a04"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe57328fbc1bfd0bd0514470ac692630f3901c0ee39052ae47acd1d90a436719"}, - {file = "yarl-1.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a440a2a624683108a1b454705ecd7afc1c3438a08e890a1513d468671d90a04e"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c7907c8548bcd6ab860e5f513e727c53b4a714f459b084f6580b49fa1b9cee"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4f6450109834af88cb4cc5ecddfc5380ebb9c228695afc11915a0bf82116789"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9ca04806f3be0ac6d558fffc2fdf8fcef767e0489d2684a21912cc4ed0cd1b8"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77a6e85b90a7641d2e07184df5557132a337f136250caafc9ccaa4a2a998ca2c"}, - {file = "yarl-1.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6333c5a377c8e2f5fae35e7b8f145c617b02c939d04110c76f29ee3676b5f9a5"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b3c92fa08759dbf12b3a59579a4096ba9af8dd344d9a813fc7f5070d86bbab1"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ac515b860c36becb81bb84b667466885096b5fc85596948548b667da3bf9f24"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:045b8482ce9483ada4f3f23b3774f4e1bf4f23a2d5c912ed5170f68efb053318"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a4bb030cf46a434ec0225bddbebd4b89e6471814ca851abb8696170adb163985"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:54d6921f07555713b9300bee9c50fb46e57e2e639027089b1d795ecd9f7fa910"}, - {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1d407181cfa6e70077df3377938c08012d18893f9f20e92f7d2f314a437c30b1"}, - {file = "yarl-1.18.3-cp39-cp39-win32.whl", hash = "sha256:ac36703a585e0929b032fbaab0707b75dc12703766d0b53486eabd5139ebadd5"}, - {file = "yarl-1.18.3-cp39-cp39-win_amd64.whl", hash = "sha256:ba87babd629f8af77f557b61e49e7c7cac36f22f871156b91e10a6e9d4f829e9"}, {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"}, {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"}, ] diff --git a/pyproject.toml b/pyproject.toml index 8b37c2ef..155ed9fc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,44 +12,39 @@ dependencies = [ "python-magic~=0.4.27", "python-dotenv==1.0.0", # Adapter changes - "llama-index==0.10.58", + "llama-index==0.12.8", "tiktoken~=0.4.0", "transformers==4.37.0", - "llama-index-embeddings-google==0.1.5", - "llama-index-embeddings-azure-openai==0.1.11", + "llama-index-embeddings-google==0.3.0", + "llama-index-embeddings-azure-openai==0.3.0", # Disabling Hugging Face & FastEmbed to # keep the image size under check # "llama-index-embeddings-huggingface==0.2.0", # Disabling fast embed due to high processing power # "llama-index-embeddings-fastembed==0.1.4", - "llama-index-embeddings-openai==0.1.11", - "llama-index-embeddings-azure-openai==0.1.11", - "llama-index-embeddings-ollama==0.1.2", - "llama-index-vector-stores-postgres==0.1.13", + "llama-index-embeddings-openai==0.3.1", + "llama-index-embeddings-ollama==0.5.0", + "llama-index-vector-stores-postgres==0.4.1", # Including Supabase conflicts with postgres on pg-vector. # Hence, commenting it out at the moment # "llama-index-vector-stores-supabase==0.1.3", - "llama-index-vector-stores-milvus==0.1.21", - "llama-index-vector-stores-weaviate==1.0.2", - "llama-index-vector-stores-pinecone==0.1.8", - "llama-index-vector-stores-qdrant==0.2.14", - "llama-index-llms-openai==0.1.27", - "llama-index-llms-palm==0.1.5", - "llama-index-llms-mistralai==0.1.19", - #Todo: Remove the version locking for mistralai below - #once the the following error is resolved from mistralai side - #Unable to import llm adapters : No module named 'mistralai.models.chat_completion' - #Looks like mistralai>0.4.2 is not backward compatible - "mistralai==0.4.2", - "llama-index-llms-anyscale==0.1.4", - "llama-index-llms-anthropic==0.1.16", - "llama-index-llms-azure-openai==0.1.10", - "llama-index-llms-vertex==0.2.2", - "llama-index-llms-replicate==0.1.3", - "llama-index-llms-ollama==0.2.2", - "llama-index-llms-bedrock==0.1.13", + "llama-index-vector-stores-milvus==0.4.0", + "llama-index-vector-stores-weaviate==1.3.1", + "llama-index-vector-stores-pinecone==0.4.2", + "llama-index-vector-stores-qdrant==0.4.2", + "llama-index-llms-openai==0.3.12", + "llama-index-llms-palm==0.3.0", + "llama-index-llms-mistralai==0.3.1", + "mistralai==1.2.5", + "llama-index-llms-anyscale==0.3.0", + "llama-index-llms-anthropic==0.6.3", + "llama-index-llms-azure-openai==0.3.0", + "llama-index-llms-vertex==0.4.2", + "llama-index-llms-replicate==0.4.0", + "llama-index-llms-ollama==0.5.0", + "llama-index-llms-bedrock==0.3.3", # For Llama Parse X2Text - "llama-parse==0.4.9", + "llama-parse==0.5.19", # OCR "filetype~=1.2.0", # Others diff --git a/src/unstract/sdk/__init__.py b/src/unstract/sdk/__init__.py index 7387ba51..9a64f414 100644 --- a/src/unstract/sdk/__init__.py +++ b/src/unstract/sdk/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.54.0rc12" +__version__ = "0.56.0rc3" def get_sdk_version(): diff --git a/src/unstract/sdk/adapters/llm/exceptions.py b/src/unstract/sdk/adapters/llm/exceptions.py index 1c1297ce..ed76c4cd 100644 --- a/src/unstract/sdk/adapters/llm/exceptions.py +++ b/src/unstract/sdk/adapters/llm/exceptions.py @@ -1,6 +1,6 @@ from anthropic import APIError as AnthropicAPIError from google.api_core.exceptions import GoogleAPICallError -from mistralai.exceptions import MistralException +from mistralai.models import SDKError as MistralError from openai import APIError as OpenAIAPIError from vertexai.generative_models import ResponseValidationError @@ -35,7 +35,7 @@ def parse_llm_err(e: Exception, llm_adapter: LLMAdapter) -> LLMError: err = OpenAILLM.parse_llm_err(e) elif isinstance(e, AnthropicAPIError): err = AnthropicLLM.parse_llm_err(e) - elif isinstance(e, MistralException): + elif isinstance(e, MistralError): err = MistralLLM.parse_llm_err(e) elif isinstance(e, GoogleAPICallError): err = PaLMLLM.parse_llm_err(e) diff --git a/src/unstract/sdk/adapters/llm/mistral/src/mistral.py b/src/unstract/sdk/adapters/llm/mistral/src/mistral.py index c2e2d39f..b9a5a06d 100644 --- a/src/unstract/sdk/adapters/llm/mistral/src/mistral.py +++ b/src/unstract/sdk/adapters/llm/mistral/src/mistral.py @@ -4,7 +4,7 @@ from llama_index.core.llms import LLM from llama_index.llms.mistralai import MistralAI from llama_index.llms.mistralai.base import DEFAULT_MISTRALAI_MAX_TOKENS -from mistralai.exceptions import MistralException +from mistralai.models import SDKError as MistralError from unstract.sdk.adapters.exceptions import AdapterError from unstract.sdk.adapters.llm.constants import LLMKeys @@ -75,7 +75,7 @@ def get_llm_instance(self) -> LLM: raise AdapterError(str(e)) @staticmethod - def parse_llm_err(e: MistralException) -> LLMError: + def parse_llm_err(e: MistralError) -> LLMError: """Parse the error from MistralAI. Helps parse errors from MistralAI and wraps with custom exception. diff --git a/src/unstract/sdk/adapters/x2text/constants.py b/src/unstract/sdk/adapters/x2text/constants.py index 44418c55..bd703e65 100644 --- a/src/unstract/sdk/adapters/x2text/constants.py +++ b/src/unstract/sdk/adapters/x2text/constants.py @@ -3,6 +3,7 @@ class X2TextConstants: X2TEXT_HOST = "X2TEXT_HOST" X2TEXT_PORT = "X2TEXT_PORT" ENABLE_HIGHLIGHT = "enable_highlight" + TAGS = "tags" EXTRACTED_TEXT = "extracted_text" WHISPER_HASH = "whisper-hash" WHISPER_HASH_V2 = "whisper_hash" diff --git a/src/unstract/sdk/adapters/x2text/helper.py b/src/unstract/sdk/adapters/x2text/helper.py index 590624d2..28667f02 100644 --- a/src/unstract/sdk/adapters/x2text/helper.py +++ b/src/unstract/sdk/adapters/x2text/helper.py @@ -73,7 +73,7 @@ def process_document( if not local_storage.exists(input_file_path): fs.download(from_path=input_file_path, to_path=input_file_path) with open(input_file_path, "rb") as input_f: - mime_type = local_storage.mime_type(input_file=input_file_path) + mime_type = local_storage.mime_type(path=input_file_path) files = {"file": (input_file_path, input_f, mime_type)} response = UnstructuredHelper.make_request( unstructured_adapter_config=unstructured_adapter_config, diff --git a/src/unstract/sdk/adapters/x2text/llama_parse/src/llama_parse.py b/src/unstract/sdk/adapters/x2text/llama_parse/src/llama_parse.py index 44e8f551..143fd94b 100644 --- a/src/unstract/sdk/adapters/x2text/llama_parse/src/llama_parse.py +++ b/src/unstract/sdk/adapters/x2text/llama_parse/src/llama_parse.py @@ -72,7 +72,7 @@ def _call_parser( fs.write( path=input_file_path, data=text_content, - mode="w", + mode="wb", encoding="utf-8", ) except OSError as os_err: diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/static/json_schema.json b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/static/json_schema.json index d0316d59..70e71a48 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/static/json_schema.json +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/static/json_schema.json @@ -225,13 +225,13 @@ "type": "boolean", "title": "Mark vertical lines", "default": false, - "description": "States whether to reproduce vertical lines in the document." + "description": "States whether to reproduce vertical lines in the document. Note: This parameter is not applicable if `mode` chosen is `native_text`." }, "mark_horizontal_lines": { "type": "boolean", "title": "Mark horizontal lines", "default": false, - "description": "States whether to reproduce horizontal lines in the document." + "description": "States whether to reproduce horizontal lines in the document. Note: This parameter is not applicable if `mode` chosen is `native_text` and will not work if `mark_vertical_lines` is set to `false`." }, "tag": { "type": "string", diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/dto.py b/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/dto.py new file mode 100644 index 00000000..d1c1e184 --- /dev/null +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/dto.py @@ -0,0 +1,20 @@ +from dataclasses import dataclass +from typing import Optional + + +@dataclass +class WhispererRequestParams: + """DTO for LLM Whisperer API request parameters. + + Args: + tag: Tag value. Can be initialized with List[str], str, or None. + Will be converted to str | None after initialization. + """ + + # TODO: Extend this DTO to include all Whisperer API parameters + tag: Optional[str] = None + + def __post_init__(self) -> None: + # TODO: Allow list of tags once its supported in LLMW v2 + if isinstance(self.tag, list): + self.tag = self.tag[0] if self.tag else None diff --git a/src/unstract/sdk/constants.py b/src/unstract/sdk/constants.py index 49181a65..29cc20df 100644 --- a/src/unstract/sdk/constants.py +++ b/src/unstract/sdk/constants.py @@ -127,6 +127,8 @@ class MetadataKey: SOURCE_HASH = "source_hash" WORKFLOW_ID = "workflow_id" EXECUTION_ID = "execution_id" + FILE_EXECUTION_ID = "file_execution_id" + TAGS = "tags" ORG_ID = "organization_id" TOOL_META = "tool_metadata" TOOL_NAME = "tool_name" @@ -168,3 +170,10 @@ class MimeType: PDF = "application/pdf" TEXT = "text/plain" JSON = "application/json" + + +class UsageKwargs: + RUN_ID = "run_id" + FILE_NAME = "file_name" + WORKFLOW_ID = "workflow_id" + EXECUTION_ID = "execution_id" diff --git a/src/unstract/sdk/file_storage/impl.py b/src/unstract/sdk/file_storage/impl.py index 53ced288..028bbd40 100644 --- a/src/unstract/sdk/file_storage/impl.py +++ b/src/unstract/sdk/file_storage/impl.py @@ -383,3 +383,22 @@ def guess_extension(self, path: str) -> str: file_type = filetype.guess(sample_contents) file_extension = file_type.EXTENSION return file_extension + + def walk(self, path: str, max_depth=None, topdown=True): + """Walks the dir in the path and returns the list of files/dirs. + + Args: + path (str): Root to recurse into + maxdepth (int): Maximum recursion depth. None means limitless, + but not recommended + on link-based file-systems. + topdown (bool): Whether to walk the directory tree from the top + downwards or from + the bottom upwards. + + Returns: + Iterator containing the list of files and folders + """ + # Invalidating cache explicitly to avoid any stale listing + self.fs.invalidate_cache(path=path) + return self.fs.walk(path, maxdepth=max_depth, topdown=topdown) diff --git a/src/unstract/sdk/file_storage/interface.py b/src/unstract/sdk/file_storage/interface.py index 5077279f..fa53830b 100644 --- a/src/unstract/sdk/file_storage/interface.py +++ b/src/unstract/sdk/file_storage/interface.py @@ -125,3 +125,7 @@ def yaml_load( @abstractmethod def guess_extension(self, path: str) -> str: pass + + @abstractmethod + def walk(self, path: str): + pass diff --git a/src/unstract/sdk/index.py b/src/unstract/sdk/index.py index 16079a6f..c132ddaf 100644 --- a/src/unstract/sdk/index.py +++ b/src/unstract/sdk/index.py @@ -128,6 +128,7 @@ def extract_text( usage_kwargs: dict[Any, Any] = {}, process_text: Optional[Callable[[str], str]] = None, fs: FileStorage = FileStorage(FileStorageProvider.LOCAL), + tags: Optional[list[str]] = None, ) -> str: """Extracts text from a document. @@ -147,6 +148,7 @@ def extract_text( Defaults to {}. process_text (Optional[Callable[[str], str]], optional): Optional function to post-process the text. Defaults to None. + tags: (Optional[list[str]], optional): Tags Raises: IndexingError: Errors during text extraction @@ -164,6 +166,7 @@ def extract_text( input_file_path=file_path, output_file_path=output_file_path, enable_highlight=enable_highlight, + tags=tags, fs=fs, ) whisper_hash_value = process_response.extraction_metadata.whisper_hash @@ -171,7 +174,10 @@ def extract_text( self.tool.update_exec_metadata(metadata) else: process_response: TextExtractionResult = x2text.process( - input_file_path=file_path, output_file_path=output_file_path, fs=fs + input_file_path=file_path, + output_file_path=output_file_path, + tags=tags, + fs=fs, ) extracted_text = process_response.extracted_text # TODO: Handle prepend of context where error is raised and remove this @@ -193,6 +199,7 @@ def extract_text( ) return extracted_text + # TODO: Reduce the number of params by some dataclass @log_elapsed(operation="CHECK_AND_INDEX(overall)") @capture_metrics def index( @@ -211,6 +218,7 @@ def index( usage_kwargs: dict[Any, Any] = {}, process_text: Optional[Callable[[str], str]] = None, fs: FileStorage = FileStorage(provider=FileStorageProvider.LOCAL), + tags: Optional[list[str]] = None, ) -> str: """Indexes an individual file using the passed arguments. @@ -231,6 +239,8 @@ def index( output_file_path (Optional[str], optional): File path to write the extracted contents into. Defaults to None. fs (FileStorage): file storage object to perfrom file operations + tags (Optional[list[str]], optional): List of tags to be associated with + the indexed document. Returns: str: A unique ID for the file and indexing arguments combination @@ -300,6 +310,7 @@ def index( usage_kwargs=usage_kwargs, process_text=process_text, fs=fs, + tags=tags, ) return doc_id @@ -310,6 +321,7 @@ def index( enable_highlight=enable_highlight, usage_kwargs=usage_kwargs, process_text=process_text, + tags=tags, fs=fs, ) if not extracted_text: diff --git a/src/unstract/sdk/tool/base.py b/src/unstract/sdk/tool/base.py index fdc7b81d..026c22d6 100644 --- a/src/unstract/sdk/tool/base.py +++ b/src/unstract/sdk/tool/base.py @@ -39,6 +39,9 @@ def __init__(self, log_level: LogLevel = LogLevel.INFO) -> None: self.variables = ToolConfigHelper.variables() self.workflow_id = "" self.execution_id = "" + self.file_execution_id = "" + self.tags = [] + self.source_file_name = "" self.org_id = "" self._exec_metadata = {} self.filestorage_provider = None @@ -84,7 +87,12 @@ def from_tool_args(cls, args: list[str]) -> "BaseTool": if parsed_args.command not in Command.static_commands(): tool._exec_metadata = tool._get_exec_metadata() tool.workflow_id = tool._exec_metadata.get(MetadataKey.WORKFLOW_ID) - tool.execution_id = tool._exec_metadata.get(MetadataKey.EXECUTION_ID) + tool.execution_id = tool._exec_metadata.get(MetadataKey.EXECUTION_ID, "") + tool.file_execution_id = tool._exec_metadata.get( + MetadataKey.FILE_EXECUTION_ID, "" + ) + tool.tags = tool._exec_metadata.get(MetadataKey.TAGS, []) + tool.source_file_name = tool._exec_metadata.get(MetadataKey.SOURCE_NAME, "") tool.org_id = tool._exec_metadata.get(MetadataKey.ORG_ID) return tool diff --git a/tests/test_file_storage.py b/tests/test_file_storage.py index c717ae0a..587e0b95 100644 --- a/tests/test_file_storage.py +++ b/tests/test_file_storage.py @@ -771,3 +771,72 @@ def test_get_storage(storage_type, env_name, expected): file_storage = EnvHelper.get_storage(storage_type, env_name) assert file_storage.provider == expected print(file_storage) + + +@pytest.mark.parametrize( + "storage_type, env_name, path", + [ + ( + StorageType.PERMANENT, + "TEST_PERMANENT_STORAGE", + "fsspec-test", + ), + ( + StorageType.SHARED_TEMPORARY, + "TEST_TEMPORARY_STORAGE", + "unstract/execution/mock_org/" + "13484b52-2127-48c2-b1a3-b517365346c3/" + "39fcdcba-90bb-44ce-9446-67253adcb4d7/COPY_TO_FOLDER", + ), + ], +) +def test_dir_walk(storage_type, env_name, path): + file_storage = EnvHelper.get_storage(storage_type, env_name) + try: + root, dirs, files = next(file_storage.walk(path)) + except StopIteration: + return [] + for dir_name in dirs: + print(dir_name) + for file_name in files: + print(file_name) + if storage_type == StorageType.PERMANENT: + assert len(files) > 0 + elif storage_type == StorageType.SHARED_TEMPORARY: + assert len(files) == 0 + + +def list_print_dir(file_storage, path, iter_num): + print(f"PATH: {path}") + print(f"\nItertion: {iter_num}") + try: + root, dirs, files = next(file_storage.walk(path)) + except StopIteration: + return [] + for dir_name in dirs: + print(dir_name) + for file_name in files: + print(file_name) + print(f"Files: {files}") + + +@pytest.mark.parametrize( + "storage_type, env_name, path", + [ + ( + StorageType.SHARED_TEMPORARY, + "TEST_TEMPORARY_STORAGE", + "unstract/execution/mock_org/" + "13484b52-2127-48c2-b1a3-b517365346c3/b" + "f7b3d81-d0aa-4e9e-883d-25dd0f3a6466/COPY_TO_FOLDER", + ), + ], +) +def test_dir_ls(storage_type, env_name, path): + new_file = os.path.join(path, "tmp.txt") + file_storage = EnvHelper.get_storage(storage_type, env_name) + if file_storage.exists(new_file): + file_storage.rm(new_file) + list_print_dir(file_storage, path, "1") + file_storage.write(new_file, "w", data="Hello") + list_print_dir(file_storage, path, "2") From 9be5cc04a7903243fb16a4f93c1058b3046a118a Mon Sep 17 00:00:00 2001 From: jagadeeswaran-zipstack Date: Fri, 7 Feb 2025 02:42:44 +0530 Subject: [PATCH 07/15] migrated to llmw python client --- pyproject.toml | 1 + .../x2text/llm_whisperer/src/constants.py | 4 + .../x2text/llm_whisperer/src/helper.py | 7 + .../x2text/llm_whisperer/src/llm_whisperer.py | 269 +++++------------- .../x2text/llm_whisperer_v2/src/dto.py | 20 -- 5 files changed, 91 insertions(+), 210 deletions(-) delete mode 100644 src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/dto.py diff --git a/pyproject.toml b/pyproject.toml index 155ed9fc..36f00033 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -53,6 +53,7 @@ dependencies = [ "httpx>=0.25.2", "pdfplumber>=0.11.2", "redis>=5.2.1", + "llmwhisperer-client>=2.1.0", ] readme = "README.md" urls = { Homepage = "https://unstract.com", "Release notes" = "https://github.com/Zipstack/unstract-sdk/releases", Source = "https://github.com/Zipstack/unstract-sdk" } diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py index d0c60286..3351adcf 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py @@ -87,6 +87,8 @@ class WhispererConfig: WEBHOOK_METADATA = "webhook_metadata" TEXT_ONLY = "text_only" VERSION = "version" + WAIT_TIMEOUT = "wait_timeout" + WAIT_FOR_COMPLETION ="wait_for_completion" class WhisperStatus: """Values returned / used by /whisper-status endpoint.""" @@ -124,3 +126,5 @@ class WhispererDefaults: URL_IN_POST = False TAG = "default" TEXT_ONLY = False + WAIT_TIMEOUT = 300 + WAIT_FOR_COMPLETION = True diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/helper.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/helper.py index 11648674..ce5f341d 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/helper.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/helper.py @@ -64,6 +64,13 @@ def get_whisperer_params(config: dict[str, Any]) -> dict[str, Any]: WhispererConfig.WEBHOOK_METADATA: config.get( WhispererConfig.WEBHOOK_METADATA ), + WhispererConfig.WAIT_TIMEOUT: config.get( + WhispererConfig.WAIT_TIMEOUT, + WhispererDefaults.WAIT_TIMEOUT, + ), + WhispererConfig.WAIT_FOR_COMPLETION: config.get( + WhispererDefaults.WAIT_FOR_COMPLETION + ), } if params[WhispererConfig.MODE] == Modes.LOW_COST.value: params.update( diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py index 9f3d862e..0df4466e 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py @@ -1,3 +1,4 @@ +from io import BytesIO import json import logging import os @@ -9,6 +10,11 @@ from requests import Response from requests.exceptions import ConnectionError, HTTPError, Timeout +from unstract.llmwhisperer.client_v2 import ( + LLMWhispererClientV2, + LLMWhispererClientException, +) +from unstract.llmwhisperer.client import LLMWhispererClient from unstract.sdk.adapters.exceptions import ExtractorError from unstract.sdk.adapters.utils import AdapterUtils from unstract.sdk.adapters.x2text.constants import X2TextConstants @@ -36,12 +42,12 @@ class LLMWhisperer(X2TextAdapter): _version = "v2" + def __init__(self, settings: dict[str, Any]): super().__init__("LLMWhisperer") self.config = settings self.config["version"] = settings.get(WhispererConfig.VERSION, "v2") LLMWhisperer._version = settings.get(WhispererConfig.VERSION, "v2") - ID = "llmwhisperer|a5e6b8af-3e1f-4a80-b006-d017e8e67f93" NAME = "LLMWhisperer" @@ -71,24 +77,12 @@ def get_json_schema() -> str: f.close() return schema - def _get_request_headers(self) -> dict[str, Any]: - """Obtains the request headers to authenticate with LLMWhisperer. - - Returns: - str: Request headers - """ - return { - "accept": MimeType.JSON, - WhispererHeader.UNSTRACT_KEY: self.config.get(WhispererConfig.UNSTRACT_KEY), - } - def _make_request( self, - request_method: HTTPMethod, request_endpoint: str, - headers: Optional[dict[str, Any]] = None, params: Optional[dict[str, Any]] = None, data: Optional[Any] = None, + is_test_connect: bool = False, ) -> Response: """Makes a request to LLMWhisperer service. @@ -107,41 +101,65 @@ def _make_request( """ # Determine version and set appropriate URL version = self.config.get("version", "v1") - base_url = (f"{self.config.get(WhispererConfig.URL)}/api/v2/{request_endpoint}" - if version == "v2" - else f"{self.config.get(WhispererConfig.URL)}" f"/v1/{request_endpoint}" - ) - - if not headers: - headers = self._get_request_headers() - - try: - response: Response - if request_method == HTTPMethod.GET: + base_url = ( + f"{self.config.get(WhispererConfig.URL)}/api/v2/{request_endpoint}" + if version == "v2" + else f"{self.config.get(WhispererConfig.URL)}" f"/v1/{request_endpoint}" + ) + if is_test_connect: + headers = { + "accept": MimeType.JSON, + WhispererHeader.UNSTRACT_KEY: self.config.get( + WhispererConfig.UNSTRACT_KEY + ), + } + try: response = requests.get(url=base_url, headers=headers, params=params) - elif request_method == HTTPMethod.POST: - response = requests.post( - url=base_url, headers=headers, params=params, data=data + except ConnectionError as e: + logger.error(f"Adapter error: {e}") + raise ExtractorError( + "Unable to connect to LLMWhisperer service, please check the URL" + ) + except HTTPError as e: + logger.error(f"Adapter error: {e}") + default_err = "Error while calling the LLMWhisperer service" + msg = AdapterUtils.get_msg_from_request_exc( + err=e, message_key="message", default_err=default_err + ) + raise ExtractorError(msg) + + else: + client = ( + LLMWhispererClientV2( + base_url=base_url, + api_key=self.config.get(WhispererConfig.UNSTRACT_KEY), + ) + if version == "v2" + else LLMWhispererClient( + base_url=base_url, + api_key=self.config.get(WhispererConfig.UNSTRACT_KEY), ) - else: - raise ExtractorError(f"Unsupported request method: {request_method}") - response.raise_for_status() - except ConnectionError as e: - logger.error(f"Adapter error: {e}") - raise ExtractorError( - "Unable to connect to LLMWhisperer service, please check the URL", - ) - except Timeout as e: - msg = "Request to LLMWhisperer has timed out" - logger.error(f"{msg}: {e}") - raise ExtractorError(msg) - except HTTPError as e: - logger.error(f"Adapter error: {e}") - default_err = "Error while calling the LLMWhisperer service" - msg = AdapterUtils.get_msg_from_request_exc( - err=e, message_key="message", default_err=default_err ) - raise ExtractorError(msg) + try: + response: Any + whisper_result = client.whisper(params, stream=data) + if whisper_result["status_code"] == 200: + response = whisper_result["extraction"] + else: + default_err = "Error while calling the LLMWhisperer service" + raise ExtractorError( + default_err, + whisper_result["status_code"], + whisper_result["message"], + ) + except LLMWhispererClientException as e: + logger.error(f"Adapter error: {e}") + raise ExtractorError(message=LLMWhispererClientException.error_message) + + except Exception as e: + logger.error(f"Adapter error: {e}") + default_err = "Error while calling the LLMWhisperer service" + raise ExtractorError(message=default_err, actual_err=e) return response def _get_whisper_params(self, enable_highlight: bool = False) -> dict[str, Any]: @@ -193,6 +211,13 @@ def _get_whisper_params(self, enable_highlight: bool = False) -> dict[str, Any]: WhispererConfig.MARK_HORIZONTAL_LINES, WhispererDefaults.MARK_HORIZONTAL_LINES, ), + WhispererConfig.WAIT_FOR_COMPLETION: self.config.get( + WhispererDefaults.WAIT_FOR_COMPLETION, + ), + WhispererConfig.WAIT_TIMEOUT: self.config.get( + WhispererConfig.WAIT_TIMEOUT, + WhispererDefaults.WAIT_TIMEOUT, + ), } if not params[WhispererConfig.FORCE_TEXT_PROCESSING]: params.update( @@ -216,135 +241,10 @@ def _get_whisper_params(self, enable_highlight: bool = False) -> dict[str, Any]: def test_connection(self) -> bool: self._make_request( - request_method=HTTPMethod.GET, - request_endpoint=WhispererEndpoint.TEST_CONNECTION, + request_endpoint=WhispererEndpoint.TEST_CONNECTION, is_test_connection=True ) return True - def _check_status_until_ready( - - self, - whisper_hash: str = "", - headers: dict[str, Any] = None, - params: dict[str, Any] = None, - ) -> WhisperStatus: - """Checks the extraction status by polling for both v1 and v2. - - Polls the /whisper-status endpoint in fixed intervals of - env: ADAPTER_LLMW_POLL_INTERVAL for a certain number of times - controlled by env: ADAPTER_LLMW_MAX_POLLS. - - Args: - version (str): Version of the LLMWhisperer API (either 'v1' or 'v2') - config (Optional[dict[str, Any]]): Configuration for v2 (None for v1) - whisper_hash (str): Identifier for the extraction, returned by LLMWhisperer - headers (dict[str, Any]): Headers to pass for the status check - params (dict[str, Any]): Params to pass for the status check - - Returns: - WhisperStatus: Status of the extraction - """ - version = self.config['version'] - POLL_INTERVAL = WhispererDefaults.POLL_INTERVAL_V2 if version == "v2" else WhispererDefaults.POLL_INTERVAL - MAX_POLLS = WhispererDefaults.MAX_POLLS_V2 if version == "v2" else WhispererDefaults.MAX_POLLS - STATUS_RETRY_THRESHOLD = WhispererDefaults.STATUS_RETRIES if version == "v2" else 0 - status_retry_count = 0 - request_count = 0 - - while True: - request_count += 1 - logger.info( - f"Checking status{' for whisper-hash ' if version == 'v2' else ''}" - f"'{whisper_hash}' with interval: {POLL_INTERVAL}s, request count: " - f"{request_count} [max: {MAX_POLLS}]" - ) - - # Make request based on version - status_response = self._make_request( - request_method=HTTPMethod.GET, - request_endpoint=WhispererEndpoint.STATUS, - headers=headers, - params=params, - ) - - if status_response.status_code == 200: - status_data = status_response.json() - status = status_data.get(WhisperStatus.STATUS, WhisperStatus.UNKNOWN) - logger.info(f"Whisper status for '{whisper_hash}': {status}") - if status in [WhisperStatus.PROCESSED, WhisperStatus.DELIVERED]: - break - else: - if version == "v2" and status_retry_count >= STATUS_RETRY_THRESHOLD: - raise ExtractorError( - f"Error checking LLMWhisperer status for whisper-hash " - f"'{whisper_hash}': {status_response.text}" - ) - elif version == "v2": - status_retry_count += 1 - logger.warning( - f"Whisper status for '{whisper_hash}' failed " - f"{status_retry_count} time(s), retrying... " - f"[threshold: {STATUS_RETRY_THRESHOLD}]: {status_response.text}" - ) - else: # v1 error handling - raise ExtractorError( - "Error checking LLMWhisperer status: " - f"{status_response.status_code} - {status_response.text}" - ) - - if request_count >= MAX_POLLS: - raise ExtractorError( - f"Unable to extract text for whisper-hash '{whisper_hash}' " - f"after attempting {request_count} times" - ) - - time.sleep(POLL_INTERVAL) - - return status - - - def _extract_async(self, whisper_hash: str) -> str: - """Makes an async extraction with LLMWhisperer. - - Polls and checks the status first before proceeding to retrieve once. - - Args: - whisper_hash (str): Identifier of the extraction - - Returns: - str: Extracted contents from the file - """ - logger.info(f"Extracting async for whisper hash: {whisper_hash}") - version = self.config['version'] - headers: dict[str, Any] = self._get_request_headers() - params =({ - WhisperStatus.WHISPER_HASH: whisper_hash, - WhispererConfig.OUTPUT_JSON: WhispererDefaults.OUTPUT_JSON, - } if version == 'v1' - else { - WhisperStatus.WHISPER_HASH_V2: whisper_hash, - WhispererConfig.TEXT_ONLY: WhispererDefaults.TEXT_ONLY, - }) - - # Polls in fixed intervals and checks status - self._check_status_until_ready( - whisper_hash=whisper_hash, headers=headers, params=params - ) - - retrieve_response = self._make_request( - request_method=HTTPMethod.GET, - request_endpoint=WhispererEndpoint.RETRIEVE, - headers=headers, - params=params, - ) - if retrieve_response.status_code == 200: - return retrieve_response.json() - else: - raise ExtractorError( - "Error retrieving from LLMWhisperer: " - f"{retrieve_response.status_code} - {retrieve_response.text}" - ) - def _send_whisper_request( self, input_file_path: str, @@ -362,10 +262,9 @@ def _send_whisper_request( Returns: requests.Response: Response from the whisper request """ - version = self.config['version'] + version = self.config["version"] config = self.config params = {} - headers = self._get_request_headers() if version == "v1": params = self._get_whisper_params(enable_highlight) elif version == "v2": @@ -373,16 +272,13 @@ def _send_whisper_request( else: raise ValueError("Unsupported version. Only 'v1' and 'v2' are allowed.") - headers["Content-Type"] = "application/octet-stream" - try: input_file_data = fs.read(input_file_path, "rb") + file_buffer = BytesIO(input_file_data.read()) response = self._make_request( - request_method=HTTPMethod.POST, request_endpoint=WhispererEndpoint.WHISPER, - headers=headers, params=params, - data=input_file_data, + data=file_buffer, ) except OSError as e: logger.error(f"OS error while reading {input_file_path}: {e}") @@ -397,15 +293,8 @@ def _extract_text_from_response( fs: FileStorage = FileStorage(provider=FileStorageProvider.LOCAL), ) -> str: output_json = {} - version = self.config['version'] - if response.status_code == 200: - output_json = response.json() - elif response.status_code == 202: - whisper_hash_key = WhisperStatus.WHISPER_HASH_V2 if version == "v2" else WhisperStatus.WHISPER_HASH - whisper_hash = response.json().get(whisper_hash_key) - output_json = self._extract_async(whisper_hash=whisper_hash) - else: - raise ExtractorError("Couldn't extract text from file") + version = self.config["version"] + output_json = response if output_file_path: self._write_output_to_file( output_json=output_json, output_file_path=Path(output_file_path), fs=fs @@ -432,7 +321,7 @@ def _write_output_to_file( ExtractorError: If there is an error while writing the output file. """ try: - version = self.config['version'] + version = self.config["version"] output_key = "text" if version == "v1" else "result_text" text_output = output_json.get(output_key, "") logger.info(f"Writing output to {output_file_path}") @@ -490,7 +379,7 @@ def process( Returns: TextExtractionResult: Extracted text along with metadata. """ - if self.config['version'] == "v2": + if self.config["version"] == "v2": # V2 logic response: requests.Response = self._send_whisper_request( input_file_path, fs=fs diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/dto.py b/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/dto.py deleted file mode 100644 index d1c1e184..00000000 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer_v2/src/dto.py +++ /dev/null @@ -1,20 +0,0 @@ -from dataclasses import dataclass -from typing import Optional - - -@dataclass -class WhispererRequestParams: - """DTO for LLM Whisperer API request parameters. - - Args: - tag: Tag value. Can be initialized with List[str], str, or None. - Will be converted to str | None after initialization. - """ - - # TODO: Extend this DTO to include all Whisperer API parameters - tag: Optional[str] = None - - def __post_init__(self) -> None: - # TODO: Allow list of tags once its supported in LLMW v2 - if isinstance(self.tag, list): - self.tag = self.tag[0] if self.tag else None From 23e5cf916e34ea802ce592127d6580e0712beea5 Mon Sep 17 00:00:00 2001 From: jagadeeswaran-zipstack Date: Fri, 7 Feb 2025 02:47:53 +0530 Subject: [PATCH 08/15] added fix for llmw python client migration --- .../x2text/llm_whisperer/src/constants.py | 11 +--- .../x2text/llm_whisperer/src/helper.py | 6 +- .../x2text/llm_whisperer/src/llm_whisperer.py | 66 +++++++------------ 3 files changed, 29 insertions(+), 54 deletions(-) diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py index 3351adcf..8b2f082d 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py @@ -72,7 +72,7 @@ class WhispererConfig: GAUSSIAN_BLUR_RADIUS = "gaussian_blur_radius" FORCE_TEXT_PROCESSING = "force_text_processing" LINE_SPLITTER_TOLERANCE = "line_splitter_tolerance" - LINE_SPLITTER_STRATEGY = "line_splitter_strategy" + LINE_SPLITTER_STRATEGY = "line_spitter_strategy" HORIZONTAL_STRETCH_FACTOR = "horizontal_stretch_factor" PAGES_TO_EXTRACT = "pages_to_extract" STORE_METADATA_FOR_HIGHLIGHTING = "store_metadata_for_highlighting" @@ -81,14 +81,14 @@ class WhispererConfig: PAGE_SEPARATOR = "page_seperator" MARK_VERTICAL_LINES = "mark_vertical_lines" MARK_HORIZONTAL_LINES = "mark_horizontal_lines" - URL_IN_POST = "url_in_post" TAG = "tag" USE_WEBHOOK = "use_webhook" WEBHOOK_METADATA = "webhook_metadata" TEXT_ONLY = "text_only" VERSION = "version" WAIT_TIMEOUT = "wait_timeout" - WAIT_FOR_COMPLETION ="wait_for_completion" + WAIT_FOR_COMPLETION = "wait_for_completion" + class WhisperStatus: """Values returned / used by /whisper-status endpoint.""" @@ -112,17 +112,12 @@ class WhispererDefaults: LINE_SPLITTER_TOLERANCE = 0.75 LINE_SPLITTER_STRATEGY = "left-priority" HORIZONTAL_STRETCH_FACTOR = 1.0 - POLL_INTERVAL = int(os.getenv(WhispererEnv.POLL_INTERVAL, 30)) - MAX_POLLS = int(os.getenv(WhispererEnv.MAX_POLLS, 30)) - POLL_INTERVAL_V2 = int(os.getenv(WhispererEnv.POLL_INTERVAL_V2, 30)) - MAX_POLLS_V2 = int(os.getenv(WhispererEnv.MAX_POLLS_V2, 30)) PAGES_TO_EXTRACT = "" ADD_LINE_NOS = True OUTPUT_JSON = True PAGE_SEPARATOR = "<<< >>>" MARK_VERTICAL_LINES = False MARK_HORIZONTAL_LINES = False - STATUS_RETRIES = int(os.getenv(WhispererEnv.STATUS_RETRIES, 5)) URL_IN_POST = False TAG = "default" TEXT_ONLY = False diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/helper.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/helper.py index ce5f341d..1c3bc461 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/helper.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/helper.py @@ -6,6 +6,7 @@ WhispererConfig, WhispererDefaults, ) + logger = logging.getLogger(__name__) @@ -49,7 +50,6 @@ def get_whisperer_params(config: dict[str, Any]) -> dict[str, Any]: WhispererConfig.MARK_HORIZONTAL_LINES, WhispererDefaults.MARK_HORIZONTAL_LINES, ), - WhispererConfig.URL_IN_POST: WhispererDefaults.URL_IN_POST, WhispererConfig.PAGE_SEPARATOR: config.get( WhispererConfig.PAGE_SEPARATOR, WhispererDefaults.PAGE_SEPARATOR, @@ -68,9 +68,7 @@ def get_whisperer_params(config: dict[str, Any]) -> dict[str, Any]: WhispererConfig.WAIT_TIMEOUT, WhispererDefaults.WAIT_TIMEOUT, ), - WhispererConfig.WAIT_FOR_COMPLETION: config.get( - WhispererDefaults.WAIT_FOR_COMPLETION - ), + WhispererConfig.WAIT_FOR_COMPLETION: WhispererDefaults.WAIT_FOR_COMPLETION, } if params[WhispererConfig.MODE] == Modes.LOW_COST.value: params.update( diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py index 0df4466e..ea219f19 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py @@ -2,7 +2,6 @@ import json import logging import os -import time from pathlib import Path from typing import Any, Optional @@ -82,7 +81,7 @@ def _make_request( request_endpoint: str, params: Optional[dict[str, Any]] = None, data: Optional[Any] = None, - is_test_connect: bool = False, + is_test_connection: bool = False, ) -> Response: """Makes a request to LLMWhisperer service. @@ -102,19 +101,20 @@ def _make_request( # Determine version and set appropriate URL version = self.config.get("version", "v1") base_url = ( - f"{self.config.get(WhispererConfig.URL)}/api/v2/{request_endpoint}" + f"{self.config.get(WhispererConfig.URL)}/api/v2" if version == "v2" - else f"{self.config.get(WhispererConfig.URL)}" f"/v1/{request_endpoint}" + else f"{self.config.get(WhispererConfig.URL)}" f"/v1" ) - if is_test_connect: + if is_test_connection: headers = { "accept": MimeType.JSON, WhispererHeader.UNSTRACT_KEY: self.config.get( WhispererConfig.UNSTRACT_KEY ), } + url = f"{base_url}/{request_endpoint}" try: - response = requests.get(url=base_url, headers=headers, params=params) + response = requests.get(url=url, headers=headers, params=params) except ConnectionError as e: logger.error(f"Adapter error: {e}") raise ExtractorError( @@ -142,24 +142,25 @@ def _make_request( ) try: response: Any - whisper_result = client.whisper(params, stream=data) + whisper_result = client.whisper(**params, stream=data) if whisper_result["status_code"] == 200: - response = whisper_result["extraction"] + if version == "v2": + response = whisper_result["extraction"] + else: + response = whisper_result else: default_err = "Error while calling the LLMWhisperer service" raise ExtractorError( - default_err, - whisper_result["status_code"], whisper_result["message"], + whisper_result["status_code"], ) except LLMWhispererClientException as e: - logger.error(f"Adapter error: {e}") - raise ExtractorError(message=LLMWhispererClientException.error_message) + logger.error(f"LLM Whisperer error: {e}") + raise ExtractorError(f"LLM Whisperer error: {e}") except Exception as e: logger.error(f"Adapter error: {e}") - default_err = "Error while calling the LLMWhisperer service" - raise ExtractorError(message=default_err, actual_err=e) + raise ExtractorError(f"Adapter error: {e}") return response def _get_whisper_params(self, enable_highlight: bool = False) -> dict[str, Any]: @@ -177,7 +178,6 @@ def _get_whisper_params(self, enable_highlight: bool = False) -> dict[str, Any]: # Not providing default value to maintain legacy compatablity # Providing default value will overide the params # processing_mode, force_text_processing - WhispererConfig.MODE: self.config.get(WhispererConfig.MODE), WhispererConfig.OUTPUT_MODE: self.config.get( WhispererConfig.OUTPUT_MODE, OutputModes.LINE_PRINTER.value ), @@ -197,27 +197,10 @@ def _get_whisper_params(self, enable_highlight: bool = False) -> dict[str, Any]: WhispererConfig.PAGES_TO_EXTRACT, WhispererDefaults.PAGES_TO_EXTRACT, ), - WhispererConfig.ADD_LINE_NOS: WhispererDefaults.ADD_LINE_NOS, - WhispererConfig.OUTPUT_JSON: WhispererDefaults.OUTPUT_JSON, WhispererConfig.PAGE_SEPARATOR: self.config.get( WhispererConfig.PAGE_SEPARATOR, WhispererDefaults.PAGE_SEPARATOR, ), - WhispererConfig.MARK_VERTICAL_LINES: self.config.get( - WhispererConfig.MARK_VERTICAL_LINES, - WhispererDefaults.MARK_VERTICAL_LINES, - ), - WhispererConfig.MARK_HORIZONTAL_LINES: self.config.get( - WhispererConfig.MARK_HORIZONTAL_LINES, - WhispererDefaults.MARK_HORIZONTAL_LINES, - ), - WhispererConfig.WAIT_FOR_COMPLETION: self.config.get( - WhispererDefaults.WAIT_FOR_COMPLETION, - ), - WhispererConfig.WAIT_TIMEOUT: self.config.get( - WhispererConfig.WAIT_TIMEOUT, - WhispererDefaults.WAIT_TIMEOUT, - ), } if not params[WhispererConfig.FORCE_TEXT_PROCESSING]: params.update( @@ -273,12 +256,11 @@ def _send_whisper_request( raise ValueError("Unsupported version. Only 'v1' and 'v2' are allowed.") try: - input_file_data = fs.read(input_file_path, "rb") - file_buffer = BytesIO(input_file_data.read()) + input_file_data = BytesIO(fs.read(input_file_path, "rb")) response = self._make_request( request_endpoint=WhispererEndpoint.WHISPER, params=params, - data=file_buffer, + data=input_file_data, ) except OSError as e: logger.error(f"OS error while reading {input_file_path}: {e}") @@ -299,7 +281,7 @@ def _extract_text_from_response( self._write_output_to_file( output_json=output_json, output_file_path=Path(output_file_path), fs=fs ) - output_key = "text" if version == "v1" else "result_text" + output_key = "extracted_text" if version == "v1" else "result_text" return output_json.get(output_key, "") def _write_output_to_file( @@ -322,7 +304,7 @@ def _write_output_to_file( """ try: version = self.config["version"] - output_key = "text" if version == "v1" else "result_text" + output_key = "extracted_text" if version == "v1" else "result_text" text_output = output_json.get(output_key, "") logger.info(f"Writing output to {output_file_path}") fs.write( @@ -341,7 +323,9 @@ def _write_output_to_file( fs.mkdir(str(metadata_dir), create_parents=True) # Remove the "text" key from the metadata metadata = { - key: value for key, value in output_json.items() if key != "text" + key: value + for key, value in output_json.items() + if key != output_key } metadata_json = json.dumps(metadata, ensure_ascii=False, indent=4) logger.info(f"Writing metadata to {metadata_file_path}") @@ -384,10 +368,8 @@ def process( response: requests.Response = self._send_whisper_request( input_file_path, fs=fs ) - response_text = response.text - response_dict = json.loads(response_text) metadata = TextExtractionMetadata( - whisper_hash=response_dict.get(WhisperStatus.WHISPER_HASH_V2, "") + whisper_hash=response.get(WhisperStatus.WHISPER_HASH_V2, "") ) else: # V1 logic @@ -398,7 +380,7 @@ def process( ) metadata = TextExtractionMetadata( - whisper_hash=response.headers.get(X2TextConstants.WHISPER_HASH, "") + whisper_hash=response.get(X2TextConstants.WHISPER_HASH, "") ) extracted_text = self._extract_text_from_response( From 50684f0c8ad122bdb0b9f2d4ddf2d33e1bbbd894 Mon Sep 17 00:00:00 2001 From: jagadeeswaran-zipstack Date: Wed, 12 Feb 2025 13:52:44 +0530 Subject: [PATCH 09/15] moved v1 to use API --- .../x2text/llm_whisperer/src/llm_whisperer.py | 86 ++++---- .../llm_whisperer/src/llm_whispererv1.py | 183 ++++++++++++++++++ .../llm_whisperer/src/llm_whispererv2.py | 40 ++++ 3 files changed, 263 insertions(+), 46 deletions(-) create mode 100644 src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv1.py create mode 100644 src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv2.py diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py index ea219f19..c67207f2 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py @@ -1,4 +1,3 @@ -from io import BytesIO import json import logging import os @@ -32,6 +31,12 @@ WhisperStatus, ) from unstract.sdk.adapters.x2text.llm_whisperer.src.helper import LLMWhispererHelper +from unstract.sdk.adapters.x2text.llm_whisperer.src.llm_whispererv1 import ( + LLMWhispererV1, +) +from unstract.sdk.adapters.x2text.llm_whisperer.src.llm_whispererv2 import ( + LLMWhispererV2, +) from unstract.sdk.adapters.x2text.x2text_adapter import X2TextAdapter from unstract.sdk.constants import MimeType from unstract.sdk.file_storage import FileStorage, FileStorageProvider @@ -53,6 +58,8 @@ def __init__(self, settings: dict[str, Any]): DESCRIPTION = "LLMWhisperer X2Text" ICON = "/icons/adapter-icons/LLMWhispererV2.png" + SCHEMA_PATH = f"{os.path.dirname(__file__)}/static/json_schema.json" + @staticmethod def get_id() -> str: return LLMWhisperer.ID @@ -69,13 +76,6 @@ def get_description() -> str: def get_icon() -> str: return LLMWhisperer.ICON - @staticmethod - def get_json_schema() -> str: - f = open(f"{os.path.dirname(__file__)}/static/json_schema.json") - schema = f.read() - f.close() - return schema - def _make_request( self, request_endpoint: str, @@ -129,38 +129,14 @@ def _make_request( raise ExtractorError(msg) else: - client = ( - LLMWhispererClientV2( - base_url=base_url, - api_key=self.config.get(WhispererConfig.UNSTRACT_KEY), + if version == "v2": + response = LLMWhispererV2._get_result( + base_url=base_url, params=params, data=data ) - if version == "v2" - else LLMWhispererClient( - base_url=base_url, - api_key=self.config.get(WhispererConfig.UNSTRACT_KEY), + else: + response = LLMWhispererV1._get_result( + base_url=base_url, params=params, data=data ) - ) - try: - response: Any - whisper_result = client.whisper(**params, stream=data) - if whisper_result["status_code"] == 200: - if version == "v2": - response = whisper_result["extraction"] - else: - response = whisper_result - else: - default_err = "Error while calling the LLMWhisperer service" - raise ExtractorError( - whisper_result["message"], - whisper_result["status_code"], - ) - except LLMWhispererClientException as e: - logger.error(f"LLM Whisperer error: {e}") - raise ExtractorError(f"LLM Whisperer error: {e}") - - except Exception as e: - logger.error(f"Adapter error: {e}") - raise ExtractorError(f"Adapter error: {e}") return response def _get_whisper_params(self, enable_highlight: bool = False) -> dict[str, Any]: @@ -256,7 +232,7 @@ def _send_whisper_request( raise ValueError("Unsupported version. Only 'v1' and 'v2' are allowed.") try: - input_file_data = BytesIO(fs.read(input_file_path, "rb")) + input_file_data = fs.read(input_file_path, "rb") response = self._make_request( request_endpoint=WhispererEndpoint.WHISPER, params=params, @@ -268,6 +244,17 @@ def _send_whisper_request( return response + def _get_request_headers(self) -> dict[str, Any]: + """Obtains the request headers to authenticate with LLMWhisperer. + + Returns: + str: Request headers + """ + return { + "accept": MimeType.JSON, + WhispererHeader.UNSTRACT_KEY: self.config.get(WhispererConfig.UNSTRACT_KEY), + } + def _extract_text_from_response( self, output_file_path: Optional[str], @@ -277,6 +264,16 @@ def _extract_text_from_response( output_json = {} version = self.config["version"] output_json = response + if version == "v1": + if response.status_code == 200: + output_json = response.json() + elif response.status_code == 202: + whisper_hash_key = WhisperStatus.WHISPER_HASH + whisper_hash = response.json().get(whisper_hash_key) + output_json = LLMWhispererV1._extract_async(whisper_hash=whisper_hash) + else: + raise ExtractorError("Couldn't extract text from file") + if output_file_path: self._write_output_to_file( output_json=output_json, output_file_path=Path(output_file_path), fs=fs @@ -308,10 +305,7 @@ def _write_output_to_file( text_output = output_json.get(output_key, "") logger.info(f"Writing output to {output_file_path}") fs.write( - path=output_file_path, - mode="w", - encoding="utf-8", - data=text_output, + path=str(output_file_path), mode="w", data=text_output, encoding="utf-8" ) try: # Define the directory of the output file and metadata paths @@ -320,7 +314,7 @@ def _write_output_to_file( metadata_file_name = output_file_path.with_suffix(".json").name metadata_file_path = metadata_dir / metadata_file_name # Ensure the metadata directory exists - fs.mkdir(str(metadata_dir), create_parents=True) + fs.mkdir(create_parents=True, path=str(metadata_dir)) # Remove the "text" key from the metadata metadata = { key: value @@ -331,10 +325,10 @@ def _write_output_to_file( logger.info(f"Writing metadata to {metadata_file_path}") fs.write( - path=metadata_file_path, + path=str(metadata_file_path), mode="w", - encoding="utf-8", data=metadata_json, + encoding="utf-8", ) except Exception as e: logger.error( diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv1.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv1.py new file mode 100644 index 00000000..21b7e26f --- /dev/null +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv1.py @@ -0,0 +1,183 @@ +import logging +import time +from typing import Any, Optional + +from requests import HTTPError, Response, Timeout +import requests +from unstract.sdk.adapters.exceptions import ExtractorError +from unstract.sdk.adapters.utils import AdapterUtils +from unstract.sdk.adapters.x2text.llm_whisperer.src.constants import ( + WhisperStatus, + WhispererConfig, + WhispererDefaults, + WhispererEndpoint, +) +from unstract.sdk.adapters.x2text.llm_whisperer.src.llm_whisperer import LLMWhisperer + +logger = logging.getLogger(__name__) + + +class LLMWhispererV1(LLMWhisperer): + def _get_result( + self, base_url: str, params: Optional[dict[str, Any]], data: Optional[Any] + ) -> Response: + """Handles v1 API requests.""" + headers = LLMWhisperer._get_request_headers() + headers["Content-Type"] = "application/octet-stream" + try: + response = requests.post( + url=base_url, headers=headers, params=params, data=data + ) + except ConnectionError as e: + logger.error(f"Adapter error: {e}") + raise ExtractorError( + "Unable to connect to LLMWhisperer service, please check the URL" + ) + except Timeout as e: + msg = "Request to LLMWhisperer has timed out" + logger.error(f"{msg}: {e}") + raise ExtractorError(msg) + except HTTPError as e: + logger.error(f"Adapter error: {e}") + default_err = "Error while calling the LLMWhisperer service" + msg = AdapterUtils.get_msg_from_request_exc( + err=e, message_key="message", default_err=default_err + ) + raise ExtractorError(msg) + return response + + def _check_status_until_ready( + self, whisper_hash: str, headers: dict[str, Any], params: dict[str, Any] + ) -> WhisperStatus: + """Checks the extraction status by polling. + + Polls the /whisper-status endpoint in fixed intervals of + env: ADAPTER_LLMW_POLL_INTERVAL for a certain number of times + controlled by env: ADAPTER_LLMW_MAX_POLLS. + + Args: + whisper_hash (str): Identifier for the extraction, + returned by LLMWhisperer + headers (dict[str, Any]): Headers to pass for the status check + params (dict[str, Any]): Params to pass for the status check + + Returns: + WhisperStatus: Status of the extraction + """ + POLL_INTERVAL = WhispererDefaults.POLL_INTERVAL + MAX_POLLS = WhispererDefaults.MAX_POLLS + request_count = 0 + + # Check status in fixed intervals upto max poll count. + while True: + request_count += 1 + logger.info( + f"Checking status with interval: {POLL_INTERVAL}s" + f", request count: {request_count} [max: {MAX_POLLS}]" + ) + status_response = self._make_request( + request_endpoint=WhispererEndpoint.STATUS, + headers=headers, + params=params, + ) + if status_response.status_code == 200: + status_data = status_response.json() + status = status_data.get(WhisperStatus.STATUS, WhisperStatus.UNKNOWN) + logger.info(f"Whisper status for {whisper_hash}: {status}") + if status in [WhisperStatus.PROCESSED, WhisperStatus.DELIVERED]: + break + else: + raise ExtractorError( + "Error checking LLMWhisperer status: " + f"{status_response.status_code} - {status_response.text}" + ) + + # Exit with error if max poll count is reached + if request_count >= MAX_POLLS: + raise ExtractorError( + "Unable to extract text after attempting" f" {request_count} times" + ) + time.sleep(POLL_INTERVAL) + + return status + + def _extract_async(self, whisper_hash: str) -> str: + """Makes an async extraction with LLMWhisperer. + + Polls and checks the status first before proceeding to retrieve once. + + Args: + whisper_hash (str): Identifier of the extraction + + Returns: + str: Extracted contents from the file + """ + logger.info(f"Extracting async for whisper hash: {whisper_hash}") + version = self.config["version"] + headers: dict[str, Any] = self._get_request_headers() + params = ( + { + WhisperStatus.WHISPER_HASH: whisper_hash, + WhispererConfig.OUTPUT_JSON: WhispererDefaults.OUTPUT_JSON, + } + if version == "v1" + else { + WhisperStatus.WHISPER_HASH_V2: whisper_hash, + WhispererConfig.TEXT_ONLY: WhispererDefaults.TEXT_ONLY, + } + ) + + # Polls in fixed intervals and checks status + self._check_status_until_ready( + whisper_hash=whisper_hash, headers=headers, params=params + ) + + retrieve_response = self._make_request( + request_endpoint=WhispererEndpoint.RETRIEVE, + headers=headers, + params=params, + ) + if retrieve_response.status_code == 200: + return retrieve_response.json() + else: + raise ExtractorError( + "Error retrieving from LLMWhisperer: " + f"{retrieve_response.status_code} - {retrieve_response.text}" + ) + + def _extract_async(self, whisper_hash: str) -> str: + """Makes an async extraction with LLMWhisperer. + + Polls and checks the status first before proceeding to retrieve once. + + Args: + whisper_hash (str): Identifier of the extraction + + Returns: + str: Extracted contents from the file + """ + logger.info(f"Extracting async for whisper hash: {whisper_hash}") + + headers: dict[str, Any] = self._get_request_headers() + params = { + WhisperStatus.WHISPER_HASH: whisper_hash, + WhispererConfig.OUTPUT_JSON: WhispererDefaults.OUTPUT_JSON, + } + + # Polls in fixed intervals and checks status + self._check_status_until_ready( + whisper_hash=whisper_hash, headers=headers, params=params + ) + + retrieve_response = self._make_request( + request_endpoint=WhispererEndpoint.RETRIEVE, + headers=headers, + params=params, + ) + if retrieve_response.status_code == 200: + return retrieve_response.json() + else: + raise ExtractorError( + "Error retrieving from LLMWhisperer: " + f"{retrieve_response.status_code} - {retrieve_response.text}" + ) diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv2.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv2.py new file mode 100644 index 00000000..7930714a --- /dev/null +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv2.py @@ -0,0 +1,40 @@ +import logging +from typing import Any, Optional +from io import BytesIO + +from requests import Response +from unstract.sdk.adapters.exceptions import ExtractorError +from unstract.sdk.adapters.x2text.llm_whisperer.src.constants import WhispererConfig +from unstract.sdk.adapters.x2text.llm_whisperer.src.llm_whisperer import LLMWhisperer +from unstract.llmwhisperer.client_v2 import ( + LLMWhispererClientV2, + LLMWhispererClientException, +) + +logger = logging.getLogger(__name__) + + +class LLMWhispererV2(LLMWhisperer): + def _get_result( + self, base_url: str, params: Optional[dict[str, Any]], data: Optional[Any] + ) -> Response: + """Handles v2 API requests.""" + client = LLMWhispererClientV2( + base_url=base_url, + api_key=self.config.get(WhispererConfig.UNSTRACT_KEY), + ) + try: + byte_file = BytesIO(data) + whisper_result = client.whisper(**params, stream=byte_file) + if whisper_result["status_code"] == 200: + return whisper_result["extraction"] + else: + raise ExtractorError( + whisper_result["message"], whisper_result["status_code"] + ) + except LLMWhispererClientException as e: + logger.error(f"LLM Whisperer error: {e}") + raise ExtractorError(f"LLM Whisperer error: {e}") + except Exception as e: + logger.error(f"Adapter error: {e}") + raise ExtractorError(f"Adapter error: {e}") From 35a050071fdad63548dd270f0b33b1fd568106f8 Mon Sep 17 00:00:00 2001 From: jagadeeswaran-zipstack Date: Wed, 12 Feb 2025 15:54:26 +0530 Subject: [PATCH 10/15] fixes on V1 API merge --- .../x2text/llm_whisperer/src/constants.py | 3 + .../adapters/x2text/llm_whisperer/src/dto.py | 20 ++++++ .../x2text/llm_whisperer/src/helper.py | 8 ++- .../x2text/llm_whisperer/src/llm_whisperer.py | 63 ++++++++++++------- .../llm_whisperer/src/llm_whispererv1.py | 9 +-- .../llm_whisperer/src/llm_whispererv2.py | 7 +-- 6 files changed, 77 insertions(+), 33 deletions(-) create mode 100644 src/unstract/sdk/adapters/x2text/llm_whisperer/src/dto.py diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py index 8b2f082d..8f269c3c 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py @@ -123,3 +123,6 @@ class WhispererDefaults: TEXT_ONLY = False WAIT_TIMEOUT = 300 WAIT_FOR_COMPLETION = True + POLL_INTERVAL = int(os.getenv(WhispererEnv.POLL_INTERVAL, 30)) + MAX_POLLS = int(os.getenv(WhispererEnv.MAX_POLLS, 30)) + STATUS_RETRIES = int(os.getenv(WhispererEnv.STATUS_RETRIES, 5)) diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/dto.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/dto.py new file mode 100644 index 00000000..de5ffeb7 --- /dev/null +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/dto.py @@ -0,0 +1,20 @@ +from dataclasses import dataclass +from typing import Optional + + +@dataclass +class WhispererRequestParams: + """DTO for LLM Whisperer API request parameters. + + Args: + tag: Tag value. Can be initialized with List[str], str, or None. + Will be converted to str | None after initialization. + """ + + # TODO: Extend this DTO to include all Whisperer API parameters + tag: Optional[str] = None + + def __post_init__(self) -> None: + # TODO: Allow list of tags once its supported in LLMW v2 + if isinstance(self.tag, list): + self.tag = self.tag[0] if self.tag else None \ No newline at end of file diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/helper.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/helper.py index 1c3bc461..8556e26b 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/helper.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/helper.py @@ -6,6 +6,7 @@ WhispererConfig, WhispererDefaults, ) +from unstract.sdk.adapters.x2text.llm_whisperer.src.dto import WhispererRequestParams logger = logging.getLogger(__name__) @@ -13,7 +14,9 @@ class LLMWhispererHelper: @staticmethod - def get_whisperer_params(config: dict[str, Any]) -> dict[str, Any]: + def get_whisperer_params( + config: dict[str, Any], extra_params: WhispererRequestParams + ) -> dict[str, Any]: """Gets query params meant for /whisper endpoint. The params is filled based on the configuration passed. @@ -56,7 +59,8 @@ def get_whisperer_params(config: dict[str, Any]) -> dict[str, Any]: ), # Not providing default value to maintain legacy compatablity # these are optional params and identifiers for audit - WhispererConfig.TAG: config.get( + WhispererConfig.TAG: extra_params.tag + or config.get( WhispererConfig.TAG, WhispererDefaults.TAG, ), diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py index cb54a378..aae0efee 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py @@ -6,13 +6,7 @@ import requests from requests import Response -from requests.exceptions import ConnectionError, HTTPError, Timeout - -from unstract.llmwhisperer.client_v2 import ( - LLMWhispererClientV2, - LLMWhispererClientException, -) -from unstract.llmwhisperer.client import LLMWhispererClient +from requests.exceptions import ConnectionError, HTTPError from unstract.sdk.adapters.exceptions import ExtractorError from unstract.sdk.adapters.utils import AdapterUtils from unstract.sdk.adapters.x2text.constants import X2TextConstants @@ -21,7 +15,6 @@ TextExtractionResult, ) from unstract.sdk.adapters.x2text.llm_whisperer.src.constants import ( - HTTPMethod, OutputModes, ProcessingModes, WhispererConfig, @@ -40,6 +33,7 @@ from unstract.sdk.adapters.x2text.x2text_adapter import X2TextAdapter from unstract.sdk.constants import MimeType from unstract.sdk.file_storage import FileStorage, FileStorageProvider +from unstract.sdk.adapters.x2text.llm_whisperer.src.dto import WhispererRequestParams logger = logging.getLogger(__name__) @@ -60,8 +54,6 @@ def __init__(self, settings: dict[str, Any]): SCHEMA_PATH = f"{os.path.dirname(__file__)}/static/json_schema.json" - SCHEMA_PATH = f"{os.path.dirname(__file__)}/static/json_schema.json" - @staticmethod def get_id() -> str: return LLMWhisperer.ID @@ -78,6 +70,13 @@ def get_description() -> str: def get_icon() -> str: return "/icons/adapter-icons/LLMWhisperer.png" + @staticmethod + def get_json_schema() -> str: + f = open(f"{os.path.dirname(__file__)}/static/json_schema.json") + schema = f.read() + f.close() + return schema + def _make_request( self, request_endpoint: str, @@ -131,14 +130,26 @@ def _make_request( raise ExtractorError(msg) else: + headers = self._get_request_headers() + response: Any if version == "v2": - response = LLMWhispererV2._get_result( - base_url=base_url, params=params, data=data - ) + try: + response = LLMWhispererV2._get_result( + base_url=base_url, params=params, data=data, config=self.config + ) + except Exception as e: + logger.error(f"{e}") + raise ExtractorError(f"{e}") else: - response = LLMWhispererV1._get_result( - base_url=base_url, params=params, data=data - ) + try: + + url = f"{base_url}/{request_endpoint}" + response = LLMWhispererV1._get_result( + base_url=url, params=params, data=data, headers=headers + ) + except Exception as e: + logger.error(f"{e}") + raise ExtractorError(f"{e}") return response def _get_whisper_params(self, enable_highlight: bool = False) -> dict[str, Any]: @@ -209,6 +220,7 @@ def test_connection(self) -> bool: def _send_whisper_request( self, input_file_path: str, + extra_params: Optional[WhispererRequestParams] = None, fs: FileStorage = FileStorage(provider=FileStorageProvider.LOCAL), enable_highlight: bool = False, ) -> requests.Response: @@ -229,12 +241,14 @@ def _send_whisper_request( if version == "v1": params = self._get_whisper_params(enable_highlight) elif version == "v2": - params = LLMWhispererHelper.get_whisperer_params(config) + params = LLMWhispererHelper.get_whisperer_params( + config=config, extra_params=extra_params + ) else: raise ValueError("Unsupported version. Only 'v1' and 'v2' are allowed.") try: - input_file_data = fs.read(input_file_path, "rb") + input_file_data = fs.read(path=input_file_path, mode="rb") response = self._make_request( request_endpoint=WhispererEndpoint.WHISPER, params=params, @@ -361,8 +375,9 @@ def process( """ if self.config["version"] == "v2": # V2 logic + extra_params = WhispererRequestParams(tag=kwargs.get(X2TextConstants.TAGS)) response: requests.Response = self._send_whisper_request( - input_file_path, fs=fs + input_file_path=input_file_path, fs=fs, extra_params=extra_params ) metadata = TextExtractionMetadata( whisper_hash=response.get(WhisperStatus.WHISPER_HASH_V2, "") @@ -370,13 +385,15 @@ def process( else: # V1 logic response: requests.Response = self._send_whisper_request( - input_file_path, - fs, - bool(kwargs.get(X2TextConstants.ENABLE_HIGHLIGHT, False)), + input_file_path=input_file_path, + fs=fs, + enable_highlight=bool( + kwargs.get(X2TextConstants.ENABLE_HIGHLIGHT, False) + ), ) metadata = TextExtractionMetadata( - whisper_hash=response.get(X2TextConstants.WHISPER_HASH, "") + whisper_hash=response.headers.get(X2TextConstants.WHISPER_HASH, "") ) extracted_text = self._extract_text_from_response( diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv1.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv1.py index 21b7e26f..1f8dceac 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv1.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv1.py @@ -12,17 +12,18 @@ WhispererDefaults, WhispererEndpoint, ) -from unstract.sdk.adapters.x2text.llm_whisperer.src.llm_whisperer import LLMWhisperer logger = logging.getLogger(__name__) -class LLMWhispererV1(LLMWhisperer): +class LLMWhispererV1: def _get_result( - self, base_url: str, params: Optional[dict[str, Any]], data: Optional[Any] + base_url: str, + params: Optional[dict[str, Any]], + data: Optional[Any], + headers: Optional[Any], ) -> Response: """Handles v1 API requests.""" - headers = LLMWhisperer._get_request_headers() headers["Content-Type"] = "application/octet-stream" try: response = requests.post( diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv2.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv2.py index 7930714a..4c48568f 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv2.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv2.py @@ -5,7 +5,6 @@ from requests import Response from unstract.sdk.adapters.exceptions import ExtractorError from unstract.sdk.adapters.x2text.llm_whisperer.src.constants import WhispererConfig -from unstract.sdk.adapters.x2text.llm_whisperer.src.llm_whisperer import LLMWhisperer from unstract.llmwhisperer.client_v2 import ( LLMWhispererClientV2, LLMWhispererClientException, @@ -14,14 +13,14 @@ logger = logging.getLogger(__name__) -class LLMWhispererV2(LLMWhisperer): +class LLMWhispererV2: def _get_result( - self, base_url: str, params: Optional[dict[str, Any]], data: Optional[Any] + config, base_url: str, params: Optional[dict[str, Any]], data: Optional[Any] ) -> Response: """Handles v2 API requests.""" client = LLMWhispererClientV2( base_url=base_url, - api_key=self.config.get(WhispererConfig.UNSTRACT_KEY), + api_key=config.get(WhispererConfig.UNSTRACT_KEY), ) try: byte_file = BytesIO(data) From c5f0871e18a8914a38e93e720790db2b7f95dbf5 Mon Sep 17 00:00:00 2001 From: jagadeeswaran-zipstack Date: Wed, 12 Feb 2025 15:56:52 +0530 Subject: [PATCH 11/15] removed json schema json --- .../sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py index aae0efee..600b54f5 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whisperer.py @@ -70,13 +70,6 @@ def get_description() -> str: def get_icon() -> str: return "/icons/adapter-icons/LLMWhisperer.png" - @staticmethod - def get_json_schema() -> str: - f = open(f"{os.path.dirname(__file__)}/static/json_schema.json") - schema = f.read() - f.close() - return schema - def _make_request( self, request_endpoint: str, From 708a8d93af5ad59c266caf4ca96c78f9d3187a24 Mon Sep 17 00:00:00 2001 From: jagadeeswaran-zipstack Date: Wed, 12 Feb 2025 16:48:17 +0530 Subject: [PATCH 12/15] removed json schema json --- .../sdk/adapters/x2text/llm_whisperer/src/llm_whispererv1.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv1.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv1.py index 1f8dceac..7ef24018 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv1.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/llm_whispererv1.py @@ -41,6 +41,7 @@ def _get_result( except HTTPError as e: logger.error(f"Adapter error: {e}") default_err = "Error while calling the LLMWhisperer service" + # TODO: to make use of this X2TextError where ever possible msg = AdapterUtils.get_msg_from_request_exc( err=e, message_key="message", default_err=default_err ) From 71658f0207c6cb8628186369440445d1900ab5b2 Mon Sep 17 00:00:00 2001 From: jagadeeswaran-zipstack Date: Wed, 12 Feb 2025 17:02:37 +0530 Subject: [PATCH 13/15] added wait_timeout to env --- .../sdk/adapters/x2text/llm_whisperer/src/constants.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py index 8f269c3c..884a4da2 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py @@ -58,6 +58,7 @@ class WhispererEnv: POLL_INTERVAL_V2 = "ADAPTER_LLMW_POLL_INTERVAL_V2" MAX_POLLS_V2 = "ADAPTER_LLMW_MAX_POLLS_V2" STATUS_RETRIES = "ADAPTER_LLMW_STATUS_RETRIES" + WAIT_TIMEOUT = "ADAPTER_LLMW_WAIT_TIMEOUT" class WhispererConfig: @@ -121,7 +122,7 @@ class WhispererDefaults: URL_IN_POST = False TAG = "default" TEXT_ONLY = False - WAIT_TIMEOUT = 300 + WAIT_TIMEOUT = int(os.getenv(WhispererEnv.WAIT_TIMEOUT, 200)) WAIT_FOR_COMPLETION = True POLL_INTERVAL = int(os.getenv(WhispererEnv.POLL_INTERVAL, 30)) MAX_POLLS = int(os.getenv(WhispererEnv.MAX_POLLS, 30)) From ee12702e00054996d957366e14189d1d02b05b41 Mon Sep 17 00:00:00 2001 From: jagadeeswaran-zipstack Date: Wed, 12 Feb 2025 18:11:08 +0530 Subject: [PATCH 14/15] updated wait_timeout --- src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py index 884a4da2..dcbaf4c6 100644 --- a/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py +++ b/src/unstract/sdk/adapters/x2text/llm_whisperer/src/constants.py @@ -122,7 +122,7 @@ class WhispererDefaults: URL_IN_POST = False TAG = "default" TEXT_ONLY = False - WAIT_TIMEOUT = int(os.getenv(WhispererEnv.WAIT_TIMEOUT, 200)) + WAIT_TIMEOUT = int(os.getenv(WhispererEnv.WAIT_TIMEOUT, 300)) WAIT_FOR_COMPLETION = True POLL_INTERVAL = int(os.getenv(WhispererEnv.POLL_INTERVAL, 30)) MAX_POLLS = int(os.getenv(WhispererEnv.MAX_POLLS, 30)) From e08e4f8923d7e1a42ebadff5ec84b77a88107b15 Mon Sep 17 00:00:00 2001 From: jagadeeswaran-zipstack Date: Thu, 13 Feb 2025 10:04:12 +0530 Subject: [PATCH 15/15] version update --- src/unstract/sdk/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unstract/sdk/__init__.py b/src/unstract/sdk/__init__.py index 664f1376..eb0ac639 100644 --- a/src/unstract/sdk/__init__.py +++ b/src/unstract/sdk/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.57.0rc3" +__version__ = "0.58.0rc1" def get_sdk_version():