aiteamutils 0.2.24__py3-none-any.whl → 0.2.26__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -52,19 +52,24 @@ class ServiceRegistry:
52
52
  service_registry = ServiceRegistry()
53
53
 
54
54
  def get_service(name: str):
55
- """등록된 서비스를 가져오는 의존성 함수
56
-
57
- Args:
58
- name (str): 서비스 이름
59
-
60
- Returns:
61
- Callable: 서비스 인스턴스를 반환하는 의존성 함수
62
- """
63
- def _get_service(db: AsyncSession = Depends(get_db)):
64
- db_service = DatabaseService(session=db)
55
+ def _get_service():
56
+ # 글로벌 DatabaseService 사용
57
+ db_service = get_database_service()
65
58
  repository_class, service_class = service_registry.get(name)
59
+
60
+ # 이미 생성된 서비스가 있다면 재사용
61
+ if hasattr(service_registry, '_instances') and name in service_registry._instances:
62
+ return service_registry._instances[name]
63
+
66
64
  repository = repository_class(db_service)
67
- return service_class(repository, db_service)
65
+ instance = service_class(repository, db_service)
66
+
67
+ # 생성된 인스턴스 캐싱
68
+ if not hasattr(service_registry, '_instances'):
69
+ service_registry._instances = {}
70
+ service_registry._instances[name] = instance
71
+
72
+ return instance
68
73
  return _get_service
69
74
 
70
75
  oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/users/token")
aiteamutils/security.py CHANGED
@@ -1,6 +1,7 @@
1
1
  """보안 관련 유틸리티."""
2
2
  from datetime import datetime, timedelta, UTC
3
- from typing import Dict, Any, Optional, Literal, Callable, Type, Base
3
+ from typing import Dict, Any, Optional, Literal, Callable, Type
4
+ from sqlalchemy.orm import DeclarativeBase as Base
4
5
  from fastapi import Request, HTTPException, status
5
6
  from functools import wraps
6
7
  from jose import jwt, JWTError
aiteamutils/version.py CHANGED
@@ -1,2 +1,2 @@
1
1
  """버전 정보"""
2
- __version__ = "0.2.24"
2
+ __version__ = "0.2.26"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aiteamutils
3
- Version: 0.2.24
3
+ Version: 0.2.26
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
@@ -5,12 +5,12 @@ aiteamutils/base_service.py,sha256=E4dHGE0DvhmRyFplh46SwKJOSF_nUL7OAsCkf_ZJF_8,2
5
5
  aiteamutils/cache.py,sha256=tr0Yn8VPYA9QHiKCUzciVlQ2J1RAwNo2K9lGMH4rY3s,1334
6
6
  aiteamutils/config.py,sha256=7pJHBml8RRXC9FpoRBx0emofFkvtxsyk9_Rcur2F9hI,2724
7
7
  aiteamutils/database.py,sha256=raYKRZjEfefM3SnoPYozPu7OUGm62XWOUqZzN4_cayw,33479
8
- aiteamutils/dependencies.py,sha256=e5P-DQi5OMMh7FADaAUqU0kLVBcReE7za55EDNZN950,4008
8
+ aiteamutils/dependencies.py,sha256=VIpy8InbmSd0yOtQYMnn-0rz8yVQwHHbB1xK9Gc7WOw,4275
9
9
  aiteamutils/enums.py,sha256=ipZi6k_QD5-3QV7Yzv7bnL0MjDz-vqfO9I5L77biMKs,632
10
10
  aiteamutils/exceptions.py,sha256=YV-ISya4wQlHk4twvGo16I5r8h22-tXpn9wa-b3WwDM,15231
11
- aiteamutils/security.py,sha256=t1xdvfy2qpggiQGr89AMuRKvWK1UFMxJiJYAE5Lek7o,13453
11
+ aiteamutils/security.py,sha256=jxJsWSjJOMVlNaBFxroIXrAgseJYKl_vQ_kfmHblPIA,13498
12
12
  aiteamutils/validators.py,sha256=3N245cZFjgwtW_KzjESkizx5BBUDaJLbbxfNO4WOFZ0,7764
13
- aiteamutils/version.py,sha256=xu1IgfL2hhBUF2d91PMBax7rAUgopL3RxVIiQol7jAg,44
14
- aiteamutils-0.2.24.dist-info/METADATA,sha256=CX-Mx2vQIjg5tPPaKKMWfwEYZv9Q-4LuVK6AGuqayqs,1718
15
- aiteamutils-0.2.24.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
16
- aiteamutils-0.2.24.dist-info/RECORD,,
13
+ aiteamutils/version.py,sha256=DONfd7rZfDravdoV6c1K4jm76f0bVi7I-IFI_eud86I,44
14
+ aiteamutils-0.2.26.dist-info/METADATA,sha256=SbQLu9hE0u1eE3s9dutbU_SzunjlNr7YYzyGclvOFHA,1718
15
+ aiteamutils-0.2.26.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
16
+ aiteamutils-0.2.26.dist-info/RECORD,,