rapidsai / dependency-file-generator

https://pypi.org/project/rapids-dependency-file-generator/
Apache License 2.0
15 stars 13 forks source link

Rendering a nested pyproject.toml file to stdout is broken #85

Closed jameslamb closed 3 months ago

jameslamb commented 4 months ago

Discovered this today while working on https://github.com/rapidsai/cudf/pull/15245.

On the latest version of dependency-file-generator (v1.13.4), rendering a nested pyproject.toml to stdout fails.

Reproducible Example

git clone git@github.com:rapidsai/cudf.git
cd cudf
git checkout b810113d

rapids-dependency-file-generator \
  --output pyproject \
  --file-key py_run_cudf \
  --matrix "cuda=12.2"

Fails like this:

Traceback (most recent call last):
  File "/Users/jlamb/miniforge3/envs/rapids-dev/lib/python3.10/site-packages/rapids_dependency_file_generator/_rapids_dependency_file_generator.py", line 183, in make_dependency_file
    table = table[section]
  File "/Users/jlamb/miniforge3/envs/rapids-dev/lib/python3.10/site-packages/tomlkit/container.py", line 624, in __getitem__
    item = self.item(key)
  File "/Users/jlamb/miniforge3/envs/rapids-dev/lib/python3.10/site-packages/tomlkit/container.py", line 466, in item
    raise NonExistentKey(key)
tomlkit.exceptions.NonExistentKey: 'Key "project" does not exist.'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/jlamb/miniforge3/envs/rapids-dev/bin/rapids-dependency-file-generator", line 10, in <module>
    sys.exit(main())
  File "/Users/jlamb/miniforge3/envs/rapids-dev/lib/python3.10/site-packages/rapids_dependency_file_generator/_cli.py", line 151, in main
    make_dependency_files(parsed_config, file_keys, output, matrix, args.prepend_channels, to_stdout)
  File "/Users/jlamb/miniforge3/envs/rapids-dev/lib/python3.10/site-packages/rapids_dependency_file_generator/_rapids_dependency_file_generator.py", line 419, in make_dependency_files
    contents = make_dependency_file(
  File "/Users/jlamb/miniforge3/envs/rapids-dev/lib/python3.10/site-packages/rapids_dependency_file_generator/_rapids_dependency_file_generator.py", line 188, in make_dependency_file
    if not table.is_super_table():
AttributeError: 'TOMLDocument' object has no attribute 'is_super_table'

Notes

I believe the specific issue is right here:

https://github.com/rapidsai/dependency-file-generator/blob/ec3d043e7ab0abb5acb111ebdeea0c72b691d0a5/src/rapids_dependency_file_generator/_rapids_dependency_file_generator.py#L418

jameslamb commented 4 months ago

I have a fix for this, will put up a PR shortly. Just wanted to get the bug into writing.

GPUtester commented 3 months ago

:tada: This issue has been resolved in version 1.13.5 :tada:

The release is available on:

Your semantic-release bot :package::rocket: