Fix DTO and create trainings json dumper
This commit is contained in:
parent
e580ab7b7e
commit
d2ea2a39e6
2 changed files with 45 additions and 1 deletions
|
|
@ -22,4 +22,4 @@ class TrainingDTO(BaseModel):
|
|||
id: Optional[int] = None
|
||||
date: date
|
||||
trainer: Optional[str] = None
|
||||
exercises: Optional[List[ApproachDTO]] = None
|
||||
exercises: Optional[List[ExerciseDTO]] = None
|
||||
|
|
|
|||
44
dump_trainings.py
Normal file
44
dump_trainings.py
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
import json
|
||||
from typing import List
|
||||
from app.core.parsers.apple import parse_training_data as adp
|
||||
from app.core.parsers.obsidian import parse_training_data as odp
|
||||
from app.core.dto.training import TrainingDTO
|
||||
|
||||
|
||||
def dump_trainings_to_json(trainings: List[TrainingDTO], filename="trainings.json"):
|
||||
"""Dump training data to JSON file using DTO format."""
|
||||
trainings_data = []
|
||||
|
||||
for training in trainings:
|
||||
training_dict = training.model_dump()
|
||||
trainings_data.append(training_dict)
|
||||
|
||||
with open(filename, 'w', encoding='utf-8') as f:
|
||||
json.dump(trainings_data, f, indent=2, ensure_ascii=False, default=str)
|
||||
|
||||
print(f"Trainings dumped to {filename}")
|
||||
|
||||
|
||||
def main():
|
||||
# Parse Obsidian notes
|
||||
obsidian_trainings = odp()
|
||||
for training in obsidian_trainings:
|
||||
for exercise in training.exercises:
|
||||
print(exercise.name)
|
||||
|
||||
# Parse Apple notes
|
||||
apple_trainings = adp()
|
||||
|
||||
# Combine trainings
|
||||
all_trainings = obsidian_trainings + apple_trainings
|
||||
|
||||
print(f"Obsidian trainings: {len(obsidian_trainings)}")
|
||||
print(f"Apple trainings: {len(apple_trainings)}")
|
||||
print(f"Total trainings: {len(all_trainings)}")
|
||||
|
||||
# Dump to JSON
|
||||
dump_trainings_to_json(all_trainings)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
Reference in a new issue