Skip to content

After updating to 4.18.1 earlier code fails with jsonschema.exceptions._RefResolutionError: 'bytes' object has no attribute 'timeout' #1124

@Alexander-Serov

Description

@Alexander-Serov

Here is the traceback. I believe something has changed in the fresh release 4.18.1 from today because our CI pipeline stopped working, the code has not be changed.

I cannot provide the minimal working example since jsonschema is not our direct dependency but is rather used by Great Expectations. Still, the traceback clearly suggest there is a difference in how jsonschema is implemented.

We downgraded back to 4.17.* and it fixes the problem.

Traceback (most recent call last):
  File "/builds/repo/venv/lib/python3.8/site-packages/jsonschema/validators.py", line 1087, in resolve_from_url
    document = self.store[url]
  File "/builds/repo/venv/lib/python3.8/site-packages/jsonschema/_utils.py", line 20, in __getitem__
    return self.store[self.normalize(uri)]
KeyError: b''
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/builds/repo/venv/lib/python3.8/site-packages/jsonschema/validators.py", line 1090, in resolve_from_url
    document = self.resolve_remote(url)
  File "/builds/repo/venv/lib/python3.8/site-packages/jsonschema/validators.py", line 1194, in resolve_remote
    with urlopen(uri) as url:
  File "/var/lang/lib/python3.8/urllib/request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "/var/lang/lib/python3.8/urllib/request.py", line 515, in open
    req.timeout = timeout
AttributeError: 'bytes' object has no attribute 'timeout'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/builds/repo/repo/expectations.py", line 8, in <module>
    from great_expectations.checkpoint import SimpleCheckpoint
  File "/builds/repo/venv/lib/python3.8/site-packages/great_expectations/__init__.py", line 6, in <module>
    from great_expectations.data_context.migrator.cloud_migrator import CloudMigrator
  File "/builds/repo/venv/lib/python3.8/site-packages/great_expectations/data_context/__init__.py", line 1, in <module>
    from great_expectations.data_context.data_context import (
  File "/builds/repo/venv/lib/python3.8/site-packages/great_expectations/data_context/data_context/__init__.py", line 1, in <module>
    from great_expectations.data_context.data_context.abstract_data_context import (
  File "/builds/repo/venv/lib/python3.8/site-packages/great_expectations/data_context/data_context/abstract_data_context.py", line 119, in <module>
    from great_expectations.rule_based_profiler.data_assistant.data_assistant_dispatcher import (
  File "/builds/repo/venv/lib/python3.8/site-packages/great_expectations/rule_based_profiler/data_assistant/__init__.py", line 1, in <module>
    from .data_assistant import DataAssistant
  File "/builds/repo/venv/lib/python3.8/site-packages/great_expectations/rule_based_profiler/data_assistant/data_assistant.py", line 22, in <module>
    from great_expectations.rule_based_profiler.data_assistant_result import (
  File "/builds/repo/venv/lib/python3.8/site-packages/great_expectations/rule_based_profiler/data_assistant_result/__init__.py", line 1, in <module>
    from .data_assistant_result import DataAssistantResult
  File "/builds/repo/venv/lib/python3.8/site-packages/great_expectations/rule_based_profiler/data_assistant_result/data_assistant_result.py", line 48, in <module>
    from great_expectations.rule_based_profiler.altair import AltairDataTypes, AltairThemes
  File "/builds/repo/venv/lib/python3.8/site-packages/great_expectations/rule_based_profiler/altair/__init__.py", line 1, in <module>
    from .encodings import AltairDataTypes
  File "/builds/repo/venv/lib/python3.8/site-packages/great_expectations/rule_based_profiler/altair/encodings.py", line 6, in <module>
    class AltairDataTypes(Enum):
  File "/builds/repo/venv/lib/python3.8/site-packages/great_expectations/rule_based_profiler/altair/encodings.py", line 8, in AltairDataTypes
    QUANTITATIVE = alt.StandardType("quantitative")
  File "/builds/repo/venv/lib/python3.8/site-packages/altair/vegalite/v4/schema/core.py", line 15771, in __init__
    super(StandardType, self).__init__(*args)
  File "/builds/repo/venv/lib/python3.8/site-packages/altair/utils/schemapi.py", line 177, in __init__
    self.to_dict(validate=True)
  File "/builds/repo/venv/lib/python3.8/site-packages/altair/utils/schemapi.py", line 338, in to_dict
    self.validate(result)
  File "/builds/repo/venv/lib/python3.8/site-packages/altair/utils/schemapi.py", line 443, in validate
    return jsonschema.validate(
  File "/builds/repo/venv/lib/python3.8/site-packages/jsonschema/validators.py", line 1295, in validate
    error = exceptions.best_match(validator.iter_errors(instance))
  File "/builds/repo/venv/lib/python3.8/site-packages/jsonschema/exceptions.py", line 441, in best_match
    best = next(errors, None)
  File "/builds/repo/venv/lib/python3.8/site-packages/jsonschema/validators.py", line 359, in iter_errors
    for error in errors:
  File "/builds/repo/venv/lib/python3.8/site-packages/jsonschema/_validators.py", line 284, in ref
    yield from validator._validate_reference(ref=ref, instance=instance)
  File "/builds/repo/venv/lib/python3.8/site-packages/jsonschema/validators.py", line 452, in _validate_reference
    scope, resolved = resolve(ref)
  File "/builds/repo/venv/lib/python3.8/site-packages/jsonschema/validators.py", line 1076, in resolve
    return url, self._remote_cache(url)
  File "/builds/repo/venv/lib/python3.8/site-packages/jsonschema/validators.py", line 1092, in resolve_from_url
    raise exceptions._RefResolutionError(exc)
jsonschema.exceptions._RefResolutionError: 'bytes' object has no attribute 'timeout'

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugSomething doesn't work the way it should.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions