Skip to content

Failed on python 3.12 with AttributeError #4

@sh1nj1

Description

@sh1nj1

CI does not fail but my env fails even if I create new conda environment

======================================================================
ERROR: test_to_markdown (tests.test_generator.TestToMarkdown.test_to_markdown) (api_file='test-api2.yaml', expected_output_file='expected_test-api2.md')
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/project/vrerv/openapi-markdown/tests/test_generator.py", line 26, in test_to_markdown
    self._test_to_markdown(api_file, expected_output_file)
  File "/project/vrerv/openapi-markdown/tests/test_generator.py", line 30, in _test_to_markdown
    to_markdown(TESTDIR + api_file, TESTDIR + output_file, templates_dir='templates')
  File "/project/vrerv/openapi-markdown/src/openapi_markdown/generator.py", line 47, in to_markdown
    spec = Spec.from_dict(spec_data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/service/mini-conda/miniconda3/envs/openapi-markdown_py312_2/lib/python3.12/site-packages/openapi_core/spec/paths.py", line 56, in from_dict
    validator.validate(data, spec_url=spec_url)
  File "/service/mini-conda/miniconda3/envs/openapi-markdown_py312_2/lib/python3.12/site-packages/openapi_spec_validator/validation/proxies.py", line 27, in validate
    for err in validator.iter_errors(instance, spec_url=spec_url):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/service/mini-conda/miniconda3/envs/openapi-markdown_py312_2/lib/python3.12/site-packages/openapi_spec_validator/validation/decorators.py", line 22, in wrapper
    for err in errors:
               ^^^^^^
  File "/service/mini-conda/miniconda3/envs/openapi-markdown_py312_2/lib/python3.12/site-packages/openapi_spec_validator/validation/validators.py", line 89, in iter_errors
    yield from self.schema_validator.iter_errors(instance)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<attrs generated init jsonschema.validators.create.<locals>.Validator>", line 5, in __init__
    self.__attrs_post_init__()
  File "/service/mini-conda/miniconda3/envs/openapi-markdown_py312_2/lib/python3.12/site-packages/jsonschema/validators.py", line 216, in __attrs_post_init__
    self.resolver = RefResolver.from_schema(
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/service/mini-conda/miniconda3/envs/openapi-markdown_py312_2/lib/python3.12/site-packages/jsonschema/validators.py", line 772, in from_schema
    return cls(base_uri=id_of(schema), referrer=schema, *args, **kwargs)  # noqa: B026, E501
                        ^^^^^^^^^^^^^
  File "/service/mini-conda/miniconda3/envs/openapi-markdown_py312_2/lib/python3.12/site-packages/jsonschema/_legacy_validators.py", line 12, in id_of
    if schema is True or schema is False or "$ref" in schema:
                                            ^^^^^^^^^^^^^^^^
  File "/service/mini-conda/miniconda3/envs/openapi-markdown_py312_2/lib/python3.12/site-packages/openapi_spec_validator/schemas/utils.py", line 28, in get_schema_content
    content, _ = get_schema(version)
                 ^^^^^^^^^^^^^^^^^^^
  File "/service/mini-conda/miniconda3/envs/openapi-markdown_py312_2/lib/python3.12/site-packages/openapi_spec_validator/schemas/utils.py", line 24, in get_schema
    return FilePathReader(schema_path_full).read()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/service/mini-conda/miniconda3/envs/openapi-markdown_py312_2/lib/python3.12/site-packages/jsonschema_spec/readers.py", line 37, in read
    return all_urls_handler(uri), uri
           ^^^^^^^^^^^^^^^^^^^^^
  File "/service/mini-conda/miniconda3/envs/openapi-markdown_py312_2/lib/python3.12/site-packages/jsonschema_spec/handlers/file.py", line 45, in __call__
    return self._open(uri)
           ^^^^^^^^^^^^^^^
  File "/service/mini-conda/miniconda3/envs/openapi-markdown_py312_2/lib/python3.12/site-packages/jsonschema_spec/handlers/urllib.py", line 18, in _open
    return super().__call__(fh)
           ^^^^^^^^^^^^^^^^^^^^
  File "/service/mini-conda/miniconda3/envs/openapi-markdown_py312_2/lib/python3.12/site-packages/jsonschema_spec/handlers/file.py", line 41, in __call__
    parsed_url = urlparse(uri)
                 ^^^^^^^^^^^^^
  File "/service/mini-conda/miniconda3/envs/openapi-markdown_py312_2/lib/python3.12/urllib/parse.py", line 394, in urlparse
    url, scheme, _coerce_result = _coerce_args(url, scheme)
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/service/mini-conda/miniconda3/envs/openapi-markdown_py312_2/lib/python3.12/urllib/parse.py", line 133, in _coerce_args
    return _decode_args(args) + (_encode_result,)
           ^^^^^^^^^^^^^^^^^^
  File "/service/mini-conda/miniconda3/envs/openapi-markdown_py312_2/lib/python3.12/urllib/parse.py", line 117, in _decode_args
    return tuple(x.decode(encoding, errors) if x else '' for x in args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/service/mini-conda/miniconda3/envs/openapi-markdown_py312_2/lib/python3.12/urllib/parse.py", line 117, in <genexpr>
    return tuple(x.decode(encoding, errors) if x else '' for x in args)
                 ^^^^^^^^
  File "/service/mini-conda/miniconda3/envs/openapi-markdown_py312_2/lib/python3.12/tempfile.py", line 494, in __getattr__
    a = getattr(file, name)
        ^^^^^^^^^^^^^^^^^^^
AttributeError: '_io.BufferedReader' object has no attribute 'decode'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions