aiteamutils 0.2.151__py3-none-any.whl → 0.2.153__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.
@@ -69,7 +69,7 @@ class BaseService(Generic[ModelType]):
69
69
  if operation != "delete" and 'extra_data' in entity_data_copy and isinstance(entity_data_copy['extra_data'], dict):
70
70
  logger.info(f"[extra_data 확인] {entity_data_copy['extra_data']}")
71
71
  extra_data = entity_data_copy['extra_data'].copy()
72
- file_fields = {k: v for k, v in extra_data.items() if k.endswith('_files')}
72
+ file_fields = {k: v for k, v in extra_data.items() if k.endswith('_files') and v} # 빈 리스트는 제외
73
73
  logger.info(f"[파일 필드 확인] {file_fields}")
74
74
  logger.info(f"[파일 필드 타입] {[(k, type(v), type(v[0]) if isinstance(v, list) and v else None) for k, v in file_fields.items()]}")
75
75
 
@@ -83,7 +83,7 @@ class BaseService(Generic[ModelType]):
83
83
 
84
84
  # 파일 필드 분리 및 제거
85
85
  for field_name, files in file_fields.items():
86
- if files:
86
+ if files: # 이미 위에서 필터링했으므로 이 조건은 제거 가능
87
87
  logger.info(f"[파일 처리] 필드: {field_name}, 파일 수: {len(files)}")
88
88
  separated_files[field_name] = files
89
89
  del extra_data[field_name]
@@ -141,7 +141,7 @@ class BaseService(Generic[ModelType]):
141
141
  entity_name=self.model.__tablename__,
142
142
  entity_ulid=entity_result.ulid,
143
143
  db_session=self.db_session,
144
- column_name=field_name.replace('_files', '')
144
+ column_name=field_name
145
145
  )
146
146
  file_infos[field_name] = saved_files
147
147
  logger.info(f"[파일 저장 완료] {field_name}: {len(saved_files)}개")
aiteamutils/files.py CHANGED
@@ -226,9 +226,23 @@ class FileHandler:
226
226
  }
227
227
  )
228
228
 
229
- file_info = dict(result.fetchone())
230
- file_infos.append(file_info)
231
- logger.info(f"[DB 저장 완료] {original_name}, ulid: {file_info['ulid']}")
229
+ row = result.fetchone()
230
+ db_file_info = {
231
+ "ulid": row.ulid,
232
+ "entity_name": row.entity_name,
233
+ "entity_ulid": row.entity_ulid,
234
+ "original_name": row.original_name,
235
+ "storage_path": row.storage_path,
236
+ "mime_type": row.mime_type,
237
+ "size": row.size,
238
+ "checksum": row.checksum,
239
+ "column_name": row.column_name,
240
+ "created_at": row.created_at,
241
+ "updated_at": row.updated_at,
242
+ "is_deleted": row.is_deleted
243
+ }
244
+ file_infos.append(db_file_info)
245
+ logger.info(f"[DB 저장 완료] {original_name}, ulid: {db_file_info['ulid']}")
232
246
 
233
247
  except Exception as e:
234
248
  logger.error(f"[DB 저장 실패] {original_name}: {str(e)}")
aiteamutils/version.py CHANGED
@@ -1,2 +1,2 @@
1
1
  """버전 정보"""
2
- __version__ = "0.2.151"
2
+ __version__ = "0.2.153"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aiteamutils
3
- Version: 0.2.151
3
+ Version: 0.2.153
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,17 +1,17 @@
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=r7sAETymMMvKUjYFo8To3EnnIIOPFQ7PGI_IzuNx5-o,22504
4
+ aiteamutils/base_service.py,sha256=T0uea00qeeBQmpJjCkizoDFEIyy6FCzbYhxmSF9Y618,22585
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
8
8
  aiteamutils/enums.py,sha256=7WLqlcJqQWtETAga2WAxNp3dJTQIAd2TW-4WzkoHHa8,2498
9
9
  aiteamutils/exceptions.py,sha256=pgf3ersezObyl17wAO3I2fb8m9t2OzWDX1mSjwAWm2Y,16035
10
- aiteamutils/files.py,sha256=zyNp1r1xZsHSAhh8MqkHN3abaL0JqJzHji0ifopKbRc,12145
10
+ 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=7Qe8azalUapGyE5J2xTns8UFyhTlo8EgwtdXePpAmw4,43
15
- aiteamutils-0.2.151.dist-info/METADATA,sha256=9S7Hbf6NWh6VQTez-mOv3iZfvQjjVh3AANxSQxOh6k4,1743
16
- aiteamutils-0.2.151.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
17
- aiteamutils-0.2.151.dist-info/RECORD,,
14
+ aiteamutils/version.py,sha256=P1mqs9Ktv1-K-HXg-VR20P_7V2lyx8pLY3W_eIHv3Ec,43
15
+ aiteamutils-0.2.153.dist-info/METADATA,sha256=e5Gkg9U3T3pb3u12N_upva2cTDZDl2zTS0xsx0HMcvk,1743
16
+ aiteamutils-0.2.153.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
17
+ aiteamutils-0.2.153.dist-info/RECORD,,