Async Python wrapper for Netro API (HTTP-agnostic, HA-friendly)
Project description
pynetro
Async Python wrapper for Netro API — HTTP-agnostic (works with adapters). Designed to integrate with Home Assistant but usable anywhere.
Installation
🚀 Quick Installation
# Clone the project
git clone https://github.com/kcofoni/pynetro.git
cd pynetro
# Install in development mode
pip install -e .
🛠️ Complete Development Setup
1. Prerequisites
- Python 3.10 or higher
- git
2. Environment Setup
# Clone the project
git clone https://github.com/kcofoni/pynetro.git
cd pynetro
# Create a virtual environment
python -m venv .venv
# Activate the virtual environment
# On Linux/macOS:
source .venv/bin/activate
# On Windows:
# .venv\Scripts\activate
# Verify the environment is activated (prompt should show (.venv))
which python # Should point to .venv/bin/python
3. Install Dependencies
# Install the project in development mode
pip install -e .
# Install development dependencies (tests, linting, etc.)
pip install -r requirements-dev.txt
4. Verify Installation
# Run unit tests to verify everything works
pytest tests/test_client.py -v
# Check linting
ruff check src/ tests/
🧪 Testing
Run tests using pytest commands:
5. Integration Tests Configuration (optional)
# Create an .env file with your Netro device serial numbers
cp .env.example .env
# Then edit .env with your actual values
# Generate reference files for development (contains real serial numbers, ignored by git)
python tests/generate_references.py
# Test integrations (requires internet connection and Netro devices)
pytest tests/test_integration.py -v -m integration
Security Note: Reference files are automatically ignored by git as they contain real device serial numbers. Template files with anonymized data are provided for understanding the API structure.
🔧 Common Troubleshooting
Virtual environment not activated
# Check that the environment is activated
which python # Should point to .venv/bin/python
echo $VIRTUAL_ENV # Should display the path to .venv
# If not activated:
source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate # Windows
Import errors during tests
# Reinstall the project in development mode
pip install -e .
Integration tests skipped
# Integration tests require environment variables
export NETRO_SENS_SERIAL="your_sensor_serial"
export NETRO_CTRL_SERIAL="your_controller_serial"
# Verify variables are set
echo $NETRO_SENS_SERIAL $NETRO_CTRL_SERIAL
Tests
The project has a comprehensive test suite with 14 tests (7 unit + 7 integration).
# Run all tests
pytest tests/ -v
# Unit tests only (always available)
pytest tests/test_client.py -v
# Integration tests (require environment variables)
pytest tests/test_integration.py -v -m integration
📚 Complete testing documentation: See tests/README.md for all commands and advanced options.
Security & Reference Files
For security reasons, files containing real device serial numbers are automatically ignored by git:
tests/reference_data/sensor_response.jsontests/reference_data/sprite_response.json
What's available for fresh clones:
- ✅ Anonymized templates showing API structure (
*_template.json) - ✅ Generation script to create real reference files when needed
- ✅ All functionality works without these files - they're optional documentation
If you need the real reference files:
# Set your device serial numbers
export NETRO_SENS_SERIAL="your_sensor_serial"
export NETRO_CTRL_SERIAL="your_controller_serial"
# Generate the files (will be ignored by git)
python tests/generate_references.py
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
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 pynetro-0.1.0.tar.gz.
File metadata
- Download URL: pynetro-0.1.0.tar.gz
- Upload date:
- Size: 15.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc2ec6e4e5284d67cb868959abc6e6d101bf47607b3d157460ea52b884b64716
|
|
| MD5 |
a83df7e25e515719346f5bab05ccde47
|
|
| BLAKE2b-256 |
e4733e7972805db749a9e171a29af57094961bd36b1d8a73479dc2908a819edb
|
File details
Details for the file pynetro-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pynetro-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2232ff351e841f588612a404ef3ea5dcf4c3a75723fbaf6218e1a59205c85a37
|
|
| MD5 |
7412387da314625d227284d3f4cb4281
|
|
| BLAKE2b-256 |
9da1f37e5c89684649f573b9a85baa72cad89f428376d6688eb209c8782305a4
|