abstractcore 2.4.8__py3-none-any.whl → 2.4.9__py3-none-any.whl

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.
@@ -8,7 +8,7 @@ def get_app_defaults(app_name: str) -> tuple[str, str]:
8
8
  from ..config import get_config_manager
9
9
  config_manager = get_config_manager()
10
10
  return config_manager.get_app_default(app_name)
11
- except Exception:
11
+ except (ImportError, Exception):
12
12
  # Fallback to hardcoded defaults if config unavailable
13
13
  hardcoded_defaults = {
14
14
  'summarizer': ('huggingface', 'unsloth/Qwen3-4B-Instruct-2507-GGUF'),
abstractcore/cli/main.py CHANGED
@@ -38,7 +38,13 @@ from typing import List, Optional
38
38
  # Add parent directory to path for imports
39
39
  sys.path.insert(0, str(Path(__file__).parent.parent.parent))
40
40
 
41
- from abstractcore.config import get_config_manager
41
+ # Import config manager with fallback
42
+ try:
43
+ from abstractcore.config import get_config_manager
44
+ CONFIG_AVAILABLE = True
45
+ except ImportError:
46
+ CONFIG_AVAILABLE = False
47
+ get_config_manager = None
42
48
 
43
49
  def download_vision_model(model_name: str = "blip-base-caption") -> bool:
44
50
  """Download a vision model for local use."""
@@ -144,10 +150,12 @@ def download_vision_model(model_name: str = "blip-base-caption") -> bool:
144
150
  print(f"📁 Model saved to: {models_dir}")
145
151
 
146
152
  # Configure AbstractCore to use this model
147
- from abstractcore.config import get_config_manager
148
- config_manager = get_config_manager()
149
- # Use the proper HuggingFace model identifier
150
- config_manager.set_vision_provider("huggingface", hf_id)
153
+ if CONFIG_AVAILABLE:
154
+ config_manager = get_config_manager()
155
+ # Use the proper HuggingFace model identifier
156
+ config_manager.set_vision_provider("huggingface", hf_id)
157
+ else:
158
+ print("⚠️ Config system not available - manual configuration required")
151
159
 
152
160
  print(f"✅ Configured AbstractCore to use HuggingFace model: {hf_id}")
153
161
  print(f"🎯 Vision fallback is now enabled!")
@@ -31,14 +31,28 @@ class VisionFallbackHandler:
31
31
  def __init__(self, config_manager=None):
32
32
  """Initialize with configuration manager."""
33
33
  if config_manager is None:
34
- from abstractcore.config import get_config_manager
35
- self.config_manager = get_config_manager()
34
+ try:
35
+ from abstractcore.config import get_config_manager
36
+ self.config_manager = get_config_manager()
37
+ except ImportError:
38
+ # Config module not available - use fallback behavior
39
+ logger.warning("Config module not available, vision fallback disabled")
40
+ self.config_manager = None
36
41
  else:
37
42
  self.config_manager = config_manager
38
43
 
39
44
  @property
40
45
  def vision_config(self):
41
46
  """Get vision configuration from unified config system."""
47
+ if self.config_manager is None:
48
+ # Return a minimal config object when config system is not available
49
+ class FallbackVisionConfig:
50
+ strategy = "disabled"
51
+ caption_provider = None
52
+ caption_model = None
53
+ fallback_chain = []
54
+ local_models_path = None
55
+ return FallbackVisionConfig()
42
56
  return self.config_manager.config.vision
43
57
 
44
58
  def create_description(self, image_path: str, user_prompt: str = None) -> str:
@@ -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.4.8"
14
+ __version__ = "2.4.9"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractcore
3
- Version: 2.4.8
3
+ Version: 2.4.9
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>
@@ -1,7 +1,7 @@
1
1
  abstractcore/__init__.py,sha256=A7Gbn_C-robdWLLQXjtTyWsoaXDGIblSFmLRV_ni6O8,1934
2
2
  abstractcore/apps/__init__.py,sha256=sgNOv3lYyOWNBC-w6GnRN6aILGCbdkQtNcuQdJz5ghE,31
3
3
  abstractcore/apps/__main__.py,sha256=041daYkoIE1VLEO19IZC5nNIDOQZWNgpB7ogJ3SOlsE,1585
4
- abstractcore/apps/app_config_utils.py,sha256=GygjtkianBktRvirHya1KbXuB2r5OUDJM6ilvybQWvk,875
4
+ abstractcore/apps/app_config_utils.py,sha256=5GIvXnD996LFIV3-BpfkqII6UqYlStm7ZCgmqDEN8dc,890
5
5
  abstractcore/apps/extractor.py,sha256=OfiqB9l_alH9xCGb6zOD__QJkDjdKOlLZngriVgmn7c,23749
6
6
  abstractcore/apps/judge.py,sha256=nOgxvn-BbhNY6xU9AlTeD1yidTh73AiVlSN7hQCVE2M,23169
7
7
  abstractcore/apps/summarizer.py,sha256=9aD6KH21w-tv_wGp9MaO2uyJuaU71OemW7KpqrG5t6w,14669
@@ -12,7 +12,7 @@ abstractcore/assets/architecture_formats.json,sha256=CIf6SaR_IJs1D7Uvd1K3zWngIXJ
12
12
  abstractcore/assets/model_capabilities.json,sha256=iUkDiljyZUZzPlpYCOFgStXyc6e7dvOfReYQ0HFrX9Q,49703
13
13
  abstractcore/assets/session_schema.json,sha256=hMCVrq3KSyVExrMGzuykf7bU-z6WyIVuEGU8du9_zUY,10570
14
14
  abstractcore/cli/__init__.py,sha256=rUjLjZSK3wENSw4g_iN43Bc2i5cggcEmj4NPXBMohdc,241
15
- abstractcore/cli/main.py,sha256=QD38nnfrInavO452WbkXCI37SVsdIu9VhvjEOojXBGY,31834
15
+ abstractcore/cli/main.py,sha256=cZBOY3Cj7a4SUxqp7p3FeuS-iUnCdYOf1-v4CICIni0,32073
16
16
  abstractcore/cli/vision_config.py,sha256=jJzO4zBexh8SqSKp6YKOXdMDSv4AL4Ztl5Xi-5c4KyY,17869
17
17
  abstractcore/core/__init__.py,sha256=2h-86U4QkCQ4gzZ4iRusSTMlkODiUS6tKjZHiEXz6rM,684
18
18
  abstractcore/core/enums.py,sha256=BhkVnHC-X1_377JDmqd-2mnem9GdBLqixWlYzlP_FJU,695
@@ -31,7 +31,7 @@ abstractcore/media/auto_handler.py,sha256=R3EhifSlGSJ_2oftQ7BdD7nQBMGePHOubuXkqH
31
31
  abstractcore/media/base.py,sha256=vWdxscqTGTvd3oc4IzzsBTWhUrznWcqM7M_sFyq6-eE,15971
32
32
  abstractcore/media/capabilities.py,sha256=qqKvXGkUT-FNnbFS-EYx8KCT9SZOovO2h4N7ucrHgBA,12844
33
33
  abstractcore/media/types.py,sha256=jG-g_2_gzl8eOgEalk9x3Ikhni9GoGfoRjkZWaBhV30,10165
34
- abstractcore/media/vision_fallback.py,sha256=XcEV5T9ekqd4DRBrhJvxgX5j_puxSlofvuUIfQc2vmg,10629
34
+ abstractcore/media/vision_fallback.py,sha256=yojFTwKqiE0wfQGYphpXUcANpC0Q80s-qlt7gmQGfZg,11282
35
35
  abstractcore/media/handlers/__init__.py,sha256=HBqFo15JX1q7RM11076iFQUfPvInLlOizX-LGSznLuI,404
36
36
  abstractcore/media/handlers/anthropic_handler.py,sha256=iwcHKnHgHoQGpJKlJmwFJWBvrYg9lAzAnndybwsWZRA,12427
37
37
  abstractcore/media/handlers/local_handler.py,sha256=xfMV2Ztre3eUkDno4aSGob96oWUlgicZ3VChs-txjXU,23033
@@ -76,10 +76,10 @@ abstractcore/utils/message_preprocessor.py,sha256=GdHkm6tmrgjm3PwHRSCjIsq1XLkbhy
76
76
  abstractcore/utils/self_fixes.py,sha256=QEDwNTW80iQM4ftfEY3Ghz69F018oKwLM9yeRCYZOvw,5886
77
77
  abstractcore/utils/structured_logging.py,sha256=Vm-HviSa42G9DJCWmaEv4a0QG3NMsADD3ictLOs4En0,19952
78
78
  abstractcore/utils/token_utils.py,sha256=eLwFmJ68p9WMFD_MHLMmeJRW6Oqx_4hKELB8FNQ2Mnk,21097
79
- abstractcore/utils/version.py,sha256=4vhW55aGVOlb2i9Zm_ZxoGAPd5qtSm6ZN1WmH15tBYs,605
80
- abstractcore-2.4.8.dist-info/licenses/LICENSE,sha256=PI2v_4HMvd6050uDD_4AY_8PzBnu2asa3RKbdDjowTA,1078
81
- abstractcore-2.4.8.dist-info/METADATA,sha256=UfLD0Zi-Mco6B9NkoWuypgHZuUPJeGYyJVJjBBPlpsA,31907
82
- abstractcore-2.4.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
83
- abstractcore-2.4.8.dist-info/entry_points.txt,sha256=UdVmchBC_Lt3H4Vlkt5js-QDAkVlBbkCu1yCsswk-KE,454
84
- abstractcore-2.4.8.dist-info/top_level.txt,sha256=DiNHBI35SIawW3N9Z-z0y6cQYNbXd32pvBkW0RLfScs,13
85
- abstractcore-2.4.8.dist-info/RECORD,,
79
+ abstractcore/utils/version.py,sha256=no3N7qA8I5XGeoI1AfM5yAVEAnvR87_qtMTqqRVPDVc,605
80
+ abstractcore-2.4.9.dist-info/licenses/LICENSE,sha256=PI2v_4HMvd6050uDD_4AY_8PzBnu2asa3RKbdDjowTA,1078
81
+ abstractcore-2.4.9.dist-info/METADATA,sha256=rmaOtujlK0uq0n8YOFg1wht75czvj4beh9Wpv6obTVQ,31907
82
+ abstractcore-2.4.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
83
+ abstractcore-2.4.9.dist-info/entry_points.txt,sha256=UdVmchBC_Lt3H4Vlkt5js-QDAkVlBbkCu1yCsswk-KE,454
84
+ abstractcore-2.4.9.dist-info/top_level.txt,sha256=DiNHBI35SIawW3N9Z-z0y6cQYNbXd32pvBkW0RLfScs,13
85
+ abstractcore-2.4.9.dist-info/RECORD,,