- Add Python 3.12 and 3.13 to CI
- Can now be imported on Python 3.13
- Performance improvements based on Hypothesis 6.93.0
- Hypothesis >= 6.89.0 made some internal changes which broke our
from_grammar()
. This patch restores compatibility, and requires the new Hypothesis.
- Even more efficient generation of Python identifiers, using Hypothesis 6.84.1
- Dropped support for Python 3.7, which is end-of-life and not supported by Hypothesis
- Actually package up the renamed grammar file this time.
- Correct the minimum required version of LibCST
- Use
importlib.resources
to load the Python grammar (zip-safe)
- Use the
lark
package on PyPI, for Lark version 1.0+ (requires recent Hypothesis) - Use updated Python grammar for
from_grammar()
, thanks to Lark updates - Drop support for Python 3.6, add 3.10 and 3.11 to CI
- More efficient generation of Python identifiers
- Workaround for CPython parser bug in 3.9.8 (#16)
Yes, yet another one - still, that's why
hypothesmith
exists...
- Fixed rare internal error when
from_node()
generated misplacedexcept:
clauses
- Now compatible with Hypothesis 5.46 and later
- Increased diversity of examples generated by
from_node()
- Adds a workaround for BPO-42218
- Bumped Hypothesis requirement to version 5.41 or later (better internal error messages)
- Added
MANIFEST.in
so the sdist includes license, tests, etc.
- Improved error messages from internal compiler errors again (BPO-42218 will be fixed in Python 3.9.1)
- Bumped Hypothesis requirement to version 5.39 or later
- Emit additional debug info when Python fails to compile a string
- Improve handling of identifiers
- Fix internal error in
from_grammar("single_input")
- Update to latest versions of LibCST and Hypothesis, for Python 3.9 support
- Emit more debug info to diagnose a
compile()
issue in CPython nightly
- Emit some debug info to help diagnose a possible upstream bug in CPython nightly
- Added
auto_target=True
argument to thefrom_node()
strategy. - Improved
from_node()
generation of comments and trailing whitespace.
- Added a
from_node()
strategy which usesLibCST
to generate source code. This is a proof-of-concept rather than a robust tool, but IMO it's a pretty cool concept.
- The
from_grammar()
strategy now takes anauto_target=True
argument, to drive generated examples towards (relatively) larger and more complex programs.
- support for non-ASCII identifiers
- Updated project metadata and started testing on Python 3.8
- Depends on more recent Hypothesis version, with upstreamed grammar generation.
- Improved filtering rejects fewer valid examples, finding another bug in Black.
Checks validity at statement level, which makes filtering much more efficient. Improved testing, input validation, and code comments.
Improved filtering and fixing of source code generated from the grammar.
This version found a novel bug: "pass #\\r#\\n"
is accepted by the
built-in compile()
and exec()
functions, but not by black
or lib2to3
.
Initial release. This is a minimal proof of concept, generating from the
grammar and rejecting it if we get errors from black
or tokenize
.
Cool, but while promising not very useful at this stage.