Skip to content

Commit 3f1738d

Browse files
authored
Merge pull request #167 from sommersoft/examples_allow_uscores
Allow Example Filename Underscore Variations Compared To Repo Name
2 parents ddcf3f0 + c3fc67e commit 3f1738d

File tree

1 file changed

+32
-5
lines changed

1 file changed

+32
-5
lines changed

adabot/lib/circuitpython_library_validators.py

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -636,14 +636,41 @@ def validate_contents(self, repo):
636636
if len(examples_list) < 1:
637637
errors.append(ERROR_MISSING_EXAMPLE_FILES)
638638
else:
639-
lib_name = (repo["name"][repo["name"].rfind("CircuitPython_")
640-
+ 14:].lower())
639+
def __check_lib_name(repo_name, file_name):
640+
""" Nested function to test example file names.
641+
Allows examples to either match the repo name,
642+
or have additional underscores separating the repo name.
643+
"""
644+
file_names = set()
645+
file_names.add(file_name)
646+
647+
name_split = file_name.split("_")
648+
name_rebuilt = ''.join(
649+
(part for part in name_split if ".py" not in part)
650+
)
651+
652+
if name_rebuilt: # avoid adding things like 'simpletest.py' -> ''
653+
file_names.add(name_rebuilt)
654+
655+
found = False
656+
657+
return any(
658+
name.startswith(repo_name) for name in file_names
659+
)
660+
661+
lib_name_start = repo["name"].rfind("CircuitPython_") + 14
662+
lib_name = repo["name"][lib_name_start:].lower()
663+
641664
all_have_name = True
642665
simpletest_exists = False
643666
for example in examples_list:
644-
if (not example["name"].lower().startswith(lib_name)
645-
and example["name"].endswith(".py")):
646-
all_have_name = False
667+
if example["name"].endswith(".py"):
668+
check_lib_name = __check_lib_name(
669+
lib_name,
670+
example["name"].lower()
671+
)
672+
if not check_lib_name:
673+
all_have_name = False
647674
if "simpletest" in example["name"].lower():
648675
simpletest_exists = True
649676
if not all_have_name:

0 commit comments

Comments
 (0)