Skip to content

Commit 390fbcd

Browse files
2025 housekeeping iv (#197)
* 2025_housekeeping_IV: duplicate writes * 2025_housekeeping_IV: remove model writes * Apply suggestions from code review
1 parent 7f1ac48 commit 390fbcd

File tree

4 files changed

+23
-23
lines changed

4 files changed

+23
-23
lines changed

job_executor/adapter/local_storage/models/datastore_versions.py

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from datetime import UTC, datetime
22
from typing import Iterator
33

4-
from job_executor.adapter import local_storage
54
from job_executor.common.exceptions import (
65
BumpException,
76
ExistingDraftException,
@@ -117,7 +116,6 @@ def add(self, data_structure_update: DataStructureUpdate) -> None:
117116
self.data_structure_updates.append(data_structure_update)
118117
self._set_release_time()
119118
self._calculate_update_type()
120-
self._write_to_file()
121119

122120
def delete_draft(self, dataset_name: str) -> DataStructureUpdate:
123121
deleted_draft = next(
@@ -139,7 +137,6 @@ def delete_draft(self, dataset_name: str) -> DataStructureUpdate:
139137
]
140138
self._set_release_time()
141139
self._calculate_update_type()
142-
self._write_to_file()
143140
return deleted_draft
144141

145142
def validate_bump_manifesto(
@@ -176,12 +173,8 @@ def release_pending(self) -> tuple[list[DataStructureUpdate], str]:
176173
self.data_structure_updates = draft_updates
177174
self._set_release_time()
178175
self._calculate_update_type()
179-
self._write_to_file()
180176
return pending_updates, update_type
181177

182-
def _write_to_file(self) -> None:
183-
local_storage.write_draft_version(self)
184-
185178
def set_draft_release_status(
186179
self, dataset_name: str, new_status: str
187180
) -> None:
@@ -199,7 +192,6 @@ def set_draft_release_status(
199192
dataset_update.set_release_status(new_status)
200193
self._set_release_time()
201194
self._calculate_update_type()
202-
self._write_to_file()
203195

204196
def _set_release_time(self) -> None:
205197
self.release_time = self._get_current_epoch_seconds()
@@ -214,9 +206,6 @@ class DatastoreVersions(CamelModel, extra="forbid"):
214206
description: str
215207
versions: list[DatastoreVersion]
216208

217-
def _write_to_file(self) -> None:
218-
local_storage.write_datastore_versions(self)
219-
220209
def _get_current_epoch_seconds(self) -> int:
221210
return int(
222211
(
@@ -260,7 +249,6 @@ def add_new_release_version(
260249
data_structure_updates=released_data_structure_updates,
261250
)
262251
self.versions = [new_release_version] + self.versions
263-
self._write_to_file()
264252
return dotted_to_underscored_version(new_version_number)
265253

266254
def get_dataset_release_status(self, dataset_name: str) -> str | None:
@@ -291,7 +279,12 @@ def bump_dotted_version_number(version: str, update_type: str) -> str:
291279
return ".".join([str(version_list[0] + 1), "0", "0", "0"])
292280
elif update_type == "MINOR":
293281
return ".".join(
294-
[str(version_list[0]), str(version_list[1] + 1), "0", "0"]
282+
[
283+
str(version_list[0]),
284+
str(version_list[1] + 1),
285+
"0",
286+
"0",
287+
]
295288
)
296289
elif update_type == "PATCH":
297290
return ".".join(

job_executor/adapter/local_storage/models/metadata.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from collections.abc import Iterator
22

3-
from job_executor.adapter import local_storage
43
from job_executor.adapter.local_storage.models.datastore_versions import (
54
DatastoreVersion,
65
)
@@ -408,16 +407,12 @@ def get(self, dataset_name: str) -> Metadata | None:
408407

409408

410409
class MetadataAllDraft(MetadataAll):
411-
def _write_to_file(self) -> None:
412-
local_storage.write_metadata_all_draft(self)
413-
414410
def remove(self, dataset_name: str) -> None:
415411
self.data_structures = [
416412
metadata
417413
for metadata in self.data_structures
418414
if metadata.name != dataset_name
419415
]
420-
self._write_to_file()
421416

422417
def update_one(self, dataset_name: str, metadata: Metadata) -> None:
423418
self.data_structures = [
@@ -426,15 +421,12 @@ def update_one(self, dataset_name: str, metadata: Metadata) -> None:
426421
if metadata.name != dataset_name
427422
]
428423
self.data_structures.append(metadata)
429-
self._write_to_file()
430424

431425
def remove_all(self) -> None:
432426
self.data_structures = []
433-
self._write_to_file()
434427

435428
def add(self, metadata: Metadata) -> None:
436429
self.data_structures.append(metadata)
437-
self._write_to_file()
438430

439431
def rebuild(
440432
self,
@@ -459,4 +451,3 @@ def rebuild(
459451
)
460452
new_data_structures[draft.name] = draft_metadata
461453
self.data_structures = list(new_data_structures.values())
462-
self._write_to_file()

job_executor/domain/datastores.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ def patch_metadata(
175175
)
176176
patched_metadata = released_metadata.patch(draft_metadata)
177177
datastore.metadata_all_draft.update_one(dataset_name, patched_metadata)
178+
local_storage.write_metadata_all_draft(datastore.metadata_all_draft)
178179
datastore.draft_version.add(
179180
DataStructureUpdate(
180181
name=dataset_name,
@@ -183,6 +184,7 @@ def patch_metadata(
183184
release_status="DRAFT",
184185
)
185186
)
187+
local_storage.write_draft_version(datastore.draft_version)
186188
logger.info(f"{job_id}: completed")
187189
datastore_api.update_job_status(job_id, JobStatus.COMPLETED)
188190
logger.info(f"{job_id}: Deleting temporary backup")
@@ -230,9 +232,11 @@ def add(
230232
release_status="DRAFT",
231233
)
232234
)
235+
local_storage.write_draft_version(datastore.draft_version)
233236
draft_metadata = local_storage.get_working_dir_metadata(dataset_name)
234237
local_storage.make_dataset_dir(dataset_name)
235238
datastore.metadata_all_draft.add(draft_metadata)
239+
local_storage.write_metadata_all_draft(datastore.metadata_all_draft)
236240
local_storage.move_working_dir_parquet_to_datastore(dataset_name)
237241
logger.info(f"{job_id}: completed")
238242
datastore_api.update_job_status(job_id, JobStatus.COMPLETED)
@@ -269,6 +273,7 @@ def change(
269273
)
270274
draft_metadata = local_storage.get_working_dir_metadata(dataset_name)
271275
datastore.metadata_all_draft.update_one(dataset_name, draft_metadata)
276+
local_storage.write_metadata_all_draft(datastore.metadata_all_draft)
272277
datastore.draft_version.add(
273278
DataStructureUpdate(
274279
name=dataset_name,
@@ -277,6 +282,7 @@ def change(
277282
release_status="DRAFT",
278283
)
279284
)
285+
local_storage.write_draft_version(datastore.draft_version)
280286
local_storage.move_working_dir_parquet_to_datastore(dataset_name)
281287
logger.info(f"{job_id}: completed")
282288
datastore_api.update_job_status(job_id, JobStatus.COMPLETED)
@@ -307,6 +313,7 @@ def remove(
307313
)
308314
if dataset_is_draft and dataset_operation == "REMOVE":
309315
datastore.metadata_all_draft.remove(dataset_name)
316+
local_storage.write_metadata_all_draft(datastore.metadata_all_draft)
310317
log_message = "Dataset already in draft with operation REMOVE."
311318
logger.info(f"{job_id}: {log_message}")
312319
datastore_api.update_job_status(
@@ -321,6 +328,7 @@ def remove(
321328
datastore_api.update_job_status(job_id, JobStatus.FAILED, log_message)
322329
else:
323330
datastore.metadata_all_draft.remove(dataset_name)
331+
local_storage.write_metadata_all_draft(datastore.metadata_all_draft)
324332
datastore.draft_version.add(
325333
DataStructureUpdate(
326334
name=dataset_name,
@@ -329,6 +337,7 @@ def remove(
329337
release_status="PENDING_DELETE",
330338
)
331339
)
340+
local_storage.write_draft_version(datastore.draft_version)
332341
datastore_api.update_job_status(job_id, JobStatus.COMPLETED)
333342
logger.info(f"{job_id}: completed")
334343

@@ -372,11 +381,14 @@ def delete_draft(
372381
raise VersioningException(log_message)
373382
datastore.metadata_all_draft.remove(dataset_name)
374383
datastore.metadata_all_draft.add(released_metadata)
384+
local_storage.write_metadata_all_draft(datastore.metadata_all_draft)
375385
if dataset_operation == "ADD":
376386
datastore.metadata_all_draft.remove(dataset_name)
387+
local_storage.write_metadata_all_draft(datastore.metadata_all_draft)
377388
if dataset_operation in ["ADD", "CHANGE"]:
378389
local_storage.delete_parquet_draft(dataset_name)
379390
datastore.draft_version.delete_draft(dataset_name)
391+
local_storage.write_draft_version(datastore.draft_version)
380392
datastore_api.update_job_status(job_id, JobStatus.COMPLETED)
381393

382394

@@ -392,6 +404,7 @@ def set_draft_release_status(
392404
datastore.draft_version.set_draft_release_status(
393405
dataset_name, new_status
394406
)
407+
local_storage.write_draft_version(datastore.draft_version)
395408
datastore_api.update_job_status(job_id, JobStatus.COMPLETED)
396409
logger.info(f"{job_id}: completed")
397410
except UnnecessaryUpdateException as e:
@@ -440,12 +453,14 @@ def bump_version(
440453

441454
logger.info(f"{job_id}: Release pending operations from draft_version")
442455
release_updates, update_type = datastore.draft_version.release_pending()
456+
local_storage.write_draft_version(datastore.draft_version)
443457
# If there are no released versions update type is MAJOR
444458
if datastore.metadata_all_latest is None:
445459
update_type = "MAJOR"
446460
new_version = datastore.datastore_versions.add_new_release_version(
447461
release_updates, description, update_type
448462
)
463+
local_storage.write_datastore_versions(datastore.datastore_versions)
449464
logger.info(
450465
f"{job_id}: "
451466
f"Bumping from {datastore.latest_version_number} => {new_version}"
@@ -473,7 +488,7 @@ def bump_version(
473488
datastore.metadata_all_latest.data_structures,
474489
datastore.draft_version,
475490
)
476-
491+
local_storage.write_metadata_all_draft(datastore.metadata_all_draft)
477492
logger.info(f"{job_id}: completed BUMP")
478493
datastore_api.update_job_status(job_id, JobStatus.COMPLETED)
479494
logger.info(f"{job_id}: Archiving temporary backup")

tests/unit/model/test_datastore_version.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ def test_draft_version_delete_draft():
103103
release_time = draft_version.release_time
104104
version = draft_version.version
105105
draft_version.delete_draft("BRUTTO_INNTEKT")
106+
local_storage.write_draft_version(draft_version)
106107
draft_version_file = load_json(DRAFT_VERSION_PATH)
107108
update_names = [
108109
update["name"] for update in draft_version_file["dataStructureUpdates"]

0 commit comments

Comments
 (0)