Fix #668: Safely handle empty custom_atlases.conf file #681
+43
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Before submitting a pull request (PR), please read the contributing guide.
Please fill out as much of this template as you can, but if you have any problems or questions, just leave a comment and we will help out :)
Description
What is this PR
Why is this PR needed?
The current implementation crashes with a
KeyError: 'atlases'if the localcustom_atlases.conffile exists but is empty (contains no sections). This prevents thebrainglobe listcommand from running.What does this PR do?
This PR modifies the
get_all_atlases_lastversionsfunction inbrainglobe_atlasapi/list_atlases.pyto use a safe.get("atlases", {})method when reading the custom atlas configuration. This ensures that an empty dictionary is used if the 'atlases' section is missing, thus preventing the crash.References
Fixes #668
How has this PR been tested?
The fix was tested locally by ensuring that the
brainglobe listcommand runs successfully without crashing when the~/.brainglobe/custom_atlases.conffile is present but completely empty.Is this a breaking change?
No. This is a fix for an existing bug and does not change any public API or required functionality.
Does this PR require an update to the documentation?
No.
Checklist:
Note on Test Failures:
All code changes related to Issue #668 (empty config file) have been verified locally. When running the full test suite, I encountered 2 ConnectionErrors (due to the GIN server being unreachable) and 1 FileNotFoundError (due to missing local test data), which are external to this fix. The patch itself is clean.