diff --git a/.travis.yml b/.travis.yml index a807c73..9c9342d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,10 @@ language: python python: - - 2.7 - 3.3 - 3.4 + - 3.5 + - 3.6 install: # install deps diff --git a/blitzortung/__init__.py b/blitzortung/__init__.py index fb4da53..be977a9 100644 --- a/blitzortung/__init__.py +++ b/blitzortung/__init__.py @@ -53,7 +53,7 @@ class Error(Exception): from . import db INJECTOR = injector.Injector( - [config.ConfigModule(), db.DbModule()]) + [config.ConfigModule(), db.DbModule()]) __all__ = [ diff --git a/blitzortung/builder/raw_signal.py b/blitzortung/builder/raw_signal.py index fe4dd3b..877d11a 100644 --- a/blitzortung/builder/raw_signal.py +++ b/blitzortung/builder/raw_signal.py @@ -94,8 +94,8 @@ class RawWaveformEvent(Event): class for building of raw signal objects """ - @inject(channel_builder=ChannelWaveform) - def __init__(self, channel_builder): + @inject + def __init__(self, channel_builder: ChannelWaveform): super(RawWaveformEvent, self).__init__() self.altitude = 0 self.channels = [] diff --git a/blitzortung/cache.py b/blitzortung/cache.py index aab4ec6..e030971 100644 --- a/blitzortung/cache.py +++ b/blitzortung/cache.py @@ -19,6 +19,7 @@ """ from __future__ import division + import time diff --git a/blitzortung/config.py b/blitzortung/config.py index 40e39a9..715fee8 100644 --- a/blitzortung/config.py +++ b/blitzortung/config.py @@ -25,13 +25,13 @@ except ImportError: import ConfigParser as configparser -from injector import Module, singleton, provides, inject +from injector import Module, singleton, inject, provider @singleton class Config(object): - @inject(config_parser=configparser.ConfigParser) - def __init__(self, config_parser): + @inject + def __init__(self, config_parser: configparser.ConfigParser): self.config_parser = config_parser def get_username(self): @@ -69,8 +69,8 @@ def config(): class ConfigModule(Module): @singleton - @provides(configparser.ConfigParser) - def provide_config_parser(self): + @provider + def provide_config_parser(self) -> configparser.ConfigParser: config_parser = configparser.ConfigParser() config_parser.read('/etc/blitzortung.conf') return config_parser diff --git a/blitzortung/data.py b/blitzortung/data.py index 607ca8d..ffad919 100644 --- a/blitzortung/data.py +++ b/blitzortung/data.py @@ -21,23 +21,23 @@ from __future__ import unicode_literals, generators import datetime +import math import pytz import six -from . import types -import math from blitzortung.geom import GridElement +from . import typedef -class Timestamp(types.EqualityAndHash): +class Timestamp(typedef.EqualityAndHash): timestamp_string_minimal_fractional_seconds_length = 20 timestamp_string_microseconds_length = 26 __slots__ = ['datetime', 'nanosecond'] - def __init__(self, date_time=datetime.datetime.utcnow().replace(tzinfo=pytz.UTC), nanosecond=0): - if type(date_time) == str or type(date_time) == unicode: + def __init__(self, date_time=datetime.datetime.utcnow().replace(tzinfo=pytz.UTC), nanosecond: int = 0): + if type(date_time) == str: date_time, date_time_nanosecond = Timestamp.from_timestamp(date_time) nanosecond += date_time_nanosecond elif type(date_time) == int: @@ -45,7 +45,7 @@ def __init__(self, date_time=datetime.datetime.utcnow().replace(tzinfo=pytz.UTC) nanosecond += date_time_nanosecond if nanosecond < 0 or nanosecond > 999: - microdelta = nanosecond / 1000 + microdelta = nanosecond // 1000 date_time += datetime.timedelta(microseconds=microdelta) nanosecond -= microdelta * 1000 @@ -130,25 +130,29 @@ def __lt__(self, other): if type(other) == datetime.datetime: return self.datetime < other else: - return self.datetime < other.datetime or (self.datetime == other.datetime and self.nanosecond < other.nanosecond) + return self.datetime < other.datetime or ( + self.datetime == other.datetime and self.nanosecond < other.nanosecond) def __le__(self, other): if type(other) == datetime.datetime: return self.datetime <= other else: - return self.datetime < other.datetime or (self.datetime == other.datetime and self.nanosecond <= other.nanosecond) + return self.datetime < other.datetime or ( + self.datetime == other.datetime and self.nanosecond <= other.nanosecond) def __gt__(self, other): if type(other) == datetime.datetime: return self.datetime > other else: - return self.datetime > other.datetime or (self.datetime == other.datetime and self.nanosecond > other.nanosecond) + return self.datetime > other.datetime or ( + self.datetime == other.datetime and self.nanosecond > other.nanosecond) def __ge__(self, other): if type(other) == datetime.datetime: return self.datetime >= other else: - return self.datetime > other.datetime or (self.datetime == other.datetime and self.nanosecond >= other.nanosecond) + return self.datetime > other.datetime or ( + self.datetime == other.datetime and self.nanosecond >= other.nanosecond) def __add__(self, other): if type(other) == Timedelta: @@ -185,10 +189,10 @@ def __repr__(self): NaT = Timestamp(None) -class Timedelta(types.EqualityAndHash): +class Timedelta(typedef.EqualityAndHash): def __init__(self, timedelta=datetime.timedelta(), nanodelta=0): if nanodelta < 0 or nanodelta > 999: - microdelta = nanodelta / 1000 + microdelta = nanodelta // 1000 timedelta += datetime.timedelta(microseconds=microdelta) nanodelta -= microdelta * 1000 self.timedelta = timedelta @@ -206,7 +210,7 @@ def __repr__(self): return "Timedelta({}, {})".format(self.timedelta, self.nanodelta) -class Event(types.Point): +class Event(typedef.Point): time_format = '%Y-%m-%d %H:%M:%S' time_format_fractional_seconds = time_format + '.%f' @@ -298,7 +302,8 @@ def __str__(self): offline_since = self.timestamp status_char = "*" if offline_since is None else "-" try: - status_text = "" if offline_since is None else " offline since " + offline_since.strftime("%Y-%m-%d %H:%M %Z") + status_text = "" if offline_since is None else " offline since " + offline_since.strftime( + "%Y-%m-%d %H:%M %Z") except ValueError: status_text = 'n/a' return u"%s%3d/%3d '%s' '%s' (%.4f, %.4f)%s" % ( diff --git a/blitzortung/dataimport/base.py b/blitzortung/dataimport/base.py index c6e52c3..d49d096 100644 --- a/blitzortung/dataimport/base.py +++ b/blitzortung/dataimport/base.py @@ -24,10 +24,7 @@ import logging import datetime -try: - from html.parser import HTMLParser -except ImportError: - from HTMLParser import HTMLParser +from html.parser import HTMLParser from injector import inject @@ -60,8 +57,8 @@ class HttpFileTransport(FileTransport): logger = logging.getLogger(__name__) html_parser = HTMLParser() - @inject(configuration=config.Config) - def __init__(self, configuration, session=None): + @inject + def __init__(self, configuration: config.Config, session=None): self.config = configuration self.session = session if session else Session() diff --git a/blitzortung/dataimport/raw_signal.py b/blitzortung/dataimport/raw_signal.py index 12f8f0b..f121798 100644 --- a/blitzortung/dataimport/raw_signal.py +++ b/blitzortung/dataimport/raw_signal.py @@ -31,9 +31,8 @@ class RawSignalsBlitzortungDataProvider(object): logger = logging.getLogger(__name__) - @inject(data_transport=HttpFileTransport, data_url=BlitzortungDataPath, - url_path_generator=BlitzortungDataPathGenerator, waveform_builder=builder.RawWaveformEvent) - def __init__(self, data_transport, data_url, url_path_generator, waveform_builder): + @inject + def __init__(self, data_transport: HttpFileTransport, data_url: BlitzortungDataPath, url_path_generator: BlitzortungDataPathGenerator, waveform_builder: builder.RawWaveformEvent): self.data_transport = data_transport self.data_url = data_url self.url_path_generator = url_path_generator diff --git a/blitzortung/dataimport/station.py b/blitzortung/dataimport/station.py index fd86378..a14f935 100644 --- a/blitzortung/dataimport/station.py +++ b/blitzortung/dataimport/station.py @@ -31,9 +31,8 @@ class StationsBlitzortungDataProvider(object): logger = logging.getLogger(__name__) - @inject(data_transport=HttpFileTransport, data_url=BlitzortungDataPath, - station_builder=builder.Station) - def __init__(self, data_transport, data_url, station_builder): + @inject + def __init__(self, data_transport:HttpFileTransport, data_url:BlitzortungDataPath, station_builder:builder.Station): self.data_transport = data_transport self.data_url = data_url self.station_builder = station_builder diff --git a/blitzortung/dataimport/strike.py b/blitzortung/dataimport/strike.py index a3b97eb..7397ae9 100644 --- a/blitzortung/dataimport/strike.py +++ b/blitzortung/dataimport/strike.py @@ -29,13 +29,14 @@ from .base import HttpFileTransport, BlitzortungDataPath, BlitzortungDataPathGenerator from .. import builder + @singleton class StrikesBlitzortungDataProvider(object): logger = logging.getLogger(__name__) - @inject(data_transport=HttpFileTransport, data_url=BlitzortungDataPath, - url_path_generator=BlitzortungDataPathGenerator, strike_builder=builder.Strike) - def __init__(self, data_transport, data_url, url_path_generator, strike_builder): + @inject + def __init__(self, data_transport: HttpFileTransport, data_url: BlitzortungDataPath, + url_path_generator: BlitzortungDataPathGenerator, strike_builder: builder.Strike): self.data_transport = data_transport self.data_url = data_url self.url_path_generator = url_path_generator @@ -54,7 +55,7 @@ def get_strikes_since(self, latest_strike=None, region=1): try: strike = self.strike_builder.from_line(strike_line).build() except builder.BuilderError as e: - self.logger.warn("%s: %s (%s)" % (e.__class__, e.args, strike_line)) + self.logger.warning("%s: %s (%s)" % (e.__class__, e.args, strike_line)) continue except Exception as e: self.logger.error("%s: %s (%s)" % (e.__class__, e.args, strike_line)) diff --git a/blitzortung/db/__init__.py b/blitzortung/db/__init__.py index db18595..204fc87 100644 --- a/blitzortung/db/__init__.py +++ b/blitzortung/db/__init__.py @@ -18,7 +18,7 @@ """ -from injector import Module, provides, singleton, inject +from injector import Module, provider, singleton, inject import atexit @@ -51,9 +51,9 @@ def cleanup(connection_pool): connection_pool.closeall() @singleton - @provides(psycopg2.pool.ThreadedConnectionPool) - @inject(config=config.Config) - def provide_psycopg2_connection_pool(self, config): + @provider + @inject + def provide_psycopg2_connection_pool(self, config: config.Config) -> psycopg2.pool.ThreadedConnectionPool: connection_pool = psycopg2.pool.ThreadedConnectionPool(4, 50, config.get_db_connection_string()) atexit.register(self.cleanup, connection_pool) return connection_pool diff --git a/blitzortung/db/mapper.py b/blitzortung/db/mapper.py index 92e97dc..d7388d7 100644 --- a/blitzortung/db/mapper.py +++ b/blitzortung/db/mapper.py @@ -23,7 +23,7 @@ import pytz import shapely.wkb -import blitzortung.builder +from .. import builder class ObjectMapper(object): @@ -42,8 +42,8 @@ def convert_to_timezone(timestamp, target_timezone=None): class Strike(ObjectMapper): - @inject(strike_builder=blitzortung.builder.Strike) - def __init__(self, strike_builder): + @inject + def __init__(self, strike_builder: builder.Strike): self.strike_builder = strike_builder def create_object(self, result, **kwargs): @@ -64,8 +64,8 @@ def create_object(self, result, **kwargs): class Station(ObjectMapper): - @inject(station_builder=blitzortung.builder.Station) - def __init__(self, station_builder): + @inject + def __init__(self, station_builder: builder.Station): self.station_builder = station_builder def create_object(self, result, **kwargs): @@ -85,8 +85,8 @@ def create_object(self, result, **kwargs): class StationOffline(ObjectMapper): - @inject(station_offline_builder=blitzortung.builder.StationOffline) - def __init__(self, station_offline_builder): + @inject + def __init__(self, station_offline_builder: builder.StationOffline): self.station_offline_builder = station_offline_builder def create_object(self, result, **kwargs): diff --git a/blitzortung/db/table.py b/blitzortung/db/table.py index 1e0d9df..c1b6a0d 100644 --- a/blitzortung/db/table.py +++ b/blitzortung/db/table.py @@ -232,9 +232,8 @@ class Strike(Base): TABLE_NAME = 'strikes' - @inject(db_connection_pool=psycopg2.pool.ThreadedConnectionPool, query_builder_=query_builder.Strike, - strike_mapper=mapper.Strike) - def __init__(self, db_connection_pool, query_builder_, strike_mapper): + @inject + def __init__(self, db_connection_pool: psycopg2.pool.ThreadedConnectionPool, query_builder_:query_builder.Strike, strike_mapper: mapper.Strike): super(Strike, self).__init__(db_connection_pool) self.query_builder = query_builder_ @@ -338,8 +337,8 @@ class Station(Base): ALTER SEQUENCE stations_id_seq RESTART 1; """ - @inject(db_connection_pool=psycopg2.pool.ThreadedConnectionPool, station_mapper=mapper.Station) - def __init__(self, db_connection_pool, station_mapper): + @inject + def __init__(self, db_connection_pool: psycopg2.pool.ThreadedConnectionPool, station_mapper: mapper.Station): super(Station, self).__init__(db_connection_pool) self.table_name = 'stations' @@ -394,9 +393,8 @@ class StationOffline(Base): ALTER SEQUENCE stations_offline_id_seq RESTART 1; """ - @inject(db_connection_pool=psycopg2.pool.ThreadedConnectionPool, - station_offline_mapper=mapper.StationOffline) - def __init__(self, db_connection_pool, station_offline_mapper): + @inject + def __init__(self, db_connection_pool: psycopg2.pool.ThreadedConnectionPool, station_offline_mapper: mapper.StationOffline): super(StationOffline, self).__init__(db_connection_pool) self.table_name = 'stations_offline' @@ -441,8 +439,8 @@ class Location(Base): """ - @inject(db_connection_pool=psycopg2.pool.ThreadedConnectionPool) - def __init__(self, db_connection_pool): + @inject + def __init__(self, db_connection_pool: psycopg2.pool.ThreadedConnectionPool): super(Location, self).__init__(db_connection_pool) self.schema_name = 'geo' self.table_name = 'geonames' @@ -588,8 +586,8 @@ class ServiceLogTotal(ServiceLogBase): CREATE INDEX servicelog_total_timestamp ON servicelog_total USING btree("timestamp"); """ - @inject(db_connection_pool=psycopg2.pool.ThreadedConnectionPool) - def __init__(self, db_connection_pool): + @inject + def __init__(self, db_connection_pool: psycopg2.pool.ThreadedConnectionPool): super(ServiceLogTotal, self).__init__(db_connection_pool) self.table_name = 'servicelog_total' @@ -614,8 +612,8 @@ class ServiceLogCountry(ServiceLogBase): CREATE INDEX servicelog_country_timestamp ON servicelog_country USING btree("timestamp"); """ - @inject(db_connection_pool=psycopg2.pool.ThreadedConnectionPool) - def __init__(self, db_connection_pool): + @inject + def __init__(self, db_connection_pool: psycopg2.pool.ThreadedConnectionPool): super(ServiceLogCountry, self).__init__(db_connection_pool) self.table_name = 'servicelog_country' @@ -641,8 +639,8 @@ class ServiceLogVersion(ServiceLogBase): CREATE INDEX servicelog_version_timestamp ON servicelog_version USING btree("timestamp"); """ - @inject(db_connection_pool=psycopg2.pool.ThreadedConnectionPool) - def __init__(self, db_connection_pool): + @inject + def __init__(self, db_connection_pool: psycopg2.pool.ThreadedConnectionPool): super(ServiceLogVersion, self).__init__(db_connection_pool) self.table_name = 'servicelog_version' @@ -668,8 +666,8 @@ class ServiceLogParameters(ServiceLogBase): CREATE INDEX servicelog_parameters_timestamp ON servicelog_parameters USING btree("timestamp"); """ - @inject(db_connection_pool=psycopg2.pool.ThreadedConnectionPool) - def __init__(self, db_connection_pool): + @inject + def __init__(self, db_connection_pool: psycopg2.pool.ThreadedConnectionPool): super(ServiceLogParameters, self).__init__(db_connection_pool) self.table_name = 'servicelog_parameters' diff --git a/blitzortung/files.py b/blitzortung/files.py index 1734821..4d00e2b 100644 --- a/blitzortung/files.py +++ b/blitzortung/files.py @@ -19,15 +19,17 @@ """ from __future__ import print_function -import os -import subprocess -import glob + import datetime +import glob import json +import os +import subprocess + import pandas as pd -import blitzortung.builder import blitzortung +import blitzortung.builder class Raw(object): diff --git a/blitzortung/geom.py b/blitzortung/geom.py index 36b37ad..01f131e 100644 --- a/blitzortung/geom.py +++ b/blitzortung/geom.py @@ -20,8 +20,8 @@ import math from abc import ABCMeta, abstractmethod -import pyproj +import pyproj import shapely.geometry @@ -82,8 +82,8 @@ def contains(self, point): @property def env(self): return shapely.geometry.LinearRing( - [(self.x_min, self.y_min), (self.x_min, self.y_max), (self.x_max, self.y_max), - (self.x_max, self.y_min)]) + [(self.x_min, self.y_min), (self.x_min, self.y_max), (self.x_max, self.y_max), + (self.x_max, self.y_min)]) def __repr__(self): return 'Envelope(x: %.4f..%.4f, y: %.4f..%.4f)' % ( diff --git a/blitzortung/logger.py b/blitzortung/logger.py index 1a1ec5b..7408fab 100644 --- a/blitzortung/logger.py +++ b/blitzortung/logger.py @@ -29,4 +29,4 @@ def create_console_handler(): def get_logger_name(clazz): - return "{}.{}".format(clazz.__module__, clazz.__name__) \ No newline at end of file + return "{}.{}".format(clazz.__module__, clazz.__name__) diff --git a/blitzortung/service/histogram.py b/blitzortung/service/histogram.py index 9d60465..b87f477 100644 --- a/blitzortung/service/histogram.py +++ b/blitzortung/service/histogram.py @@ -24,8 +24,8 @@ class HistogramQuery(object): - @inject(strike_query_builder=blitzortung.db.query_builder.Strike) - def __init__(self, strike_query_builder): + @inject + def __init__(self, strike_query_builder: blitzortung.db.query_builder.Strike): self.strike_query_builder = strike_query_builder def create(self, connection, minute_length, minute_offset, region=None, envelope=None, count_threshold=0): diff --git a/blitzortung/service/strike.py b/blitzortung/service/strike.py index f34b27c..a9d1250 100644 --- a/blitzortung/service/strike.py +++ b/blitzortung/service/strike.py @@ -39,8 +39,8 @@ def __init__(self, statsd_client, end_time): class StrikeQuery(object): - @inject(strike_query_builder=db.query_builder.Strike, strike_mapper=db.mapper.Strike) - def __init__(self, strike_query_builder, strike_mapper): + @inject + def __init__(self, strike_query_builder: db.query_builder.Strike, strike_mapper: db.mapper.Strike): self.strike_query_builder = strike_query_builder self.strike_mapper = strike_mapper diff --git a/blitzortung/service/strike_grid.py b/blitzortung/service/strike_grid.py index f3ee647..8be860c 100644 --- a/blitzortung/service/strike_grid.py +++ b/blitzortung/service/strike_grid.py @@ -38,8 +38,8 @@ def __init__(self, statsd_client, grid_parameters, time_interval): class StrikeGridQuery(object): - @inject(strike_query_builder=db.query_builder.Strike) - def __init__(self, strike_query_builder): + @inject + def __init__(self, strike_query_builder: db.query_builder.Strike): self.strike_query_builder = strike_query_builder def create(self, grid_parameters, minute_length, minute_offset, count_threshold, connection, statsd_client): diff --git a/blitzortung/types.py b/blitzortung/typedef.py similarity index 99% rename from blitzortung/types.py rename to blitzortung/typedef.py index 891b0fe..ef341d0 100644 --- a/blitzortung/types.py +++ b/blitzortung/typedef.py @@ -19,6 +19,7 @@ """ import math + import pyproj diff --git a/blitzortung/util.py b/blitzortung/util.py index 4100e10..cb18fe2 100644 --- a/blitzortung/util.py +++ b/blitzortung/util.py @@ -18,10 +18,10 @@ """ -import sys - import datetime +import sys import time + import pytz from blitzortung.data import Timestamp @@ -72,7 +72,8 @@ def round_time(time_value, duration): """ duration_seconds = total_seconds(duration) seconds = (total_seconds(time_value) // duration_seconds) * duration_seconds - time_value.nanosecond = 0 + if hasattr(time_value, 'nanosecond'): + time_value.nanosecond = 0 return time_value.replace( hour=seconds // 3600, minute=seconds // 60 % 60, @@ -102,4 +103,5 @@ def time_intervals(start_time, duration, end_time=None): def force_range(lower_limit, value, upper_limit): return lower_limit if value < lower_limit else upper_limit if value > upper_limit else value + next_element = (lambda iterator: iterator.next()) if sys.version < '3' else (lambda iterator: next(iterator)) diff --git a/setup.py b/setup.py index 128c63b..a3bbf13 100755 --- a/setup.py +++ b/setup.py @@ -15,7 +15,7 @@ author='Andreas Wuerl', author_email='blitzortung@tryb.de', url='http://www.blitzortung.org/', - license='GPL-3 License', + license='Apache', long_description="""a library providing python classes for blitzortung operation""", platforms='OS Independent', classifiers=[ diff --git a/tests/test_cache.py b/tests/test_cache.py index 2efa0c2..80fb9d9 100644 --- a/tests/test_cache.py +++ b/tests/test_cache.py @@ -49,7 +49,7 @@ def test_get_hit_count(self): assert_that(self.cache_entry.get_hit_count(), is_(0)) -class TestObject(object): +class ObjectForTest(object): def __init__(self, *args, **kwargs): self.__args = args self.__kwargs = kwargs @@ -73,22 +73,22 @@ def test_get_time_to_live(self): assert_that(self.cache.get_time_to_live(), is_(60)) def test_get(self): - cached_object = self.cache.get(TestObject) - assert_that(cached_object, instance_of(TestObject)) + cached_object = self.cache.get(ObjectForTest) + assert_that(cached_object, instance_of(ObjectForTest)) def test_get_caches_objects(self): - cached_object = self.cache.get(TestObject) - assert_that(self.cache.get(TestObject), is_(same_instance(cached_object))) + cached_object = self.cache.get(ObjectForTest) + assert_that(self.cache.get(ObjectForTest), is_(same_instance(cached_object))) def test_clear_clears_cache(self): - cached_object = self.cache.get(TestObject) + cached_object = self.cache.get(ObjectForTest) self.cache.clear() - assert_that(self.cache.get(TestObject), is_not(same_instance(cached_object))) + assert_that(self.cache.get(ObjectForTest), is_not(same_instance(cached_object))) def test_clear_resets_counters(self): - self.cache.get(TestObject) - self.cache.get(TestObject) + self.cache.get(ObjectForTest) + self.cache.get(ObjectForTest) self.cache.clear() @@ -96,14 +96,14 @@ def test_clear_resets_counters(self): def test_get_creates_new_object_if_original_object_is_expired(self): self.cache = ObjectCache(ttl_seconds=-10) - cached_object = self.cache.get(TestObject) - assert_that(self.cache.get(TestObject), is_not(same_instance(cached_object))) + cached_object = self.cache.get(ObjectForTest) + assert_that(self.cache.get(ObjectForTest), is_not(same_instance(cached_object))) def test_get_different_objects_for_different_create_objects(self): - class OtherTestObject(TestObject): + class OtherTestObject(ObjectForTest): pass - cached_object = self.cache.get(TestObject) + cached_object = self.cache.get(ObjectForTest) other_cached_object = self.cache.get(OtherTestObject) assert_that(cached_object, is_not(other_cached_object)) @@ -112,7 +112,7 @@ def test_get_with_arg_is_called_with_same_arg(self): argument1 = object() argument2 = object() - cached_object = self.cache.get(TestObject, argument1, argument2) + cached_object = self.cache.get(ObjectForTest, argument1, argument2) assert_that(cached_object.get_args(), contains(argument1, argument2)) assert_that(not cached_object.get_kwargs()) @@ -120,14 +120,14 @@ def test_get_with_arg_is_called_with_same_arg(self): def test_get_with_arg_is_cached(self): argument = object() - cached_object = self.cache.get(TestObject, argument) - assert_that(self.cache.get(TestObject, argument), is_(same_instance(cached_object))) + cached_object = self.cache.get(ObjectForTest, argument) + assert_that(self.cache.get(ObjectForTest, argument), is_(same_instance(cached_object))) def test_get_with_kwargs_is_called_with_same_kwargs(self): argument1 = object() argument2 = object() - cached_object = self.cache.get(TestObject, foo=argument1, bar=argument2) + cached_object = self.cache.get(ObjectForTest, foo=argument1, bar=argument2) assert_that(not cached_object.get_args()) assert_that(cached_object.get_kwargs(), is_({'foo': argument1, 'bar': argument2})) @@ -136,14 +136,14 @@ def test_get_with_kwargs_is_cached(self): argument1 = object() argument2 = object() - cached_object = self.cache.get(TestObject, foo=argument1, bar=argument2) - assert_that(self.cache.get(TestObject, bar=argument2, foo=argument1), is_(same_instance(cached_object))) + cached_object = self.cache.get(ObjectForTest, foo=argument1, bar=argument2) + assert_that(self.cache.get(ObjectForTest, bar=argument2, foo=argument1), is_(same_instance(cached_object))) def test_get_ratio(self): assert_that(self.cache.get_ratio(), is_(0.0)) - self.cache.get(TestObject) + self.cache.get(ObjectForTest) assert_that(self.cache.get_ratio(), is_(0.0)) - self.cache.get(TestObject) + self.cache.get(ObjectForTest) assert_that(self.cache.get_ratio(), is_(0.5)) \ No newline at end of file diff --git a/tests/test_geom.py b/tests/test_geom.py index 8bf9791..daa3230 100644 --- a/tests/test_geom.py +++ b/tests/test_geom.py @@ -26,7 +26,7 @@ from assertpy import assert_that import blitzortung.geom -import blitzortung.types +import blitzortung.typedef class GeometryForTest(blitzortung.geom.Geometry): @@ -75,21 +75,21 @@ def test_get_envelope_parameters(self): assert_that(self.envelope.y_delta).is_equal_to(5) def test_contains_point_inside_envelope(self): - self.assertTrue(self.envelope.contains(blitzortung.types.Point(0, 0))) - self.assertTrue(self.envelope.contains(blitzortung.types.Point(1, 1.5))) - self.assertTrue(self.envelope.contains(blitzortung.types.Point(-1, -1.5))) + self.assertTrue(self.envelope.contains(blitzortung.typedef.Point(0, 0))) + self.assertTrue(self.envelope.contains(blitzortung.typedef.Point(1, 1.5))) + self.assertTrue(self.envelope.contains(blitzortung.typedef.Point(-1, -1.5))) def test_contains_point_on_border(self): - self.assertTrue(self.envelope.contains(blitzortung.types.Point(0, -3))) - self.assertTrue(self.envelope.contains(blitzortung.types.Point(0, 2))) - self.assertTrue(self.envelope.contains(blitzortung.types.Point(-5, 0))) - self.assertTrue(self.envelope.contains(blitzortung.types.Point(4, 0))) + self.assertTrue(self.envelope.contains(blitzortung.typedef.Point(0, -3))) + self.assertTrue(self.envelope.contains(blitzortung.typedef.Point(0, 2))) + self.assertTrue(self.envelope.contains(blitzortung.typedef.Point(-5, 0))) + self.assertTrue(self.envelope.contains(blitzortung.typedef.Point(4, 0))) def test_does_not_contain_point_outside_border(self): - self.assertFalse(self.envelope.contains(blitzortung.types.Point(0, -3.0001))) - self.assertFalse(self.envelope.contains(blitzortung.types.Point(0, 2.0001))) - self.assertFalse(self.envelope.contains(blitzortung.types.Point(-5.0001, 0))) - self.assertFalse(self.envelope.contains(blitzortung.types.Point(4.0001, 0))) + self.assertFalse(self.envelope.contains(blitzortung.typedef.Point(0, -3.0001))) + self.assertFalse(self.envelope.contains(blitzortung.typedef.Point(0, 2.0001))) + self.assertFalse(self.envelope.contains(blitzortung.typedef.Point(-5.0001, 0))) + self.assertFalse(self.envelope.contains(blitzortung.typedef.Point(4.0001, 0))) def test_get_env(self): expected_env = shapely.geometry.LinearRing([(-5, -3), (-5, 2), (4, 2), (4, -3)]) diff --git a/tests/test_types.py b/tests/test_types.py index b276f9f..38b80c9 100644 --- a/tests/test_types.py +++ b/tests/test_types.py @@ -21,14 +21,14 @@ import unittest import math -import blitzortung.types +import blitzortung.typedef class PointTest(unittest.TestCase): def setUp(self): - self.point1 = blitzortung.types.Point(11, 49) - self.point2 = blitzortung.types.Point(12, 49) - self.point3 = blitzortung.types.Point(11, 50) + self.point1 = blitzortung.typedef.Point(11, 49) + self.point2 = blitzortung.typedef.Point(12, 49) + self.point3 = blitzortung.typedef.Point(11, 50) self.radians_factor = math.pi / 180 def test_get_coordinate_components(self):