updates to the setup guide
This commit is contained in:
parent
01b52fcca2
commit
f766c8abe5
4 changed files with 40 additions and 23 deletions
|
@ -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.
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -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')
|
||||||
|
|
||||||
|
|
||||||
|
|
3
setup.py
3
setup.py
|
@ -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()
|
||||||
|
|
Loading…
Add table
Reference in a new issue