csle-common
csle-common is a library with common functionality for all use-cases implemented in
CSLE.
Requirements
- Python 3.8+
csle-basegymnasium(for creating RL environments)pyglet(OpenGL 3D graphics)numpy(for scientific computing)torch(for baseline algorithms)docker(for interacting with the emulations)paramiko(for SSH tunnels)stable-baselines3(for baseline RL algorithms)scp(for SSH copying)random_username(for auto generating emulations)psycopg(to interact with the metastore)click(for the command line interface)flask(for the management system Web UI)waitress(for the management system Web UI)csle-collector(for data collection and telemetry)psutil(for command line tasks)csle-ryu(for SDN network management)
Development Requirements
- Python 3.8+
flake8(for linting)flake8-rst-docstrings(for linting docstrings)tox(for automated testing)pytest(for unit tests)pytest-cov(for unit test coverage)mypy(for static typing)mypy-extensions(for static typing)mypy-protobuf(for static typing)types-PyYaml(for static typing)types-paramiko(for static typing)types-protobuf(for static typing)types-requests(for static typing)types-urllib3(for static typing)sphinx(for API documentation)sphinxcontrib-napoleon(for API documentation)sphinx-rtd-theme(for API documentation)pytest-mock(for mocking tests)pytest-grpc(for grpc tests)gpytorch(For system identification algorithms based on Gaussian processes)scikit-learn(For statistical computations)
Installation
# install from pip
pip install csle-common==<version>
# local install from source
$ pip install -e csle-common
# or (equivalently):
make install
# force upgrade deps
$ pip install -e csle-common --upgrade
# git clone and install from source
git clone https://github.com/Kim-Hammar/csle
cd csle/simulation-system/libs/csle-common
pip3 install -e .
# Install development dependencies
$ pip install -r requirements_dev.txt
Development tools
Install all development tools at once:
make install_dev
or
pip install -r requirements_dev.txt
API documentation
This section contains instructions for generating API documentation using sphinx.
Latest Documentation
The latest documentation is available at https://kim-hammar.github.io/csle//docs/csle-common
Generate API Documentation
First make sure that the CSLE_HOME environment variable is set:
echo $CSLE_HOME
Then generate the documentation with the commands:
cd docs
sphinx-apidoc -f -o source/ ../src/csle_common/
make html
To update the official documentation at https://kim-hammar.github.io/csle/, copy the generated HTML files to the documentation folder:
cp -r build/html ../../../../docs/_docs/csle-common
To run all documentation commands at once, use the command:
make docs
Static code analysis
To run the Python linter, execute the following command:
flake8 .
# or (equivalently):
make lint
To run the mypy type checker, execute the following command:
mypy .
# or (equivalently):
make types
Unit tests
To run the unit tests, execute the following command:
pytest
# or (equivalently):
make unit_tests
To run tests of a specific test suite, execute the following command:
pytest -k "ClassName"
To generate a coverage report, execute the following command:
pytest --cov=csle_common
Run tests and code analysis in different python environments
To run tests and code analysis in different python environemnts, execute the following command:
tox
# or (equivalently):
make tests
Create a new release and publish to PyPi
First build the package by executing:
python3 -m build
# or (equivalently)
make build
After running the command above, the built package is available at ./dist.
Push the built package to PyPi by running:
python3 -m twine upload dist/*
# or (equivalently)
make push
To run all commands for the release at once, execute:
make release
Author & Maintainer
Kim Hammar kimham@kth.se
Copyright and license
Creative Commons
(C) 2020-2026, Kim Hammar
Metadata
Release files for csle-common 0.10.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| csle_common-0.10.1.tar.gz | 348.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| csle_common-0.10.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 766.4 kB
Release files / csle_common-0.10.1.tar.gz
| Download URL | csle_common-0.10.1.tar.gz |
|---|---|
| Size | 348.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f8d531afa544d0176bd04af99a46006b81bb8339ebef8926df77d7a48aa8d105
|
|
BLAKE2b-256 checksum How to use checksums |
26b82d11643f91aa74d202389052583318f4da5a1b8d95bffcaf637b67789709
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.11
|
Release files / csle_common-0.10.1-py3-none-any.whl
| Download URL | csle_common-0.10.1-py3-none-any.whl |
|---|---|
| Size | 418.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c1c6239ac2ebab50ffd6ec54bd456f6bfac8dfec0797cca3be470ef7833f5616
|
|
BLAKE2b-256 checksum How to use checksums |
ab50b996782d0eafad1a1546c2d2e6ba0e8fbd1cca8e847070a75efb6ed002e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.11
|