pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/devel/py-hypothesis py-hypothesis: updated to 4.4.3

branches:  trunk
changeset: 318910:873e6b8c7aea
user:      adam <>
date:      Fri Feb 01 11:50:30 2019 +0000

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 results.

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 strategies.
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 :obj:~hypothesis.settings.suppress_health_check.
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 :func:~hypothesis.strategies.characters.
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 
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 HypothesisWarning.
Unused exception types have been removed from hypothesis.errors; namely AbnormalExit, BadData, BadTemplateDraw, DefinitelyNoSuchExample, Timeout, and WrongFormat.


 devel/py-hypothesis/Makefile |   6 ++----
 devel/py-hypothesis/PLIST    |  29 ++++++++++++++++-------------
 devel/py-hypothesis/distinfo |  10 +++++-----
 3 files changed, 23 insertions(+), 22 deletions(-)

diffs (118 lines):

diff -r 3cde91459a4f -r 873e6b8c7aea devel/py-hypothesis/Makefile
--- a/devel/py-hypothesis/Makefile      Fri Feb 01 11:24:10 2019 +0000
+++ b/devel/py-hypothesis/Makefile      Fri Feb 01 11:50:30 2019 +0000
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.69 2019/01/07 08:31:28 adam Exp $
+# $NetBSD: Makefile,v 1.70 2019/02/01 11:50:30 adam Exp $
-DISTNAME=      hypothesis-3.86.5
+DISTNAME=      hypothesis-4.4.3
 CATEGORIES=    devel python
 MASTER_SITES=  ${MASTER_SITE_PYPI:=h/hypothesis/}
@@ -11,8 +11,6 @@
 LICENSE=       mpl-2.0
 DEPENDS+=      ${PYPKGPREFIX}-attrs>=16.0.0:../../devel/py-attrs
-DEPENDS+=      ${PYPKGPREFIX}-coverage>=4.0:../../devel/py-coverage
-DEPENDS+=      ${PYPKGPREFIX}-sqlite3-[0-9]*:../../databases/py-sqlite3
 .include "../../lang/python/"
 .if ${_PYTHON_VERSION} == 27
diff -r 3cde91459a4f -r 873e6b8c7aea devel/py-hypothesis/PLIST
--- a/devel/py-hypothesis/PLIST Fri Feb 01 11:24:10 2019 +0000
+++ b/devel/py-hypothesis/PLIST Fri Feb 01 11:50:30 2019 +0000
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.22 2019/01/07 08:31:28 adam Exp $
+@comment $NetBSD: PLIST,v 1.23 2019/02/01 11:50:30 adam Exp $
@@ -36,24 +36,27 @@
@@ -90,12 +93,18 @@
@@ -147,9 +156,6 @@
@@ -199,9 +205,6 @@
diff -r 3cde91459a4f -r 873e6b8c7aea devel/py-hypothesis/distinfo
--- a/devel/py-hypothesis/distinfo      Fri Feb 01 11:24:10 2019 +0000
+++ b/devel/py-hypothesis/distinfo      Fri Feb 01 11:50:30 2019 +0000
@@ -1,6 +1,6 @@
-$NetBSD: distinfo,v 1.66 2019/01/07 08:31:28 adam Exp $
+$NetBSD: distinfo,v 1.67 2019/02/01 11:50:30 adam Exp $
-SHA1 (hypothesis-3.86.5.tar.gz) = 1fefde5cfb04e190dd13c2fff3c7a6f8702d7ef1
-RMD160 (hypothesis-3.86.5.tar.gz) = 55c71ef364065419de8339b695a22cc1600e6fdc
-SHA512 (hypothesis-3.86.5.tar.gz) = b22fb1da689bb23c74eb976dc51683676f01f40d9256559933a89b96c7584711faf68139cff1c5051960d16ec67ebdacb5c27e6a5bb836728c7d10a1929cc76a
-Size (hypothesis-3.86.5.tar.gz) = 186438 bytes
+SHA1 (hypothesis-4.4.3.tar.gz) = 238155df3aef71ee67afce1ef3f003bc2e186908
+RMD160 (hypothesis-4.4.3.tar.gz) = 8a3d01dddaaaae5efe4469a6018790e3942df782
+SHA512 (hypothesis-4.4.3.tar.gz) = 692c2674b63189a2aab0986bc420cabc89d0a57164749dafb9c13687284c04f1e0fc1ee2e45ab9bad6075e26a236b7ec7e30b7be28aee4815f06b888f9f1bcfc
+Size (hypothesis-4.4.3.tar.gz) = 186397 bytes

Home | Main Index | Thread Index | Old Index