wordmarker.templates package

作者

陈思祥

时间

2021年4月

概述

当前模块是WordMarker的核心模块,可以读写csv文件,操纵数据库,读写docx文件等。

  1. wordmarker.templates.pdbc_template

    操纵数据库的模板。
    
  2. wordmarker.templates.csv_template

    读写csv文件的模板。
    
  3. wordmarker.templates.word_template

    读写docx文件的模板。
    

Submodules

wordmarker.templates.csv_template module

class CsvHelper(*args, **kwargs)[源代码]

基类:wordmarker.loaders.default_resource_loader.DefaultResourceLoader, wordmarker.contexts.system_context.SystemContext

通过读取配置文件,获取csv文件的相关信息
get_csv()[源代码]

注解

获取csv文件的绝对路径

返回

  • yaml文件中 data.csv.input.path 是目录,返回当前目录下的所有csv文件的绝对路径

  • yaml文件中 data.csv.input.path 是文件,返回当前文件的绝对路径

get_csv_file_name()[源代码]

注解

获取csv文件的文件名

返回

  • 是文件,返回文件的名字

  • 是目录,返回当前目录下的所有文件的文件名

get_csv_in_path()[源代码]

注解

通过读取yaml文件的 data.csv.in.path 属性,获取输入的csv文件或目录的绝对路径

返回

  • csv文件或目录的绝对路径

get_csv_out_path()[源代码]

注解

通过读取yaml文件的 data.csv.output.dir 属性,获取输出的csv的目录的绝对路径

返回

  • csv目录的绝对路径

class CsvOperations[源代码]

基类:object

csv文件的相关操作的抽象类
abstract csv_to_df()[源代码]

注解

将csv文件转换为 DataFrame

返回

  • 数据框

abstract df_to_csv(*args, **kwargs)[源代码]

注解

DataFrame 转换为csv文件

class CsvTemplate(*args, **kwargs)[源代码]

基类:wordmarker.templates.csv_template.CsvOperations, wordmarker.templates.csv_template.CsvHelper

