-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add IDE bindings for epidata development #1004
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
one small nit, but otherwise lgtm 🚀
good work tracking this all the way to the root issue in setuptools
!
Co-authored-by: Dmitry Shemetov <dshemetov@ucdavis.edu>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚢 🚢 🚢
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice work! and documentation updates too, well done!
very nice! |
Prerequisites:
dev
branchdev
Summary
Previously, most IDE features - autocompletion, linting, functioning imports - did not work in epidata due to the codebase's nonstandard structure (pulling code from multiple repos, then reordering them in the Docker container, so the compile-time structure does not match the imports at runtime).
This PR adds a solution that makes IDE development a lot less painful. The idea behind it is to use an "editable install", which is a minimalistic pip package that symlinks to a Python project such that any changes to the package's files are reflected in the dev environment and vice versa. To that end, it
adds
pyproject.toml
andsetup.cfg
files that define how our local package is laid outadds some code to the
install.sh
setup script that symlinks those files todriver/repos
adds instructions on using these to the
README
Caveats:
pip install -e . --config-settings editable_mode=strict
needs to be re-ran when any Python files are added or deleted locally. (But edits to existing files will be reflected in the editable install.)pyproject.toml
need to be updated whenever we add new packages and subfolders. This is due to the following limitation: