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.