Skip to content

ValueError: Can't resolve type from:(number, int32) #127

@Kyria

Description

@Kyria
>>> from pyswagger import App
>>> app = App.create('https://esi.tech.ccp.is/latest/swagger.json?datasource=tranquility')
>>> app.op['get_markets_region_id_orders']( region_id=1002, type_id=34, order_type='all')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/Kyria/dev/LazyBlacksmith/env/local/lib/python2.7/site-packages/pyswagger/spec/v2_0/objects.py", line 283, in __call__
    _convert_parameter(final(p))
  File "/home/Kyria/dev/LazyBlacksmith/env/local/lib/python2.7/site-packages/pyswagger/spec/v2_0/objects.py", line 264, in _convert_parameter
    c = p._prim_(v, self._prim_factory, ctx=dict(read=False))
  File "/home/Kyria/dev/LazyBlacksmith/env/local/lib/python2.7/site-packages/pyswagger/spec/v2_0/objects.py", line 184, in _prim_
    return prim_factory.produce(self.schema, v, ctx) if i == 'body' else prim_factory.produce(self, v, ctx)
  File "/home/Kyria/dev/LazyBlacksmith/env/local/lib/python2.7/site-packages/pyswagger/primitives/__init__.py", line 178, in produce
    raise ValueError('Can\'t resolve type from:(' + str(obj.type) + ', ' + str(obj.format) + ')')
ValueError: Can't resolve type from:(number, int32)

>>> app.op['get_markets_structures_structure_id'](structure_id=12345)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/Kyria/dev/LazyBlacksmith/env/local/lib/python2.7/site-packages/pyswagger/spec/v2_0/objects.py", line 283, in __call__
    _convert_parameter(final(p))
  File "/home/Kyria/dev/LazyBlacksmith/env/local/lib/python2.7/site-packages/pyswagger/spec/v2_0/objects.py", line 264, in _convert_parameter
    c = p._prim_(v, self._prim_factory, ctx=dict(read=False))
  File "/home/Kyria/dev/LazyBlacksmith/env/local/lib/python2.7/site-packages/pyswagger/spec/v2_0/objects.py", line 184, in _prim_
    return prim_factory.produce(self.schema, v, ctx) if i == 'body' else prim_factory.produce(self, v, ctx)
  File "/home/Kyria/dev/LazyBlacksmith/env/local/lib/python2.7/site-packages/pyswagger/primitives/__init__.py", line 178, in produce
    raise ValueError('Can\'t resolve type from:(' + str(obj.type) + ', ' + str(obj.format) + ')')
ValueError: Can't resolve type from:(number, int32)

Link the the swagger.json used: https://esi.tech.ccp.is/latest/swagger.json?datasource=tranquility

It looks like every endpoints that have this issue use a referenced parameters which is a "number" / "int32" format.

    "page": {
      "default": 1,
      "description": "Which page of results to return",
      "format": "int32",
      "in": "query",
      "name": "page",
      "type": "number"
    },

If I understand correctly types defined in the JSON-Schema Draft 4. Models, used by swagger,

   integer  A JSON number without a fraction or exponent part.
   number  Any JSON number.  Number includes integer.

number also contains integer by definition, so integer/int32 should work (which is not the case currently).
(also swagger validator do not report any issues with number/int32 and number/int64. )

Can you correct this ?

Thanks in advance !

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions