本文整理汇总了Python中pyutilib.misc.Options.update方法的典型用法代码示例。如果您正苦于以下问题:Python Options.update方法的具体用法?Python Options.update怎么用?Python Options.update使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyutilib.misc.Options
的用法示例。
在下文中一共展示了Options.update方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: PyomoDataCommands
# 需要导入模块: from pyutilib.misc import Options [as 别名]
# 或者: from pyutilib.misc.Options import update [as 别名]
class PyomoDataCommands(Plugin):
alias("dat", "Pyomo data command file interface")
implements(IDataManager, service=False)
def __init__(self):
self._info = []
self.options = Options()
def available(self):
return True
def initialize(self, **kwds):
self.filename = kwds.pop("filename")
self.add_options(**kwds)
def add_options(self, **kwds):
self.options.update(kwds)
def open(self):
if self.filename is None: # pragma:nocover
raise IOError("No filename specified")
if not os.path.exists(self.filename): # pragma:nocover
raise IOError("Cannot find file '%s'" % self.filename)
def close(self):
pass
def read(self):
"""
This function does nothing, since executing Pyomo data commands
both reads and processes the data all at once.
"""
pass
def write(self, data): # pragma:nocover
"""
This function does nothing, because we cannot write to a *.dat file.
"""
pass
def process(self, model, data, default):
"""
Read Pyomo data commands and process the data.
"""
_process_include(["include", self.filename], model, data, default, self.options)
def clear(self):
self._info = []
示例2: JSONDictionary
# 需要导入模块: from pyutilib.misc import Options [as 别名]
# 或者: from pyutilib.misc.Options import update [as 别名]
class JSONDictionary(Plugin):
alias("json", "JSON file interface")
implements(IDataManager, service=False)
def __init__(self):
self._info = {}
self.options = Options()
def available(self):
return True
def initialize(self, **kwds):
self.filename = kwds.pop('filename')
self.add_options(**kwds)
def add_options(self, **kwds):
self.options.update(kwds)
def open(self):
if self.filename is None:
raise IOError("No filename specified")
def close(self):
pass
def read(self):
"""
This function loads data from a JSON file and tuplizes the nested
dictionaries and lists of lists.
"""
if not os.path.exists(self.filename):
raise IOError("Cannot find file '%s'" % self.filename)
INPUT = open(self.filename, 'r')
jdata = json.load(INPUT)
INPUT.close()
if jdata is None or len(jdata) == 0:
raise IOError("Empty JSON data file")
self._info = {}
for k,v in jdata.items():
self._info[k] = tuplize(v)
def write(self, data):
"""
This function creates a JSON file for the specified data.
"""
with open(self.filename, 'w') as OUTPUT:
jdata = {}
if self.options.data is None:
for k,v in data.items():
jdata[k] = detuplize(v)
elif type(self.options.data) in (list, tuple):
for k in self.options.data:
jdata[k] = detuplize(data[k])
else:
k = self.options.data
jdata[k] = detuplize(data[k])
json.dump(jdata, OUTPUT)
def process(self, model, data, default):
"""
Set the data for the selected components
"""
if not self.options.namespace in data:
data[self.options.namespace] = {}
#
try:
if self.options.data is None:
for key in self._info:
self._set_data(data, self.options.namespace, key, self._info[key])
elif type(self.options.data) in (list, tuple):
for key in self.options.data:
self._set_data(data, self.options.namespace, key, self._info[key])
else:
key = self.options.data
self._set_data(data, self.options.namespace, key, self._info[key])
except KeyError:
raise IOError("Data value for '%s' is not available in JSON file '%s'" % (key, self.filename))
def _set_data(self, data, namespace, name, value):
if type(value) is dict:
data[namespace][name] = value
else:
data[namespace][name] = {None: value}
def clear(self):
self._info = {}
示例3: TableData
# 需要导入模块: from pyutilib.misc import Options [as 别名]
# 或者: from pyutilib.misc.Options import update [as 别名]
class TableData(object):
"""
A class used to read/write data from/to a table in an external
data source.
"""
def __init__(self):
"""
Constructor
"""
self._info=None
self._data=None
self.options = Options()
self.options.ncolumns = 1
def available(self):
"""
Returns:
Return :const:`True` if the data manager is available.
"""
return True
def initialize(self, **kwds):
"""
Initialize the data manager with keyword arguments.
The `filename` argument is recognized here, and other arguments
are passed to the :func:`add_options` method.
"""
self.filename = kwds.pop('filename')
self.add_options(**kwds)
def add_options(self, **kwds):
"""
Add the keyword options to the :class:`Options` object in this
object.
"""
self.options.update(kwds)
def open(self): #pragma:nocover
"""
Open the data manager.
"""
pass
def read(self): #pragma:nocover
"""
Read data from the data manager.
"""
return False
def write(self, data): #pragma:nocover
"""
Write data to the data manager.
"""
return False
def close(self): #pragma:nocover
"""
Close the data manager.
"""
pass
def process(self, model, data, default):
"""
Process the data that was extracted from this data manager and
return it.
"""
if model is None:
model = self.options.model
if not self.options.namespace in data:
data[self.options.namespace] = {}
return _process_data(
self._info,
model,
data[self.options.namespace],
default,
self.filename,
index=self.options.index,
set=self.options.set,
param=self.options.param,
ncolumns = self.options.ncolumns)
def clear(self):
"""
Clear the data that was extracted from this table
"""
self._info = None
def _set_data(self, headers, rows):
from pyomo.core.base.sets import Set
from pyomo.core.base.param import Param
header_index = []
if self.options.select is None:
for i in xrange(len(headers)):
header_index.append(i)
else:
for i in self.options.select:
try:
#.........这里部分代码省略.........
示例4: TableData
# 需要导入模块: from pyutilib.misc import Options [as 别名]
# 或者: from pyutilib.misc.Options import update [as 别名]
class TableData(Plugin):
"""
An object that imports data from a table in an external data source.
"""
implements(IDataManager, service=False)
def __init__(self):
"""
Constructor
"""
self._info=None
self._data=None
self.options = Options()
self.options.ncolumns = 1
def available(self):
return True
def initialize(self, **kwds):
self.filename = kwds.pop('filename')
self.add_options(**kwds)
def add_options(self, **kwds):
self.options.update(kwds)
def open(self): #pragma:nocover
"""
Open the table
"""
pass
def read(self): #pragma:nocover
"""
Read data from the table
"""
return False
def write(self, data): #pragma:nocover
"""
Write data from the table
"""
return False
def close(self): #pragma:nocover
"""
Close the table
"""
pass
def process(self, model, data, default):
"""
Return the data that was extracted from this table
"""
if model is None:
model = self.options.model
if not self.options.namespace in data:
data[self.options.namespace] = {}
return _process_data(
self._info,
model,
data[self.options.namespace],
default,
self.filename,
index=self.options.index,
set=self.options.set,
param=self.options.param,
ncolumns = self.options.ncolumns)
def clear(self):
"""
Clear the data that was extracted from this table
"""
self._info = None
def _set_data(self, headers, rows):
header_index = []
if self.options.select is None:
for i in xrange(len(headers)):
header_index.append(i)
else:
for i in self.options.select:
header_index.append(headers.index(str(i)))
self.options.ncolumns = len(headers)
if not self.options.param is None:
if not type(self.options.param) in (list, tuple):
self.options.param = (self.options.param,)
_params = []
for p in self.options.param:
if isinstance(p, Param):
self.options.model = p.model()
_params.append(p.local_name)
else:
_params.append(p)
self.options.param = tuple(_params)
if isinstance(self.options.set, Set):
self.options.model = self.options.set.model()
self.options.set = self.options.set.local_name
#.........这里部分代码省略.........
示例5: JSONDictionary
# 需要导入模块: from pyutilib.misc import Options [as 别名]
# 或者: from pyutilib.misc.Options import update [as 别名]
class JSONDictionary(object):
def __init__(self):
self._info = {}
self.options = Options()
def available(self):
return True
def initialize(self, **kwds):
self.filename = kwds.pop('filename')
self.add_options(**kwds)
def add_options(self, **kwds):
self.options.update(kwds)
def open(self):
if self.filename is None:
raise IOError("No filename specified")
def close(self):
pass
def read(self):
"""
This function loads data from a JSON file and tuplizes the nested
dictionaries and lists of lists.
"""
if not os.path.exists(self.filename):
raise IOError("Cannot find file '%s'" % self.filename)
INPUT = open(self.filename, 'r')
if six.PY2 and self.options.convert_unicode:
def _byteify(data, ignore_dicts=False):
if isinstance(data, six.text_type):
return data.encode('utf-8')
if isinstance(data, list):
return [ _byteify(item, True) for item in data ]
if isinstance(data, dict) and not ignore_dicts:
return dict( (_byteify(key, True), _byteify(value, True)) for (key, value) in data.iteritems() )
return data
jdata = json.load(INPUT, object_hook=_byteify)
else:
jdata = json.load(INPUT)
INPUT.close()
if jdata is None or len(jdata) == 0:
raise IOError("Empty JSON data file")
self._info = {}
for k,v in jdata.items():
self._info[k] = tuplize(v)
def write(self, data):
"""
This function creates a JSON file for the specified data.
"""
with open(self.filename, 'w') as OUTPUT:
jdata = {}
if self.options.data is None:
for k,v in data.items():
jdata[k] = detuplize(v)
elif type(self.options.data) in (list, tuple):
for k in self.options.data:
jdata[k] = detuplize(data[k], sort=self.options.sort)
else:
k = self.options.data
jdata[k] = detuplize(data[k])
json.dump(jdata, OUTPUT)
def process(self, model, data, default):
"""
Set the data for the selected components
"""
if not self.options.namespace in data:
data[self.options.namespace] = {}
#
try:
if self.options.data is None:
for key in self._info:
self._set_data(data, self.options.namespace, key, self._info[key])
elif type(self.options.data) in (list, tuple):
for key in self.options.data:
self._set_data(data, self.options.namespace, key, self._info[key])
else:
key = self.options.data
self._set_data(data, self.options.namespace, key, self._info[key])
except KeyError:
raise IOError("Data value for '%s' is not available in JSON file '%s'" % (key, self.filename))
def _set_data(self, data, namespace, name, value):
if type(value) is dict:
data[namespace][name] = value
else:
data[namespace][name] = {None: value}
def clear(self):
self._info = {}
示例6: YamlDictionary
# 需要导入模块: from pyutilib.misc import Options [as 别名]
# 或者: from pyutilib.misc.Options import update [as 别名]
class YamlDictionary(object):
def __init__(self):
self._info = {}
self.options = Options()
def available(self):
return yaml_available
def requirements(self):
return "pyyaml"
def initialize(self, **kwds):
self.filename = kwds.pop('filename')
self.add_options(**kwds)
def add_options(self, **kwds):
self.options.update(kwds)
def open(self):
if self.filename is None:
raise IOError("No filename specified")
def close(self):
pass
def read(self):
"""
This function loads data from a YAML file and tuplizes the nested
dictionaries and lists of lists.
"""
if not os.path.exists(self.filename):
raise IOError("Cannot find file '%s'" % self.filename)
INPUT = open(self.filename, 'r')
jdata = yaml.load(INPUT)
INPUT.close()
if jdata is None:
raise IOError("Empty YAML file")
self._info = {}
for k,v in jdata.items():
self._info[k] = tuplize(v)
def write(self, data):
"""
This function creates a YAML file for the specified data.
"""
with open(self.filename, 'w') as OUTPUT:
jdata = {}
if self.options.data is None:
for k,v in data.items():
jdata[k] = detuplize(v)
elif type(self.options.data) in (list, tuple):
for k in self.options.data:
jdata[k] = detuplize(data[k], sort=self.options.sort)
else:
k = self.options.data
jdata[k] = detuplize(data[k])
yaml.dump(jdata, OUTPUT)
def process(self, model, data, default):
"""
Set the data for the selected components
"""
if not self.options.namespace in data:
data[self.options.namespace] = {}
#
try:
if self.options.data is None:
for key in self._info:
self._set_data(data, self.options.namespace, key, self._info[key])
elif type(self.options.data) in (list, tuple):
for key in self.options.data:
self._set_data(data, self.options.namespace, key, self._info[key])
else:
key = self.options.data
self._set_data(data, self.options.namespace, key, self._info[key])
except KeyError:
raise IOError("Data value for '%s' is not available in YAML file '%s'" % (key, self.filename))
def _set_data(self, data, namespace, name, value):
if type(value) is dict:
data[namespace][name] = value
else:
data[namespace][name] = {None: value}
def clear(self):
self._info = {}