ENH: add entity getters and cached functions
Summary
Added:
- Entity getters:
get_entity_by_<name/id/path>
to retrieve single Entities identified via some attribute - Cached versions of entity getters and of execute_query (cached_query)
Focus
You might want to look at the documentation first (build it with make doc).
lru_cache
is used for caching.
lru_cache
does not have the ability to add items to the cache manually. Thus, a dumb cache was added to allow this (see code).
Test Environment
unit tests.
I did not add integration test due to two reasons:
- the getter functions are defined via the query that is sent. We do not need to test the query function here.
- the getter functions and the
execute_query
function are mocked such that everything can be tested as unit test. (Those functions are the only connection to the server that would require integration tests)
Check List for the Author
Please, prepare your MR for a review. Be sure to write a summary and a focus and create gitlab comments for the reviewer. They should guide the reviewer through the changes, explain your changes and also point out open questions. For further good practices have a look at our review guidelines
-
All automated tests pass -
Reference related issues -
Up-to-date CHANGELOG.md (or not necessary) -
Up-to-date JSON schema (or not necessary) -
Appropriate user and developer documentation (or not necessary) - How do I use the software? Assume "stupid" users.
- How do I develop or debug the software? Assume novice developers.
-
Annotations in code (Gitlab comments) - Intent of new code
- Problems with old code
- Why this implementation?
Check List for the Reviewer
-
I understand the intent of this MR -
All automated tests pass -
Up-to-date CHANGELOG.md (or not necessary) -
Appropriate user and developer documentation (or not necessary) -
The test environment setup works and the intended behavior is reproducible in the test environment -
In-code documentation and comments are up-to-date. -
Check: Are there specifications? Are they satisfied?
For further good practices have a look at our review guidelines.
Edited by Henrik tom Wörden