docs: minor updates
This commit is contained in:
parent
03773a7b2c
commit
b7662378a2
4 changed files with 63 additions and 47 deletions
|
@ -8,7 +8,6 @@
|
|||
- [[#running-tests][Running tests]]
|
||||
- [[#ide-setup][IDE setup]]
|
||||
- [[#linting][Linting]]
|
||||
- [[#modifyingadding-modules][Modifying/adding modules]]
|
||||
:END:
|
||||
|
||||
* Running tests
|
||||
|
@ -18,9 +17,9 @@ and [[file:../scripts/ci/run]] for the up to date info on the specifics.
|
|||
* IDE setup
|
||||
To benefit from type hinting, make sure =my.config= is in your package search path.
|
||||
|
||||
In runtime, ~my.config~ is imported from the user config directory dynamically.
|
||||
In runtime, ~my.config~ is imported from the user config directory [[file:../my/core/init.py][dynamically]].
|
||||
|
||||
However, Pycharm/Emacs/whatever you use won't be able to figure that out, so you'd need to adjust your IDE configuration.
|
||||
However, Pycharm/Emacs or whatever IDE you are using won't be able to figure that out, so you'd need to adjust your IDE configuration.
|
||||
|
||||
- Pycharm: basically, follow the instructions [[https://stackoverflow.com/a/55278260/706389][here]]
|
||||
|
||||
|
@ -30,33 +29,3 @@ However, Pycharm/Emacs/whatever you use won't be able to figure that out, so you
|
|||
You should be able to use [[file:../lint]] script to run mypy checks.
|
||||
|
||||
[[file:../mypy.ini]] points at =~/.config/my= by default.
|
||||
|
||||
|
||||
* Modifying/adding modules
|
||||
|
||||
The easiest is just to run HPI via [[file:SETUP.org::#use-without-installing][with_my]] wrapper or with an editable PIP install.
|
||||
That way your changes will be reflected immediately, and you will be able to quickly iterate/fix bugs/add new methods.
|
||||
|
||||
The "proper way" (unless you want to contribute to the upstream) is to create a separate hierarchy and add your module to =PYTHONPATH=.
|
||||
|
||||
For example, if you want to add an =awesomedatasource=, it could be:
|
||||
|
||||
: custom_module
|
||||
: └── my
|
||||
: └──awesomedatasource.py
|
||||
|
||||
You can use all existing HPI modules in =awesomedatasource.py=, for example, =my.config=, or everything from =my.core=.
|
||||
|
||||
But also, you can use all the previously defined HPI modules too. This could be useful to *shadow/override* existing HPI module:
|
||||
|
||||
: custom_reddit_overlay
|
||||
: └── my
|
||||
: └──reddit.py
|
||||
|
||||
Now if you add =my_reddit_overlay= *in the front* of ~PYTHONPATH~, all the downstream scripts using =my.reddit= will load it from =custom_reddit_overlay= instead.
|
||||
|
||||
This could be useful to monkey patch some behaviours, or dynamically add some extra data sources -- anything that comes to your mind.
|
||||
|
||||
I'll put up a better guide on this, in the meantime see [[https://packaging.python.org/guides/packaging-namespace-packages]["namespace packages"]] for more info.
|
||||
|
||||
# TODO add example with overriding 'all'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue