File tree Expand file tree Collapse file tree 2 files changed +36
-1
lines changed
src/clabe/resource_monitor Expand file tree Collapse file tree 2 files changed +36
-1
lines changed Original file line number Diff line number Diff line change 11from ._base import ResourceMonitor
2- from ._constraints import Constraint , available_storage_constraint_factory , remote_dir_exists_constraint_factory
2+ from ._constraints import (
3+ Constraint ,
4+ available_storage_constraint_factory ,
5+ available_storage_constraint_factory_from_rig ,
6+ remote_dir_exists_constraint_factory ,
7+ )
38
49__all__ = [
510 "ResourceMonitor" ,
611 "Constraint" ,
712 "available_storage_constraint_factory" ,
813 "remote_dir_exists_constraint_factory" ,
14+ "available_storage_constraint_factory_from_rig" ,
915]
Original file line number Diff line number Diff line change 11import os
22import shutil
33from pathlib import Path
4+ from typing import TYPE_CHECKING
5+
6+ if TYPE_CHECKING :
7+ from aind_behavior_services import AindBehaviorRigModel
48
59from ._base import Constraint
610
711
12+ def available_storage_constraint_factory_from_rig (rig : "AindBehaviorRigModel" , min_bytes : float = 2e11 ) -> Constraint :
13+ """
14+ Creates a constraint to check if the rig's data directory has sufficient available storage.
15+
16+ This factory function creates a constraint that validates whether the data directory
17+ specified in the rig model has enough free space to meet the minimum requirements.
18+
19+ Args:
20+ rig: The rig model containing the data directory path
21+ min_bytes: Minimum required free space in bytes. Defaults to 200GB
22+ Returns:
23+ Constraint: A constraint object for available storage validation
24+ Example:
25+ ```python
26+ from aind_behavior_services import AindBehaviorRigModel
27+ from clabe.resource_monitor import available_storage_constraint_factory_from_rig
28+ rig = AindBehaviorRigModel(rig_name="example_rig", version="1.0", data_directory="D:/data")
29+ storage_constraint = available_storage_constraint_factory_from_rig(rig, min_bytes=5e11) # 500GB
30+ monitor = ResourceMonitor()
31+ monitor.add_constraint(storage_constraint)
32+ ```
33+ """
34+ return available_storage_constraint_factory (drive = rig .data_directory , min_bytes = min_bytes )
35+
36+
837def available_storage_constraint_factory (drive : os .PathLike = Path (r"C:\\" ), min_bytes : float = 2e11 ) -> Constraint :
938 """
1039 Creates a constraint to check if a drive has sufficient available storage.
You can’t perform that action at this time.
0 commit comments