added missing return call in new id generation funcs
This commit is contained in:
@ -178,10 +178,10 @@ def valid_dict(variable:Dict[Any, Any], key_type:Type, value_type:Type,
|
||||
f"in dict '{variable}'")
|
||||
|
||||
def valid_list(variable:List[Any], entry_type:Type,
|
||||
alt_types:List[Type]=[], min_length:int=1)->None:
|
||||
alt_types:List[Type]=[], min_length:int=1, hint:str="")->None:
|
||||
"""Checks that a given list is valid. Value types are checked and a
|
||||
ValueError or TypeError is raised if a problem is encountered."""
|
||||
check_type(variable, List)
|
||||
check_type(variable, List, hint=hint)
|
||||
|
||||
# Check length meets minimum
|
||||
if len(variable) < min_length:
|
||||
@ -189,8 +189,12 @@ def valid_list(variable:List[Any], entry_type:Type,
|
||||
f"of length {min_length}")
|
||||
|
||||
# Check type of each value
|
||||
for entry in variable:
|
||||
check_type(entry, entry_type, alt_types=alt_types)
|
||||
for n, entry in enumerate(variable):
|
||||
if hint:
|
||||
check_type(entry, entry_type, alt_types=alt_types,
|
||||
hint=f"{hint}[{n}]")
|
||||
else:
|
||||
check_type(entry, entry_type, alt_types=alt_types)
|
||||
|
||||
def valid_path(variable:str, allow_base:bool=False, extension:str="",
|
||||
min_length:int=1):
|
||||
|
10
core/meow.py
10
core/meow.py
@ -507,7 +507,9 @@ def create_rule(pattern:BasePattern, recipe:BaseRecipe,
|
||||
through the 'new_rules' variable."""
|
||||
check_type(pattern, BasePattern, hint="create_rule.pattern")
|
||||
check_type(recipe, BaseRecipe, hint="create_rule.recipe")
|
||||
valid_list(new_rules, BaseRule, min_length=0)
|
||||
valid_list(new_rules, BaseRule, min_length=0, hint="create_rule.new_rules")
|
||||
|
||||
print("passed initial check")
|
||||
|
||||
# Imported here to avoid circular imports at top of file
|
||||
import rules
|
||||
@ -516,18 +518,24 @@ def create_rule(pattern:BasePattern, recipe:BaseRecipe,
|
||||
for r in inspect.getmembers(sys.modules["rules"], inspect.isclass) \
|
||||
if (issubclass(r[1], BaseRule))]}
|
||||
|
||||
print("got base rules")
|
||||
|
||||
# Add in new rules
|
||||
for rule in new_rules:
|
||||
all_rules[(rule.pattern_type, rule.recipe_type)] = rule
|
||||
|
||||
print("got new rules")
|
||||
|
||||
# Find appropriate rule type from pattern and recipe types
|
||||
key = (type(pattern).__name__, type(recipe).__name__)
|
||||
print("got key")
|
||||
if (key) in all_rules:
|
||||
return all_rules[key](
|
||||
generate_rule_id(),
|
||||
pattern,
|
||||
recipe
|
||||
)
|
||||
print("no key")
|
||||
# Raise error if not valid rule type can be found
|
||||
raise TypeError(f"No valid rule for Pattern '{pattern}' and Recipe "
|
||||
f"'{recipe}' could be found.")
|
||||
|
@ -23,7 +23,7 @@ def _generate_id(prefix:str="", length:int=16, existing_ids:List[str]=[],
|
||||
f"using values '{charset}' and length of '{length}'.")
|
||||
|
||||
def generate_rule_id():
|
||||
_generate_id(prefix="rule_")
|
||||
return _generate_id(prefix="rule_")
|
||||
|
||||
def generate_job_id():
|
||||
_generate_id(prefix="job_")
|
||||
return _generate_id(prefix="job_")
|
||||
|
Reference in New Issue
Block a user