[sync] sync options moved from run parameters to instance fields

This commit is contained in:
tmshv committed 2019-10-14 20:42:05 +03:00
1 parent 4c4e800d19
commit d122d040fe
2 files changed
+29 -12

No files matched your search

+14 -4
View File
@@ -30,6 +30,16 @@ class Sync:
self.model = model
self.filter_item_fn = filter_item_fn if filter_item_fn else lambda x: True
self.skip_unchanged = True
self.update_enabled = True
self.delete_enabled = True
def set_options(self, su: bool, u: bool, d: bool):
self.skip_unchanged = su
self.update_enabled = u
self.delete_enabled = d
return self
async def clean(self):
pass
@@ -60,7 +70,7 @@ class Sync:
return query
async def run(self, skip_changed=False, update=True, remove=True):
async def run(self):
"""
# Get scope files
# Validate these files. Raise an error
@@ -87,18 +97,18 @@ class Sync:
self.check_urls_uniqueness(items)
# SKIP UNTOUCHED DOCUMENTS
if not skip_changed:
if self.skip_unchanged:
items = await untouched(items)
self.logger.info(f'Ready to process {len(items)} item(s)')
# UPDATING
if update:
if self.update_enabled:
for item in items:
await self.update(item)
self.logger.info('Updated Item {}'.format(item))
# DELETING
if remove:
if self.delete_enabled:
obsolete_items = await self.model.find(self.__items_to_delete_query(items))
obsolete_items = list(obsolete_items)