python项目的助手实用程序
project_runp的Python项目详细描述
泛型帮助者,我希望存在,或者一直复制到我的Python项目中。
env
获取有关环境变量的信息。
.get(key, ...)
您可以使用env.get作为os.environ.get的替换项。它 行为相同,但在类型上更聪明,对环境有额外的魔力 基于设置:
from project_runpy import env env.get('DATABASE_URL') # get an environment variable env.get('DATABASE_URL', 'sqlite:///:memory:') # provide a default env.get('DEBUG', True) # default can be bool env.get('WORKERS', 10) # default can be other types too, like int env.get('DEBUG', True, type_func=bool) # explicitly get bool
如果指定了其他Kwarg,则它们将成为默认的if environment 匹配键:
from project_runpy import env env.get('WORKERS', 10, DEV=1) # if ENVIRONMENT == DEV: default = 1 env.get('DEBUG', FALSE, type_func=bool, TEST=False) # combine it
.require(key, ...)
如果你想特别严格/谨慎,你可以提出一个例外,如果 未使用.require而不是.get设置环境变量。
演示:
>>> from project_runpy import env >>> env.require('SHIRTSNSHOES') ImproperlyConfigured: Environment variable not found: SHIRTSNSHOES
ColorizingStreamHandler
生成彩色控制台输出的日志处理程序
用法:
import logging from project_runpy import ColorizingStreamHandler logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) logger.addHandler(ColorizingStreamHandler())
django:
LOGGING = { ... 'handlers': { ... 'console': { 'level': 'DEBUG', 'class': 'project_runpy.ColorizingStreamHandler', }, }, ... }
ReadableSqlFilter
一个日志过滤器,用于使django.db.backends输出更多 在本地开发中可读。这是django调试工具栏的sql面板的替代选项。 (您也应该使用它)并为html之外的查询添加反馈。 这个将减慢开发服务器的速度,但这是一个更快的折衷方案 优化查询的反馈。
django兼容性:django>;=2.0
转弯:
(0.002) SELECT "tx_elevators_building"."id", "tx_elevators_building"."elbi", "tx_elevators_building"."name_1", "tx_elevators_building"."name_2", "tx_elevators_building"."address_1", "tx_elevators_building"."address_2", "tx_elevators_building"."city", "tx_elevators_building"."zip_code", "tx_elevators_building"."county", "tx_elevators_building"."owner", "tx_elevators_building"."contact", "tx_elevators_building"."latitude", "tx_elevators_building"."longitude" FROM "tx_elevators_building" LIMIT 21; args=()
进入:
(0.002) SELECT...FROM "tx_elevators_building" LIMIT 21
当你有很多查询时,它们都会很好地排列在你的终端上。
要安装,请编辑django设置:
LOGGING = { ... 'filters': { 'readable_sql': { '()': 'project_runpy.ReadableSqlFilter', }, }, 'loggers': { 'django.db.backends': { 'filters': ['readable_sql'], ... }, }, ... }
关于
灵感来自dj-settings-helpers、ansistrm.py和tornado的define。