Skip to content

Commit 5612b4e

Browse files
committed
Make many of the GSObject str representations a bit simpler
(#218)
1 parent c672b6a commit 5612b4e

File tree

4 files changed

+88
-34
lines changed

4 files changed

+88
-34
lines changed

galsim/base.py

Lines changed: 63 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1401,7 +1401,11 @@ def __repr__(self):
14011401
self.sigma, self.flux, self._gsparams)
14021402

14031403
def __str__(self):
1404-
return 'galsim.Gaussian(sigma=%s, flux=%s)'%(self.sigma, self.flux)
1404+
s = 'galsim.Gaussian(sigma=%s'%self.sigma
1405+
if self.flux != 1.0:
1406+
s += ', flux=%s'%self.flux
1407+
s += ')'
1408+
return s
14051409

14061410
_galsim.SBGaussian.__getinitargs__ = lambda self: (
14071411
self.getSigma(), self.getFlux(), self.getGSParams())
@@ -1513,8 +1517,13 @@ def __repr__(self):
15131517
self.beta, self.scale_radius, self.trunc, self.flux, self._gsparams)
15141518

15151519
def __str__(self):
1516-
return 'galsim.Moffat(beta=%s, scale_radius=%s, trunc=%s, flux=%s)'%(
1517-
self.beta, self.scale_radius, self.trunc, self.flux)
1520+
s = 'galsim.Moffat(beta=%s, scale_radius=%s'%(self.beta, self.scale_radius)
1521+
if self.trunc != 0.:
1522+
s += ', trunc=%s'%self.trunc
1523+
if self.flux != 1.0:
1524+
s += ', flux=%s'%self.flux
1525+
s += ')'
1526+
return s
15181527

15191528
_galsim.SBMoffat.__getinitargs__ = lambda self: (
15201529
self.getBeta(), self.getScaleRadius(), None, None, self.getTrunc(),
@@ -1675,8 +1684,13 @@ def __repr__(self):
16751684
self.lam_over_diam, self.obscuration, self.flux, self._gsparams)
16761685

16771686
def __str__(self):
1678-
return 'galsim.Airy(lam_over_diam=%s, obscuration=%s, flux=%s)'%(
1679-
self.lam_over_diam, self.obscuration, self.flux)
1687+
s = 'galsim.Airy(lam_over_diam=%s'%self.lam_over_diam
1688+
if self.obscuration != 0.:
1689+
s += ', obscuration=%s'%self.obscuration
1690+
if self.flux != 1.0:
1691+
s += ', flux=%s'%self.flux
1692+
s += ')'
1693+
return s
16801694

16811695
_galsim.SBAiry.__getinitargs__ = lambda self: (
16821696
self.getLamOverD(), self.getObscuration(), self.getFlux(), self.getGSParams())
@@ -1799,7 +1813,11 @@ def __repr__(self):
17991813
self.lam_over_r0, self.flux, self._gsparams)
18001814

18011815
def __str__(self):
1802-
return 'galsim.Kolmogorov(lam_over_r0=%s, flux=%s)'%(self.lam_over_r0, self.flux)
1816+
s = 'galsim.Kolmogorov(lam_over_r0=%s'%self.lam_over_r0
1817+
if self.flux != 1.0:
1818+
s += ', flux=%s'%self.flux
1819+
s += ')'
1820+
return s
18031821

18041822
_galsim.SBKolmogorov.__getinitargs__ = lambda self: (
18051823
self.getLamOverR0(), self.getFlux(), self.getGSParams())
@@ -1856,7 +1874,11 @@ def __repr__(self):
18561874
self.scale, self.flux, self._gsparams)
18571875

18581876
def __str__(self):
1859-
return 'galsim.Pixel(scale=%s, flux=%s)'%(self.scale, self.flux)
1877+
s = 'galsim.Pixel(scale=%s'%self.scale
1878+
if self.flux != 1.0:
1879+
s += ', flux=%s'%self.flux
1880+
s += ')'
1881+
return s
18601882

18611883

18621884
class Box(GSObject):
@@ -1913,7 +1935,11 @@ def __repr__(self):
19131935
self.width, self.height, self.flux, self._gsparams)
19141936

19151937
def __str__(self):
1916-
return 'galsim.Box(width=%s, height=%s, flux=%s)'%(self.width, self.height, self.flux)
1938+
s = 'galsim.Box(width=%s, height=%s'%(self.width, self.height)
1939+
if self.flux != 1.0:
1940+
s += ', flux=%s'%self.flux
1941+
s += ')'
1942+
return s
19171943

