datapartnership / red-sea-monitoring

Data and analytics to support monitoring of changes in Red Sea maritime traffic
http://datapartnership.org/red-sea-monitoring/
Mozilla Public License 2.0
0 stars 0 forks source link

Update Local Package Path to Editable Mode in Jupyter Notebook #20

Open g4brielvs opened 3 months ago

g4brielvs commented 3 months ago

In Jupyter notebooks, for example in this notebook, replace the import from a path with a Python package installed via pip for better maintainability and development.

Steps to Implement:

  1. Create a Python package red-sea-monitoring (already created).
  2. Install the Python package via pip.
  3. Replace the import from path with the Python package import in the code.

For example

In the repository directory, install the package in editable mode with dependencies:

pip install -e .

and, in the notebook,

from red_sea_monitoring.utils import *

When you install a package, it manages dependencies for you. This ensures that the required dependencies are correctly installed and compatible with the package you are installing. Installing a package makes your code more portable. You can share your code with others, and they can easily install the required packages using a package manager. For end-users or colleagues who are not familiar with the project, installing a package is simpler than manually managing paths.

The package can be installed/distributed in a standard way:

pip install git+https://github.com/datapartnership/red-sea-monitoring.git
>>> import red_sea_monitoring
>>> red_sea_monitoring.__version__
'0.1.dev56+gba2d2ff'
andresfchamorro commented 2 months ago

Thanks, I will adjust the notebooks shortly. Can we delete src/red-sea-monitoring? I found it confusing to find two folders @g4brielvs

g4brielvs commented 2 months ago

Thanks, I will adjust the notebooks shortly. Can we delete src/red-sea-monitoring? I found it confusing to find two folders @g4brielvs

@andresfchamorro Thanks! When rereading this issue, I realized my suggestion might not have come across as a suggestion. Apologies for that. In any case, I would still encourage packaging adequately, which will make the code more portable, reproducible and maintainable, but I am curious about your thoughts before any decisions :)

And absolutely. src-red-sea-monitoring is not valid and it was introduced by https://github.com/datapartnership/red-sea-monitoring/pull/23. We should move it and I'll open a PR for it.