You've already forked DataMate
init datamate
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import importlib.abc
|
||||
import importlib.util
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
class CustomImporter(importlib.abc.MetaPathFinder):
|
||||
def __init__(self, base_path):
|
||||
self.base_path = Path(base_path).resolve()
|
||||
|
||||
def find_spec(self, fullname, path, target=None):
|
||||
# 将模块名转换为路径(例如:mypkg.mymodule -> mypkg/mymodule.py)
|
||||
parts = fullname.split(".")
|
||||
module_path = self.base_path.joinpath(*parts)
|
||||
|
||||
# 检查是否存在 .py 文件或目录
|
||||
if module_path.with_suffix(".py").exists():
|
||||
return importlib.util.spec_from_file_location(
|
||||
fullname,
|
||||
str(module_path.with_suffix(".py")),
|
||||
submodule_search_locations=[str(module_path.parent)]
|
||||
)
|
||||
elif module_path.is_dir() and (module_path / "__init__.py").exists():
|
||||
return importlib.util.spec_from_file_location(
|
||||
fullname,
|
||||
str(module_path / "__init__.py"),
|
||||
submodule_search_locations=[str(module_path)]
|
||||
)
|
||||
else:
|
||||
return None
|
||||
Reference in New Issue
Block a user