19181944
_galsim.SBBox.__getinitargs__ = lambda self: (
19191945
self.getWidth(), self.getHeight(), self.getFlux(), self.getGSParams())
@@ -1967,7 +1993,11 @@ def __repr__(self):
19671993
self.radius, self.flux, self._gsparams)
19681994

19691995
def __str__(self):
1970-
return 'galsim.TopHat(radius=%s, flux=%s)'%(self.radius, self.flux)
1996+
s = 'galsim.TopHat(radius=%s'%self.radius
1997+
if self.flux != 1.0:
1998+
s += ', flux=%s'%self.flux
1999+
s += ')'
2000+
return s
19712001

19722002
_galsim.SBTopHat.__getinitargs__ = lambda self: (
19732003
self.getRadius(), self.getFlux(), self.getGSParams())
@@ -2190,8 +2220,13 @@ def __str__(self):
21902220
# Note: for the repr, we use the scale_radius, since that should just flow as is through
21912221
# the constructor, so it should be exact. But most people use half_light_radius
21922222
# for Sersics, so use that in the looser str() function.
2193-
return 'galsim.Sersic(n=%s, half_light_radius=%s, trunc=%s, flux=%s)'%(
2194-
self.n, self.half_light_radius, self.trunc, self.flux)
2223+
s = 'galsim.Sersic(n=%s, half_light_radius=%s'%(self.n, self.half_light_radius)
2224+
if self.trunc != 0.:
2225+
s += ', trunc=%s'%self.trunc
2226+
if self.flux != 1.0:
2227+
s += ', flux=%s'%self.flux
2228+
s += ')'
2229+
return s
21952230

21962231
_galsim.SBSersic.__getinitargs__ = lambda self: (
21972232
self.getN(), self.getScaleRadius(), None, self.getFlux(), self.getTrunc(),
@@ -2277,7 +2312,11 @@ def __repr__(self):
22772312
self.scale_radius, self.flux, self._gsparams)
22782313

22792314
def __str__(self):
2280-
return 'galsim.Exponential(scale_radius=%s, flux=%s)'%(self.scale_radius, self.flux)
2315+
s = 'galsim.Exponential(scale_radius=%s'%self.scale_radius
2316+
if self.flux != 1.0:
2317+
s += ', flux=%s'%self.flux
2318+
s += ')'
2319+
return s
22812320

22822321
_galsim.SBExponential.__getinitargs__ = lambda self: (
22832322
self.getScaleRadius(), self.getFlux(), self.getGSParams())
@@ -2365,8 +2404,13 @@ def __repr__(self):
23652404
self.scale_radius, self.trunc, self.flux, self._gsparams)
23662405

23672406
def __str__(self):
2368-
return 'galsim.DeVaucouleurs(half_light_radius=%s, trunc=%s, flux=%s)'%(
2369-
self.half_light_radius, self.trunc, self.flux)
2407+
s = 'galsim.DeVaucouleurs(half_light_radius=%s'%self.half_light_radius
2408+
if self.trunc != 0.:
2409+
s += ', trunc=%s'%self.trunc
2410+
if self.flux != 1.0:
2411+
s += ', flux=%s'%self.flux
2412+
s += ')'
2413+
return s
23702414

23712415
_galsim.SBDeVaucouleurs.__getinitargs__ = lambda self: (
23722416
self.getScaleRadius(), None, self.getFlux(), self.getTrunc(), False, self.getGSParams())
@@ -2481,8 +2525,11 @@ def __repr__(self):
24812525
self.nu, self.scale_radius, self.flux, self._gsparams)
24822526

24832527
def __str__(self):
2484-
return 'galsim.Spergel(nu=%s, half_light_radius=%s, flux=%s)'%(
2485-
self.nu, self.half_light_radius, self.flux)
2528+
s = 'galsim.Spergel(nu=%s, half_light_radius=%s'%(self.nu, self.half_light_radius)
2529+
if self.flux != 1.0:
2530+
s += ', flux=%s'%self.flux
2531+
s += ')'
2532+
return s
24862533

24872534
_galsim.SBSpergel.__getinitargs__ = lambda self: (
24882535
self.getNu(), self.getScaleRadius(), None, self.getFlux(), self.getGSParams())

