self.append((name, rtype))
def do_explode(self, kind):
self.append((name, rtype))
def do_explode(self, kind):
if arg_type in basic_types:
source.append("{}self.{} = {}".format(INDENT * 2, arg_name, arg_name))
elif issubclass(arg_type, typing.Sequence):
if arg_type in basic_types:
source.append("{}self.{} = {}".format(INDENT * 2, arg_name, arg_name))
elif issubclass(arg_type, typing.Sequence):
if type(value_type) is typing.TypeVar:
source.append("{}self.{} = [{}.from_json(o) for o in {} or []]".format(
INDENT * 2, arg_name, strcast(value_type), arg_name))
else:
source.append("{}self.{} = {}".format(INDENT * 2, arg_name, arg_name))
elif issubclass(arg_type, typing.Mapping):
if type(value_type) is typing.TypeVar:
source.append("{}self.{} = [{}.from_json(o) for o in {} or []]".format(
INDENT * 2, arg_name, strcast(value_type), arg_name))
else:
source.append("{}self.{} = {}".format(INDENT * 2, arg_name, arg_name))
elif issubclass(arg_type, typing.Mapping):
if type(value_type) is typing.TypeVar:
source.append("{}self.{} = {{k: {}.from_json(v) for k, v in ({} or dict()).items()}}".format(
INDENT * 2, arg_name, strcast(value_type), arg_name))
else:
source.append("{}self.{} = {}".format(INDENT * 2, arg_name, arg_name))
elif type(arg_type) is typing.TypeVar:
if type(value_type) is typing.TypeVar:
source.append("{}self.{} = {{k: {}.from_json(v) for k, v in ({} or dict()).items()}}".format(
INDENT * 2, arg_name, strcast(value_type), arg_name))
else:
source.append("{}self.{} = {}".format(INDENT * 2, arg_name, arg_name))
elif type(arg_type) is typing.TypeVar:
- source.append("{}self.{} = {}.from_json({})".format(
- INDENT * 2, arg_name, arg_type_name, arg_name))
+ source.append("{}self.{} = {}.from_json({}) if {} else None".format(
+ INDENT * 2, arg_name, arg_type_name, arg_name, arg_name))
cls = classes['Error']
if issubclass(cls, typing.Sequence):
result = []
item_cls = cls.__parameters__[0]
for item in reply:
result.append(item_cls.from_json(item))
cls = classes['Error']
if issubclass(cls, typing.Sequence):
result = []
item_cls = cls.__parameters__[0]
for item in reply:
result.append(item_cls.from_json(item))
- msg = dict(Type='{cls.name}', Request='{name}', Version={cls.version}, Params=params)
+ msg = dict(type='{cls.name}', request='{name}', version={cls.version}, params=params)
for k, v in (data or {}).items():
d[cls._toPy.get(k, k)] = v
for k, v in (data or {}).items():
d[cls._toPy.get(k, k)] = v
add((name, self.buildArray(pprop, d + 1)))
else:
add((name, Mapping[str, SCHEMA_TO_PYTHON[ppkind]]))
add((name, self.buildArray(pprop, d + 1)))
else:
add((name, Mapping[str, SCHEMA_TO_PYTHON[ppkind]]))
- #print("{}{}".format(d * " ", struct))
+
+ if not struct and node.get('additionalProperties', False):
+ add((name, Mapping[str, SCHEMA_TO_PYTHON['object']]))
+
- capture.write("""
-from juju.client.facade import Type, ReturnMapping
- """)
+ capture.write(textwrap.dedent("""\
+ # DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py.
+ # Changes will be overwritten/lost when the file is regenerated.
+
+ from juju.client.facade import Type, ReturnMapping
+
+ """))