-
Notifications
You must be signed in to change notification settings - Fork 2
Managing mepo via rye
We use rye to manage mepo
.
curl -sSf https://rye.astral.sh/get | bash
This would install the latest Python that is available at the time. For more details, see https://rye.astral.sh/guide/installation
git clone git@github.com:GEOS-ESM/mepo.git
cd mepo
rye show
This reads the project's pyproject.toml
and would output something like
project: mepo
path: /path/to/mepo
venv: /path/to/mepo/.venv
target python: 3.9
venv python: cpython@3.9.19
virtual: false
configured sources:
default (index: https://pypi.org/simple/)
rye sync
This would download the targeted Python version, create the virtualenv .venv
, install dependencies (for development), and install the executable mepo
in .venv/bin
Downloading cpython@3.9.19 <--- Since we are targeting Python 3.9
Checking checksum
Unpacking
Downloaded cpython@3.9.19
Initializing new virtualenv in /path/to/mepo/.venv
Python version: cpython@3.9.19
Generating production lockfile: /path/to/mepo/requirements.lock
Generating dev lockfile: /path/to/mepo/requirements-dev.lock
Installing dependencies
Built file:///path/to/mepo Built 1 editable in 728ms
Installed 29 packages in 74ms
+ astroid==3.2.1
+ black==24.4.2
+ cfgv==3.4.0
+ click==8.1.7
+ colorama==0.4.6
+ dill==0.3.8
+ distlib==0.3.8
+ filelock==3.14.0
+ flake8==7.0.0
+ identify==2.5.36
+ isort==5.13.2
+ mccabe==0.7.0
+ mdutils==1.6.0
+ mepo==2.0.0 (from file:///path/to/mepo)
+ mypy-extensions==1.0.0
+ nodeenv==1.8.0
+ packaging==24.0
+ pathspec==0.12.1
+ platformdirs==4.2.2
+ pre-commit==3.7.1
+ pycodestyle==2.11.1
+ pyflakes==3.2.0
+ pylint==3.2.0
+ pyyaml==6.0.1
+ setuptools==70.0.0
+ tomli==2.0.1
+ tomlkit==0.12.5
+ typing-extensions==4.11.0
+ virtualenv==20.26.2
Done!
Note
Rye downloads and installs Python installations itself. However, one can use an existing Python installation, but that needs to be registered with rye
first (before running rye sync
), via
rye toolchain register <PATH>
We are now ready to activate our virtualenv and start developing
source .venv/bin/activate
Update version number in pyproject.toml
and run
rye build
This creates mepo-<version>-py3-none-any.whl
and mepo-<version>.tar.gz
in the dist
directory
building mepo
* Creating virtualenv isolated environment...
* Installing packages in isolated environment... (hatchling)
* Getting build dependencies for sdist...
* Building sdist...
* Building wheel from sdist
* Creating virtualenv isolated environment...
* Installing packages in isolated environment... (hatchling)
* Getting build dependencies for wheel...
* Building wheel...
Successfully built mepo-<version>.tar.gz and mepo-<version>-py3-none-any.whl
rye publish
Uploading distributions to https://upload.pypi.org/legacy/
Uploading mepo-<version>-py3-none-any.whl
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.1/62.1 kB • 00:00 • 120.2 MB/s
Uploading mepo-<version>.tar.gz
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 55.8/55.8 kB • 00:00 • 120.5 MB/s
View at:
https://pypi.org/project/mepo/<version>/