diff --git a/my/hypothesis.py b/my/hypothesis.py index 4043d9e..cd5dfa6 100644 --- a/my/hypothesis.py +++ b/my/hypothesis.py @@ -2,7 +2,7 @@ from typing import Dict, List, NamedTuple, Optional, Sequence, Any from pathlib import Path from datetime import datetime -from .common import group_by_key, the, cproperty, PathIsh, import_file +from .common import group_by_key, the, cproperty, PathIsh try: @@ -33,6 +33,7 @@ class Config(NamedTuple): def hypexport(self): hp = self.hypexport_path_ if hp is not None: + from .common import import_file return import_file(Path(hp) / 'model.py', 'hypexport.model') else: global Model diff --git a/my/instapaper.py b/my/instapaper.py index bf70ba9..21b3dfa 100644 --- a/my/instapaper.py +++ b/my/instapaper.py @@ -30,8 +30,7 @@ def _get_files(): export_path = _export_path if export_path is None: # fallback to mycfg - # TODO import mycfg? - from . import paths + from mycfg import paths export_path = paths.instapaper.export_path return list(sorted(Path(export_path).glob('*.json'))) diff --git a/my/pinboard.py b/my/pinboard.py index 6f6e737..0a0e2f6 100644 --- a/my/pinboard.py +++ b/my/pinboard.py @@ -1,20 +1,16 @@ from functools import lru_cache from pathlib import Path -from . import paths - -@lru_cache() -def pinbexport(): - from .common import import_file - return import_file(Path(paths.pinbexport.repo) / 'model.py') +from mycfg.repos.pinbexport import model as pinbexport +from mycfg import paths # TODO would be nice to make interfaces available for mypy... -Bookmark = pinbexport().Bookmark +Bookmark = pinbexport.Bookmark def get_model(): export_dir = Path(paths.pinbexport.export_dir) sources = list(sorted(export_dir.glob('*.json'))) - model = pinbexport().Model(sources) + model = pinbexport.Model(sources) return model diff --git a/my/reading/goodreads.py b/my/reading/goodreads.py index c0297f2..77b50e0 100755 --- a/my/reading/goodreads.py +++ b/my/reading/goodreads.py @@ -4,17 +4,13 @@ from typing import NamedTuple from datetime import datetime import pytz -from .. import paths - -@lru_cache() -def goodrexport(): - from ..common import import_file - return import_file(paths.goodrexport.repo / 'model.py') +from mycfg.repos.goodrexport import model as goodrexport +from mycfg import paths def get_model(): sources = list(sorted(paths.goodrexport.export_dir.glob('*.xml'))) - model = goodrexport().Model(sources) + model = goodrexport.Model(sources) return model diff --git a/my/stackexchange.py b/my/stackexchange.py index c68fc1a..267c208 100644 --- a/my/stackexchange.py +++ b/my/stackexchange.py @@ -1,14 +1,7 @@ -from functools import lru_cache - -from . import paths - -@lru_cache() -def stexport(): - from .common import import_file - stexport_model = import_file(paths.stexport.repo / 'model.py') - return stexport_model +import mycfg.repos.stexport.model as stexport +from mycfg import paths def get_data(): sources = [max(paths.stexport.export_dir.glob('*.json'))] - return stexport().Model(sources).site_model('stackoverflow') + return stexport.Model(sources).site_model('stackoverflow')