clean up if pre-split returns None

This commit is contained in:
Jesse Bannon 2022-11-30 10:24:25 -08:00
parent df622206b6
commit 56b4fdb942

View file

@ -203,7 +203,7 @@ class SubscriptionDownload(BaseSubscription, ABC):
if entry_: if entry_:
self._post_process_entry( self._post_process_entry(
plugins=plugins, dry_run=dry_run, entry=entry, entry_metadata=entry_metadata plugins=plugins, dry_run=dry_run, entry=entry_, entry_metadata=entry_metadata
) )
self._cleanup_entry_files(entry) self._cleanup_entry_files(entry)
@ -211,6 +211,8 @@ class SubscriptionDownload(BaseSubscription, ABC):
def _process_split_entry( def _process_split_entry(
self, split_plugin: Plugin, plugins: List[Plugin], dry_run: bool, entry: Entry self, split_plugin: Plugin, plugins: List[Plugin], dry_run: bool, entry: Entry
) -> None: ) -> None:
entry_: Optional[Entry] = entry
plugins_pre_split = sorted( plugins_pre_split = sorted(
[plugin for plugin in plugins if not plugin.priority.modify_entry_after_split], [plugin for plugin in plugins if not plugin.priority.modify_entry_after_split],
key=lambda _plugin: _plugin.priority.modify_entry, key=lambda _plugin: _plugin.priority.modify_entry,
@ -223,30 +225,33 @@ class SubscriptionDownload(BaseSubscription, ABC):
# First, modify the entry with pre_split plugins # First, modify the entry with pre_split plugins
for plugin in plugins_pre_split: for plugin in plugins_pre_split:
# Return if it is None, it is indicated to not process any further # Break if it is None, it is indicated to not process any further
if (entry := plugin.modify_entry(entry)) is None: if (entry_ := plugin.modify_entry(entry_)) is None:
return break
# Then, perform the split # Then, perform the split
for split_entry, split_entry_metadata in split_plugin.split(entry=entry): if entry_:
split_entry_: Optional[Entry] = split_entry for split_entry, split_entry_metadata in split_plugin.split(entry=entry_):
split_entry_: Optional[Entry] = split_entry
for plugin in plugins_post_split: for plugin in plugins_post_split:
# Return if it is None, it is indicated to not process any further. # Return if it is None, it is indicated to not process any further.
# Break out of the plugin loop # Break out of the plugin loop
if (split_entry_ := plugin.modify_entry(split_entry_)) is None: if (split_entry_ := plugin.modify_entry(split_entry_)) is None:
break break
# If split_entry is None from modify_entry, do not post process # If split_entry is None from modify_entry, do not post process
if split_entry_: if split_entry_:
self._post_process_entry( self._post_process_entry(
plugins=plugins, plugins=plugins,
dry_run=dry_run, dry_run=dry_run,
entry=split_entry_, entry=split_entry_,
entry_metadata=split_entry_metadata, entry_metadata=split_entry_metadata,
) )
self._cleanup_entry_files(split_entry) self._cleanup_entry_files(split_entry)
self._cleanup_entry_files(entry)
def download(self, dry_run: bool = False) -> FileHandlerTransactionLog: def download(self, dry_run: bool = False) -> FileHandlerTransactionLog:
""" """