bulum
Installation
This package may be installed using pip from GitHub, directly from PyPi (public), or from a .tar.gz. Examples are shown below.
pip install git+https://github.com/odhydrology/bulum
pip install bulum
pip install .\dist\bulum-0.0.32.tar.gz
Usage
import bulum
# returns the package version
bulum.__version__
# prints 'Hello world!' to the console
bulum.hello_world()
API documentation is available at odhydrology.github.io/bulum.
Build and Upload to PyPi
First build a distribution from an anaconda prompt in the root of your project, and then upload the dist to PyPi using Twine.
python setup.py sdist
twine upload dist\bulum-0.0.32.tar.gz
As of Nov 2023, PyPi uses an API token instead of a conventional password. You can still use Twine, but the username is "__token__", and password is the API token which is very long string starting with "pypi-".
username = __token__
password = pypi-#####################################################################################
Where can I find the API token password? Chas has it in his emails. It is also here on the network at .\ODH working files\Professional development, reading, etc\Software\ODHSoftware\bulum\PyPi_password_and_instructions.txt.
How do I make a new API token? Go to your PyPi account settings, and click on "API tokens". Then click on "Add API token", and give it a name. The token will be displayed on the next screen.
Alternatively,
uv build
uv publish --token XXXXX
Unit Tests
For development testing, first sync with extras=dev via
uv sync --extra dev
To run tests with the current or a particular version of python, from the project root run pytest via (for example):
uv run pytest
uv run
uv run tox -e py312 # to run a particular version
Before publishing, check the library is functional across all supported versions of python via (one of):
uv run tox
uv run tox -p auto # This is run in parallel
Note: if you are missing python versions, install via (e.g.)
uv python install 3.12
Legacy
WARNING: Run unit tests from an anaconda environment with compatible dependencies!
Install the nose2 test-runner framework.
pip install nose2
Then from the root project folder run the nose2 module. You can do this as a python modules, or just directly from the anaconda prompt (both examples given below). This will automatically find and run tests in any modules named "test_*".
python -m nose2
nose2
You can run specific tests by specifying the module name. Example below.
nose2 src.bulum.stats.tests
License
Refer to LICENCE.md
Metadata
Release files for bulum 0.3.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bulum-0.3.4.tar.gz | 144.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bulum-0.3.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 307.7 kB
Release files / bulum-0.3.4.tar.gz
| Download URL | bulum-0.3.4.tar.gz |
|---|---|
| Size | 144.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8c3d1245c784c956fd80e31c636711f9891c50cd18f8b19846d6b075d913f0f8
|
|
BLAKE2b-256 checksum How to use checksums |
67b0bf50eedcd25e85f0a1a89e6617ec72439399071172b87d7fdd577672b68b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 18, 2026.
Transparency logRelease files / bulum-0.3.4-py3-none-any.whl
| Download URL | bulum-0.3.4-py3-none-any.whl |
|---|---|
| Size | 163.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bdbdcb2107457c893779a1fd492aa61e1a75ca0ffc55eebb03f632ef48f25050
|
|
BLAKE2b-256 checksum How to use checksums |
939680be94a345af822f090ed881b08b1ff62a585668505524972c8c3d53974d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 18, 2026.
Transparency log