48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
|
|
from typing import Optional
|
||
|
|
|
||
|
|
|
||
|
|
class BaseProjectCommon:
|
||
|
|
setup_path = "/www/server/panel"
|
||
|
|
_allow_mod_name = {
|
||
|
|
"go", "java", "net", "nodejs", "other", "python", "proxy",
|
||
|
|
}
|
||
|
|
|
||
|
|
def get_project_mod_type(self) -> Optional[str]:
|
||
|
|
_mod_name = self.__class__.__module__
|
||
|
|
|
||
|
|
# "projectModel/javaModel.py" 的格式
|
||
|
|
if "/" in _mod_name:
|
||
|
|
_mod_name = _mod_name.replace("/", ".")
|
||
|
|
if _mod_name.endswith(".py"):
|
||
|
|
mod_name = _mod_name[:-3]
|
||
|
|
else:
|
||
|
|
mod_name = _mod_name
|
||
|
|
|
||
|
|
# "projectModel.javaModel" 的格式
|
||
|
|
if "." in mod_name:
|
||
|
|
mod_name = mod_name.rsplit(".", 1)[1]
|
||
|
|
|
||
|
|
if mod_name.endswith("Model"):
|
||
|
|
return mod_name[:-5]
|
||
|
|
if mod_name in self._allow_mod_name:
|
||
|
|
return mod_name
|
||
|
|
return None
|
||
|
|
|
||
|
|
@property
|
||
|
|
def config_prefix(self) -> Optional[str]:
|
||
|
|
if getattr(self, "_config_prefix_cache", None) is not None:
|
||
|
|
return getattr(self, "_config_prefix_cache")
|
||
|
|
p_name = self.get_project_mod_type()
|
||
|
|
if p_name == "nodejs":
|
||
|
|
p_name = "node"
|
||
|
|
|
||
|
|
if isinstance(p_name, str):
|
||
|
|
p_name = p_name + "_"
|
||
|
|
|
||
|
|
setattr(self, "_config_prefix_cache", p_name)
|
||
|
|
return p_name
|
||
|
|
|
||
|
|
@config_prefix.setter
|
||
|
|
def config_prefix(self, prefix: str):
|
||
|
|
setattr(self, "_config_prefix_cache", prefix)
|