aiteamutils 0.2.155__py3-none-any.whl → 0.2.156__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/base_service.py
CHANGED
@@ -72,10 +72,12 @@ class BaseService(Generic[ModelType]):
|
|
72
72
|
# 파일 필드 체크 로직 수정
|
73
73
|
file_fields = {}
|
74
74
|
for k, v in extra_data.items():
|
75
|
+
logger.info(f"[필드 검사] 필드명: {k}, 타입: {type(v)}, 값: {v}")
|
75
76
|
if v and isinstance(v, (list, tuple)):
|
76
|
-
|
77
|
-
|
78
|
-
|
77
|
+
logger.info(f"[리스트/튜플 검사] 필드명: {k}, 첫 번째 항목 타입: {type(v[0]) if v else 'None'}")
|
78
|
+
# 파일 객체를 포함하는 튜플/리스트인 경우만 처리
|
79
|
+
if any(isinstance(item, (tuple, list)) and len(item) == 2 and hasattr(item[0], 'read') for item in v):
|
80
|
+
logger.info(f"[파일 객체 포함 필드 발견] {k}")
|
79
81
|
file_fields[k] = v
|
80
82
|
|
81
83
|
logger.info(f"[파일 필드 확인] {file_fields}")
|
@@ -92,10 +94,12 @@ class BaseService(Generic[ModelType]):
|
|
92
94
|
# 파일 필드 분리 및 제거
|
93
95
|
for field_name, files in file_fields.items():
|
94
96
|
logger.info(f"[파일 처리] 필드: {field_name}, 파일 수: {len(files)}")
|
97
|
+
logger.info(f"[파일 상세] 필드: {field_name}, 파일 내용: {files}")
|
95
98
|
separated_files[field_name] = files
|
96
99
|
del extra_data[field_name]
|
97
100
|
|
98
101
|
entity_data_copy['extra_data'] = extra_data
|
102
|
+
logger.info(f"[파일 분리 후 extra_data] {entity_data_copy['extra_data']}")
|
99
103
|
|
100
104
|
# 기존 파일 삭제 (update 또는 delete 작업 시)
|
101
105
|
if operation in ["update", "delete"]:
|
@@ -244,37 +248,28 @@ class BaseService(Generic[ModelType]):
|
|
244
248
|
if fk_check:
|
245
249
|
await validate_unique_fields(self.db_session, fk_check, find_value=False)
|
246
250
|
|
247
|
-
#
|
248
|
-
temp_entity = type('TempEntity', (), {'ulid': str(ULID())})()
|
249
|
-
|
250
|
-
# 파일 데이터 분리
|
251
|
-
entity_data_copy, _ = await self._process_files(
|
252
|
-
entity_data=entity_data,
|
253
|
-
entity_result=temp_entity,
|
254
|
-
storage_dir=storage_dir,
|
255
|
-
operation="create"
|
256
|
-
)
|
257
|
-
|
258
|
-
# 엔티티 생성 (파일 데이터가 제거된 상태)
|
251
|
+
# 엔티티 생성 (파일 데이터가 포함된 상태)
|
259
252
|
result = await self.repository.create(
|
260
|
-
entity_data=
|
253
|
+
entity_data=entity_data,
|
261
254
|
exclude_entities=exclude_entities
|
262
255
|
)
|
263
256
|
|
264
|
-
#
|
265
|
-
|
266
|
-
entity_data=
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
257
|
+
# 파일 처리
|
258
|
+
if storage_dir:
|
259
|
+
entity_data, file_infos = await self._process_files(
|
260
|
+
entity_data=entity_data,
|
261
|
+
entity_result=result,
|
262
|
+
storage_dir=storage_dir,
|
263
|
+
operation="create"
|
264
|
+
)
|
271
265
|
|
272
266
|
# 결과 반환
|
273
267
|
if response_model:
|
274
268
|
processed_result = process_response(result, response_model)
|
275
269
|
# 파일 정보 추가
|
276
|
-
|
277
|
-
|
270
|
+
if storage_dir and 'file_infos' in locals():
|
271
|
+
for key, value in file_infos.items():
|
272
|
+
processed_result[key] = value
|
278
273
|
return processed_result
|
279
274
|
else:
|
280
275
|
return result
|
aiteamutils/version.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
"""버전 정보"""
|
2
|
-
__version__ = "0.2.
|
2
|
+
__version__ = "0.2.156"
|
@@ -1,7 +1,7 @@
|
|
1
1
|
aiteamutils/__init__.py,sha256=kRBpRjark0M8ZwFfmKiMFol6CbIILN3WE4f6_P6iIq0,1089
|
2
2
|
aiteamutils/base_model.py,sha256=yBZqzTDF9PA4wCAvmYfG12FdVwLtxOEUCcA3z2i6fXU,4176
|
3
3
|
aiteamutils/base_repository.py,sha256=Oy2zE1i5qx60Xf1tnsaKLyFWapiPqt5JH8NejwNrPWg,4647
|
4
|
-
aiteamutils/base_service.py,sha256=
|
4
|
+
aiteamutils/base_service.py,sha256=mueYqcKW9anqos3JVgrv4z9R4pQNmieBOSOkX-7N6BA,22975
|
5
5
|
aiteamutils/cache.py,sha256=07xBGlgAwOTAdY5mnMOQJ5EBxVwe8glVD7DkGEkxCtw,1373
|
6
6
|
aiteamutils/config.py,sha256=YdalpJb70-txhGJAS4aaKglEZAFVWgfzw5BXSWpkUz4,3232
|
7
7
|
aiteamutils/database.py,sha256=msvBKtxWeQVOo0v2Q9i2azuTNtnUItuNNar52gdRZTo,20418
|
@@ -11,7 +11,7 @@ aiteamutils/files.py,sha256=Qq2w3VAEOzvsDirYtxRTN48LnIzf4TPUH2LftmyYtQk,12831
|
|
11
11
|
aiteamutils/models.py,sha256=Nqnn8clbgv-5l0PgxcTOldg8mkMKrFn4TvPL-rYUUGg,1
|
12
12
|
aiteamutils/security.py,sha256=McUl3t5Z5SyUDVUHymHdDkYyF4YSeg4g9fFMML4W6Kw,11630
|
13
13
|
aiteamutils/validators.py,sha256=_WHN6jqJQzKM5uPTg-Da8U2qqevS84XeKMkCCF4C_lY,9591
|
14
|
-
aiteamutils/version.py,sha256=
|
15
|
-
aiteamutils-0.2.
|
16
|
-
aiteamutils-0.2.
|
17
|
-
aiteamutils-0.2.
|
14
|
+
aiteamutils/version.py,sha256=Gtf39UWk5lRvtwwpuSx7G7jYghOFJTmxzJ2qc9nK778,43
|
15
|
+
aiteamutils-0.2.156.dist-info/METADATA,sha256=Dgc1GpZzAeaewKnD3Pa0AhPcHPqtxMSD0lgvwONT7rI,1743
|
16
|
+
aiteamutils-0.2.156.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
17
|
+
aiteamutils-0.2.156.dist-info/RECORD,,
|
File without changes
|