Skip to main content

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.json
  • tests/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

pynetro-0.1.0.tar.gz (15.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pynetro-0.1.0-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

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

Hashes for pynetro-0.1.0.tar.gz
Algorithm Hash digest
SHA256 bc2ec6e4e5284d67cb868959abc6e6d101bf47607b3d157460ea52b884b64716
MD5 a83df7e25e515719346f5bab05ccde47
BLAKE2b-256 e4733e7972805db749a9e171a29af57094961bd36b1d8a73479dc2908a819edb

See more details on using hashes here.

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

Hashes for pynetro-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2232ff351e841f588612a404ef3ea5dcf4c3a75723fbaf6218e1a59205c85a37
MD5 7412387da314625d227284d3f4cb4281
BLAKE2b-256 9da1f37e5c89684649f573b9a85baa72cad89f428376d6688eb209c8782305a4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page