For the following test schema, I'm running into a issues with builder not converting the list:
{
"type": "object",
"properties": {
"Destination": {
"type": "object",
"properties": {
"IPAddress": {
"OneOf": [
{
"type": "string",
"pattern": "^(?:(?:\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(?:\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])$"
},
{
"type": "string",
"pattern": "^((([0-9A-Fa-f]{1,4}:){1,6}:)|(([0-9A-Fa-f]{1,4}:){7}))([0-9A-Fa-f]{1,4})$"
}
]
},
"Port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
}
},
"required": [
"Port",
"IPAddress"
]
},
"Pool": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"IPAddress": {
"type": "string"
},
"Port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
}
},
"required": [
"IPAddress",
"Port"
]
}
]
},
"Profile": {
"type": "string"
},
"Snatpool": {
"type": "array",
"items": [
{
"oneOf": [
{
"type": "string",
"pattern": "^(?:(?:\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(?:\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])$"
},
{
"type": "string",
"pattern": "^((([0-9A-Fa-f]{1,4}:){1,6}:)|(([0-9A-Fa-f]{1,4}:){7}))([0-9A-Fa-f]{1,4})$"
}
]
}
]
}
},
"required": [
"Destination",
"Profile",
"Pool"
],
"title": "VirtualServer",
"description": "Virtual Server"
}
-> uri = "{0}/{1}/<anonymous_{2}>".format(nm, prop, i)
(Pdb) list
666 propdata,
667 typ.__doc__)
668 elif 'items' in detail:
669 typs = []
670 for i, elem in enumerate(detail['items']):
671 -> uri = "{0}/{1}/<anonymous_{2}>".format(nm, prop, i)
672 typ = self.construct(uri, detail['items'])
673 typs.append(typ)
674
675 props[prop] = make_property(prop,
676 {'type': 'tuple',
(Pdb) n
-> /lib64/python2.7/site-packages/python_jsonschema_objects/classbuilder.py(672)_build_object()
-> typ = self.construct(uri, detail['items'])
(Pdb) p detail['items']
[{u'oneOf': [{u'pattern': u'^(?:(?:\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(?:\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])$', u'type': u'string'}, {u'pattern': u'^((([0-9A-Fa-f]{1,4}:){1,6}:)|(([0-9A-Fa-f]{1,4}:){7}))([0-9A-Fa-f]{1,4})$', u'type': u'string'}]}]
(Pdb) c
DEBUG:python_jsonschema_objects.classbuilder:Constructing virtualserver/Snatpool/<anonymous_0>
Traceback (most recent call last):
File "./test_load.py", line 9, in <module>
vs = builder.build_classes()
File "/lib64/python2.7/site-packages/python_jsonschema_objects/__init__.py", line 115, in build_classes
builder.construct(nm, self.schema,**kw)
File "/lib64/python2.7/site-packages/python_jsonschema_objects/classbuilder.py", line 395, in construct
ret = self._construct(uri, *args, **kw)
File ".local/lib64/python2.7/site-packages/python_jsonschema_objects/classbuilder.py", line 504, in _construct
parent,**kw)
File "/lib64/python2.7/site-packages/python_jsonschema_objects/classbuilder.py", line 672, in _build_object
typ = self.construct(uri, detail['items'])
File "/lib64/python2.7/site-packages/python_jsonschema_objects/classbuilder.py", line 395, in construct
ret = self._construct(uri, *args, **kw)
File "/lib64/python2.7/site-packages/python_jsonschema_objects/classbuilder.py", line 476, in _construct
elif clsdata.get('type') == 'array' and 'items' in clsdata:
AttributeError: 'list' object has no attribute 'get'
For the following test schema, I'm running into a issues with builder not converting the list: