Skip to main content

csle-common

csle-common is a library with common functionality for all use-cases implemented in CSLE.

PyPI version PyPI - Downloads

Requirements

  • Python 3.8+
  • csle-base
  • gymnasium (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

LICENSE

Creative Commons

(C) 2020-2026, Kim Hammar

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

csle_common-0.10.0.tar.gz (342.6 kB view details)

Uploaded Source

Built Distribution

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

csle_common-0.10.0-py3-none-any.whl (414.3 kB view details)

Uploaded Python 3

File details

Details for the file csle_common-0.10.0.tar.gz.

File metadata

  • Download URL: csle_common-0.10.0.tar.gz
  • Upload date:
  • Size: 342.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for csle_common-0.10.0.tar.gz
Algorithm Hash digest
SHA256 fcdf7d49945ceb6889783748d41c25a176c3e9894e399c560d7abf9edfd16b30
MD5 5a6d1c7fd2d8c4cc4789763757d205ad
BLAKE2b-256 87b46fa3cf005c57e798694d60b25695910d5a20e1e23c2ec39d776f97592ec2

See more details on using hashes here.

File details

Details for the file csle_common-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: csle_common-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 414.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for csle_common-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f7b668c3a8804b0c856564410b2777215de6d1a721eeae57bdc068ed13a36a7
MD5 7de5ace030b1d4458467972e9b19bedf
BLAKE2b-256 886732fd921cabf2d95d38aa5de58708f107138bd56cc4782551a892b9509c73

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page