From 38186232fe5320a2587f3c6a8ecbc689c5e3ee01 Mon Sep 17 00:00:00 2001 From: pro100ton Date: Mon, 13 Jan 2025 12:35:54 +0300 Subject: [PATCH] Completed remapper for obsidian training exercises --- main.py | 20 +++++++++++++++++++- obsidian/mapper.py | 2 +- obsidian/notes_parser.py | 12 +++++++++++- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index 4813a10..97d3b4a 100644 --- a/main.py +++ b/main.py @@ -5,7 +5,7 @@ from typing import Dict, List from sqlalchemy import Table, create_engine, text, insert from dotenv import load_dotenv from dbapi.tables import metadata_obj, training, exercise, approach -from obsidian.notes_parser import parse_training_data +from obsidian.notes_parser import parse_training_data, remap_unique_exercises from obsidian.py_models import Training @@ -85,12 +85,30 @@ trainings: List[Training] = parse_training_data() unique_exercise_names = defaultdict(int) +counter = 0 for train in trainings: if not train: continue if train.exercises: for exr in train.exercises: + counter += 1 unique_exercise_names[exr.name] += 1 pprint(unique_exercise_names) +print(counter) +parsed_trainings = remap_unique_exercises(trainings) + +print("\n" * 3) + +unique_exercise_parsed_names = defaultdict(int) +p_counter = 0 +for train in parsed_trainings: + if not train: + continue + if train.exercises: + for exr in train.exercises: + p_counter += 1 + unique_exercise_parsed_names[exr.name] += 1 +pprint(unique_exercise_parsed_names) +print(p_counter) diff --git a/obsidian/mapper.py b/obsidian/mapper.py index 0af515d..49b5c90 100644 --- a/obsidian/mapper.py +++ b/obsidian/mapper.py @@ -43,7 +43,7 @@ list_of_unique_names = [ ] -default_mpping = { +obsidian_unique_exercies_mapping = { "Баттерфляй": "Баттерфляй", "Болгарские приседания на одну ногу": "Болгарские сплит-приседения", "Брусья": "Брусья", diff --git a/obsidian/notes_parser.py b/obsidian/notes_parser.py index 69380dd..4c8a2f1 100644 --- a/obsidian/notes_parser.py +++ b/obsidian/notes_parser.py @@ -3,6 +3,7 @@ import re from pprint import pprint from typing import List, Tuple from datetime import datetime +from obsidian.mapper import obsidian_unique_exercies_mapping from obsidian.py_models import Approach, Exercise, Training @@ -108,4 +109,13 @@ def parse_training_data(): pass return trains -pprint(parse_training_data()[1:]) + +def remap_unique_exercises(obsidian_trainings: List[Training]) -> List[Training]: + for obsidian_training in obsidian_trainings: + if not obsidian_training: + continue + for obsidian_exercise in obsidian_training.exercises: + obsidian_exercise.name = obsidian_unique_exercies_mapping.get( + obsidian_exercise.name + ) + return obsidian_trainings