pmfp.entrypoint.project.add

ppm project add命令的处理.

Package Contents

Classes

ComponentTemplate

组件模板类.

SourcePack

资源包类.

InfoBase

获取本目录下项目的基本信息.

Functions

iter_dir_to_end(path: pathlib.Path, match: Callable[[pathlib.Path], bool], *, skip_dir: Optional[Callable[[pathlib.Path], bool]] = None, succ_cb: Optional[Callable[[pathlib.Path], None]] = None, fail_cb: Optional[Callable[[pathlib.Path], None]] = None, skip_dir_handdler: Optional[Callable[[pathlib.Path], None]] = None) → None

遍历文件夹到底,并按指定的函数来做区分.

get_abs_path(path_str: str, cwd: Optional[pathlib.Path] = None) → pathlib.Path

由路径字符串获取绝对路径.

get_cache_dir() → pathlib.Path

获取缓存根目录.

get_config_info() → Dict[str, Any]

获取配置信息.

template_2_content(template: str, **kwargs: Any) → str

将模板转换为文件内容.

sourcepack_check_and_cached(cached_sourcepack: List[str], source_pack: pmfp.utils.remote_cache_utils.SourcePack, cache_dir: pathlib.Path) → pathlib.Path

检测资源包是否已经有缓存,没有就缓存.

check_and_cached(cached_sourcepack: List[str], component_string: str, cache_dir: pathlib.Path) → Tuple[pmfp.utils.remote_cache_utils.ComponentTemplate, pathlib.Path]

检查组件的模板库是否有缓存,没有的话进行缓存.

make_template_kv(sourcepack_config: Dict[str, Any], projectconfig: Dict[str, Any], kv: Optional[List[str]] = None, oldtemplate_kw: Optional[Dict[str, Any]] = None) → Dict[str, str]

构造模板中匹配的kv.

check_source(pmfpconf: Dict[str, Any], projectconfig: Dict[str, Any], sourcepackdir: pathlib.Path, component_string: str) → Dict[str, Any]

校验组件所在模板库的信息,通过的话返回模板库信息

check_component(sourcepack_config: Dict[str, Any], componentpack: pmfp.utils.remote_cache_utils.ComponentTemplate, component_string: str) → Dict[str, Any]

校验组件信息,通过的话返回组件信息.

iter_dir_rename(path: pathlib.Path, **kwargs: Any) → None

遍历目标文件夹,将`_ref_`和`_fre_`包裹的文件或文件夹名作为模板重命名.

to_target_source(projectconfig: Dict[str, Any], target_component_info: Dict[str, Any], cwdp: pathlib.Path, sourcepackdir: pathlib.Path, target_source: str, tempkv: Dict[str, Any], located_path: Optional[str] = None, root_default_path: Optional[str] = None) → str

将目标组件模板转换到项目目录.

save_to_components(cwdp: pathlib.Path, component_string: str, located_path_str: str) → None

保存组件信息到项目配置.

_add_component(cached_sourcepacks: List[str], projectconfig: Dict[str, Any], pmfpconf: Dict[str, Any], cache_dir: pathlib.Path, component_string: str, cwdp: pathlib.Path, *, located_path: Optional[str] = None, save: bool = True, kv: Optional[List[str]] = None, root_default_path: Optional[str] = None, oldtemplate_kw: Optional[Dict[str, Any]] = None) → Tuple[pmfp.utils.remote_cache_utils.ComponentTemplate, Dict[str, Any]]

add_component(component_string: str, located_path: Optional[str] = None, kv: Optional[List[str]] = None, cwd: str = '.') → None

为项目添加组件.

Attributes

PMFP_CONFIG_DEFAULT_NAME

project_add

pmfp.entrypoint.project.add.PMFP_CONFIG_DEFAULT_NAME = pmfprc.json[源代码]
pmfp.entrypoint.project.add.iter_dir_to_end(path: pathlib.Path, match: Callable[[pathlib.Path], bool], *, skip_dir: Optional[Callable[[pathlib.Path], bool]] = None, succ_cb: Optional[Callable[[pathlib.Path], None]] = None, fail_cb: Optional[Callable[[pathlib.Path], None]] = None, skip_dir_handdler: Optional[Callable[[pathlib.Path], None]] = None)None[源代码]

遍历文件夹到底,并按指定的函数来做区分.

参数
  • path (Path) – 文件夹路径

  • match (Callable[[Path],bool]) – 筛选条件

  • succ_cb (Optional[Callable[[Path],None]], optional) – 路径满足筛选条件后执行的回调函数. Defaults to None.

  • fail_cb (Optional[Callable[[Path],None]], optional) – 路径不满足筛选条件执行的回调函数. Defaults to None.

pmfp.entrypoint.project.add.get_abs_path(path_str: str, cwd: Optional[pathlib.Path] = None)pathlib.Path[源代码]

由路径字符串获取绝对路径.

参数
  • path_str (str) – 路径字符创

  • cwd (Optional[Path]) – 指定执行时的位置

返回

路径字符串的绝对路径

返回类型

Path

class pmfp.entrypoint.project.add.ComponentTemplate(component_path_str: str, source_pack: SourcePack)[源代码]

组件模板类.

TENPLATE_URL = [{host}::]{repo_namespace}::{repo_name}[@{tag}]//{component_path}
classmethod from_component_string(cls, component_string: str)ComponentTemplate

从组件模板字符串构造组件模板对象.

组件模板字符串的形式为`”[[{host}::]{repo_namespace}::]{repo_name}[@{tag}]//{component_path_str}”`

返回

组件模板对象

返回类型

[ComponentTemplate]

as_component_string(self)str

构造组件模板字符串.

class pmfp.entrypoint.project.add.SourcePack(repo_name: str, *, repo_namespace: Optional[str] = None, tag: str = 'latest', host: Optional[str] = None)[源代码]

资源包类.

TENPLATE_URL = {host}::{repo_namespace}::{repo_name}@{tag}
classmethod from_sourcepack_string(cls, sourcepack_string: str)SourcePack

从资源包字符串构造资源包对象.

参数

sourcepack_string (str) – 用于描述资源包的字符串,其形式为`”[[{host}::]{repo_namespace}::]{repo_name}[@{tag}]”`

返回

资源包对象.

返回类型

[SourcePack]

as_sourcepack_string(self)str

构造资源包字符串.

git_url(self, schema: str = 'https')str

构造资源包的git仓库地址url.

参数

schema (str, optional) – url协议. Defaults to “https”.

返回

git的仓库地址字符串.

返回类型

str

pull_latest(self, cache_dir: pathlib.Path, throw: bool = True)None

拉取最新镜像,并将原来的版本以hash为tag保存

参数
  • temp_dir (Path) – [description]

  • throw (bool) – 是否抛出异常

clone_source_pack(self, cache_dir: pathlib.Path, throw: bool = False)None

克隆资源包到本地缓存临时文件夹.

如果资源包的tag不是latest则clone下来后删除.git文件夹,否则保存

参数
  • cache_dir (Path) – 缓存文件夹地址.

  • throw (bool) – 是否抛出异常

source_pack_path(self, cache_dir: pathlib.Path)pathlib.Path

构造资源包的本地路径.

参数

cache_dir (Path) – 缓存文件夹路径.

返回

资源包所在的文件夹路径

返回类型

Path

cache(self, cache_dir: pathlib.Path, throw_clone: bool = False, throw_pull: bool = False, not_pull: bool = False)None

缓存资源包到本地.

参数
  • cache_dir (Path) – 缓存文件夹地址.

  • throw (bool) – 是否抛出异常

pmfp.entrypoint.project.add.get_cache_dir()pathlib.Path[源代码]

获取缓存根目录.

pmfp.entrypoint.project.add.get_config_info()Dict[str, Any][源代码]

获取配置信息.

pmfp.entrypoint.project.add.template_2_content(template: str, **kwargs: Any)str[源代码]

将模板转换为文件内容.

参数
  • template (str) – 模板字符串

  • kwargs (Dict[str,str]) – 由模板构造内容的关键字

class pmfp.entrypoint.project.add.InfoBase(*, description: Optional[str] = None, epilog: Optional[str] = None, usage: Optional[str] = None, name: Optional[str] = None, schema: Optional[schema_entry.entrypoint_base.SchemaType] = None, verify_schema: Optional[bool] = None, default_config_file_paths: Optional[List[str]] = None, config_file_only_get_need: Optional[bool] = None, load_all_config_file: Optional[bool] = None, env_prefix: Optional[str] = None, parse_env: Optional[bool] = None, argparse_check_required: Optional[bool] = None, argparse_noflag: Optional[str] = None, config_file_parser_map: Optional[Dict[str, Callable[[pathlib.Path], Dict[str, Any]]]] = None, main: Optional[Callable[Ellipsis, None]] = None)[源代码]

