A package for signal and system simulation, design, analysis, and learning.
Project description
A Python package for Signal & System simulation, design, analysis, and learning.
Dependency & installation
Requirements
- Python version: 3.13
- Additional package dependencies include: NumPy, SciPy, Numba, PyTorch, Matplotlib, H5py, tqdm, and Click (detailed in
pyproject.toml)
Installation
Before installation, create a Python virtual environment to manage dependencies and ensure a clean installation of the Signal & System package.
-
Create and activate a virtual environment: (One may use your preferred way to create a virtual environment. This tutorial uses Anaconda to manage environments.)
# Change directory to your <working_directory> cd <working_directory> # Create a virtual environment of name <venv> # with Python version 3.13 conda create --name <venv> python=3.13 # Activate the virtual environment conda activate <venv> # Note: Exit the virtual environment conda deactivate
-
Install Package: (two methods)
# Install directly from GitHub pip install git+https://github.com/hanson-hschang/Signal-System.git # Or clone and install git clone https://github.com/hanson-hschang/Signal-System.git cd Signal-System pip install .
Click me to expand/collapse developer environment setup
Developer environment setup
-
Clone and install development dependencies:
git clone https://github.com/hanson-hschang/Signal-System.git cd Signal-System pip install -e ".[dev]"
-
Generate development requirements file:
pip-compile pyproject.toml --extra=dev --output-file=requirements-dev.txt
-
Configure pre-commit hooks:
pre-commit install
Development Tools
This project uses several tools for quality assurance:
- pre-commit: Git hooks for code quality checks
- pytest: Unit testing
- Black: Code formatting
- isort: Package import sorting
- mypy: Static type checking
Running Tests
# Standard test execution
pytest -c pyproject.toml
# Run tests with coverage report
pytest -c pyproject.toml --cov=src --cov-report=xml --cov-report=term
Code Style Guidelines
- Adherence to PEP 8 style guidelines
- Mandatory type hints for all functions and variables
- Documentation using numpydoc format specification
Format codebase:
# Upgrade Python syntax
pyupgrade --exit-zero-even-if-changed --py38-plus src/**/*.py
# Apply code formatting
black --config pyproject.toml ./
# Perform static type checking
mypy --config-file pyproject.toml ./
# Organize imports
isort --settings-path pyproject.toml ./
Example
Please refer to examples directory and learn how to use this Signal & System package.
Three types of examples are provided:
systemprovides various dynamic system simulations.controlprovides various control methods over dynamic systems.estimationprovides various filtering and smoothing examples for different type of dynamic systems.
License
This project is released under the MIT License.
Contributing
- Fork this repository
- Create your feature branch (
git checkout -b feat/amazing-feature) - Make your changes
- Run the tests (
pytest -c pyproject.toml) - Commit your changes (
git commit -m "feat: Add some amazing feature") - Push to the feature branch (
git push origin feat/amazing-feature) - Open a Pull Request
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file signal_system-0.0.2.tar.gz.
File metadata
- Download URL: signal_system-0.0.2.tar.gz
- Upload date:
- Size: 102.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af6ac401a388ffa6ae9e63ea65e07f9b9db03282b29c320166244d090da7d810
|
|
| MD5 |
a09fab55ccfc711dbb9106f1ef0dfa3b
|
|
| BLAKE2b-256 |
4c68f4ae32b2f6a0c79a5aaa397a9de35b14d326d279d925294b0ae011d0a602
|
File details
Details for the file signal_system-0.0.2-py3-none-any.whl.
File metadata
- Download URL: signal_system-0.0.2-py3-none-any.whl
- Upload date:
- Size: 184.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
babe8621b691035a9296055402ecb6ff39d06338aeeb855b9f620706b6b63a97
|
|
| MD5 |
756f51b9c25084cec720b935ab53cc03
|
|
| BLAKE2b-256 |
abf326bbf50f3ef39e5d33bff437afc5511ae7c7b2d355a0012ad2881809063d
|