pip_services3_data.persistence.IdentifiableFilePersistence module

pip_services3_data.persistence.IdentifiableFilePersistence

Identifiable file persistence implementation

copyright

Conceptual Vision Consulting LLC 2018-2019, see AUTHORS for more details.

license

MIT, see LICENSE for more details.

class pip_services3_data.persistence.IdentifiableFilePersistence.IdentifiableFilePersistence(persister: Optional[pip_services3_data.persistence.JsonFilePersister.JsonFilePersister] = None)

Bases: pip_services3_data.persistence.IdentifiableMemoryPersistence.IdentifiableMemoryPersistence, pip_services3_commons.data.IIdentifiable.IIdentifiable

Abstract persistence component that stores data in flat files and implements a number of CRUD operations over data items with unique ids. The data items must implement IIdentifiable interface.

In basic scenarios child classes shall only override get_page_by_filter(), get_list_by_filter() or delete_by_filter() operations with specific filter function. All other operations can be used out of the box. In complex scenarios child classes can implement additional operations by accessing cached items via self._items property and calling save() method on updates.

### Configuration parameters ###
  • path: path to the file where data is stored

  • options:
    • max_page_size: Maximum number of items returned in a single page (default: 100)

### References ###
  • *:logger:*:*:1.0 (optional) ILogger components to pass log messages

Example:

class MyFilePersistence(IdentifiableFilePersistence):
    def __init__(self, path):
        super(MyFilePersistence, self).__init__(JsonPersister(path))

    def get_page_by_filter(self, correlationId, filter, paging):
        super().get_page_by_filter(correlationId, filter, paging, None)

    persistence = MyFilePersistence("./data/data.json")

    item = persistence.create("123", MyData("1", "ABC"))

    mydata = persistence.get_page_by_filter("123", FilterParams.from_tuples("name", "ABC"), None, None)
    print str(mydata.get_data())

    persistence.delete_by_id("123", "1")
configure(config: pip_services3_commons.config.ConfigParams.ConfigParams)

Configures component by passing configuration parameters.

Parameters

config – configuration parameters to be set.