abstractcore 2.6.5__tar.gz → 2.6.6__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 (137) hide show
  1. {abstractcore-2.6.5 → abstractcore-2.6.6}/PKG-INFO +11 -1
  2. {abstractcore-2.6.5 → abstractcore-2.6.6}/README.md +3 -0
  3. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/utils/image_scaler.py +6 -6
  4. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/utils/version.py +1 -1
  5. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/utils/vlm_token_calculator.py +7 -1
  6. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore.egg-info/PKG-INFO +11 -1
  7. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore.egg-info/requires.txt +10 -0
  8. {abstractcore-2.6.5 → abstractcore-2.6.6}/pyproject.toml +13 -0
  9. {abstractcore-2.6.5 → abstractcore-2.6.6}/LICENSE +0 -0
  10. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/__init__.py +0 -0
  11. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/apps/__init__.py +0 -0
  12. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/apps/__main__.py +0 -0
  13. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/apps/app_config_utils.py +0 -0
  14. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/apps/deepsearch.py +0 -0
  15. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/apps/extractor.py +0 -0
  16. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/apps/intent.py +0 -0
  17. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/apps/judge.py +0 -0
  18. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/apps/summarizer.py +0 -0
  19. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/architectures/__init__.py +0 -0
  20. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/architectures/detection.py +0 -0
  21. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/architectures/enums.py +0 -0
  22. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/assets/architecture_formats.json +0 -0
  23. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/assets/model_capabilities.json +0 -0
  24. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/assets/session_schema.json +0 -0
  25. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/compression/__init__.py +0 -0
  26. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/compression/analytics.py +0 -0
  27. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/compression/cache.py +0 -0
  28. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/compression/config.py +0 -0
  29. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/compression/exceptions.py +0 -0
  30. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/compression/glyph_processor.py +0 -0
  31. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/compression/optimizer.py +0 -0
  32. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/compression/orchestrator.py +0 -0
  33. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/compression/pil_text_renderer.py +0 -0
  34. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/compression/quality.py +0 -0
  35. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/compression/text_formatter.py +0 -0
  36. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/compression/vision_compressor.py +0 -0
  37. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/config/__init__.py +0 -0
  38. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/config/main.py +0 -0
  39. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/config/manager.py +0 -0
  40. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/config/vision_config.py +0 -0
  41. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/core/__init__.py +0 -0
  42. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/core/enums.py +0 -0
  43. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/core/factory.py +0 -0
  44. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/core/interface.py +0 -0
  45. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/core/retry.py +0 -0
  46. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/core/session.py +0 -0
  47. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/core/types.py +0 -0
  48. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/download.py +0 -0
  49. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/embeddings/__init__.py +0 -0
  50. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/embeddings/manager.py +0 -0
  51. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/embeddings/models.py +0 -0
  52. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/events/__init__.py +0 -0
  53. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/exceptions/__init__.py +0 -0
  54. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/__init__.py +0 -0
  55. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/auto_handler.py +0 -0
  56. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/base.py +0 -0
  57. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/capabilities.py +0 -0
  58. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/handlers/__init__.py +0 -0
  59. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/handlers/anthropic_handler.py +0 -0
  60. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/handlers/local_handler.py +0 -0
  61. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/handlers/openai_handler.py +0 -0
  62. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/processors/__init__.py +0 -0
  63. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/processors/direct_pdf_processor.py +0 -0
  64. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/processors/glyph_pdf_processor.py +0 -0
  65. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/processors/image_processor.py +0 -0
  66. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/processors/office_processor.py +0 -0
  67. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/processors/pdf_processor.py +0 -0
  68. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/processors/text_processor.py +0 -0
  69. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/types.py +0 -0
  70. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/utils/__init__.py +0 -0
  71. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/media/vision_fallback.py +0 -0
  72. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/processing/__init__.py +0 -0
  73. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/processing/basic_deepsearch.py +0 -0
  74. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/processing/basic_extractor.py +0 -0
  75. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/processing/basic_intent.py +0 -0
  76. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/processing/basic_judge.py +0 -0
  77. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/processing/basic_summarizer.py +0 -0
  78. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/providers/__init__.py +0 -0
  79. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/providers/anthropic_provider.py +0 -0
  80. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/providers/base.py +0 -0
  81. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/providers/huggingface_provider.py +0 -0
  82. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/providers/lmstudio_provider.py +0 -0
  83. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/providers/mlx_provider.py +0 -0
  84. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/providers/model_capabilities.py +0 -0
  85. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/providers/ollama_provider.py +0 -0
  86. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/providers/openai_compatible_provider.py +0 -0
  87. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/providers/openai_provider.py +0 -0
  88. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/providers/registry.py +0 -0
  89. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/providers/streaming.py +0 -0
  90. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/providers/vllm_provider.py +0 -0
  91. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/server/__init__.py +0 -0
  92. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/server/app.py +0 -0
  93. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/structured/__init__.py +0 -0
  94. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/structured/handler.py +0 -0
  95. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/structured/retry.py +0 -0
  96. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/tools/__init__.py +0 -0
  97. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/tools/common_tools.py +0 -0
  98. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/tools/core.py +0 -0
  99. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/tools/handler.py +0 -0
  100. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/tools/parser.py +0 -0
  101. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/tools/registry.py +0 -0
  102. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/tools/syntax_rewriter.py +0 -0
  103. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/tools/tag_rewriter.py +0 -0
  104. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/utils/__init__.py +0 -0
  105. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/utils/cli.py +0 -0
  106. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/utils/message_preprocessor.py +0 -0
  107. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/utils/self_fixes.py +0 -0
  108. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/utils/structured_logging.py +0 -0
  109. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/utils/token_utils.py +0 -0
  110. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore/utils/trace_export.py +0 -0
  111. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore.egg-info/SOURCES.txt +0 -0
  112. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore.egg-info/dependency_links.txt +0 -0
  113. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore.egg-info/entry_points.txt +0 -0
  114. {abstractcore-2.6.5 → abstractcore-2.6.6}/abstractcore.egg-info/top_level.txt +0 -0
  115. {abstractcore-2.6.5 → abstractcore-2.6.6}/setup.cfg +0 -0
  116. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_agentic_cli_compatibility.py +0 -0
  117. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_basic_session.py +0 -0
  118. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_complete_integration.py +0 -0
  119. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_comprehensive_events.py +0 -0
  120. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_core_components.py +0 -0
  121. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_enhanced_prompt.py +0 -0
  122. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_environment_variable_tool_call_tags.py +0 -0
  123. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_factory.py +0 -0
  124. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_final_accuracy.py +0 -0
  125. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_final_comprehensive.py +0 -0
  126. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_final_graceful_errors.py +0 -0
  127. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_graceful_fallback.py +0 -0
  128. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_import_debug.py +0 -0
  129. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_integrated_functionality.py +0 -0
  130. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_retry_observability.py +0 -0
  131. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_retry_strategy.py +0 -0
  132. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_seed_determinism.py +0 -0
  133. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_seed_temperature_basic.py +0 -0
  134. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_sensory_prompting.py +0 -0
  135. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_text_only_model_experience.py +0 -0
  136. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_unload_memory.py +0 -0
  137. {abstractcore-2.6.5 → abstractcore-2.6.6}/tests/test_user_scenario_validation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractcore
3
- Version: 2.6.5
3
+ Version: 2.6.6
4
4
  Summary: Unified interface to all LLM providers with essential infrastructure for tool calling, streaming, and model management
5
5
  Author-email: Laurent-Philippe Albou <contact@abstractcore.ai>
6
6
  Maintainer-email: Laurent-Philippe Albou <contact@abstractcore.ai>
@@ -64,6 +64,7 @@ Requires-Dist: pymupdf4llm<1.0.0,>=0.0.20; extra == "media"
64
64
  Requires-Dist: unstructured[office]<1.0.0,>=0.10.0; extra == "media"
65
65
  Requires-Dist: pandas<3.0.0,>=1.0.0; extra == "media"
66
66
  Provides-Extra: compression
67
+ Requires-Dist: abstractcore[media]; extra == "compression"
67
68
  Requires-Dist: pdf2image<2.0.0,>=1.16.0; extra == "compression"
68
69
  Provides-Extra: api-providers
69
70
  Requires-Dist: abstractcore[anthropic,openai]; extra == "api-providers"
@@ -83,12 +84,18 @@ Provides-Extra: all-providers-apple
83
84
  Requires-Dist: abstractcore[anthropic,embeddings,huggingface,lmstudio,mlx,ollama,openai]; extra == "all-providers-apple"
84
85
  Provides-Extra: all-providers-gpu
85
86
  Requires-Dist: abstractcore[anthropic,embeddings,huggingface,lmstudio,ollama,openai,vllm]; extra == "all-providers-gpu"
87
+ Provides-Extra: all-providers-non-mlx
88
+ Requires-Dist: abstractcore[anthropic,embeddings,huggingface,lmstudio,ollama,openai]; extra == "all-providers-non-mlx"
89
+ Provides-Extra: local-providers-non-mlx
90
+ Requires-Dist: abstractcore[lmstudio,ollama]; extra == "local-providers-non-mlx"
86
91
  Provides-Extra: all
87
92
  Requires-Dist: abstractcore[anthropic,compression,dev,docs,embeddings,huggingface,lmstudio,media,mlx,ollama,openai,processing,server,test,tools,vllm]; extra == "all"
88
93
  Provides-Extra: all-apple
89
94
  Requires-Dist: abstractcore[anthropic,compression,dev,docs,embeddings,huggingface,lmstudio,media,mlx,ollama,openai,processing,server,test,tools]; extra == "all-apple"
90
95
  Provides-Extra: all-gpu
91
96
  Requires-Dist: abstractcore[anthropic,compression,dev,docs,embeddings,huggingface,lmstudio,media,ollama,openai,processing,server,test,tools,vllm]; extra == "all-gpu"
97
+ Provides-Extra: all-non-mlx
98
+ Requires-Dist: abstractcore[anthropic,compression,dev,docs,embeddings,huggingface,lmstudio,media,ollama,openai,processing,server,test,tools]; extra == "all-non-mlx"
92
99
  Provides-Extra: lightweight
93
100
  Requires-Dist: abstractcore[anthropic,compression,embeddings,lmstudio,media,ollama,openai,processing,server,tools]; extra == "lightweight"
94
101
  Provides-Extra: dev
@@ -1046,6 +1053,9 @@ pip install abstractcore[server]
1046
1053
  # With embeddings
1047
1054
  pip install abstractcore[embeddings]
1048
1055
 
1056
+ # With compression (Glyph visual-text compression)
1057
+ pip install abstractcore[compression]
1058
+
1049
1059
  # Everything (recommended for Apple Silicon)
1050
1060
  pip install abstractcore[all]
1051
1061
 
@@ -924,6 +924,9 @@ pip install abstractcore[server]
924
924
  # With embeddings
925
925
  pip install abstractcore[embeddings]
926
926
 
927
+ # With compression (Glyph visual-text compression)
928
+ pip install abstractcore[compression]
929
+
927
930
  # Everything (recommended for Apple Silicon)
928
931
  pip install abstractcore[all]
929
932
 
@@ -3,6 +3,8 @@ Image scaling utility for AbstractCore media handling.
3
3
 
4
4
  Provides intelligent image scaling based on model-specific requirements
5
5
  and capabilities for vision models.
6
+
7
+ Requires: PIL (Pillow) - install with `pip install Pillow`
6
8
  """
7
9
 
8
10
  from typing import Tuple, Optional, Union, Dict, Any
@@ -11,9 +13,10 @@ from pathlib import Path
11
13
 
12
14
  try:
13
15
  from PIL import Image, ImageOps
14
- PIL_AVAILABLE = True
15
- except ImportError:
16
- PIL_AVAILABLE = False
16
+ except ImportError as e:
17
+ raise ImportError(
18
+ "PIL (Pillow) is required for image scaling. Install with: pip install Pillow"
19
+ ) from e
17
20
 
18
21
  from ..base import MediaProcessingError
19
22
  from ...utils.structured_logging import get_logger
@@ -38,9 +41,6 @@ class ModelOptimizedScaler:
38
41
  def __init__(self):
39
42
  self.logger = get_logger(__name__)
40
43
 
41
- if not PIL_AVAILABLE:
42
- raise MediaProcessingError("PIL (Pillow) is required for image scaling")
43
-
44
44
  def get_optimal_resolution(self, model_name: str, original_size: Tuple[int, int],
45
45
  model_capabilities: Optional[Dict[str, Any]] = None) -> Tuple[int, int]:
46
46
  """
@@ -11,4 +11,4 @@ including when the package is installed from PyPI where pyproject.toml is not av
11
11
 
12
12
  # Package version - update this when releasing new versions
13
13
  # This must be manually synchronized with the version in pyproject.toml
14
- __version__ = "2.6.5"
14
+ __version__ = "2.6.6"
@@ -22,9 +22,15 @@ References:
22
22
  import math
23
23
  from typing import Tuple, Dict, Any, Optional, List
24
24
  from pathlib import Path
25
- from PIL import Image
26
25
  import logging
27
26
 
27
+ try:
28
+ from PIL import Image
29
+ except ImportError as e:
30
+ raise ImportError(
31
+ "PIL (Pillow) is required for VLM token calculation. Install with: pip install Pillow"
32
+ ) from e
33
+
28
34
  from ..utils.structured_logging import get_logger
29
35
  from ..architectures.detection import get_model_capabilities, detect_architecture
30
36
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractcore
3
- Version: 2.6.5
3
+ Version: 2.6.6
4
4
  Summary: Unified interface to all LLM providers with essential infrastructure for tool calling, streaming, and model management
5
5
  Author-email: Laurent-Philippe Albou <contact@abstractcore.ai>
6
6
  Maintainer-email: Laurent-Philippe Albou <contact@abstractcore.ai>
@@ -64,6 +64,7 @@ Requires-Dist: pymupdf4llm<1.0.0,>=0.0.20; extra == "media"
64
64
  Requires-Dist: unstructured[office]<1.0.0,>=0.10.0; extra == "media"
65
65
  Requires-Dist: pandas<3.0.0,>=1.0.0; extra == "media"
66
66
  Provides-Extra: compression
67
+ Requires-Dist: abstractcore[media]; extra == "compression"
67
68
  Requires-Dist: pdf2image<2.0.0,>=1.16.0; extra == "compression"
68
69
  Provides-Extra: api-providers
69
70
  Requires-Dist: abstractcore[anthropic,openai]; extra == "api-providers"
@@ -83,12 +84,18 @@ Provides-Extra: all-providers-apple
83
84
  Requires-Dist: abstractcore[anthropic,embeddings,huggingface,lmstudio,mlx,ollama,openai]; extra == "all-providers-apple"
84
85
  Provides-Extra: all-providers-gpu
85
86
  Requires-Dist: abstractcore[anthropic,embeddings,huggingface,lmstudio,ollama,openai,vllm]; extra == "all-providers-gpu"
87
+ Provides-Extra: all-providers-non-mlx
88
+ Requires-Dist: abstractcore[anthropic,embeddings,huggingface,lmstudio,ollama,openai]; extra == "all-providers-non-mlx"
89
+ Provides-Extra: local-providers-non-mlx
90
+ Requires-Dist: abstractcore[lmstudio,ollama]; extra == "local-providers-non-mlx"
86
91
  Provides-Extra: all
87
92
  Requires-Dist: abstractcore[anthropic,compression,dev,docs,embeddings,huggingface,lmstudio,media,mlx,ollama,openai,processing,server,test,tools,vllm]; extra == "all"
88
93
  Provides-Extra: all-apple
89
94
  Requires-Dist: abstractcore[anthropic,compression,dev,docs,embeddings,huggingface,lmstudio,media,mlx,ollama,openai,processing,server,test,tools]; extra == "all-apple"
90
95
  Provides-Extra: all-gpu
91
96
  Requires-Dist: abstractcore[anthropic,compression,dev,docs,embeddings,huggingface,lmstudio,media,ollama,openai,processing,server,test,tools,vllm]; extra == "all-gpu"
97
+ Provides-Extra: all-non-mlx
98
+ Requires-Dist: abstractcore[anthropic,compression,dev,docs,embeddings,huggingface,lmstudio,media,ollama,openai,processing,server,test,tools]; extra == "all-non-mlx"
92
99
  Provides-Extra: lightweight
93
100
  Requires-Dist: abstractcore[anthropic,compression,embeddings,lmstudio,media,ollama,openai,processing,server,tools]; extra == "lightweight"
