Refactor Identifiable and caches
Summary
In the previous plan, where the Identifiable did not include the ID or the path, we only thought of finding Records in the remote server. However, we use identifiable also for identifying objects locally with each other (via the caches). And we want, for example, to identify two Files with the same path with each other.
I thus included ID and path in the Identifiable class. I then changed the way the caches check whether an identifiable is in it. The hashing is only used for identifying properties and there is a __eq__
function that deals with the singularly identifying properties like ID and path.
Focus
The additions of the Identifiable class.
Test Environment
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) -
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) -
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.