add some more type hints. add methods to open master or full pdf file

This commit is contained in:
Maximilian Keßler 2021-09-17 12:35:12 +02:00
parent c1e2fe5500
commit 2f646b0780
2 changed files with 25 additions and 9 deletions

View file

@ -2,6 +2,7 @@
import warnings
import yaml
from typing import List
from config import ROOT, CURRENT_COURSE_ROOT, CURRENT_COURSE_SYMLINK, CURRENT_COURSE_WATCH_FILE, COURSE_IGNORE_FILE, \
COURSE_INFO_FILE_NAME, FALLBACK_COURSE_INFO_FILE
@ -31,7 +32,7 @@ class Course:
self._notes = None
@property
def notes(self):
def notes(self) -> Notes:
if not self._notes:
self._notes = Notes(self)
return self._notes
@ -42,7 +43,7 @@ class Course:
return self.path == other.path
def ignored_courses():
def ignored_courses() -> List[Course]:
if (ROOT / COURSE_IGNORE_FILE).is_file():
with open(ROOT / COURSE_IGNORE_FILE) as ignore:
lines = ignore.readlines()
@ -53,7 +54,7 @@ def ignored_courses():
return []
def read_files():
def read_files() -> List[Course]:
course_directories = [x for x in ROOT.iterdir() if x.is_dir() and x not in ignored_courses()]
_courses = [Course(path) for path in course_directories]
return sorted(_courses, key=lambda c: c.name)
@ -64,7 +65,7 @@ class Courses(list):
list.__init__(self, read_files())
@property
def current(self):
def current(self) -> Course:
return Course(CURRENT_COURSE_ROOT.resolve())
@current.setter

View file

@ -1,6 +1,7 @@
#!/usr/bin/python3
import subprocess
from pathlib import Path
from typing import Dict
from config import LECTURE_START_MARKER, LECTURE_END_MARKER, DEFAULT_IMPORT_INDENTATION
from edit import edit
@ -10,12 +11,12 @@ from parse_counters import parse_counters, dict2setcounters
class Notes:
def __init__(self, course):
self.course = course
self.info = course.info['notes']
self.root = course.path / self.info['path']
self.course = course # A course
self.info: Dict = course.info['notes']
self.root: Path = course.path / self.info['path']
self.root.mkdir(parents=True, exist_ok=True)
self.master_file = self.root / self.info['master_file']
self.full_file = self.root / self.info['full_file']
self.master_file: Path = self.root / self.info['master_file']
self.full_file: Path = self.root / self.info['full_file']
self._lectures = None
@staticmethod
@ -80,6 +81,20 @@ class Notes:
def edit_full(self):
edit(self.full_file)
def open_master(self):
result = subprocess.run(
['zathura', str(self.master_file.with_suffix('.pdf'))],
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL
)
def open_full(self):
result = subprocess.run(
['zathura', str(self.full_file.with_suffix('.pdf'))],
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL
)
def compile_master(self):
result = subprocess.run(
['latexmk', '-f', '-interaction=nonstopmode', str(self.master_file)],