94
101
  Provides-Extra: dev
@@ -1046,6 +1053,9 @@ pip install abstractcore[server]
1046
1053
  # With embeddings
1047
1054
  pip install abstractcore[embeddings]
1048
1055
 
1056
+ # With compression (Glyph visual-text compression)
1057
+ pip install abstractcore[compression]
1058
+
1049
1059
  # Everything (recommended for Apple Silicon)
1050
1060
  pip install abstractcore[all]
1051
1061
 
@@ -12,6 +12,9 @@ abstractcore[anthropic,compression,dev,docs,embeddings,huggingface,lmstudio,medi
12
12
  [all-gpu]
13
13
  abstractcore[anthropic,compression,dev,docs,embeddings,huggingface,lmstudio,media,ollama,openai,processing,server,test,tools,vllm]
14
14
 
15
+ [all-non-mlx]
16
+ abstractcore[anthropic,compression,dev,docs,embeddings,huggingface,lmstudio,media,ollama,openai,processing,server,test,tools]
17
+
15
18
  [all-providers]
16
19
  abstractcore[anthropic,embeddings,huggingface,lmstudio,mlx,ollama,openai,vllm]
17
20
 
@@ -21,6 +24,9 @@ abstractcore[anthropic,embeddings,huggingface,lmstudio,mlx,ollama,openai]
21
24
  [all-providers-gpu]
22
25
  abstractcore[anthropic,embeddings,huggingface,lmstudio,ollama,openai,vllm]
23
26
 
27
+ [all-providers-non-mlx]
28
+ abstractcore[anthropic,embeddings,huggingface,lmstudio,ollama,openai]
29
+
24
30
  [anthropic]
25
31
  anthropic<1.0.0,>=0.25.0
26
32
 
@@ -28,6 +34,7 @@ anthropic<1.0.0,>=0.25.0
28
34
  abstractcore[anthropic,openai]
29
35
 
30
36
  [compression]
37
+ abstractcore[media]
31
38
  pdf2image<2.0.0,>=1.16.0
32
39
 
33
40
  [dev]
@@ -81,6 +88,9 @@ abstractcore[lmstudio,mlx,ollama]
81
88
  [local-providers-gpu]
82
89
  abstractcore[lmstudio,ollama,vllm]
83
90
 
91
+ [local-providers-non-mlx]
92
+ abstractcore[lmstudio,ollama]
93
+
84
94
  [media]
85
95
  Pillow<12.0.0,>=10.0.0
86
96
  pymupdf4llm<1.0.0,>=0.0.20
@@ -140,6 +140,7 @@ media = [
140
140
  ]
141
141
 
142
142
  compression = [
143
+ "abstractcore[media]", # Compression requires media handling (PIL for image processing)
143
144
  "pdf2image>=1.16.0,<2.0.0",
144
145
  ]
145
146
 
@@ -181,6 +182,14 @@ all-providers-gpu = [
181
182
  "abstractcore[openai,anthropic,ollama,lmstudio,huggingface,vllm,embeddings]",
182
183
  ]
183
184
 
185
+ all-providers-non-mlx = [
186
+ "abstractcore[openai,anthropic,ollama,lmstudio,huggingface,embeddings]",
187
+ ]
188
+
189
+ local-providers-non-mlx = [
190
+ "abstractcore[ollama,lmstudio]",
191
+ ]
192
+
184
193
  all = [
185
194
  "abstractcore[openai,anthropic,ollama,lmstudio,huggingface,mlx,vllm,embeddings,processing,media,compression,tools,server,dev,test,docs]",
186
195
  ]
@@ -193,6 +202,10 @@ all-gpu = [
193
202
  "abstractcore[openai,anthropic,ollama,lmstudio,huggingface,vllm,embeddings,processing,media,compression,tools,server,dev,test,docs]",
194
203
  ]
195
204
 
205
+ all-non-mlx = [
206
+ "abstractcore[openai,anthropic,ollama,lmstudio,huggingface,embeddings,processing,media,compression,tools,server,dev,test,docs]",
207
+ ]
208
+
196
209
  lightweight = [
197
210
  "abstractcore[openai,anthropic,ollama,lmstudio,embeddings,processing,media,compression,tools,server]",
198
211
  ]
File without changes
File without changes