/plxcontroller

Controllers to create and modify Plaxis 2D and 3D models with enhanced functionalities.

Primary LanguagePythonMIT LicenseMIT

plxcontroller

Controllers to create and modify Plaxis 2D and 3D models with enhanced functionalities.

Checked with mypy Code style: black Imports: isort

This repository is created by CEMS BV.

Installation

To install a package in this repository run:

$ pip install plxcontroller

Contribution

Environment

We recommend developing in Python3.9 with a clean virtual environment (using virtualenv or conda), installing the requirements from the requirements.txt file:

Example using virtualenv and pip to install the dependencies in a new environment .env on Linux:

python -m venv .env
source .env/bin/activate
python -m pip install --upgrade pip setuptools
pip install -r requirements.txt
pip install -e .

Format

We format our code with black and isort.

black --config "pyproject.toml" src/plxcontroller tests notebooks
isort --settings-path "pyproject.toml" src/plxcontroller tests notebooks

Lint

To maintain code quality we use the GitHub super-linter.

To run the linters locally, run the run_super_linter.sh bash script from the root directory.

UnitTest

Test the software with the use of coverage:

python -m pip install --upgrade pip setuptools
pip install -r requirements.txt
pip install -e .
coverage run -m pytest

Requirements

Requirements are autogenerated by the pip-compile command with python 3.9

Install pip-tools with:

pip install pip-tools

Generate requirements.txt file with:

pip-compile --extra=test --extra=lint --output-file=requirements.txt pyproject.toml

Update the requirements within the defined ranges with:

pip-compile --upgrade --extra=test --extra=lint --output-file=requirements.txt pyproject.toml