Skip to content

[BUG] Support time string format #101

@MattiaPeiretti

Description

@MattiaPeiretti

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Parse an open api spect that has a time object

Expected behavior
It works

System details (please complete the following information):
Alpine

Additional context

Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[common.py](http://common.py/)", line 22, in cast_value
return type_cast_func(value) \
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/[enum.py](http://enum.py/)", line 751, in __call__
return cls.__new__(cls, value)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/[enum.py](http://enum.py/)", line 1170, in __new__
raise ve_exc
ValueError: 'time' is not a valid StringFormat

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/app/[main.py](http://main.py/)", line 333, in <module>
app()
File "/usr/local/lib/python3.12/site-packages/typer/[main.py](http://main.py/)", line 340, in __call__
raise e
File "/usr/local/lib/python3.12/site-packages/typer/[main.py](http://main.py/)", line 323, in __call__
return get_command(self)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/click/[core.py](http://core.py/)", line 1161, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/typer/[core.py](http://core.py/)", line 680, in main
return _main(
^^^^^^
File "/usr/local/lib/python3.12/site-packages/typer/[core.py](http://core.py/)", line 198, in _main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/click/[core.py](http://core.py/)", line 1443, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/click/[core.py](http://core.py/)", line 788, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/typer/[main.py](http://main.py/)", line 698, in wrapper
return callback(**use_params)
^^^^^^^^^^^^^^^^^^^^^^
File "/app/[main.py](http://main.py/)", line 138, in main
spec = parse(spec_string=location)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/[parser.py](http://parser.py/)", line 132, in parse
return parser.load_specification(specification)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/[parser.py](http://parser.py/)", line 66, in load_specification
attrs = extract_typed_props(data, attrs_map)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[common.py](http://common.py/)", line 29, in extract_typed_props
attr_name: cast_value(attr_[info.name](http://info.name/), data[attr_[info.name](http://info.name/)], attr_info.cast)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[common.py](http://common.py/)", line 22, in cast_value
return type_cast_func(value) \
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[path.py](http://path.py/)", line 22, in build_list
self._build_path(url, path)
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[path.py](http://path.py/)", line 40, in _build_path
self.operation_[builder.build](http://builder.build/)(method, data[method.value])
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[operation.py](http://operation.py/)", line 44, in build
attrs = extract_typed_props(data, attrs_map)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[common.py](http://common.py/)", line 29, in extract_typed_props
attr_name: cast_value(attr_[info.name](http://info.name/), data[attr_[info.name](http://info.name/)], attr_info.cast)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[common.py](http://common.py/)", line 22, in cast_value
return type_cast_func(value) \
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[operation.py](http://operation.py/)", line 56, in _get_response_list
self.response_[builder.build](http://builder.build/)(http_code, response)
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[response.py](http://response.py/)", line 28, in build
attrs = extract_typed_props(data, attrs_map)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[common.py](http://common.py/)", line 29, in extract_typed_props
attr_name: cast_value(attr_[info.name](http://info.name/), data[attr_[info.name](http://info.name/)], attr_info.cast)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[common.py](http://common.py/)", line 22, in cast_value
return type_cast_func(value) \
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[content.py](http://content.py/)", line 24, in build_list
self._create_content(content_type, content_value.get('schema', {}),
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[content.py](http://content.py/)", line 36, in _create_content
schema=self.schema_factory.create(schema),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[schema.py](http://schema.py/)", line 144, in create
return builder_func(data)
^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[schema.py](http://schema.py/)", line 214, in _object
return Object(**extract_attrs(data, attrs_map))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[schema.py](http://schema.py/)", line 66, in extract_attrs
attrs.update(extract_typed_props(data, attrs_map))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[common.py](http://common.py/)", line 29, in extract_typed_props
attr_name: cast_value(attr_[info.name](http://info.name/), data[attr_[info.name](http://info.name/)], attr_info.cast)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[common.py](http://common.py/)", line 22, in cast_value
return type_cast_func(value) \
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[schema.py](http://schema.py/)", line 203, in build_properties
Property(name, self.create(schema))
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[schema.py](http://schema.py/)", line 144, in create
return builder_func(data)
^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[schema.py](http://schema.py/)", line 214, in _object
return Object(**extract_attrs(data, attrs_map))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[schema.py](http://schema.py/)", line 66, in extract_attrs
attrs.update(extract_typed_props(data, attrs_map))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[common.py](http://common.py/)", line 29, in extract_typed_props
attr_name: cast_value(attr_[info.name](http://info.name/), data[attr_[info.name](http://info.name/)], attr_info.cast)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[common.py](http://common.py/)", line 22, in cast_value
return type_cast_func(value) \
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[schema.py](http://schema.py/)", line 203, in build_properties
Property(name, self.create(schema))
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[schema.py](http://schema.py/)", line 144, in create
return builder_func(data)
^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[schema.py](http://schema.py/)", line 247, in _any_of
return AnyOf(**extract_attrs(data, attrs_map))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[schema.py](http://schema.py/)", line 66, in extract_attrs
attrs.update(extract_typed_props(data, attrs_map))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[common.py](http://common.py/)", line 29, in extract_typed_props
attr_name: cast_value(attr_[info.name](http://info.name/), data[attr_[info.name](http://info.name/)], attr_info.cast)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[common.py](http://common.py/)", line 22, in cast_value
return type_cast_func(value) \
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[schema.py](http://schema.py/)", line 240, in create_inner_schemas
return [self.create(x) for x in schemas]
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[schema.py](http://schema.py/)", line 144, in create
return builder_func(data)
^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[schema.py](http://schema.py/)", line 184, in _string
return String(**extract_attrs(data, attrs_map))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[schema.py](http://schema.py/)", line 66, in extract_attrs
attrs.update(extract_typed_props(data, attrs_map))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[common.py](http://common.py/)", line 29, in extract_typed_props
attr_name: cast_value(attr_[info.name](http://info.name/), data[attr_[info.name](http://info.name/)], attr_info.cast)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openapi_parser/builders/[common.py](http://common.py/)", line 26, in cast_value
raise ParserError(f"Invalid value for '{name}' property, got '{value}'")
openapi_parser.errors.ParserError: Invalid value for 'format' property, got 'time'

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions