lsst.utils
The lsst.utils module provides common code for tests, interfacing between C++ and Python, and debugging.
Python API reference
lsst.utils Package
Functions
continueClass (cls)
Re-open the decorated class, adding any new definitions into the original.
demangleType (type_name)
Demangle a C++ type string.
deprecate_pybind11 (obj, reason, version, …)
Deprecate a pybind11-wrapped C++ interface function, method or class.
doImport (importable)
Import a python object given an importable string and return it.
doImportType (importable)
Import a python type given an importable string and return it.
getPackageDir (package_name)
Find the file system location of the EUPS package.
get_caller_name (skip)
Get the name of the caller method.
inClass (cls[, name])
Add the decorated function to the given class as a method.
inheritDoc (klass)
Extend existing documentation for a method that exists in another class and extend it with any additional documentation defined.
isEnabled ()
Check that backtrace is enabled.
suppress_deprecations (category)
Suppress warnings generated by deprecated.sphinx.deprecated .
Classes
TemplateMeta
A metaclass for abstract base classes that tie together wrapped C++ template types.
Class Inheritance Diagram
Inheritance diagram of lsst.utils.wrappers.TemplateMeta
lsst.utils.tests Module
Functions
init ()
Initialize the memory tester and file descriptor leak tester.
getTempFilePath (ext, expectOutput)
Return a path suitable for a temporary file and try to delete the file on success
assertFloatsAlmostEqual (testCase, lhs, …)
Highly-configurable floating point comparisons for scalars and arrays.
assertFloatsNotEqual (testCase, lhs, …)
Fail a test if the given floating point values are equal to within the given tolerances.
assertFloatsEqual (testCase, lhs, …)
Assert that lhs == rhs (both numeric types, whether scalar or array).
debugger (*exceptions)
Enter the debugger when there’s an uncaught exception
classParameters (**settings)
Class decorator for generating unit tests
methodParameters (**settings)
Iterate over supplied settings to create subtests automatically.
temporaryDirectory ()
Context manager that creates and destroys a temporary directory.
Classes
MemoryTestCase ([methodName])
Check for resource leaks.
ExecutablesTestCase ([methodName])
Test that executables can be run and return good status.
TestCase ([methodName])
Subclass of unittest.TestCase that adds some custom assertions for convenience.
Class Inheritance Diagram
Inheritance diagram of lsst.utils.tests.MemoryTestCase, lsst.utils.tests.ExecutablesTestCase, lsst.utils.tests.TestCase
lsst.utils.logging Module
Functions
getLogger (name, None] = None, logger, …)
Get a logger compatible with LSST usage.
getTraceLogger (logger, logging.Logger, …)
Get a logger with the appropriate TRACE name.
trace_set_at (name, number)
Adjust logging level to display messages with the trace number being less than or equal to the provided value.
Classes
LsstLogAdapter (logger[, extra])
A special logging adapter to provide log features for LSST code.
PeriodicLogger (logger, …)
Issue log messages if a time threshold has elapsed.
Class Inheritance Diagram
Inheritance diagram of lsst.utils.logging.LsstLogAdapter, lsst.utils.logging.PeriodicLogger
lsst.utils.iteration Module
Functions
chunk_iterable (data, chunk_size)
Return smaller chunks of an iterable.
ensure_iterable (a)
Ensure that the input is iterable.
isplit (string, sep)
Split a string or bytes by separator returning a generator.
lsst.utils.classes Module
Functions
cached_getter (func, _R])
Decorate a method to cache the result.
immutable (cls)
Decorate a class to simulate a simple form of immutability.
Classes
Singleton
Metaclass to convert a class to a Singleton.
Class Inheritance Diagram
Inheritance diagram of lsst.utils.classes.Singleton
lsst.utils.introspection Module
Functions
get_class_of (typeOrName, str])
Given the type name or a type, return the python type.
get_full_type_name (cls)
Return full type name of the supplied entity.
get_instance_of (typeOrName, str], *args, …)
Given the type name or a type, instantiate an object of that type.
get_caller_name (stacklevel)
Get the name of the caller method.
lsst.utils.timer Module
Functions
profile (filename, log)
Profile the enclosed code block and save the result to a file.
logInfo (obj, prefix, logLevel, metadata, …)
Log timer information to obj.metadata and obj.log .
timeMethod (_func, None] = None, *, metadata, …)
Measure duration of a method.
time_this (log, msg, level, prefix, args, …)
Time the enclosed block and issue a log message.
lsst.utils.packages Module
Classes
Packages
A table of packages and their versions.
Class Inheritance Diagram
Inheritance diagram of lsst.utils.packages.Packages
lsst.utils.threads Module
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.