Add command-line arguments for data collection options

This commit is contained in:
Sam 2025-11-08 23:23:44 -06:00
parent 0ce010a12d
commit b442fbc0f2
2 changed files with 47 additions and 3 deletions

View File

@ -24,9 +24,9 @@ class OutputConfig:
enabled: bool = True
directory: str = "simulation_output"
formats: List[str] = field(default_factory=lambda: ['json'])
collect_metrics: bool = True
collect_entities: bool = True
collect_evolution: bool = True
collect_metrics: bool = False
collect_entities: bool = False
collect_evolution: bool = False
metrics_interval: int = 100
entities_interval: int = 1000
evolution_interval: int = 1000

View File

@ -51,6 +51,26 @@ def main():
action="store_true",
help="Run in real-time mode (instead of as fast as possible)"
)
parser.add_argument(
"--collect-metrics",
action="store_true",
help="Enable metrics data collection"
)
parser.add_argument(
"--collect-entities",
action="store_true",
help="Enable entity data collection"
)
parser.add_argument(
"--collect-evolution",
action="store_true",
help="Enable evolution data collection"
)
parser.add_argument(
"--collect-all",
action="store_true",
help="Enable all data collection (metrics, entities, evolution)"
)
parser.add_argument(
"--collect-every-tick",
action="store_true",
@ -90,11 +110,35 @@ def main():
headless_config.output.directory = args.output_dir
if args.real_time:
headless_config.output.real_time = True
# Handle data collection arguments - only enable if explicitly requested
# Start with all disabled (default)
headless_config.output.collect_metrics = False
headless_config.output.collect_entities = False
headless_config.output.collect_evolution = False
if args.collect_all:
# Enable all collection
headless_config.output.collect_metrics = True
headless_config.output.collect_entities = True
headless_config.output.collect_evolution = True
else:
# Enable specific collection types
if args.collect_metrics:
headless_config.output.collect_metrics = True
if args.collect_entities:
headless_config.output.collect_entities = True
if args.collect_evolution:
headless_config.output.collect_evolution = True
if args.collect_every_tick:
# Set all collection intervals to 1 for every-tick collection
headless_config.output.metrics_interval = 1
headless_config.output.entities_interval = 1
headless_config.output.evolution_interval = 1
# Also enable all collection if using --collect-every-tick (backward compatibility)
headless_config.output.collect_metrics = True
headless_config.output.collect_entities = True
headless_config.output.collect_evolution = True
except Exception as e:
print(f"Error loading configuration: {e}")