{"action":"created","issue":{"url":"https://api.github.com/repos/iodevs/pydecoder/issues/155","repository_url":"https://api.github.com/repos/iodevs/pydecoder","labels_url":"https://api.github.com/repos/iodevs/pydecoder/issues/155/labels{/name}","comments_url":"https://api.github.com/repos/iodevs/pydecoder/issues/155/comments","events_url":"https://api.github.com/repos/iodevs/pydecoder/issues/155/events","html_url":"https://github.com/iodevs/pydecoder/pull/155","id":306436515,"number":155,"title":"Update hypothesis to 3.50.0","user":{"login":"pyup-bot","id":16239342,"avatar_url":"https://avatars0.githubusercontent.com/u/16239342?v=4","gravatar_id":"","url":"https://api.github.com/users/pyup-bot","html_url":"https://github.com/pyup-bot","followers_url":"https://api.github.com/users/pyup-bot/followers","following_url":"https://api.github.com/users/pyup-bot/following{/other_user}","gists_url":"https://api.github.com/users/pyup-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/pyup-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pyup-bot/subscriptions","organizations_url":"https://api.github.com/users/pyup-bot/orgs","repos_url":"https://api.github.com/users/pyup-bot/repos","events_url":"https://api.github.com/users/pyup-bot/events{/privacy}","received_events_url":"https://api.github.com/users/pyup-bot/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-03-19T12:08:50Z","updated_at":"2018-03-19T12:11:06Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/iodevs/pydecoder/pulls/155","html_url":"https://github.com/iodevs/pydecoder/pull/155","diff_url":"https://github.com/iodevs/pydecoder/pull/155.diff","patch_url":"https://github.com/iodevs/pydecoder/pull/155.patch"},"body":"\nThis PR updates [hypothesis](https://pypi.python.org/pypi/hypothesis) from **3.32.0** to **3.50.0**.\n\n\n\n<details>\n  <summary>Changelog</summary>\n  \n  \n   ### 3.50.0\n   ```\n   -------------------\n\nThis release improves validation of numeric bounds for some strategies.\n\n- :func:`~hypothesis.strategies.integers` and :func:`~hypothesis.strategies.floats`\n  now raise ``InvalidArgument`` if passed a ``min_value`` or ``max_value``\n  which is not an instance of :class:`~python:numbers.Real`, instead of\n  various internal errors.\n- :func:`~hypothesis.strategies.floats` now converts its bounding values to\n  the nearest float above or below the min or max bound respectively, instead\n  of just casting to float.  The old behaviour was incorrect in that you could\n  generate ``float(min_value)``, even when this was less than ``min_value``\n  itself (possible with eg. fractions).\n- When both bounds are provided to :func:`~hypothesis.strategies.floats` but\n  there are no floats in the interval, such as ``[(2**54)+1 .. (2**55)-1]``,\n  InvalidArgument is raised.\n- :func:`~hypothesis.strategies.decimals` gives a more useful error message\n  if passed a string that cannot be converted to :class:`~python:decimal.Decimal`\n  in a context where this error is not trapped.\n\nCode that previously **seemed** to work may be explicitly broken if there\nwere no floats between ``min_value`` and ``max_value`` (only possible with\nnon-float bounds), or if a bound was not a :class:`~python:numbers.Real`\nnumber but still allowed in :obj:`python:math.isnan` (some custom classes\nwith a ``__float__`` method).\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.49.1\n   ```\n   -------------------\n\nThis patch fixes our tests for Numpy dtype strategies on big-endian platforms,\nwhere the strategy behaved correctly but the test assumed that the native byte\norder was little-endian.\n\nThere is no user impact unless you are running our test suite on big-endian\nplatforms.  Thanks to Graham Inggs for reporting :issue:`1164`.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.49.0\n   ```\n   -------------------\n\nThis release deprecates passing ``elements=None`` to collection strategies,\nsuch as :func:`~hypothesis.strategies.lists`.\n\nRequiring ``lists(nothing())`` or ``builds(list)`` instead of ``lists()``\nmeans slightly more typing, but also improves the consistency and\ndiscoverability of our API - as well as showing how to compose or\nconstruct strategies in ways that still work in more complex situations.\n\nPassing a nonzero max_size to a collection strategy where the elements\nstrategy contains no values is now deprecated, and will be an error in a\nfuture version.  The equivalent with ``elements=None`` is already an error.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.48.1\n   ```\n   -------------------\n\nThis patch will minimize examples that would come out non-minimal in previous versions. Thanks to Kyle Reeve for this patch.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.48.0\n   ```\n   -------------------\n\nThis release improves some &quot;unhappy paths&quot; when using Hypothesis\nwith the standard library :mod:`python:unittest` module:\n\n- Applying :func:`given &lt;hypothesis.given&gt;` to a non-test method which is\n  overridden from :class:`python:unittest.TestCase`, such as ``setUp``,\n  raises :attr:`a new health check &lt;hypothesis.settings.not_a_test_method&gt;`.\n  (:issue:`991`)\n- Using :meth:`~python:unittest.TestCase.subTest` within a test decorated\n  with :func:`given &lt;hypothesis.given&gt;` would leak intermediate results\n  when tests were run under the :mod:`python:unittest` test runner.\n  Individual reporting of failing subtests is now disabled during a test\n  using :func:`given &lt;hypothesis.given&gt;`.  (:issue:`1071`)\n- :func:`given &lt;hypothesis.given&gt;` is still not a class decorator, but the\n  error message if you try using it on a class has been improved.\n\nAs a related improvement, using :class:`django:django.test.TestCase` with\n:func:`given &lt;hypothesis.given&gt;` instead of\n:class:`hypothesis.extra.django.TestCase` raises an explicit error instead\nof running all examples in a single database transaction.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.47.0\n   ```\n   -------------------\n\n:obj:`~hypothesis.settings.register_profile` now accepts keyword arguments\nfor specific settings, and the parent settings object is now optional.\nUsing a ``name`` for a registered profile which is not a string was never\nsuggested, but it is now also deprecated and will eventually be an error.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.46.2\n   ```\n   -------------------\n\nThis release removes an unnecessary branch from the code, and has no user-visible impact.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.46.1\n   ```\n   -------------------\n\nThis changes only the formatting of our docstrings and should have no user-visible effects.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.46.0\n   ```\n   -------------------\n\n:func:`~hypothesis.strategies.characters` has improved docs about\nwhat arguments are valid, and additional validation logic to raise a\nclear error early (instead of e.g. silently ignoring a bad argument).\nCategories may be specified as the Unicode &#39;general category&#39;\n(eg ``u&#39;Nd&#39;``), or as the &#39;major category&#39; (eg ``[u&#39;N&#39;, u&#39;Lu&#39;]``\nis equivalent to ``[u&#39;Nd&#39;, u&#39;Nl&#39;, u&#39;No&#39;, u&#39;Lu&#39;]``).\n\nIn previous versions, general categories were supported and all other\ninput was silently ignored.  Now, major categories are supported in\naddition to general categories (which may change the behaviour of some\nexisting code), and all other input is deprecated.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.45.5\n   ```\n   -------------------\n\nThis patch improves strategy inference in :mod:`hypothesis.extra.django`\nto account for some validators in addition to field type - see\n:issue:`1116` for ongoing work in this space.\n\nSpecifically, if a :class:`~django:django.db.models.CharField` or\n:class:`~django:django.db.models.TextField` has an attached\n:class:`~django:django.core.validators.RegexValidator`, we now use\n:func:`~hypothesis.strategies.from_regex` instead of\n:func:`~hypothesis.strategies.text` as the underlying strategy.\nThis allows us to generate examples of the default\n:class:`~django:django.contrib.auth.models.User` model, closing :issue:`1112`.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.45.4\n   ```\n   -------------------\n\nThis patch improves some internal debugging information, fixes\na typo in a validation error message, and expands the documentation\nfor new contributors.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.45.3\n   ```\n   -------------------\n\nThis patch may improve example shrinking slightly for some strategies.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.45.2\n   ```\n   -------------------\n\nThis release makes our docstring style more consistent, thanks to\n:pypi:`flake8-docstrings`.  There are no user-visible changes.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.45.1\n   ```\n   -------------------\n\nThis fixes an indentation issue in docstrings for\n:func:`~hypothesis.strategies.datetimes`, :func:`~hypothesis.strategies.dates`,\n:func:`~hypothesis.strategies.times`, and\n:func:`~hypothesis.strategies.timedeltas`.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.45.0\n   ```\n   -------------------\n\nThis release fixes :func:`~hypothesis.strategies.builds` so that ``target``\ncan be used as a keyword argument for passing values to the target. The target\nitself can still be specified as a keyword argument, but that behavior is now\ndeprecated. The target should be provided as the first positional argument.\n\n--------------------\n   ```\n   \n  \n  \n   ### 3.44.26\n   ```\n   --------------------\n\nThis release fixes some formatting issues in the Hypothesis source code.\nIt should have no externally visible effects.\n\n--------------------\n   ```\n   \n  \n  \n   ### 3.44.25\n   ```\n   --------------------\n\nThis release changes the way in which Hypothesis tries to shrink the size of\nexamples. It probably won&#39;t have much impact, but might make shrinking faster\nin some cases. It is unlikely but not impossible that it will change the\nresulting examples.\n\n--------------------\n   ```\n   \n  \n  \n   ### 3.44.24\n   ```\n   --------------------\n\nThis release fixes dependency information when installing Hypothesis\nfrom a binary &quot;wheel&quot; distribution.\n\n- The ``install_requires`` for :pypi:`enum34` is resolved at install\n  time, rather than at build time (with potentially different results).\n- Django has fixed their ``python_requires`` for versions 2.0.0 onward,\n  simplifying Python2-compatible constraints for downstream projects.\n\n--------------------\n   ```\n   \n  \n  \n   ### 3.44.23\n   ```\n   --------------------\n\nThis release improves shrinking in a class of pathological examples that you\nare probably never hitting in practice. If you *are* hitting them in practice\nthis should be a significant speed up in shrinking. If you are not, you are\nvery unlikely to notice any difference. You might see a slight slow down and/or\nslightly better falsifying examples.\n\n--------------------\n   ```\n   \n  \n  \n   ### 3.44.22\n   ```\n   --------------------\n\nThis release fixes a dependency problem.  It was possible to install\nHypothesis with an old version of :pypi:`attrs`, which would throw a\n``TypeError`` as soon as you tried to import hypothesis.  Specifically, you\nneed attrs 16.0.0 or newer.\n\nHypothesis will now require the correct version of attrs when installing.\n\n--------------------\n   ```\n   \n  \n  \n   ### 3.44.21\n   ```\n   --------------------\n\nThis change adds some additional structural information that Hypothesis will\nuse to guide its search.\n\nYou mostly shouldn&#39;t see much difference from this. The two most likely effects\nyou would notice are:\n\n1. Hypothesis stores slightly more examples in its database for passing tests.\n2. Hypothesis *may* find new bugs that it was previously missing, but it\n   probably won&#39;t (this is a basic implementation of the feature that is\n   intended to support future work. Although it is useful on its own, it&#39;s not\n   *very* useful on its own).\n\n--------------------\n   ```\n   \n  \n  \n   ### 3.44.20\n   ```\n   --------------------\n\nThis is a small refactoring release that changes how Hypothesis tracks some\ninformation about the boundary of examples in its internal representation.\n\nYou are unlikely to see much difference in behaviour, but memory usage and\nrun time may both go down slightly during normal test execution, and when\nfailing Hypothesis might print its failing example slightly sooner.\n\n--------------------\n   ```\n   \n  \n  \n   ### 3.44.19\n   ```\n   --------------------\n\nThis changes how we compute the default ``average_size`` for all collection\nstrategies. Previously setting a ``max_size`` without setting an\n``average_size`` would have the seemingly paradoxical effect of making data\ngeneration *slower*, because it would raise the average size from its default.\nNow setting ``max_size`` will either leave the default unchanged or lower it\nfrom its default.\n\nIf you are currently experiencing this problem, this may make your tests\nsubstantially faster. If you are not, this will likely have no effect on you.\n\n--------------------\n   ```\n   \n  \n  \n   ### 3.44.18\n   ```\n   --------------------\n\nThis is a small refactoring release that changes how Hypothesis detects when\nthe structure of data generation depends on earlier values generated (e.g. when\nusing :ref:`flatmap &lt;flatmap&gt;` or :func:`~hypothesis.strategies.composite`).\nIt should not have any observable effect on behaviour.\n\n--------------------\n   ```\n   \n  \n  \n   ### 3.44.17\n   ```\n   --------------------\n\nThis release fixes a typo in internal documentation, and has no user-visible impact.\n\n--------------------\n   ```\n   \n  \n  \n   ### 3.44.16\n   ```\n   --------------------\n\nThis release improves test case reduction for recursive data structures.\nHypothesis now guarantees that whenever a strategy calls itself recursively\n(usually this will happen because you are using :func:`~hypothesis.strategies.deferred`),\nany recursive call may replace the top level value. e.g. given a tree structure,\nHypothesis will always try replacing it with a subtree.\n\nAdditionally this introduces a new heuristic that may in some circumstances\nsignificantly speed up test case reduction - Hypothesis should be better at\nimmediately replacing elements drawn inside another strategy with their minimal\npossible value.\n\n--------------------\n   ```\n   \n  \n  \n   ### 3.44.15\n   ```\n   --------------------\n\n:func:`~hypothesis.strategies.from_type` can now resolve recursive types\nsuch as binary trees (:issue:`1004`).  Detection of non-type arguments has\nalso improved, leading to better error messages in many cases involving\n:pep:`forward references &lt;484forward-references&gt;`.\n\n--------------------\n   ```\n   \n  \n  \n   ### 3.44.14\n   ```\n   --------------------\n\nThis release fixes a bug in the shrinker that prevented the optimisations in\n   ```\n   \n  \n  \n   ### 3.44.13\n   ```\n   --------------------\n\nThis release changes the average bit length of values drawn from\n:func:`~hypothesis.strategies.integers` to be much smaller. Additionally it\nchanges the shrinking order so that now size is considered before sign - e.g.\n-1 will be preferred to +10.\n\nThe new internal format for integers required some changes to the minimizer to\nmake work well, so you may also see some improvements to example quality in\nunrelated areas.\n\n--------------------\n   ```\n   \n  \n  \n   ### 3.44.12\n   ```\n   --------------------\n\nThis changes Hypothesis&#39;s internal implementation of weighted sampling. This\nwill affect example distribution and quality, but you shouldn&#39;t see any other\neffects.\n\n--------------------\n   ```\n   \n  \n  \n   ### 3.44.11\n   ```\n   --------------------\n\nThis is a change to some internals around how Hypothesis handles avoiding\ngenerating duplicate examples and seeking out novel regions of the search\nspace.\n\nYou are unlikely to see much difference as a result of it, but it fixes\na bug where an internal assertion could theoretically be triggered and has some\nminor effects on the distribution of examples so could potentially find bugs\nthat have previously been missed.\n\n--------------------\n   ```\n   \n  \n  \n   ### 3.44.10\n   ```\n   --------------------\n\nThis patch avoids creating debug statements when debugging is disabled.\nProfiling suggests this is a 5-10% performance improvement (:issue:`1040`).\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.44.9\n   ```\n   -------------------\n\nThis patch blacklists null characters (``&#39;\\x00&#39;``) in automatically created\nstrategies for Django :obj:`~django:django.db.models.CharField` and\n:obj:`~django:django.db.models.TextField`, due to a database issue which\n`was recently fixed upstream &lt;https://code.djangoproject.com/ticket/28201&gt;`_\n(Hypothesis :issue:`1045`).\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.44.8\n   ```\n   -------------------\n\nThis release makes the Hypothesis shrinker slightly less greedy in order to\navoid local minima - when it gets stuck, it makes a small attempt to search\naround the final example it would previously have returned to find a new\nstarting point to shrink from. This should improve example quality in some\ncases, especially ones where the test data has dependencies among parts of it\nthat make it difficult for Hypothesis to proceed.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.44.7\n   ```\n   -------------------\n\nThis release adds support for `Django 2\n&lt;https://www.djangoproject.com/weblog/2017/dec/02/django-20-released/&gt;`_ in\nthe hypothesis-django extra.\n\nThis release drops support for Django 1.10, as it is no longer supported by\nthe Django team.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.44.6\n   ```\n   -------------------\n\nThis release speeds up test case reduction in many examples by being better at\ndetecting large shrinks it can use to discard redundant parts of its input.\nThis will be particularly noticeable in examples that make use of filtering\nand for some integer ranges.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.44.5\n   ```\n   -------------------\n\nHappy new year!\n\nThis is a no-op release that updates the year range on all of\nthe copyright headers in our source to include 2018.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.44.4\n   ```\n   -------------------\n\nThis release fixes :issue:`1044`, which slowed tests by up to 6%\ndue to broken caching.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.44.3\n   ```\n   -------------------\n\nThis release improves the shrinker in cases where examples drawn earlier can\naffect how much data is drawn later (e.g. when you draw a length parameter in\na composite and then draw that many elements). Examples found in cases like\nthis should now be much closer to minimal.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.44.2\n   ```\n   -------------------\n\nThis is a pure refactoring release which changes how Hypothesis manages its\nset of examples internally. It should have no externally visible effects.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.44.1\n   ```\n   -------------------\n\nThis release fixes :issue:`997`, in which under some circumstances the body of\ntests run under Hypothesis would not show up when run under coverage even\nthough the tests were run and the code they called outside of the test file\nwould show up normally.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.44.0\n   ```\n   -------------------\n\nThis release adds a new feature: The :ref:`reproduce_failure &lt;reproduce_failure&gt;`,\ndesigned to make it easy to use Hypothesis&#39;s binary format for examples to\nreproduce a problem locally without having to share your example database\nbetween machines.\n\nThis also changes when seeds are printed:\n\n* They will no longer be printed for\n  normal falsifying examples, as there are now adequate ways of reproducing those\n  for all cases, so it just contributes noise.\n* They will once again be printed when reusing examples from the database, as\n  health check failures should now be more reliable in this scenario so it will\n  almost always work in this case.\n\nThis work was funded by `Smarkets &lt;https://smarkets.com/&gt;`_.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.43.1\n   ```\n   -------------------\n\nThis release fixes a bug with Hypothesis&#39;s database management - examples that\nwere found in the course of shrinking were saved in a way that indicated that\nthey had distinct causes, and so they would all be retried on the start of the\nnext test. The intended behaviour, which is now what is implemented, is that\nonly a bounded subset of these examples would be retried.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.43.0\n   ```\n   -------------------\n\n:exc:`~hypothesis.errors.HypothesisDeprecationWarning` now inherits from\n:exc:`python:FutureWarning` instead of :exc:`python:DeprecationWarning`,\nas recommended by :pep:`565` for user-facing warnings (:issue:`618`).\nIf you have not changed the default warnings settings, you will now see\neach distinct :exc:`~hypothesis.errors.HypothesisDeprecationWarning`\ninstead of only the first.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.42.2\n   ```\n   -------------------\n\nThis patch fixes :issue:`1017`, where instances of a list or tuple subtype\nused as an argument to a strategy would be coerced to tuple.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.42.1\n   ```\n   -------------------\n\nThis release has some internal cleanup, which makes reading the code\nmore pleasant and may shrink large examples slightly faster.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.42.0\n   ```\n   -------------------\n\nThis release deprecates :ref:`faker-extra`, which was designed as a transition\nstrategy but does not support example shrinking or coverage-guided discovery.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.41.0\n   ```\n   -------------------\n\n:func:`~hypothesis.strategies.sampled_from` can now sample from\none-dimensional numpy ndarrays. Sampling from multi-dimensional\nndarrays still results in a deprecation warning. Thanks to Charlie\nTanksley for this patch.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.40.1\n   ```\n   -------------------\n\nThis release makes two changes:\n\n* It makes the calculation of some of the metadata that Hypothesis uses for\n  shrinking occur lazily. This should speed up performance of test case\n  generation a bit because it no longer calculates information it doesn&#39;t need.\n* It improves the shrinker for certain classes of nested examples. e.g. when\n  shrinking lists of lists, the shrinker is now able to concatenate two\n  adjacent lists together into a single list. As a result of this change,\n  shrinking may get somewhat slower when the minimal example found is large.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.40.0\n   ```\n   -------------------\n\nThis release improves how various ways of seeding Hypothesis interact with the\nexample database:\n\n* Using the example database with :func:`~hypothesis.seed` is now deprecated.\n  You should set ``database=None`` if you are doing that. This will only warn\n  if you actually load examples from the database while using ``seed``.\n* The :attr:`~hypothesis.settings.derandomize` will behave the same way as\n  ``seed``.\n* Using ``--hypothesis-seed`` will disable use of the database.\n* If a test used examples from the database, it will not suggest using a seed\n  to reproduce it, because that won&#39;t work.\n\nThis work was funded by `Smarkets &lt;https://smarkets.com/&gt;`_.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.39.0\n   ```\n   -------------------\n\nThis release adds a new health check that checks if the smallest &quot;natural&quot;\npossible example of your test case is very large - this will tend to cause\nHypothesis to generate bad examples and be quite slow.\n\nThis work was funded by `Smarkets &lt;https://smarkets.com/&gt;`_.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.38.9\n   ```\n   -------------------\n\nThis is a documentation release to improve the documentation of shrinking\nbehaviour for Hypothesis&#39;s strategies.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.38.8\n   ```\n   -------------------\n\nThis release improves the performance of\n:func:`~hypothesis.strategies.characters` when using ``blacklist_characters``\nand :func:`~hypothesis.strategies.from_regex` when using negative character\nclasses.\n\nThe problems this fixes were found in the course of work funded by\n`Smarkets &lt;https://smarkets.com/&gt;`_.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.38.7\n   ```\n   -------------------\n\nThis is a patch release for :func:`~hypothesis.strategies.from_regex`, which\nhad a bug in handling of the :obj:`python:re.VERBOSE` flag (:issue:`992`).\nFlags are now handled correctly when parsing regex.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.38.6\n   ```\n   -------------------\n\nThis patch changes a few byte-string literals from double to single quotes,\nthanks to an update in :pypi:`unify`.  There are no user-visible changes.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.38.5\n   ```\n   -------------------\n\nThis fixes the repr of strategies using lambda that are defined inside\ndecorators to include the lambda source.\n\nThis would mostly have been visible when using the\n:ref:`statistics &lt;statistics&gt;` functionality - lambdas used for e.g. filtering\nwould have shown up with a ``&lt;unknown&gt;`` as their body. This can still happen,\nbut it should happen less often now.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.38.4\n   ```\n   -------------------\n\nThis release updates the reported :ref:`statistics &lt;statistics&gt;` so that they\nshow approximately what fraction of your test run time is spent in data\ngeneration (as opposed to test execution).\n\nThis work was funded by `Smarkets &lt;https://smarkets.com/&gt;`_.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.38.3\n   ```\n   -------------------\n\nThis is a documentation release, which ensures code examples are up to date\nby running them as doctests in CI (:issue:`711`).\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.38.2\n   ```\n   -------------------\n\nThis release changes the behaviour of the :attr:`~hypothesis.settings.deadline`\nsetting when used with :func:`~hypothesis.strategies.data`: Time spent inside\ncalls to ``data.draw`` will no longer be counted towards the deadline time.\n\nAs a side effect of some refactoring required for this work, the way flaky\ntests are handled has changed slightly. You are unlikely to see much difference\nfrom this, but some error messages will have changed.\n\nThis work was funded by `Smarkets &lt;https://smarkets.com/&gt;`_.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.38.1\n   ```\n   -------------------\n\nThis patch has a variety of non-user-visible refactorings, removing various\nminor warts ranging from indirect imports to typos in comments.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.38.0\n   ```\n   -------------------\n\nThis release overhauls :doc:`the health check system &lt;healthchecks&gt;`\nin a variety of small ways.\nIt adds no new features, but is nevertheless a minor release because it changes\nwhich tests are likely to fail health checks.\n\nThe most noticeable effect is that some tests that used to fail health checks\nwill now pass, and some that used to pass will fail. These should all be\nimprovements in accuracy. In particular:\n\n* New failures will usually be because they are now taking into account things\n  like use of :func:`~hypothesis.strategies.data` and\n  :func:`~hypothesis.assume` inside the test body.\n* New failures *may* also be because for some classes of example the way data\n  generation performance was measured was artificially faster than real data\n  generation (for most examples that are hitting performance health checks the\n  opposite should be the case).\n* Tests that used to fail health checks and now pass do so because the health\n  check system used to run in a way that was subtly different than the main\n  Hypothesis data generation and lacked some of its support for e.g. large\n  examples.\n\nIf your data generation is especially slow, you may also see your tests get\nsomewhat faster, as there is no longer a separate health check phase. This will\nbe particularly noticeable when rerunning test failures.\n\nThis work was funded by `Smarkets &lt;https://smarkets.com/&gt;`_.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.37.0\n   ```\n   -------------------\n\nThis is a deprecation release for some health check related features.\n\nThe following are now deprecated:\n\n* Passing :attr:`~hypothesis.HealthCheck.exception_in_generation` to\n  :attr:`~hypothesis.settings.suppress_health_check`. This no longer does\n  anything even when passed -  All errors that occur during data generation\n  will now be immediately reraised rather than going through the health check\n  mechanism.\n* Passing :attr:`~hypothesis.HealthCheck.random_module` to\n  :attr:`~hypothesis.settings.suppress_health_check`. This hasn&#39;t done anything\n  for a long time, but was never explicitly deprecated. Hypothesis always seeds\n  the random module when running given tests, so this is no longer an error\n  and suppressing it doesn&#39;t do anything.\n* Passing non-:class:`~hypothesis.HealthCheck` values in\n  :attr:`~hypothesis.settings.suppress_health_check`. This was previously\n  allowed but never did anything useful.\n\nIn addition, passing a non-iterable value as :attr:`~hypothesis.settings.suppress_health_check`\nwill now raise an error immediately (it would never have worked correctly, but\nit would previously have failed later). Some validation error messages have\nalso been updated.\n\nThis work was funded by `Smarkets &lt;https://smarkets.com/&gt;`_.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.36.1\n   ```\n   -------------------\n\nThis is a yak shaving release, mostly concerned with our own tests.\n\nWhile :func:`~python:inspect.getfullargspec` was documented as deprecated\nin Python 3.5, it never actually emitted a warning.  Our code to silence\nthis (nonexistent) warning has therefore been removed.\n\nWe now run our tests with ``DeprecationWarning`` as an error, and made some\nminor changes to our own tests as a result.  This required similar upstream\nupdates to :pypi:`coverage` and :pypi:`execnet` (a test-time dependency via\n:pypi:`pytest-xdist`).\n\nThere is no user-visible change in Hypothesis itself, but we encourage you\nto consider enabling deprecations as errors in your own tests.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.36.0\n   ```\n   -------------------\n\nThis release adds a setting to the public API, and does some internal cleanup:\n\n- The :attr:`~hypothesis.settings.derandomize` setting is now documented (:issue:`890`)\n- Removed - and disallowed - all &#39;bare excepts&#39; in Hypothesis (:issue:`953`)\n- Documented the :attr:`~hypothesis.settings.strict` setting as deprecated, and\n  updated the build so our docs always match deprecations in the code.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.35.0\n   ```\n   -------------------\n\nThis minor release supports constraining :func:`~hypothesis.strategies.uuids`\nto generate a particular version of :class:`~python:uuid.UUID` (:issue:`721`).\n\nThanks to Dion Misic for this feature.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.34.1\n   ```\n   -------------------\n\nThis patch updates the documentation to suggest\n:func:`builds(callable) &lt;hypothesis.strategies.builds&gt;` instead of\n:func:`just(callable()) &lt;hypothesis.strategies.just&gt;`.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.34.0\n   ```\n   -------------------\n\nHypothesis now emits deprecation warnings if you apply\n:func:`given &lt;hypothesis.given&gt;` more than once to a target.\n\nApplying :func:`given &lt;hypothesis.given&gt;` repeatedly wraps the target multiple\ntimes. Each wrapper will search the space of of possible parameters separately.\nThis is equivalent but will be much more inefficient than doing it with a\nsingle call to :func:`given &lt;hypothesis.given&gt;`.\n\nFor example, instead of\n``given(booleans()) given(integers())``, you could write\n``given(booleans(), integers())``\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.33.1\n   ```\n   -------------------\n\nThis is a bugfix release:\n\n- :func:`~hypothesis.strategies.builds` would try to infer a strategy for\n  required positional arguments of the target from type hints, even if they\n  had been given to :func:`~hypothesis.strategies.builds` as positional\n  arguments (:issue:`946`).  Now it only infers missing required arguments.\n- An internal introspection function wrongly reported ``self`` as a required\n  argument for bound methods, which might also have affected\n  :func:`~hypothesis.strategies.builds`.  Now it knows better.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.33.0\n   ```\n   -------------------\n\nThis release supports strategy inference for more field types in Django\n:func:`~hypothesis.extra.django.models` - you can now omit an argument for\nDate, Time, Duration, Slug, IP Address, and UUID fields.  (:issue:`642`)\n\nStrategy generation for fields with grouped choices now selects choices from\neach group, instead of selecting from the group names.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.32.2\n   ```\n   -------------------\n\nThis patch removes the ``mergedb`` tool, introduced in Hypothesis 1.7.1\non an experimental basis.  It has never actually worked, and the new\n:doc:`Hypothesis example database &lt;database&gt;` is designed to make such a\ntool unnecessary.\n\n-------------------\n   ```\n   \n  \n  \n   ### 3.32.1\n   ```\n   -------------------\n\nThis patch has two improvements for strategies based on enumerations.\n\n- :func:`~hypothesis.strategies.from_type` now handles enumerations correctly,\n  delegating to :func:`~hypothesis.strategies.sampled_from`.  Previously it\n  noted that ``Enum.__init__`` has no required arguments and therefore delegated\n  to :func:`~hypothesis.strategies.builds`, which would subsequently fail.\n- When sampling from an :class:`python:enum.Flag`, we also generate combinations\n  of members. Eg for ``Flag(&#39;Permissions&#39;, &#39;READ, WRITE, EXECUTE&#39;)`` we can now\n  generate, ``Permissions.READ``, ``Permissions.READ|WRITE``, and so on.\n\n-------------------\n   ```\n   \n  \n</details>\n\n\n \n\n<details>\n  <summary>Links</summary>\n  \n  - PyPI: https://pypi.python.org/pypi/hypothesis\n  - Changelog: https://pyup.io/changelogs/hypothesis/\n  - Repo: https://github.com/HypothesisWorks/hypothesis/issues\n</details>\n\n"},"comment":{"url":"https://api.github.com/repos/iodevs/pydecoder/issues/comments/374191063","html_url":"https://github.com/iodevs/pydecoder/pull/155#issuecomment-374191063","issue_url":"https://api.github.com/repos/iodevs/pydecoder/issues/155","id":374191063,"user":{"login":"coveralls","id":2354108,"avatar_url":"https://avatars1.githubusercontent.com/u/2354108?v=4","gravatar_id":"","url":"https://api.github.com/users/coveralls","html_url":"https://github.com/coveralls","followers_url":"https://api.github.com/users/coveralls/followers","following_url":"https://api.github.com/users/coveralls/following{/other_user}","gists_url":"https://api.github.com/users/coveralls/gists{/gist_id}","starred_url":"https://api.github.com/users/coveralls/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coveralls/subscriptions","organizations_url":"https://api.github.com/users/coveralls/orgs","repos_url":"https://api.github.com/users/coveralls/repos","events_url":"https://api.github.com/users/coveralls/events{/privacy}","received_events_url":"https://api.github.com/users/coveralls/received_events","type":"User","site_admin":false},"created_at":"2018-03-19T12:11:06Z","updated_at":"2018-03-19T12:11:06Z","author_association":"NONE","body":"\n[![Coverage Status](https://coveralls.io/builds/16049613/badge)](https://coveralls.io/builds/16049613)\n\nCoverage remained the same at 100.0% when pulling **d5e7ee4524bbb653b40e228282863c0382c325d1 on pyup-update-hypothesis-3.32.0-to-3.50.0** into **7b264ea7b17f5af4a06c190ef0973fb535d28fc3 on master**.\n"}}
{"actor":{"display_login":"coveralls"}}