Skip to content

Conversation

@jfly
Copy link

@jfly jfly commented Nov 23, 2025

All these AttributeErrors weren't actually working, I get KeyError instead:

Python 3.12.11 (main, Jun  3 2025, 15:41:47) [GCC 14.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import configparser
>>> conf = configparser.ConfigParser()
>>> conf['tv']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/nix/store/qlz1jypzdb320jp0ci0igxg2ghf0974d-python3-3.12.11/lib/python3.12/configparser.py", line 941, in __getitem__
    raise KeyError(key)
KeyError: 'tv'

Perhaps this changed in some version of Python? I opted to write explicit if 'tv' in conf: style guards instead. I would have used conf.get('tv', None), but the ConfigParser api unfortunately is not exactly like python dicts.

I also fixed a confusing error that would happen if the given config file did not exist. We'd initialize conf to None, and then go on to crash trying to read attributes of the now-None conf. Now we log a warning and carry on.

All these `AttributeError`s weren't actually working, I get `KeyError`
instead:

```
Python 3.12.11 (main, Jun  3 2025, 15:41:47) [GCC 14.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import configparser
>>> conf = configparser.ConfigParser()
>>> conf['tv']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/nix/store/qlz1jypzdb320jp0ci0igxg2ghf0974d-python3-3.12.11/lib/python3.12/configparser.py", line 941, in __getitem__
    raise KeyError(key)
KeyError: 'tv'
```

Perhaps this changed in some version of Python? I opted to write
explicit `if 'tv' in conf:` style guards instead. I would have used `conf.get('tv',
None)`, but the `ConfigParser` api unfortunately is not exactly like
python dicts.

I also fixed a confusing error that would happen if the given config
file did not exist. We'd initialize `conf` to `None`, and then go on to
crash trying to read attributes of the now-`None` `conf`. Now we log a
warning and carry on.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant