classifyre-cli 0.4.92__tar.gz → 0.4.94__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/.turbo/turbo-build.log +1 -1
  2. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/PKG-INFO +1 -1
  3. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/package.json +1 -1
  4. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/pyproject.toml +1 -1
  5. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/utils/file_parser.py +30 -0
  6. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/utils/test_file_parser.py +20 -0
  7. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/uv.lock +71 -71
  8. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/.gitignore +0 -0
  9. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/.python-version +0 -0
  10. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/README.md +0 -0
  11. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/main.py +0 -0
  12. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/scripts/generate_models.py +0 -0
  13. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/__init__.py +0 -0
  14. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/config.py +0 -0
  15. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/__init__.py +0 -0
  16. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/base.py +0 -0
  17. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/broken_links/__init__.py +0 -0
  18. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/broken_links/detector.py +0 -0
  19. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/config.py +0 -0
  20. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/content/__init__.py +0 -0
  21. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/custom/__init__.py +0 -0
  22. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/custom/detector.py +0 -0
  23. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/custom/extractor.py +0 -0
  24. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/custom/runners/__init__.py +0 -0
  25. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/custom/runners/_base.py +0 -0
  26. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/custom/runners/_factory.py +0 -0
  27. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/custom/runners/_gliner2.py +0 -0
  28. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/custom/runners/_image_classification.py +0 -0
  29. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/custom/runners/_llm.py +0 -0
  30. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/custom/runners/_object_detection.py +0 -0
  31. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/custom/runners/_regex.py +0 -0
  32. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/custom/runners/_text_classification.py +0 -0
  33. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/custom/trainer.py +0 -0
  34. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/dependencies.py +0 -0
  35. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/engine_version.py +0 -0
  36. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/pii/__init__.py +0 -0
  37. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/pii/detector.py +0 -0
  38. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/secrets/__init__.py +0 -0
  39. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/secrets/detector.py +0 -0
  40. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/threat/__init__.py +0 -0
  41. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/threat/code_security_detector.py +0 -0
  42. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/detectors/threat/yara_detector.py +0 -0
  43. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/file_evaluation/__init__.py +0 -0
  44. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/file_evaluation/runner.py +0 -0
  45. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/main.py +0 -0
  46. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/models/generated_detectors.py +0 -0
  47. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/models/generated_input.py +0 -0
  48. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/models/generated_single_asset_scan_results.py +0 -0
  49. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/outputs/__init__.py +0 -0
  50. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/outputs/base.py +0 -0
  51. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/outputs/console.py +0 -0
  52. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/outputs/factory.py +0 -0
  53. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/outputs/file.py +0 -0
  54. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/outputs/rest.py +0 -0
  55. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/pipeline/__init__.py +0 -0
  56. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/pipeline/content_provider.py +0 -0
  57. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/pipeline/detector_pipeline.py +0 -0
  58. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/pipeline/parsed_content_provider.py +0 -0
  59. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/pipeline/payload_window.py +0 -0
  60. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/pipeline/scan_cache.py +0 -0
  61. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/pipeline/text_artifact.py +0 -0
  62. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/pipeline/worker_pool.py +0 -0
  63. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/__init__.py +0 -0
  64. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/asset_metadata.py +0 -0
  65. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/atlassian_common.py +0 -0
  66. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/azure_blob_storage/__init__.py +0 -0
  67. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/azure_blob_storage/source.py +0 -0
  68. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/base.py +0 -0
  69. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/confluence/__init__.py +0 -0
  70. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/confluence/source.py +0 -0
  71. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/databricks/__init__.py +0 -0
  72. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/databricks/source.py +0 -0
  73. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/delta_lake/__init__.py +0 -0
  74. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/delta_lake/source.py +0 -0
  75. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/dependencies.py +0 -0
  76. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/dropbox/__init__.py +0 -0
  77. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/dropbox/auth.py +0 -0
  78. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/dropbox/source.py +0 -0
  79. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/elasticsearch/__init__.py +0 -0
  80. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/elasticsearch/source.py +0 -0
  81. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/email/__init__.py +0 -0
  82. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/email/source.py +0 -0
  83. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/git/__init__.py +0 -0
  84. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/git/source.py +0 -0
  85. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/google_cloud_storage/__init__.py +0 -0
  86. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/google_cloud_storage/source.py +0 -0
  87. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/google_workspace/__init__.py +0 -0
  88. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/google_workspace/source.py +0 -0
  89. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/hive/__init__.py +0 -0
  90. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/hive/source.py +0 -0
  91. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/hugging_face/__init__.py +0 -0
  92. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/hugging_face/source.py +0 -0
  93. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/iceberg/__init__.py +0 -0
  94. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/iceberg/source.py +0 -0
  95. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/jira/__init__.py +0 -0
  96. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/jira/source.py +0 -0
  97. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/kafka/__init__.py +0 -0
  98. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/kafka/rest.py +0 -0
  99. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/kafka/source.py +0 -0
  100. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/lakehouse_base.py +0 -0
  101. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/local_folder/__init__.py +0 -0
  102. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/local_folder/source.py +0 -0
  103. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/meilisearch/__init__.py +0 -0
  104. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/meilisearch/source.py +0 -0
  105. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/microsoft_365/__init__.py +0 -0
  106. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/microsoft_365/source.py +0 -0
  107. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/mongodb/__init__.py +0 -0
  108. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/mongodb/source.py +0 -0
  109. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/mssql/__init__.py +0 -0
  110. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/mssql/source.py +0 -0
  111. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/mysql/__init__.py +0 -0
  112. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/mysql/source.py +0 -0
  113. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/neo4j/__init__.py +0 -0
  114. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/neo4j/source.py +0 -0
  115. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/notion/__init__.py +0 -0
  116. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/notion/client.py +0 -0
  117. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/notion/source.py +0 -0
  118. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/object_storage/base.py +0 -0
  119. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/opensearch/__init__.py +0 -0
  120. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/opensearch/source.py +0 -0
  121. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/oracle/__init__.py +0 -0
  122. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/oracle/source.py +0 -0
  123. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/postgresql/__init__.py +0 -0
  124. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/postgresql/source.py +0 -0
  125. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/powerbi/__init__.py +0 -0
  126. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/powerbi/source.py +0 -0
  127. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/recipe_normalizer.py +0 -0
  128. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/reddit/__init__.py +0 -0
  129. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/reddit/source.py +0 -0
  130. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/s3_client.py +0 -0
  131. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/s3_compatible_storage/README.md +0 -0
  132. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/s3_compatible_storage/__init__.py +0 -0
  133. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/s3_compatible_storage/source.py +0 -0
  134. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/sandbox/__init__.py +0 -0
  135. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/sandbox/source.py +0 -0
  136. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/search_engine_base.py +0 -0
  137. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/servicedesk/__init__.py +0 -0
  138. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/servicedesk/source.py +0 -0
  139. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/slack/__init__.py +0 -0
  140. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/slack/source.py +0 -0
  141. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/snowflake/__init__.py +0 -0
  142. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/snowflake/source.py +0 -0
  143. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/sqlite/__init__.py +0 -0
  144. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/sqlite/source.py +0 -0
  145. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/tableau/__init__.py +0 -0
  146. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/tableau/source.py +0 -0
  147. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/tabular_base.py +0 -0
  148. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/tabular_utils.py +0 -0
  149. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/wordpress/__init__.py +0 -0
  150. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/wordpress/source.py +0 -0
  151. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/youtube/__init__.py +0 -0
  152. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/sources/youtube/source.py +0 -0
  153. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/telemetry.py +0 -0
  154. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/utils/__init__.py +0 -0
  155. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/utils/archive_extraction.py +0 -0
  156. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/utils/content_extraction.py +0 -0
  157. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/utils/dependency_groups.py +0 -0
  158. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/utils/embedded_files.py +0 -0
  159. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/utils/external_video.py +0 -0
  160. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/utils/file_metadata.py +0 -0
  161. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/utils/file_to_images.py +0 -0
  162. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/utils/hashing.py +0 -0
  163. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/utils/legacy_office.py +0 -0
  164. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/utils/payload.py +0 -0
  165. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/utils/range_reader.py +0 -0
  166. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/utils/resources.py +0 -0
  167. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/utils/transcription.py +0 -0
  168. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/utils/uv_sync.py +0 -0
  169. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/utils/validation.py +0 -0
  170. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/src/utils/video_processing.py +0 -0
  171. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/__init__.py +0 -0
  172. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/_lakehouse_fakes.py +0 -0
  173. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/conftest.py +0 -0
  174. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/__init__.py +0 -0
  175. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/broken_links/test_broken_links_detector.py +0 -0
  176. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/conftest.py +0 -0
  177. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/content/__init__.py +0 -0
  178. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/custom/__init__.py +0 -0
  179. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/custom/conftest.py +0 -0
  180. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/custom/test_gliner2_classification.py +0 -0
  181. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/custom/test_invoice_extraction.py +0 -0
  182. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/custom/test_llm_runner.py +0 -0
  183. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/custom/test_pipeline_integration.py +0 -0
  184. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/custom/test_regex_runner.py +0 -0
  185. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/custom/test_runner_hardening.py +0 -0
  186. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/custom/test_transformer_runners.py +0 -0
  187. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/pii/__init__.py +0 -0
  188. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/pii/conftest.py +0 -0
  189. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/pii/sample_invoice.pdf +0 -0
  190. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/pii/test_pii_chunking.py +0 -0
  191. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/pii/test_pii_detector.py +0 -0
  192. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/pii/test_pii_detector_extended.py +0 -0
  193. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/pii/test_pii_regional_entities.py +0 -0
  194. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/pii/test_pii_severity.py +0 -0
  195. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/secrets/__init__.py +0 -0
  196. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/secrets/test_secrets_detector.py +0 -0
  197. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/secrets/test_secrets_detector_extended.py +0 -0
  198. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/test_base_detector.py +0 -0
  199. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/test_custom_detector_examples_runtime.py +0 -0
  200. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/test_detector_catalog_commercial.py +0 -0
  201. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/test_detector_pipeline_types.py +0 -0
  202. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/test_detector_schema_examples.py +0 -0
  203. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/test_detector_types.py +0 -0
  204. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/test_phase2_detectors.py +0 -0
  205. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/test_registry.py +0 -0
  206. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/threat/__init__.py +0 -0
  207. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/threat/test_code_security_detector.py +0 -0
  208. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/detectors/threat/test_yara_detector.py +0 -0
  209. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/integration/test_wordpress_broken_links_detector.py +0 -0
  210. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/integration/test_wordpress_links_assets.py +0 -0
  211. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/pipeline/test_detector_outcomes.py +0 -0
  212. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/pipeline/test_detector_pipeline.py +0 -0
  213. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/pipeline/test_worker_pool.py +0 -0
  214. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_arrow_ipc_payloads.py +0 -0
  215. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_assets_metadata_catalog.py +0 -0
  216. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_azure_blob_storage_source.py +0 -0
  217. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_base_source_attachment.py +0 -0
  218. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_base_source_sampling.py +0 -0
  219. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_byte_valued_fields.py +0 -0
  220. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_config.py +0 -0
  221. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_confluence_source.py +0 -0
  222. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_custom_extractor.py +0 -0
  223. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_databricks_source.py +0 -0
  224. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_delta_lake_source.py +0 -0
  225. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_dependency_groups.py +0 -0
  226. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_dropbox_auth_command.py +0 -0
  227. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_dropbox_source.py +0 -0
  228. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_elasticsearch_source.py +0 -0
  229. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_email_source.py +0 -0
  230. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_file_evaluation_runner.py +0 -0
  231. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_git_source.py +0 -0
  232. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_google_cloud_storage_source.py +0 -0
  233. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_google_workspace_source.py +0 -0
  234. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_hashing.py +0 -0
  235. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_hive_source.py +0 -0
  236. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_hugging_face_source.py +0 -0
  237. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_iceberg_source.py +0 -0
  238. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_jira_source.py +0 -0
  239. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_kafka_source.py +0 -0
  240. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_local_folder_source.py +0 -0
  241. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_main.py +0 -0
  242. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_meilisearch_source.py +0 -0
  243. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_microsoft_365_source.py +0 -0
  244. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_mongodb_source.py +0 -0
  245. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_mssql_source.py +0 -0
  246. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_mysql_source.py +0 -0
  247. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_neo4j_source.py +0 -0
  248. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_notion_source.py +0 -0
  249. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_object_storage_download_efficiency.py +0 -0
  250. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_opensearch_source.py +0 -0
  251. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_oracle_source.py +0 -0
  252. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_outputs.py +0 -0
  253. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_payload_window.py +0 -0
  254. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_payload_window_parquet.py +0 -0
  255. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_postgresql_source.py +0 -0
  256. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_powerbi_source.py +0 -0
  257. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_range_reading.py +0 -0
  258. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_recipe_normalizer.py +0 -0
  259. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_reddit_source.py +0 -0
  260. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_s3_compatible_storage_source.py +0 -0
  261. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_sampling_automatic.py +0 -0
  262. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_sandbox_source.py +0 -0
  263. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_scan_cache.py +0 -0
  264. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_servicedesk_source.py +0 -0
  265. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_slack_source.py +0 -0
  266. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_snowflake_source.py +0 -0
  267. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_source_dependency_groups.py +0 -0
  268. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_source_strategy_conformance.py +0 -0
  269. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_sqlite_source.py +0 -0
  270. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_tableau_source.py +0 -0
  271. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_tabular_automatic_sampling.py +0 -0
  272. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_tabular_utils.py +0 -0
  273. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_uv_sync.py +0 -0
  274. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_wordpress_source.py +0 -0
  275. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_youtube_source.py +0 -0
  276. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/test_youtube_source_integration.py +0 -0
  277. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/utils/test_archive_extraction.py +0 -0
  278. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/utils/test_content_extraction.py +0 -0
  279. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/utils/test_embedded_files.py +0 -0
  280. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/utils/test_file_metadata.py +0 -0
  281. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/utils/test_file_to_images.py +0 -0
  282. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/utils/test_legacy_office.py +0 -0
  283. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/utils/test_payload.py +0 -0
  284. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/utils/test_transcription.py +0 -0
  285. {classifyre_cli-0.4.92 → classifyre_cli-0.4.94}/tests/utils/test_video_processing.py +0 -0
