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.
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.