Development

Insall pip
python3 -m pip install
Clone the repository
git clone git@github.com:Issamricin/dmc-view.git
cd dmc-view
Make the project in edit mode
pip install -e .

Then, for any changes in the code you can execute it from command line

python

To run the simulator run the below code from the python interactive

from dmcview.simulator import Simulator
simulator = Simulator()
simulator.run()

Development Notes

Testing, Documentation Building, Scripts, CI/CD, Static Code Analysis for this project.

  1. Test Suite, using `pytest`_, located in tests dir

  2. Parallel Execution of Unit Tests, on multiple cpu’s

  3. Documentation Pages, hosted on readthedocs server, located in docs dir

  4. CI(Continuous Integration)/CD(Continuous Delivery) Pipeline, running on Github Actions, defined in .github/

    1. Test Job Matrix, spanning different platform’s and python version’s

      1. Platforms: ubuntu-latest

      2. Python Interpreters: 3.13

    2. Continuous Deployment

      Production

      1. Python Distristribution to `pypi.org`_, on tags v*, pushed to main branch

      2. Docker Image to `Dockerhub`_, on every push, with automatic Image Tagging

      Staging

      1. Python Distristribution to `test.pypi.org`_, on “pre-release” tags v*-rc, pushed to release branch

    3. Configurable Policies for Docker, and Static Code Analysis Workflows

  5. Automation, using `tox`_, driven by single tox.ini file

    1. Code Coverage measuring

    2. Build Command, using the `build`_ python package

    3. Pypi Deploy Command, supporting upload to both `pypi.org`_ and `test.pypi.org`_ servers

    4. Type Check Command, using `mypy`_

    5. Lint Check and Apply commands, using the fast `Ruff`_ linter, along with `isort`_ and `black`_

Prerequisites

You need to have Python and PySide6 installed for Development

API Documentation

We follow Google style documentation for packages, modules, classes, methods