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. |
|
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. |
|
Suppress warnings generated by |
Classes¶
|
A metaclass for abstract base classes that tie together wrapped C++ template types. |
Class Inheritance Diagram¶
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¶
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¶
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¶
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¶
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
prior to version 3.10.
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.