updates to the setup guide

This commit is contained in:
Dima Gerasimov 2020-04-12 13:38:30 +01:00
parent 01b52fcca2
commit f766c8abe5
4 changed files with 40 additions and 23 deletions

View file

@ -6,3 +6,8 @@ However, Pycharm/Emacs/whatever you use won't be able to figure that out, so you
- Pycharm: basically, follow the instruction [[https://stackoverflow.com/a/55278260/706389][here]] - Pycharm: basically, follow the instruction [[https://stackoverflow.com/a/55278260/706389][here]]
i.e. create a new interpreter configuration (e.g. name it "Python 3.7 (for HPI)"), and add =~/.config/my=. i.e. create a new interpreter configuration (e.g. name it "Python 3.7 (for HPI)"), and add =~/.config/my=.
* Linting
You should be able to use ~./lint~ script to run mypy checks.
~mypy.ini~ file points at =~/.config/my= by default.

View file

@ -1,10 +1,9 @@
# [[https://circleci.com/gh/karlicoss/my/tree/master][https://circleci.com/gh/karlicoss/my/tree/master.svg?style=svg]] # TODO FAQ??
Please don't be shy and raise issues if something in the instructions is unclear. Please don't be shy and raise issues if something in the instructions is unclear.
You'd be really helping me, I want to make the setup as straightforward as possible! You'd be really helping me, I want to make the setup as straightforward as possible!
* Setting up * Setting up
** =mycfg= package for private paths/repositories (optional) ** [optional] private configuration (=my.config=)
If you're not planning to use private configuration (some modules don't need it) you can skip straight to the next step. Still, I'd recommend you to read anyway. If you're not planning to use private configuration (some modules don't need it) you can skip straight to the next step. Still, I'd recommend you to read anyway.
First you need to tell the package where to look for your data and external repositories, which is done though a separate (private) package named ~mycfg~. First you need to tell the package where to look for your data and external repositories, which is done though a separate (private) package named ~mycfg~.
@ -51,6 +50,9 @@ That way you get easy imports (e.g. =import mycfg.repos.hypexport.model=) and pr
# TODO link to post about exports? # TODO link to post about exports?
** =with_my= helper script ** =with_my= helper script
# TODO FIXME dependencies?
# At the moment the package is not uploaded to PyPi yet, so can't
# TODO update this section
Next, point =with_my= script to your private configuration: Next, point =with_my= script to your private configuration:
#+begin_src bash #+begin_src bash
@ -67,30 +69,35 @@ Generally you can just try using the module and then install missing packages vi
* Usage examples * Usage examples
If you run your script with ~with_my~ wrapper, you'd have ~my~ in ~PYTHONPATH~ which gives you access to your data from within the script. If you run your script with ~with_my~ wrapper, you'd have ~my~ in ~PYTHONPATH~ which gives you access to your data from within the script.
- accessing Kobo books ** Kobo reader
Kobo provider allows you access the books you've read along with the highlights and notes.
It uses exports provided by [[https://github.com/karlicoss/kobuddy][kobuddy]] package.
- prepare the config
1. Point =ln -sfT /path/to/kobuddy ~/.config/my/config/repos/kobuddy=
2. Add kobo config to =~/.config/my/config/__init__.py=
#+begin_src python
class kobo:
export_dir = 'path/to/kobo/exports'
#+end_src
After that you should be able to use it:
#+begin_src bash #+begin_src bash
with_my python3 -c 'import my.books.kobo as kobo; print(kobo.get_todos())' with_my python3 -c 'import my.books.kobo as kobo; print(kobo.get_highlights())'
#+end_src #+end_src
- if you have [[https://github.com/karlicoss/orger][orger]] installed, you can use its modules to get Org-mode representations of your data. For instance, rendering [[https://github.com/burtonator/polar-bookshelf][Polar]] highlights as org-mode file as easy as: ** Orger
You can use [[https://github.com/karlicoss/orger][orger]] to get Org-mode representations of your data.
Some examples:
*** [[https://github.com/burtonator/polar-bookshelf][Polar]]
This will convert Polar highlights into org-mode:
#+begin_src bash #+begin_src bash
with_my orger/modules/polar.py --to polar.org with_my orger/modules/polar.py --to polar.org
#+end_src #+end_src
- read/run [[./demo.py][demo.py]] for a full demonstration of setting up Hypothesis (it uses public annotations data from Github) ** =demo.py=
read/run [[../demo.py][demo.py]] for a full demonstration of setting up Hypothesis (it uses public annotations data from Github)
* Linting
#+begin_src bash
# see https://github.com/python/mypy/issues/1645 for --namespace-packages explanation
with_my mypy --namespace-packages my
#+end_src
or, set up as ~mypy.ini~ file:
#+begin_src
[mypy]
mypy_path=/path/to/mycfg_dir
#+end_src

View file

@ -11,6 +11,7 @@ from typing import List, Dict, Iterator, NamedTuple, Sequence, Optional
import json import json
import pytz import pytz
# TODO declare DEPENDS = [pytz??]
from ..common import setup_logger from ..common import setup_logger
@ -18,10 +19,13 @@ from ..error import ResT, echain, unwrap, sort_res_by
from ..kython.konsume import wrap, zoom, ignore from ..kython.konsume import wrap, zoom, ignore
# TOFO FIXME appdirs??
_POLAR_DIR = Path('~/.polar') _POLAR_DIR = Path('~/.polar')
# TODO FIXME lazylogger??
def get_logger(): def get_logger():
# TODO __package__?
return logging.getLogger('my.reading.polar') return logging.getLogger('my.reading.polar')

View file

@ -6,7 +6,7 @@ def main():
name='my', name='my',
version='0.5', version='0.5',
description='A Python interface to my life', description='A Python interface to my life',
url='https://github.com/karlicoss/my', url='https://github.com/karlicoss/HPI',
author='Dmitrii Gerasimov', author='Dmitrii Gerasimov',
author_email='karlicoss@gmail.com', author_email='karlicoss@gmail.com',
@ -42,5 +42,6 @@ def main():
}, },
) )
if __name__ == '__main__': if __name__ == '__main__':
main() main()