LSST Applications 24.1.5,g02d81e74bb+fa3a7a026e,g180d380827+a53a32eff8,g2079a07aa2+86d27d4dc4,g2305ad1205+c0501b3732,g295015adf3+7d3e92f0ec,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g33d1c0ed96+0e5473021a,g3a166c0a6a+0e5473021a,g3ddfee87b4+5dd1654d75,g48712c4677+3bf1020dcb,g487adcacf7+065c13d9cf,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+d7ac436cfb,g5a732f18d5+53520f316c,g64a986408d+fa3a7a026e,g858d7b2824+fa3a7a026e,g8a8a8dda67+585e252eca,g99cad8db69+a5a909b84f,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+4cf350ccb2,gb0e22166c9+60f28cb32d,gba4ed39666+c2a2e4ac27,gbb8dafda3b+f991a0b59f,gc120e1dc64+9ccbfdb8be,gc28159a63d+0e5473021a,gcf0d15dbbd+5dd1654d75,gd96a1ce819+42fd0ee607,gdaeeff99f8+f9a426f77a,ge6526c86ff+0d71447b4b,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gff1a9f87cc+fa3a7a026e
LSST Data Management Base Package
Loading...
Searching...
No Matches
Functions
lsst.afw.image._image._disableArithmetic Namespace Reference

Functions

 wrapNotImplemented (cls, attr)
 
 disableImageArithmetic (cls)
 
 disableMaskArithmetic (cls)
 

Function Documentation

◆ disableImageArithmetic()

lsst.afw.image._image._disableArithmetic.disableImageArithmetic ( cls)
Add helpful error messages about image arithmetic

Definition at line 66 of file _disableArithmetic.py.

66def disableImageArithmetic(cls):
67 """Add helpful error messages about image arithmetic"""
68 for attr in ("__add__", "__sub__", "__mul__", "__truediv__",
69 "__radd__", "__rsub__", "__rmul__", "__rtruediv__"):
70 setattr(cls, attr, wrapNotImplemented(cls, attr))
71
72

◆ disableMaskArithmetic()

lsst.afw.image._image._disableArithmetic.disableMaskArithmetic ( cls)
Add helpful error messages about mask arithmetic

Definition at line 73 of file _disableArithmetic.py.

73def disableMaskArithmetic(cls):
74 """Add helpful error messages about mask arithmetic"""
75 for attr in ("__or__", "__and__", "__xor__",
76 "__ror__", "__rand__", "__rxor__"):
77 setattr(cls, attr, wrapNotImplemented(cls, attr))

◆ wrapNotImplemented()

lsst.afw.image._image._disableArithmetic.wrapNotImplemented ( cls,
attr )
Wrap a method providing a helpful error message about image arithmetic

Parameters
----------
cls : `type`
    Class in which the method is to be defined.
attr : `str`
    Name of the method.

Returns
-------
method : callable
    Wrapped method.

Definition at line 27 of file _disableArithmetic.py.

27def wrapNotImplemented(cls, attr):
28 """Wrap a method providing a helpful error message about image arithmetic
29
30 Parameters
31 ----------
32 cls : `type`
33 Class in which the method is to be defined.
34 attr : `str`
35 Name of the method.
36
37 Returns
38 -------
39 method : callable
40 Wrapped method.
41 """
42 existing = getattr(cls, attr, None)
43
44 def notImplemented(self, other):
45 """Provide a helpful error message about image arithmetic
46
47 Unless we're operating on an ImageSlice, in which case it might be
48 defined.
49
50 Parameters
51 ----------
52 self : subclass of `lsst.afw.image.ImageBase`
53 Image someone's attempting to do arithmetic with.
54 other : anything
55 The operand of the arithmetic operation.
56 """
57 if existing is not None and isinstance(other, (ImageSliceF, ImageSliceD)):
58 return existing(self, other)
59 raise NotImplementedError("This arithmetic operation is not implemented, in order to prevent the "
60 "accidental proliferation of temporaries. Please use the in-place "
61 "arithmetic operations (e.g., += instead of +) or operate on the "
62 "underlying arrays.")
63 return notImplemented
64
65