@@ -1,3 +1,3 @@
1
1
  $ uv sync
2
- Resolved 307 packages in 317ms
2
+ Resolved 307 packages in 262ms
3
3
  Checked 51 packages in 1ms
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: classifyre-cli
3
- Version: 0.4.92
3
+ Version: 0.4.94
4
4
  Summary: Classifyre CLI — scan and classify unstructured data sources
5
5
  License: MIT
6
6
  Keywords: data,ingestion,metadata,pii,secrets,unstructured
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@classifyre/cli",
3
- "version": "0.4.92",
3
+ "version": "0.4.94",
4
4
  "private": true,
5
5
  "scripts": {
6
6
  "build": "uv sync",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "classifyre-cli"
3
- version = "0.4.92"
3
+ version = "0.4.94"
4
4
  description = "Classifyre CLI — scan and classify unstructured data sources"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -732,6 +732,28 @@ def _refine_zip_mime(source: BinarySource) -> str:
732
732
  return "application/zip"
733
733
 
734
734
 
735
+ def _null_bytes_look_interleaved(sample: bytes, unit: int) -> bool:
736
+ """
737
+ Whether the null bytes sit where a fixed-width encoding would put them.
738
+
739
+ This is the structural signal that separates real UTF-16/32 from binary
740
+ that merely happens to contain a null. Text in a fixed-width encoding pads
741
+ every character to `unit` bytes, so for any script whose code points fit in
742
+ the low byte the padding lands at the SAME offset within every unit, and it
743
+ is common: roughly half the bytes for UTF-16 Latin text, three quarters for
744
+ UTF-32. Binary with an incidental null shows neither property.
745
+ """
746
+ if len(sample) < unit * 2:
747
+ return False
748
+ nulls = sample.count(0)
749
+ # Well under what padding produces, so the nulls are incidental.
750
+ if nulls * unit < len(sample) * 0.5:
751
+ return False
752
+ offsets = {i % unit for i, byte in enumerate(sample) if byte == 0}
753
+ # Padding occupies fixed positions; scattered nulls are not padding.
754
+ return len(offsets) < unit
755
+
756
+
735
757
  def _is_null_byte_unicode_text(file_bytes: bytes) -> bool:
736
758
  """UTF-16/32 text interleaves null bytes with every character — still text."""
737
759
  # \xff\xfe prefixes both UTF-16 LE and UTF-32 LE BOMs.
@@ -752,6 +774,14 @@ def _is_null_byte_unicode_text(file_bytes: bytes) -> bool:
752
774
  decoded = sample.decode(encoding)
753
775
  if not decoded:
754
776
  return False
777
+ # Printability alone is not enough either, and this is where short
778
+ # binary payloads got through: chardet calls b"\x00\x01\x02\x03binary"
779
+ # utf-16-le with 0.95 confidence, it decodes to CJK code points, and
780
+ # every one of those is `isprintable()`. So the payload was reported as
781
+ # text/plain and the parser tried to read it as text. Require the nulls
782
+ # to sit where an encoding's padding would actually put them.
783
+ if not _null_bytes_look_interleaved(sample, unit):
784
+ return False
755
785
  printable = sum(1 for ch in decoded if ch.isprintable() or ch.isspace())
756
786
  return printable / len(decoded) >= 0.9
757
787
  except Exception:
@@ -80,6 +80,26 @@ class TestDetectMimeType:
80
80
  result = detect_mime_type(b"")
81
81
  assert result == "application/octet-stream"
82
82
 
83
+ def test_utf16_text_with_bom_is_text(self) -> None:
84
+ payload = "hello world this is plain utf16 text".encode("utf-16")
85
+ assert detect_mime_type(payload) == "text/plain"
86
+
87
+ def test_utf16_text_without_bom_is_text(self) -> None:
88
+ # No BOM, so this reaches the heuristic rather than the prefix check.
89
+ payload = "hello world this is plain utf16 text".encode("utf-16-le")
90
+ assert detect_mime_type(payload) == "text/plain"
91
+
92
+ def test_binary_is_not_mistaken_for_utf16(self) -> None:
93
+ # chardet calls this utf-16-le with 0.95 confidence and it decodes to
94
+ # CJK code points, every one of which is `isprintable()` — so a
95
+ # printability check alone accepted it as text. Real UTF-16 pads every
96
+ # character to a fixed width, putting its nulls at a consistent offset
97
+ # and in quantity; incidental nulls in binary do neither.
98
+ assert detect_mime_type(b"\x00\x01\x02\x03binary") == "application/octet-stream"
99
+ assert detect_mime_type(b"\x00\x01\x02\x03\x04\x05\x06\x07more binary") == (
100
+ "application/octet-stream"
101
+ )
102
+
83
103
 
84
104
  # ---------------------------------------------------------------------------
85
105
  # extract_text
@@ -213,11 +213,11 @@ wheels = [
213
213
 
214
214
  [[package]]
215
215
  name = "argcomplete"
216
- version = "3.7.1"
216
+ version = "3.7.2"
217
217
  source = { registry = "https://pypi.org/simple" }
218
- sdist = { url = "https://files.pythonhosted.org/packages/d1/40/8a867253c9b8afa296ac22e426a157eebbe41dcac66f7f50bbbef931afed/argcomplete-3.7.1.tar.gz", hash = "sha256:6926a3a70ae70dce1f3dfb5cf1fc984278cd163e78ec18ad2ed7fa4fabd8f281", size = 74457, upload-time = "2026-08-04T15:03:59.399Z" }
218
+ sdist = { url = "https://files.pythonhosted.org/packages/87/6f/5a73f04007ca950701765949209f068da628bd11f9c2da287278ce91e0ee/argcomplete-3.7.2.tar.gz", hash = "sha256:aad8b69a0b9969edb62db0d1752354c0d50717b10e0cbb00e2a958381b9fc6b9", size = 74473, upload-time = "2026-08-06T04:53:21.662Z" }
219
219
  wheels = [
220
- { url = "https://files.pythonhosted.org/packages/11/56/1935d0692656f0bfc0c2336d4ce599dcf166abe4ec786ce1abdaefa19589/argcomplete-3.7.1-py3-none-any.whl", hash = "sha256:0bed095030f295599b1018a622a53ea22f4f253e134b87be396b51e59ee00954", size = 43301, upload-time = "2026-08-04T15:03:58.02Z" },
220
+ { url = "https://files.pythonhosted.org/packages/46/bd/551ee6af426af84ca33e02622be722925c196608e9127d731ef17c47f06e/argcomplete-3.7.2-py3-none-any.whl", hash = "sha256:6029205678bdd9c1c728a155f5f9ecf5812393f969eef58807641a2bc2aa5b19", size = 43294, upload-time = "2026-08-06T04:53:20.246Z" },
221
221
  ]
222
222
 
223
223
  [[package]]
@@ -539,30 +539,30 @@ wheels = [
539
539
 
540
540
  [[package]]
541
541
  name = "boto3"
542
- version = "1.43.64"
542
+ version = "1.43.65"
543
543
  source = { registry = "https://pypi.org/simple" }
544
544
  dependencies = [
545
545
  { name = "botocore" },
546
546
  { name = "jmespath" },
547
547
  { name = "s3transfer" },
548
548
  ]
549
- sdist = { url = "https://files.pythonhosted.org/packages/51/da/d5ca15f34a567f2d027df23395315983bd7ee35011e93c1cca12b7f89823/boto3-1.43.64.tar.gz", hash = "sha256:fc7522c3ed97d38176e0b1366406bca0fc8c888ae8d416bf953477b3f015a7b2", size = 112655, upload-time = "2026-08-04T20:12:42.45Z" }
549
+ sdist = { url = "https://files.pythonhosted.org/packages/51/87/d61a5a76088240012800f303d3b910c259f6c630e395a013fa1a1216fdae/boto3-1.43.65.tar.gz", hash = "sha256:f2331154aee1ae97ece48077d77f41d3bd5ea39eb4e3037030448b58695a3a79", size = 112676, upload-time = "2026-08-05T19:25:01.257Z" }
550
550
  wheels = [
551
- { url = "https://files.pythonhosted.org/packages/15/94/14cf3ec553edf78e5196289087ac52862c87ac179fa1cfdf1022ec366b79/boto3-1.43.64-py3-none-any.whl", hash = "sha256:2b555e63ece57cffb1ab1666fa6c23a0957e61f9d19ea8424d6c884124c3fd98", size = 140024, upload-time = "2026-08-04T20:12:41.147Z" },
551
+ { url = "https://files.pythonhosted.org/packages/ec/df/694d81db07214fd98e37836ad114d175680daa127f5be8fb2abe00d949af/boto3-1.43.65-py3-none-any.whl", hash = "sha256:a8217fb68cae3f8a7575eef395383b68b846d92d29b0e8f6e948e6e9e08dcc3f", size = 140024, upload-time = "2026-08-05T19:24:58.853Z" },
552
552
  ]
553
553
 
554
554
  [[package]]
555
555
  name = "botocore"
556
- version = "1.43.64"
556
+ version = "1.43.65"
557
557
  source = { registry = "https://pypi.org/simple" }
558
558
  dependencies = [
559
559
  { name = "jmespath" },
560
560
  { name = "python-dateutil" },
561
561
  { name = "urllib3" },
562
562
  ]
563
- sdist = { url = "https://files.pythonhosted.org/packages/3b/67/0e39203c5c67f750874478cf89124486044580ec5cb391eec8eb13cf25b8/botocore-1.43.64.tar.gz", hash = "sha256:a2bb131f48111094fae0a2c896b42593797e935d9c22abb2ebae4290c6dbb5ea", size = 15842274, upload-time = "2026-08-04T20:12:31.598Z" }
563
+ sdist = { url = "https://files.pythonhosted.org/packages/fa/86/65c298732919b84a3ecf331caeb47b8efcc1ce0537e8fdecad2cfee39174/botocore-1.43.65.tar.gz", hash = "sha256:eea5440cf4b850d0f4de4f7eda418c325c87de6d8980873f8b636bb482b31d0f", size = 15842580, upload-time = "2026-08-05T19:24:55.745Z" }
564
564
  wheels = [
565
- { url = "https://files.pythonhosted.org/packages/3d/d1/f27d1a4fb571e102828a4672cb3d19e0409275eb92c701b67a85879c0b04/botocore-1.43.64-py3-none-any.whl", hash = "sha256:f0a01c47d631ab95589c244566bca971294724b21862de1c12c7c3b0de236272", size = 15525459, upload-time = "2026-08-04T20:12:28.58Z" },
565
+ { url = "https://files.pythonhosted.org/packages/25/0a/3b84332d8dc2acf6af269f8175f94159ad495a7de29e5f335f933f0b5da4/botocore-1.43.65-py3-none-any.whl", hash = "sha256:41a13d9a1954d786f90cdbba0be0953fe9b9389f240b5ff71340c4706ea40135", size = 15526731, upload-time = "2026-08-05T19:24:52.175Z" },
566
566
  ]
567
567
 
568
568
  [[package]]
@@ -738,33 +738,33 @@ wheels = [
738
738
 
739
739
  [[package]]
740
740
  name = "chardet"
741
- version = "7.4.3"
742
- source = { registry = "https://pypi.org/simple" }
743
- sdist = { url = "https://files.pythonhosted.org/packages/19/b6/9df434a8eeba2e6628c465a1dfa31034228ef79b26f76f46278f4ef7e49d/chardet-7.4.3.tar.gz", hash = "sha256:cc1d4eb92a4ec1c2df3b490836ffa46922e599d34ce0bb75cf41fd2bf6303d56", size = 784800, upload-time = "2026-04-13T21:33:39.803Z" }
744
- wheels = [
745
- { url = "https://files.pythonhosted.org/packages/61/33/29de185079e6675c3f375546e30a559b7ddc75ce972f18d6e566cd9ea4eb/chardet-7.4.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:75d3c65cc16bddf40b8da1fd25ba84fca5f8070f2b14e86083653c1c85aee971", size = 874870, upload-time = "2026-04-13T21:33:05.977Z" },
746
- { url = "https://files.pythonhosted.org/packages/9c/2f/4c5af01fd1a7506a1d5375403d68925eac70289229492db5aa68b58103d8/chardet-7.4.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:29af5999f654e8729d251f1724a62b538b1262d9292cccaefddf8a02aae1ef6a", size = 854859, upload-time = "2026-04-13T21:33:07.381Z" },
747
- { url = "https://files.pythonhosted.org/packages/36/21/edb36ad5dfa48d7f8eed97ab43931ecdaa8c15166c21b1d614967e49d681/chardet-7.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:626f00299ad62dfe937058a09572beed442ccc7b58f87aa667949b20fd3db235", size = 875032, upload-time = "2026-04-13T21:33:08.741Z" },
748
- { url = "https://files.pythonhosted.org/packages/e5/59/a32a241d861cf180853a11c8e5a67641cb1b2af13c3a5ccce83ec07e2c9f/chardet-7.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9a4904dd5f071b7a7d7f50b4a67a86db3c902d243bf31708f1d5cde2f68239cb", size = 888283, upload-time = "2026-04-13T21:33:10.213Z" },
749
- { url = "https://files.pythonhosted.org/packages/87/2e/e1ee6a77abf3782c00e05b89c4d4328c8353bf9500661c4348df1dd68614/chardet-7.4.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5d2879598bc220689e8ce509fe9c3f37ad2fca53a36be9c9bd91abdd91dd364f", size = 879974, upload-time = "2026-04-13T21:33:11.448Z" },
750
- { url = "https://files.pythonhosted.org/packages/32/60/fca69c534602a7ced04280c952a246ad1edde2a6ca3a164f65d32ac41fe7/chardet-7.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:4b2799bd58e7245cfa8d4ab2e8ad1d76a5c3a5b1f32318eb6acca4c69a3e7101", size = 943973, upload-time = "2026-04-13T21:33:12.756Z" },
751
- { url = "https://files.pythonhosted.org/packages/7c/43/79ac9b4db5bc87020c9dbc419125371d80882d1d197e9c4765ba8682b605/chardet-7.4.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a9e4486df251b8962e86ea9f139ca235aa6e0542a00f7844c9a04160afb99aa9", size = 873769, upload-time = "2026-04-13T21:33:14.002Z" },
752
- { url = "https://files.pythonhosted.org/packages/55/5f/25bdec773905bff0ff6cf35ca73b17bd05593b4f87bd8c5fa43705f7167d/chardet-7.4.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4fbff1907925b0c5a1064cffb5e040cd5e338585c9c552625f30de6bc2f3107a", size = 853991, upload-time = "2026-04-13T21:33:15.564Z" },
753
- { url = "https://files.pythonhosted.org/packages/b4/07/a29380ee0b215d23d77733b5ad60c5c0c7969650e080c667acdf9462040d/chardet-7.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:365135eaf37ba65a828f8e668eb0a8c38c479dcbec724dc25f4dfd781049c357", size = 874024, upload-time = "2026-04-13T21:33:16.915Z" },
754
- { url = "https://files.pythonhosted.org/packages/a8/b1/3338e121cbd4c8a126b8ccb1061170c2ce51a53f678c502793ea49c6fd6d/chardet-7.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bfc134b70c846c21ead8e43ada3ae1a805fff732f6922f8abcf2ff27b8f6493d", size = 887410, upload-time = "2026-04-13T21:33:18.368Z" },
755
- { url = "https://files.pythonhosted.org/packages/63/1c/44a9a9e0c59c185a5d307ceaeee8768afa1558f0a24f7a4b5fa11b67586b/chardet-7.4.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9acd9988a93e09390f3cd231201ea7166c415eb8da1b735928990ffc05cb9fbb", size = 879269, upload-time = "2026-04-13T21:33:20.377Z" },
756
- { url = "https://files.pythonhosted.org/packages/1b/b3/5d0e77ea774bd3224321c248880ea0c0379000ac5c2bb6d77609549de247/chardet-7.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:e1b98790c284ff813f18f7cf7de5f05ea2435a080030c7f1a8318f3a4f80b131", size = 944155, upload-time = "2026-04-13T21:33:21.694Z" },
757
- { url = "https://files.pythonhosted.org/packages/70/a8/bf0811d859e13801279a2ae64f37a408027b282f2047bc0001c75dd356ad/chardet-7.4.3-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d892d3dcd652fdef53e3d6327d39b17c0df40a899dfc919abaeb64c974497531", size = 872887, upload-time = "2026-04-13T21:33:23.328Z" },
758
- { url = "https://files.pythonhosted.org/packages/51/ac/b9d68ebddfe1b02c77af5bf81120e12b036b4432dc6af7a303d90e2bc38b/chardet-7.4.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:acc46d1b8b7d5783216afe15db56d1c179b9a40e5a1558bc13164c4fd20674c4", size = 853964, upload-time = "2026-04-13T21:33:24.724Z" },
759
- { url = "https://files.pythonhosted.org/packages/2a/81/17fa103ea9caf5d325a5e4051ab2ba65996fd66baa60b81ee41af1f54e10/chardet-7.4.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ac3bf11c645734a1701a3804e43eabd98851838192267d08c353a834ab79fea", size = 876006, upload-time = "2026-04-13T21:33:26.098Z" },
760
- { url = "https://files.pythonhosted.org/packages/c2/20/193faab46a68ea550587331a698c3dca8099f8901d10937c4443135c7ed9/chardet-7.4.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e3bd9f936e04bae89c254262af08d9e5b98f805175ba1e29d454e6cba3107b7", size = 887680, upload-time = "2026-04-13T21:33:27.49Z" },
761
- { url = "https://files.pythonhosted.org/packages/40/c6/94a3c673327392652ee8bdea9a45bc8a5f5365197a7387d68f0eed007115/chardet-7.4.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:27cc23da03630cdecc9aa81a895aa86629c211f995cd57651f0fbc280717bf93", size = 879865, upload-time = "2026-04-13T21:33:29.052Z" },
762
- { url = "https://files.pythonhosted.org/packages/b1/2c/cad8b5e3623a987f3c930b68e2bdd06cfc388cd91cd42ed05f1227701b73/chardet-7.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:b95c934b9ad59e2ba8abb9be49df70d3ad1b0d95d864b9fdb7588d4fa8bd921c", size = 939594, upload-time = "2026-04-13T21:33:31.391Z" },
763
- { url = "https://files.pythonhosted.org/packages/33/e0/d06e42fd6f02a58e5e227e5106587751cb38adcff0aaf949add744b78b6e/chardet-7.4.3-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:c77867f0c1cb8bd819502249fcdc500364aedb07881e11b743726fa2148e7b6e", size = 889714, upload-time = "2026-04-13T21:33:32.772Z" },
764
- { url = "https://files.pythonhosted.org/packages/d4/ed/40d091954d48abea037baae6be8fb79905e5f78d34d12ea955132c7d8011/chardet-7.4.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:cf1efeaf65a6ef2f5b9cc3a1df6f08ba2831b369ccaa4c7018eaf90aa757bb11", size = 872319, upload-time = "2026-04-13T21:33:34.427Z" },
765
- { url = "https://files.pythonhosted.org/packages/bb/77/82a46821dbfbdfe062710d2bf2ede13426304e3567a23c57d919c0c31630/chardet-7.4.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9f3504c139a2ad544077dd2d9e412cd08b01786843d76997cd43bb6de311723c", size = 892021, upload-time = "2026-04-13T21:33:35.766Z" },
766
- { url = "https://files.pythonhosted.org/packages/49/57/42d30c562bda5b4a839766c1aad8d5856b798ad2a1c3247b72a679afec94/chardet-7.4.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457f619882ba66327d4d8d14c6c342269bdb1e4e1c38e8117df941d14d351b04", size = 902509, upload-time = "2026-04-13T21:33:37.096Z" },
767
- { url = "https://files.pythonhosted.org/packages/8c/6c/0a40afdb50a0fe041ab95553b835a8160b6cf0e81edf2ae2fe9f5224cbf9/chardet-7.4.3-py3-none-any.whl", hash = "sha256:1173b74051570cf08099d7429d92e4882d375ad4217f92a6e5240ccfb26f231e", size = 626562, upload-time = "2026-04-13T21:33:38.559Z" },
741
+ version = "7.5.1"
742
+ source = { registry = "https://pypi.org/simple" }
743
+ sdist = { url = "https://files.pythonhosted.org/packages/56/7c/c9cf52695364a0609829ccc9e88adea553587ef70349314f29ed1b62bcff/chardet-7.5.1.tar.gz", hash = "sha256:0df08f2b2f6ac04b3e7f9e8ad1b1559c2e8497338ff9dfa1e0922335ff9dfe8d", size = 837498, upload-time = "2026-08-06T05:02:11.499Z" }
744
+ wheels = [
745
+ { url = "https://files.pythonhosted.org/packages/29/95/60f047ece9faf585d6f625adea8786bb15a453fbf183e77a5762c8755c86/chardet-7.5.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3eb37b2c0aa67bfb1112aa90bfdd95cd3b4006fe051a2ea4872c3c6ba9cf855b", size = 939537, upload-time = "2026-08-06T05:01:34.127Z" },
746
+ { url = "https://files.pythonhosted.org/packages/c4/8e/847935c588455b0d82fa57a5a8ced4c73a928e30f2012639228e566e3283/chardet-7.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8a001a8f030625b705d9a4e68116e573462bd38192cc6c1bfa318b45606747ac", size = 922039, upload-time = "2026-08-06T05:01:35.929Z" },
747
+ { url = "https://files.pythonhosted.org/packages/fb/9f/841f7d9f1ff7b99ef2a7e7596b14199dbfe289a11b39c7f98cfb23d0c55a/chardet-7.5.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:54bae16fc5b7ea39956ee737dd09b5f5438deafa9f565ac27c882992c3965b88", size = 945557, upload-time = "2026-08-06T05:01:37.696Z" },
748
+ { url = "https://files.pythonhosted.org/packages/10/56/89866e9995fdb2c8e8ff1336c4ecd4c86ba0f7e4622ccfacad2c13b2ba7e/chardet-7.5.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecbe0e0a9fff7825fc48650ef297ede49c71a7abc411a0638416207a70bf78c0", size = 961089, upload-time = "2026-08-06T05:01:39.319Z" },
749
+ { url = "https://files.pythonhosted.org/packages/1b/fe/f568f20d0cea7f853769d3015915daf8bb8460a4265237a051bb374fdcd0/chardet-7.5.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:469f164a608ccee4a8a2c0c2b4328470df9b07443e8269714f8e8a51f6fdf4c4", size = 950289, upload-time = "2026-08-06T05:01:40.782Z" },
750
+ { url = "https://files.pythonhosted.org/packages/dc/9a/9e17c1c6fbc65f9cba07951d359a24c8f7b17d3ca26bd54f33fd98b70f2e/chardet-7.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:fad6fbc154113e3b17bb757c34b21477e4b6d69fdd4ce51ff2b3f29a42f08b5b", size = 1036514, upload-time = "2026-08-06T05:01:42.394Z" },
751
+ { url = "https://files.pythonhosted.org/packages/53/3d/3aed10edee5735bc92cf0bd1a469335f596331b3ffc82bbdd157f8d5135f/chardet-7.5.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b72b9b95c636d170d9a6284d99be9fd93ca08bb2221385ff1a5b69da98ec4f76", size = 935215, upload-time = "2026-08-06T05:01:44.082Z" },
752
+ { url = "https://files.pythonhosted.org/packages/c5/e9/bd883f6ed3cb53a66b6752da493ef4b82f6435e7c085e0eee21296a0a31c/chardet-7.5.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4d30a84ec52c37532ad7978329a41224c454959b22503b8f8ed4df763e6c3ed2", size = 917514, upload-time = "2026-08-06T05:01:46.018Z" },
753
+ { url = "https://files.pythonhosted.org/packages/ea/d2/1773383d05a6cc1a69ee075cf477942edbb00c90bf8ac9778bce884e4c0a/chardet-7.5.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e6faa6b18c7af2fca8d4cbb51fa035fa47f8f4b68547ae927a1c0be34dfc96fa", size = 944654, upload-time = "2026-08-06T05:01:48.01Z" },
754
+ { url = "https://files.pythonhosted.org/packages/05/c2/9e5200bd6f8c6a32d0f2bbb6235783b3ca421630cb4f18507d5c9edc07ac/chardet-7.5.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:36843a0e9e3196142e317806d5ca29ab0bb714de2315897124a018438cc535a3", size = 959589, upload-time = "2026-08-06T05:01:49.512Z" },
755
+ { url = "https://files.pythonhosted.org/packages/11/b7/1e49d101a790501e540f9d9b33e52a65ccfcc0c0748220cb3ffb44987823/chardet-7.5.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:59598a8e15769ebe62fd0c153a5e4347a7a126cc7b376a724ff63ad80b890506", size = 949138, upload-time = "2026-08-06T05:01:50.993Z" },
756
+ { url = "https://files.pythonhosted.org/packages/88/d4/ed3b7e5c882ba24b71df8554840898ebbbbc3a57844d218edd4a1f8770a4/chardet-7.5.1-cp313-cp313-win_amd64.whl", hash = "sha256:71f152d66e7bd1faad615897d34765243cb567ad6aef07bf0d7c0cdd69bf6cce", size = 1034753, upload-time = "2026-08-06T05:01:52.488Z" },
757
+ { url = "https://files.pythonhosted.org/packages/68/04/71d601ad6b13b30921c7c0e085aec44b152df206bef45b164988d4ea143b/chardet-7.5.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a6b20b42a9e6048d557aec9903df33239c299b4643c6553203127c8f92f47e78", size = 934245, upload-time = "2026-08-06T05:01:54.06Z" },
758
+ { url = "https://files.pythonhosted.org/packages/85/84/5690a64afecf9967c3844ec96842d549e6f3ef72009bfd5524b69111245a/chardet-7.5.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:6eefafa763b7099c3c0a86c343097d69b766b3fe5705edba9400bae26450af1f", size = 917122, upload-time = "2026-08-06T05:01:55.526Z" },
759
+ { url = "https://files.pythonhosted.org/packages/bf/7b/df208823a1c53aa765caa4511479a7182399a397fb247aa30e0adccdd1a0/chardet-7.5.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2c99dea9eea1bdc6cc20dcb3555581234899d58a4147163c7d03d8fca11402b0", size = 947091, upload-time = "2026-08-06T05:01:56.995Z" },
760
+ { url = "https://files.pythonhosted.org/packages/76/bb/32871c9e393f174a60930a29873b6a4217b3f1c65667cad303ef146caedc/chardet-7.5.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c378ccd8c0fab30171ed7c54d501f72c4294d9b98c71ea1ff7852aa9ccac399", size = 959741, upload-time = "2026-08-06T05:01:58.525Z" },
761
+ { url = "https://files.pythonhosted.org/packages/85/69/cd0f5a176ed50787a9f143dd79a6a2cb47ce30cc1b164c76445bf3d971ea/chardet-7.5.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1cd58589a52211901c5ac57016feffbe8a7e7e6328f5bf0b03ce44043e221e99", size = 950265, upload-time = "2026-08-06T05:01:59.962Z" },
762
+ { url = "https://files.pythonhosted.org/packages/e9/8f/d871b357287caae0483d2cd235fae476da3768dd7d56e1fe733ffd3f707c/chardet-7.5.1-cp314-cp314-win_amd64.whl", hash = "sha256:46d10bbb7ba7ba345694fe0276a61290d4cc25d3624c03282311dbc58c1d49b4", size = 1032664, upload-time = "2026-08-06T05:02:01.415Z" },
763
+ { url = "https://files.pythonhosted.org/packages/3e/f9/746f0b494b2a08e694e4f97259979dce9f16740f0c624abcc76e9d2642c0/chardet-7.5.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:a198d47eaa28e1ba458f11ab636f0677f34c5d1ce7e909bec6ca2f346c21e78c", size = 954309, upload-time = "2026-08-06T05:02:02.971Z" },
764
+ { url = "https://files.pythonhosted.org/packages/de/60/41497afb2f225cc0c8cd731b34ee0f7bd5a85ab76547035f22b0326c0342/chardet-7.5.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:44214df32ff7c87fe82d7f1f21c7fe95c04769869e523f944413e668e001f52c", size = 935936, upload-time = "2026-08-06T05:02:04.921Z" },
765
+ { url = "https://files.pythonhosted.org/packages/78/eb/d69d9013a67de60fc71da55d8cd6b25efdeaba0b0f4f9ae655fb71d82604/chardet-7.5.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c461fc9746912d19ab77efc1912b7f9a364b7fca1d787e1215207d5f6f68685d", size = 963210, upload-time = "2026-08-06T05:02:06.855Z" },
766
+ { url = "https://files.pythonhosted.org/packages/58/21/eaa124a4a7beb8bc4df5e7a4df78021c09b2e5d68fbf66a24544228e583b/chardet-7.5.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:26160da949c66f0cca280101d85e6e4fddca53bfe465a1b69ceb3c9998295cc0", size = 975809, upload-time = "2026-08-06T05:02:08.497Z" },
767
+ { url = "https://files.pythonhosted.org/packages/36/6b/f195e0d66b1e18ccbcc3adc52c1c7e1263203e70b9bbe12c5a4198d1935b/chardet-7.5.1-py3-none-any.whl", hash = "sha256:ba7e9b6c15b4fcdf07ae675e5116dee610425f9ad6955c9bdb6bf99aed2e555d", size = 655022, upload-time = "2026-08-06T05:02:10.071Z" },
768
768
  ]
769
769
 
770
770
  [[package]]
@@ -830,7 +830,7 @@ wheels = [
830
830
 
831
831
  [[package]]
832
832
  name = "classifyre-cli"
833
- version = "0.4.92"
833
+ version = "0.4.94"
834
834
  source = { editable = "." }
835
835
  dependencies = [
836
836
  { name = "beautifulsoup4" },
@@ -1369,7 +1369,7 @@ youtube = [
1369
1369
 
1370
1370
  [[package]]
1371
1371
  name = "classifyre-schemas"
1372
- version = "0.4.92"
1372
+ version = "0.4.94"
1373
1373
  source = { editable = "../../packages/schemas" }
1374
1374
  dependencies = [
1375
1375
  { name = "fastjsonschema" },
@@ -2244,7 +2244,7 @@ wheels = [
2244
2244
 
2245
2245
  [[package]]
2246
2246
  name = "google-api-core"
2247
- version = "2.33.0"
2247
+ version = "2.34.0"
2248
2248
  source = { registry = "https://pypi.org/simple" }
2249
2249
  dependencies = [
2250
2250
  { name = "google-auth" },
@@ -2253,9 +2253,9 @@ dependencies = [
2253
2253
  { name = "protobuf" },
2254
2254
  { name = "requests" },
2255
2255
  ]
2256
- sdist = { url = "https://files.pythonhosted.org/packages/87/62/8fb1fb647d2788c950d69d6a769cd9d55c918ac1fc57be2f90b7e4029787/google_api_core-2.33.0.tar.gz", hash = "sha256:3a36bcc3e319783f4c97da41f6f45ea6ffcaa55848e341de16e09cb70243c2bb", size = 181607, upload-time = "2026-07-22T16:28:28.027Z" }
2256
+ sdist = { url = "https://files.pythonhosted.org/packages/7b/7c/9be3903e3d45415e8ca493c75f8990a0f6f579d168015d44c379350d0ab0/google_api_core-2.34.0.tar.gz", hash = "sha256:98a779fe72de956eb1c9c2f47ff4c4432a668ece1a002ec38bed07ec2698ae59", size = 187953, upload-time = "2026-08-06T06:23:58.128Z" }
2257
2257
  wheels = [
2258
- { url = "https://files.pythonhosted.org/packages/89/31/5056a347bb934ea04583c8b27916ef1501729c72638629545bce26ff4223/google_api_core-2.33.0-py3-none-any.whl", hash = "sha256:a2e22a0c1d0f03eafff1858b38cf46f832d5902b0c052235bf0ab8402929fbdc", size = 176462, upload-time = "2026-07-22T16:28:22.447Z" },
2258
+ { url = "https://files.pythonhosted.org/packages/bc/c1/a8a92ae1bc4b1a8f804c776d7d3f0c771b78a62c3ad4df1be41b3fd8c767/google_api_core-2.34.0-py3-none-any.whl", hash = "sha256:cdf9c67e7ca2402d86ccbfde5f2503fc83e3cc3f58cc78456ae96cad24a6d2de", size = 180545, upload-time = "2026-08-06T06:22:47.502Z" },
2259
2259
  ]
2260
2260
 
2261
2261
  [[package]]
@@ -2276,46 +2276,46 @@ wheels = [
2276
2276
 
2277
2277
  [[package]]
2278
2278
  name = "google-auth"
2279
- version = "2.56.2"
2279
+ version = "2.56.3"
2280
2280
  source = { registry = "https://pypi.org/simple" }
2281
2281
  dependencies = [
2282
2282
  { name = "cryptography" },
2283
2283
  { name = "pyasn1-modules" },
2284
2284
  ]
2285
- sdist = { url = "https://files.pythonhosted.org/packages/c7/33/dbc946a407401b975f0719658f18e664ece2109f79ffd1ff3bf226c205f4/google_auth-2.56.2.tar.gz", hash = "sha256:e28f103ca8091fb7012b99c44243d7366c29863713b8e34a220c3322b7a07051", size = 365820, upload-time = "2026-07-21T21:53:28.188Z" }
2285
+ sdist = { url = "https://files.pythonhosted.org/packages/db/4c/fa42116a48bab3f7a143cf5042ecff7df9c8b73f8a376203cd534d1dc966/google_auth-2.56.3.tar.gz", hash = "sha256:40e229fc901f0a305b553050e5fce562d509bee0435be053abfa91582b51b90c", size = 367110, upload-time = "2026-08-06T06:24:01.36Z" }
2286
2286
  wheels = [
2287
- { url = "https://files.pythonhosted.org/packages/88/63/50636aae68c9bf17c891c7eb18b49baa9bd6b31d2a97b8de4813a9fc8d1c/google_auth-2.56.2-py3-none-any.whl", hash = "sha256:c8270ea95b2697b74e3d8438ae9c5b898e38b623b915c7b5c5635921e7de68a6", size = 258588, upload-time = "2026-07-21T21:53:26.399Z" },
2287
+ { url = "https://files.pythonhosted.org/packages/bc/b3/6117b2f24065cd7e2c4f140e9a193e215f089ca8ba314cf91eb9d0b7fe0a/google_auth-2.56.3-py3-none-any.whl", hash = "sha256:8ec438808f813ad034535000261eed1067475d229d05bbf4216e78c3f2362e53", size = 259116, upload-time = "2026-08-06T06:22:51.788Z" },
2288
2288
  ]
2289
2289
 
2290
2290
  [[package]]
2291
2291
  name = "google-auth-httplib2"
2292
- version = "0.4.0"
2292
+ version = "0.4.1"
2293
2293
  source = { registry = "https://pypi.org/simple" }
2294
2294
  dependencies = [
2295
2295
  { name = "google-auth" },
2296
2296
  { name = "httplib2" },
2297
2297
  ]
2298
- sdist = { url = "https://files.pythonhosted.org/packages/1c/b3/f192c8bc7e41e0ebdbd95afcae4783417a34b6a6af62d22daf22c3fd38fc/google_auth_httplib2-0.4.0.tar.gz", hash = "sha256:d5b030a204b7a4b4d553ba9ca701b62481ee2b74419325580be70f7d85ffed35", size = 11161, upload-time = "2026-05-07T08:03:46.878Z" }
2298
+ sdist = { url = "https://files.pythonhosted.org/packages/11/46/79983cb738f0eb14e6ab4f43457aa9652f8d46bc4376b178f676b68c5c37/google_auth_httplib2-0.4.1.tar.gz", hash = "sha256:125b1bb4fcfdd2d97f19b673c1f46f831603d0acaffe415c8a35dadb312552a1", size = 11158, upload-time = "2026-08-06T06:24:00.452Z" }
2299
2299
  wheels = [
2300
- { url = "https://files.pythonhosted.org/packages/97/be/954c35a62b9e31de66b0a43c225c9b6bb9e0f98d6b1dc110a2308e3644f5/google_auth_httplib2-0.4.0-py3-none-any.whl", hash = "sha256:8e55cfafa3358cba85f6cad4a886138e88e158d71e7e5c9ee5936a5c1507fb91", size = 9529, upload-time = "2026-05-07T08:02:12.375Z" },
2300
+ { url = "https://files.pythonhosted.org/packages/68/8a/96410d0c3e02b584d1e7f5d4000b2e1710855650b226cd0601f2b154940a/google_auth_httplib2-0.4.1-py3-none-any.whl", hash = "sha256:67088a8387dc3f66016a690634f1cb9b7a48a31406f8998e088efc64203e7a12", size = 9529, upload-time = "2026-08-06T06:22:50.53Z" },
2301
2301
  ]
2302
2302
 
2303
2303
  [[package]]
2304
2304
  name = "google-cloud-core"
2305
- version = "2.6.0"
2305
+ version = "2.6.1"
2306
2306
  source = { registry = "https://pypi.org/simple" }
2307
2307
  dependencies = [
2308
2308
  { name = "google-api-core" },
2309
2309
  { name = "google-auth" },
2310
2310
  ]
2311
- sdist = { url = "https://files.pythonhosted.org/packages/a8/dd/1eef226e470369b26824a505c34482c0b493bc35fe8e0c6b003b5feca21a/google_cloud_core-2.6.0.tar.gz", hash = "sha256:e76149739f90fac1fc6757c09f47eaccb3145b54adbd7759b0f7c4b235f46c83", size = 36001, upload-time = "2026-05-07T08:04:04.124Z" }
2311
+ sdist = { url = "https://files.pythonhosted.org/packages/4a/c6/9d7d9ed6703eb35306ca7bf381fb66ba8d978c61a1b550a2e1730a4c4ce8/google_cloud_core-2.6.1.tar.gz", hash = "sha256:1e044b131f2ae097b92312fa195164b0aeb6dc6a88e00231e1210516314c420c", size = 36017, upload-time = "2026-08-06T06:24:18.211Z" }
2312
2312
  wheels = [
2313
- { url = "https://files.pythonhosted.org/packages/84/4a/98da8930ab109c73d9a5d13782a9ebb81ea8c111f6d534a567b71d23e52b/google_cloud_core-2.6.0-py3-none-any.whl", hash = "sha256:6d63ac8e5eca6d9e4319d0a1e2265fadcd7f1049904378caecfa01cf52dd869e", size = 29390, upload-time = "2026-05-07T08:02:34.672Z" },
2313
+ { url = "https://files.pythonhosted.org/packages/5d/4f/37960d5255988b218c40c9b5a2b731013684294a50735d1dd1ab4894e531/google_cloud_core-2.6.1-py3-none-any.whl", hash = "sha256:2682a8a4474a32f56292fb4bca7fa7e4fb0b4af958f6abfe4bca8d195747fd45", size = 29393, upload-time = "2026-08-06T06:23:11.405Z" },
2314
2314
  ]
2315
2315
 
2316
2316
  [[package]]
2317
2317
  name = "google-cloud-storage"
2318
- version = "3.13.0"
2318
+ version = "3.13.1"
2319
2319
  source = { registry = "https://pypi.org/simple" }
2320
2320
  dependencies = [
2321
2321
  { name = "google-api-core" },
@@ -2325,9 +2325,9 @@ dependencies = [
2325
2325
  { name = "google-resumable-media" },
2326
2326
  { name = "requests" },
2327
2327
  ]
2328
- sdist = { url = "https://files.pythonhosted.org/packages/e3/25/355ed97c1723c787dfaa888808d55db18371f82c38ff862357b1e902cd19/google_cloud_storage-3.13.0.tar.gz", hash = "sha256:d11d8706ea1520fba0f21043bcb7897caf7015d76ce1ad9a4f60237e4d7a9f6c", size = 17340960, upload-time = "2026-07-13T19:10:07.524Z" }
2328
+ sdist = { url = "https://files.pythonhosted.org/packages/ce/7e/73bb7512df1d1aad6ce3f9aed847cd40e0cd400ba4a85d86ab8eb412e9cc/google_cloud_storage-3.13.1.tar.gz", hash = "sha256:a80bf8cac2794808aa61c50c5f769ecbbe2d10331bacd0d69d30e59b14b346b2", size = 17341051, upload-time = "2026-08-06T06:24:42.229Z" }
2329
2329
  wheels = [
2330
- { url = "https://files.pythonhosted.org/packages/81/e8/b3678a0931ee7d4b3fdaf0813e6206d66e0922b2c26d912f308728b5b95a/google_cloud_storage-3.13.0-py3-none-any.whl", hash = "sha256:648af3ef8a6acc674e1359d3c920c67eb89a7a5ab66b336bd3ac43fed6b5ab84", size = 341428, upload-time = "2026-07-13T19:09:52.39Z" },
2330
+ { url = "https://files.pythonhosted.org/packages/06/6f/d69f0e185e08ddb58c323a0a935af2b492907b5de362bc08933b0a3b5644/google_cloud_storage-3.13.1-py3-none-any.whl", hash = "sha256:98208de6c21e85cecd3eb44551894efff33d98365500e178867d4305854a770a", size = 341486, upload-time = "2026-08-06T06:23:36.548Z" },
2331
2331
  ]
2332
2332
 
2333
2333
  [[package]]
@@ -2396,26 +2396,26 @@ wheels = [
2396
2396
 
2397
2397
  [[package]]
2398
2398
  name = "google-resumable-media"
2399
- version = "2.10.0"
2399
+ version = "2.10.1"
2400
2400
  source = { registry = "https://pypi.org/simple" }
2401
2401
  dependencies = [
2402
2402
  { name = "google-crc32c" },
2403
2403
  ]
2404
- sdist = { url = "https://files.pythonhosted.org/packages/48/f8/1ca5781d6be9cb9f73f7d40f4958c4bd1226a60598e3e39e1d6aaf838c4b/google_resumable_media-2.10.0.tar.gz", hash = "sha256:e324bc9d0fdae4c52a08ae90456edc4e71ece858399e1217ac0eb3a51d6bc6ee", size = 2164570, upload-time = "2026-06-03T16:14:26.103Z" }
2404
+ sdist = { url = "https://files.pythonhosted.org/packages/76/f5/f35505e6091614e285056a495488cb0a9c1a9dcc88a4a3c91bbc5fd4835b/google_resumable_media-2.10.1.tar.gz", hash = "sha256:224975032ddb73f7ed9e2f0f4cc08ed1b06874c52d48cc8533e3eb72980b21a0", size = 2164548, upload-time = "2026-08-06T06:24:50.489Z" }
2405
2405
  wheels = [
2406
- { url = "https://files.pythonhosted.org/packages/b0/d8/00c6854ac1512bb9eaf13bd3f8f28222f7674947fc510a4ff7616f2efc80/google_resumable_media-2.10.0-py3-none-any.whl", hash = "sha256:88152884bee37b2bf36a0ab81ad8c7fd12212c9803dd981d77c1b35b02d34e7c", size = 81533, upload-time = "2026-06-03T16:13:12.51Z" },
2406
+ { url = "https://files.pythonhosted.org/packages/ac/ba/77ef49baf338c03a11deadac984e3161b3f2b4fa4bb5aab160e7ca0fd522/google_resumable_media-2.10.1-py3-none-any.whl", hash = "sha256:4e2cbc704207ddc09f23b1f18e8ef4a4ccbfe0f1768b370e5c969704adbd0a1c", size = 81533, upload-time = "2026-08-06T06:23:45.464Z" },
2407
2407
  ]
2408
2408
 
2409
2409
  [[package]]
2410
2410
  name = "googleapis-common-protos"
2411
- version = "1.75.0"
2411
+ version = "1.75.1"
2412
2412
  source = { registry = "https://pypi.org/simple" }
2413
2413
  dependencies = [
2414
2414
  { name = "protobuf" },
2415
2415
  ]
2416
- sdist = { url = "https://files.pythonhosted.org/packages/b5/c8/f439cffde755cffa462bfbb156278fa6f9d09119719af9814b858fd4f81f/googleapis_common_protos-1.75.0.tar.gz", hash = "sha256:53a062ff3c32552fbd62c11fe23768b78e4ddf0494d5e5fd97d3f4689c75fbbd", size = 151035, upload-time = "2026-05-07T08:04:49.423Z" }
2416
+ sdist = { url = "https://files.pythonhosted.org/packages/72/73/74bcab964c9a7a61f2bb71e8179b0f13e6fa98f7ce00fd168aab291e4a2e/googleapis_common_protos-1.75.1.tar.gz", hash = "sha256:d3042c6c5a2d4e67113104d6b6818b59b6bd92a197f2a91508e801fe815cf071", size = 150967, upload-time = "2026-08-06T06:24:51.972Z" }
2417
2417
  wheels = [
2418
- { url = "https://files.pythonhosted.org/packages/e7/c8/e2645aa8ed02fd4c7a2f59d68783b65b1f3cbdfe39a6308e156509d1fee8/googleapis_common_protos-1.75.0-py3-none-any.whl", hash = "sha256:961ed60399c457ceb0ee8f285a84c870aabc9c6a832b9d37bb281b5bebde43ed", size = 300631, upload-time = "2026-05-07T08:03:30.345Z" },
2418
+ { url = "https://files.pythonhosted.org/packages/9a/51/186c02b8549b69ccda44429cf6ff5081e4b61a602ddfe6a8020d1be31d1b/googleapis_common_protos-1.75.1-py3-none-any.whl", hash = "sha256:28a1934bcd33b9c9da66ac301a0a4227e3367f095a17d0375cb98f0a09d93b79", size = 300626, upload-time = "2026-08-06T06:23:46.696Z" },
2419
2419
  ]
2420
2420
 
2421
2421
  [[package]]
@@ -2520,7 +2520,7 @@ http2 = [
2520
2520
 
2521
2521
  [[package]]
2522
2522
  name = "huggingface-hub"
2523
- version = "1.26.0"
2523
+ version = "1.26.1"
2524
2524
  source = { registry = "https://pypi.org/simple" }
2525
2525
  dependencies = [
2526
2526
  { name = "click" },
@@ -2533,9 +2533,9 @@ dependencies = [
2533
2533
  { name = "tqdm" },
2534
2534
  { name = "typing-extensions" },
2535
2535
  ]
2536
- sdist = { url = "https://files.pythonhosted.org/packages/82/db/3582597f8be0d34bd6881365a26d390854f12893eabdd62dd36de9df5a47/huggingface_hub-1.26.0.tar.gz", hash = "sha256:c8cd4e2df1ba9402f77fce9b509ec1d52debb502551789473f34016acc14e361", size = 936665, upload-time = "2026-07-30T14:12:04.156Z" }
2536
+ sdist = { url = "https://files.pythonhosted.org/packages/89/64/bfe23dab749cb2342e1e13b61c9e684ce46b4d189c7d433cd26f76f52baf/huggingface_hub-1.26.1.tar.gz", hash = "sha256:7c28860777594ac679233f571552d0e46df34ed4e4239e844190fad3ca05e4cd", size = 936700, upload-time = "2026-08-06T09:42:24.859Z" }
2537
2537
  wheels = [
2538
- { url = "https://files.pythonhosted.org/packages/97/bb/63a644c75b545f3ff394b822e9bd1c4a9586489c618b77a4d8a44a33a23b/huggingface_hub-1.26.0-py3-none-any.whl", hash = "sha256:e8cca670caa5d8dfa7e45bf45e86b466698198cd8150c021bcdb4a86b9252364", size = 780357, upload-time = "2026-07-30T14:12:01.998Z" },
2538
+ { url = "https://files.pythonhosted.org/packages/b4/a7/b519cd01e57b685c5f3e9db02cb1bd7aaade35fb6554e0d36bee6d6aae28/huggingface_hub-1.26.1-py3-none-any.whl", hash = "sha256:d8676e4ec96c1e481a22a93232bd86d73bbac643fb767399aefaeaa503890fb0", size = 780754, upload-time = "2026-08-06T09:42:22.497Z" },
2539
2539
  ]
2540
2540
 
2541
2541
  [[package]]
@@ -2558,11 +2558,11 @@ wheels = [
2558
2558
 
2559
2559
  [[package]]
2560
2560
  name = "imap-tools"
2561
- version = "1.14.0"
2561
+ version = "1.15.0"
2562
2562
  source = { registry = "https://pypi.org/simple" }
2563
- sdist = { url = "https://files.pythonhosted.org/packages/41/66/d52b6c7740aa81678404a9039668ab2b4887f46055290f232229a2d5b612/imap_tools-1.14.0.tar.gz", hash = "sha256:d730a35763c09ca02be45b93c8d5d638d9f098876c95841c7ce4d337ede403da", size = 48268, upload-time = "2026-07-24T06:23:43.804Z" }
2563
+ sdist = { url = "https://files.pythonhosted.org/packages/59/4e/acf9a7d59932548bc749fe0f5ae852e6da00b640303ed72786f697944b69/imap_tools-1.15.0.tar.gz", hash = "sha256:a90f948549ab000d96caf17c90e63b114f8788ba4a0d3f9274a96c0e108c3805", size = 48497, upload-time = "2026-08-06T10:25:26.567Z" }
2564
2564
  wheels = [
2565
- { url = "https://files.pythonhosted.org/packages/02/eb/8567f7542aaee43575002915a959e8891d2d9f3642d1bc5d32410d871bb5/imap_tools-1.14.0-py3-none-any.whl", hash = "sha256:eab3506e701eba44269bc04760b8b29a96c93b173553057180fe40a084d65426", size = 36410, upload-time = "2026-07-24T06:23:41.945Z" },
2565
+ { url = "https://files.pythonhosted.org/packages/50/eb/a4ad6ec962af2806c3484adb1869c24a04d8ef8c2034f2dd2b0f48459b0a/imap_tools-1.15.0-py3-none-any.whl", hash = "sha256:7bb0003c8bf124b80968c7bef786e4577d8365e9afb6551dc15b13161b688bdc", size = 36512, upload-time = "2026-08-06T10:25:24.377Z" },
2566
2566
  ]
2567
2567
 
2568
2568
  [[package]]
@@ -3390,7 +3390,7 @@ wheels = [
3390
3390
 
3391
3391
  [[package]]
3392
3392
  name = "msgraph-sdk"
3393
- version = "1.60.0"
3393
+ version = "1.61.0"
3394
3394
  source = { registry = "https://pypi.org/simple" }
3395
3395
  dependencies = [
3396
3396
  { name = "azure-identity" },
@@ -3400,9 +3400,9 @@ dependencies = [
3400
3400
  { name = "microsoft-kiota-serialization-text" },
3401
3401
  { name = "msgraph-core" },
3402
3402
  ]
3403
- sdist = { url = "https://files.pythonhosted.org/packages/00/16/e1b4cfd4dc030985f1335c04842d60786a6e9d7eb1ff432d63c38621fc59/msgraph_sdk-1.60.0.tar.gz", hash = "sha256:620335e73219afb42243239f082ca92661459a1fe2436e9f468907044049ce82", size = 6669599, upload-time = "2026-07-22T01:19:26.719Z" }
3403
+ sdist = { url = "https://files.pythonhosted.org/packages/59/31/121dd2fef52c544fe767f1e2d0e2badec507528ed03496e71965f2249889/msgraph_sdk-1.61.0.tar.gz", hash = "sha256:fe3b2e21715d9523e3b15082421011a0067873f3b48c431208be988f17b34ed9", size = 6913038, upload-time = "2026-08-05T20:07:55.24Z" }
3404
3404
  wheels = [
3405
- { url = "https://files.pythonhosted.org/packages/70/4c/9e0c3195f282844b17afe7d50acb057f511ee241b90ebc3296c3d0e4f693/msgraph_sdk-1.60.0-py3-none-any.whl", hash = "sha256:2cc481ca7645711f6f97cba5737840ada1f44bf553c3673b60d573988f21830f", size = 27268190, upload-time = "2026-07-22T01:19:30.984Z" },
3405
+ { url = "https://files.pythonhosted.org/packages/69/d3/f19ece768b61ec1e9a9bf207b23ef2ee7b65184224722540c0448fcea8fc/msgraph_sdk-1.61.0-py3-none-any.whl", hash = "sha256:42529f1ec34664c3009cb19fcda401fc9e825b757b5411ef9b30c3bae5536131", size = 28401314, upload-time = "2026-08-05T20:07:59.676Z" },
3406
3406
  ]
3407
3407
 
3408
3408
  [[package]]
@@ -4414,14 +4414,14 @@ wheels = [
4414
4414
 
4415
4415
  [[package]]
4416
4416
  name = "proto-plus"
4417
- version = "1.28.2"
4417
+ version = "1.28.3"
4418
4418
  source = { registry = "https://pypi.org/simple" }
4419
4419
  dependencies = [
4420
4420
  { name = "protobuf" },
4421
4421
  ]
4422
- sdist = { url = "https://files.pythonhosted.org/packages/73/3e/29e0d6a2c5adde6ab5772253fd16ab346324026b89a66e354689c86d0584/proto_plus-1.28.2.tar.gz", hash = "sha256:26d843eb99c1e32fdf1d20ff0faae56607f7748fe774acf9ecd5cfe6c6472501", size = 58063, upload-time = "2026-07-22T16:28:29.119Z" }
4422
+ sdist = { url = "https://files.pythonhosted.org/packages/26/6a/056256feb4bd000869aba5c16cf2aa911572ca2a2feb185f86e457b5171e/proto_plus-1.28.3.tar.gz", hash = "sha256:5f91b30dafa6bb38d432c5557a6ee1d35ffd40b4b1e0e3ca27260448560b91d9", size = 58051, upload-time = "2026-08-06T06:24:55.581Z" }
4423
4423
  wheels = [
4424
- { url = "https://files.pythonhosted.org/packages/9d/84/4e9a53a062d4073c74897a6bd20fff74d55307341b3e85c081002462b3ef/proto_plus-1.28.2-py3-none-any.whl", hash = "sha256:b874236fcac2358f601e4330bcb76cb8b89c851303ccf4078408b3d4774d1c52", size = 50693, upload-time = "2026-07-22T16:28:24.059Z" },
4424
+ { url = "https://files.pythonhosted.org/packages/61/3a/cfee3c50294f55a2f0f9575052dec2c2a48891ad4b1c2a133b05a87026cd/proto_plus-1.28.3-py3-none-any.whl", hash = "sha256:dc76880b8ee951cca002098574376cf71e055f9f16d9ba6570fb8a06f726d281", size = 50795, upload-time = "2026-08-06T06:23:50.653Z" },
4425
4425
  ]
4426
4426
 
4427
4427
  [[package]]
File without changes