aiteamutils 0.2.1__py3-none-any.whl → 0.2.3__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 +3 -4
- aiteamutils/base_repository.py +3 -3
- aiteamutils/base_service.py +1 -1
- aiteamutils/validators.py +1 -1
- aiteamutils/version.py +2 -0
- {aiteamutils-0.2.1.dist-info → aiteamutils-0.2.3.dist-info}/METADATA +12 -6
- {aiteamutils-0.2.1.dist-info → aiteamutils-0.2.3.dist-info}/RECORD +8 -7
- {aiteamutils-0.2.1.dist-info → aiteamutils-0.2.3.dist-info}/WHEEL +0 -0
aiteamutils/__init__.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
from .base_model import Base
|
2
|
-
from .database import
|
2
|
+
from .database import DatabaseService
|
3
3
|
from .exceptions import (
|
4
4
|
CustomException,
|
5
5
|
ErrorCode,
|
@@ -21,8 +21,7 @@ from .base_repository import BaseRepository
|
|
21
21
|
from .validators import validate_with
|
22
22
|
from .enums import ActivityType
|
23
23
|
from .cache import CacheManager
|
24
|
-
|
25
|
-
__version__ = "0.1.0"
|
24
|
+
from .version import __version__
|
26
25
|
|
27
26
|
__all__ = [
|
28
27
|
# Base Models
|
@@ -31,7 +30,7 @@ __all__ = [
|
|
31
30
|
"BaseRepository",
|
32
31
|
|
33
32
|
# Database
|
34
|
-
"
|
33
|
+
"DatabaseService",
|
35
34
|
|
36
35
|
# Exceptions
|
37
36
|
"CustomException",
|
aiteamutils/base_repository.py
CHANGED
@@ -3,7 +3,7 @@ from typing import TypeVar, Generic, Dict, Any, List, Optional, Type
|
|
3
3
|
from sqlalchemy.orm import DeclarativeBase
|
4
4
|
from sqlalchemy.exc import IntegrityError, SQLAlchemyError
|
5
5
|
from sqlalchemy import select, or_, and_
|
6
|
-
from .database import
|
6
|
+
from .database import DatabaseManager
|
7
7
|
from .exceptions import CustomException, ErrorCode
|
8
8
|
from sqlalchemy.orm import joinedload
|
9
9
|
from sqlalchemy.sql import Select
|
@@ -14,10 +14,10 @@ class BaseRepository(Generic[ModelType]):
|
|
14
14
|
##################
|
15
15
|
# 1. 초기화 영역 #
|
16
16
|
##################
|
17
|
-
def __init__(self, db_service:
|
17
|
+
def __init__(self, db_service: DatabaseManager, model: Type[ModelType]):
|
18
18
|
"""
|
19
19
|
Args:
|
20
|
-
db_service (
|
20
|
+
db_service (DatabaseManager): 데이터베이스 서비스 인스턴스
|
21
21
|
model (Type[ModelType]): 모델 클래스
|
22
22
|
"""
|
23
23
|
self.db_service = db_service
|
aiteamutils/base_service.py
CHANGED
@@ -3,7 +3,7 @@ from datetime import datetime
|
|
3
3
|
from typing import TypeVar, Generic, Dict, Any, List, Optional, Type, Union
|
4
4
|
from sqlalchemy.orm import DeclarativeBase
|
5
5
|
from sqlalchemy.exc import IntegrityError, SQLAlchemyError
|
6
|
-
from .database import
|
6
|
+
from .database import DatabaseManager
|
7
7
|
from .exceptions import CustomException, ErrorCode
|
8
8
|
from .base_repository import BaseRepository
|
9
9
|
from .security import hash_password
|
aiteamutils/validators.py
CHANGED
@@ -7,7 +7,7 @@ from pydantic import field_validator
|
|
7
7
|
import re
|
8
8
|
|
9
9
|
from .exceptions import ErrorCode, CustomException
|
10
|
-
from .database import
|
10
|
+
from .database import DatabaseManager
|
11
11
|
from .base_model import Base
|
12
12
|
|
13
13
|
def validate_with(validator_func, unique_check=None, skip_if_none=False):
|
aiteamutils/version.py
ADDED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: aiteamutils
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.3
|
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
|
@@ -27,17 +27,21 @@ pip install aiteamutils
|
|
27
27
|
## 사용 예시
|
28
28
|
|
29
29
|
```python
|
30
|
-
from aiteamutils.database import
|
31
|
-
from aiteamutils.base_model import Base
|
30
|
+
from aiteamutils.database import DatabaseService
|
32
31
|
|
33
|
-
# DB
|
34
|
-
|
32
|
+
# DB 서비스 초기화
|
33
|
+
db_service = DatabaseService("postgresql+asyncpg://user:pass@localhost/db")
|
35
34
|
|
36
35
|
# DB 세션 사용
|
37
|
-
async with
|
36
|
+
async with db_service.get_db() as session:
|
38
37
|
# DB 작업 수행
|
39
38
|
pass
|
40
39
|
|
40
|
+
# 트랜잭션 사용
|
41
|
+
async with db_service.transaction():
|
42
|
+
# 트랜잭션 내 작업 수행
|
43
|
+
result = await db_service.create_entity(UserModel, {"name": "test"})
|
44
|
+
|
41
45
|
# 예외 처리
|
42
46
|
from aiteamutils.exceptions import CustomException, ErrorCode
|
43
47
|
|
@@ -55,6 +59,8 @@ except CustomException as e:
|
|
55
59
|
- 세션 관리
|
56
60
|
- 트랜잭션 관리
|
57
61
|
- 기본 CRUD 작업
|
62
|
+
- 외래키 검증
|
63
|
+
- 유니크 필드 검증
|
58
64
|
|
59
65
|
- 인증/인가 유틸리티
|
60
66
|
- JWT 토큰 관리
|
@@ -1,7 +1,7 @@
|
|
1
|
-
aiteamutils/__init__.py,sha256
|
1
|
+
aiteamutils/__init__.py,sha256=-pgR1RkjBjcIgfkKSeEy65G6jsDStFM4DdiQU8Fwcmg,1239
|
2
2
|
aiteamutils/base_model.py,sha256=ODEnjvUVoxQ1RPCfq8-uZTfTADIA4c7Z3E6G4EVsSX0,2708
|
3
|
-
aiteamutils/base_repository.py,sha256=
|
4
|
-
aiteamutils/base_service.py,sha256=
|
3
|
+
aiteamutils/base_repository.py,sha256=TQAXajQaaXIAJAFr9n5R2ikcu1TSq-E-_AjXgsND5c4,18927
|
4
|
+
aiteamutils/base_service.py,sha256=cqPP74ya6r8twJyU3Bc6ARxKiRL8fQIIZZnhDHxBQXE,24727
|
5
5
|
aiteamutils/cache.py,sha256=tr0Yn8VPYA9QHiKCUzciVlQ2J1RAwNo2K9lGMH4rY3s,1334
|
6
6
|
aiteamutils/config.py,sha256=vC6k6E2-Y4mD0E0kw6WVgSatCl9K_BtTwrVFhLrhCzs,665
|
7
7
|
aiteamutils/database.py,sha256=U71cexPsSmMTKgp098I574PupqnuPltujI4QKHBG2Cc,29952
|
@@ -9,7 +9,8 @@ aiteamutils/dependencies.py,sha256=EJeVtq_lACuoheVhkX23N9xiak9bGD-t3-2JtlgBki0,4
|
|
9
9
|
aiteamutils/enums.py,sha256=ipZi6k_QD5-3QV7Yzv7bnL0MjDz-vqfO9I5L77biMKs,632
|
10
10
|
aiteamutils/exceptions.py,sha256=YV-ISya4wQlHk4twvGo16I5r8h22-tXpn9wa-b3WwDM,15231
|
11
11
|
aiteamutils/security.py,sha256=AZszaTxVEGi1jU1sX3QXHGgshp1lVvd0xXvZejXvs_w,12643
|
12
|
-
aiteamutils/validators.py,sha256=
|
13
|
-
aiteamutils
|
14
|
-
aiteamutils-0.2.
|
15
|
-
aiteamutils-0.2.
|
12
|
+
aiteamutils/validators.py,sha256=GA2idwDtbQynle7tya10cAnJ6DvLIFsJ746We0V-30k,7630
|
13
|
+
aiteamutils/version.py,sha256=DXa_l8uxY6IUVYMN7t-_ZT77POxKLF32FEOkXcMp20g,42
|
14
|
+
aiteamutils-0.2.3.dist-info/METADATA,sha256=I4CrdombApVWW8HLn3C6hA6lMTDUETpdEOV14iGmOko,1717
|
15
|
+
aiteamutils-0.2.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
16
|
+
aiteamutils-0.2.3.dist-info/RECORD,,
|
File without changes
|