diff --git a/README.md b/README.md index 5dece24..dff4049 100644 --- a/README.md +++ b/README.md @@ -320,20 +320,42 @@ the music_object exists has been addet, it maps the existing object again. """) - return - - _merge --> _map --> return + _merge --> _map end subgraph add["Adding"] + __map("""map the values from music_object.indexing_values + to Collection._attribute_to_object_map by writing + those values in the map as keys, and the class I wanna add as values. + """) + + _add("""add the new music object to _data""") + + __map --> _add + end - exist-->|"if it doesn't exist"|add - exist-->|"if already exists"|merge + exist-->|"if it doesn't exist"|add --> return + exist-->|"if already exists"|merge --> return ``` +This is Implemented in [music_kraken.objects.Collection.append()](src/music_kraken/objects/collection.py). + +The indexing values are defined in the superclass [DatabaseObject](src/music_kraken/objects/parents.py) and get implemented for each Object seperately. I will just give as example its implementation for the `Song` class: + +```python +@property +def indexing_values(self) -> List[Tuple[str, object]]: + return [ + ('id', self.id), + ('title', self.unified_title), + ('barcode', self.barcode), + *[('url', source.url) for source in self.source_collection] + ] +``` + ## Classes and Objects ### music_kraken.objects @@ -378,7 +400,7 @@ you can pass in the Arguments: # Old implementation -> IF U USE THIS NOW YOU ARE DUMB. IT ISN'T FINISHED AND THE STUFF YOU CODE NOW WILL BE BROKEN TOMORROW +> IF U USE THIS NOW YOU ARE DUMB *no offense thoug*. IT ISN'T FINISHED AND THE STUFF YOU CODE NOW WILL BE BROKEN TOMORROW > SOON YOU CAN THOUGH If you want to use this project, or parts from it in your own projects from it,