Next | Query returned 78 messages, browsing 1 to 10 | Previous

History of commit frequency

CVS Commit History:

   2019-06-12 11:51:52 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-hypothesis: updated to 4.24.3

This patch improves the implementation of an internal wrapper on Python 3.8 \ 
beta1 (and will break on the alphas; but they're not meant to be stable). On \ 
other versions, there is no change at all.

Deprecation messages for functions in hypothesis.extra.django.models now \ 
explicitly name the deprecated function to make it easier to track down usages. \ 
Thanks to Kristian Glass for this contribution!

This patch fixes :issue:`1999`, a spurious bug raised when a \ 
:func:`@st.composite <hypothesis.strategies.composite>` function was \ 
passed a keyword-only argument.
   2019-06-02 10:30:19 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-hypothesis: updated to 4.24.0

This release deprecates GenericStateMachine, in favor of \ 
:class:~hypothesis.stateful.RuleBasedStateMachine. Rule-based stateful testing \ 
is significantly faster, especially during shrinking.

If your use-case truly does not fit rule-based stateful testing, we recommend \ 
writing a custom test function which drives your specific control-flow using \

This patch fixes a very rare example database issue with file permissions.

When running a test that uses both :func:@given <hypothesis.given> and \ 
pytest.mark.parametrize, using :pypi:pytest-xdist on Windows, with failing \ 
examples in the database, two attempts to read a file could overlap and we \ 
caught FileNotFound but not other OSErrors.

This patch has a minor cleanup of the internal engine. There is no user-visible \ 

This patch clarifies some error messages when the test function signature is \ 
incompatible with the arguments to :func:@given <hypothesis.given>, \ 
especially when the :obj:@settings() <hypothesis.settings> decorator is \ 
also used (:issue:1978).

This release adds the :pypi:pyupgrade fixer to our code style, for consistent \ 
use of dict and set literals and comprehensions.

This release slightly simplifies a small part of the core engine. There is no \ 
user-visible change.
   2019-05-09 13:53:58 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-hypothesis: updated to 4.23.4

Fixes a minor formatting issue the docstring of from_type()

Adds a recipe to the docstring of from_type() that describes a means for drawing \ 
values for “everything except” a specified type. This recipe is especially \ 
useful for writing tests that perform input-type validation.

This patch uses autoflake to remove some pointless pass statements, which \ 
improves our workflow but has no user-visible impact.

This patch fixes an OverflowError in from_type(xrange) on Python 2.

It turns out that not only do the start and stop values have to fit in a C long, \ 
but so does stop - start. We now handle this even on 32bit platforms, but remind \ 
users that Python2 will not be supported after 2019 without specific funding.

This release implements the slices() strategy, to generate slices of a \ 
length-size sequence.

This patch exposes DataObject, solely to support more precise type hints. \ 
Objects of this type are provided by data(), and can be used to draw examples \ 
from strategies intermixed with your test code.

This patch fixes the very rare issue 1798 in array_dtypes(), which caused an \ 
internal error in our tests.

This patch fixes a rare bug in from_type(range).

The unique_by argument to lists now accepts a tuple of callables such that every \ 
element of the generated list will be unique with respect to each callable in \ 
the tuple.

This patch cleans up the internals of one_of(). You may see a slight change to \ 
the distribution of examples from this strategy but there is no change to the \ 
public API.

The from_type() strategy now supports slice objects.

This release improves the array_shapes() strategy, to choose an appropriate \ 
default for max_side based on the min_side, and max_dims based on the min_dims. \ 
An explicit error is raised for dimensions greater than 32, which are not \ 
supported by Numpy, as for other invalid combinations of arguments.

The from_type() strategy now supports range objects (or xrange on Python 2).

This release fixes a very rare edge case in the test-case mutator, which could \ 
cause an internal error with certain unusual tests.

This patch makes Hypothesis compatible with the Python 3.8 alpha, which changed \ 
the representation of code objects to support positional-only arguments. Note \ 
however that Hypothesis does not (yet) support such functions as e.g. arguments \ 
to builds() or inputs to @given.

This patch improves the performance of unique collections such as sets() when \ 
the elements are drawn from a sampled_from() strategy.

This release adds the functions() strategy, which can be used to imitate your \ 
‘real’ function for callbacks.

This release refactors stateful rule selection to share the new machinery with \ 
sampled_from() instead of using the original independent implementation.

This patch allows Hypothesis to try a few more examples after finding the first \ 
bug, in hopes of reporting multiple distinct bugs. The heuristics described in \ 
issue 847 ensure that we avoid wasting time on fruitless searches, while still \ 
surfacing each bug as soon as possible.
   2019-04-16 09:14:00 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-hypothesis: updated to 4.17.0

This release adds the strategy \ 
:func:~hypothesis.extra.numpy.broadcastable_shapes, which generates array shapes \ 
that are broadcast-compatible with a provided shape.

This release allows :func:~hypothesis.strategies.register_type_strategy to be \ 
used with :obj:python:typing.NewType instances. This may be useful to e.g. \ 
provide only positive integers for :func:from_type(UserId) \ 
<hypothesis.strategies.from_type> with a UserId = NewType('UserId', int) \ 

This release supports passing a :class:~python:datetime.timedelta as the \ 
:obj:~hypothesis.settings.deadline setting, so you no longer have to remember \ 
that the number is in milliseconds (:issue:1900).

Thanks to Damon Francisco for this change!

This patch makes the type annotations on hypothesis.extra.dateutil compatible \ 
with :pypi:mypy 0.700.

This release fixes a bug introduced in :ref:Hypothesis 4.14.3 <v4.14.3> \ 
that would sometimes cause :func:sampled_from(...).filter(...) \ 
<hypothesis.strategies.sampled_from> to encounter an internal assertion \ 
failure when there are three or fewer elements, and every element is rejected by \ 
the filter.

This patch takes the previous efficiency improvements to \ 
:func:sampled_from(...).filter(...) <hypothesis.strategies.sampled_from> \ 
strategies that reject most elements, and generalises them to also apply to \ 
sampled_from(...).filter(...).filter(...) and longer chains of filters.

This release fixes a bug that prevented \ 
:func:~hypothesis.strategies.random_module from correctly restoring the previous \ 
state of the random module.

The random state was instead being restored to a temporary deterministic state, \ 
which accidentally caused subsequent tests to see the same random values across \ 
multiple test runs.

This patch adds an internal special case to make \ 
:func:sampled_from(...).filter(...) <hypothesis.strategies.sampled_from> \ 
much more efficient when the filter rejects most elements
   2019-04-02 11:40:30 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-hypothesis: updated to 4.14.2

This patch improves the error message if the function f in :ref:s.flatmap(f) \ 
<flatmap> does not return a strategy.

This release modifies how Hypothesis selects operations to run during shrinking, \ 
by causing it to deprioritise previously useless classes of shrink until others \ 
have reached a fixed point.

This avoids certain pathological cases where the shrinker gets very close to \ 
finishing and then takes a very long time to finish the last small changes \ 
because it tries many useless shrinks for each useful one towards the end. It \ 
also should cause a more modest improvement (probably no more than about 30%) in \ 
shrinking performance for most tests.

This release blocks installation of Hypothesis on Python 3.4, which :PEP:reached \ 
its end of life date on 2019-03-18 <429>.

This should not be of interest to anyone but downstream maintainers - if you are \ 
affected, migrate to a secure version of Python as soon as possible or at least \ 
seek commercial support.

This release makes it an explicit error to call :func:floats(min_value=inf, \ 
exclude_min=True) <hypothesis.strategies.floats> or \ 
:func:floats(max_value=-inf, exclude_max=True) \ 
<hypothesis.strategies.floats>, as there are no possible values that can \ 
be generated (:issue:1859).

:func:floats(min_value=0.0, max_value=-0.0) <hypothesis.strategies.floats> \ 
is now deprecated. While 0. == -0. and we could thus generate either if \ 
comparing by value, violating the sequence ordering of floats is a special case \ 
we don't want or need.

This release should significantly reduce the amount of memory that Hypothesis \ 
uses for representing large test cases, by storing information in a more compact \ 
representation and only unpacking it lazily when it is first needed.

This update adds the :obj:~hypothesis.settings.report_multiple_bugs setting, \ 
which you can use to disable multi-bug reporting and only raise whichever bug \ 
had the smallest minimal example. This is occasionally useful when using a \ 
debugger or tools that annotate tracebacks via introspection.

This change makes a tiny improvement to the core engine's bookkeeping. There is \ 
no user-visible change.

This release changes some of Hypothesis's internal shrinking behaviour in order \ 
to reduce memory usage and hopefully improve performance.

This release adds a micro-optimisation to how Hypothesis handles debug reporting \ 
internally. Hard to shrink test may see a slight performance improvement, but in \ 
most common scenarios it is unlikely to be noticeable.

This release removes some redundant code that was no longer needed but was still \ 
running a significant amount of computation and allocation on the hot path. This \ 
should result in a modest speed improvement for most tests, especially those \ 
with large test cases.

This release adds a micro-optimisation to how Hypothesis caches test cases. This \ 
will cause a small improvement in speed and memory usage for large test cases, \ 
but in most common scenarios it is unlikely to be noticeable.

This release removes some internal code that populates a field that is no longer \ 
used anywhere. This should result in some modest performance and speed \ 
improvements and no other user visible effects.
   2019-03-13 09:51:48 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-hypothesis: updated to 4.11.1

This is a formatting-only patch, enabled by a new version of :pypi:isort.

This release deprecates :func:~hypothesis.strategies.sampled_from with empty \ 
sequences. This returns :func:~hypothesis.strategies.nothing, which gives a \ 
clear error if used directly... but simply vanishes if combined with another \ 

Tests that silently generate less than expected are a serious problem for anyone \ 
relying on them to find bugs, and we think reliability more important than \ 
convenience in this case.

This release improves Hypothesis's to detect flaky tests, by noticing when the \ 
behaviour of the test changes between runs. In particular this will notice many \ 
new cases where data generation depends on external state (e.g. external sources \ 
of randomness) and flag those as flaky sooner and more reliably.

The basis of this feature is a considerable reengineering of how Hypothesis \ 
stores its history of test cases, so on top of this its memory usage should be \ 
considerably reduced.

This release adds the strategy :func:~hypothesis.extra.numpy.valid_tuple_axes, \ 
which generates tuples of axis-indices that can be passed to the axis argument \ 
in NumPy's sequential functions (e.g. :func:numpy:numpy.sum).

This release significantly tightens validation in :class:hypothesis.settings. \ 
:obj:~hypothesis.settings.max_examples, :obj:~hypothesis.settings.buffer_size, \ 
and :obj:~hypothesis.settings.stateful_step_count must be positive integers; \ 
:obj:~hypothesis.settings.deadline must be a positive number or None; and \ 
:obj:~hypothesis.settings.derandomize must be either True or False.

As usual, this replaces existing errors with a more helpful error and starts new \ 
validation checks as deprecation warnings.

This release makes some micro-optimisations to certain calculations performed in \ 
the shrinker. These should particularly speed up large test cases where the \ 
shrinker makes many small changes. It will also reduce the amount allocated, but \ 
most of this is garbage that would have been immediately thrown away, so you \ 
probably won't see much effect specifically from that.

This patch removes some overhead from :func:~hypothesis.extra.numpy.arrays with \ 
a constant shape and dtype. The resulting performance improvement is modest, but \ 
worthwile for small arrays.
   2019-03-02 15:22:10 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-hypothesis: updated to 4.7.17

This release makes some micro-optimisations within Hypothesis's internal \ 
representation of test cases. This should cause heavily nested test cases to \ 
allocate less during generation and shrinking, which should speed things up \ 

This changes the order in which Hypothesis runs certain operations during \ 
shrinking. This should significantly decrease memory usage and speed up \ 
shrinking of large examples.

This release allows Hypothesis to calculate a number of attributes of generated \ 
test cases lazily. This should significantly reduce memory usage and modestly \ 
improve performance, especially for large test cases.

This release reduces the number of operations the shrinker will try when \ 
reordering parts of a test case. This should in some circumstances significantly \ 
speed up shrinking. It may result in different final test cases, and if so \ 
usually slightly worse ones, but it should not generally have much impact on the \ 
end result as the operations removed were typically useless.

This release changes how Hypothesis reorders examples within a test case during \ 
shrinking. This should make shrinking considerably faster.

This release slightly improves the shrinker's ability to replace parts of a test \ 
case with their minimal version, by allowing it to do so in bulk rather than one \ 
at a time. Where this is effective, shrinker performance should be modestly \ 

This release makes some micro-optimisations to common operations performed \ 
during shrinking. Shrinking should now be slightly faster, especially for large \ 
examples with relatively fast test functions.

This release is a purely internal refactoring of Hypothesis's API for \ 
representing test cases. There should be no user visible effect.

This release changes certain shrink passes to make them more efficient when they \ 
aren't making progress.

This patch removes some unused code, which makes the internals a bit easier to \ 
understand. There is no user-visible impact.

This release reduces the number of operations the shrinker will try when \ 
reordering parts of a test case. This should in some circumstances significantly \ 
speed up shrinking. It may result in different final test cases, and if so \ 
usually slightly worse ones, but it should not generally have much impact on the \ 
end result as the operations removed were typically useless.

This patch removes some unused code from the shrinker. There is no user-visible \ 

This release changes certain shrink passes to make them adaptive - that is, in \ 
cases where they are successfully making progress they may now do so \ 
significantly faster.

This is a docs-only patch, noting that because the :pypi:lark-parser is under \ 
active development at version 0.x, hypothesis[lark] APIs may break in minor \ 
releases if necessary to keep up with the upstream package.

This changes Hypothesis to no longer import various test frameworks by default \ 
(if they are installed). which will speed up the initial import hypothesis call.

This release changes Hypothesis's internal representation of a test case to \ 
calculate some expensive structural information on demand rather than eagerly. \ 
This should reduce memory usage a fair bit, and may make generation somewhat \ 

This release refactors the internal representation of previously run test cases. \ 
The main thing you should see as a result is that Hypothesis becomes somewhat \ 
less memory hungry.

This patch allows :func:~hypothesis.extra.numpy.array_shapes to generate shapes \ 
with side-length or even dimension zero, though the minimum still defaults to \ 
one. These shapes are rare and have some odd behavior, but are particularly \ 
important to test for just that reason!

In a related bigfix, :func:~hypothesis.extra.numpy.arrays now supports \ 
generating zero-dimensional arrays with dtype=object and a strategy for iterable \ 
elements. Previously, the array element would incorrectly be set to the first \ 
item in the generated iterable.
   2019-02-17 00:36:02 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-hypothesis: updated to 4.5.11

This release fixes :issue:1813, a bug introduced in :ref:3.59.1 <v3.59.1>, \ 
which caused :py:meth:~hypothesis.strategies.random_module to no longer affect \ 
the body of the test: Although Hypothesis would claim to be seeding the random \ 
module in fact tests would always run with a seed of zero.

This patch fixes an off-by-one error in the maximum length of \ 
:func:~hypothesis.strategies.emails. Thanks to Krzysztof Jurewicz for \ 

This patch removes some unused code from the shrinker. There is no user-visible \ 

This release fixes an internal IndexError in Hypothesis that could sometimes be \ 
triggered during shrinking.

This release modifies the shrinker to interleave different types of reduction \ 
operations, e.g. switching between deleting data and lowering scalar values \ 
rather than trying entirely deletions then entirely lowering.

This may slow things down somewhat in the typical case, but has the major \ 
advantage that many previously difficult to shrink examples should become much \ 
faster, because the shrinker will no longer tend to stall when trying some \ 
ineffective changes to the shrink target but will instead interleave it with \ 
other more effective operations.

This release makes a number of internal changes to the implementation of \ 
:func:hypothesis.extra.lark.from_lark. These are primarily intended as a \ 
refactoring, but you may see some minor improvements to performance when \ 
generating large strings, and possibly to shrink quality.

This patch prints an explanatory note when :issue:1798 is triggered, because the \ 
error message from Numpy is too terse to locate the problem.

In Python 2, long integers are not allowed in the shape argument to \ 
:func:~hypothesis.extra.numpy.arrays. Thanks to Ryan Turner for fixing this.

This release makes a small internal refactoring to clarify how Hypothesis \ 
instructs tests to stop running when appropriate. There is no user-visible \ 

This release standardises all of the shrinker's internal operations on running \ 
in a random order.

The main effect you will see from this that it should now be much less common \ 
for the shrinker to stall for a long time before making further progress. In \ 
some cases this will correspond to shrinking more slowly, but on average it \ 
should result in faster shrinking.

This patch updates some docstrings, but has no runtime changes.

This release adds exclude_min and exclude_max arguments to \ 
:func:~hypothesis.strategies.floats, so that you can easily generate values from \ 
open or half-open intervals
   2019-02-01 12:50:30 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-hypothesis: updated to 4.4.3

This release fixes an open file leak that used to cause ResourceWarnings.

This release changes Hypothesis's internal approach to caching the results of \ 
executing test cases. The result should be that it is now significantly less \ 
memory hungry, especially when shrinking large test cases.

Some tests may get slower or faster depending on whether the new or old caching \ 
strategy was well suited to them, but any change in speed in either direction \ 
should be minor.

This patch tightens up some of our internal heuristics to deal with shrinking \ 
floating point numbers, which will now run in fewer circumstances.

You are fairly unlikely to see much difference from this, but if you do you are \ 
likely to see shrinking become slightly faster and/or producing slightly worse \ 

This release adds the :func:~hypothesis.extra.django.from_form function, which \ 
allows automatic testing against Django forms. (:issue:35)

This release deprecates HealthCheck.hung_test and disables the associated \ 
runtime check for tests that ran for more than five minutes. Such a check is \ 
redundant now that we enforce the deadline and max_examples setting, which can \ 
be adjusted independently.

This release adds a new module, hypothesis.extra.lark, which you can use to \ 
generate strings matching a context-free grammar.

In this initial version, only :pypi:lark-parser EBNF grammars are supported, by \ 
the new :func:hypothesis.extra.lark.from_lark function.

This patch fixes a very rare overflow bug (:issue:1748) which could raise an \ 
InvalidArgument error in :func:~hypothesis.strategies.complex_numbers even \ 
though the arguments were valid.

This release makes some improvements to internal code organisation and \ 
documentation and has no impact on behaviour.

This release adds :func:~hypothesis.register_random, which registers \ 
random.Random instances or compatible objects to be seeded and reset by \ 
Hypothesis to ensure that test cases are deterministic.

We still recommend explicitly passing a random.Random instance from \ 
:func:~hypothesis.strategies.randoms if possible, but registering a \ 
framework-global state for Hypothesis to manage is better than flaky tests!

This patch fixes :issue:1387, where bounded \ 
:func:~hypothesis.strategies.integers with a very large range would almost \ 
always generate very large numbers. Now, we usually use the same tuned \ 
distribution as unbounded :func:~hypothesis.strategies.integers.

This release randomizes the order in which the shrinker tries some of its \ 
initial normalization operations. You are unlikely to see much difference as a \ 
result unless your generated examples are very large. In this case you may see \ 
some performance improvements in shrinking.

Welcome to the next major version of Hypothesis!

There are no new features here, as we release those in minor versions. Instead, \ 
4.0 is a chance for us to remove deprecated features (many already converted \ 
into no-ops), and turn a variety of warnings into errors.

If you were running on the last version of Hypothesis 3.x without any Hypothesis \ 
deprecation warnings (or using private APIs), this will be a very boring \ 
upgrade. In fact, nothing will change for you at all. Per :ref:our deprecation \ 
policy <deprecation-policy>, warnings added in the last six months (after \ 
2018-07-05) have not been converted to errors.

hypothesis.extra.datetime has been removed, replaced by the core date and time \ 
hypothesis.extra.fakefactory has been removed, replaced by general expansion of \ 
Hypothesis' strategies and the third-party ecosystem.
The SQLite example database backend has been removed.

The :obj:~hypothesis.settings.deadline is now enforced by default, rather than \ 
just emitting a warning when the default (200 milliseconds per test case) \ 
deadline is exceeded.
The database_file setting has been removed; use :obj:~hypothesis.settings.database.
The perform_health_check setting has been removed; use \ 
The max_shrinks setting has been removed; use :obj:~hypothesis.settings.phases \ 
to disable shrinking.
The min_satisfying_examples, max_iterations, strict, timeout, and use_coverage \ 
settings have been removed without user-configurable replacements.

The elements argument is now required for collection strategies.
The average_size argument was a no-op and has been removed.
Date and time strategies now only accept min_value and max_value for bounds.
:func:~hypothesis.strategies.builds now requires that the thing to build is \ 
passed as the first positional argument.
Alphabet validation for :func:~hypothesis.strategies.text raises errors, not \ 
warnings, as does category validation for \ 
The choices() strategy has been removed. Instead, you can use \ with \ 
:func:~hypothesis.strategies.sampled_from, so choice(elements) becomes \ 
The streaming() strategy has been removed. Instead, you can use \ and replace iterating over the stream with \ 
data.draw() calls.
:func:~hypothesis.strategies.sampled_from and \ 
:func:~hypothesis.strategies.permutations raise errors instead of warnings if \ 
passed a collection that is not a sequence.

Applying :func:@given <hypothesis.given> to a test function multiple times \ 
was really inefficient, and now it's also an error.
Using the .example() method of a strategy (intended for interactive exploration) \ 
within another strategy or a test function always weakened data generation and \ 
broke shrinking, and now it's an error too.
The HYPOTHESIS_DATABASE_FILE environment variable is no longer supported, as the \ 
database_file setting has been removed.
The HYPOTHESIS_VERBOSITY_LEVEL environment variable is no longer supported. You \ 
can use the --hypothesis-verbosity pytest argument instead, or write your own \ 
setup code using the settings profile system to replace it.
Using :func:@seed <hypothesis.seed> or :obj:derandomize=True \ 
<hypothesis.settings.derandomize> now forces :obj:database=None \ 
<hypothesis.settings.database> to ensure results are in fact reproducible. \ 
If :obj:~hypothesis.settings.database is not None, doing so also emits a \ 
Unused exception types have been removed from hypothesis.errors; namely \ 
AbnormalExit, BadData, BadTemplateDraw, DefinitelyNoSuchExample, Timeout, and \ 
   2019-01-07 09:31:28 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-hypothesis: updated to 3.86.5

This is a docs-only patch, which fixes some typos and removes a few hyperlinks \ 
for deprecated features.

This release changes the order in which the shrinker tries to delete data. For \ 
large and slow tests this may significantly improve the performance of \ 

This release fixes a bug where certain places Hypothesis internal errors could \ 
be raised during shrinking when a user exception occurred that suppressed an \ 
exception Hypothesis uses internally in its generation.

The two known ways to trigger this problem were:

Errors raised in stateful tests’ teardown function.
Errors raised in finally blocks that wrapped a call to data.draw.
These cases will now be handled correctly.

This patch is a docs-only change to fix a broken hyperlink.

This patch fixes issue 1732, where integers() would always return long values on \ 
Python 2.

This release ensures that infinite numbers are never generated by floats() with \ 
allow_infinity=False, which could previously happen in some cases where one \ 
bound was also provided.

The trivially inconsistent min_value=inf, allow_infinity=False now raises an \ 
InvalidArgumentError, as does the inverse with max_value. You can still use \ 
just(inf) to generate inf without violating other constraints.

Next | Query returned 78 messages, browsing 1 to 10 | Previous