Skip to main content

A machine learning toolbox for communications engineering

Project description

tests codecov PyPI - Version docs

Machine Learning and Optimization for Communications (MOKka)

(german: Maschinelles Lernen und Optimierung für Kommunikationssysteme)

This Python package is intended to provide signal and information processing blocks in popular machine learning frameworks. Most of the functionality currently is provided for the PyTorch machine learning framework. Some parts are already implemented to interface with the Sionna Python package.

Prerequisites

This package uses UV for fast Python package management and virtual environments. UV is a modern alternative to pip/poetry that provides significantly faster dependency resolution and installation.

Installation

From PyPI (Recommended)

# Install using UV (fastest method)
uv add mokka

# Or using pip (traditional method)
pip install mokka

From Source

# Clone the repository
git clone https://github.com/kit-cel/mokka.git
cd mokka

# Install with all optional extras using UV
uv sync --all-extras

# Or install specific extras (e.g., torch + dev tools)
uv sync --extra torch --extra dev

Development Setup

# Install development dependencies
uv sync --with=dev

# Install pre-commit hooks for code quality
pre-commit install

For more advanced usage, refer to the UV documentation.

Usage

This package provides a range of modules, covering a range of functions within a communication system. To access functionality within a specific module first import mokka and then access of modules is possible, e.g. mokka.mapping.torch provides constellation mappers and demappers implemented with and compatible to the PyTorch framework.

Development

For consistent development, we use pre-commit hooks to check code formatting and documentation before commits. The project has been updated to use UV for faster dependency management.

Development Installation

# Install in development mode with UV
uv sync --editable --extra torch --extra dev

# Install pre-commit hooks
pre-commit install

Common Development Commands

# Run tests with coverage
uv run pytest --cov=src --cov-report=xml

# Format code
uv run ruff format

# Lint code
uv run ruff check

# Type checking
uv run mypy src

The pre-commit hooks will automatically run formatting and linting checks on each commit. For more information about the development workflow, see the Contributing Guide.

Acknowledgment

This work has received funding from the European Research Council (ERC) under the European Union's Horizon2020 research and innovation programme (grant agreement No. 101001899).

Project details


Download files

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

Source Distribution

mokka-1.2.1.tar.gz (80.5 kB view details)

Uploaded Source

Built Distribution

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

mokka-1.2.1-py3-none-any.whl (92.2 kB view details)

Uploaded Python 3

File details

Details for the file mokka-1.2.1.tar.gz.

File metadata

  • Download URL: mokka-1.2.1.tar.gz
  • Upload date:
  • Size: 80.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mokka-1.2.1.tar.gz
Algorithm Hash digest
SHA256 3f22d0fb606889c165353a59714c5637d52054ad4049e31717e4b1444a5de6c8
MD5 b67d09ab0ab884e60a0fde15836d1f71
BLAKE2b-256 ba5e9dcb1bf3d9828b82e5ca9b28c09a0c75c13b8147af9504e744e00d5b7ecb

See more details on using hashes here.

File details

Details for the file mokka-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: mokka-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 92.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mokka-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cf9de4ee3f5728d56dfb9183257d22c0d5af53c42230660ea9348a136b15f19e
MD5 7a0b1fa35e34e1763b0fb2e1681d148e
BLAKE2b-256 f7a44edbf77e4608604b441f18f2d8a017c0056b009215bc5ea793976175e907

See more details on using hashes here.

Supported by

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