fix: improve IDE support for lazy package exports

This commit is contained in:
SWHL committed 2026-07-09 11:22:07 +08:00
1 parent c4db82f7ac
commit 096293330e
4 files changed
+38 -19

No files matched your search

+2
View File
@@ -58,6 +58,8 @@ namespaces = false
[tool.setuptools.package-data]
rapidocr = [
"**/*.yaml",
"**/*.pyi",
"py.typed",
]
[tool.setuptools_scm]
+22 -19
View File
@@ -1,33 +1,36 @@
# -*- encoding: utf-8 -*-
# @Author: SWHL
# @Contact: liekkaskono@163.com
from importlib import import_module
from typing import TYPE_CHECKING
from .utils.typings import EngineType, LangCls, LangDet, LangRec, ModelType, OCRVersion
if TYPE_CHECKING:
from .main import RapidOCR
from .utils.download_models import download_models
from .utils.load_image import LoadImageError
from .utils.vis_res import VisRes
_LAZY_IMPORTS = {
"RapidOCR": ".main",
"LoadImageError": ".utils.load_image",
"VisRes": ".utils.vis_res",
"download_models": ".utils.download_models",
}
def __getattr__(name):
if name == "RapidOCR":
from .main import RapidOCR
return RapidOCR
if name == "LoadImageError":
from .utils.load_image import LoadImageError
return LoadImageError
if name == "VisRes":
from .utils.vis_res import VisRes
return VisRes
if name == "download_models":
from .utils.download_models import download_models
return download_models
if name in _LAZY_IMPORTS:
return getattr(import_module(_LAZY_IMPORTS[name], __name__), name)
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
def __dir__():
return sorted([*globals(), *__all__])
__all__ = [
"RapidOCR",
"LoadImageError",
+14
View File
@@ -0,0 +1,14 @@
from typing import List
from .main import RapidOCR as RapidOCR
from .utils.download_models import download_models as download_models
from .utils.load_image import LoadImageError as LoadImageError
from .utils.typings import EngineType as EngineType
from .utils.typings import LangCls as LangCls
from .utils.typings import LangDet as LangDet
from .utils.typings import LangRec as LangRec
from .utils.typings import ModelType as ModelType
from .utils.typings import OCRVersion as OCRVersion
from .utils.vis_res import VisRes as VisRes
__all__: List[str]
View File
Whitespace-only changes.