Bases: pmfp.utils.endpoint.EndPoint

获取本目录下项目的基本信息.

verify_schema = False
load_all_config_file = True
config_file_only_get_need = False
do_main(self)None

执行入口函数.

pmfp.entrypoint.project.add.project_add[源代码]
pmfp.entrypoint.project.add.sourcepack_check_and_cached(cached_sourcepack: List[str], source_pack: pmfp.utils.remote_cache_utils.SourcePack, cache_dir: pathlib.Path)pathlib.Path[源代码]

检测资源包是否已经有缓存,没有就缓存.

参数
  • cached_sourcepack (List[str]) – 已经缓存过的资源包列表

  • source_pack (SourcePack) – 资源包对象

  • cache_dir (Path) – 缓存根目录

引发

AttributeError – 不是目录,请确认情况

返回

资源包的本地缓存路径

返回类型

Path

pmfp.entrypoint.project.add.check_and_cached(cached_sourcepack: List[str], component_string: str, cache_dir: pathlib.Path)Tuple[pmfp.utils.remote_cache_utils.ComponentTemplate, pathlib.Path][源代码]

检查组件的模板库是否有缓存,没有的话进行缓存.

`latest`和`dev`标签的模板库都会进行缓存更新.

参数
  • cached_sourcepack (List[str]) – 已经缓存过的资源包列表

  • component_string (str) – 组件字符串

  • cache_dir (Path) – 缓存根目录

引发
  • AttributeError – 组件缓存位置不是目录

  • e – 其他执行中的异常

返回

组件对象

返回类型

ComponentTemplate

pmfp.entrypoint.project.add.make_template_kv(sourcepack_config: Dict[str, Any], projectconfig: Dict[str, Any], kv: Optional[List[str]] = None, oldtemplate_kw: Optional[Dict[str, Any]] = None)Dict[str, str][源代码]

构造模板中匹配的kv.

参数

kv (Optional[List[str]], optional) – 外部输入的kv对. Defaults to None.

返回

模板render时的输入

返回类型

Dict[str, str]

pmfp.entrypoint.project.add.check_source(pmfpconf: Dict[str, Any], projectconfig: Dict[str, Any], sourcepackdir: pathlib.Path, component_string: str)Dict[str, Any][源代码]

校验组件所在模板库的信息,通过的话返回模板库信息

pmfp.entrypoint.project.add.check_component(sourcepack_config: Dict[str, Any], componentpack: pmfp.utils.remote_cache_utils.ComponentTemplate, component_string: str)Dict[str, Any][源代码]

校验组件信息,通过的话返回组件信息.

pmfp.entrypoint.project.add.iter_dir_rename(path: pathlib.Path, **kwargs: Any)None[源代码]

遍历目标文件夹,将`_ref_`和`_fre_`包裹的文件或文件夹名作为模板重命名.

参数

path (Path) – 根目录路径

pmfp.entrypoint.project.add.to_target_source(projectconfig: Dict[str, Any], target_component_info: Dict[str, Any], cwdp: pathlib.Path, sourcepackdir: pathlib.Path, target_source: str, tempkv: Dict[str, Any], located_path: Optional[str] = None, root_default_path: Optional[str] = None)str[源代码]

将目标组件模板转换到项目目录.

pmfp.entrypoint.project.add.save_to_components(cwdp: pathlib.Path, component_string: str, located_path_str: str)None[源代码]

保存组件信息到项目配置.

pmfp.entrypoint.project.add._add_component(cached_sourcepacks: List[str], projectconfig: Dict[str, Any], pmfpconf: Dict[str, Any], cache_dir: pathlib.Path, component_string: str, cwdp: pathlib.Path, *, located_path: Optional[str] = None, save: bool = True, kv: Optional[List[str]] = None, root_default_path: Optional[str] = None, oldtemplate_kw: Optional[Dict[str, Any]] = None)Tuple[pmfp.utils.remote_cache_utils.ComponentTemplate, Dict[str, Any]][源代码]
pmfp.entrypoint.project.add.add_component(component_string: str, located_path: Optional[str] = None, kv: Optional[List[str]] = None, cwd: str = '.')None[源代码]

为项目添加组件.

参数
  • component_string (str) – 描述组件资源包的字符串,格式为”[{host}::]{repo_namespace}::{repo_name}[@{tag}]//{component_path}”.

  • located_path (Optional[str], optional) – 放在本地的位置.