diff --git a/README.org b/README.org index 59eb247..3522ee9 100644 --- a/README.org +++ b/README.org @@ -89,7 +89,7 @@ with_my orger/modules/polar.py --to polar.org #+begin_src bash # see https://github.com/python/mypy/issues/1645 for --namespace-packages explanation -with_my --namespace-packages my +with_my mypy --namespace-packages my #+end_src or, set up as ~mypy.ini~ file: diff --git a/my/__init__.py b/my/__init__.py index 65fafa4..0a46256 100644 --- a/my/__init__.py +++ b/my/__init__.py @@ -10,3 +10,4 @@ try: except ImportError: import warnings warnings.warn("my_configuration package isn't found! That might result in issues") + paths = None # type: ignore diff --git a/my/common.py b/my/common.py index 573533b..ad2eb20 100644 --- a/my/common.py +++ b/my/common.py @@ -90,3 +90,6 @@ def setup_logger(logger, level=None, format=None, datefmt=None): ) finally: logging.root = old_root + + +PathIsh = Union[Path, str] diff --git a/my/instapaper.py b/my/instapaper.py index c83c823..d36b025 100644 --- a/my/instapaper.py +++ b/my/instapaper.py @@ -6,11 +6,25 @@ from collections import OrderedDict import pytz -from . import paths -from .common import group_by_key +from .common import group_by_key, PathIsh -def get_files(): - return list(sorted(Path(paths.instapexport.export_dir).glob('*.json'))) + +_export_dir: Optional[Path] = None + + +def configure(*, export_dir: Optional[PathIsh]=None) -> None: + if export_dir is not None: + global _export_dir + _export_dir = Path(export_dir) + + +def _get_files(): + export_dir = _export_dir + if export_dir is None: + # fallback to my_configuration + from . import paths + export_dir = paths.instapexport.export_dir + return list(sorted(Path(export_dir).glob('*.json'))) Bid = str @@ -60,7 +74,7 @@ def get_stuff(limit=0) -> Tuple[BDict, HDict]: all_bks: BDict = OrderedDict() all_hls: HDict = OrderedDict() # TODO can restore url by bookmark id - for f in get_files()[-limit:]: + for f in _get_files()[-limit:]: with f.open('r') as fo: j = json.load(fo) for b in sorted(j['bookmarks'], key=dkey('time')):