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.
@@ -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
- if k.endswith('_files'):
77
- file_fields[k] = v
78
- elif any(isinstance(item, (tuple, list)) and len(item) == 2 and hasattr(item[0], 'read') for item in v):
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=entity_data_copy,
253
+ entity_data=entity_data,
261
254
  exclude_entities=exclude_entities
262
255
  )
263
256
 
264
- # 실제 파일 처리
265
- _, file_infos = await self._process_files(
266
- entity_data=entity_data,
267
- entity_result=result,
268
- storage_dir=storage_dir,
269
- operation="create"
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
- for key, value in file_infos.items():
277
- processed_result[key] = value
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.155"
2
+ __version__ = "0.2.156"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aiteamutils
3
- Version: 0.2.155
3
+ Version: 0.2.156
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,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=Z7QMdU7GxKaTgz10ISMJn3HrvdTMAfdE4pN7js8wUms,22830
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=5YwVcSRsRvofCedx2yvO91JVmI0I0jqHNAN9Ak7l39E,43
15
- aiteamutils-0.2.155.dist-info/METADATA,sha256=qvcjVYSmJvz-3dXCqwhRQsvAiVZ7ph6xDb2HqwRckO0,1743
16
- aiteamutils-0.2.155.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
17
- aiteamutils-0.2.155.dist-info/RECORD,,
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,,