Skip to main content

Physical calculation package for the mechanics and geometry of power lines

Project description

Mechaphlowers

PyPI Latest Release MPL-2.0 License versions Documentation Actions Status

Quality Gate Status Coverage

Numpy pyodide lite-badge

Physical calculation package for the mechanics and geometry of overhead power lines.

User

Environment

Mechaphlowers is using uv for project, python version and dependencies management. You can use uv which is very similar to pip. You can also use other tools compatible with pip.

See uv documentation to install it.

You need a compatible python version. You may have to install it manually (e.g. with pyenv). Then you may create a virtualenv, install dependencies and activate the env:

    uv venv --python 3.11
    source .venv/bin/activate

!!! Tip

You would probably use an editor, make sure you configure it to use the same virtual environment you created (it will probably autodetect it) so that you can get autocompletion and inline errors. Here some links for [VSCode](https://code.visualstudio.com/docs/python/environments#_select-and-activate-an-environment) and [PyCharm](https://www.jetbrains.com/help/pycharm/creating-virtual-environment.html).  

Set up mechaphlowers

Install the package.

    uv pip install mechaphlowers

Use it ! You can report to the user guide section or go to our tutorials notebook jupyter server to try it.

    import mechaphlowers as mph
    print(mph.__version__)

Developers

Environment

You need to install the project with all the development and documentation packages:

    uv venv --python 3.11
    source .venv/bin/activate
    uv sync --group all

Checks and rules

Format and linter

Once dev dependencies are installed, you may format and lint python files like this:

    uv run ruff format
    uv run ruff check

Use following command if you only want to check if files are correctly formatted:

    uv run ruff format --check

You may automatically fix some linting errors:

    uv run ruff check --fix

Tip: if using VSCode/VSCodium, you may also use Ruff extension.

How to check typing

In order to check type hints consistency, you may run:

    uv run mypy .

How to test

    uv run coverage run -m pytest
    uv run coverage report

Run all checks in one

A Makefile provide a fast access to those different checks.
You may run every check mentioned above with just one command:

    make all

Requirements

Lock file

The generation of the lock file is important.
Do not forget to update it with:

    uv lock
    uv lock --check # to check if changes have been done

Installation from lock file only

When syncing, uv can update the lock file. But it can be an unwanted behavior. In this case use:

    uv sync --frozen --group all

Pip compatibility

Requirements can be extracted with pip compile. See here for more information.

Build the library

Framework

We are using the pdm backend to build the package.

Version

The versioning is linked with the tag. To build a local version, you can add a tag, build version and then delete tag.
The tag is expected to have the following form: v0.1.2 and support alpha and beta version v0.1.2a0.

    git tag  v0.2.0b1
    uv build # --> dist/mechaphlowers-0.2.0b1-...whl
    git tag -d v0.2.0b1

The variable PACKAGE_BUILD_TEST can be used to add the .devXversion.

    git tag  v0.2.0b1
    export PACKAGE_BUILD_TEST=3
    uv build # --> dist/mechaphlowers-0.2.0b1.dev3-...whl
    git tag -d v0.2.0b1

Build

In order to build the library (wheel and tar.gz archive):

    uv build

You can check the build option to control the output folder or the desired output file types.

How to serve the documentation

You can build and serve the documentation using or make docs:

    uv run mkdocs serve -a localhost:8001

Testing in a browser via pyodide

You may test your pyodide package using pyodide console in a browser.

Download pyodide

Download a version of Pyodide from the releases page, extract it and serve it with a web server:

wget https://github.com/pyodide/pyodide/releases/download/0.25.0/pyodide-0.25.0.tar.bz2
tar -xvf pyodide-0.25.0.tar.bz2
cd pyodide
python3 -m http.server

Pyodide console is then available at http://localhost:8000/console.html

Test in pyodide console

Copy needed wheels to pyodide folder. Then, in pyodide console:

import micropip
# load your wheel
await micropip.install("http://localhost:8000/<wheel_name>.whl", keep_going=True)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mechaphlowers-0.4.0.tar.gz (92.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mechaphlowers-0.4.0-py3-none-any.whl (113.5 kB view details)

Uploaded Python 3

File details

Details for the file mechaphlowers-0.4.0.tar.gz.

File metadata

  • Download URL: mechaphlowers-0.4.0.tar.gz
  • Upload date:
  • Size: 92.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mechaphlowers-0.4.0.tar.gz
Algorithm Hash digest
SHA256 f8e92b0529cdeae72d776d753dcbbfddef4fdfc9dc725b33795d12a9b4b3812e
MD5 4fb40404fe193a3749836a52f36fcc90
BLAKE2b-256 b7a2dafe831559ff2cef05d7ad656e34b44df9c52c83122fc6f87ac13c73d36c

See more details on using hashes here.

Provenance

The following attestation bundles were made for mechaphlowers-0.4.0.tar.gz:

Publisher: publish.yml on phlowers/mechaphlowers

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mechaphlowers-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: mechaphlowers-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 113.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mechaphlowers-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5a8ceadbdad37eb6aa17325f324c5b5fc101ee2aab061e40140313cfe4380b8a
MD5 0bf18dc1f67a5d4b1d12b0bdf2edde65
BLAKE2b-256 c979695849d43ebc55166ec7d933bdf0f009fae4dfb4e8e06a546bc46ce79ec9

See more details on using hashes here.

Provenance

The following attestation bundles were made for mechaphlowers-0.4.0-py3-none-any.whl:

Publisher: publish.yml on phlowers/mechaphlowers

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page