Contributing to Comnumpy#
We welcome contributions! Whether you’re fixing a bug, improving the documentation, or developing a new submodule, your input is valuable.
Setting Up for Development#
First, fork the repository and clone your fork:
git clone https://github.com/vincentchoqueuse/comnumpy.git
cd comnumpy
Create a new virtual environment and activate it:
conda create -n comnumpy-dev python=3.11
conda activate comnumpy-dev
Then install the package in editable mode with development dependencies:
pip install -e .[dev]
This will install the local package and any extra requirements listed for development and testing.
Guidelines#
Follow PEP8 formatting.
Add tests for new features or fixes (see the tests/ directory).
Document your code with docstrings following the NumPy/SciPy style.
Keep pull requests focused and concise.
Write meaningful commit messages.
Extending comnumpy#
We strongly encourage contributors to develop self-contained submodules for adding new communication system models or signal processing tools. A submodule typically includes:
A dedicated directory under
src/comnumpy/
A
__init__.py
filePython modules implementing your algorithms
Unit tests in the
tests/
directoryDocumentation under
docs/
(e.g.,docs/examples/
ordocs/documentation/
)
You can use existing submodules like optical
or mimo
as templates.
Reporting Issues#
If you encounter a bug or have a feature request, please open an issue on GitHub. Be sure to include:
A clear description of the problem or proposal
Steps to reproduce (for bugs)
Your Python version and operating system