Skip to content

Commit f2a7fb5

Browse files
authored
Merge pull request #6 from mgm8/dev
Dev: v0.1
2 parents 2308a86 + 0798dfe commit f2a7fb5

24 files changed

+965
-45
lines changed

.github/workflows/install.yml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#
2+
# install.yml
3+
#
4+
# Copyright The PyModulation Contributors.
5+
#
6+
# This file is part of PyModulation.
7+
#
8+
# PyModulation is free software; you can redistribute it
9+
# and/or modify it under the terms of the GNU General Public License as
10+
# published by the Free Software Foundation, either version 3 of the
11+
# License, or (at your option) any later version.
12+
#
13+
# PyModulation is distributed in the hope that it will be useful,
14+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
15+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16+
# GNU General Public License for more details.
17+
#
18+
# You should have received a copy of the GNU General Public
19+
# License along with PyModulation; if not, see <http://www.gnu.org/licenses/>.
20+
#
21+
#
22+
#
23+
24+
name: Install test
25+
26+
on:
27+
push:
28+
branches: [dev]
29+
pull_request:
30+
branches: [main, dev]
31+
32+
# 'workflow_dispatch' allows manual execution of this workflow under the repository's 'Actions' tab
33+
workflow_dispatch:
34+
35+
jobs:
36+
37+
install-test:
38+
name: Installing test
39+
runs-on: ubuntu-latest
40+
41+
strategy:
42+
fail-fast: false
43+
matrix:
44+
python-version: ['3.12', '3.13']
45+
46+
steps:
47+
- name: Checkout repository
48+
uses: actions/checkout@v4
49+
50+
- name: Setup Python
51+
uses: actions/setup-python@v5
52+
with:
53+
python-version: ${{ matrix.python-version }}
54+
55+
- name: Upgrade pip and build tools
56+
run: |
57+
python -m pip install --upgrade pip
58+
pip install setuptools wheel build
59+
60+
- name: Build package (sdist and wheel)
61+
run: |
62+
python setup.py sdist bdist_wheel
63+
64+
- name: Check built distributions
65+
run: |
66+
pip install twine
67+
twine check dist/*
68+
69+
- name: Install package
70+
run: |
71+
python setup.py install

.github/workflows/sphinx-build.yml

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,28 +20,31 @@
2020
#
2121
#
2222

23-
name: Documentation build
23+
name: Documentation build test
2424

2525
on:
2626
push:
27-
branches: [dev, main]
27+
branches: [dev]
2828
pull_request:
29-
branches: [dev, main]
29+
branches: [main, dev]
3030

31-
jobs:
32-
build:
31+
# 'workflow_dispatch' allows manual execution of this workflow under the repository's 'Actions' tab
32+
workflow_dispatch:
3333

34+
jobs:
35+
build-doc:
36+
name: Documentation building
3437
runs-on: ubuntu-latest
3538

3639
steps:
37-
- uses: actions/checkout@v4
38-
# Standard drop-in approach that should work for most people.
39-
- uses: ammaraskar/sphinx-action@master
40-
with:
41-
docs-folder: "docs/"
42-
pre-build-command: "pip install --upgrade pip"
43-
# Create an artifact of the html output.
44-
- uses: actions/upload-artifact@v4
45-
with:
46-
name: documentation_html
47-
path: docs/_build/html/
40+
- name: Checkout
41+
uses: actions/checkout@v4
42+
- name: Build pages
43+
uses: Kjuly/sphinx-builder@main
44+
with:
45+
source_root: "docs/"
46+
- name: Create artifact
47+
uses: actions/upload-artifact@v4
48+
with:
49+
name: Documentation HTML
50+
path: docs/_build/html/

.github/workflows/sphinx-deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
# Create an artifact of the html output
4747
- uses: actions/upload-artifact@v4
4848
with:
49-
name: documentation_html
49+
name: Documentation HTML
5050
path: docs/_build/html/
5151
# Publish built docs to gh-pages branch
5252
- name: Commit documentation changes

.github/workflows/test.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ jobs:
4343
steps:
4444
- uses: actions/checkout@v4
4545
- uses: actions/setup-python@v5
46+
with:
47+
python-version: '3.12'
4648

4749
- name: Install dependencies
4850
run: sudo apt install -y python3-pytest

CHANGELOG

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
2+
===========================================
3+
4+
v0.1 - 2026/01/09
5+
6+
- First release
7+
- GFSK/GMSK support
8+
9+
===========================================
110
===========================================
211

312
v0.0 - 2025/03/30

README.md

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
# PyModulation
1+
<h1 align="center">
2+
<a href="https://mgm8.github.io/pymodulation/"><img src="docs/img/logo.jpg" alt="PyModulation" width="50%"></a>
3+
</h1>
24

35
<a href="https://pypi.org/project/pymodulation/">
46
<img src="https://img.shields.io/pypi/v/pymodulation?style=for-the-badge">
@@ -15,11 +17,20 @@
1517

1618
## Overview
1719

18-
> TODO
20+
PyModulation is a Python library that implements a collection of digital modulation and demodulation techniques with a strong focus on Software-Defined Radio (SDR) applications. The library is designed to provide a simple, consistent, and extensible interface for working with different modulation schemes, enabling rapid development, testing, and prototyping of wireless communication systems.
21+
22+
The main objective of PyModulation is to allow the direct use of supported modulation techniques with SDR hardware, while remaining flexible enough to be used in simulations, offline signal processing, and educational contexts. By abstracting common modulation tasks, the library helps users focus on system design and experimentation rather than low-level signal handling.
23+
24+
PyModulation is suitable for a wide range of applications, including SDR-based transmitters and receivers, communication protocol prototyping, academic research, and teaching digital communications concepts. Its modular architecture makes it easy to extend with new modulation schemes and integrate with existing Python-based SDR and signal-processing toolchains.
25+
26+
The following modulations are currently supported:
27+
28+
* GFSK/GMSK
1929

2030
## Dependencies
2131

22-
* None
32+
* NumPy
33+
* SciPy
2334

2435
## Installing
2536

docs/conf.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,28 @@
33
# For the full list of built-in configuration values, see the documentation:
44
# https://www.sphinx-doc.org/en/master/usage/configuration.html
55

6+
import sphinx_rtd_theme
7+
68
# -- Project information -----------------------------------------------------
79
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
810

911
project = 'PyModulation'
1012
copyright = 'Copyright The PyModulation Contributors'
1113
author = 'Gabriel Mariano Marcelino'
12-
release = 'v0.0.0'
14+
release = 'v0.1'
1315

1416
# -- General configuration ---------------------------------------------------
1517
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
1618

17-
extensions = []
19+
extensions = [
20+
'sphinx_rtd_theme',
21+
]
1822

1923
templates_path = ['_templates']
2024
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
2125

22-
23-
2426
# -- Options for HTML output -------------------------------------------------
2527
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
2628

27-
html_theme = 'alabaster'
29+
html_theme = 'sphinx_rtd_theme'
2830
html_static_path = ['_static']

docs/img/logo.jpg

102 KB
Loading

docs/img/logo.png

226 KB
Loading

docs/index.rst

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,22 @@
33
You can adapt this file completely to your liking, but it should at least
44
contain the root `toctree` directive.
55
6-
Welcome to PyModulation's documentation!
7-
========================================
6+
.. image:: img/logo.jpg
7+
:width: 400
88

9-
.. toctree::
10-
:maxdepth: 2
11-
:caption: Contents:
9+
PyModulation is a Python library that implements a collection of digital modulation and demodulation techniques with a strong focus on Software-Defined Radio (SDR) applications. The library is designed to provide a simple, consistent, and extensible interface for working with different modulation schemes, enabling rapid development, testing, and prototyping of wireless communication systems.
10+
11+
The project is fully open source and is available in a `GitHub repository <https://github.com/mgm8/pymodulation>`_. All contributions are welcome! If you found a bug, developed a new feature, or want to improve the documentation, there are two ways to do so: open an issue describing the suggested modification, or by opening a pull request. More information are available in the `CONTRIBUTING file <https://github.com/mgm8/pymodulation/blob/main/CONTRIBUTING.md>`_.
1212

13+
Any questions or suggestions can also be addressed to Gabriel Mariano Marcelino <`[email protected] <mailto:[email protected]>`_>.
1314

15+
Contents
16+
========
1417

15-
Indices and tables
16-
==================
18+
.. toctree::
19+
:maxdepth: 2
1720

18-
* :ref:`genindex`
19-
* :ref:`modindex`
20-
* :ref:`search`
21+
overview
22+
modulations
23+
usage
24+
installation

0 commit comments

Comments
 (0)