[sync] sync options moved from run parameters to instance fields
This commit is contained in:
1 parent
4c4e800d19
commit
d122d040fe
2 files changed
+29
-12
No files matched your search
@@ -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)
|
||||
|
||||
|
||||
Reference in new issue
Block a user