NEDAS.core.file_system module

class NEDAS.core.file_system.FileSystem(config: Config | None = None)[source]

Bases: object

Manages runtime file system paths, name of files and directories

config: Config
cycle_dir(time: datetime) str[source]

Directory path for an analysis cycle.

Parameters:

time (datetime) – Time of the analysis cycle.

Returns:

Directory path for the analysis cycle.

Return type:

str

forecast_dir(time: datetime, model_name: str) str[source]

Directory path for a model forecast step.

Parameters:
  • time (datetime) – Time of the analysis cycle.

  • model_name (str) – Name of the model.

Returns:

Directory path for the model forecast.

Return type:

str

analysis_dir(time: datetime, iter: int = 0) str[source]

Directory path for an analysis step.

Parameters:
  • time (datetime) – Time of the analysis cycle.

  • iter (int) – If niter > 1, an outer iteration loop exists, step is the index in the loop.

Returns:

Directory path for the analysis step.

Return type:

str

make_dir(dirname: str | None) None[source]

Create a directory if it does not exist.

FileExistsError can happen if multiple processors are trying to make the same directory. This function will ignore this error and continue.

Parameters:

dirname (str|None) – Directory name to be created.

copy_file(file1: str, file2: str) None[source]
move_file(file1: str, file2: str) None[source]
move_files_to_dir(files: str, dirname: str) None[source]
remove_files(files: str) None[source]
remove_dir(dirname: str) None[source]

Tries to create a symbolic link. If the filesystem doesn’t support it (like exFAT), falls back to a file copy.