一组通常必须在Python脚本中重现的工具

dav-utils的Python项目详细描述


codecov ^{1}$ build

通常必须在Python脚本中重新生成的一组工具

描述符

用于额外类型检查的描述符。在

在描述符.TypeChecker

用于类型检查的通用描述符。 然后,set调用-检查属性value type是否等于value_type。在

用法示例:

class Foo:
    bar = TypeChecker('bar', list)

    def __init__(self, bar):
        self.bar = bar

在描述符.StringType(打字机)

字符串检查的描述符。发送str作为TypeChecker值的类型。在

用法示例:

^{pr2}$

在描述符.IntType(打字机)

字符串检查的描述符。发送int作为TypeChecker值的类型。在

在描述符.ListType(打字机)

字符串检查的描述符。发送list作为TypeChecker值的类型。在

在描述符.DictType(打字机)

字符串检查的描述符。{str{str}按类型发送{str}。在

在描述符.WritableFile(弦式)

新文件检查的描述符。检查文件(值)是否为可写文件或是否可以创建。在

在描述符.HttpMethod(弦式)

http方法检查的描述符。检查value是否是http方法之一。在

自定义描述符示例

class HttpMethodType(StringType):
    http_methods = frozenset(['GET', 'POST', 'PUT', 'HEAD', 'DELETE', 'PATCH', 'OPTIONS'])

    def __set__(self, instance, value):
        super().__set__(instance, value)
        if value not in self.http_methods:
            instance.__dict__[self.name] = None
            raise TypeError(f'{self.name}={value} is not a HTTP Method.')

记录器

在日志记录程序

编写记录器配置和方法脚本。在

log_date_fmt: log date format (only str)
log_fmt: log format (only str)
log_lvl: log level (logging.DEBUG, logging.INFO and etc.)
file_handler is missing intentionally. Use OS features.

记录调试级别消息:

Logging().debug('message')

日志信息级别消息:

Logging().info('message')
警告级别:

Logging().warning('message')

记录错误级别消息:

Logging().error('message')

记录严重级别消息:

Logging().critical('message')

实用工具

一些纯python脚本的实用程序。在

在utils.实用工具

一些有用的utils方法。在

Util().update(attrs_dict:dict)

更新类公共属性。在

Util.check_是否存在(文件路径:str)

如果文件路径不存在,则引发FileNotFoundError。在

Util.check_不存在(文件路径:str)

如果文件路径已存在,则引发FileExistsError。在

Util.check_扩展名(文件名:str,扩展名:frozenset)

比较文件名和扩展名的扩展名。在

file_name example: 'config.json'
extension_list example: ('.json')

Util.str_到\u日期(date_str:str,date_fmt:str)

将str转换为date。在

实用日期(日期:日期时间.日期,日期\u fmt:str)

将日期/日期时间转换为字符串

Util.read_文件\u gen(文件名:str)

一行一行读取file\u name文件的生成器对象。在

Util.save_text_文件(文件路径:str,txt_data)

以明文格式保存文件。 txt_数据可以是列表、生成器或字符串。在

Util.save_json_文件(文件路径:str,json\u data)

以JSON格式保存文件。在

Util().public\u attrs()

返回类公共属性和属性的字典(以''uu'开头的attr 和属性除外)。在

配置

可扩展配置模板。在

在配置配置(Util)

脚本配置。在

logging parameters:
    log_date_fmt: log date format (only str)
    log_fmt: log format (only str)
    log_lvl: log level (logging.DEBUG, logging.INFO and etc.)

__extensions: acceptable configuration file extensions

Config().log

编写记录器实例脚本。在

调试消息示例
cfg = Config()
cfg.log.debug('test')

Config().load(配置文件:str)

从配置文件加载配置属性。在

Config()。创建模板(文件路径:str)

创建JSON配置文件模板。在

用法
import argparse

from dav_utils.config import Config


def parse_args():
    """Incoming script arguments parser."""
    parser = argparse.ArgumentParser()
    parser.add_argument('--config', default='config.json', type=str,
                        help='Path to configuration file, ex: config.json')
    parser.add_argument('--template', default=False, type=bool,
                        help='Create config template')
    return parser.parse_args()


def main():  # pragma: no cover
    """Strait execution examples."""
    args = parse_args()

    if args.template:
        cfg = Config()
        cfg.log.debug('Trying to create template of configuration file.')
        cfg.create_template(args.config)
        cfg.log.debug('Exit.')
        sys.exit(0)

    try:
        user_config = Config(args.config)
        user_config.log.debug(f'Configuration file loaded: {user_config.public_attrs()}')
    except (AssertionError, FileExistsError):
        sys.exit(1)

    sys.exit(0)


if __name__ == '__main__':
    main()

运行测试

python-m unittest发现测试/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用Spring Security成功登录后,java服务器连接丢失   macos Java代码在应用程序中工作,而不是在Servlet中   java LWJGL矩形变得更宽   Android Studio java。lang.NullPointerException:   将自定义主题应用到ChoiceBox时,JavaFX出现java错误   Selenium中具有不同ID的java Click元素   尝试从MySQL查询解析JSON时出现java异常   java CyclicBarrier启动执行不同逻辑的并行线程   添加strutshtml时使用java。tld到jsp文件发生错误   jpa ClassNotFoundException:java。sql。在weblogic上创建SAP Hana数据源时的SQLType   当Rest请求URI过长时,通过apache Camel执行的java GET HTTP操作失败   java在spring数据实体中填充“已创建”列   java背景和按钮问题   单击筛选的RecyclerView项时显示错误数据的java