一组通常必须在Python脚本中重现的工具
dav-utils的Python项目详细描述
通常必须在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')
实用工具
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发现测试/
- 项目
标签: