From 256575688792df1f99873231f566b1a466e572bf Mon Sep 17 00:00:00 2001 From: Piotr Maslanka <piotr.maslanka@henrietta.com.pl> Date: Sat, 9 Dec 2017 02:49:29 +0100 Subject: [PATCH] refactor --- README.md | 6 +++--- firanka/__init__.py | 2 +- firanka/{series => }/exceptions.py | 6 ++++-- firanka/{series/range.py => ranges.py} | 20 +++++++++++--------- firanka/series/__init__.py | 9 --------- firanka/series/series.py | 10 ++++++---- requirements.txt | 1 - tests/test_series/test_range.py | 5 +++-- tests/test_series/test_series.py | 4 +++- 9 files changed, 31 insertions(+), 32 deletions(-) rename firanka/{series => }/exceptions.py (82%) rename firanka/{series/range.py => ranges.py} (95%) diff --git a/README.md b/README.md index e3a49d8..c71f28c 100644 --- a/README.md +++ b/README.md @@ -41,14 +41,14 @@ to know more about series operations. ### DiscreteSeries To use a _DiscreteSeries_ you must give it a set of data to work with. These -will define intervals, left-closed, right-open. Ie. - +will define intervals with given values, left-closed, right-open. as in: ```python fs = DiscreteSeries([(0,1), (3, 4), (5, 6)]) fs[0.5] == 1 fs[3] == 4 fs[5] == 6 +fs.domain == '<0;5>' # fs[6] - NotInDomainError's ``` @@ -100,7 +100,7 @@ _ValueError_ will be thrown. ## Ranges -Can be imported from _sai.series_. +Can be imported from _sai.ranges_. Range would have been better called an **interval**. It is a continuous subset of the real number line. diff --git a/firanka/__init__.py b/firanka/__init__.py index 11d27f8..66a87bb 100644 --- a/firanka/__init__.py +++ b/firanka/__init__.py @@ -1 +1 @@ -__version__ = '0.1' +__version__ = '0.1.5' diff --git a/firanka/series/exceptions.py b/firanka/exceptions.py similarity index 82% rename from firanka/series/exceptions.py rename to firanka/exceptions.py index f8d6a28..5a960de 100644 --- a/firanka/series/exceptions.py +++ b/firanka/exceptions.py @@ -1,8 +1,10 @@ # coding=UTF-8 from __future__ import print_function, absolute_import, division -import six -import logging +__all__ = [ + 'FirankaError', + 'NotInDomainError', +] class FirankaError(Exception): """ diff --git a/firanka/series/range.py b/firanka/ranges.py similarity index 95% rename from firanka/series/range.py rename to firanka/ranges.py index a5e4569..9e5c64e 100644 --- a/firanka/series/range.py +++ b/firanka/ranges.py @@ -1,15 +1,17 @@ # coding=UTF-8 from __future__ import print_function, absolute_import, division import six -import logging -import re import functools import math -logger = logging.getLogger(__name__) +__all__ = [ + 'Range', + 'REAL_SET', + 'EMPTY_SET' +] -def pre_range(fun): +def _pre_range(fun): @functools.wraps(fun) def inner(self, arg, *args, **kwargs): if not isinstance(arg, Range): @@ -100,7 +102,7 @@ class Range(object): '>' if self.right_inc else ')', ) - @pre_range + @_pre_range def intersection(self, y): if self.start > y.start: return y.intersection(self) @@ -108,10 +110,10 @@ class Range(object): assert self.start <= y.start if (self.stop < y.start) or (y.stop < y.start): - return EMPTY_RANGE + return EMPTY_SET if self.stop == y.start and not (self.right_inc and y.left_inc): - return EMPTY_RANGE + return EMPTY_SET if self.start == y.start: start = self.start @@ -130,7 +132,7 @@ class Range(object): return Range(start, stop, left_inc, right_inc) - @pre_range + @_pre_range def __eq__(self, other): if self.is_empty() and other.is_empty(): return True @@ -140,5 +142,5 @@ class Range(object): return hash(self.start) ^ hash(self.stop) -EMPTY_RANGE = Range(0, 0, False, False) +EMPTY_SET = Range(0, 0, False, False) REAL_SET = Range(float('-inf'), float('+inf'), False, False) diff --git a/firanka/series/__init__.py b/firanka/series/__init__.py index fb30d50..3407ef6 100644 --- a/firanka/series/__init__.py +++ b/firanka/series/__init__.py @@ -1,18 +1,9 @@ # coding=UTF-8 from __future__ import print_function, absolute_import, division -import six -import logging -from .exceptions import NotInDomainError, FirankaError -from .range import Range, REAL_SET from .series import DiscreteSeries, FunctionSeries, ModuloSeries, Series - __all__ = [ - 'REAL_SET', - 'FirankaError', - 'NotInDomainError', - 'Range', 'FunctionSeries', 'DiscreteSeries', 'ModuloSeries', diff --git a/firanka/series/series.py b/firanka/series/series.py index d5847d2..dcc777a 100644 --- a/firanka/series/series.py +++ b/firanka/series/series.py @@ -1,11 +1,13 @@ # coding=UTF-8 from __future__ import print_function, absolute_import, division -import six + import math -from .range import Range, REAL_SET, EMPTY_RANGE -from .exceptions import NotInDomainError +import six + +from firanka.exceptions import NotInDomainError +from firanka.ranges import Range, REAL_SET, EMPTY_SET class Series(object): @@ -141,7 +143,7 @@ class DiscreteSeries(Series): def __init__(self, data, domain=None): if len(data) == 0: - domain = EMPTY_RANGE + domain = EMPTY_SET elif domain is None: domain = Range(data[0][0], data[-1][0], True, True) diff --git a/requirements.txt b/requirements.txt index 51695ee..ffe2fce 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1 @@ six -satella diff --git a/tests/test_series/test_range.py b/tests/test_series/test_range.py index 4476b08..f116128 100644 --- a/tests/test_series/test_range.py +++ b/tests/test_series/test_range.py @@ -1,7 +1,7 @@ # coding=UTF-8 from __future__ import print_function, absolute_import, division import unittest -from firanka.series import Range +from firanka.ranges import Range class TestRange(unittest.TestCase): @@ -42,7 +42,8 @@ class TestRange(unittest.TestCase): self.assertRaises(ValueError, lambda: Range('#2;3>')) self.assertRaises(ValueError, lambda: Range('(2;3!')) self.assertRaises(ValueError, lambda: Range('<-inf;3)')) - self.assertEqual(Range(1,2,True,False), Range('<1;2)')) + self.assertEqual(Range(1, 2, True, False), Range('<1;2)')) + self.assertEqual(Range(1, 2, True, False), '<1;2)') def test_contains(self): self.assertFalse(-1 in Range('<-10;-1)')) diff --git a/tests/test_series/test_series.py b/tests/test_series/test_series.py index 219a56c..f83a952 100644 --- a/tests/test_series/test_series.py +++ b/tests/test_series/test_series.py @@ -3,7 +3,9 @@ from __future__ import print_function, absolute_import, division import six import math import unittest -from firanka.series import DiscreteSeries, FunctionSeries, Range, ModuloSeries, NotInDomainError +from firanka.series import DiscreteSeries, FunctionSeries, ModuloSeries +from firanka.ranges import Range +from firanka.exceptions import NotInDomainError NOOP = lambda x: x -- GitLab