Files
galaxy/scripts/mypy_config_utils.py
T
2022-09-15 13:20:04 -04:00

47 lines
1.3 KiB
Python

import configparser
import os
from dataclasses import dataclass
from typing import Optional
@dataclass
class MyPyEntry:
section_name: str
package_name: str
target: str
def main():
config = configparser.ConfigParser()
config.read("./mypy.ini")
for section in config.sections():
if not section.startswith("mypy-"):
continue
section_name = section
package_name = section[len("mypy-") :]
if not (package_name.startswith("galaxy.") or package_name.startswith("tool_shed")):
continue
if "*" in package_name:
# Do not handle wild cards yet.
continue
entry = MyPyEntry(section_name, package_name, to_python_path(package_name))
if entry.target is None:
print(f"Warning section {entry.section_name} does not refer to existant files")
def to_python_path(package_name: str) -> Optional[str]:
path = os.path.join("lib", package_name.replace(".", "/"))
if os.path.exists(path + ".py"):
path = f"{path}.py"
else:
index_path = os.path.join(path, "__init__.py")
if os.path.exists(index_path):
path = index_path
else:
path = None
return path
if __name__ == "__main__":
main()