From b60c4f1056faf6475d5ed6de4267acf7ab99e2e4 Mon Sep 17 00:00:00 2001 From: Malte Franken Date: Tue, 4 Dec 2018 00:03:46 +1100 Subject: [PATCH 1/2] streamlined naming --- .coveragerc | 2 +- CHANGELOG.md | 2 +- README.md | 38 ++++++++----- .../__init__.py | 6 +- .../consts.py | 0 .../dump1090_aircrafts.py | 6 +- .../exceptions.py | 0 .../feed_manager.py | 2 +- .../fr24feed_flights.py | 24 ++++---- .../utils.py | 0 setup.py | 8 +-- tests/__init__.py | 2 +- tests/test_dump1090_aircrafts.py | 6 +- tests/test_fr24_flights.py | 55 ++++++++++--------- tests/test_utils.py | 2 +- 15 files changed, 81 insertions(+), 72 deletions(-) rename {flightradar24_client => flightradar_client}/__init__.py (98%) rename {flightradar24_client => flightradar_client}/consts.py (100%) rename {flightradar24_client => flightradar_client}/dump1090_aircrafts.py (94%) rename {flightradar24_client => flightradar_client}/exceptions.py (100%) rename {flightradar24_client => flightradar_client}/feed_manager.py (98%) rename flightradar24_client/fr24_flights.py => flightradar_client/fr24feed_flights.py (80%) rename {flightradar24_client => flightradar_client}/utils.py (100%) diff --git a/.coveragerc b/.coveragerc index 8e9e91d..b63d69b 100644 --- a/.coveragerc +++ b/.coveragerc @@ -1,2 +1,2 @@ [run] -source = flightradar24_client +source = flightradar_client diff --git a/CHANGELOG.md b/CHANGELOG.md index f049b96..97036ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,5 +9,5 @@ * Improved error handling for aggregators. ## 0.1 (08/11/2018) -* Feed and Feed Aggregator for local Flightradar24 feed. +* Feed and Feed Aggregator for local Flightradar feed. * Feed and Feed Aggregator for local Dump1090 feed. diff --git a/README.md b/README.md index 93ccd38..fd07ff3 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ -# python-flightradar24-client +# python-flightradar-client -[![Build Status](https://travis-ci.org/exxamalte/python-flightradar24-client.svg)](https://travis-ci.org/exxamalte/python-flightradar24-client) -[![Coverage Status](https://coveralls.io/repos/github/exxamalte/python-flightradar24-client/badge.svg?branch=master)](https://coveralls.io/github/exxamalte/python-flightradar24-client?branch=master) +[![Build Status](https://travis-ci.org/exxamalte/python-flightradar-client.svg)](https://travis-ci.org/exxamalte/python-flightradar-client) +[![Coverage Status](https://coveralls.io/repos/github/exxamalte/python-flightradar-client/badge.svg?branch=master)](https://coveralls.io/github/exxamalte/python-flightradar-client?branch=master) This library provides convenient access to a local [Flightradar24](https://www.flightradar24.com/) feed. ## Installation -`pip install flightradar24-client` +`pip install flightradar-client` ## Usage @@ -22,12 +22,12 @@ objects. The `*FeedAggregator` class keeps a bit of history and with each subsequent `update` call it tries to fill in any gaps (coordinates and callsign at the moment) missing in the latest data set fetched. -### Flightradar24 Feed +### Flightradar Feed -The Flightradar24 Feed mode uses the JSON data made available by the `fr24feed` +The Flightradar Feed mode uses the JSON data made available by the `fr24feed` service (normally under `http://localhost:8754/flights.json`). -`Flightradar24FlightsFeed` and `Flightradar24FlightsFeedAggregator` support +`FlightradarFlightsFeed` and `FlightradarFlightsFeedAggregator` support the same parameters: | Name | Type | Description | @@ -42,9 +42,11 @@ the same parameters: ```python import asyncio -from flightradar24_client.fr24_flights import Flightradar24FlightsFeed +import aiohttp +from flightradar_client.fr24feed_flights import FlightradarFlightsFeed +session = aiohttp.ClientSession() # Home Coordinates: Latitude: -33.5, Longitude: 151.5 -feed = Flightradar24FlightsFeed((-33.5, 151.5)) +feed = FlightradarFlightsFeed((-33.5, 151.5), session) LOOP = asyncio.get_event_loop() status, entries = LOOP.run_until_complete(feed.update()) ``` @@ -53,9 +55,11 @@ status, entries = LOOP.run_until_complete(feed.update()) ```python import asyncio -from flightradar24_client.fr24_flights import Flightradar24FlightsFeedAggregator +import aiohttp +from flightradar_client.fr24feed_flights import FlightradarFlightsFeedAggregator +session = aiohttp.ClientSession() # Home Coordinates: Latitude: -33.5, Longitude: 151.5 -feed_aggregator = Flightradar24FlightsFeedAggregator((-33.5, 151.5)) +feed_aggregator = FlightradarFlightsFeedAggregator((-33.5, 151.5), session) LOOP = asyncio.get_event_loop() status, entries = LOOP.run_until_complete(feed_aggregator.update()) ``` @@ -80,9 +84,11 @@ the same parameters: ```python import asyncio -from flightradar24_client.dump1090_aircrafts import Dump1090AircraftsFeed +import aiohttp +from flightradar_client.dump1090_aircrafts import Dump1090AircraftsFeed +session = aiohttp.ClientSession() # Home Coordinates: Latitude: -33.5, Longitude: 151.5 -feed = Dump1090AircraftsFeed((-33.5, 151.5)) +feed = Dump1090AircraftsFeed((-33.5, 151.5), session) LOOP = asyncio.get_event_loop() status, entries = LOOP.run_until_complete(feed.update()) ``` @@ -91,9 +97,11 @@ status, entries = LOOP.run_until_complete(feed.update()) ```python import asyncio -from flightradar24_client.dump1090_aircrafts import Dump1090AircraftsFeedAggregator +import aiohttp +from flightradar_client.dump1090_aircrafts import Dump1090AircraftsFeedAggregator +session = aiohttp.ClientSession() # Home Coordinates: Latitude: -33.5, Longitude: 151.5 -feed_aggregator = Dump1090AircraftsFeedAggregator((-33.5, 151.5)) +feed_aggregator = Dump1090AircraftsFeedAggregator((-33.5, 151.5), session) LOOP = asyncio.get_event_loop() status, entries = LOOP.run_until_complete(feed_aggregator.update()) ``` diff --git a/flightradar24_client/__init__.py b/flightradar_client/__init__.py similarity index 98% rename from flightradar24_client/__init__.py rename to flightradar_client/__init__.py index 5a92a15..20610d0 100644 --- a/flightradar24_client/__init__.py +++ b/flightradar_client/__init__.py @@ -14,12 +14,12 @@ import logging from haversine import haversine -from flightradar24_client.consts import UPDATE_OK, UPDATE_ERROR, \ +from flightradar_client.consts import UPDATE_OK, UPDATE_ERROR, \ ATTR_LATITUDE, ATTR_LONGITUDE, ATTR_MODE_S, ATTR_ALTITUDE, \ ATTR_CALLSIGN, ATTR_SPEED, ATTR_TRACK, ATTR_SQUAWK, ATTR_VERT_RATE, \ ATTR_UPDATED, INVALID_COORDINATES, NONE_COORDINATES -from flightradar24_client.exceptions import FlightradarException -from flightradar24_client.utils import FixedSizeDict +from flightradar_client.exceptions import FlightradarException +from flightradar_client.utils import FixedSizeDict _LOGGER = logging.getLogger(__name__) diff --git a/flightradar24_client/consts.py b/flightradar_client/consts.py similarity index 100% rename from flightradar24_client/consts.py rename to flightradar_client/consts.py diff --git a/flightradar24_client/dump1090_aircrafts.py b/flightradar_client/dump1090_aircrafts.py similarity index 94% rename from flightradar24_client/dump1090_aircrafts.py rename to flightradar_client/dump1090_aircrafts.py index 5392274..c8ae838 100644 --- a/flightradar24_client/dump1090_aircrafts.py +++ b/flightradar_client/dump1090_aircrafts.py @@ -5,12 +5,12 @@ """ import logging -from flightradar24_client import Feed, FeedEntry, FeedAggregator -from flightradar24_client.consts import ATTR_ALTITUDE, ATTR_CALLSIGN, \ +from flightradar_client import Feed, FeedEntry, FeedAggregator +from flightradar_client.consts import ATTR_ALTITUDE, ATTR_CALLSIGN, \ ATTR_FLIGHT, ATTR_HEX, ATTR_LAT, ATTR_LATITUDE, ATTR_LON, \ ATTR_LONGITUDE, ATTR_MODE_S, ATTR_SPEED, ATTR_SQUAWK, ATTR_TRACK, \ ATTR_UPDATED, ATTR_VERT_RATE -from flightradar24_client.feed_manager import FeedManagerBase +from flightradar_client.feed_manager import FeedManagerBase _LOGGER = logging.getLogger(__name__) diff --git a/flightradar24_client/exceptions.py b/flightradar_client/exceptions.py similarity index 100% rename from flightradar24_client/exceptions.py rename to flightradar_client/exceptions.py diff --git a/flightradar24_client/feed_manager.py b/flightradar_client/feed_manager.py similarity index 98% rename from flightradar24_client/feed_manager.py rename to flightradar_client/feed_manager.py index 3aca30e..9f2569f 100644 --- a/flightradar24_client/feed_manager.py +++ b/flightradar_client/feed_manager.py @@ -5,7 +5,7 @@ """ import logging -from flightradar24_client import UPDATE_OK +from flightradar_client import UPDATE_OK _LOGGER = logging.getLogger(__name__) diff --git a/flightradar24_client/fr24_flights.py b/flightradar_client/fr24feed_flights.py similarity index 80% rename from flightradar24_client/fr24_flights.py rename to flightradar_client/fr24feed_flights.py index 0f264c2..62c9e4e 100644 --- a/flightradar24_client/fr24_flights.py +++ b/flightradar_client/fr24feed_flights.py @@ -1,15 +1,15 @@ """ -Local Flightradar24 Flights Feed. +Local Flightradar Flights Feed. -Fetches JSON feed from a local Flightradar24 flights feed. +Fetches JSON feed from a local Flightradar flights feed. """ import logging -from flightradar24_client import Feed, FeedEntry, FeedAggregator -from flightradar24_client.consts import ATTR_ALTITUDE, ATTR_CALLSIGN, \ +from flightradar_client import Feed, FeedEntry, FeedAggregator +from flightradar_client.consts import ATTR_ALTITUDE, ATTR_CALLSIGN, \ ATTR_LATITUDE, ATTR_LONGITUDE, ATTR_MODE_S, ATTR_SPEED, ATTR_SQUAWK, \ ATTR_TRACK, ATTR_UPDATED, ATTR_VERT_RATE -from flightradar24_client.feed_manager import FeedManagerBase +from flightradar_client.feed_manager import FeedManagerBase _LOGGER = logging.getLogger(__name__) @@ -19,21 +19,21 @@ URL_TEMPLATE = "http://{}:{}/flights.json" -class Flightradar24FlightsFeedManager(FeedManagerBase): - """Feed Manager for Flightradar24 Flights feed.""" +class FlightradarFlightsFeedManager(FeedManagerBase): + """Feed Manager for Flightradar Flights feed.""" def __init__(self, generate_callback, update_callback, remove_callback, coordinates, session, loop=None, filter_radius=None, url=None, hostname=DEFAULT_HOSTNAME, port=DEFAULT_PORT): """Initialize the NSW Rural Fire Services Feed Manager.""" - feed = Flightradar24FlightsFeedAggregator( + feed = FlightradarFlightsFeedAggregator( coordinates, session, loop=loop, filter_radius=filter_radius, url=url, hostname=hostname, port=port) super().__init__(feed, generate_callback, update_callback, remove_callback) -class Flightradar24FlightsFeedAggregator(FeedAggregator): +class FlightradarFlightsFeedAggregator(FeedAggregator): """Aggregates date received from the feed over a period of time.""" def __init__(self, home_coordinates, session, loop=None, @@ -41,7 +41,7 @@ def __init__(self, home_coordinates, session, loop=None, port=DEFAULT_PORT): """Initialise feed aggregator.""" super().__init__(filter_radius) - self._feed = Flightradar24FlightsFeed(home_coordinates, session, + self._feed = FlightradarFlightsFeed(home_coordinates, session, loop, False, filter_radius, url, hostname, port) @@ -51,8 +51,8 @@ def feed(self): return self._feed -class Flightradar24FlightsFeed(Feed): - """Flightradar24 Flights Feed.""" +class FlightradarFlightsFeed(Feed): + """Flightradar Flights Feed.""" def __init__(self, home_coordinates, session, loop=None, apply_filters=True, filter_radius=None, url=None, diff --git a/flightradar24_client/utils.py b/flightradar_client/utils.py similarity index 100% rename from flightradar24_client/utils.py rename to flightradar_client/utils.py diff --git a/setup.py b/setup.py index f3325ae..ba847b6 100644 --- a/setup.py +++ b/setup.py @@ -10,14 +10,14 @@ ] setup( - name="flightradar24_client", - version="0.4a5", + name="flightradar_client", + version="0.5", author="Malte Franken", author_email="coding@subspace.de", - description="Flightradar24 client library.", + description="Flightradar client library.", long_description=long_description, long_description_content_type="text/markdown", - url="https://github.com/exxamalte/python-flightradar24-client", + url="https://github.com/exxamalte/python-flightradar-client", packages=find_packages(), classifiers=[ "Programming Language :: Python :: 3.5", diff --git a/tests/__init__.py b/tests/__init__.py index 17b1465..d2e8de2 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1 +1 @@ -"""Tests for flightradar24-client library.""" +"""Tests for flightradar-client library.""" diff --git a/tests/test_dump1090_aircrafts.py b/tests/test_dump1090_aircrafts.py index 4a2086f..ad18ce9 100644 --- a/tests/test_dump1090_aircrafts.py +++ b/tests/test_dump1090_aircrafts.py @@ -5,9 +5,9 @@ from aioresponses import aioresponses import datetime -from flightradar24_client import FeedEntry -from flightradar24_client.consts import UPDATE_OK, UPDATE_ERROR -from flightradar24_client.dump1090_aircrafts import Dump1090AircraftsFeed, \ +from flightradar_client import FeedEntry +from flightradar_client.consts import UPDATE_OK, UPDATE_ERROR +from flightradar_client.dump1090_aircrafts import Dump1090AircraftsFeed, \ Dump1090AircraftsFeedAggregator, Dump1090AircraftsFeedManager from tests.utils import load_fixture diff --git a/tests/test_fr24_flights.py b/tests/test_fr24_flights.py index a3b4d87..7c6437f 100644 --- a/tests/test_fr24_flights.py +++ b/tests/test_fr24_flights.py @@ -5,14 +5,14 @@ from aioresponses import aioresponses import datetime -from flightradar24_client import FeedEntry, FlightradarException -from flightradar24_client.consts import UPDATE_OK, UPDATE_ERROR -from flightradar24_client.fr24_flights import Flightradar24FlightsFeed, \ - Flightradar24FlightsFeedAggregator, Flightradar24FlightsFeedManager +from flightradar_client import FeedEntry, FlightradarException +from flightradar_client.consts import UPDATE_OK, UPDATE_ERROR +from flightradar_client.fr24feed_flights import FlightradarFlightsFeed, \ + FlightradarFlightsFeedAggregator, FlightradarFlightsFeedManager from tests.utils import load_fixture -class TestFlightradar24FlightsFeed(asynctest.TestCase): +class TestFlightradarFlightsFeed(asynctest.TestCase): """Test the Flightsradar24 feed.""" @aioresponses() @@ -23,8 +23,8 @@ async def test_update_ok(self, mock_aioresponse): body=load_fixture('fr24-flights-1.json')) async with aiohttp.ClientSession() as session: - feed = Flightradar24FlightsFeed(home_coordinates, session) - assert repr(feed) == "" @@ -59,9 +59,9 @@ async def test_update_custom_url(self, mock_aioresponse): body=load_fixture('fr24-flights-1.json')) async with aiohttp.ClientSession() as session: - feed = Flightradar24FlightsFeed(home_coordinates, session, + feed = FlightradarFlightsFeed(home_coordinates, session, url=custom_url) - assert repr(feed) == "" @@ -81,9 +81,9 @@ async def test_update_ok_filter_radius(self, mock_aioresponse): body=load_fixture('fr24-flights-1.json')) async with aiohttp.ClientSession() as session: - feed = Flightradar24FlightsFeed(home_coordinates, session, + feed = FlightradarFlightsFeed(home_coordinates, session, filter_radius=300) - assert repr(feed) == "" @@ -101,7 +101,7 @@ async def test_missing_session(self, mock_aioresponse): async with aiohttp.ClientSession() as session: with self.assertRaises(FlightradarException): - feed = Flightradar24FlightsFeed(home_coordinates, None) + feed = FlightradarFlightsFeed(home_coordinates, None) @aioresponses() async def test_update_error(self, mock_aioresponse): @@ -112,7 +112,7 @@ async def test_update_error(self, mock_aioresponse): body='ERROR') async with aiohttp.ClientSession() as session: - feed = Flightradar24FlightsFeed(home_coordinates, session) + feed = FlightradarFlightsFeed(home_coordinates, session) status, entries = await feed.update() assert status == UPDATE_ERROR @@ -125,7 +125,7 @@ async def test_update_with_client_error(self, mock_aioresponse): exception=aiohttp.ClientError()) async with aiohttp.ClientSession() as session: - feed = Flightradar24FlightsFeed(home_coordinates, session) + feed = FlightradarFlightsFeed(home_coordinates, session) status, entries = await feed.update() assert status == UPDATE_ERROR self.assertIsNone(entries) @@ -138,7 +138,7 @@ async def test_update_with_timeout_error(self, mock_aioresponse): exception=asyncio.TimeoutError()) async with aiohttp.ClientSession() as session: - feed = Flightradar24FlightsFeed(home_coordinates, session) + feed = FlightradarFlightsFeed(home_coordinates, session) status, entries = await feed.update() assert status == UPDATE_ERROR self.assertIsNone(entries) @@ -149,10 +149,11 @@ async def test_feed_aggregator(self, mock_aioresponse): home_coordinates = (-31.0, 151.0) async with aiohttp.ClientSession() as session: - feed_aggregator = Flightradar24FlightsFeedAggregator( + feed_aggregator = FlightradarFlightsFeedAggregator( home_coordinates, session) - assert repr(feed_aggregator) == " Date: Tue, 4 Dec 2018 00:10:37 +1100 Subject: [PATCH 2/2] renaming static files --- .../{fr24-flights.json => fr24feed-flights.json} | 0 ...24-flights-1.json => fr24feed-flights-1.json} | 0 ...24-flights-2.json => fr24feed-flights-2.json} | 0 ...24-flights-3.json => fr24feed-flights-3.json} | 0 tests/test_fr24_flights.py | 16 ++++++++-------- 5 files changed, 8 insertions(+), 8 deletions(-) rename samples/{fr24-flights.json => fr24feed-flights.json} (100%) rename tests/fixtures/{fr24-flights-1.json => fr24feed-flights-1.json} (100%) rename tests/fixtures/{fr24-flights-2.json => fr24feed-flights-2.json} (100%) rename tests/fixtures/{fr24-flights-3.json => fr24feed-flights-3.json} (100%) diff --git a/samples/fr24-flights.json b/samples/fr24feed-flights.json similarity index 100% rename from samples/fr24-flights.json rename to samples/fr24feed-flights.json diff --git a/tests/fixtures/fr24-flights-1.json b/tests/fixtures/fr24feed-flights-1.json similarity index 100% rename from tests/fixtures/fr24-flights-1.json rename to tests/fixtures/fr24feed-flights-1.json diff --git a/tests/fixtures/fr24-flights-2.json b/tests/fixtures/fr24feed-flights-2.json similarity index 100% rename from tests/fixtures/fr24-flights-2.json rename to tests/fixtures/fr24feed-flights-2.json diff --git a/tests/fixtures/fr24-flights-3.json b/tests/fixtures/fr24feed-flights-3.json similarity index 100% rename from tests/fixtures/fr24-flights-3.json rename to tests/fixtures/fr24feed-flights-3.json diff --git a/tests/test_fr24_flights.py b/tests/test_fr24_flights.py index 7c6437f..aa1b060 100644 --- a/tests/test_fr24_flights.py +++ b/tests/test_fr24_flights.py @@ -20,7 +20,7 @@ async def test_update_ok(self, mock_aioresponse): """Test updating feed is ok.""" home_coordinates = (-31.0, 151.0) mock_aioresponse.get('http://localhost:8754/flights.json', status=200, - body=load_fixture('fr24-flights-1.json')) + body=load_fixture('fr24feed-flights-1.json')) async with aiohttp.ClientSession() as session: feed = FlightradarFlightsFeed(home_coordinates, session) @@ -56,7 +56,7 @@ async def test_update_custom_url(self, mock_aioresponse): home_coordinates = (-31.0, 151.0) custom_url = 'http://something:9876/foo/bar.json' mock_aioresponse.get(custom_url, status=200, - body=load_fixture('fr24-flights-1.json')) + body=load_fixture('fr24feed-flights-1.json')) async with aiohttp.ClientSession() as session: feed = FlightradarFlightsFeed(home_coordinates, session, @@ -78,7 +78,7 @@ async def test_update_ok_filter_radius(self, mock_aioresponse): """Test updating feed is ok with filter radius.""" home_coordinates = (-31.0, 151.0) mock_aioresponse.get('http://localhost:8754/flights.json', status=200, - body=load_fixture('fr24-flights-1.json')) + body=load_fixture('fr24feed-flights-1.json')) async with aiohttp.ClientSession() as session: feed = FlightradarFlightsFeed(home_coordinates, session, @@ -97,7 +97,7 @@ async def test_missing_session(self, mock_aioresponse): """Test updating feed without supplying client session.""" home_coordinates = (-31.0, 151.0) mock_aioresponse.get('http://localhost:8754/flights.json', status=200, - body=load_fixture('fr24-flights-1.json')) + body=load_fixture('fr24feed-flights-1.json')) async with aiohttp.ClientSession() as session: with self.assertRaises(FlightradarException): @@ -162,7 +162,7 @@ async def test_feed_aggregator(self, mock_aioresponse): # Update 1 mock_aioresponse.get('http://localhost:8754/flights.json', status=200, - body=load_fixture('fr24-flights-1.json')) + body=load_fixture('fr24feed-flights-1.json')) status, entries = await feed_aggregator.update() assert status == UPDATE_OK self.assertIsNotNone(entries) @@ -179,7 +179,7 @@ async def test_feed_aggregator(self, mock_aioresponse): # Update 2 mock_aioresponse.get('http://localhost:8754/flights.json', status=200, - body=load_fixture('fr24-flights-2.json')) + body=load_fixture('fr24feed-flights-2.json')) status, entries = await feed_aggregator.update() assert status == UPDATE_OK self.assertIsNotNone(entries) @@ -210,7 +210,7 @@ async def test_feed_manager(self, mock_aioresponse): """Test the feed manager.""" home_coordinates = (-31.0, 151.0) mock_aioresponse.get('http://localhost:8754/flights.json', status=200, - body=load_fixture('fr24-flights-1.json')) + body=load_fixture('fr24feed-flights-1.json')) # This will just record calls and keep track of external ids. generated_entity_external_ids = [] @@ -264,7 +264,7 @@ async def _remove_entity(external_id): mock_aioresponse.get('http://localhost:8754/flights.json', status=200, - body=load_fixture('fr24-flights-3.json')) + body=load_fixture('fr24feed-flights-3.json')) await feed_manager.update(None) entries = feed_manager.feed_entries