perun.util
Util module.
Module Contents
Classes
Metaclass for creating singleton classes. |
Functions
|
Return run id based on the configuration object or the current datetime. |
|
Increase id counter based on number of existing entries with the same id. |
|
Create string with the available backends and sensors in each node. |
Attributes
- perun.util.log
- class perun.util.Singleton
Bases:
typeMetaclass 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
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
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.