Explainable multi-agent systems in Python
Project description
PyXMas
Explainable Multi-Agent Systems in Python, based on Spade
For users
This project is a work in progress, not yet intended for general purpose usage.
For developers
Relevant features
- All your project code into a single main package (
pyxmas/
) - All your project tests into a single test package (
test/
) - Unit testing support via
unittest
- Automatic testing on all branches via GitHub Actions
- Semi-automatic versioning via Git
- Packaging support via
setuptools
- Automatic release on PyPi via GitHub Actions
- Docker image support via
Dockerfile
- Automatic release on DockerHub via GitHub Actions
- Support for semi-automatic development environment management via Pyenv
- Automatic dependencies updates via Renovate
- Automatic conversion of
TODO
comments into GitHub issues via thealstr/todo-to-issue-action
Project structure
Overview:
<root directory>
├── pyxmas/ # main package
│ ├── __init__.py # python package marker
│ └── __main__.py # application entry point
├── test/ # test package (should contain unit tests)
├── .github/ # configuration of GitHub CI
│ ├── scripts/ # contains bash script to be used in CI
│ │ └── retry.sh # script automating timed retry of release operations
│ └── workflows/ # configuration of GitHub Workflows
│ ├── check.yml # runs tests on multiple OS and versions of Python
│ ├── deploy.yml # if check succeeds, and the current branch is one of {main, master, develop}, triggers automatic releas on PyPi
│ └── dockerify.yml # if deploy succeeds, builds a Docker image and pushes it on DockerHub
├── MANIFEST.in # file stating what to include/exclude in releases
├── LICENSE # license file (Apache 2.0 by default)
├── pyproject.toml # declares build dependencies
├── renovate.json # configuration of Renovate bot, for automatic dependency updates
├── requirements.txt # declares development dependencies
├── setup.py # configuration of the package to be released on Pypi
└── Dockerfile # configuration of the Docker image to be realsed on Dockerhub
How to do stuff
Run your code as an application
This will execute the file pyxmas/__main__.py
:
python -m pyxmas
Run unit tests
python -m unittest discover -s test -t .
Tests are automatically run in CI, on all pushes on all branches. There, tests are executed on Linux and on multiple Python versions (from
3.8
to3.9
).
Notice that the testing environment requires:
- Docker to be installed in the testing environment
- Docker Compose to be installed in the testing environment (this is commonly included in Docker)
- the Docker daemon to be up and running
Restore dev dependencies
pip install -r requirements.txt
Release a new version on PyPi
This paragraph is more understandable if the reader has some background about:
GitHub actions automatically release a new version of pyxmas
on PyPi whenever commits are pushed on the main
or master
branches.
The PyPi package is here: https://pypi.org/project/pyxmas/
Version numbers are computed automatically as semantic versioning strings of the form Major.Minor.Patch
where Major
, Minor
, and Patch
are non-negative integers.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pyxmas-0.2.1.tar.gz
.
File metadata
- Download URL: pyxmas-0.2.1.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b866bb6adb382b46ee88b0678b6a7b5f76306c41fb1c5c101a42222b1cd72ea |
|
MD5 | d46fd40b858ea1ebb562ca11d1ae7c92 |
|
BLAKE2b-256 | 68a8826ea1bc5d823343a7fc675ffb91cfa6dde6dde646f4c84cb703d7fabbf3 |
File details
Details for the file pyxmas-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: pyxmas-0.2.1-py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fdc19d764e0ba4f5637175d01baddb5b301fc17ca23496066bc02e23a6bd4fa9 |
|
MD5 | 86bf774c83dad9f525846a76df9b7f3b |
|
BLAKE2b-256 | 88b167ca8a838607f93ccba61f7080335512f27ef48e5c00c43d7c12ff5559db |