1
1
from nautilus_librarian .mods .dvc .domain .dvc_diff_parser import DvcDiffParser
2
+ from nautilus_librarian .mods .namecodes .domain .filename_filters import (
3
+ filter_media_library_files ,
4
+ )
5
+ from nautilus_librarian .mods .namecodes .domain .validate_filenames import (
6
+ is_a_library_file ,
7
+ )
2
8
9
+ # TODO: move this file to app domain. DVC mod should be generic.
3
10
4
- def extract_added_and_modified_and_renamed_files_from_dvc_diff (
11
+
12
+ def extract_all_added_and_modified_and_renamed_files_from_dvc_diff (
5
13
dvc_diff_json , only_basename = True
6
14
):
7
15
"""
@@ -16,7 +24,18 @@ def extract_added_and_modified_and_renamed_files_from_dvc_diff(
16
24
Output: ['data/000001/32/000001-32.600.2.tif']
17
25
"""
18
26
dvc_diff = DvcDiffParser .from_json (dvc_diff_json )
19
- return dvc_diff .filter (exclude_deleted = True , only_basename = only_basename )
27
+ all_files = dvc_diff .filter (exclude_deleted = True , only_basename = only_basename )
28
+ return all_files
29
+
30
+
31
+ def extract_added_and_modified_and_renamed_files_from_dvc_diff (
32
+ dvc_diff_json , only_basename = True
33
+ ):
34
+ all_files = extract_all_added_and_modified_and_renamed_files_from_dvc_diff (
35
+ dvc_diff_json , only_basename
36
+ )
37
+ files = filter_media_library_files (all_files )
38
+ return files
20
39
21
40
22
41
def extract_all_changed_files_from_dvc_diff (dvc_diff_json , only_basename = True ):
@@ -32,7 +51,9 @@ def extract_all_changed_files_from_dvc_diff(dvc_diff_json, only_basename=True):
32
51
Output: ['data/000001/32/000001-32.600.2.tif']
33
52
"""
34
53
dvc_diff = DvcDiffParser .from_json (dvc_diff_json )
35
- return dvc_diff .filter (only_basename = only_basename )
54
+ all_files = dvc_diff .filter (only_basename = only_basename )
55
+ files = filter_media_library_files (all_files )
56
+ return files
36
57
37
58
38
59
def extract_deleted_files_from_dvc_diff (dvc_diff_json , only_basename = True ):
@@ -48,13 +69,15 @@ def extract_deleted_files_from_dvc_diff(dvc_diff_json, only_basename=True):
48
69
Output: ['data/000001/32/000001-32.600.2.tif']
49
70
"""
50
71
dvc_diff = DvcDiffParser .from_json (dvc_diff_json )
51
- return dvc_diff .filter (
72
+ all_files = dvc_diff .filter (
52
73
exclude_added = True ,
53
74
exclude_modified = True ,
54
75
exclude_deleted = False ,
55
76
exclude_renamed = True ,
56
77
only_basename = only_basename ,
57
78
)
79
+ files = filter_media_library_files (all_files )
80
+ return files
58
81
59
82
60
83
def extract_added_and_modified_files_from_dvc_diff (dvc_diff_json , only_basename = True ):
@@ -70,9 +93,11 @@ def extract_added_and_modified_files_from_dvc_diff(dvc_diff_json, only_basename=
70
93
Output: ['data/000001/32/000001-32.600.2.tif']
71
94
"""
72
95
dvc_diff = DvcDiffParser .from_json (dvc_diff_json )
73
- return dvc_diff .filter (
96
+ all_files = dvc_diff .filter (
74
97
exclude_deleted = True , exclude_renamed = True , only_basename = only_basename
75
98
)
99
+ files = filter_media_library_files (all_files )
100
+ return files
76
101
77
102
78
103
def extract_modified_files_from_dvc_diff (dvc_diff_json , only_basename = True ):
@@ -88,12 +113,14 @@ def extract_modified_files_from_dvc_diff(dvc_diff_json, only_basename=True):
88
113
Output: ['data/000001/32/000001-32.600.2.tif']
89
114
"""
90
115
dvc_diff = DvcDiffParser .from_json (dvc_diff_json )
91
- return dvc_diff .filter (
116
+ all_files = dvc_diff .filter (
92
117
exclude_added = True ,
93
118
exclude_deleted = True ,
94
119
exclude_renamed = True ,
95
120
only_basename = only_basename ,
96
121
)
122
+ files = filter_media_library_files (all_files )
123
+ return files
97
124
98
125
99
126
def extract_renamed_files_from_dvc_diff (dvc_diff_json , only_basename = True ):
@@ -125,14 +152,19 @@ def extract_renamed_files_from_dvc_diff(dvc_diff_json, only_basename=True):
125
152
]
126
153
"""
127
154
dvc_diff = DvcDiffParser .from_json (dvc_diff_json )
128
- return dvc_diff .filter (
155
+ all_files = dvc_diff .filter (
129
156
exclude_added = True ,
130
157
exclude_modified = True ,
131
158
exclude_deleted = True ,
132
159
exclude_renamed = False ,
133
160
only_basename = only_basename ,
134
161
)
135
162
163
+ media_files = list (
164
+ filter (lambda filename : is_a_library_file (filename ["new" ]), all_files )
165
+ )
166
+ return media_files
167
+
136
168
137
169
def extract_list_of_media_file_changes_from_dvc_diff_output (
138
170
dvc_diff , only_basename = True
0 commit comments