有谁知道 python 中的函数 'Parse_vars' 是做什么的?
Does anyone know what the function 'Parse_vars' in python does?
我是 python 的新手,尤其是金字塔框架 - 我正在尝试初始化数据库,但收到 parse_vars is not defined 错误。有谁知道函数 parse_vars 的作用?我在互联网上的任何地方都找不到有关它的信息?
也许如果我明白它在做什么我就可以解决这个错误,
这是代码
def main(argv=sys.argv):
if len(argv) < 2:
usage(argv)
config_uri = argv[1]
options = parse_vars(argv[2:])
setup_logging(config_uri)
settings = get_appsettings(config_uri, options=options)
engine = get_engine(settings)
Base.metadata.create_all(engine)
session_factory = get_session_factory(engine)
with transaction.manager:
dbsession = get_tm_session(session_factory, transaction.manager)
editor = User(name='editor', role='editor')
editor.set_password('editor')
dbsession.add(editor)
basic = User(name='basic', role='basic')
basic.set_password('basic')
dbsession.add(basic)
FTIRModel = FTIRModel(
name='FrontPage',
creator=editor,
data='This is the front page',
)
dbsession.add(FTIRModel)
这里是错误
这不是一个标准函数,因此很难说出它应该做什么。最常见的实现似乎是 Pyramid framework 的一部分,您可以将其导入:
from pyramid.scripts.common import parse_vars
但很难说它是否会满足您的需求。
解析允许参数和变量的值用于 JAMS 的各个区域,例如作业的源或警报。这对于使您的 Jobs 和其他 JAMS 对象更加动态非常有用。下面描述的语法显示了使用解析时的示例。
要访问变量或参数的值,请使用“<>”或“<>”格式。解析允许您将变量或参数的值分配给源代码中的变量,或者直接使用这些值本身。可以使用解析从其他文件夹调用变量。
这里是函数的代码 parse_vars
:
def parse_vars(args):
"""
Given variables like ``['a=b', 'c=d']`` turns it into ``{'a':
'b', 'c': 'd'}``
"""
result = {}
for arg in args:
if '=' not in arg:
raise ValueError(
'Variable assignment %r invalid (no "=")'
% arg)
name, value = arg.split('=', 1)
result[name] = value
return result
正如其文档字符串所描述的那样,它将值从配置文件(例如development.ini
)转换为Python字典。
看起来您从 SQLAlchemy + URL dispatch wiki tutorial 中的这一步复制了代码,然后遗漏了会导致脚本失败的关键部分,最严重的是:
from pyramid.scripts.common import parse_vars
我是 python 的新手,尤其是金字塔框架 - 我正在尝试初始化数据库,但收到 parse_vars is not defined 错误。有谁知道函数 parse_vars 的作用?我在互联网上的任何地方都找不到有关它的信息?
也许如果我明白它在做什么我就可以解决这个错误,
这是代码
def main(argv=sys.argv):
if len(argv) < 2:
usage(argv)
config_uri = argv[1]
options = parse_vars(argv[2:])
setup_logging(config_uri)
settings = get_appsettings(config_uri, options=options)
engine = get_engine(settings)
Base.metadata.create_all(engine)
session_factory = get_session_factory(engine)
with transaction.manager:
dbsession = get_tm_session(session_factory, transaction.manager)
editor = User(name='editor', role='editor')
editor.set_password('editor')
dbsession.add(editor)
basic = User(name='basic', role='basic')
basic.set_password('basic')
dbsession.add(basic)
FTIRModel = FTIRModel(
name='FrontPage',
creator=editor,
data='This is the front page',
)
dbsession.add(FTIRModel)
这里是错误
这不是一个标准函数,因此很难说出它应该做什么。最常见的实现似乎是 Pyramid framework 的一部分,您可以将其导入:
from pyramid.scripts.common import parse_vars
但很难说它是否会满足您的需求。
解析允许参数和变量的值用于 JAMS 的各个区域,例如作业的源或警报。这对于使您的 Jobs 和其他 JAMS 对象更加动态非常有用。下面描述的语法显示了使用解析时的示例。
要访问变量或参数的值,请使用“<>”或“<>”格式。解析允许您将变量或参数的值分配给源代码中的变量,或者直接使用这些值本身。可以使用解析从其他文件夹调用变量。
这里是函数的代码 parse_vars
:
def parse_vars(args):
"""
Given variables like ``['a=b', 'c=d']`` turns it into ``{'a':
'b', 'c': 'd'}``
"""
result = {}
for arg in args:
if '=' not in arg:
raise ValueError(
'Variable assignment %r invalid (no "=")'
% arg)
name, value = arg.split('=', 1)
result[name] = value
return result
正如其文档字符串所描述的那样,它将值从配置文件(例如development.ini
)转换为Python字典。
看起来您从 SQLAlchemy + URL dispatch wiki tutorial 中的这一步复制了代码,然后遗漏了会导致脚本失败的关键部分,最严重的是:
from pyramid.scripts.common import parse_vars