mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-01 15:37:32 +08:00
47 lines
1.3 KiB
Python
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()
|