Skip to main content

Python library to fetch flight data from adsb exchange.

Project description

py_adsb_historical_data_client

Python client to retrieve historical data from adsb databases

Installation

pip install py-adsb-historical-data-client

Usage

from datetime import datetime
from py_adsb_historical_data_client.historical import download_heatmap, download_trace

# Download heatmap data for a specific timestamp
timestamp = datetime(2023, 6, 15, 14, 30)
heatmap_data = download_heatmap(timestamp)

# Download trace data for a specific aircraft
icao = "ABC123"
trace_data = download_trace(icao, timestamp)

Development

Setup

  1. Clone the repository
  2. Install dependencies:
    uv sync
    

Running Tests

The project includes comprehensive tests for all functionality.

Run all tests except integration tests (recommended for development):

# Using uv directly
uv run pytest tests/ -m "not integration" -v

# Using the test runner script
python run_tests.py

Run all tests including integration tests:

# Using uv directly
uv run pytest tests/ -v

# Using the test runner script
python run_tests.py --all

Run tests with coverage report:

# Using uv directly
uv run pytest tests/ --cov=src/py_adsb_historical_data_client --cov-report=html --cov-report=term

# Using the test runner script
python run_tests.py --coverage

Test Structure

  • Unit Tests: Mock external HTTP requests and test all code paths
  • Integration Tests: Make real HTTP requests to test actual API endpoints (marked with @pytest.mark.integration)
  • Test Coverage: Comprehensive coverage including edge cases, error handling, and input validation

Available Test Commands

Command Description
python run_tests.py Run unit tests only
python run_tests.py --all Run all tests including integration tests
python run_tests.py --coverage Run tests with coverage report

The test suite covers:

  • ✅ Successful data downloads
  • ✅ HTTP error handling (404, 500, etc.)
  • ✅ Network exception handling
  • ✅ Date formatting and URL construction
  • ✅ ICAO code processing and case handling
  • ✅ Time rounding for heatmap intervals
  • ✅ Edge cases (short ICAO codes, etc.)

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

py_adsb_historical_data_client-1.1.0.tar.gz (52.5 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file py_adsb_historical_data_client-1.1.0.tar.gz.

File metadata

File hashes

Hashes for py_adsb_historical_data_client-1.1.0.tar.gz
Algorithm Hash digest
SHA256 67a9c7cb00442a7717f48ce632b0101c47bc4c2ab2b98db674dbd541afe389c6
MD5 7ab51906f2d6c111341e9a768a1ac4e5
BLAKE2b-256 aa2dba77436aa6403a9760bede66d43517fb1b09f6d9b1010c0e4216f08e31ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_adsb_historical_data_client-1.1.0.tar.gz:

Publisher: release-and-publish.yml on Alex-PLACET/py_adsb_historical_data_client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_adsb_historical_data_client-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for py_adsb_historical_data_client-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a97a284ed39391da6c15cf1cffbb404dbc1114e50a5bb87a57a65289856a226d
MD5 f6ffe86bb9b8a70fec6d019163b16238
BLAKE2b-256 91e21172cf0e00092874476410e192290e7daebfb16ccac8f445d50f1a38e67b

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_adsb_historical_data_client-1.1.0-py3-none-any.whl:

Publisher: release-and-publish.yml on Alex-PLACET/py_adsb_historical_data_client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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