Source code for mldft.utils.counter_file

from pathlib import Path

counter_file_path = "/path/to/your/directory/.counter"


[docs] def get_and_increment_counter(counter_file_path: str) -> int: """A function that gets and increments a counter stored in a file. Problems will arise if multiple processes try to access the file at the same time. Args: counter_file_path (str): Path to the file where the counter is stored. Returns: int: The value of the counter after incrementation. """ counter_file_path = Path(counter_file_path) if not counter_file_path.exists(): # If the models directory is empty, we need to create the train and runs dir as well. if not counter_file_path.parent.exists(): counter_file_path.parent.mkdir(parents=True) with open(counter_file_path, "w") as file: file.write("0") return 0 else: with open(counter_file_path, "r+") as file: current_value = int(file.read().strip()) new_value = current_value + 1 file.seek(0) file.truncate() file.write(str(new_value)) return new_value