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 documentationtests/README.md

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.2.tar.gz (16.4 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.2-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file pynetro-0.1.2.tar.gz.

File metadata

  • Download URL: pynetro-0.1.2.tar.gz
  • Upload date:
  • Size: 16.4 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.2.tar.gz
Algorithm Hash digest
SHA256 d4864835dd4f8ee0a6a54c058b44142c86c8822f91e81a21bc4312d6d3c78475
MD5 87074b32862ef1940e88eb5583ac0266
BLAKE2b-256 3506e42fcb3423a5c450dfd8837c84dab28e283bfb2802380557fd32b39fc149

See more details on using hashes here.

File details

Details for the file pynetro-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: pynetro-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.6 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 474446b8d3033b68939b620470f109f4a3cc64a08ee5933f374d605aa4b92fc5
MD5 b50407bda5c393400438e8f8fa6e6dd6
BLAKE2b-256 3a28dc96e2a642ef8a93f0e55d1d113901539695427fa83845864fc2781354db

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