(lr_module_scratch-3.13) pimmeulensteen@pims-laptop ~/D/P/lr_module_scratch (main) [1]> time pdm run lir lrmodule/models/firing_pin_impression/validation.yaml
Traceback (most recent call last):
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/lir/experiments/base_experiment.py", line 152, in run
self._generate_and_run()
~~~~~~~~~~~~~~~~~~~~~~^^
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/lir/experiments/predefined_experiment.py", line 55, in _generate_and_run
split_data = list(splitter.apply(provider.get_instances()))
~~~~~~~~~~~~~~~~~~~~~~^^
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/lir/datasets/feature_data_csv.py", line 278, in get_instances
with open(path) as f:
~~~~^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/data/firing_pin_impression2.csv'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/bin/lir", line 8, in <module>
sys.exit(main())
~~~~^^
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/lir/main.py", line 233, in main
experiment.run()
~~~~~~~~~~~~~~^^
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/lir/experiments/base_experiment.py", line 155, in run
output.close()
~~~~~~~~~~~~^^
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/lrmodule/copy_csv.py", line 49, in close
df = pd.read_csv(self.source_file)
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/pandas/io/parsers/readers.py", line 1026, in read_csv
return _read(filepath_or_buffer, kwds)
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/pandas/io/parsers/readers.py", line 620, in _read
parser = TextFileReader(filepath_or_buffer, **kwds)
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/pandas/io/parsers/readers.py", line 1620, in __init__
self._engine = self._make_engine(f, self.engine)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/pandas/io/parsers/readers.py", line 1880, in _make_engine
self.handles = get_handle(
~~~~~~~~~~^
f,
^^
...<6 lines>...
storage_options=self.options.get("storage_options", None),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/pandas/io/common.py", line 873, in get_handle
handle = open(
handle,
...<3 lines>...
newline="",
)
FileNotFoundError: [Errno 2] No such file or directory: '/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/data/firing_pin_impression2.csv'
This current state is quite verbose, but not very clear. Using something like:
if not self.source_file.is_file():
raise FileNotFoundError(f"CopyCSV: File to copy '{self.source_file}' does not exist.")
would result in something like this
(lr_module_scratch-3.13) pimmeulensteen@pims-laptop ~/D/P/lr_module_scratch (main) [1]> time pdm run lir lrmodule/models/firing_pin_impression/validation.yaml
Traceback (most recent call last):
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/bin/lir", line 8, in <module>
sys.exit(main())
~~~~^^
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/lir/main.py", line 204, in main
experiments, output_dir = initialize_experiments(confidence.loadf(args.setup))
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/lir/main.py", line 104, in initialize_experiments
return parse_experiments(cfg, output_dir), output_dir
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/lir/config/experiment_strategies.py", line 343, in parse_experiments
experiment = parse_experiment_strategy(
exp_config,
output_path,
)
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/lir/config/experiment_strategies.py", line 320, in parse_experiment_strategy
return strategy_parser.parse(config, output_path)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/lir/config/experiment_strategies.py", line 171, in parse
exp = self.get_experiment(experiment_name)
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/lir/config/experiment_strategies.py", line 197, in get_experiment
self.output_list(),
~~~~~~~~~~~~~~~~^^
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/lir/config/experiment_strategies.py", line 69, in output_list
return parse_aggregations(config, self._output_dir)
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/lir/config/aggregation.py", line 87, in parse_aggregations
return [parse_aggregation(item, output_dir, context) for i, item in enumerate(config)]
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/lir/config/aggregation.py", line 54, in parse_aggregation
parsed_object = parser.parse(config, output_dir)
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/.venv/lib/python3.13/site-packages/lir/config/base.py", line 368, in parse
return func(config, output_dir) # type: ignore
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/lrmodule/copy_csv.py", line 61, in copy_csv
return CopyCSV(source_file, output_dir, columns=columns, new_file_name=new_file_name)
File "/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/lrmodule/copy_csv.py", line 26, in __init__
raise FileNotFoundError(f"CopyCSV: File to copy '{self.source_file}' does not exist.")
FileNotFoundError: CopyCSV: File to copy '/Users/pimmeulensteen/Documents/Projects/lr_module_scratch/data/firing_pin_impression2.csv' does not exist.
which is - in my opinion - more clear.
This current state is quite verbose, but not very clear. Using something like:
would result in something like this
which is - in my opinion - more clear.