通用函数和装饰器以及一些额外的包

snuff-utils的Python项目详细描述


剪掉实用工具

通用类和函数。在

安装

pip install -i shuff-utils

多特迪克特

dict,允许您用点来调用它的键。在

^{pr2}$

定时器

用于度量执行时间的类。在

# 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)

forceparam强制将时区替换为新的时区。在

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)

getattrdelattr的顺序调用的别名。类似迪克特.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_listadd_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

  • 初始化版本。在

命名

这个包是以斯莱普诺特的歌命名的。多亏了乐队,这帮了大忙。在

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

推荐PyPI第三方库


热门话题
java希望直接扫描要上传到网页的文档   java JavaFX使对象可见,但不使用(忽略)点击   java LibGdx奇怪的纹理行为   java JavaFx ComboBox在第一次单击时未获得正确的值   api WebDav服务器库最好使用Java   java在Android中维护应用程序状态   java保存在Android中拖放RecyclerView后所做的更改我已经阅读了所有内容   无法读取项目中所需库tomcatembedwebsocket的java存档,或者该存档不是有效的ZIP文件   c#类在系统中有哪些关联?如何在UML中最好地表示它们?   java如何使用bazaar访问两台计算机上的同一文件夹   Java易失性与缓存一致性   java如何解决http11。校长:例外?   java liferaymavenplugin从maven Liferay 6.2.5(6.2 ga6)部署war   安卓的jar for java在哪里。木卫一。文件   java邻接矩阵中BFS的顺序是什么?   虚拟机如何从java启动linux虚拟机?   向DefaultListModel添加元素时java JList未更新   java JMSListener批注无法与REST服务一起使用   java DirectoryStream返回路径的顺序是什么?文件名,上次修改,文件大小?   java DropWizard Hibernate doc想说什么?