Refactor ChEBI models to ignore extra fields #95
Merged
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.
This pull request refactors the ChEBI fetcher data models to be more robust against unexpected fields in the API response, as has been reported in #94, and simplifies their structure. It also introduces a new integration test for fetching ChEBI entries without a definition. The most important changes are grouped below:
Data Model Simplification and Robustness
ChEBIName,ChEBINames,ChEBIChemicalData, and many fields fromChEBIStructure,ChEBIEntryData, andChEBIEntryResult), streamlining the models to only include fields used by the codebase.model_config = ConfigDict(extra="ignore")to the main ChEBI data models (ChEBIStructure,ChEBIEntryData,ChEBIEntryResult, andChebiSearchResult) to ignore any unexpected fields returned by the ChEBI API, making the fetcher more robust to upstream changes. [1] [2]pyenzyme/fetcher/chebi.py.Testing Improvements
test_fetch_chebi_wo_defintionto ensure the fetcher can handle ChEBI entries that lack a definition.This change is