galsim/compound.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,8 @@ def __repr__(self):
164164

165165
def __str__(self):
166166
str_list = [ str(obj) for obj in self.obj_list ]
167-
return 'galsim.Sum([%s])'%', '.join(str_list)
167+
return '(' + ' + '.join(str_list) + ')'
168+
#return 'galsim.Sum([%s])'%', '.join(str_list)
168169

169170
def __getstate__(self):
170171
d = self.__dict__.copy()
@@ -400,11 +401,11 @@ def __repr__(self):
400401

401402
def __str__(self):
402403
str_list = [ str(obj) for obj in self.obj_list ]
404+
s = 'galsim.Convolve(%s'%(', '.join(str_list))
403405
if self.real_space:
404-
real = ', real_space=True'
405-
else:
406-
real = ''
407-
return 'galsim.Convolution([%s]%s)'%(', '.join(str_list), real)
406+
s += ', real_space=True'
407+
s += ')'
408+
return s
408409

409410
def __getstate__(self):
410411
d = self.__dict__.copy()
@@ -495,7 +496,7 @@ def __repr__(self):
495496
return 'galsim.Deconvolution(%r, gsparams=%r)'%(self.orig_obj, self._gsparams)
496497

497498
def __str__(self):
498-
return 'galsim.Deconvolution(%s)'%self.orig_obj
499+
return 'galsim.Deconvolve(%s)'%self.orig_obj
499500

500501
def __getstate__(self):
501502
d = self.__dict__.copy()
@@ -616,11 +617,11 @@ def __repr__(self):
616617
self.orig_obj, self.real_space, self._gsparams)
617618

618619
def __str__(self):
620+
s = 'galsim.AutoConvolve(%s'%self.orig_obj
619621
if self.real_space:
620-
real = ', real_space=True'
621-
else:
622-
real = ''
623-
return 'galsim.AutoConvolution(%s%s)'%(self.orig_obj, real)
622+
s += ', real_space=True'
623+
s += ')'
624+
return s
624625

625626
def __getstate__(self):
626627
d = self.__dict__.copy()
@@ -747,11 +748,11 @@ def __repr__(self):
747748
self.orig_obj, self.real_space, self._gsparams)
748749

749750
def __str__(self):
751+
s = 'galsim.AutoCorrelate(%s'%self.orig_obj
750752
if self.real_space:
751-
real = ', real_space=True'
752-
else:
753-
real = ''
754-
return 'galsim.AutoCorrelation(%s%s)'%(self.orig_obj, real)
753+
s += ', real_space=True'
754+
s += ')'
755+
return s
755756

756757
def __getstate__(self):
757758
d = self.__dict__.copy()

galsim/optics.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -380,8 +380,11 @@ def __repr__(self):
380380
return s
381381

382382
def __str__(self):
383-
s = 'galsim.OpticalPSF(lam_over_diam=%s, aberrations=%s'%(
384-
self._lam_over_diam, self._aberrations)
383+
s = 'galsim.OpticalPSF(lam_over_diam=%s'%self._lam_over_diam
384+
# The aberrations look a bit nicer without the spaces, since it tightens up that
385+
# parameter, which makes it easier to distinguish from the others.
386+
ab_str = [ str(ab) for ab in self._aberrations ]
387+
s += ', aberrations=[' + ','.join(ab_str) + ']'
385388
if self._obscuration != 0.:
386389
s += ', obscuration=%s'%self._obscuration
387390
if self._nstruts != 0:
@@ -392,7 +395,9 @@ def __str__(self):
392395
self._pupil_plane_im, self._pupil_angle)
393396
if self._circular_pupil == False:
394397
s += ', circular_pupil=False'
395-
s += ', flux=%s)'%self._flux
398+
if self._flux != 1.0:
399+
s += ', flux=%s'%self._flux
400+
s += ')'
396401
return s
397402

398403
def __getstate__(self):

galsim/transform.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,8 @@ def __str__(self):
176176
if self.offset.x != 0 or self.offset.y != 0:
177177
s += '.shift(%s,%s)'%(self.offset.x,self.offset.y)
178178
if self.flux_ratio != 1.:
179-
s += '.withScaledFlux(%s)'%self.flux_ratio
179+
#s += '.withScaledFlux(%s)'%self.flux_ratio
180+
s += ' * %s'%self.flux_ratio
180181
return s
181182

182183
def __getstate__(self):

0 commit comments

Comments
 (0)