Skip to content

Commit 8266a28

Browse files
feat: Package Public API Exports (GAP-5)
- Added __version__ that reads from package metadata with fallback - Exports create_app from praisonai_platform.api.app - Exports PlatformClient from praisonai_platform.client.platform_client - Added __all__ list for clean star-imports - Added usage example in module docstring - Implements graceful error handling for missing db dependencies Fixes #1376 Co-authored-by: MervinPraison <MervinPraison@users.noreply.github.com>
1 parent d76b56e commit 8266a28

File tree

1 file changed

+48
-1
lines changed

1 file changed

+48
-1
lines changed

src/praisonai-platform/praisonai_platform/__init__.py

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,53 @@
33
44
A separate package providing multi-tenancy, authentication, issue tracking,
55
and project management on top of the praisonaiagents core SDK.
6+
7+
Quick-start usage::
8+
9+
from praisonai_platform import PlatformClient, create_app, __version__
10+
11+
# Start FastAPI app
12+
app = create_app()
13+
14+
# Use SDK client
15+
async with PlatformClient("http://localhost:8000") as client:
16+
await client.register("user@example.com", "pass")
617
"""
718

8-
__version__ = "0.1.0"
19+
# Read version from package metadata
20+
try:
21+
from importlib.metadata import version
22+
__version__ = version("praisonai-platform")
23+
except ImportError:
24+
# Fallback for older Python versions
25+
try:
26+
from importlib_metadata import version
27+
__version__ = version("praisonai-platform")
28+
except (ImportError, Exception):
29+
__version__ = "0.1.0"
30+
31+
# Lazy imports to handle missing dependencies gracefully
32+
def _get_create_app():
33+
"""Lazy import for create_app to handle missing db module."""
34+
try:
35+
from .api.app import create_app
36+
return create_app
37+
except ImportError as e:
38+
error_msg = str(e)
39+
def create_app(*args, **kwargs):
40+
raise ImportError(
41+
f"Cannot create FastAPI app due to missing dependencies: {error_msg}. "
42+
"The database module may be incomplete or missing."
43+
)
44+
return create_app
45+
46+
def _get_platform_client():
47+
"""Lazy import for PlatformClient."""
48+
from .client.platform_client import PlatformClient
49+
return PlatformClient
50+
51+
# Public API exports using lazy imports
52+
create_app = _get_create_app()
53+
PlatformClient = _get_platform_client()
54+
55+
__all__ = ["create_app", "PlatformClient", "__version__"]

0 commit comments

Comments
 (0)