Skip to content

Commit

Permalink
Merge dad4650 into 85b1a28
Browse files Browse the repository at this point in the history
  • Loading branch information
larrybradley committed Jan 20, 2017
2 parents 85b1a28 + dad4650 commit b82e3e7
Show file tree
Hide file tree
Showing 11 changed files with 144 additions and 137 deletions.
22 changes: 22 additions & 0 deletions regions/core/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,28 @@ class Region(object):
Base class for all regions.
"""

def __repr__(self):
if hasattr(self, 'center'):
params = [repr(self.center)]
else:
params = []
if self._repr_params is not None:
for key, val in self._repr_params:
params.append('{0}={1}'.format(key, val))
params = ', '.join(params)

return '<{0}({1})>'.format(self.__class__.__name__, params)

def __str__(self):
cls_info = [('Region', self.__class__.__name__)]
if hasattr(self, 'center'):
cls_info.append(('center', self.center))
if self._repr_params is not None:
cls_info += self._repr_params
fmt = ['{0}: {1}'.format(key, val) for key, val in cls_info]

return '\n'.join(fmt)

@abc.abstractmethod
def intersection(self, other):
"""
Expand Down
20 changes: 2 additions & 18 deletions regions/shapes/circle.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,7 @@ def __init__(self, center, radius, meta=None, visual=None):
self.radius = radius
self.meta = meta or {}
self.visual = visual or {}

def __repr__(self):
data = dict(
name=self.__class__.__name__,
center=self.center,
radius=self.radius,
)
fmt = '{name}\ncenter: {center}\nradius: {radius}'
return fmt.format(**data)
self._repr_params = [('radius', self.radius)]

@property
def area(self):
Expand Down Expand Up @@ -141,15 +133,7 @@ def __init__(self, center, radius, meta=None, visual=None):
self.radius = radius
self.meta = meta or {}
self.visual = visual or {}

def __repr__(self):
data = dict(
name=self.__class__.__name__,
center=self.center,
radius=self.radius,
)
fmt = '{name}\ncenter: {center}\nradius: {radius}'
return fmt.format(**data)
self._repr_params = [('radius', self.radius)]

@property
def area(self):
Expand Down
26 changes: 4 additions & 22 deletions regions/shapes/ellipse.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,17 +61,8 @@ def __init__(self, center, major, minor, angle=0. * u.deg, meta=None,
self.angle = angle
self.meta = meta or {}
self.visual = visual or {}

def __repr__(self):
data = dict(
name=self.__class__.__name__,
center=self.center,
major=self.major,
minor=self.minor,
angle=self.angle,
)
fmt = '{name}\ncenter: {center}\nmajor: {major}\nminor: {minor}\nangle: {angle}'
return fmt.format(**data)
self._repr_params = [('major', self.major), ('minor', self.minor),
('angle', self.angle)]

@property
def area(self):
Expand Down Expand Up @@ -175,17 +166,8 @@ def __init__(self, center, major, minor, angle=0. * u.deg, meta=None, visual=Non
self.angle = angle
self.meta = meta or {}
self.visual = visual or {}

def __repr__(self):
data = dict(
name=self.__class__.__name__,
center=self.center,
major=self.major,
minor=self.minor,
angle=self.angle,
)
fmt = '{name}\ncenter: {center}\nmajor: {major}\nminor: {minor}\nangle: {angle}'
return fmt.format(**data)
self._repr_params = [('major', self.major), ('minor', self.minor),
('angle', self.angle)]

@property
def area(self):
Expand Down
18 changes: 2 additions & 16 deletions regions/shapes/point.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,7 @@ def __init__(self, center, meta=None, visual=None):
self.center = center
self.meta = meta or {}
self.visual = visual or {}

def __repr__(self):
data = dict(
name=self.__class__.__name__,
center=self.center,
)
fmt = '{name}\ncenter: {center}'
return fmt.format(**data)
self._repr_params = None

@property
def area(self):
Expand Down Expand Up @@ -72,14 +65,7 @@ def __init__(self, center, meta=None, visual=None):
self.center = center
self.meta = meta or {}
self.visual = visual or {}

def __repr__(self):
data = dict(
name=self.__class__.__name__,
center=self.center,
)
fmt = '{name}\ncenter: {center}'
return fmt.format(**data)
self._repr_params = None

@property
def area(self):
Expand Down
18 changes: 2 additions & 16 deletions regions/shapes/polygon.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,7 @@ def __init__(self, vertices, meta=None, visual=None):
self.vertices = vertices
self.meta = meta or {}
self.visual = visual or {}

def __repr__(self):
data = dict(
name=self.__class__.__name__,
vertices=self.vertices,
)
fmt = '{name}\nvertices: {vertices}'
return fmt.format(**data)
self._repr_params = [('vertices', self.vertices)]

@property
def area(self):
Expand Down Expand Up @@ -124,14 +117,7 @@ def __init__(self, vertices, meta=None, visual=None):
self.vertices = vertices
self.meta = meta or {}
self.visual = visual or {}

def __repr__(self):
data = dict(
name=self.__class__.__name__,
vertices=self.vertices,
)
fmt = '{name}\nvertices: {vertices}'
return fmt.format(**data)
self._repr_params = [('vertices', self.vertices)]

@property
def area(self):
Expand Down
26 changes: 4 additions & 22 deletions regions/shapes/rectangle.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,17 +62,8 @@ def __init__(self, center, width, height, angle=0 * u.deg, meta=None, visual=Non
self.angle = angle
self.meta = meta or {}
self.visual = visual or {}

def __repr__(self):
data = dict(
name=self.__class__.__name__,
center=self.center,
width=self.width,
height=self.height,
angle=self.angle,
)
fmt = '{name}\ncenter: {center}\nwidth: {width}\nheight: {height}\nangle: {angle}'
return fmt.format(**data)
self._repr_params = [('width', self.width), ('height', self.height),
('angle', self.angle)]

@property
def area(self):
Expand Down Expand Up @@ -195,17 +186,8 @@ def __init__(self, center, width, height, angle=0 * u.deg, meta=None, visual=Non
self.angle = angle
self.meta = meta or {}
self.visual = visual or {}

def __repr__(self):
data = dict(
name=self.__class__.__name__,
center=self.center,
width=self.width,
height=self.height,
angle=self.angle,
)
fmt = '{name}\ncenter: {center}\nwidth: {width}\nheight: {height}\nangle: {angle}'
return fmt.format(**data)
self._repr_params = [('width', self.width), ('height', self.height),
('angle', self.angle)]

@property
def area(self):
Expand Down
27 changes: 20 additions & 7 deletions regions/shapes/tests/test_circle.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,13 @@ def setup(self):
center = PixCoord(3, 4)
self.reg = CirclePixelRegion(center, 2)

def test_str(self):
expected = 'CirclePixelRegion\ncenter: PixCoord(x=3, y=4)\nradius: 2'
assert str(self.reg) == expected
def test_repr_str(self):
reg_repr = '<CirclePixelRegion(PixCoord(x=3, y=4), radius=2)>'
assert repr(self.reg) == reg_repr

reg_str = ('Region: CirclePixelRegion\ncenter: PixCoord(x=3, y=4)\n'
'radius: 2')
assert str(self.reg) == reg_str

def test_to_mask(self):
mask = self.reg.to_mask(mode='exact')
Expand All @@ -38,13 +42,22 @@ def setup(self):
center = SkyCoord(3 * u.deg, 4 * u.deg)
self.reg = CircleSkyRegion(center, 2 * u.arcsec)

def test_str(self):
def test_repr_str(self):
if ASTROPY_LT_13:
expected = 'CircleSkyRegion\ncenter: <SkyCoord (ICRS): (ra, dec) in deg\n (3.0, 4.0)>\nradius: 2.0 arcsec'
reg_repr = ('<CircleSkyRegion(<SkyCoord (ICRS): (ra, dec) in '
'deg\n (3.0, 4.0)>, radius=2.0 arcsec)>')
reg_str = ('Region: CircleSkyRegion\ncenter: <SkyCoord (ICRS): '
'(ra, dec) in deg\n (3.0, 4.0)>\nradius: 2.0 '
'arcsec')
else:
expected = 'CircleSkyRegion\ncenter: <SkyCoord (ICRS): (ra, dec) in deg\n ( 3., 4.)>\nradius: 2.0 arcsec'
reg_repr = ('<CircleSkyRegion(<SkyCoord (ICRS): (ra, dec) in '
'deg\n ( 3., 4.)>, radius=2.0 arcsec)>')
reg_str = ('Region: CircleSkyRegion\ncenter: <SkyCoord (ICRS): '
'(ra, dec) in deg\n ( 3., 4.)>\nradius: 2.0 '
'arcsec')

assert str(self.reg) == expected
assert repr(self.reg) == reg_repr
assert str(self.reg) == reg_str

def test_transformation(self):
skycoord = SkyCoord(3 * u.deg, 4 * u.deg, frame='galactic')
Expand Down
33 changes: 23 additions & 10 deletions regions/shapes/tests/test_ellipse.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,14 @@ def setup(self):
angle=5 * u.deg,
)

def test_str(self):
expected = 'EllipsePixelRegion\ncenter: PixCoord(x=3, y=4)\nmajor: 4\nminor: 3\nangle: 5.0 deg'
assert str(self.reg) == expected
def test_repr_str(self):
reg_repr = ('<EllipsePixelRegion(PixCoord(x=3, y=4), major=4, minor=3'
', angle=5.0 deg)>')
assert repr(self.reg) == reg_repr

reg_str = ('Region: EllipsePixelRegion\ncenter: PixCoord(x=3, y=4)\n'
'major: 4\nminor: 3\nangle: 5.0 deg')
assert str(self.reg) == reg_str

@pytest.mark.skipif('not HAS_MATPLOTLIB')
def test_as_patch(self):
Expand All @@ -42,13 +47,21 @@ def setup(self):
angle=5 * u.deg,
)

def test_str(self):

def test_repr_str(self):
if ASTROPY_LT_13:
expected = ('EllipseSkyRegion\ncenter: <SkyCoord (ICRS): (ra, dec) in deg\n'
' (3.0, 4.0)>\nmajor: 4.0 deg\nminor: 3.0 deg\nangle: 5.0 deg')
reg_repr = ('<EllipseSkyRegion(<SkyCoord (ICRS): (ra, dec) in '
'deg\n (3.0, 4.0)>, major=4.0 deg, minor=3.0 deg,'
' angle=5.0 deg)>')
reg_str = ('Region: EllipseSkyRegion\ncenter: <SkyCoord (ICRS): '
'(ra, dec) in deg\n (3.0, 4.0)>\nmajor: 4.0 deg\n'
'minor: 3.0 deg\nangle: 5.0 deg')
else:
expected = ('EllipseSkyRegion\ncenter: <SkyCoord (ICRS): (ra, dec) in deg\n'
' ( 3., 4.)>\nmajor: 4.0 deg\nminor: 3.0 deg\nangle: 5.0 deg')
reg_repr = ('<EllipseSkyRegion(<SkyCoord (ICRS): (ra, dec) in '
'deg\n ( 3., 4.)>, major=4.0 deg, minor=3.0 deg,'
' angle=5.0 deg)>')
reg_str = ('Region: EllipseSkyRegion\ncenter: <SkyCoord (ICRS): '
'(ra, dec) in deg\n ( 3., 4.)>\nmajor: 4.0 deg\n'
'minor: 3.0 deg\nangle: 5.0 deg')

assert str(self.reg) == expected
assert repr(self.reg) == reg_repr
assert str(self.reg) == reg_str
25 changes: 17 additions & 8 deletions regions/shapes/tests/test_point.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,30 @@ def setup(self):
center = PixCoord(3, 4)
self.reg = PointPixelRegion(center)

def test_str(self):
expected = 'PointPixelRegion\ncenter: PixCoord(x=3, y=4)'
assert str(self.reg) == expected
def test_repr_str(self):
reg_repr = '<PointPixelRegion(PixCoord(x=3, y=4))>'
assert repr(self.reg) == reg_repr

reg_str = 'Region: PointPixelRegion\ncenter: PixCoord(x=3, y=4)'
assert str(self.reg) == reg_str


class TestPointSkyRegion:
def setup(self):
center = SkyCoord(3, 4, unit='deg')
self.reg = PointSkyRegion(center)

def test_str(self):

def test_repr_str(self):
if ASTROPY_LT_13:
expected = 'PointSkyRegion\ncenter: <SkyCoord (ICRS): (ra, dec) in deg\n (3.0, 4.0)>'
reg_repr = ('<PointSkyRegion(<SkyCoord (ICRS): (ra, dec) in deg\n'
' (3.0, 4.0)>)>')
reg_str = ('Region: PointSkyRegion\ncenter: <SkyCoord (ICRS): '
'(ra, dec) in deg\n (3.0, 4.0)>')
else:
expected = 'PointSkyRegion\ncenter: <SkyCoord (ICRS): (ra, dec) in deg\n ( 3., 4.)>'
reg_repr = ('<PointSkyRegion(<SkyCoord (ICRS): (ra, dec) in deg\n'
' ( 3., 4.)>)>')
reg_str = ('Region: PointSkyRegion\ncenter: <SkyCoord (ICRS): '
'(ra, dec) in deg\n ( 3., 4.)>')

assert str(self.reg) == expected
assert repr(self.reg) == reg_repr
assert str(self.reg) == reg_str
33 changes: 24 additions & 9 deletions regions/shapes/tests/test_polygon.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,14 @@ def setup(self):
vertices = PixCoord([3, 4, 3], [3, 4, 4])
self.poly = PolygonPixelRegion(vertices)

def test_str(self):
expected = 'PolygonPixelRegion\nvertices: PixCoord(x=[3 4 3], y=[3 4 4])'
assert str(self.poly) == expected
def test_repr_str(self):
reg_repr = ('<PolygonPixelRegion(vertices=PixCoord(x=[3 4 3], '
'y=[3 4 4]))>')
assert repr(self.poly) == reg_repr

reg_str = ('Region: PolygonPixelRegion\nvertices: PixCoord(x=[3 4 3],'
' y=[3 4 4])')
assert str(self.poly) == reg_str

def _test_basic(self):
"""
Expand Down Expand Up @@ -49,14 +54,24 @@ def setup(self):
vertices = SkyCoord([3, 4, 3] * u.deg, [3, 4, 4] * u.deg)
self.poly = PolygonSkyRegion(vertices)

def test_str(self):
def test_repr_str(self):
if ASTROPY_LT_13:
expected = ('PolygonSkyRegion\nvertices: <SkyCoord (ICRS): (ra, dec) in deg\n'
' [(3.0, 3.0), (4.0, 4.0), (3.0, 4.0)]>')
reg_repr = ('<PolygonSkyRegion(vertices=<SkyCoord (ICRS): (ra, '
'dec) in deg\n [(3.0, 3.0), (4.0, 4.0), (3.0, '
'4.0)]>)>')
reg_str = ('Region: PolygonSkyRegion\nvertices: <SkyCoord (ICRS):'
' (ra, dec) in deg\n [(3.0, 3.0), (4.0, 4.0), (3.0,'
' 4.0)]>')
else:
expected = ('PolygonSkyRegion\nvertices: <SkyCoord (ICRS): (ra, dec) in deg\n'
' [( 3., 3.), ( 4., 4.), ( 3., 4.)]>')
assert str(self.poly) == expected
reg_repr = ('<PolygonSkyRegion(vertices=<SkyCoord (ICRS): (ra, '
'dec) in deg\n [( 3., 3.), ( 4., 4.), ( 3., '
'4.)]>)>')
reg_str = ('Region: PolygonSkyRegion\nvertices: <SkyCoord (ICRS):'
' (ra, dec) in deg\n [( 3., 3.), ( 4., 4.), ( 3.,'
' 4.)]>')

assert repr(self.poly) == reg_repr
assert str(self.poly) == reg_str

def _test_basic(self):
"""
Expand Down
Loading

0 comments on commit b82e3e7

Please sign in to comment.