操作csv文件的模板
csv_to_df(sep=<object object>, delimiter=None, header='infer', names=None, index_col=0, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal: str = '.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, dialect=None, error_bad_lines=True, warn_bad_lines=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None, storage_options: Optional[Dict[str, Any]] = None)Union[pandas.io.parsers.TextFileReader, pandas.core.series.Series, pandas.core.frame.DataFrame, None, Dict[str, Optional[Union[pandas.io.parsers.TextFileReader, pandas.core.series.Series, pandas.core.frame.DataFrame]]]][源代码]

注解

从yaml配置中读取csv文件,转换为 pandasDataFrame

小技巧

csv_to_df的参数详情 , 请访问 pandas官网 ,了解更多信息

返回

  • 多个csv文件,返回一个 DataFrame 的字典

    • key为文件名

    • value为 DataFrame

  • 一个csv文件,返回一个 DataFrame

df_to_csv(data_dict: Dict[str, pandas.core.frame.DataFrame], sep: str = ',', na_rep: str = '', float_format: Optional[str] = None, columns: Optional[Sequence[Optional[Hashable]]] = None, header: Union[bool, List[str]] = True, index: bool = True, index_label: Union[Hashable, None, Sequence[Optional[Hashable]]] = None, mode: str = 'w', encoding: Optional[str] = None, compression: Optional[Union[str, Dict[str, Any]]] = 'infer', quoting: Optional[int] = None, quotechar: str = '"', line_terminator: Optional[str] = None, chunksize: Optional[int] = None, date_format: Optional[str] = None, doublequote: bool = True, escapechar: Optional[str] = None, decimal: str = '.', errors: str = 'strict', storage_options: Optional[Dict[str, Any]] = None)[源代码]

注解

将一个或多个 DataFrame 转换成csv文件,输出到指定文件夹

小技巧

df_to_csv的参数详情 , 请访问 pandas官网 ,了解更多信息

参数

data_dict – 由 DataFrame 组成的字典,key为输出的文件名,value为 DataFrame

wordmarker.templates.pdbc_template module

class PdbcHelper(*args, **kwargs)[源代码]

基类:object

通过读取配置文件获取数据库的信息,进而建立连接
property engine: sqlalchemy.engine.base.Engine

注解

获取引擎对象

返回

  • 引擎对象engine

property engine_dict

注解

获取引擎对象中设置的值

返回

  • 引擎对象中设置的值

  • key为属性

  • value为对应的值

set_engine(**kwargs)[源代码]

注解

设置引擎

小技巧

你可以在调用PdbcTemplate内的方法之前,设置引擎需要的其他参数(不包括配置文件内的参数)

参数

kwargs – 除去配置文件中其他的值,采用key=value的形式

返回

  • engine对象

class PdbcOperations[源代码]

基类:object

数据库的相关操作的抽象类
abstract execute(sql)[源代码]

注解

执行sql语句,建议sql类型为DDL(数据定义语言)时候使用

参数

sql – sql语句

abstract query(sql)[源代码]

注解

查询数据库

参数

sql – sql语句

返回

  • 查询结果

abstract update(sql)[源代码]

注解

更新数据库

参数

sql – sql语句

class PdbcTemplate(*args, **kwargs)[源代码]

基类:wordmarker.templates.pdbc_template.PdbcOperations, wordmarker.templates.pdbc_template.PdbcHelper, wordmarker.data.formatter.SqlFormatter

操作数据库的模板
execute(sql, *args, **kwargs)[源代码]

注解

使用sqlalchemy中的方法执行sql,建议sql类型为DDL(数据定义语言)时候使用

小技巧

如果sql为 select,建议使用query方法

如果sql为 updatedeleteinsert ,建议使用update方法

参数

sql – sql语句

query(sql, *args)Union[pandas.core.frame.DataFrame, Iterator[pandas.core.frame.DataFrame]][源代码]

注解

查询数据库

参数
  • sql – sql语句

  • args – 问号对应的值

返回

  • 查询的数据

query_table(table_name, schema=None, index_col=None, coerce_float=True, parse_dates=None, columns=None, chunksize: Optional[int] = None)Union[pandas.core.frame.DataFrame, Iterator[pandas.core.frame.DataFrame]][源代码]

注解

使用 pandas.read_sql_table 方法,读取整张表的数据

小技巧

query_table的参数详情 , 请访问 pandas官网 ,了解更多信息

返回

  • 查询的数据

update(sql, *args)[源代码]

注解

更新数据库

参数
  • sql – sql语句

  • args – 问号对应的值

update_table(data: pandas.core.frame.DataFrame, name: str, schema=None, if_exists: str = 'replace', index: bool = False, index_label=None, chunksize=None, dtype=None, method=None)[源代码]

注解

使用 pandas.to_sql 方法,将数据写入数据库中的一张表中

小技巧

update_table的参数详情 , 请访问 pandas官网 ,了解更多信息

参数

data – 数据框

wordmarker.templates.word_template module

class AbstractConverter(word_tpl: wordmarker.templates.word_template.WordTemplate)[源代码]

基类:object

此类是用来实现的,可以将yaml模板中的插值进行转换

定义的方法可以为@staticmethod修饰的方法,不能有任何参数,也可以为由self一个参数构成的方法
convert_to_dict()dict[源代码]

注解

将读取的yaml模板中的内容转换为字典

返回

  • yaml模板中的内容,类型为字典

convert_to_str()str[源代码]

注解

将读取的yaml模板中的内容转换为字符串

返回

  • yaml模板中的内容,类型为字符串

get_value(prop)[源代码]

注解

从转换后的yaml字典中,根据属性获取对应的值

加载多个yaml文件,排在后面的文件里的值,会覆盖前面的文件里的值

参数

prop – 属性,用 . 分隔,例如,pdbc.engine.url

返回

  • 转换后的yaml字典中对应的值

class DocxHelper(*args, **kwargs)[源代码]

基类:wordmarker.loaders.default_resource_loader.DefaultResourceLoader

通过读取配置文件,获取docx文件模板的相关信息
property docx

注解

获取docx文件的绝对路径

返回

  • yaml文件中 data.docx.input.path 是目录,返回当前目录下docx文件的绝对路径

  • yaml文件中 data.docx.input.path 是文件,返回docx文件的绝对路径

property docx_in_path

注解

通过读取yaml文件的 data.docx.input.path 属性,获取输入的docx文件或目录的绝对路径

返回

  • docx文件或目录的绝对路径

property docx_out_path

注解

通过读取yaml文件的 data.docx.output.dir 属性,获取输出的docx目录的绝对路径

返回

  • docx目录的绝对路径

get_docx_file_name()[源代码]

注解

获取docx文件的文件名

返回

  • 是docx文件,返回文件的名字

  • 是目录,返回当前目录下的所有docx文件的文件名

class ImgHelper(*args, **kwargs)[源代码]

基类:wordmarker.contexts.system_context.SystemContext

通过读取配置文件,获取img文件的相关信息
clear_img()[源代码]

注解

清除 data.img.output.dir 属性对应的img的输出目录下的所有文件和目录

get_img_file(img_name)[源代码]

注解

根据图片的名字,获取图片的绝对路径

警告

必须先将图片输出到输出目录下,才能获取到

参数

img_name – 图片的名字

返回

  • 图片的绝对路径

property img_out_path

注解

通过读取yaml文件的 data.img.output.dir 属性,获取输出的img目录的绝对路径

返回

  • img目录的绝对路径

class TextHelper(*args, **kwargs)[源代码]

基类:object

通过读取配置文件,获取文本yaml文件的相关信息
get_value(prop)[源代码]

注解

从yaml字典中,根据属性获取对应的值

加载多个yaml文件,排在后面的文件里的值,会覆盖前面的文件里的值

参数

prop – 属性,用 . 分隔,例如,pdbc.engine.url

返回

  • yaml字典中对应的值

get_yaml()dict[源代码]

注解

获取从yaml文件中读取的数据,类型为dict

返回

  • path为文件,返回一个字典,内容为yaml文件的内容

  • path为目录,返回一个嵌套的字典

    • key为yaml文件的绝对路径

    • value为yaml文件的内容,是一个字典

get_yaml_singleton()[源代码]

注解

获取从 data.text.input.path 属性中对应的路径下所有yaml文件中的数据,类型为dict

加载多个yaml文件,排在后面的文件里的值,会覆盖前面的文件里的值

返回

  • 返回一个字典,内容为所有yaml文件的内容

get_yaml_singleton_str()[源代码]

注解

获取从 data.text.input.path 属性中对应的路径下所有yaml文件中的数据,类型为str,内容为一个字典

加载多个yaml文件,排在后面的文件里的值,会覆盖前面的文件里的值

返回

  • 返回一个字符串,内容为一个字典,内容为所有yaml文件的内容

property text_in_path

注解

通过读取yaml文件的 data.text.input.path 属性,获取输入的文本yaml文件的绝对路径

返回

  • 文本yaml文件的绝对路径

class WordTemplate(*args, **kwargs)[源代码]

基类:wordmarker.creatives.builder.AbstractBuilder, wordmarker.templates.word_template.TextHelper, wordmarker.templates.word_template.ImgHelper, wordmarker.templates.word_template.DocxHelper

操作docx文件的模板
append(content)[源代码]

注解

添加其他的content到全局的content中

参数

content – 其他的content,类型是 dict

返回

  • self

build(file_name=None)[源代码]

注解

创建docx文件

参数

file_name – docx文件的文件名

property tpl

注解

获取 DocxTemplate 对象,

小技巧

DocxTemplate 对象的详细信息,请访问 python-docx-template的文档

返回

  • DocxTemplate 对象