Skip to main content

A package that implements a data model tailored for AI and ML in the context of physics problems

Project description

Testing CI Status Documentation Status Coverage Last Commit
Package Conda Latest Release Conda Downloads PyPI Latest Release PyPI Downloads Platform Python Version
Other License - BSD 3-Clause GitHub stars JOSS status

Physics Learning AI Datamodel (PLAID)

1. Description

This library proposes an implementation for a datamodel tailored for AI and ML learning of physics problems. It has been developped at SafranTech, the research center of Safran group.

2. Getting started

2.1 Using the library

To use the library, the simplest way is to install it from the packages available:

  • on conda-forge for Windows, macOS and Linux:

    conda install -c conda-forge plaid
    
  • or on PyPi for Linux:

    pip install pyplaid
    

Note

  • Only the conda-forge packages (all operating systems) and the Linux PyPI package include a bundled pyCGNS dependency. In other situations, which we have not tested, pyCGNS must be installed separately beforehand.
  • On Apple Silicon, users can force an osx-64 conda environment using CONDA_SUBDIR=osx-64, allowing installation of the existing macOS-64 builds under Rosetta.

2.2 Contributing to the library

To contribute to the library, you need to clone the repo using git:

git clone https://github.com/PLAID-lib/plaid.git

2.2.1 Development dependencies

To configure an environment:

  • using conda (Windows, macOS and Linux):

    conda env create -n plaid-dev python=3.12 -f environment.yml
    pip install -e . --no-deps
    
  • using uv (Linux):

    uv sync --dev
    

2.2.2 Tests and examples

To check the installation, you can run the unit test suite:

pytest tests

To test further and learn about simple use cases, you can run and explore the examples:

cd examples
bash run_examples.sh  # [unix]
run_examples.bat      # [win]

2.2.3 Documentation

To compile locally the documentation, you can run:

cd docs
make html

Various notebooks are executed during compilation. The documentation can then be explored in docs/_build/html.

2.2.4 Formatting and linting with Ruff

We use Ruff for linting and formatting.

The configuration is defined in ruff.toml, and some folders like docs/ and examples/ are excluded from checks.

You can run Ruff manually as follows:

ruff --config ruff.toml check . --fix      # auto-fix linting issues
ruff --config ruff.toml format .           # auto-format code

2.2.5 Setting up pre-commit

Pre-commit is configured to run the following hooks:

  • Ruff check
  • Ruff format
  • Pytest

The selected hooks are defined in the .pre-commit-config.yaml file.

To run all hooks manually on the full codebase:

pre-commit run --all-files

You can also run (once):

pre-commit install

This ensures that every time you commit, all the hooks are executed automatically on the staged files.

3. Call for Contributions

The PLAID project welcomes your expertise and enthusiasm!

Small improvements or fixes are always appreciated.

Writing code isn’t the only way to contribute to PLAID. You can also:

  • review pull requests
  • help us stay on top of new and old issues
  • develop tutorials, presentations, and other educational materials
  • maintain and improve our documentation
  • help with outreach and onboard new contributors

If you are new to contributing to open source, this guide helps explain why, what, and how to successfully get involved.

4. Documentation

The documentation is deployed on readthedocs.

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

pyplaid-0.1.14.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

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

pyplaid-0.1.14-py3-none-any.whl (166.4 kB view details)

Uploaded Python 3

File details

Details for the file pyplaid-0.1.14.tar.gz.

File metadata

  • Download URL: pyplaid-0.1.14.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyplaid-0.1.14.tar.gz
Algorithm Hash digest
SHA256 40d8fa74a49bd6332e2b00e519e1803eb63cadd1443c98abea0add80518012d1
MD5 4feb84681703d4923ccd0b48d40ac7be
BLAKE2b-256 38ae43990d21c8d4dc2b4e5358ba87d3e84b153e66020bd7b6f7a28f13e897ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyplaid-0.1.14.tar.gz:

Publisher: publish-pypi.yml on PLAID-lib/plaid

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

File details

Details for the file pyplaid-0.1.14-py3-none-any.whl.

File metadata

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

File hashes

Hashes for pyplaid-0.1.14-py3-none-any.whl
Algorithm Hash digest
SHA256 c361d9cc7e76c86b232f903d9c8e77c403fd9a78965599dd8fb3de02bd346eeb
MD5 a4207c70d5036f6de7abc5e0895575ce
BLAKE2b-256 94fad6e0ecd4a3a7763e92844ebab599f493920f565d8a4a3ad12d2b26b35e48

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyplaid-0.1.14-py3-none-any.whl:

Publisher: publish-pypi.yml on PLAID-lib/plaid

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