HPI/doc/SETUP.org
2020-04-12 13:42:03 +01:00

3.8 KiB

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!

Setting up

[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.

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.

You can see example in mycfg_template. You can copy it somewhere else and modify to your needs.

Some explanations:

d mycfg_template/
d mycfg_template/mycfg
f mycfg_template/mycfg/__init__.py
  ---
  class paths:
      """
      Feel free to remove this if you don't need it/add your own custom settings and use them
      """
      class hypothesis:
          export_path = '/tmp/my_demo/backups/hypothesis'
  ---
d mycfg_template/mycfg/repos
l mycfg_template/mycfg/repos/hypexport -> /tmp/my_demo/hypothesis_repo

As you can see, generally you specify fixed paths (e.g. to backup directory) in __init__.py. Feel free to add other files as well though to organize better, it's a real python package after all!

Some things (e.g. links to external packages like hypexport) are specified as normal symlinks in repos directory. That way you get easy imports (e.g. import mycfg.repos.hypexport.model) and proper IDE integration.

with_my helper script

Next, point with_my script to your private configuration:

cp with_my.example with_my
vim with_my # specify path to your mycfg (if you want to use it)

It's also convenient to put with_my somewhere in your system path so you can run it from anywhere.

Dependencies

Dependencies are different for specific modules you're planning to use, so it's hard to specify. Generally you can just try using the module and then install missing packages via pip install --user, should be fairly straightforward.

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.

Kobo reader

Kobo provider allows you access the books you've read along with the highlights and notes. It uses exports provided by 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

      class kobo:
          export_dir = 'path/to/kobo/exports'

After that you should be able to use it:

  with_my python3 -c 'import my.books.kobo as kobo; print(kobo.get_highlights())'

Orger

You can use orger to get Org-mode representations of your data.

Some examples:

Polar

This will convert Polar highlights into org-mode:

with_my orger/modules/polar.py --to polar.org

demo.py

read/run demo.py for a full demonstration of setting up Hypothesis (it uses public annotations data from Github)