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()
ordelete_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 callingsave()
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.