my.notes.orgmode: move to my.orgmode

This commit is contained in:
Dima Gerasimov 2020-10-11 09:49:32 +01:00
parent 56c988ed61
commit 6e6a5458b8
3 changed files with 8 additions and 8 deletions

View file

@ -1,59 +0,0 @@
'''
Programmatic access and queries to org-mode files on the filesystem
'''
from glob import glob
from typing import List, Sequence, Iterator
from pathlib import Path
from ..common import PathIsh
from my.config import orgmode as config
from porg import Org
# TODO not sure about symlinks?
def _org_files_in(ppp: Path, archived: bool=False) -> Iterator[Path]:
assert ppp.exists(), ppp
# TODO reuse get_files somehow?
if ppp.is_file():
return [ppp]
yield from ppp.rglob('*.org')
if archived:
yield from ppp.rglob('*.org_archive')
def org_files(roots=config.roots, archived: bool=False) -> Iterator[Path]:
# TODO rename to 'paths'? use get_files?
for p in config.roots:
yield from _org_files_in(Path(p), archived=archived)
# TODO move to porg?
class PorgAll:
# TODO *roots?
def __init__(self, roots: Sequence[PathIsh]) -> None:
self.roots = roots
@property
def files(self):
yield from org_files(roots=self.roots)
def xpath_all(self, query: str):
return self.query_all(lambda x: x.xpath_all(query))
# TODO very confusing names...
# TODO careful... maybe use orgparse iterate instead?? ugh.
def get_all(self):
return self.xpath_all('//org')
def query_all(self, query):
for of in self.files:
org = Org.from_file(str(of))
yield from query(org)
def query():
return PorgAll(roots=config.roots)