通用函数和装饰器以及一些额外的包
snuff-utils的Python项目详细描述
剪掉实用工具
通用类和函数。在
安装
pip install -i shuff-utils
多特迪克特
dict
,允许您用点来调用它的键。在
定时器
用于度量执行时间的类。在
# Init and set name of the whole periodtimer=Timer('whole_period')# Start custom measurementtimer.add_point('first block')...timer.add_point('second block')...# Stop custom measurementtimer.stop('first block')timer.add_point('third block')...# Stop all the intervals and print summary detailstimer.stop().print_summary()# [2017-10-09 17:06:10 INFO] PROFILING: whole_period: 5000, first block: 3000, second block: 2000, third block: 2000
烧瓶功能
需要令牌-承载令牌装饰器
检查承载(静态)授权令牌的装饰器
用法:
importosfromdotenvimportload_dotenvfromflask_restfulimportResourcefromsnuff_utils.flask_decoratorsimporttoken_required# Get token from .env fileload_dotenv()MY_TOKEN=os.getenv('MY_TOKEN','')classCallbackEvents(Resource):@token_required(MY_TOKEN)defpost(self):# some code herereturn{}
日期和时间
本地化
将原始时间转换为本地时间。在
localize(some_date,new_timezone='UTC',force=False)
force
param强制将时区替换为新的时区。在
fromdatetimeimportdatetimefrompytzimportUTCdate=datetime(2019,12,12,2,34)localize(date)# datetime.datetime(2019, 12, 12, 2, 34, tzinfo=<UTC>)localize(date,UTC)# datetime.datetime(2019, 12, 12, 2, 34, tzinfo=<UTC>)localize(date,'Europe/Samara')# datetime.datetime(2019, 12, 12, 2, 34, tzinfo=<DstTzInfo 'Europe/Samara' LMT+3:20:00 STD>)date=localize(date,UTC)localize(date,'Europe/Samara')# datetime.datetime(2019, 12, 12, 2, 34, tzinfo=<UTC>)localize(date,'Europe/Samara',force=True)# datetime.datetime(2019, 12, 12, 2, 34, tzinfo=<DstTzInfo 'Europe/Samara' LMT+3:20:00 STD>)
作为时区
返回与self相同的UTC时间,但以_tz的本地时间为单位。继承datetime.astimezone
行为。在
as_timezone(source_date,as_tz='UTC',source_tz_by_default='UTC')
>>>fromdatetimeimportdatetime>>>frompytzimportUTC>>>date=datetime(2019,12,12,2,34)>>>as_timezone(date,UTC)datetime.datetime(2019,12,12,2,34,tzinfo=<UTC>)>>>as_timezone(date,'Europe/Samara')datetime.datetime(2019,12,12,6,34,tzinfo=<DstTzInfo'Europe/Samara'+04+4:00:00STD>)>>>as_timezone(date,'Europe/Samara',source_tz_by_default='Europe/Samara')datetime.datetime(2019,12,12,2,34,tzinfo=<DstTzInfo'Europe/Samara'+04+4:00:00STD>)
输入/输出功能
sv_导入
导入csv或其他-sv文件。在
假设您有两列两行值的csv文件,列之间用分号(;)分隔。像这样:
ID;Name
123;Jimmy
456;Andrew
fromsnuff_utils.io_utilsimportsv_importrows=sv_import('/path/to/sv_file.csv',sep=';')forrowinrows:print(row)# {'ID': '123', 'Name': 'Jimmy'}# {'ID': '456', 'Name': 'Andrew'}
函数返回生成器。要获取dict列表,请将结果转换为列表:
rows=sv_import('/path/to/sv_file.csv',sep=';')data=list(rows)# [# {'first column': 'first row value', 'second column': 'first row value'},# {'first column': 'second row value', 'second column': 'second row value'}# ]
万能的
popattr
popattr(obj, attr, default)
getattr
和delattr
的顺序调用的别名。类似迪克特.pop. 默认值是None
。在
>>>classA:pass>>>a=A()>>>setattr(a,'some',5)>>>popattr(a,'some')5>>>popattr(a,'some')>>>popattr(a,'some','default')'default'
其他功能
其他功能尚未描述。您可以在相应的模块中看到它们。 其中一些在docstring中有描述。在
变更日志
1.0.8(2020-12-09)
- 将
append_to_list
和add_to_set
参数添加到group_list_of_dicts
函数中。在
1.0.7
- 添加了
popattr
函数。在
1.0.6
- 添加了
sv_import
文档。在
1.0.5
- 修正了非pytz时区的
date_and_time.localize
行为。添加了测试。在
1.0.4
- 将
extended_filter
参数添加到marshmallow_extras.convert_to_instance
。在
1.0.3
marshmallow_extras.convert
现在可以接受许多函数作为参数。在- 添加了
marshmallow_extras.convert_items
函数。在 - 添加了
marshmallow_extras.apply
函数-与之配套的deserialize
参数可以对值应用许多函数。在
1.0.2
- 包括项目目录。在
1.0.1
- 更新了
token_required
装饰器。在
1.0.0
- 初始化版本。在
命名
这个包是以斯莱普诺特的歌命名的。多亏了乐队,这帮了大忙。在
- 项目
标签: