This PR sets up pyup.io on this repo and updates all dependencies at once, in a single branch.
Subsequent pull requests will update one dependency at a time, each in their own branch. If you want to start with that right away, simply close this PR.
Changelog
### 2.4.2
```
============================
Release Date: TBA
* `FunctionDef.is_generator` properly handles `yield` nodes in `While` tests
Close PyCQA/pylint3519
* Properly construct the arguments of infered property descriptors
Close PyCQA/pylint3648
```
### 2.4.1
```
============================
Release Date: 2020-05-05
* Handle the case where the raw builder fails to retrieve the ``__all__`` attribute
Close 772
* Restructure the AST parsing heuristic to always pick the same module
Close PyCQA/pylint3540
Close 773
* Changed setup.py to work with [distlib](https://pypi.org/project/distlib)
Close 779
* Do not crash with SyntaxError when parsing namedtuples with invalid label
Close PyCQA/pylint3549
* Protect against ``infer_call_result`` failing with `InferenceError` in `Super.getattr()`
Close PyCQA/pylint3529
```
### 2.4.0
```
============================
Release Date: 2020-04-27
* Expose a ast_from_string method in AstroidManager, which will accept
source code as a string and return the corresponding astroid object
Closes PyCQA/astroid725
* ``BoundMethod.implicit_parameters`` returns a proper value for ``__new__``
Close PyCQA/pylint2335
* Allow slots added dynamically to a class to still be inferred
Close PyCQA/pylint2334
* Allow `FunctionDef.getattr` to look into both instance attrs and special attributes
Close PyCQA/pylint1078
* Infer qualified ``classmethod`` as a classmethod.
Close PyCQA/pylint3417
* Prevent a recursion error to happen when inferring the declared metaclass of a class
Close 749
* Raise ``AttributeInferenceError`` when ``getattr()`` receives an empty name
Close PyCQA/pylint2991
* Prevent a recursion error for self reference variables and `type()` calls.
Close 199
* Do not infer the first argument of a staticmethod in a metaclass as the class itself
Close PyCQA/pylint3032
* ``NodeNG.bool_value()`` gained an optional ``context`` parameter
We need to pass an inference context downstream when inferring the boolean
value of a node in order to prevent recursion errors and double inference.
This fix prevents a recursion error with dask library.
Close PyCQA/pylint2985
* Pass a context argument to ``astroid.Arguments`` to prevent recursion errors
Close PyCQA/pylint3414
* Better inference of class and static methods decorated with custom methods
Close PyCQA/pylint3209
* Reverse the order of decorators for `infer_subscript`
`path_wrapper` needs to come first, followed by `raise_if_nothing_inferred`,
otherwise we won't handle `StopIteration` correctly.
Close 762
* Prevent a recursion error when inferring self-referential variables without definition
Close PyCQA/pylint1285
* Numpy `datetime64.astype` return value is inferred as a `ndarray`.
Close PyCQA/pylint3332
* Skip non ``Assign`` and ``AnnAssign`` nodes from enum reinterpretation
Closes PyCQA/pylint3365
* Numpy ``ndarray`` attributes ``imag`` and ``real`` are now inferred as ``ndarray``.
Close PyCQA/pylint3322
* Added a call to ``register_transform`` for all functions of the ``brain_numpy_core_multiarray``
module in case the current node is an instance of ``astroid.Name``
Close 666
* Use the parent of the node when inferring aug assign nodes instead of the statement
Close PyCQA/pylint2911
Close PyCQA/pylint3214
* Added some functions to the ``brain_numpy_core_umath`` module
Close PyCQA/pylint3319
* Added some functions of the ``numpy.core.multiarray`` module
Close PyCQA/pylint3208
* All the ``numpy ufunc`` functions derived now from a common class that
implements the specific ``reduce``, ``accumulate``, ``reduceat``,
``outer`` and ``at`` methods.
Close PyCQA/pylint2885
* ``nodes.Const.itered`` returns a list of ``Const`` nodes, not strings
Close PyCQA/pylint3306
* The ``shape`` attribute of a ``numpy ndarray`` is now a ``ndarray``
Close PyCQA/pylint3139
* Don't ignore special methods when inspecting gi classes
Close 728
* Added transform for ``scipy.gaussian``
* Add suport for inferring properties.
* Added a brain for ``responses``
* Allow inferring positional only arguments.
* Retry parsing a module that has invalid type comments
It is possible for a module to use comments that might be interpreted
as type comments by the `ast` library. We do not want to completely crash on those
invalid type comments.
Close 708
* Scope the inference to the current bound node when inferring instances of classes
When inferring instances of classes from arguments, such as ``self``
in a bound method, we could use as a hint the context's ``boundnode``,
which indicates the instance from which the inference originated.
As an example, a subclass that uses a parent's method which returns
``self``, will override the ``self`` to point to it instead of pointing
to the parent class.
Close PyCQA/pylint3157
* Add support for inferring exception instances in all contexts
We were able to infer exception instances as ``ExceptionInstance``
only for a handful of cases, but not all. ``ExceptionInstance`` has
support for better inference of `.args` and other exception related
attributes that normal instances do not have.
This additional support should remove certain false positives related
to ``.args`` and other exception attributes in ``pylint``.
Close PyCQA/pylint2333
* Add more supported parameters to ``subprocess.check_output``
Close 722
* Infer args unpacking of ``self``
Certain stdlib modules use ``*args`` to encapsulate
the ``self`` parameter, which results in uninferable
instances given we rely on the presence of the ``self``
argument to figure out the instance where we should be
setting attributes.
Close PyCQA/pylint3216
* Clean up setup.py
Make pytest-runner a requirement only if running tests, similar to what was
done with McCabe.
Clean up the setup.py file, resolving a handful of minor warnings with it.
* Handle StopIteration error in infer_int.
Close PyCQA/pylint3274
* Can access per argument type comments for positional only and keyword only arguments.
The comments are accessed through through the new
``Arguments.type_comment_posonlyargs`` and
``Arguments.type_comment_kwonlyargs`` attributes respectively.
* Relax upper bound on `wrapt`
Close 755
* Properly analyze CFFI compiled extensions.
```
### 2.3.2
```
============================
Release Date: TBA
* All type comments have as parent the corresponding `astroid` node
Until now they had as parent the builtin `ast` node which meant
we were operating with primitive objects instead of our own.
Close PyCQA/pylint3174
* Pass an inference context to `metaclass()` when inferring an object type
This should prevent a bunch of recursion errors happening in pylint.
Also refactor the inference of `IfExp` nodes to use separate contexts
for each potential branch.
Close PyCQA/pylint3152
Close PyCQA/pylint3159
```
### 2.3.1
```
============================
Release Date: 2019-09-30
* A transform for the builtin `dataclasses` module was added.
This should address various `dataclasses` issues that were surfaced
even more after the release of pylint 2.4.0.
In the previous versions of `astroid`, annotated assign nodes were
allowed to be retrieved via `getattr()` but that no longer happens
with the latest `astroid` release, as those attribute are not actual
attributes, but rather virtual ones, thus an operation such as `getattr()`
does not make sense for them.
* Update attr brain to partly understand annotated attributes
Close 656
```
### 2.3.0
```
============================
Release Date: 2019-09-24
* Add a brain tip for ``subprocess.check_output``
Close 689
* Remove NodeNG.nearest method because of lack of usage in astroid and pylint.
Close 691
* Allow importing wheel files. Close 541
* Annotated AST follows PEP8 coding style when converted to string.
* Fix a bug where defining a class using type() could cause a DuplicateBasesError.
Close 644
* Dropped support for Python 3.4.
* Numpy brain support is improved.
Numpy's fundamental type ``numpy.ndarray`` has its own brain : ``brain_numpy_ndarray`` and
each numpy module that necessitates brain action has now its own numpy brain :
- ``numpy.core.numeric``
- ``numpy.core.function_base``
- ``numpy.core.multiarray``
- ``numpy.core.numeric``
- ``numpy.core.numerictypes``
- ``numpy.core.umath``
- ``numpy.random.mtrand``
Close PyCQA/pylint2865
Close PyCQA/pylint2747
Close PyCQA/pylint2721
Close PyCQA/pylint2326
Close PyCQA/pylint2021
* ``assert`` only functions are properly inferred as returning ``None``
Close 668
* Add support for Python 3.8's `NamedExpr` nodes, which is part of assignment expressions.
Close 674
* Added support for inferring `IfExp` nodes.
* Instances of exceptions are inferred as such when inferring in non-exception context
This allows special inference support for exception attributes such as `.args`.
Close PyCQA/pylint2333
* Drop a superfluous and wrong callcontext when inferring the result of a context manager
Close PyCQA/pylint2859
* ``igetattr`` raises ``InferenceError`` on re-inference of the same object
This prevents ``StopIteration`` from leaking when we encounter the same
object in the current context, which could result in various ``RuntimeErrors``
leaking in other parts of the inference.
Until we get a global context per inference, the solution is sort of a hack,
as with the suggested global context improvement, we could theoretically
reuse the same inference object.
Close 663
* Variable annotations can no longer be retrieved with `ClassDef.getattr`
Unless they have an attached value, class variable annotations can no longer
be retrieved with `ClassDef.getattr.`
* Improved builtin inference for ``tuple``, ``set``, ``frozenset``, ``list`` and ``dict``
We were properly inferring these callables *only* if they had consts as
values, but that is not the case most of the time. Instead we try to infer
the values that their arguments can be and use them instead of assuming
Const nodes all the time.
Close PyCQA/pylint2841
* The last except handler wins when inferring variables bound in an except handler.
Close PyCQA/pylint2777
* ``threading.Lock.locked()`` is properly recognized as a member of ``threading.Lock``
Close PyCQA/pylint2791
* Fix recursion error involving ``len`` and self referential attributes
Close PyCQA/pylint2736
Close PyCQA/pylint2734
Close PyCQA/pylint2740
* Can access per argument type comments through new ``Arguments.type_comment_args`` attribute.
Close 665
* Fix being unable to access class attributes on a NamedTuple.
Close PyCQA/pylint1628
* Fixed being unable to find distutils submodules by name when in a virtualenv.
Close PyCQA/pylint73
```
### 2.2.0
```
============================
Release Date: 2019-02-27
* Fix a bug concerning inference of calls to numpy function that should not return Tuple or List instances.
Close PyCQA/pylint2436
* Fix a bug where a method, which is a lambda built from a function, is not inferred as ``BoundMethod``
Close PyCQA/pylint2594
* ``typed_ast`` gets installed for Python 3.7, meaning type comments can now work on 3.7.
* Fix a bug concerning inference of unary operators on numpy types.
Close PyCQA/pylint2436 (first part)
* Fix a crash with ``typing.NamedTuple`` and empty fields. Close PyCQA/pylint2745
* Add a proper ``strerror`` inference to the ``OSError`` exceptions.
Close PyCQA/pylint2553
* Support non-const nodes as values of Enum attributes.
Close 612
* Fix a crash in the ``enum`` brain tip caused by non-assign members in class definitions.
Close PyCQA/pylint2719
* ``brain_numpy`` returns an undefined type for ``numpy`` methods to avoid ``assignment-from-no-return``
Close PyCQA/pylint2694
* Fix a bug where a call to a function that has been previously called via
functools.partial was wrongly inferred
Close PyCQA/pylint2588
* Fix a recursion error caused by inferring the ``slice`` builtin.
Close PyCQA/pylint2667
* Remove the restriction that "old style classes" cannot have a MRO.
This does not make sense any longer given that we run against Python 3
code.
Close PyCQA/pylint2701
* Added more builtin exceptions attributes. Close 580
* Add a registry for builtin exception models. Close PyCQA/pylint1432
* Add brain tips for `http.client`. Close PyCQA/pylint2687
* Prevent crashing when processing ``enums`` with mixed single and double quotes.
Close PyCQA/pylint2676
* ``typing`` types have the `__args__` property. Close PyCQA/pylint2419
* Fix a bug where an Attribute used as a base class was triggering a crash
Close 626
* Added special support for `enum.IntFlag`
Close PyCQA/pylint2534
* Extend detection of data classes defined with attr
Close 628
* Fix typo in description for brain_attrs
```
Links
- PyPI: https://pypi.org/project/astroid
- Changelog: https://pyup.io/changelogs/astroid/
- Repo: https://github.com/PyCQA/astroid
Changelog
### 19.3.0
```
-------------------
Changes
^^^^^^^
- Fixed ``auto_attribs`` usage when default values cannot be compared directly with ``==``, such as ``numpy`` arrays.
`585 <https://github.com/python-attrs/attrs/issues/585>`_
----
```
### 19.2.0
```
-------------------
Backward-incompatible Changes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Removed deprecated ``Attribute`` attribute ``convert`` per scheduled removal on 2019/1.
This planned deprecation is tracked in issue `307 <https://github.com/python-attrs/attrs/issues/307>`_.
`504 <https://github.com/python-attrs/attrs/issues/504>`_
- ``__lt__``, ``__le__``, ``__gt__``, and ``__ge__`` do not consider subclasses comparable anymore.
This has been deprecated since 18.2.0 and was raising a ``DeprecationWarning`` for over a year.
`570 <https://github.com/python-attrs/attrs/issues/570>`_
Deprecations
^^^^^^^^^^^^
- The ``cmp`` argument to ``attr.s()`` and ``attr.ib()`` is now deprecated.
Please use ``eq`` to add equality methods (``__eq__`` and ``__ne__``) and ``order`` to add ordering methods (``__lt__``, ``__le__``, ``__gt__``, and ``__ge__``) instead – just like with `dataclasses <https://docs.python.org/3/library/dataclasses.html>`_.
Both are effectively ``True`` by default but it's enough to set ``eq=False`` to disable both at once.
Passing ``eq=False, order=True`` explicitly will raise a ``ValueError`` though.
Since this is arguably a deeper backward-compatibility break, it will have an extended deprecation period until 2021-06-01.
After that day, the ``cmp`` argument will be removed.
``attr.Attribute`` also isn't orderable anymore.
`574 <https://github.com/python-attrs/attrs/issues/574>`_
Changes
^^^^^^^
- Updated ``attr.validators.__all__`` to include new validators added in `425`_.
`517 <https://github.com/python-attrs/attrs/issues/517>`_
- Slotted classes now use a pure Python mechanism to rewrite the ``__class__`` cell when rebuilding the class, so ``super()`` works even on environments where ``ctypes`` is not installed.
`522 <https://github.com/python-attrs/attrs/issues/522>`_
- When collecting attributes using ``attr.s(auto_attribs=True)``, attributes with a default of ``None`` are now deleted too.
`523 <https://github.com/python-attrs/attrs/issues/523>`_,
`556 <https://github.com/python-attrs/attrs/issues/556>`_
- Fixed ``attr.validators.deep_iterable()`` and ``attr.validators.deep_mapping()`` type stubs.
`533 <https://github.com/python-attrs/attrs/issues/533>`_
- ``attr.validators.is_callable()`` validator now raises an exception ``attr.exceptions.NotCallableError``, a subclass of ``TypeError``, informing the received value.
`536 <https://github.com/python-attrs/attrs/issues/536>`_
- ``attr.s(auto_exc=True)`` now generates classes that are hashable by ID, as the documentation always claimed it would.
`543 <https://github.com/python-attrs/attrs/issues/543>`_,
`563 <https://github.com/python-attrs/attrs/issues/563>`_
- Added ``attr.validators.matches_re()`` that checks string attributes whether they match a regular expression.
`552 <https://github.com/python-attrs/attrs/issues/552>`_
- Keyword-only attributes (``kw_only=True``) and attributes that are excluded from the ``attrs``'s ``__init__`` (``init=False``) now can appear before mandatory attributes.
`559 <https://github.com/python-attrs/attrs/issues/559>`_
- The fake filename for generated methods is now more stable.
It won't change when you restart the process.
`560 <https://github.com/python-attrs/attrs/issues/560>`_
- The value passed to ``attr.ib(repr=…)`` can now be either a boolean (as before) or a callable.
That callable must return a string and is then used for formatting the attribute by the generated ``__repr__()`` method.
`568 <https://github.com/python-attrs/attrs/issues/568>`_
- Added ``attr.__version_info__`` that can be used to reliably check the version of ``attrs`` and write forward- and backward-compatible code.
Please check out the `section on deprecated APIs <http://www.attrs.org/en/stable/api.htmldeprecated-apis>`_ on how to use it.
`580 <https://github.com/python-attrs/attrs/issues/580>`_
.. _`425`: https://github.com/python-attrs/attrs/issues/425
----
```
### 19.1.0
```
-------------------
Backward-incompatible Changes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Fixed a bug where deserialized objects with ``cache_hash=True`` could have incorrect hash code values.
This change breaks classes with ``cache_hash=True`` when a custom ``__setstate__`` is present.
An exception will be thrown when applying the ``attrs`` annotation to such a class.
This limitation is tracked in issue `494 <https://github.com/python-attrs/attrs/issues/494>`_.
`482 <https://github.com/python-attrs/attrs/issues/482>`_
Changes
^^^^^^^
- Add ``is_callable``, ``deep_iterable``, and ``deep_mapping`` validators.
* ``is_callable``: validates that a value is callable
* ``deep_iterable``: Allows recursion down into an iterable,
applying another validator to every member in the iterable
as well as applying an optional validator to the iterable itself.
* ``deep_mapping``: Allows recursion down into the items in a mapping object,
applying a key validator and a value validator to the key and value in every item.
Also applies an optional validator to the mapping object itself.
You can find them in the ``attr.validators`` package.
`425`_
- Fixed stub files to prevent errors raised by mypy's ``disallow_any_generics = True`` option.
`443 <https://github.com/python-attrs/attrs/issues/443>`_
- Attributes with ``init=False`` now can follow after ``kw_only=True`` attributes.
`450 <https://github.com/python-attrs/attrs/issues/450>`_
- ``attrs`` now has first class support for defining exception classes.
If you define a class using ``attr.s(auto_exc=True)`` and subclass an exception, the class will behave like a well-behaved exception class including an appropriate ``__str__`` method, and all attributes additionally available in an ``args`` attribute.
`500 <https://github.com/python-attrs/attrs/issues/500>`_
- Clarified documentation for hashing to warn that hashable objects should be deeply immutable (in their usage, even if this is not enforced).
`503 <https://github.com/python-attrs/attrs/issues/503>`_
----
```
Links
- PyPI: https://pypi.org/project/attrs
- Changelog: https://pyup.io/changelogs/attrs/
- Homepage: https://www.attrs.org/
Changelog
### 3.1.5
```
--------------------------------
**Security fixes**
None
**Features**
None
**Bug fixes**
* replace missing ``setuptools`` dependency with ``packaging``. Thank you Benjamin Peterson.
```
### 3.1.4
```
--------------------------------
**Security fixes**
* ``bleach.clean`` behavior parsing style attributes could result in a
regular expression denial of service (ReDoS).
Calls to ``bleach.clean`` with an allowed tag with an allowed
``style`` attribute were vulnerable to ReDoS. For example,
``bleach.clean(..., attributes={'a': ['style']})``.
This issue was confirmed in Bleach versions v3.1.3, v3.1.2, v3.1.1,
v3.1.0, v3.0.0, v2.1.4, and v2.1.3. Earlier versions used a similar
regular expression and should be considered vulnerable too.
Anyone using Bleach <=v3.1.3 is encouraged to upgrade.
https://bugzilla.mozilla.org/show_bug.cgi?id=1623633
**Backwards incompatible changes**
* Style attributes with dashes, or single or double quoted values are
cleaned instead of passed through.
**Features**
None
**Bug fixes**
None
```
### 3.1.3
```
--------------------------------
**Security fixes**
None
**Backwards incompatible changes**
None
**Features**
* Add relative link to code of conduct. (442)
* Drop deprecated 'setup.py test' support. (507)
* Fix typo: curren -> current in tests/test_clean.py (504)
* Test on PyPy 7
* Drop test support for end of life Python 3.4
**Bug fixes**
None
```
### 3.1.2
```
--------------------------------
**Security fixes**
* ``bleach.clean`` behavior parsing embedded MathML and SVG content
with RCDATA tags did not match browser behavior and could result in
a mutation XSS.
Calls to ``bleach.clean`` with ``strip=False`` and ``math`` or
``svg`` tags and one or more of the RCDATA tags ``script``,
``noscript``, ``style``, ``noframes``, ``iframe``, ``noembed``, or
``xmp`` in the allowed tags whitelist were vulnerable to a mutation
XSS.
This security issue was confirmed in Bleach version v3.1.1. Earlier
versions are likely affected too.
Anyone using Bleach <=v3.1.1 is encouraged to upgrade.
https://bugzilla.mozilla.org/show_bug.cgi?id=1621692
**Backwards incompatible changes**
None
**Features**
None
**Bug fixes**
None
```
### 3.1.1
```
-----------------------------------
**Security fixes**
* ``bleach.clean`` behavior parsing ``noscript`` tags did not match
browser behavior.
Calls to ``bleach.clean`` allowing ``noscript`` and one or more of
the raw text tags (``title``, ``textarea``, ``script``, ``style``,
``noembed``, ``noframes``, ``iframe``, and ``xmp``) were vulnerable
to a mutation XSS.
This security issue was confirmed in Bleach versions v2.1.4, v3.0.2,
and v3.1.0. Earlier versions are probably affected too.
Anyone using Bleach <=v3.1.0 is highly encouraged to upgrade.
https://bugzilla.mozilla.org/show_bug.cgi?id=1615315
**Backwards incompatible changes**
None
**Features**
None
**Bug fixes**
None
Bleach changes
==============
```
### 3.1.0
```
---------------------------------
**Security fixes**
None
**Backwards incompatible changes**
None
**Features**
* Add ``recognized_tags`` argument to the linkify ``Linker`` class. This
fixes issues when linkifying on its own and having some tags get escaped.
It defaults to a list of HTML5 tags. Thank you, Chad Birch! (409)
**Bug fixes**
* Add ``six>=1.9`` to requirements. Thank you, Dave Shawley (416)
* Fix cases where attribute names could have invalid characters in them.
(419)
* Fix problems with ``LinkifyFilter`` not being able to match links
across ``&``. (422)
* Fix ``InputStreamWithMemory`` when the ``BleachHTMLParser`` is
parsing ``meta`` tags. (431)
* Fix doctests. (357)
```
Links
- PyPI: https://pypi.org/project/bleach
- Changelog: https://pyup.io/changelogs/bleach/
- Repo: https://github.com/mozilla/bleach
- Docs: https://pythonhosted.org/bleach/
Changelog
### 7.1.1
```
-------------
Released 2020-03-09
- Fix ``ClickException`` output going to stdout instead of stderr.
:issue:`1495`
```
### 7.1
```
-----------
Released 2020-03-09
- Fix PyPI package name, "click" is lowercase again.
- Fix link in ``unicode_literals`` error message. :pr:`1151`
- Add support for colored output on UNIX Jupyter notebooks.
:issue:`1185`
- Operations that strip ANSI controls will strip the cursor hide/show
sequences. :issue:`1216`
- Remove unused compat shim for ``bytes``. :pr:`1195`
- Expand testing around termui, especially getchar on Windows.
:issue:`1116`
- Fix output on Windows Python 2.7 built with MSVC 14. :pr:`1342`
- Fix ``OSError`` when running in MSYS2. :issue:`1338`
- Fix ``OSError`` when redirecting to ``NUL`` stream on Windows.
:issue:`1065`
- Fix memory leak when parsing Unicode arguments on Windows.
:issue:`1136`
- Fix error in new AppEngine environments. :issue:`1462`
- Always return one of the passed choices for ``click.Choice``
:issue:`1277`, :pr:`1318`
- Add ``no_args_is_help`` option to ``click.Command``, defaults to
False :pr:`1167`
- Add ``show_defaults`` parameter to ``Context`` to enable showing
defaults globally. :issue:`1018`
- Handle ``env MYPATH=''`` as though the option were not passed.
:issue:`1196`
- It is once again possible to call ``next(bar)`` on an active
progress bar instance. :issue:`1125`
- ``open_file`` with ``atomic=True`` retains permissions of existing
files and respects the current umask for new files. :issue:`1376`
- When using the test ``CliRunner`` with ``mix_stderr=False``, if
``result.stderr`` is empty it will not raise a ``ValueError``.
:issue:`1193`
- Remove the unused ``mix_stderr`` parameter from
``CliRunner.invoke``. :issue:`1435`
- Fix ``TypeError`` raised when using bool flags and specifying
``type=bool``. :issue:`1287`
- Newlines in option help text are replaced with spaces before
re-wrapping to avoid uneven line breaks. :issue:`834`
- ``MissingParameter`` exceptions are printable in the Python
interpreter. :issue:`1139`
- Fix how default values for file-type options are shown during
prompts. :issue:`914`
- Fix environment variable automatic generation for commands
containing ``-``. :issue:`1253`
- Option help text replaces newlines with spaces when rewrapping, but
preserves paragraph breaks, fixing multiline formatting.
:issue:`834, 1066, 1397`
- Option help text that is wrapped adds an extra newline at the end to
distinguish it from the next option. :issue:`1075`
- Consider ``sensible-editor`` when determining the editor to use for
``click.edit()``. :pr:`1469`
- Arguments to system calls such as the executable path passed to
``click.edit`` can contains spaces. :pr:`1470`
- Add ZSH completion autoloading and error handling. :issue:`1348`
- Add a repr to ``Command``, ``Group``, ``Option``, and ``Argument``,
showing the name for friendlier debugging. :issue:`1267`
- Completion doesn't consider option names if a value starts with
``-`` after the ``--`` separator. :issue:`1247`
- ZSH completion escapes special characters in values. :pr:`1418`
- Add completion support for Fish shell. :pr:`1423`
- Decoding bytes option values falls back to UTF-8 in more cases.
:pr:`1468`
- Make the warning about old 2-arg parameter callbacks a deprecation
warning, to be removed in 8.0. This has been a warning since Click
2.0. :pr:`1492`
```
Links
- PyPI: https://pypi.org/project/click
- Changelog: https://pyup.io/changelogs/click/
- Homepage: https://palletsprojects.com/p/click/
Changelog
### 5.1
```
--------------------------
- The JSON report now includes counts of covered and missing branches. Thanks,
Salvatore Zagaria.
- On Python 3.8, try-finally-return reported wrong branch coverage with
decorated async functions (`issue 946`_). This is now fixed. Thanks, Kjell
Braden.
- The :meth:`~coverage.Coverage.get_option` and
:meth:`~coverage.Coverage.set_option` methods can now manipulate the
``[paths]`` configuration setting. Thanks to Bernát Gábor for the fix for
`issue 967`_.
.. _issue 946: https://github.com/nedbat/coveragepy/issues/946
.. _issue 967: https://github.com/nedbat/coveragepy/issues/967
.. _changes_504:
```
### 5.0.4
```
----------------------------
- If using the ``[run] relative_files`` setting, the XML report will use
relative files in the ``<source>`` elements indicating the location of source
code. Closes `issue 948`_.
- The textual summary report could report missing lines with negative line
numbers on PyPy3 7.1 (`issue 943`_). This is now fixed.
- Windows wheels for Python 3.8 were incorrectly built, but are now fixed.
(`issue 949`_)
- Updated Python 3.9 support to 3.9a4.
- HTML reports couldn't be sorted if localStorage wasn't available. This is now
fixed: sorting works even though the sorting setting isn't retained. (`issue
944`_ and `pull request 945`_). Thanks, Abdeali Kothari.
.. _issue 943: https://github.com/nedbat/coveragepy/issues/943
.. _issue 944: https://github.com/nedbat/coveragepy/issues/944
.. _pull request 945: https://github.com/nedbat/coveragepy/pull/945
.. _issue 948: https://github.com/nedbat/coveragepy/issues/948
.. _issue 949: https://github.com/nedbat/coveragepy/issues/949
.. _changes_503:
```
### 5.0.3
```
----------------------------
- A performance improvement in 5.0.2 didn't work for test suites that changed
directory before combining data, causing "Couldn't use data file: no such
table: meta" errors (`issue 916`_). This is now fixed.
- Coverage could fail to run your program with some form of "ModuleNotFound" or
"ImportError" trying to import from the current directory. This would happen
if coverage had been packaged into a zip file (for example, on Windows), or
was found indirectly (for example, by pyenv-virtualenv). A number of
different scenarios were described in `issue 862`_ which is now fixed. Huge
thanks to Agbonze O. Jeremiah for reporting it, and Alexander Waters and
George-Cristian Bîrzan for protracted debugging sessions.
- Added the "premain" debug option.
- Added SQLite compile-time options to the "debug sys" output.
.. _issue 862: https://github.com/nedbat/coveragepy/issues/862
.. _issue 916: https://github.com/nedbat/coveragepy/issues/916
.. _changes_502:
```
### 5.0.2
```
----------------------------
- Programs that used multiprocessing and changed directories would fail under
coverage. This is now fixed (`issue 890`_). A side effect is that debug
information about the config files read now shows absolute paths to the
files.
- When running programs as modules (``coverage run -m``) with ``--source``,
some measured modules were imported before coverage starts. This resulted in
unwanted warnings ("Already imported a file that will be measured") and a
reduction in coverage totals (`issue 909`_). This is now fixed.
- If no data was collected, an exception about "No data to report" could happen
instead of a 0% report being created (`issue 884`_). This is now fixed.
- The handling of source files with non-encodable file names has changed.
Previously, if a file name could not be encoded as UTF-8, an error occurred,
as described in `issue 891`_. Now, those files will not be measured, since
their data would not be recordable.
- A new warning ("dynamic-conflict") is issued if two mechanisms are trying to
change the dynamic context. Closes `issue 901`_.
- ``coverage run --debug=sys`` would fail with an AttributeError. This is now
fixed (`issue 907`_).
.. _issue 884: https://github.com/nedbat/coveragepy/issues/884
.. _issue 890: https://github.com/nedbat/coveragepy/issues/890
.. _issue 891: https://github.com/nedbat/coveragepy/issues/891
.. _issue 901: https://github.com/nedbat/coveragepy/issues/901
.. _issue 907: https://github.com/nedbat/coveragepy/issues/907
.. _issue 909: https://github.com/nedbat/coveragepy/issues/909
.. _changes_501:
```
### 5.0.1
```
----------------------------
- If a 4.x data file is the cause of a "file is not a database" error, then use
a more specific error message, "Looks like a coverage 4.x data file, are you
mixing versions of coverage?" Helps diagnose the problems described in
`issue 886`_.
- Measurement contexts and relative file names didn't work together, as
reported in `issue 899`_ and `issue 900`_. This is now fixed, thanks to
David Szotten.
- When using ``coverage run --concurrency=multiprocessing``, all data files
should be named with parallel-ready suffixes. 5.0 mistakenly named the main
process' file with no suffix when using ``--append``. This is now fixed,
closing `issue 880`_.
- Fixed a problem on Windows when the current directory is changed to a
different drive (`issue 895`_). Thanks, Olivier Grisel.
- Updated Python 3.9 support to 3.9a2.
.. _issue 880: https://github.com/nedbat/coveragepy/issues/880
.. _issue 886: https://github.com/nedbat/coveragepy/issues/886
.. _issue 895: https://github.com/nedbat/coveragepy/issues/895
.. _issue 899: https://github.com/nedbat/coveragepy/issues/899
.. _issue 900: https://github.com/nedbat/coveragepy/issues/900
.. _changes_50:
```
### 5.0
```
--------------------------
Nothing new beyond 5.0b2.
.. _changes_50b2:
```
### 5.0b2
```
----------------------------
- An experimental ``[run] relative_files`` setting tells coverage to store
relative file names in the data file. This makes it easier to run tests in
one (or many) environments, and then report in another. It has not had much
real-world testing, so it may change in incompatible ways in the future.
- When constructing a :class:`coverage.Coverage` object, `data_file` can be
specified as None to prevent writing any data file at all. In previous
versions, an explicit `data_file=None` argument would use the default of
".coverage". Fixes `issue 871`_.
- Python files run with ``-m`` now have ``__spec__`` defined properly. This
fixes `issue 745`_ (about not being able to run unittest tests that spawn
subprocesses), and `issue 838`_, which described the problem directly.
- The ``[paths]`` configuration section is now ordered. If you specify more
than one list of patterns, the first one that matches will be used. Fixes
`issue 649`_.
- The :func:`.coverage.numbits.register_sqlite_functions` function now also
registers `numbits_to_nums` for use in SQLite queries. Thanks, Simon
Willison.
- Python 3.9a1 is supported.
- Coverage.py has a mascot: :ref:`Sleepy Snake <sleepy>`.
.. _issue 649: https://github.com/nedbat/coveragepy/issues/649
.. _issue 745: https://github.com/nedbat/coveragepy/issues/745
.. _issue 838: https://github.com/nedbat/coveragepy/issues/838
.. _issue 871: https://github.com/nedbat/coveragepy/issues/871
.. _changes_50b1:
```
### 5.0b1
```
----------------------------
- The HTML and textual reports now have a ``--skip-empty`` option that skips
files with no statements, notably ``__init__.py`` files. Thanks, Reya B.
- Configuration can now be read from `TOML`_ files. This requires installing
coverage.py with the ``[toml]`` extra. The standard "pyproject.toml" file
will be read automatically if no other configuration file is found, with
settings in the ``[tool.coverage.]`` namespace. Thanks to Frazer McLean for
implementation and persistence. Finishes `issue 664`_.
- The ``[run] note`` setting has been deprecated. Using it will result in a
warning, and the note will not be written to the data file. The
corresponding :class:`.CoverageData` methods have been removed.
- The HTML report has been reimplemented (no more table around the source
code). This allowed for a better presentation of the context information,
hopefully resolving `issue 855`_.
- Added sqlite3 module version information to ``coverage debug sys`` output.
- Asking the HTML report to show contexts (``[html] show_contexts=True`` or
``coverage html --show-contexts``) will issue a warning if there were no
contexts measured (`issue 851`_).
.. _TOML: https://github.com/toml-lang/tomlreadme
.. _issue 664: https://github.com/nedbat/coveragepy/issues/664
.. _issue 851: https://github.com/nedbat/coveragepy/issues/851
.. _issue 855: https://github.com/nedbat/coveragepy/issues/855
.. _changes_50a8:
```
### 5.0a8
```
----------------------------
- The :class:`.CoverageData` API has changed how queries are limited to
specific contexts. Now you use :meth:`.CoverageData.set_query_context` to
set a single exact-match string, or :meth:`.CoverageData.set_query_contexts`
to set a list of regular expressions to match contexts. This changes the
command-line ``--contexts`` option to use regular expressions instead of
filename-style wildcards.
.. _changes_50a7:
```
### 5.0a7
```
----------------------------
- Data can now be "reported" in JSON format, for programmatic use, as requested
in `issue 720`_. The new ``coverage json`` command writes raw and summarized
data to a JSON file. Thanks, Matt Bachmann.
- Dynamic contexts are now supported in the Python tracer, which is important
for PyPy users. Closes `issue 846`_.
- The compact line number representation introduced in 5.0a6 is called a
"numbits." The :mod:`coverage.numbits` module provides functions for working
with them.
- The reporting methods used to permanently apply their arguments to the
configuration of the Coverage object. Now they no longer do. The arguments
affect the operation of the method, but do not persist.
- A class named "test_something" no longer confuses the ``test_function``
dynamic context setting. Fixes `issue 829`_.
- Fixed an unusual tokenizing issue with backslashes in comments. Fixes
`issue 822`_.
- ``debug=plugin`` didn't properly support configuration or dynamic context
plugins, but now it does, closing `issue 834`_.
.. _issue 720: https://github.com/nedbat/coveragepy/issues/720
.. _issue 822: https://github.com/nedbat/coveragepy/issues/822
.. _issue 834: https://github.com/nedbat/coveragepy/issues/834
.. _issue 829: https://github.com/nedbat/coveragepy/issues/829
.. _issue 846: https://github.com/nedbat/coveragepy/issues/846
.. _changes_50a6:
```
### 5.0a6
```
----------------------------
- Reporting on contexts. Big thanks to Stephan Richter and Albertas Agejevas
for the contribution.
- The ``--contexts`` option is available on the ``report`` and ``html``
commands. It's a comma-separated list of shell-style wildcards, selecting
the contexts to report on. Only contexts matching one of the wildcards
will be included in the report.
- The ``--show-contexts`` option for the ``html`` command adds context
information to each covered line. Hovering over the "ctx" marker at the
end of the line reveals a list of the contexts that covered the line.
- Database changes:
- Line numbers are now stored in a much more compact way. For each file and
context, a single binary string is stored with a bit per line number. This
greatly improves memory use, but makes ad-hoc use difficult.
- Dynamic contexts with no data are no longer written to the database.
- SQLite data storage is now faster. There's no longer a reason to keep the
JSON data file code, so it has been removed.
- Changes to the :class:`.CoverageData` interface:
- The new :meth:`.CoverageData.dumps` method serializes the data to a string,
and a corresponding :meth:`.CoverageData.loads` method reconstitutes this
data. The format of the data string is subject to change at any time, and
so should only be used between two installations of the same version of
coverage.py.
- The :meth:`CoverageData constructor<.CoverageData.__init__>` has a new
argument, `no_disk` (default: False). Setting it to True prevents writing
any data to the disk. This is useful for transient data objects.
- Added the classmethod :meth:`.Coverage.current` to get the latest started
Coverage instance.
- Multiprocessing support in Python 3.8 was broken, but is now fixed. Closes
`issue 828`_.
- Error handling during reporting has changed slightly. All reporting methods
now behave the same. The ``--ignore-errors`` option keeps errors from
stopping the reporting, but files that couldn't parse as Python will always
be reported as warnings. As with other warnings, you can suppress them with
the ``[run] disable_warnings`` configuration setting.
- Coverage.py no longer fails if the user program deletes its current
directory. Fixes `issue 806`_. Thanks, Dan Hemberger.
- The scrollbar markers in the HTML report now accurately show the highlighted
lines, regardless of what categories of line are highlighted.
- The hack to accommodate ShiningPanda_ looking for an obsolete internal data
file has been removed, since ShiningPanda 0.22 fixed it four years ago.
- The deprecated `Reporter.file_reporters` property has been removed.
.. _ShiningPanda: https://wiki.jenkins.io/display/JENKINS/ShiningPanda+Plugin
.. _issue 806: https://github.com/nedbat/coveragepy/pull/806
.. _issue 828: https://github.com/nedbat/coveragepy/issues/828
.. _changes_50a5:
```
### 5.0a5
```
----------------------------
- Drop support for Python 3.4
- Dynamic contexts can now be set two new ways, both thanks to Justas
Sadzevičius.
- A plugin can implement a ``dynamic_context`` method to check frames for
whether a new context should be started. See
:ref:`dynamic_context_plugins` for more details.
- Another tool (such as a test runner) can use the new
:meth:`.Coverage.switch_context` method to explicitly change the context.
- The ``dynamic_context = test_function`` setting now works with Python 2
old-style classes, though it only reports the method name, not the class it
was defined on. Closes `issue 797`_.
- ``fail_under`` values more than 100 are reported as errors. Thanks to Mike
Fiedler for closing `issue 746`_.
- The "missing" values in the text output are now sorted by line number, so
that missing branches are reported near the other lines they affect. The
values used to show all missing lines, and then all missing branches.
- Access to the SQLite database used for data storage is now thread-safe.
Thanks, Stephan Richter. This closes `issue 702`_.
- Combining data stored in SQLite is now about twice as fast, fixing `issue
761`_. Thanks, Stephan Richter.
- The ``filename`` attribute on :class:`.CoverageData` objects has been made
private. You can use the ``data_filename`` method to get the actual file
name being used to store data, and the ``base_filename`` method to get the
original filename before parallelizing suffixes were added. This is part of
fixing `issue 708`_.
- Line numbers in the HTML report now align properly with source lines, even
when Chrome's minimum font size is set, fixing `issue 748`_. Thanks Wen Ye.
.. _issue 702: https://github.com/nedbat/coveragepy/issues/702
.. _issue 708: https://github.com/nedbat/coveragepy/issues/708
.. _issue 746: https://github.com/nedbat/coveragepy/issues/746
.. _issue 748: https://github.com/nedbat/coveragepy/issues/748
.. _issue 761: https://github.com/nedbat/coveragepy/issues/761
.. _issue 797: https://github.com/nedbat/coveragepy/issues/797
.. _changes_50a4:
```
### 5.0a4
```
----------------------------
- You can specify the command line to run your program with the ``[run]
command_line`` configuration setting, as requested in `issue 695`_.
- Coverage will create directories as needed for the data file if they don't
exist, closing `issue 721`_.
- The ``coverage run`` command has always adjusted the first entry in sys.path,
to properly emulate how Python runs your program. Now this adjustment is
skipped if sys.path[0] is already different than Python's default. This
fixes `issue 715`_.
- Improvements to context support:
- The "no such table: meta" error is fixed.: `issue 716`_.
- Combining data files is now much faster.
- Python 3.8 (as of today!) passes all tests.
.. _issue 695: https://github.com/nedbat/coveragepy/issues/695
.. _issue 715: https://github.com/nedbat/coveragepy/issues/715
.. _issue 716: https://github.com/nedbat/coveragepy/issues/716
.. _issue 721: https://github.com/nedbat/coveragepy/issues/721
.. _changes_50a3:
```
### 5.0a3
```
----------------------------
- Context support: static contexts let you specify a label for a coverage run,
which is recorded in the data, and retained when you combine files. See
:ref:`contexts` for more information.
- Dynamic contexts: specifying ``[run] dynamic_context = test_function`` in the
config file will record the test function name as a dynamic context during
execution. This is the core of "Who Tests What" (`issue 170`_). Things to
note:
- There is no reporting support yet. Use SQLite to query the .coverage file
for information. Ideas are welcome about how reporting could be extended
to use this data.
- There's a noticeable slow-down before any test is run.
- Data files will now be roughly N times larger, where N is the number of
tests you have. Combining data files is therefore also N times slower.
- No other values for ``dynamic_context`` are recognized yet. Let me know
what else would be useful. I'd like to use a pytest plugin to get better
information directly from pytest, for example.
.. _issue 170: https://github.com/nedbat/coveragepy/issues/170
- Environment variable substitution in configuration files now supports two
syntaxes for controlling the behavior of undefined variables: if ``VARNAME``
is not defined, ``${VARNAME?}`` will raise an error, and ``${VARNAME-default
value}`` will use "default value".
- Partial support for Python 3.8, which has not yet released an alpha. Fixes
`issue 707`_ and `issue 714`_.
.. _issue 707: https://github.com/nedbat/coveragepy/issues/707
.. _issue 714: https://github.com/nedbat/coveragepy/issues/714
.. _changes_50a2:
```
### 5.0a2
```
----------------------------
- Coverage's data storage has changed. In version 4.x, .coverage files were
basically JSON. Now, they are SQLite databases. This means the data file
can be created earlier than it used to. A large amount of code was
refactored to support this change.
- Because the data file is created differently than previous releases, you
may need ``parallel=true`` where you didn't before.
- The old data format is still available (for now) by setting the environment
variable COVERAGE_STORAGE=json. Please tell me if you think you need to
keep the JSON format.
- The database schema is guaranteed to change in the future, to support new
features. I'm looking for opinions about making the schema part of the
public API to coverage.py or not.
- Development moved from `Bitbucket`_ to `GitHub`_.
- HTML files no longer have trailing and extra whitespace.
- The sort order in the HTML report is stored in local storage rather than
cookies, closing `issue 611`_. Thanks, Federico Bond.
- pickle2json, for converting v3 data files to v4 data files, has been removed.
.. _Bitbucket: https://bitbucket.org/ned/coveragepy
.. _GitHub: https://github.com/nedbat/coveragepy
.. _issue 611: https://github.com/nedbat/coveragepy/issues/611
.. _changes_50a1:
```
### 5.0a1
```
----------------------------
- Coverage.py no longer supports Python 2.6 or 3.3.
- The location of the configuration file can now be specified with a
``COVERAGE_RCFILE`` environment variable, as requested in `issue 650`_.
- Namespace packages are supported on Python 3.7, where they used to cause
TypeErrors about path being None. Fixes `issue 700`_.
- A new warning (``already-imported``) is issued if measurable files have
already been imported before coverage.py started measurement. See
:ref:`cmd_warnings` for more information.
- Running coverage many times for small runs in a single process should be
faster, closing `issue 625`_. Thanks, David MacIver.
- Large HTML report pages load faster. Thanks, Pankaj Pandey.
.. _issue 625: https://bitbucket.org/ned/coveragepy/issues/625/lstat-dominates-in-the-case-of-small
.. _issue 650: https://bitbucket.org/ned/coveragepy/issues/650/allow-setting-configuration-file-location
.. _issue 700: https://github.com/nedbat/coveragepy/issues/700
.. _changes_454:
```
### 4.5.4
```
----------------------------
- Multiprocessing support in Python 3.8 was broken, but is now fixed. Closes
`issue 828`_.
.. _issue 828: https://github.com/nedbat/coveragepy/issues/828
.. _changes_453:
```
### 4.5.3
```
----------------------------
- Only packaging metadata changes.
.. _changes_452:
```
Links
- PyPI: https://pypi.org/project/coverage
- Changelog: https://pyup.io/changelogs/coverage/
- Repo: https://github.com/nedbat/coveragepy
Changelog
### 0.16
```
=========================
.. Note::
Docutils 0.15.x is the last version supporting Python 2.6, 3.3 and 3.4.
Docutils 0.16.x supports Python 2.7 and Python >= 3.5 natively,
without the use of the ``2to3`` tool.
* reStructuredText:
- Keep `backslash escapes`__ in the document tree. This allows, e.g.,
escaping of author-separators in `bibliographic fields`__.
__ http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.htmlescaping-mechanism
__ docs/ref/rst/restructuredtext.htmlbibliographic-fields
* LaTeX writer:
- Informal titles of type "rubric" default to bold-italic and left aligned.
- Deprecate ``\docutilsrole`` prefix for styling commands:
use ``\DUrole`` instead.
- Fix topic subtitle.
- Add "latex writers" to the `config_section_dependencies`.
- Ignore classes for `rubric` elements
(class wrapper interferes with LaTeX formatting).
* tools/buildhtml.py
- New option "--html-writer" allows to select "html__" (default),
"html4" or "html5".
__ html: docs/user/html.htmlhtml
* docutils/io.py
- Remove the `handle_io_errors` option from io.FileInput/Output.
* docutils/nodes.py
- If `auto_id_prefix`_ ends with "%", this is replaced with the tag name.
.. _auto_id_prefix: docs/user/config.htmlauto-id-prefix
* Various bugfixes and improvements (see HISTORY_).
```
### 0.15
```
=========================
.. Note::
Docutils 0.14.x is the last version supporting Python 2.4, 2.5,
3.1, and 3.2.
Docutils 0.15.x is compatible with Python versions 2.6, 2.7 and 3.3 to 3.5
(cf. `Python 3 compatibility`_).
* reStructuredText:
- Allow embedded colons in field list field names (before, tokens like
``:this:example:`` were considered ordinary text).
- Fixed a bug with the "trim" options of the "unicode" directive.
* languages: Added Korean localisation (ko).
* Bugfixes (see HISTORY_).
```
Links
- PyPI: https://pypi.org/project/docutils
- Changelog: https://pyup.io/changelogs/docutils/
- Homepage: http://docutils.sourceforge.net/
Changelog
### 0.5.1
```
------------------
* Fixed package metadata removing 2.7 support
* Install pipenv only when asked for with extras
```
### 0.5.0
```
------------------
A bug with this package allows it to be installed on Python 2.7 environments,
even though it should not work on such version. You should stick with version
0.4.1 version instead for Python 2.7 support.
* Dropped Python 2.7, 3.3, 3.4 support
* Removed six package
* Removed pinned dependencies of tests
* Dropped setup.py tests support in favor of tox
```
Links
- PyPI: https://pypi.org/project/dparse
- Changelog: https://pyup.io/changelogs/dparse/
- Repo: https://github.com/pyupio/dparse
This PR sets up pyup.io on this repo and updates all dependencies at once, in a single branch.
Subsequent pull requests will update one dependency at a time, each in their own branch. If you want to start with that right away, simply close this PR.
Update astroid from 2.1.0 to 2.4.2.
Changelog
### 2.4.2 ``` ============================ Release Date: TBA * `FunctionDef.is_generator` properly handles `yield` nodes in `While` tests Close PyCQA/pylint3519 * Properly construct the arguments of infered property descriptors Close PyCQA/pylint3648 ``` ### 2.4.1 ``` ============================ Release Date: 2020-05-05 * Handle the case where the raw builder fails to retrieve the ``__all__`` attribute Close 772 * Restructure the AST parsing heuristic to always pick the same module Close PyCQA/pylint3540 Close 773 * Changed setup.py to work with [distlib](https://pypi.org/project/distlib) Close 779 * Do not crash with SyntaxError when parsing namedtuples with invalid label Close PyCQA/pylint3549 * Protect against ``infer_call_result`` failing with `InferenceError` in `Super.getattr()` Close PyCQA/pylint3529 ``` ### 2.4.0 ``` ============================ Release Date: 2020-04-27 * Expose a ast_from_string method in AstroidManager, which will accept source code as a string and return the corresponding astroid object Closes PyCQA/astroid725 * ``BoundMethod.implicit_parameters`` returns a proper value for ``__new__`` Close PyCQA/pylint2335 * Allow slots added dynamically to a class to still be inferred Close PyCQA/pylint2334 * Allow `FunctionDef.getattr` to look into both instance attrs and special attributes Close PyCQA/pylint1078 * Infer qualified ``classmethod`` as a classmethod. Close PyCQA/pylint3417 * Prevent a recursion error to happen when inferring the declared metaclass of a class Close 749 * Raise ``AttributeInferenceError`` when ``getattr()`` receives an empty name Close PyCQA/pylint2991 * Prevent a recursion error for self reference variables and `type()` calls. Close 199 * Do not infer the first argument of a staticmethod in a metaclass as the class itself Close PyCQA/pylint3032 * ``NodeNG.bool_value()`` gained an optional ``context`` parameter We need to pass an inference context downstream when inferring the boolean value of a node in order to prevent recursion errors and double inference. This fix prevents a recursion error with dask library. Close PyCQA/pylint2985 * Pass a context argument to ``astroid.Arguments`` to prevent recursion errors Close PyCQA/pylint3414 * Better inference of class and static methods decorated with custom methods Close PyCQA/pylint3209 * Reverse the order of decorators for `infer_subscript` `path_wrapper` needs to come first, followed by `raise_if_nothing_inferred`, otherwise we won't handle `StopIteration` correctly. Close 762 * Prevent a recursion error when inferring self-referential variables without definition Close PyCQA/pylint1285 * Numpy `datetime64.astype` return value is inferred as a `ndarray`. Close PyCQA/pylint3332 * Skip non ``Assign`` and ``AnnAssign`` nodes from enum reinterpretation Closes PyCQA/pylint3365 * Numpy ``ndarray`` attributes ``imag`` and ``real`` are now inferred as ``ndarray``. Close PyCQA/pylint3322 * Added a call to ``register_transform`` for all functions of the ``brain_numpy_core_multiarray`` module in case the current node is an instance of ``astroid.Name`` Close 666 * Use the parent of the node when inferring aug assign nodes instead of the statement Close PyCQA/pylint2911 Close PyCQA/pylint3214 * Added some functions to the ``brain_numpy_core_umath`` module Close PyCQA/pylint3319 * Added some functions of the ``numpy.core.multiarray`` module Close PyCQA/pylint3208 * All the ``numpy ufunc`` functions derived now from a common class that implements the specific ``reduce``, ``accumulate``, ``reduceat``, ``outer`` and ``at`` methods. Close PyCQA/pylint2885 * ``nodes.Const.itered`` returns a list of ``Const`` nodes, not strings Close PyCQA/pylint3306 * The ``shape`` attribute of a ``numpy ndarray`` is now a ``ndarray`` Close PyCQA/pylint3139 * Don't ignore special methods when inspecting gi classes Close 728 * Added transform for ``scipy.gaussian`` * Add suport for inferring properties. * Added a brain for ``responses`` * Allow inferring positional only arguments. * Retry parsing a module that has invalid type comments It is possible for a module to use comments that might be interpreted as type comments by the `ast` library. We do not want to completely crash on those invalid type comments. Close 708 * Scope the inference to the current bound node when inferring instances of classes When inferring instances of classes from arguments, such as ``self`` in a bound method, we could use as a hint the context's ``boundnode``, which indicates the instance from which the inference originated. As an example, a subclass that uses a parent's method which returns ``self``, will override the ``self`` to point to it instead of pointing to the parent class. Close PyCQA/pylint3157 * Add support for inferring exception instances in all contexts We were able to infer exception instances as ``ExceptionInstance`` only for a handful of cases, but not all. ``ExceptionInstance`` has support for better inference of `.args` and other exception related attributes that normal instances do not have. This additional support should remove certain false positives related to ``.args`` and other exception attributes in ``pylint``. Close PyCQA/pylint2333 * Add more supported parameters to ``subprocess.check_output`` Close 722 * Infer args unpacking of ``self`` Certain stdlib modules use ``*args`` to encapsulate the ``self`` parameter, which results in uninferable instances given we rely on the presence of the ``self`` argument to figure out the instance where we should be setting attributes. Close PyCQA/pylint3216 * Clean up setup.py Make pytest-runner a requirement only if running tests, similar to what was done with McCabe. Clean up the setup.py file, resolving a handful of minor warnings with it. * Handle StopIteration error in infer_int. Close PyCQA/pylint3274 * Can access per argument type comments for positional only and keyword only arguments. The comments are accessed through through the new ``Arguments.type_comment_posonlyargs`` and ``Arguments.type_comment_kwonlyargs`` attributes respectively. * Relax upper bound on `wrapt` Close 755 * Properly analyze CFFI compiled extensions. ``` ### 2.3.2 ``` ============================ Release Date: TBA * All type comments have as parent the corresponding `astroid` node Until now they had as parent the builtin `ast` node which meant we were operating with primitive objects instead of our own. Close PyCQA/pylint3174 * Pass an inference context to `metaclass()` when inferring an object type This should prevent a bunch of recursion errors happening in pylint. Also refactor the inference of `IfExp` nodes to use separate contexts for each potential branch. Close PyCQA/pylint3152 Close PyCQA/pylint3159 ``` ### 2.3.1 ``` ============================ Release Date: 2019-09-30 * A transform for the builtin `dataclasses` module was added. This should address various `dataclasses` issues that were surfaced even more after the release of pylint 2.4.0. In the previous versions of `astroid`, annotated assign nodes were allowed to be retrieved via `getattr()` but that no longer happens with the latest `astroid` release, as those attribute are not actual attributes, but rather virtual ones, thus an operation such as `getattr()` does not make sense for them. * Update attr brain to partly understand annotated attributes Close 656 ``` ### 2.3.0 ``` ============================ Release Date: 2019-09-24 * Add a brain tip for ``subprocess.check_output`` Close 689 * Remove NodeNG.nearest method because of lack of usage in astroid and pylint. Close 691 * Allow importing wheel files. Close 541 * Annotated AST follows PEP8 coding style when converted to string. * Fix a bug where defining a class using type() could cause a DuplicateBasesError. Close 644 * Dropped support for Python 3.4. * Numpy brain support is improved. Numpy's fundamental type ``numpy.ndarray`` has its own brain : ``brain_numpy_ndarray`` and each numpy module that necessitates brain action has now its own numpy brain : - ``numpy.core.numeric`` - ``numpy.core.function_base`` - ``numpy.core.multiarray`` - ``numpy.core.numeric`` - ``numpy.core.numerictypes`` - ``numpy.core.umath`` - ``numpy.random.mtrand`` Close PyCQA/pylint2865 Close PyCQA/pylint2747 Close PyCQA/pylint2721 Close PyCQA/pylint2326 Close PyCQA/pylint2021 * ``assert`` only functions are properly inferred as returning ``None`` Close 668 * Add support for Python 3.8's `NamedExpr` nodes, which is part of assignment expressions. Close 674 * Added support for inferring `IfExp` nodes. * Instances of exceptions are inferred as such when inferring in non-exception context This allows special inference support for exception attributes such as `.args`. Close PyCQA/pylint2333 * Drop a superfluous and wrong callcontext when inferring the result of a context manager Close PyCQA/pylint2859 * ``igetattr`` raises ``InferenceError`` on re-inference of the same object This prevents ``StopIteration`` from leaking when we encounter the same object in the current context, which could result in various ``RuntimeErrors`` leaking in other parts of the inference. Until we get a global context per inference, the solution is sort of a hack, as with the suggested global context improvement, we could theoretically reuse the same inference object. Close 663 * Variable annotations can no longer be retrieved with `ClassDef.getattr` Unless they have an attached value, class variable annotations can no longer be retrieved with `ClassDef.getattr.` * Improved builtin inference for ``tuple``, ``set``, ``frozenset``, ``list`` and ``dict`` We were properly inferring these callables *only* if they had consts as values, but that is not the case most of the time. Instead we try to infer the values that their arguments can be and use them instead of assuming Const nodes all the time. Close PyCQA/pylint2841 * The last except handler wins when inferring variables bound in an except handler. Close PyCQA/pylint2777 * ``threading.Lock.locked()`` is properly recognized as a member of ``threading.Lock`` Close PyCQA/pylint2791 * Fix recursion error involving ``len`` and self referential attributes Close PyCQA/pylint2736 Close PyCQA/pylint2734 Close PyCQA/pylint2740 * Can access per argument type comments through new ``Arguments.type_comment_args`` attribute. Close 665 * Fix being unable to access class attributes on a NamedTuple. Close PyCQA/pylint1628 * Fixed being unable to find distutils submodules by name when in a virtualenv. Close PyCQA/pylint73 ``` ### 2.2.0 ``` ============================ Release Date: 2019-02-27 * Fix a bug concerning inference of calls to numpy function that should not return Tuple or List instances. Close PyCQA/pylint2436 * Fix a bug where a method, which is a lambda built from a function, is not inferred as ``BoundMethod`` Close PyCQA/pylint2594 * ``typed_ast`` gets installed for Python 3.7, meaning type comments can now work on 3.7. * Fix a bug concerning inference of unary operators on numpy types. Close PyCQA/pylint2436 (first part) * Fix a crash with ``typing.NamedTuple`` and empty fields. Close PyCQA/pylint2745 * Add a proper ``strerror`` inference to the ``OSError`` exceptions. Close PyCQA/pylint2553 * Support non-const nodes as values of Enum attributes. Close 612 * Fix a crash in the ``enum`` brain tip caused by non-assign members in class definitions. Close PyCQA/pylint2719 * ``brain_numpy`` returns an undefined type for ``numpy`` methods to avoid ``assignment-from-no-return`` Close PyCQA/pylint2694 * Fix a bug where a call to a function that has been previously called via functools.partial was wrongly inferred Close PyCQA/pylint2588 * Fix a recursion error caused by inferring the ``slice`` builtin. Close PyCQA/pylint2667 * Remove the restriction that "old style classes" cannot have a MRO. This does not make sense any longer given that we run against Python 3 code. Close PyCQA/pylint2701 * Added more builtin exceptions attributes. Close 580 * Add a registry for builtin exception models. Close PyCQA/pylint1432 * Add brain tips for `http.client`. Close PyCQA/pylint2687 * Prevent crashing when processing ``enums`` with mixed single and double quotes. Close PyCQA/pylint2676 * ``typing`` types have the `__args__` property. Close PyCQA/pylint2419 * Fix a bug where an Attribute used as a base class was triggering a crash Close 626 * Added special support for `enum.IntFlag` Close PyCQA/pylint2534 * Extend detection of data classes defined with attr Close 628 * Fix typo in description for brain_attrs ```Links
- PyPI: https://pypi.org/project/astroid - Changelog: https://pyup.io/changelogs/astroid/ - Repo: https://github.com/PyCQA/astroidUpdate atomicwrites from 1.2.1 to 1.4.0.
The bot wasn't able to find a changelog for this release. Got an idea?
Links
- PyPI: https://pypi.org/project/atomicwrites - Repo: https://github.com/untitaker/python-atomicwritesUpdate attrs from 18.2.0 to 19.3.0.
Changelog
### 19.3.0 ``` ------------------- Changes ^^^^^^^ - Fixed ``auto_attribs`` usage when default values cannot be compared directly with ``==``, such as ``numpy`` arrays. `585 <https://github.com/python-attrs/attrs/issues/585>`_ ---- ``` ### 19.2.0 ``` ------------------- Backward-incompatible Changes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Removed deprecated ``Attribute`` attribute ``convert`` per scheduled removal on 2019/1. This planned deprecation is tracked in issue `307 <https://github.com/python-attrs/attrs/issues/307>`_. `504 <https://github.com/python-attrs/attrs/issues/504>`_ - ``__lt__``, ``__le__``, ``__gt__``, and ``__ge__`` do not consider subclasses comparable anymore. This has been deprecated since 18.2.0 and was raising a ``DeprecationWarning`` for over a year. `570 <https://github.com/python-attrs/attrs/issues/570>`_ Deprecations ^^^^^^^^^^^^ - The ``cmp`` argument to ``attr.s()`` and ``attr.ib()`` is now deprecated. Please use ``eq`` to add equality methods (``__eq__`` and ``__ne__``) and ``order`` to add ordering methods (``__lt__``, ``__le__``, ``__gt__``, and ``__ge__``) instead – just like with `dataclasses <https://docs.python.org/3/library/dataclasses.html>`_. Both are effectively ``True`` by default but it's enough to set ``eq=False`` to disable both at once. Passing ``eq=False, order=True`` explicitly will raise a ``ValueError`` though. Since this is arguably a deeper backward-compatibility break, it will have an extended deprecation period until 2021-06-01. After that day, the ``cmp`` argument will be removed. ``attr.Attribute`` also isn't orderable anymore. `574 <https://github.com/python-attrs/attrs/issues/574>`_ Changes ^^^^^^^ - Updated ``attr.validators.__all__`` to include new validators added in `425`_. `517 <https://github.com/python-attrs/attrs/issues/517>`_ - Slotted classes now use a pure Python mechanism to rewrite the ``__class__`` cell when rebuilding the class, so ``super()`` works even on environments where ``ctypes`` is not installed. `522 <https://github.com/python-attrs/attrs/issues/522>`_ - When collecting attributes using ``attr.s(auto_attribs=True)``, attributes with a default of ``None`` are now deleted too. `523 <https://github.com/python-attrs/attrs/issues/523>`_, `556 <https://github.com/python-attrs/attrs/issues/556>`_ - Fixed ``attr.validators.deep_iterable()`` and ``attr.validators.deep_mapping()`` type stubs. `533 <https://github.com/python-attrs/attrs/issues/533>`_ - ``attr.validators.is_callable()`` validator now raises an exception ``attr.exceptions.NotCallableError``, a subclass of ``TypeError``, informing the received value. `536 <https://github.com/python-attrs/attrs/issues/536>`_ - ``attr.s(auto_exc=True)`` now generates classes that are hashable by ID, as the documentation always claimed it would. `543 <https://github.com/python-attrs/attrs/issues/543>`_, `563 <https://github.com/python-attrs/attrs/issues/563>`_ - Added ``attr.validators.matches_re()`` that checks string attributes whether they match a regular expression. `552 <https://github.com/python-attrs/attrs/issues/552>`_ - Keyword-only attributes (``kw_only=True``) and attributes that are excluded from the ``attrs``'s ``__init__`` (``init=False``) now can appear before mandatory attributes. `559 <https://github.com/python-attrs/attrs/issues/559>`_ - The fake filename for generated methods is now more stable. It won't change when you restart the process. `560 <https://github.com/python-attrs/attrs/issues/560>`_ - The value passed to ``attr.ib(repr=…)`` can now be either a boolean (as before) or a callable. That callable must return a string and is then used for formatting the attribute by the generated ``__repr__()`` method. `568 <https://github.com/python-attrs/attrs/issues/568>`_ - Added ``attr.__version_info__`` that can be used to reliably check the version of ``attrs`` and write forward- and backward-compatible code. Please check out the `section on deprecated APIs <http://www.attrs.org/en/stable/api.htmldeprecated-apis>`_ on how to use it. `580 <https://github.com/python-attrs/attrs/issues/580>`_ .. _`425`: https://github.com/python-attrs/attrs/issues/425 ---- ``` ### 19.1.0 ``` ------------------- Backward-incompatible Changes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed a bug where deserialized objects with ``cache_hash=True`` could have incorrect hash code values. This change breaks classes with ``cache_hash=True`` when a custom ``__setstate__`` is present. An exception will be thrown when applying the ``attrs`` annotation to such a class. This limitation is tracked in issue `494 <https://github.com/python-attrs/attrs/issues/494>`_. `482 <https://github.com/python-attrs/attrs/issues/482>`_ Changes ^^^^^^^ - Add ``is_callable``, ``deep_iterable``, and ``deep_mapping`` validators. * ``is_callable``: validates that a value is callable * ``deep_iterable``: Allows recursion down into an iterable, applying another validator to every member in the iterable as well as applying an optional validator to the iterable itself. * ``deep_mapping``: Allows recursion down into the items in a mapping object, applying a key validator and a value validator to the key and value in every item. Also applies an optional validator to the mapping object itself. You can find them in the ``attr.validators`` package. `425`_ - Fixed stub files to prevent errors raised by mypy's ``disallow_any_generics = True`` option. `443 <https://github.com/python-attrs/attrs/issues/443>`_ - Attributes with ``init=False`` now can follow after ``kw_only=True`` attributes. `450 <https://github.com/python-attrs/attrs/issues/450>`_ - ``attrs`` now has first class support for defining exception classes. If you define a class using ``attr.s(auto_exc=True)`` and subclass an exception, the class will behave like a well-behaved exception class including an appropriate ``__str__`` method, and all attributes additionally available in an ``args`` attribute. `500 <https://github.com/python-attrs/attrs/issues/500>`_ - Clarified documentation for hashing to warn that hashable objects should be deeply immutable (in their usage, even if this is not enforced). `503 <https://github.com/python-attrs/attrs/issues/503>`_ ---- ```Links
- PyPI: https://pypi.org/project/attrs - Changelog: https://pyup.io/changelogs/attrs/ - Homepage: https://www.attrs.org/Update bandit from 1.5.1 to 1.6.2.
Changelog
### 1.6.2 ``` <details open> <summary><strong>Changelog</strong></summary> * Performance fix (502) tylerwince </details> [See full changelog](https://github.com/PyCQA/bandit/compare/1.6.1...1.6.2) ``` ### 1.6.1 ``` <details open> <summary><strong>Changelog</strong></summary> * add test for regression and fix directory exclusion without wildcards (489) mattjegan * add namespaces for parent attributes (492) tylerwince </details> [See full changelog](https://github.com/PyCQA/bandit/compare/1.6.0...1.6.1) ``` ### 1.6.0 ``` <details open> <summary><strong>Changelog</strong></summary> * Remove paramiko invoke_shell and fix example (377) ericwb * Fix custom format argument handling (380) evqna * Add release drafter template (382) evqna * Add option -q, --quiet, --silent to hide output (385) ericwb * Password (387) ehooo * Properly handle nosec strings in code (388) ericwb * Fix Pylint warning W0612: use of unused variables (389) ericwb * No need to skip R0204: redefined-variable-type (390) ericwb * Allow failures on dev branch of Python 3.8 (392) ericwb * Fix more info line to be in color also (408) ericwb * Add pre-commit config (411) KPilnacek * Fix B611 doc title (414) paulopontesm * Describe baseline and it's usage in README (415) BillBrower * Remove unneeded trailing paren in link (416) ericwb * Add missing custom formatter doc (406) (421) nixphix * Fix terminal colors not displaying properly on Windows (424) GhostofGoes * Fix sql injection check for f-strings (434) mikespallino * Bump PyYAML minimum version to 3.13 (432) ericwb * Supporting CSafeLoader in yaml.load plugin (436) domanchi * Add a readthedocs build status badge (440) lukehinds * Fix DeprecationWarning: invalid escape sequence (441) BoboTiG * Fix ResourceWarning: unclosed file (442) BoboTiG * check if ast.JoinedStr exists before using it (446) calvinli * Fix context class (449) ehooo * Interpret wildcards in the file exclusion list (450) thilp * Fix typo in README (451) bitcoinhodler * Redo logo on the README (463) ericwb * Remove pycryptodome blacklist (470) mikespallino * updated readme links for werkzeug debugger (473) soumitr-snowflake </details> [See full changelog](https://github.com/PyCQA/bandit/compare/1.5.1...1.6.0) ```Links
- PyPI: https://pypi.org/project/bandit - Changelog: https://pyup.io/changelogs/bandit/ - Docs: https://bandit.readthedocs.io/en/latest/Update bleach from 3.0.2 to 3.1.5.
Changelog
### 3.1.5 ``` -------------------------------- **Security fixes** None **Features** None **Bug fixes** * replace missing ``setuptools`` dependency with ``packaging``. Thank you Benjamin Peterson. ``` ### 3.1.4 ``` -------------------------------- **Security fixes** * ``bleach.clean`` behavior parsing style attributes could result in a regular expression denial of service (ReDoS). Calls to ``bleach.clean`` with an allowed tag with an allowed ``style`` attribute were vulnerable to ReDoS. For example, ``bleach.clean(..., attributes={'a': ['style']})``. This issue was confirmed in Bleach versions v3.1.3, v3.1.2, v3.1.1, v3.1.0, v3.0.0, v2.1.4, and v2.1.3. Earlier versions used a similar regular expression and should be considered vulnerable too. Anyone using Bleach <=v3.1.3 is encouraged to upgrade. https://bugzilla.mozilla.org/show_bug.cgi?id=1623633 **Backwards incompatible changes** * Style attributes with dashes, or single or double quoted values are cleaned instead of passed through. **Features** None **Bug fixes** None ``` ### 3.1.3 ``` -------------------------------- **Security fixes** None **Backwards incompatible changes** None **Features** * Add relative link to code of conduct. (442) * Drop deprecated 'setup.py test' support. (507) * Fix typo: curren -> current in tests/test_clean.py (504) * Test on PyPy 7 * Drop test support for end of life Python 3.4 **Bug fixes** None ``` ### 3.1.2 ``` -------------------------------- **Security fixes** * ``bleach.clean`` behavior parsing embedded MathML and SVG content with RCDATA tags did not match browser behavior and could result in a mutation XSS. Calls to ``bleach.clean`` with ``strip=False`` and ``math`` or ``svg`` tags and one or more of the RCDATA tags ``script``, ``noscript``, ``style``, ``noframes``, ``iframe``, ``noembed``, or ``xmp`` in the allowed tags whitelist were vulnerable to a mutation XSS. This security issue was confirmed in Bleach version v3.1.1. Earlier versions are likely affected too. Anyone using Bleach <=v3.1.1 is encouraged to upgrade. https://bugzilla.mozilla.org/show_bug.cgi?id=1621692 **Backwards incompatible changes** None **Features** None **Bug fixes** None ``` ### 3.1.1 ``` ----------------------------------- **Security fixes** * ``bleach.clean`` behavior parsing ``noscript`` tags did not match browser behavior. Calls to ``bleach.clean`` allowing ``noscript`` and one or more of the raw text tags (``title``, ``textarea``, ``script``, ``style``, ``noembed``, ``noframes``, ``iframe``, and ``xmp``) were vulnerable to a mutation XSS. This security issue was confirmed in Bleach versions v2.1.4, v3.0.2, and v3.1.0. Earlier versions are probably affected too. Anyone using Bleach <=v3.1.0 is highly encouraged to upgrade. https://bugzilla.mozilla.org/show_bug.cgi?id=1615315 **Backwards incompatible changes** None **Features** None **Bug fixes** None Bleach changes ============== ``` ### 3.1.0 ``` --------------------------------- **Security fixes** None **Backwards incompatible changes** None **Features** * Add ``recognized_tags`` argument to the linkify ``Linker`` class. This fixes issues when linkifying on its own and having some tags get escaped. It defaults to a list of HTML5 tags. Thank you, Chad Birch! (409) **Bug fixes** * Add ``six>=1.9`` to requirements. Thank you, Dave Shawley (416) * Fix cases where attribute names could have invalid characters in them. (419) * Fix problems with ``LinkifyFilter`` not being able to match links across ``&``. (422) * Fix ``InputStreamWithMemory`` when the ``BleachHTMLParser`` is parsing ``meta`` tags. (431) * Fix doctests. (357) ```Links
- PyPI: https://pypi.org/project/bleach - Changelog: https://pyup.io/changelogs/bleach/ - Repo: https://github.com/mozilla/bleach - Docs: https://pythonhosted.org/bleach/Update certifi from 2018.11.29 to 2020.6.20.
The bot wasn't able to find a changelog for this release. Got an idea?
Links
- PyPI: https://pypi.org/project/certifi - Docs: https://certifiio.readthedocs.io/en/latest/Update click from 7.0 to 7.1.2.
Changelog
### 7.1.1 ``` ------------- Released 2020-03-09 - Fix ``ClickException`` output going to stdout instead of stderr. :issue:`1495` ``` ### 7.1 ``` ----------- Released 2020-03-09 - Fix PyPI package name, "click" is lowercase again. - Fix link in ``unicode_literals`` error message. :pr:`1151` - Add support for colored output on UNIX Jupyter notebooks. :issue:`1185` - Operations that strip ANSI controls will strip the cursor hide/show sequences. :issue:`1216` - Remove unused compat shim for ``bytes``. :pr:`1195` - Expand testing around termui, especially getchar on Windows. :issue:`1116` - Fix output on Windows Python 2.7 built with MSVC 14. :pr:`1342` - Fix ``OSError`` when running in MSYS2. :issue:`1338` - Fix ``OSError`` when redirecting to ``NUL`` stream on Windows. :issue:`1065` - Fix memory leak when parsing Unicode arguments on Windows. :issue:`1136` - Fix error in new AppEngine environments. :issue:`1462` - Always return one of the passed choices for ``click.Choice`` :issue:`1277`, :pr:`1318` - Add ``no_args_is_help`` option to ``click.Command``, defaults to False :pr:`1167` - Add ``show_defaults`` parameter to ``Context`` to enable showing defaults globally. :issue:`1018` - Handle ``env MYPATH=''`` as though the option were not passed. :issue:`1196` - It is once again possible to call ``next(bar)`` on an active progress bar instance. :issue:`1125` - ``open_file`` with ``atomic=True`` retains permissions of existing files and respects the current umask for new files. :issue:`1376` - When using the test ``CliRunner`` with ``mix_stderr=False``, if ``result.stderr`` is empty it will not raise a ``ValueError``. :issue:`1193` - Remove the unused ``mix_stderr`` parameter from ``CliRunner.invoke``. :issue:`1435` - Fix ``TypeError`` raised when using bool flags and specifying ``type=bool``. :issue:`1287` - Newlines in option help text are replaced with spaces before re-wrapping to avoid uneven line breaks. :issue:`834` - ``MissingParameter`` exceptions are printable in the Python interpreter. :issue:`1139` - Fix how default values for file-type options are shown during prompts. :issue:`914` - Fix environment variable automatic generation for commands containing ``-``. :issue:`1253` - Option help text replaces newlines with spaces when rewrapping, but preserves paragraph breaks, fixing multiline formatting. :issue:`834, 1066, 1397` - Option help text that is wrapped adds an extra newline at the end to distinguish it from the next option. :issue:`1075` - Consider ``sensible-editor`` when determining the editor to use for ``click.edit()``. :pr:`1469` - Arguments to system calls such as the executable path passed to ``click.edit`` can contains spaces. :pr:`1470` - Add ZSH completion autoloading and error handling. :issue:`1348` - Add a repr to ``Command``, ``Group``, ``Option``, and ``Argument``, showing the name for friendlier debugging. :issue:`1267` - Completion doesn't consider option names if a value starts with ``-`` after the ``--`` separator. :issue:`1247` - ZSH completion escapes special characters in values. :pr:`1418` - Add completion support for Fish shell. :pr:`1423` - Decoding bytes option values falls back to UTF-8 in more cases. :pr:`1468` - Make the warning about old 2-arg parameter callbacks a deprecation warning, to be removed in 8.0. This has been a warning since Click 2.0. :pr:`1492` ```Links
- PyPI: https://pypi.org/project/click - Changelog: https://pyup.io/changelogs/click/ - Homepage: https://palletsprojects.com/p/click/Update colorama from 0.4.1 to 0.4.3.
The bot wasn't able to find a changelog for this release. Got an idea?
Links
- PyPI: https://pypi.org/project/colorama - Changelog: https://pyup.io/changelogs/colorama/ - Repo: https://github.com/tartley/coloramaUpdate coverage from 4.5.2 to 5.1.
Changelog
### 5.1 ``` -------------------------- - The JSON report now includes counts of covered and missing branches. Thanks, Salvatore Zagaria. - On Python 3.8, try-finally-return reported wrong branch coverage with decorated async functions (`issue 946`_). This is now fixed. Thanks, Kjell Braden. - The :meth:`~coverage.Coverage.get_option` and :meth:`~coverage.Coverage.set_option` methods can now manipulate the ``[paths]`` configuration setting. Thanks to Bernát Gábor for the fix for `issue 967`_. .. _issue 946: https://github.com/nedbat/coveragepy/issues/946 .. _issue 967: https://github.com/nedbat/coveragepy/issues/967 .. _changes_504: ``` ### 5.0.4 ``` ---------------------------- - If using the ``[run] relative_files`` setting, the XML report will use relative files in the ``<source>`` elements indicating the location of source code. Closes `issue 948`_. - The textual summary report could report missing lines with negative line numbers on PyPy3 7.1 (`issue 943`_). This is now fixed. - Windows wheels for Python 3.8 were incorrectly built, but are now fixed. (`issue 949`_) - Updated Python 3.9 support to 3.9a4. - HTML reports couldn't be sorted if localStorage wasn't available. This is now fixed: sorting works even though the sorting setting isn't retained. (`issue 944`_ and `pull request 945`_). Thanks, Abdeali Kothari. .. _issue 943: https://github.com/nedbat/coveragepy/issues/943 .. _issue 944: https://github.com/nedbat/coveragepy/issues/944 .. _pull request 945: https://github.com/nedbat/coveragepy/pull/945 .. _issue 948: https://github.com/nedbat/coveragepy/issues/948 .. _issue 949: https://github.com/nedbat/coveragepy/issues/949 .. _changes_503: ``` ### 5.0.3 ``` ---------------------------- - A performance improvement in 5.0.2 didn't work for test suites that changed directory before combining data, causing "Couldn't use data file: no such table: meta" errors (`issue 916`_). This is now fixed. - Coverage could fail to run your program with some form of "ModuleNotFound" or "ImportError" trying to import from the current directory. This would happen if coverage had been packaged into a zip file (for example, on Windows), or was found indirectly (for example, by pyenv-virtualenv). A number of different scenarios were described in `issue 862`_ which is now fixed. Huge thanks to Agbonze O. Jeremiah for reporting it, and Alexander Waters and George-Cristian Bîrzan for protracted debugging sessions. - Added the "premain" debug option. - Added SQLite compile-time options to the "debug sys" output. .. _issue 862: https://github.com/nedbat/coveragepy/issues/862 .. _issue 916: https://github.com/nedbat/coveragepy/issues/916 .. _changes_502: ``` ### 5.0.2 ``` ---------------------------- - Programs that used multiprocessing and changed directories would fail under coverage. This is now fixed (`issue 890`_). A side effect is that debug information about the config files read now shows absolute paths to the files. - When running programs as modules (``coverage run -m``) with ``--source``, some measured modules were imported before coverage starts. This resulted in unwanted warnings ("Already imported a file that will be measured") and a reduction in coverage totals (`issue 909`_). This is now fixed. - If no data was collected, an exception about "No data to report" could happen instead of a 0% report being created (`issue 884`_). This is now fixed. - The handling of source files with non-encodable file names has changed. Previously, if a file name could not be encoded as UTF-8, an error occurred, as described in `issue 891`_. Now, those files will not be measured, since their data would not be recordable. - A new warning ("dynamic-conflict") is issued if two mechanisms are trying to change the dynamic context. Closes `issue 901`_. - ``coverage run --debug=sys`` would fail with an AttributeError. This is now fixed (`issue 907`_). .. _issue 884: https://github.com/nedbat/coveragepy/issues/884 .. _issue 890: https://github.com/nedbat/coveragepy/issues/890 .. _issue 891: https://github.com/nedbat/coveragepy/issues/891 .. _issue 901: https://github.com/nedbat/coveragepy/issues/901 .. _issue 907: https://github.com/nedbat/coveragepy/issues/907 .. _issue 909: https://github.com/nedbat/coveragepy/issues/909 .. _changes_501: ``` ### 5.0.1 ``` ---------------------------- - If a 4.x data file is the cause of a "file is not a database" error, then use a more specific error message, "Looks like a coverage 4.x data file, are you mixing versions of coverage?" Helps diagnose the problems described in `issue 886`_. - Measurement contexts and relative file names didn't work together, as reported in `issue 899`_ and `issue 900`_. This is now fixed, thanks to David Szotten. - When using ``coverage run --concurrency=multiprocessing``, all data files should be named with parallel-ready suffixes. 5.0 mistakenly named the main process' file with no suffix when using ``--append``. This is now fixed, closing `issue 880`_. - Fixed a problem on Windows when the current directory is changed to a different drive (`issue 895`_). Thanks, Olivier Grisel. - Updated Python 3.9 support to 3.9a2. .. _issue 880: https://github.com/nedbat/coveragepy/issues/880 .. _issue 886: https://github.com/nedbat/coveragepy/issues/886 .. _issue 895: https://github.com/nedbat/coveragepy/issues/895 .. _issue 899: https://github.com/nedbat/coveragepy/issues/899 .. _issue 900: https://github.com/nedbat/coveragepy/issues/900 .. _changes_50: ``` ### 5.0 ``` -------------------------- Nothing new beyond 5.0b2. .. _changes_50b2: ``` ### 5.0b2 ``` ---------------------------- - An experimental ``[run] relative_files`` setting tells coverage to store relative file names in the data file. This makes it easier to run tests in one (or many) environments, and then report in another. It has not had much real-world testing, so it may change in incompatible ways in the future. - When constructing a :class:`coverage.Coverage` object, `data_file` can be specified as None to prevent writing any data file at all. In previous versions, an explicit `data_file=None` argument would use the default of ".coverage". Fixes `issue 871`_. - Python files run with ``-m`` now have ``__spec__`` defined properly. This fixes `issue 745`_ (about not being able to run unittest tests that spawn subprocesses), and `issue 838`_, which described the problem directly. - The ``[paths]`` configuration section is now ordered. If you specify more than one list of patterns, the first one that matches will be used. Fixes `issue 649`_. - The :func:`.coverage.numbits.register_sqlite_functions` function now also registers `numbits_to_nums` for use in SQLite queries. Thanks, Simon Willison. - Python 3.9a1 is supported. - Coverage.py has a mascot: :ref:`Sleepy Snake <sleepy>`. .. _issue 649: https://github.com/nedbat/coveragepy/issues/649 .. _issue 745: https://github.com/nedbat/coveragepy/issues/745 .. _issue 838: https://github.com/nedbat/coveragepy/issues/838 .. _issue 871: https://github.com/nedbat/coveragepy/issues/871 .. _changes_50b1: ``` ### 5.0b1 ``` ---------------------------- - The HTML and textual reports now have a ``--skip-empty`` option that skips files with no statements, notably ``__init__.py`` files. Thanks, Reya B. - Configuration can now be read from `TOML`_ files. This requires installing coverage.py with the ``[toml]`` extra. The standard "pyproject.toml" file will be read automatically if no other configuration file is found, with settings in the ``[tool.coverage.]`` namespace. Thanks to Frazer McLean for implementation and persistence. Finishes `issue 664`_. - The ``[run] note`` setting has been deprecated. Using it will result in a warning, and the note will not be written to the data file. The corresponding :class:`.CoverageData` methods have been removed. - The HTML report has been reimplemented (no more table around the source code). This allowed for a better presentation of the context information, hopefully resolving `issue 855`_. - Added sqlite3 module version information to ``coverage debug sys`` output. - Asking the HTML report to show contexts (``[html] show_contexts=True`` or ``coverage html --show-contexts``) will issue a warning if there were no contexts measured (`issue 851`_). .. _TOML: https://github.com/toml-lang/tomlreadme .. _issue 664: https://github.com/nedbat/coveragepy/issues/664 .. _issue 851: https://github.com/nedbat/coveragepy/issues/851 .. _issue 855: https://github.com/nedbat/coveragepy/issues/855 .. _changes_50a8: ``` ### 5.0a8 ``` ---------------------------- - The :class:`.CoverageData` API has changed how queries are limited to specific contexts. Now you use :meth:`.CoverageData.set_query_context` to set a single exact-match string, or :meth:`.CoverageData.set_query_contexts` to set a list of regular expressions to match contexts. This changes the command-line ``--contexts`` option to use regular expressions instead of filename-style wildcards. .. _changes_50a7: ``` ### 5.0a7 ``` ---------------------------- - Data can now be "reported" in JSON format, for programmatic use, as requested in `issue 720`_. The new ``coverage json`` command writes raw and summarized data to a JSON file. Thanks, Matt Bachmann. - Dynamic contexts are now supported in the Python tracer, which is important for PyPy users. Closes `issue 846`_. - The compact line number representation introduced in 5.0a6 is called a "numbits." The :mod:`coverage.numbits` module provides functions for working with them. - The reporting methods used to permanently apply their arguments to the configuration of the Coverage object. Now they no longer do. The arguments affect the operation of the method, but do not persist. - A class named "test_something" no longer confuses the ``test_function`` dynamic context setting. Fixes `issue 829`_. - Fixed an unusual tokenizing issue with backslashes in comments. Fixes `issue 822`_. - ``debug=plugin`` didn't properly support configuration or dynamic context plugins, but now it does, closing `issue 834`_. .. _issue 720: https://github.com/nedbat/coveragepy/issues/720 .. _issue 822: https://github.com/nedbat/coveragepy/issues/822 .. _issue 834: https://github.com/nedbat/coveragepy/issues/834 .. _issue 829: https://github.com/nedbat/coveragepy/issues/829 .. _issue 846: https://github.com/nedbat/coveragepy/issues/846 .. _changes_50a6: ``` ### 5.0a6 ``` ---------------------------- - Reporting on contexts. Big thanks to Stephan Richter and Albertas Agejevas for the contribution. - The ``--contexts`` option is available on the ``report`` and ``html`` commands. It's a comma-separated list of shell-style wildcards, selecting the contexts to report on. Only contexts matching one of the wildcards will be included in the report. - The ``--show-contexts`` option for the ``html`` command adds context information to each covered line. Hovering over the "ctx" marker at the end of the line reveals a list of the contexts that covered the line. - Database changes: - Line numbers are now stored in a much more compact way. For each file and context, a single binary string is stored with a bit per line number. This greatly improves memory use, but makes ad-hoc use difficult. - Dynamic contexts with no data are no longer written to the database. - SQLite data storage is now faster. There's no longer a reason to keep the JSON data file code, so it has been removed. - Changes to the :class:`.CoverageData` interface: - The new :meth:`.CoverageData.dumps` method serializes the data to a string, and a corresponding :meth:`.CoverageData.loads` method reconstitutes this data. The format of the data string is subject to change at any time, and so should only be used between two installations of the same version of coverage.py. - The :meth:`CoverageData constructor<.CoverageData.__init__>` has a new argument, `no_disk` (default: False). Setting it to True prevents writing any data to the disk. This is useful for transient data objects. - Added the classmethod :meth:`.Coverage.current` to get the latest started Coverage instance. - Multiprocessing support in Python 3.8 was broken, but is now fixed. Closes `issue 828`_. - Error handling during reporting has changed slightly. All reporting methods now behave the same. The ``--ignore-errors`` option keeps errors from stopping the reporting, but files that couldn't parse as Python will always be reported as warnings. As with other warnings, you can suppress them with the ``[run] disable_warnings`` configuration setting. - Coverage.py no longer fails if the user program deletes its current directory. Fixes `issue 806`_. Thanks, Dan Hemberger. - The scrollbar markers in the HTML report now accurately show the highlighted lines, regardless of what categories of line are highlighted. - The hack to accommodate ShiningPanda_ looking for an obsolete internal data file has been removed, since ShiningPanda 0.22 fixed it four years ago. - The deprecated `Reporter.file_reporters` property has been removed. .. _ShiningPanda: https://wiki.jenkins.io/display/JENKINS/ShiningPanda+Plugin .. _issue 806: https://github.com/nedbat/coveragepy/pull/806 .. _issue 828: https://github.com/nedbat/coveragepy/issues/828 .. _changes_50a5: ``` ### 5.0a5 ``` ---------------------------- - Drop support for Python 3.4 - Dynamic contexts can now be set two new ways, both thanks to Justas Sadzevičius. - A plugin can implement a ``dynamic_context`` method to check frames for whether a new context should be started. See :ref:`dynamic_context_plugins` for more details. - Another tool (such as a test runner) can use the new :meth:`.Coverage.switch_context` method to explicitly change the context. - The ``dynamic_context = test_function`` setting now works with Python 2 old-style classes, though it only reports the method name, not the class it was defined on. Closes `issue 797`_. - ``fail_under`` values more than 100 are reported as errors. Thanks to Mike Fiedler for closing `issue 746`_. - The "missing" values in the text output are now sorted by line number, so that missing branches are reported near the other lines they affect. The values used to show all missing lines, and then all missing branches. - Access to the SQLite database used for data storage is now thread-safe. Thanks, Stephan Richter. This closes `issue 702`_. - Combining data stored in SQLite is now about twice as fast, fixing `issue 761`_. Thanks, Stephan Richter. - The ``filename`` attribute on :class:`.CoverageData` objects has been made private. You can use the ``data_filename`` method to get the actual file name being used to store data, and the ``base_filename`` method to get the original filename before parallelizing suffixes were added. This is part of fixing `issue 708`_. - Line numbers in the HTML report now align properly with source lines, even when Chrome's minimum font size is set, fixing `issue 748`_. Thanks Wen Ye. .. _issue 702: https://github.com/nedbat/coveragepy/issues/702 .. _issue 708: https://github.com/nedbat/coveragepy/issues/708 .. _issue 746: https://github.com/nedbat/coveragepy/issues/746 .. _issue 748: https://github.com/nedbat/coveragepy/issues/748 .. _issue 761: https://github.com/nedbat/coveragepy/issues/761 .. _issue 797: https://github.com/nedbat/coveragepy/issues/797 .. _changes_50a4: ``` ### 5.0a4 ``` ---------------------------- - You can specify the command line to run your program with the ``[run] command_line`` configuration setting, as requested in `issue 695`_. - Coverage will create directories as needed for the data file if they don't exist, closing `issue 721`_. - The ``coverage run`` command has always adjusted the first entry in sys.path, to properly emulate how Python runs your program. Now this adjustment is skipped if sys.path[0] is already different than Python's default. This fixes `issue 715`_. - Improvements to context support: - The "no such table: meta" error is fixed.: `issue 716`_. - Combining data files is now much faster. - Python 3.8 (as of today!) passes all tests. .. _issue 695: https://github.com/nedbat/coveragepy/issues/695 .. _issue 715: https://github.com/nedbat/coveragepy/issues/715 .. _issue 716: https://github.com/nedbat/coveragepy/issues/716 .. _issue 721: https://github.com/nedbat/coveragepy/issues/721 .. _changes_50a3: ``` ### 5.0a3 ``` ---------------------------- - Context support: static contexts let you specify a label for a coverage run, which is recorded in the data, and retained when you combine files. See :ref:`contexts` for more information. - Dynamic contexts: specifying ``[run] dynamic_context = test_function`` in the config file will record the test function name as a dynamic context during execution. This is the core of "Who Tests What" (`issue 170`_). Things to note: - There is no reporting support yet. Use SQLite to query the .coverage file for information. Ideas are welcome about how reporting could be extended to use this data. - There's a noticeable slow-down before any test is run. - Data files will now be roughly N times larger, where N is the number of tests you have. Combining data files is therefore also N times slower. - No other values for ``dynamic_context`` are recognized yet. Let me know what else would be useful. I'd like to use a pytest plugin to get better information directly from pytest, for example. .. _issue 170: https://github.com/nedbat/coveragepy/issues/170 - Environment variable substitution in configuration files now supports two syntaxes for controlling the behavior of undefined variables: if ``VARNAME`` is not defined, ``${VARNAME?}`` will raise an error, and ``${VARNAME-default value}`` will use "default value". - Partial support for Python 3.8, which has not yet released an alpha. Fixes `issue 707`_ and `issue 714`_. .. _issue 707: https://github.com/nedbat/coveragepy/issues/707 .. _issue 714: https://github.com/nedbat/coveragepy/issues/714 .. _changes_50a2: ``` ### 5.0a2 ``` ---------------------------- - Coverage's data storage has changed. In version 4.x, .coverage files were basically JSON. Now, they are SQLite databases. This means the data file can be created earlier than it used to. A large amount of code was refactored to support this change. - Because the data file is created differently than previous releases, you may need ``parallel=true`` where you didn't before. - The old data format is still available (for now) by setting the environment variable COVERAGE_STORAGE=json. Please tell me if you think you need to keep the JSON format. - The database schema is guaranteed to change in the future, to support new features. I'm looking for opinions about making the schema part of the public API to coverage.py or not. - Development moved from `Bitbucket`_ to `GitHub`_. - HTML files no longer have trailing and extra whitespace. - The sort order in the HTML report is stored in local storage rather than cookies, closing `issue 611`_. Thanks, Federico Bond. - pickle2json, for converting v3 data files to v4 data files, has been removed. .. _Bitbucket: https://bitbucket.org/ned/coveragepy .. _GitHub: https://github.com/nedbat/coveragepy .. _issue 611: https://github.com/nedbat/coveragepy/issues/611 .. _changes_50a1: ``` ### 5.0a1 ``` ---------------------------- - Coverage.py no longer supports Python 2.6 or 3.3. - The location of the configuration file can now be specified with a ``COVERAGE_RCFILE`` environment variable, as requested in `issue 650`_. - Namespace packages are supported on Python 3.7, where they used to cause TypeErrors about path being None. Fixes `issue 700`_. - A new warning (``already-imported``) is issued if measurable files have already been imported before coverage.py started measurement. See :ref:`cmd_warnings` for more information. - Running coverage many times for small runs in a single process should be faster, closing `issue 625`_. Thanks, David MacIver. - Large HTML report pages load faster. Thanks, Pankaj Pandey. .. _issue 625: https://bitbucket.org/ned/coveragepy/issues/625/lstat-dominates-in-the-case-of-small .. _issue 650: https://bitbucket.org/ned/coveragepy/issues/650/allow-setting-configuration-file-location .. _issue 700: https://github.com/nedbat/coveragepy/issues/700 .. _changes_454: ``` ### 4.5.4 ``` ---------------------------- - Multiprocessing support in Python 3.8 was broken, but is now fixed. Closes `issue 828`_. .. _issue 828: https://github.com/nedbat/coveragepy/issues/828 .. _changes_453: ``` ### 4.5.3 ``` ---------------------------- - Only packaging metadata changes. .. _changes_452: ```Links
- PyPI: https://pypi.org/project/coverage - Changelog: https://pyup.io/changelogs/coverage/ - Repo: https://github.com/nedbat/coveragepyUpdate dataclasses from 0.6 to 0.7.
The bot wasn't able to find a changelog for this release. Got an idea?
Links
- PyPI: https://pypi.org/project/dataclasses - Repo: https://github.com/ericvsmith/dataclassesUpdate docutils from 0.14 to 0.16.
Changelog
### 0.16 ``` ========================= .. Note:: Docutils 0.15.x is the last version supporting Python 2.6, 3.3 and 3.4. Docutils 0.16.x supports Python 2.7 and Python >= 3.5 natively, without the use of the ``2to3`` tool. * reStructuredText: - Keep `backslash escapes`__ in the document tree. This allows, e.g., escaping of author-separators in `bibliographic fields`__. __ http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.htmlescaping-mechanism __ docs/ref/rst/restructuredtext.htmlbibliographic-fields * LaTeX writer: - Informal titles of type "rubric" default to bold-italic and left aligned. - Deprecate ``\docutilsrole`` prefix for styling commands: use ``\DUrole`` instead. - Fix topic subtitle. - Add "latex writers" to the `config_section_dependencies`. - Ignore classes for `rubric` elements (class wrapper interferes with LaTeX formatting). * tools/buildhtml.py - New option "--html-writer" allows to select "html__" (default), "html4" or "html5". __ html: docs/user/html.htmlhtml * docutils/io.py - Remove the `handle_io_errors` option from io.FileInput/Output. * docutils/nodes.py - If `auto_id_prefix`_ ends with "%", this is replaced with the tag name. .. _auto_id_prefix: docs/user/config.htmlauto-id-prefix * Various bugfixes and improvements (see HISTORY_). ``` ### 0.15 ``` ========================= .. Note:: Docutils 0.14.x is the last version supporting Python 2.4, 2.5, 3.1, and 3.2. Docutils 0.15.x is compatible with Python versions 2.6, 2.7 and 3.3 to 3.5 (cf. `Python 3 compatibility`_). * reStructuredText: - Allow embedded colons in field list field names (before, tokens like ``:this:example:`` were considered ordinary text). - Fixed a bug with the "trim" options of the "unicode" directive. * languages: Added Korean localisation (ko). * Bugfixes (see HISTORY_). ```Links
- PyPI: https://pypi.org/project/docutils - Changelog: https://pyup.io/changelogs/docutils/ - Homepage: http://docutils.sourceforge.net/Update dparse from 0.4.1 to 0.5.1.
Changelog
### 0.5.1 ``` ------------------ * Fixed package metadata removing 2.7 support * Install pipenv only when asked for with extras ``` ### 0.5.0 ``` ------------------ A bug with this package allows it to be installed on Python 2.7 environments, even though it should not work on such version. You should stick with version 0.4.1 version instead for Python 2.7 support. * Dropped Python 2.7, 3.3, 3.4 support * Removed six package * Removed pinned dependencies of tests * Dropped setup.py tests support in favor of tox ```Links
- PyPI: https://pypi.org/project/dparse - Changelog: https://pyup.io/changelogs/dparse/ - Repo: https://github.com/pyupio/dparseUpdate execnet from 1.5.0 to 1.7.1.
The bot wasn't able to find a changelog for this release. Got an idea?
Links
- PyPI: https://pypi.org/project/execnet - Docs: https://execnet.readthedocs.io/en/latest/Update faker from 1.0.1 to 4.1.1.
Changelog
### 4.1.1 ``` ---------------------------------------------------------------------------------- * Add ``date_time`` providers for ``cs_CZ``, ``de_AT``, ``es_ES``, ``it_IT``, ``sk_SK``, ``tr_TR``. Thanks eumiro. * Add prefix support to BarcodeProvider. Thanks yu-ichiro. * Fix company format for ``hy_AM`` provider. Thanks mdantonio. * Add .uk email providers and TLDs for ``en_GB``. Thanks craiga. * Add ``language_name`` generator. Thanks ikhomutov and mondeja. * Add ``pytimezone`` generator returning ``tzinfo`` objects. Thanks OJFord. * Add ``es_ES`` currency provider. Thanks mondeja. ``` ### 4.1.0 ``` --------------------------------------------------------------------------------- * Add ``pytest`` plugin. Thanks malefice. * Fix phone numbers for ``es_ES``. Thanks pablofm. * Fix ``uuid`` provider to return a ``uuid4`` object when ``cast_to`` is set to ``None``. Thanks rodrigondec. * Update names for ``es_ES`` person provider. Thanks mondeja. * Add provider for ``sk_SK`` ``birth_number``. Thanks eumiro. * Add ``day_of_week`` and ``month_name`` for ``de_DE`` provider. Thanks eumiro. ``` ### 4.0.3 ``` ----------------------------------------------------------------------------------- * Fixed ``MSISDN`` for ``pt_BR`` to return only mobile numbers. Thanks rodrigondec. * Added Domain Generator Algorithm by date. Thanks pishchalnikov. * Fixed issue where ``pydict`` provider was not returning the correct number of elements. Thanks mstellon. * Added support for Indian Aadhaar numbers. Thanks curiousElf. * Added ``company_vat`` for ``it_IT``. Thanks alitaker. * Improved autodocumentation of providers. Thanks malefice. * Added provider for ``es_ES`` license plates. Thanks mondeja. * Implemented ``__dir__`` method to Faker proxy for better autocompletion. Thanks douglasfarinelli. * Uppercased HEX colors for all localized color providers. Thanks mondeja. * Added bank provider for ``es_ES`` locale. Thanks mondeja. * Added support for UK counties. Thanks neilav. * Added color provider for ``no_NO`` license plates. Thanks bjorskog. * Made ``value_types`` a keyword argument in ``python`` provider. Thanks slafs. ``` ### 4.0.2 ``` ----------------------------------------------------------------------------------- * Add more data for ``ko_KR`` address provider. Thanks alstn2468. * Improved ``pt_PT`` locale for address and bank. Thanks mustakarhu. * Add ``port_number`` method to internet provider. Thanks pishchalnikov. * Add color provider for ``fa_IR`` locale. Thanks abtinmo. * Add formatting options for ``pt_BR`` postcodes. Thanks perssonsimon1 and klaraesr. * Add ``country_calling_code`` to ``phone_number`` provider. Thanks perssonsimon1. * Fix leap year issue. Thanks mmcmahon. * Add ``AutomotiveProvider`` for ``fr_FR`` locale. Thanks clarissedescamps and perssonsimon1. * Fix ``cellphone_formats`` in ``pt_BR`` ``PhoneNumberProvider``. Thanks rodrigondec. ``` ### 4.0.1 ``` -------------------------------------------------------------------------------------- * Provider improvements for Russian locale: * added city suffixes, regions and country list * regions converted into states for now * street address formats and states expanded * lists for street titles changed * Fixed errors in Automotive Provider * Fixed errors in Address Provider * Bank Provider expanded: * BIC added) * Added list of banks * Improved Company Provider * Credit Card and Person Provider improvements * Currency Provider improvements * Date-Time Provider improvements * translit fix Thanks valestel. * Add Birth Number to czech locale. Thanks Jengah. * Add persons provider for ``fr_QC``. Thanks Lionesk. ``` ### 4.0.0 ``` ------------------------------------------------------------------------------------- * Breaking change: Remove support for end-of-life Python 2.7. ``` ### 3.0.1 ``` ------------------------------------------------------------------------------------- **NOTE**: This is the last release to support Python 2.7.x. * Add provider methods ``zip`` and ``tar`` for generating zip and tar files. Thanks malefice. * Add ``en-CA`` ``postcode_in_province()`` method. Thanks oeuftete. * Update Address and Automotive provider for Russian locale. Thanks valestel. * Add provider methods for dsv files: ``csv``, ``tsv``, ``psv`` and generic ``dsv``. Thanks malefice. * Remove parenthesis from city name in ``de_DE`` ``address`` provider. Thanks jerr0328. * Add ``NIP`` generator in ``pl_PL``. Thanks IlfirinPL. * Fix ``Faker.random_number`` intermittent exceptions. Thanks Jengah. ``` ### 3.0.0 ``` -------------------------------------------------------------------------------------- * Breaking change: Add support for multiple locale data generation. Thanks malefice. ``` ### 2.0.5 ``` -------------------------------------------------------------------------------------- * Add Iranian credit card. Thanks abtinmo. * Improve color provider. Thanks malefice. * Add counties (concelhos) for locale ``pt_PT``. Thanks tng10. * Change NY zipcode range. Thanks arielkaluzhny. * Fix pyfloat out of min/max range. Thanks bryan-brancotte. ``` ### 2.0.4 ``` -------------------------------------------------------------------------------------- * Drop python 3.4. * Fix master card number generator. Thanks nkthanh98. * Add provider for Finnish IBAN numbers. Thanks sitomani. * Add color in Thai language. Thanks mesodiar. * Split first names into male/female for ``person/de_AT``. Thanks Jayday. * Extend data for ``de_AT`` and ``it_IT`` person providers. Thanks Jayday. * Add ``ta_IN`` support. Thanks jcopps. * Add ``*_PH`` locales. Thanks malefice. * Add Thai lorem. Thanks mesodiar. * Add job in ``ja_JP``. Thanks shmokmt. * Optimize IPv4 address generation. Thanks malefice. * Increase bban_format length for ``en_GB``. Thanks Necrathex. * Fix occasional errors in ISBN provider. Thanks malefice. * Add more phone numbers to ``fa_IR`` locale. Thanks abtinmo. * Add support for token-based string generation. Thanks malefice. * Improve barcode provider. Than