Skip to content

Commit 1ce8f9c

Browse files
committed
removed FileInternal
1 parent c6f7da2 commit 1ce8f9c

File tree

3 files changed

+44
-55
lines changed

3 files changed

+44
-55
lines changed

models/models/__init__.py

+3
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
FamilySimpleInternal,
2727
PedRowInternal,
2828
)
29+
from models.models.file import (
30+
File
31+
)
2932
from models.models.participant import (
3033
NestedParticipant,
3134
NestedParticipantInternal,

models/models/file.py

+30-45
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,11 @@
11
import hashlib
2-
from typing import Optional
32

43
from cloudpathlib.anypath import AnyPath
5-
from pydantic import BaseModel
64

75
from models.base import SMBase
86

97

10-
class File(BaseModel):
11-
"""File model for external use"""
12-
13-
id: int
14-
analysis_id: int
15-
path: str
16-
basename: str
17-
dirname: str
18-
nameroot: str
19-
nameext: Optional[str]
20-
checksum: Optional[str]
21-
size: int
22-
23-
def to_internal(self):
24-
"""Convert to internal model"""
25-
return FileInternal(
26-
id=self.id,
27-
analysis_id=self.analysis_id,
28-
path=self.path,
29-
basename=self.basename,
30-
dirname=self.dirname,
31-
nameroot=self.nameroot,
32-
nameext=self.nameext,
33-
checksum=self.checksum,
34-
size=self.size,
35-
)
36-
37-
38-
class FileInternal(SMBase):
8+
class File(SMBase):
399
"""File model for internal use"""
4010

4111
id: int
@@ -47,6 +17,35 @@ class FileInternal(SMBase):
4717
nameext: str | None
4818
checksum: str | None
4919
size: int
20+
secondary_files: list[str] = []
21+
22+
@staticmethod
23+
def from_db(**kwargs):
24+
"""
25+
Convert from db keys, mainly converting id to id_
26+
"""
27+
analysis_id = kwargs.get('analysis_id')
28+
path = kwargs.get('path')
29+
basename = kwargs.get('basename')
30+
dirname = kwargs.get('dirname')
31+
nameroot = kwargs.get('nameroot')
32+
nameext = kwargs.get('nameext')
33+
checksum = kwargs.get('checksum')
34+
size = kwargs.get('size')
35+
secondary_files = kwargs.get('secondary_files')
36+
37+
return File(
38+
id=kwargs.pop('id'),
39+
analysis_id=analysis_id,
40+
path=path,
41+
basename=basename,
42+
dirname=dirname,
43+
nameroot=nameroot,
44+
nameext=nameext,
45+
checksum=checksum,
46+
size=size,
47+
secondary_files=secondary_files,
48+
)
5049

5150
@staticmethod
5251
def get_basename(path: str) -> str:
@@ -83,17 +82,3 @@ def get_size(path: str) -> int:
8382
return AnyPath(path).stat().st_size # pylint: disable=E1101
8483
except FileNotFoundError:
8584
return 0
86-
87-
def to_external(self):
88-
"""Convert to external model"""
89-
return File(
90-
id=self.id,
91-
analysis_id=self.analysis_id,
92-
path=self.path,
93-
basename=self.basename,
94-
dirname=self.dirname,
95-
nameroot=self.nameroot,
96-
nameext=self.nameext,
97-
checksum=self.checksum,
98-
size=self.size,
99-
)

scripts/20240124_migrate_output_to_file.py

+11-10
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@
77
import click
88
from databases import Database
99

10-
from models.models.file import FileInternal
10+
from models.models.file import File
1111

1212

1313
def _get_connection_string():
14-
from db.python.connect import CredentialedDatabaseConfiguration # pylint: disable=C0415
14+
from db.python.connect import \
15+
CredentialedDatabaseConfiguration # pylint: disable=C0415
1516

1617
config = CredentialedDatabaseConfiguration.dev_config()
1718

@@ -44,18 +45,18 @@ async def execute_many(connection, query, inserts):
4445
await connection.execute_many(query, inserts)
4546

4647

47-
def get_file_dict(path: str, analysis_id: int) -> Dict:
48+
def get_file_info(path: str, analysis_id: int) -> Dict:
4849
"""Get file dict"""
4950
print('Extracting file dict')
5051
return {
5152
'analysis_id': analysis_id,
5253
'path': path,
53-
'basename': FileInternal.get_basename(path),
54-
'dirname': FileInternal.get_dirname(path),
55-
'nameroot': FileInternal.get_nameroot(path),
56-
'nameext': FileInternal.get_extension(path),
57-
'checksum': FileInternal.get_checksum(path),
58-
'size': FileInternal.get_size(path),
54+
'basename': File.get_basename(path),
55+
'dirname': File.get_dirname(path),
56+
'nameroot': File.get_nameroot(path),
57+
'nameext': File.get_extension(path),
58+
'checksum': File.get_checksum(path),
59+
'size': File.get_size(path),
5960
'secondary_files': '[]',
6061
}
6162

@@ -92,7 +93,7 @@ async def prepare_files(analyses):
9293
for _, path in path_dict.items():
9394
print(path)
9495
files.append(
95-
get_file_dict(path=path, analysis_id=analysis['id'])
96+
get_file_info(path=path, analysis_id=analysis['id'])
9697
)
9798
print('Extracted and added.')
9899
return files

0 commit comments

Comments
 (0)