Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python 3.9: Treat missing __args__ on generic types as None #2441

Merged
merged 6 commits into from May 21, 2020

Conversation

encukou
Copy link
Contributor

@encukou encukou commented May 20, 2020

In Python 3.9, the __args__ attribute is unset rather than set to None on types that aren't specialized.

See:

Closes #2444.

@Zac-HD Zac-HD added bug something is clearly wrong here interop how to play nicely with other packages labels May 21, 2020
@Zac-HD
Copy link
Member

Zac-HD commented May 21, 2020

Thanks for the patch @encukou!

I'm definitely planning to merge this, but will leave it open for now as a reminder that we need to set up a CI build for 3.9 - we have a lot of interaction with typing internals that need to be checked and I won't be confident everything is working without actually checking that in CI.

@michel-slm
Copy link
Contributor

going to see if this patch fixes things for our Fedora build (we're tracking Python 3.9 on a side branch), and if it works with Python 3.9b1 I'll see if I can do a PR adding the required CI config

@Zac-HD
Copy link
Member

Zac-HD commented May 21, 2020

Thanks @michel-slm - I'm mostly waiting for pyenv to have the 3.9 beta available, it's pretty easy after that.

@michel-slm
Copy link
Contributor

hypothesis 5.15.0 plus this PR still fails with:

=================================== FAILURES ===================================
______________________ test_resolve_typing_module[typ11] _______________________
[gw2] linux -- Python 3.9.0 /usr/bin/python3
Traceback (most recent call last):
  File "/builddir/build/BUILD/hypothesis-hypothesis-python-5.15.0/hypothesis-python/tests/cover/test_lookup.py", line 68, in test_resolve_typing_module
    inner()
  File "/builddir/build/BUILD/hypothesis-hypothesis-python-5.15.0/hypothesis-python/tests/cover/test_lookup.py", line 46, in inner
    suppress_health_check=[HealthCheck.too_slow, HealthCheck.filter_too_much],
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/core.py", line 1102, in wrapped_test
    raise the_error_hypothesis_found
  File "/builddir/build/BUILD/hypothesis-hypothesis-python-5.15.0/hypothesis-python/tests/cover/test_lookup.py", line 59, in inner
    assert isinstance(ex, typing.TypeVar)
AssertionError: assert False
 +  where False = isinstance(<class 'type'>, <class 'typing.TypeVar'>)
 +    where <class 'typing.TypeVar'> = typing.TypeVar
----------------------------- Captured stdout call -----------------------------
Falsifying example: inner(
    ex=type,
)
_______________________ test_resolves_weird_types[typ0] ________________________
[gw2] linux -- Python 3.9.0 /usr/bin/python3
Traceback (most recent call last):
  File "/builddir/build/BUILD/hypothesis-hypothesis-python-5.15.0/hypothesis-python/tests/cover/test_lookup.py", line 249, in test_resolves_weird_types
    from_type(typ).example()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/strategies.py", line 315, in example
    example_generating_inner_function()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/strategies.py", line 303, in example_generating_inner_function
    @settings(
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/core.py", line 1102, in wrapped_test
    raise the_error_hypothesis_found
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/core.py", line 1071, in wrapped_test
    state.run_engine()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/core.py", line 732, in run_engine
    runner.run()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/engine.py", line 458, in run
    self._run()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/engine.py", line 857, in _run
    self.generate_new_examples()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/engine.py", line 589, in generate_new_examples
    zero_data = self.cached_test_function(bytes(BUFFER_SIZE))
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/engine.py", line 1034, in cached_test_function
    self.test_function(data)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/engine.py", line 180, in test_function
    self.__stoppable_test_function(data)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/engine.py", line 162, in __stoppable_test_function
    self._test_function(data)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/core.py", line 685, in _execute_once_for_engine
    escalate_hypothesis_internal_error()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/core.py", line 656, in _execute_once_for_engine
    result = self.execute_once(data)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/core.py", line 611, in execute_once
    result = self.test_runner(data, run)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/executors.py", line 52, in default_new_style_executor
    return function(data)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/core.py", line 552, in run
    args, kwargs = data.draw(self.search_strategy)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/data.py", line 889, in draw
    return strategy.do_draw(self)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/collections.py", line 57, in do_draw
    return tuple(data.draw(e) for e in self.element_strategies)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/collections.py", line 57, in <genexpr>
    return tuple(data.draw(e) for e in self.element_strategies)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/data.py", line 884, in draw
    return strategy.do_draw(self)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/strategies.py", line 658, in do_draw
    result = self.pack(data.draw(self.mapped_strategy))
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/data.py", line 884, in draw
    return strategy.do_draw(self)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/lazy.py", line 150, in do_draw
    return data.draw(self.wrapped_strategy)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/data.py", line 884, in draw
    return strategy.do_draw(self)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/strategies.py", line 658, in do_draw
    result = self.pack(data.draw(self.mapped_strategy))
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/data.py", line 884, in draw
    return strategy.do_draw(self)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/collections.py", line 57, in do_draw
    return tuple(data.draw(e) for e in self.element_strategies)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/collections.py", line 57, in <genexpr>
    return tuple(data.draw(e) for e in self.element_strategies)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/data.py", line 884, in draw
    return strategy.do_draw(self)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/flatmapped.py", line 42, in do_draw
    return data.draw(expanded_source)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/data.py", line 871, in draw
    strategy.validate()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/strategies.py", line 378, in validate
    self.do_validate()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/lazy.py", line 118, in do_validate
    w.validate()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/strategies.py", line 379, in validate
    self.is_empty
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/strategies.py", line 126, in accept
    recur(self)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/strategies.py", line 122, in recur
    mapping[strat] = getattr(strat, calculation)(recur)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/deferred.py", line 80, in calc_is_empty
    return recur(self.wrapped_strategy)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/deferred.py", line 43, in wrapped_strategy
    result = self.__definition()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/core.py", line 1338, in <lambda>
    lambda thing: deferred(lambda: _from_type(thing)),
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/core.py", line 1461, in _from_type
    raise ResolutionFailed(
hypothesis.errors.ResolutionFailed: Could not resolve <class 'collections.abc.ByteString'> to a strategy, because it is an abstract type without any subclasses. Consider using register_type_strategy
_______________________ test_resolves_weird_types[typ2] ________________________
[gw2] linux -- Python 3.9.0 /usr/bin/python3
Traceback (most recent call last):
  File "/builddir/build/BUILD/hypothesis-hypothesis-python-5.15.0/hypothesis-python/tests/cover/test_lookup.py", line 249, in test_resolves_weird_types
    from_type(typ).example()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/strategies.py", line 315, in example
    example_generating_inner_function()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/strategies.py", line 303, in example_generating_inner_function
    @settings(
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/core.py", line 1102, in wrapped_test
    raise the_error_hypothesis_found
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/core.py", line 1071, in wrapped_test
    state.run_engine()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/core.py", line 732, in run_engine
    runner.run()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/engine.py", line 458, in run
    self._run()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/engine.py", line 857, in _run
    self.generate_new_examples()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/engine.py", line 589, in generate_new_examples
    zero_data = self.cached_test_function(bytes(BUFFER_SIZE))
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/engine.py", line 1034, in cached_test_function
    self.test_function(data)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/engine.py", line 180, in test_function
    self.__stoppable_test_function(data)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/engine.py", line 162, in __stoppable_test_function
    self._test_function(data)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/core.py", line 685, in _execute_once_for_engine
    escalate_hypothesis_internal_error()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/core.py", line 656, in _execute_once_for_engine
    result = self.execute_once(data)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/core.py", line 611, in execute_once
    result = self.test_runner(data, run)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/executors.py", line 52, in default_new_style_executor
    return function(data)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/core.py", line 552, in run
    args, kwargs = data.draw(self.search_strategy)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/data.py", line 889, in draw
    return strategy.do_draw(self)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/collections.py", line 57, in do_draw
    return tuple(data.draw(e) for e in self.element_strategies)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/collections.py", line 57, in <genexpr>
    return tuple(data.draw(e) for e in self.element_strategies)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/data.py", line 884, in draw
    return strategy.do_draw(self)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/strategies.py", line 658, in do_draw
    result = self.pack(data.draw(self.mapped_strategy))
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/data.py", line 884, in draw
    return strategy.do_draw(self)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/lazy.py", line 150, in do_draw
    return data.draw(self.wrapped_strategy)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/data.py", line 884, in draw
    return strategy.do_draw(self)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/strategies.py", line 658, in do_draw
    result = self.pack(data.draw(self.mapped_strategy))
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/data.py", line 884, in draw
    return strategy.do_draw(self)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/collections.py", line 57, in do_draw
    return tuple(data.draw(e) for e in self.element_strategies)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/collections.py", line 57, in <genexpr>
    return tuple(data.draw(e) for e in self.element_strategies)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/data.py", line 884, in draw
    return strategy.do_draw(self)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/flatmapped.py", line 42, in do_draw
    return data.draw(expanded_source)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/data.py", line 884, in draw
    return strategy.do_draw(self)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/flatmapped.py", line 42, in do_draw
    return data.draw(expanded_source)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/internal/conjecture/data.py", line 871, in draw
    strategy.validate()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/strategies.py", line 378, in validate
    self.do_validate()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/lazy.py", line 118, in do_validate
    w.validate()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/strategies.py", line 379, in validate
    self.is_empty
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/strategies.py", line 126, in accept
    recur(self)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/strategies.py", line 122, in recur
    mapping[strat] = getattr(strat, calculation)(recur)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/deferred.py", line 80, in calc_is_empty
    return recur(self.wrapped_strategy)
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/deferred.py", line 43, in wrapped_strategy
    result = self.__definition()
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/core.py", line 1338, in <lambda>
    lambda thing: deferred(lambda: _from_type(thing)),
  File "/builddir/build/BUILDROOT/python-hypothesis-5.15.0-1.fc33.x86_64/usr/lib/python3.9/site-packages/hypothesis/strategies/_internal/core.py", line 1452, in _from_type
    raise ResolutionFailed(
hypothesis.errors.ResolutionFailed: Could not resolve <class 'os._Environ'> to a strategy; consider using register_type_strategy

@Zac-HD Zac-HD mentioned this pull request May 21, 2020
Every release brings fresh weirdness!
Copy link
Member

@Zac-HD Zac-HD left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now with Python 3.9 in CI 😁

@Zac-HD Zac-HD merged commit f909e3a into HypothesisWorks:master May 21, 2020
@Zac-HD
Copy link
Member

Zac-HD commented May 21, 2020

🎉

Thanks everyone - I can't wait for 3.9.0!

@encukou encukou deleted the types__attr__ branch May 21, 2020 16:11
@encukou
Copy link
Contributor Author

encukou commented May 21, 2020

Wow! Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug something is clearly wrong here interop how to play nicely with other packages
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Python 3.9: get_type cannot resolve some typing types to a strategy
3 participants