Modified input format of instructions for ParsingFlowGenerator. Previous dict wouldn't allow for more than one SecondaryFeaturesFieldInstructions class pointer.

This commit is contained in:
pablo 2020-12-31 19:02:09 +01:00
parent 2b249063e0
commit def858ef6a
2 changed files with 19 additions and 14 deletions

View file

@ -1,4 +1,4 @@
from typing import Union, Iterable, Dict, Callable, Type
from typing import Union, Iterable, Dict, Callable, Type, Tuple
import re
from bs4 import BeautifulSoup
@ -563,18 +563,23 @@ class ParsingFlowGenerator:
def __init__(
self,
parsing_flow_class: Type[ParsingFlow],
instructions_to_attach_with_params: Dict[
Type[BaseTargetFieldInstructions], dict
instructions_to_attach_with_params: Union[
Tuple[Type[BaseTargetFieldInstructions], Dict],
Tuple[Tuple[Type[BaseTargetFieldInstructions], Dict]],
],
) -> None:
"""
Set the flow class and group of instructions to use when creating new
instances of the flow class.
:param parsing_flow_class: the flow class to instantiate
:param instructions_to_attach_with_params: a key-value pair of field
:param instructions_to_attach_with_params: one or more pair of field
instructions class and the paramteres to use when instantiating them
"""
self._parsing_flow_class = parsing_flow_class
if not isinstance(instructions_to_attach_with_params, tuple):
instructions_to_attach_with_params = tuple(
instructions_to_attach_with_params
)
self._instructions_to_attach_with_params = instructions_to_attach_with_params
def get_new_flow(self) -> ParsingFlow:
@ -584,7 +589,7 @@ class ParsingFlowGenerator:
"""
new_parsing_flow = self._parsing_flow_class()
for instruction, params in self._instructions_to_attach_with_params.items():
for instruction, params in self._instructions_to_attach_with_params:
new_parsing_flow.add_instructions(instruction(**params))
return new_parsing_flow