lsst.utils¶
The lsst.utils
module provides common code for tests, interfacing between C++ and Python, and debugging.
Changes¶
Contributing¶
lsst.utils
is developed at https://github.com/lsst/utils.
You can find Jira issues for this module under the utils component.
Python API reference¶
lsst.utils Package¶
Functions¶
|
Re-open the decorated class, adding any new definitions into the original. |
|
Demangle a C++ type string. |
|
Deprecate a pybind11-wrapped C++ interface function, method or class. |
|
Import a python object given an importable string and return it. |
|
Import a python type given an importable string and return it. |
|
Find the file system location of the EUPS package. |
|
Get the name of the caller method. |
|
Add the decorated function to the given class as a method. |
|
Extend existing documentation for a method that exists in another class and extend it with any additional documentation defined. |
Check that backtrace is enabled. |
|
|
Suppress warnings generated by |
Classes¶
|
A metaclass for abstract base classes that tie together wrapped C++ template types. |
Class Inheritance Diagram¶
digraph inheritance427d8f8179 { bgcolor=transparent; rankdir=LR; size="8.0, 12.0"; "TemplateMeta" [URL="../../../py-api/lsst.utils.TemplateMeta.html#lsst.utils.TemplateMeta",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A metaclass for abstract base classes that tie together wrapped C++"]; }lsst.utils.tests Module¶
Functions¶
|
Initialize the memory tester and file descriptor leak tester. |
|
Return a path suitable for a temporary file and try to delete the file on success |
|
Highly-configurable floating point comparisons for scalars and arrays. |
|
Fail a test if the given floating point values are equal to within the given tolerances. |
|
Assert that lhs == rhs (both numeric types, whether scalar or array). |
|
Enter the debugger when there's an uncaught exception |
|
Class decorator for generating unit tests |
|
Iterate over supplied settings to create subtests automatically. |
Context manager that creates and destroys a temporary directory. |
Classes¶
|
Check for resource leaks. |
|
Test that executables can be run and return good status. |
|
Subclass of unittest.TestCase that adds some custom assertions for convenience. |
Class Inheritance Diagram¶
digraph inheritancec102db4e60 { bgcolor=transparent; rankdir=LR; size="8.0, 12.0"; "ExecutablesTestCase" [URL="../../../py-api/lsst.utils.tests.ExecutablesTestCase.html#lsst.utils.tests.ExecutablesTestCase",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Test that executables can be run and return good status."]; "TestCase" -> "ExecutablesTestCase" [arrowsize=0.5,style="setlinewidth(0.5)"]; "MemoryTestCase" [URL="../../../py-api/lsst.utils.tests.MemoryTestCase.html#lsst.utils.tests.MemoryTestCase",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Check for resource leaks."]; "TestCase" -> "MemoryTestCase" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TestCase" [URL="../../../py-api/lsst.utils.tests.TestCase.html#lsst.utils.tests.TestCase",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Subclass of unittest.TestCase that adds some custom assertions for"]; "TestCase" -> "TestCase" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TestCase" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",tooltip="A class whose instances are single test cases."]; }lsst.utils.logging Module¶
Functions¶
|
Get a logger compatible with LSST usage. |
|
Get a logger with the appropriate TRACE name. |
|
Adjust logging level to display messages with the trace number being less than or equal to the provided value. |
Classes¶
|
A special logging adapter to provide log features for LSST code. |
|
Issue log messages if a time threshold has elapsed. |
Class Inheritance Diagram¶
digraph inheritance072fe32b5f { bgcolor=transparent; rankdir=LR; size="8.0, 12.0"; "LoggerAdapter" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",tooltip="An adapter for loggers which makes it easier to specify contextual"]; "LsstLogAdapter" [URL="../../../py-api/lsst.utils.logging.LsstLogAdapter.html#lsst.utils.logging.LsstLogAdapter",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A special logging adapter to provide log features for LSST code."]; "LoggerAdapter" -> "LsstLogAdapter" [arrowsize=0.5,style="setlinewidth(0.5)"]; "PeriodicLogger" [URL="../../../py-api/lsst.utils.logging.PeriodicLogger.html#lsst.utils.logging.PeriodicLogger",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Issue log messages if a time threshold has elapsed."]; }lsst.utils.iteration Module¶
Functions¶
|
Return smaller chunks of an iterable. |
Ensure that the input is iterable. |
|
|
Split a string or bytes by separator returning a generator. |
lsst.utils.classes Module¶
Functions¶
|
Decorate a method to cache the result. |
|
Decorate a class to simulate a simple form of immutability. |
Classes¶
Metaclass to convert a class to a Singleton. |
Class Inheritance Diagram¶
digraph inheritancee6726f6b2b { bgcolor=transparent; rankdir=LR; size="8.0, 12.0"; "Singleton" [URL="../../../py-api/lsst.utils.classes.Singleton.html#lsst.utils.classes.Singleton",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Metaclass to convert a class to a Singleton."]; }lsst.utils.introspection Module¶
Functions¶
|
Given the type name or a type, return the python type. |
|
Return full type name of the supplied entity. |
|
Given the type name or a type, instantiate an object of that type. |
|
Get the name of the caller method. |
lsst.utils.timer Module¶
Functions¶
|
Profile the enclosed code block and save the result to a file. |
|
Log timer information to |
|
Measure duration of a method. |
|
Time the enclosed block and issue a log message. |
lsst.utils.packages Module¶
Functions¶
|
Determine the version of a python module. |
Get imported python packages and their versions. |
|
|
Get products and their versions from the environment. |
Get products and their versions from the conda environment. |
Classes¶
A table of packages and their versions. |
Class Inheritance Diagram¶
digraph inheritanceed80ad38d5 { bgcolor=transparent; rankdir=LR; size="8.0, 12.0"; "Packages" [URL="../../../py-api/lsst.utils.packages.Packages.html#lsst.utils.packages.Packages",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="A table of packages and their versions."]; }lsst.utils.usage Module¶
Functions¶
Report current memory usage. |
|
Report peak memory usage. |
lsst.utils.threads Module¶
Functions¶
|
Set common threading environment variables to the given value. |
Do whatever is necessary to try to prevent implicit threading. |
lsst.utils.ellipsis Module¶
A type-annotation workaround for ...
not having an exposed type in Python.
This module provides Ellipsis
and EllipsisType
symbols that are
conditionally defined to point to the built-in “...
” singleton and its type
(respectively) at runtime, and an enum class and instance if
typing.TYPE_CHECKING
is True
(an approach first suggested
here).
Type checkers should recognize enum literals as singletons, making this pair
behave as expected under is
comparisons and type-narrowing expressions,
such as:
v: EllipsisType | int
if v is not Ellipsis:
v += 2 # type checker should now see v as a pure int
This works best when there is a clear boundary between code that needs to be
type-checked and can use Ellipsis
instead of a literal “...
”, and
calling code that is either not type-checked or uses typing.Any
to accept
literal “...
” values.