check_consistent: allow dots in module names (#5472)

This commit is contained in:
Sebastian Rittau
2021-05-16 20:01:00 +02:00
committed by GitHub
parent 6a9c89e928
commit 35acd2ad6f
2 changed files with 20 additions and 12 deletions

View File

@@ -99,7 +99,7 @@ def check_same_files():
)
_VERSIONS_RE = re.compile(r"^([a-zA-Z_][a-zA-Z0-9_]*): [23]\.\d{1,2}-(?:[23]\.\d{1,2})?$")
_VERSIONS_RE = re.compile(r"^([a-zA-Z_][a-zA-Z0-9_.]*): [23]\.\d{1,2}-(?:[23]\.\d{1,2})?$")
def check_versions():
@@ -115,21 +115,29 @@ def check_versions():
module = m.group(1)
assert module not in versions, f"Duplicate module {module} in VERSIONS"
versions.add(module)
modules = set()
for entry in os.listdir("stdlib"):
if entry == "@python2" or entry == "VERSIONS":
continue
if os.path.isfile(os.path.join("stdlib", entry)):
mod, _ = os.path.splitext(entry)
modules.add(mod)
else:
modules.add(entry)
extra = modules - versions
modules = _find_stdlib_modules()
# Sub-modules don't need to be listed in VERSIONS.
extra = {m.split(".")[0] for m in modules} - versions
assert not extra, f"Modules not in versions: {extra}"
extra = versions - modules
assert not extra, f"Versions not in modules: {extra}"
def _find_stdlib_modules() -> set[str]:
modules = set()
for path, _, files in os.walk("stdlib"):
if "@python2" in path:
continue
for filename in files:
base_module = ".".join(os.path.normpath(path).split(os.sep)[1:])
if filename == "__init__.pyi":
modules.add(base_module)
elif filename.endswith(".pyi"):
mod, _ = os.path.splitext(filename)
modules.add(f"{base_module}.{mod}" if base_module else mod)
return modules
def _strip_dep_version(dependency):
dep_version_pos = len(dependency)
for pos, c in enumerate(dependency):

View File

@@ -71,7 +71,7 @@ def match(fn, args, exclude_list):
return True
_VERSION_LINE_RE = re.compile(r"^([a-zA-Z_][a-zA-Z0-9_]*): ([23]\.\d{1,2})-([23]\.\d{1,2})?$")
_VERSION_LINE_RE = re.compile(r"^([a-zA-Z_][a-zA-Z0-9_.]*): ([23]\.\d{1,2})-([23]\.\d{1,2})?$")
def parse_versions(fname):