perun.util

Util module.

Module Contents

Classes

Singleton

Metaclass for creating singleton classes.

Functions

getRunId(→ str)

Return run id based on the configuration object or the current datetime.

increaseIdCounter(→ str)

Increase id counter based on number of existing entries with the same id.

printableSensorConfiguration(→ str)

Create string with the available backends and sensors in each node.

Attributes

log

perun.util.log
class perun.util.Singleton

Bases: type

Metaclass for creating singleton classes.

Singleton classes are classes that can only have one instance. This metaclass ensures that only one instance of a class is created and provides a way to access that instance.

Attributes

_instancesdict

A dictionary that stores the instances of the singleton classes. The keys are the singleton classes and the values are the corresponding instances.

__allow_reinitializationbool

A flag that indicates whether the singleton class allows reinitialization. If set to True, the __call__ method will reinitialize the instance if the class has already been instantiated.

Methods

__call__(*args, **kwargs)

Overrides the default behavior of calling the class. It ensures that only one instance of the class is created and returns that instance.

Examples

>>> class MyClass(metaclass=Singleton):
...     pass
...
>>> my_instance = MyClass()  # Returns the instance of MyClass
_instances: Dict
__allow_reinitialization: bool = False
__call__(*args, **kwargs)

Call method for the singleton class.

This method is called when the singleton class is invoked as a function. It ensures that only one instance of the class is created and returned.

Parameters
clsclass object

The class object.

*argstuple

Variable length argument list.

**kwargsdict

Arbitrary keyword arguments.

Returns
instanceobject

The instance of the singleton class.

Examples
>>> instance = MyClass()
>>> instance()
<MyClass object at 0x7f9a8a3d6a90>
perun.util.getRunId(starttime: datetime.datetime) str

Return run id based on the configuration object or the current datetime.

Parameters

starttimedatetime

The datetime object representing the start time of the run.

Returns

str

The run id.

Notes

If the configuration object has a valid run id specified, it will be returned. If the run id is set to “SLURM” and the environment variable “SLURM_JOB_ID” is present, the value of “SLURM_JOB_ID” will be returned. Otherwise, the ISO formatted string representation of the start time will be returned.

perun.util.increaseIdCounter(existing: List[str], newId: str) str

Increase id counter based on number of existing entries with the same id.

Parameters

existingList[str]

List of existing ids.

newIdstr

New id to compare againts.

Returns

str

newId with an added counter if any matches were found.

perun.util.printableSensorConfiguration(sensors_config: List[Dict[str, Set[str]]], host_rank: Dict[str, List[int]]) str

Create string with the available backends and sensors in each node.

Parameters

sensors_configList[Dict[str, Set[str]]]

Perun Sensor configuration

host_rankDict[str, List[int]]

Perun Host Rank mapping

Returns

str

String to print for the sensors CLI subcommand.