from datetime import datetime import os from typing import List, Optional, Tuple class NoteBaseCommand(object): date = None def file_name(self): return f"{self.date.strftime('%Y%m%d')}.md" def get_formatted_dates(self) -> Tuple[str, str]: return (self.date.strftime("%Y%m%d"), self.date.strftime("%Y-%m-%d")) def get_date(self) -> datetime: return datetime.now() def get_date_parts(self) -> Tuple[str]: return (self.date.strftime('%Y'), self.date.strftime('%m'), self.date.strftime('%d')) def write_file_heading(self, file_path): date_yyyymmdd = self.date.strftime('%Y-%m-%d') underline = '=' * len(date_yyyymmdd) with open(file_path, 'w') as file: file.write(f"{date_yyyymmdd}\n{underline}\n\n\n") def parse_file_date (self, file_name: str) -> Tuple[str, str]: year = file_name[:4] month = file_name[4:6] return year, month def get_notes_path(self, project_data) -> Optional[str]: if project_data and 'folders' in project_data: for folder in project_data['folders']: folder_path = folder['path'] if os.path.basename(folder_path).lower() == "notes": return folder_path return None