Skip to content

unable to parse lottie schema #281

@andrew-ld

Description

@andrew-ld

python version: 3.11.7
python-jsonschema-objects version: fd28c9c (installed from git)

Describe the bug

/home/andrew/PyCharmProjects/json2protobuf/.venv/lib/python3.11/site-packages/python_jsonschema_objects/__init__.py:60: UserWarning: Schema version https://json-schema.org/draft/2020-12/schema not recognized. Some keywords and features may not be supported.
  warnings.warn(
Traceback (most recent call last):
  File "/home/andrew/PyCharmProjects/json2protobuf/main.py", line 13, in <module>
    main(sys.argv[-1])
  File "/home/andrew/PyCharmProjects/json2protobuf/main.py", line 8, in main
    ns = builder.build_classes()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/andrew/PyCharmProjects/json2protobuf/.venv/lib/python3.11/site-packages/python_jsonschema_objects/__init__.py", line 240, in build_classes
    builder.construct(nm, self.schema, **kw)
  File "/home/andrew/PyCharmProjects/json2protobuf/.venv/lib/python3.11/site-packages/python_jsonschema_objects/classbuilder.py", line 497, in construct
    ret = self._construct(uri, *args, **kw)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/andrew/PyCharmProjects/json2protobuf/.venv/lib/python3.11/site-packages/python_jsonschema_objects/classbuilder.py", line 532, in _construct
    potential_parents = self.expand_references(uri, clsdata["allOf"])
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/andrew/PyCharmProjects/json2protobuf/.venv/lib/python3.11/site-packages/python_jsonschema_objects/classbuilder.py", line 458, in expand_references
    pp.append(self.resolve_type(elem["$ref"], source_uri))
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/andrew/PyCharmProjects/json2protobuf/.venv/lib/python3.11/site-packages/python_jsonschema_objects/classbuilder.py", line 486, in resolve_type
    self.resolved[uri] = self.construct(uri, resolved.contents, (ProtocolBase,))
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/andrew/PyCharmProjects/json2protobuf/.venv/lib/python3.11/site-packages/python_jsonschema_objects/classbuilder.py", line 497, in construct
    ret = self._construct(uri, *args, **kw)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/andrew/PyCharmProjects/json2protobuf/.venv/lib/python3.11/site-packages/python_jsonschema_objects/classbuilder.py", line 532, in _construct
    potential_parents = self.expand_references(uri, clsdata["allOf"])
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/andrew/PyCharmProjects/json2protobuf/.venv/lib/python3.11/site-packages/python_jsonschema_objects/classbuilder.py", line 458, in expand_references
    pp.append(self.resolve_type(elem["$ref"], source_uri))
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/andrew/PyCharmProjects/json2protobuf/.venv/lib/python3.11/site-packages/python_jsonschema_objects/classbuilder.py", line 486, in resolve_type
    self.resolved[uri] = self.construct(uri, resolved.contents, (ProtocolBase,))
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/andrew/PyCharmProjects/json2protobuf/.venv/lib/python3.11/site-packages/python_jsonschema_objects/classbuilder.py", line 497, in construct
    ret = self._construct(uri, *args, **kw)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/andrew/PyCharmProjects/json2protobuf/.venv/lib/python3.11/site-packages/python_jsonschema_objects/classbuilder.py", line 541, in _construct
    self.resolved[uri] = self._build_object(uri, clsdata, parents, **kw)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/andrew/PyCharmProjects/json2protobuf/.venv/lib/python3.11/site-packages/python_jsonschema_objects/classbuilder.py", line 768, in _build_object
    required = set.union(*[p.__required__ for p in parents])
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: unbound method set.union() needs an argument

Example Schema and code
lottie.schema.json

import sys

import python_jsonschema_objects


def main(schema_path: str):
    builder = python_jsonschema_objects.ObjectBuilder(schema_path)
    ns = builder.build_classes()
    print(ns.values())


if __name__ == "__main__":
    main(sys.argv[-1])

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions