aiteamutils 0.2.56__py3-none-any.whl → 0.2.58__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.
aiteamutils/__init__.py CHANGED
@@ -21,6 +21,7 @@ from .base_repository import BaseRepository
21
21
  from .validators import validate_with
22
22
  from .enums import ActivityType
23
23
  from .version import __version__
24
+ from .dependencies import setup_dependencies, register_service
24
25
 
25
26
  __all__ = [
26
27
  # Base Models
@@ -31,6 +32,10 @@ __all__ = [
31
32
  # Database
32
33
  "DatabaseService",
33
34
 
35
+ # Dependencies
36
+ "setup_dependencies",
37
+ "register_service",
38
+
34
39
  # Exceptions
35
40
  "CustomException",
36
41
  "ErrorCode",
@@ -15,6 +15,23 @@ T = TypeVar("T", bound=BaseService)
15
15
  R = TypeVar("R", bound=BaseRepository)
16
16
 
17
17
  _service_registry: Dict[str, Dict[str, Any]] = {}
18
+ _session_provider = None
19
+
20
+ __all__ = [
21
+ "setup_dependencies",
22
+ "register_service",
23
+ "get_service",
24
+ "get_current_user"
25
+ ]
26
+
27
+ def setup_dependencies(session_provider: Callable[[], AsyncGenerator[AsyncSession, None]]) -> None:
28
+ """의존성 설정을 초기화합니다.
29
+
30
+ Args:
31
+ session_provider: 데이터베이스 세션을 제공하는 함수
32
+ """
33
+ global _session_provider
34
+ _session_provider = session_provider
18
35
 
19
36
  def register_service(
20
37
  service_class: Type[T],
@@ -28,6 +45,13 @@ def register_service(
28
45
  repository_class: 저장소 클래스 (선택)
29
46
  **kwargs: 추가 의존성
30
47
  """
48
+ if _session_provider is None:
49
+ raise CustomException(
50
+ ErrorCode.INTERNAL_ERROR,
51
+ detail="Dependencies not initialized",
52
+ source_function="dependencies.register_service"
53
+ )
54
+
31
55
  service_name = service_class.__name__
32
56
  _service_registry[service_name] = {
33
57
  "service_class": service_class,
@@ -103,9 +127,16 @@ def get_service(service_name: str) -> Callable:
103
127
  Returns:
104
128
  Callable: 서비스 의존성 함수
105
129
  """
130
+ if _session_provider is None:
131
+ raise CustomException(
132
+ ErrorCode.INTERNAL_ERROR,
133
+ detail="Dependencies not initialized",
134
+ source_function="dependencies.get_service"
135
+ )
136
+
106
137
  async def _get_service_dependency(
107
138
  request: Request,
108
- session: AsyncSession
139
+ session: AsyncSession = Depends(_session_provider)
109
140
  ) -> BaseService:
110
141
  return await _get_service(service_name, session, request)
111
142
  return _get_service_dependency
aiteamutils/version.py CHANGED
@@ -1,2 +1,2 @@
1
1
  """버전 정보"""
2
- __version__ = "0.2.56"
2
+ __version__ = "0.2.58"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aiteamutils
3
- Version: 0.2.56
3
+ Version: 0.2.58
4
4
  Summary: AI Team Utilities
5
5
  Project-URL: Homepage, https://github.com/yourusername/aiteamutils
6
6
  Project-URL: Issues, https://github.com/yourusername/aiteamutils/issues
@@ -1,16 +1,16 @@
1
- aiteamutils/__init__.py,sha256=h7iFifWvRlaComsk4VPapRr16YhD19Kp1LuBzLHqdgQ,1170
1
+ aiteamutils/__init__.py,sha256=U9UEyU0AqpLZzbPJiBvwDEh-s2405y1IeWZ0zCqFSl0,1307
2
2
  aiteamutils/base_model.py,sha256=ODEnjvUVoxQ1RPCfq8-uZTfTADIA4c7Z3E6G4EVsSX0,2708
3
3
  aiteamutils/base_repository.py,sha256=vqsundoN0h7FVvgqTBEnnJNMcFpvMK0s_nxBWdIYg-U,7846
4
4
  aiteamutils/base_service.py,sha256=s2AcA-6_ogOQKgt2xf_3AG2s6tqBceU4nJoXO1II7S8,24588
5
5
  aiteamutils/cache.py,sha256=07xBGlgAwOTAdY5mnMOQJ5EBxVwe8glVD7DkGEkxCtw,1373
6
6
  aiteamutils/config.py,sha256=YdalpJb70-txhGJAS4aaKglEZAFVWgfzw5BXSWpkUz4,3232
7
7
  aiteamutils/database.py,sha256=x0x5gnSyGfwo_klL9O65RnGOQID6c9tH2miwFveVyoE,6326
8
- aiteamutils/dependencies.py,sha256=UrPjMfUlmG1uGGeWI0H7fINfxChL-LTfD-odFUA5xqQ,5965
8
+ aiteamutils/dependencies.py,sha256=UjHGgee4qKxPwHJnfMZ3YKB7m7UQNIvKNr7IdOx590c,6899
9
9
  aiteamutils/enums.py,sha256=ipZi6k_QD5-3QV7Yzv7bnL0MjDz-vqfO9I5L77biMKs,632
10
10
  aiteamutils/exceptions.py,sha256=_lKWXq_ujNj41xN6LDE149PwsecAP7lgYWbOBbLOntg,15368
11
11
  aiteamutils/security.py,sha256=xFVrjttxwXB1TTjqgRQQgQJQohQBT28vuW8FVLjvi-M,10103
12
12
  aiteamutils/validators.py,sha256=3N245cZFjgwtW_KzjESkizx5BBUDaJLbbxfNO4WOFZ0,7764
13
- aiteamutils/version.py,sha256=E7HYjTw_97NdpIF9YF-EvDFT9_Hi3ocTj0YQB21nMd4,42
14
- aiteamutils-0.2.56.dist-info/METADATA,sha256=IWmmOB7FT0NhrvUKgNq4UNL5HvAuNMAu45ye759an-k,1718
15
- aiteamutils-0.2.56.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
16
- aiteamutils-0.2.56.dist-info/RECORD,,
13
+ aiteamutils/version.py,sha256=57HkAV8pVrmV03eTVINw5qTQURkXwGPl2H--uJC4OWs,42
14
+ aiteamutils-0.2.58.dist-info/METADATA,sha256=yULGE3mtpwvWXzHDczGJfqu52urFzknJhm5V9PgCOGc,1718
15
+ aiteamutils-0.2.58.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
16
+ aiteamutils-0.2.58.dist-info/RECORD,,