LSST Applications g0f08755f38+9c285cab97,g1635faa6d4+13f3999e92,g1653933729+a8ce1bb630,g1a0ca8cf93+bf6eb00ceb,g28da252d5a+0829b12dee,g29321ee8c0+5700dc9eac,g2bbee38e9b+9634bc57db,g2bc492864f+9634bc57db,g2cdde0e794+c2c89b37c4,g3156d2b45e+41e33cbcdc,g347aa1857d+9634bc57db,g35bb328faa+a8ce1bb630,g3a166c0a6a+9634bc57db,g3e281a1b8c+9f2c4e2fc3,g414038480c+077ccc18e7,g41af890bb2+fde0dd39b6,g5fbc88fb19+17cd334064,g781aacb6e4+a8ce1bb630,g80478fca09+55a9465950,g82479be7b0+d730eedb7d,g858d7b2824+9c285cab97,g9125e01d80+a8ce1bb630,g9726552aa6+10f999ec6a,ga5288a1d22+2a84bb7594,gacf8899fa4+c69c5206e8,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc28159a63d+9634bc57db,gcf0d15dbbd+4b7d09cae4,gda3e153d99+9c285cab97,gda6a2b7d83+4b7d09cae4,gdaeeff99f8+1711a396fd,ge2409df99d+5e831397f4,ge79ae78c31+9634bc57db,gf0baf85859+147a0692ba,gf3967379c6+41c94011de,gf3fb38a9a8+8f07a9901b,gfb92a5be7c+9c285cab97,w.2024.46
LSST Data Management Base Package
Loading...
Searching...
No Matches
Classes | Functions | Variables
lsst.sphgeom._continue_class Namespace Reference

Classes

class  Box
 
class  Circle
 
class  ConvexPolygon
 
class  Region
 

Functions

bool _isAttributeSafeToTransfer (str name, typing.Any value)
 
 _continueClass (cls)
 
float _inf_to_limit (float value, float min, float max)
 
float _inf_to_lat (float lat)
 
float _inf_to_lon (float lat)
 

Variables

 _INTRINSIC_SPECIAL_ATTRIBUTES
 

Detailed Description

Extend any of the C++ Python classes by adding additional methods.

Function Documentation

◆ _continueClass()

lsst.sphgeom._continue_class._continueClass ( cls)
protected

Definition at line 67 of file _continue_class.py.

67def _continueClass(cls):
68 orig = getattr(sys.modules[cls.__module__], cls.__name__)
69 for name in dir(cls):
70 # Common descriptors like classmethod and staticmethod can only be
71 # accessed without invoking their magic if we use __dict__; if we use
72 # getattr on those we'll get e.g. a bound method instance on the dummy
73 # class rather than a classmethod instance we can put on the target
74 # class.
75 attr = cls.__dict__.get(name, None) or getattr(cls, name)
76 if _isAttributeSafeToTransfer(name, attr):
77 setattr(orig, name, attr)
78 return orig
79
80

◆ _inf_to_lat()

float lsst.sphgeom._continue_class._inf_to_lat ( float lat)
protected
Map latitude +Inf to +90 and -Inf to -90 degrees.

Definition at line 90 of file _continue_class.py.

90def _inf_to_lat(lat: float) -> float:
91 """Map latitude +Inf to +90 and -Inf to -90 degrees."""
92 return _inf_to_limit(lat, -90.0, 90.0)
93
94

◆ _inf_to_limit()

float lsst.sphgeom._continue_class._inf_to_limit ( float value,
float min,
float max )
protected
Map a value to a fixed range if infinite.

Definition at line 81 of file _continue_class.py.

81def _inf_to_limit(value: float, min: float, max: float) -> float:
82 """Map a value to a fixed range if infinite."""
83 if not math.isinf(value):
84 return value
85 if value > 0.0:
86 return max
87 return min
88
89

◆ _inf_to_lon()

float lsst.sphgeom._continue_class._inf_to_lon ( float lat)
protected
Map longitude +Inf to +360 and -Inf to 0 degrees.

Definition at line 95 of file _continue_class.py.

95def _inf_to_lon(lat: float) -> float:
96 """Map longitude +Inf to +360 and -Inf to 0 degrees."""
97 return _inf_to_limit(lat, 0.0, 360.0)
98
99
100@_continueClass

◆ _isAttributeSafeToTransfer()

bool lsst.sphgeom._continue_class._isAttributeSafeToTransfer ( str name,
typing.Any value )
protected

Definition at line 59 of file _continue_class.py.

59def _isAttributeSafeToTransfer(name: str, value: typing.Any) -> bool:
60 if name.startswith("__") and (
61 value is getattr(object, name, None) or name in _INTRINSIC_SPECIAL_ATTRIBUTES
62 ):
63 return False
64 return True
65
66

Variable Documentation

◆ _INTRINSIC_SPECIAL_ATTRIBUTES

lsst.sphgeom._continue_class._INTRINSIC_SPECIAL_ATTRIBUTES
protected
Initial value:
1= frozenset(
2 (
3 "__qualname__",
4 "__module__",
5 "__metaclass__",
6 "__dict__",
7 "__weakref__",
8 "__class__",
9 "__subclasshook__",
10 "__name__",
11 "__doc__",
12 )
13)

Definition at line 44 of file _continue_class.py.