Metadata-Version: 2.4
Name: komm
Version: 0.28.1
Summary: An open-source library for Python 3 providing tools for analysis and simulation of analog and digital communication systems.
Author-email: "Roberto W. Nobrega" <rwnobrega@gmail.com>
License-Expression: GPL-3.0-only
Project-URL: home, https://komm.dev/
Project-URL: repository, https://github.com/rwnobrega/komm/
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=2.1.1
Requires-Dist: tqdm>=4.67.0
Requires-Dist: typing-extensions>=4.12.0
Requires-Dist: typeguard>=4.4.3
Provides-Extra: lint
Requires-Dist: black==25.9.0; extra == "lint"
Requires-Dist: isort==7.0.0; extra == "lint"
Requires-Dist: flake8==7.3.0; extra == "lint"
Requires-Dist: basedpyright==1.32.1; extra == "lint"
Provides-Extra: test
Requires-Dist: pytest==9.0.2; extra == "test"
Requires-Dist: pytest-doctestplus==1.4.0; extra == "test"
Requires-Dist: pytest-repeat==0.9.3; extra == "test"
Requires-Dist: pytest-benchmark==5.1.0; extra == "test"
Requires-Dist: pytest-cov==6.0.0; extra == "test"
Provides-Extra: doc
Requires-Dist: griffe==1.7.3; extra == "doc"
Requires-Dist: griffe-inherited-docstrings==1.1.1; extra == "doc"
Requires-Dist: mkdocs==1.6.1; extra == "doc"
Requires-Dist: mkdocs-material==9.4.0; extra == "doc"
Requires-Dist: mkdocstrings==0.29.1; extra == "doc"
Requires-Dist: mkdocstrings-python==1.16.12; extra == "doc"
Requires-Dist: mkdocs-gen-files==0.5.0; extra == "doc"
Requires-Dist: mkdocs-include-markdown-plugin==6.0.4; extra == "doc"
Requires-Dist: mkdocs-literate-nav==0.6.1; extra == "doc"
Provides-Extra: debug
Requires-Dist: ipykernel>=6.28.0; extra == "debug"
Requires-Dist: matplotlib>=3.8.2; extra == "debug"
Provides-Extra: demo
Requires-Dist: streamlit==1.45.0; extra == "demo"
Requires-Dist: matplotlib==3.10.1; extra == "demo"
Dynamic: license-file

# Komm

_A Python library for communication systems_.

[![PyPI page](https://badge.fury.io/py/komm.svg)](https://pypi.org/project/komm/)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black/)
[![Contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg)](https://github.com/rwnobrega/komm/issues)

Welcome to **Komm**!

<!--intro-start-->

**Komm** is an open-source library for Python 3 providing tools for analysis and simulation of analog and digital communication systems. This project is inspired by many other communication systems libraries, such as [MATLAB® Communications System Toolbox™](https://www.mathworks.com/help/comm/), [GNU Radio](https://gnuradio.org/), [CommPy](http://veeresht.info/CommPy/), and [SageMath](https://www.sagemath.org/). **Komm** is licensed under the [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.en.html).

<!--intro-end-->

For library reference, please check the [project's website](https://komm.dev/).

<!--notes-start-->

> [!WARNING]
> Please be advised that this project is currently under development. As such, there may be changes to the project's codebase, including the API.

<!--notes-end-->

## Installation

Before you start, make sure you have [Python](https://www.python.org/) (version 3.10 or later) installed. Also, you may want to create and activate a [virtual environment](https://docs.python.org/3/library/venv.html) first:

```bash
python3 -m venv .venv
source .venv/bin/activate
```

### From PyPI

```bash
pip install komm
```

### From GitHub

```bash
pip install git+https://github.com/rwnobrega/komm.git@main
```

## Development

First, clone the repository:

```bash
git clone https://github.com/rwnobrega/komm
cd komm
```

Then, if you haven't already, create and activate a virtual environment [as before](#installation).

Next, install the development dependencies. For example, using `pip`:

```bash
pip install -e .[lint,test,doc,debug,demo]
```

### Testing

The test suite is written using the [pytest](https://docs.pytest.org/) framework. To run the tests, execute:

```bash
pytest
```

### Documentation

The documentation is built using [MkDocs](https://www.mkdocs.org/) with the [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) theme. To serve the documentation locally, run:

```bash
mkdocs serve
```

### Run demos

There are some demos available in the `demo` directory. They are written using [Streamlit](https://streamlit.io/). To run them, execute:

```bash
streamlit run demo/index.py
```

## Changelog

See the [CHANGELOG.md](CHANGELOG.md).
