Skip to content

Update netaddr to 1.1.0 #139

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

pyup-bot
Copy link
Collaborator

This PR updates netaddr from 0.8.0 to 1.1.0.

Changelog

1.1.0

--------------

Date: 2024-02-15

Added:

* Add the required Python version to the package metadata (GH :issue:`365`).
* Add :func:`expand_partial_ipv4_address` to the public API.

Fixed:

* Fix ``IPNetwork(...) in IPRange(...)`` false negatives (GH :issue:`157`).
* Fix a few :class:`IPNetwork` slicing edge cases (GH :issue:`214`).
* Fix support for partial IP addresses accidentally left in :class:`IPNetwork` in 1.0.0.

When I removed the ``implicit_prefix`` switch I missed the fact that there was some
partial IPv4 address expansion triggered unconditionally.

If you need the old behavior use :func:`expand_partial_ipv4_address`.

Related GH issue: :issue:`110`.
* Fixed an incorrect license classifier in the package metadata.

--------------

1.0.0

--------------

Date: 2024-02-10

Removed:

* Drop support for Python versions lower than 3.7.
* Remove the flag shorthands: ``N``, ``P`` and ``Z``. Use :data:`NOHOST`, :data:`INET_PTON`
and :data:`ZEROFILL` instead.
* Remove abbreviated CIDR format support in :class:`IPNetwork` (``implicit_prefix=True``),
use :func:`cidr_abbrev_to_verbose` if you need this behavior.
* Remove the ``IPAddress.is_private`` method.

There are more precise replacements for subset of the addresses that used to handled by ``is_private``:

* :meth:`IPAddress.is_link_local`
* :meth:`IPAddress.is_ipv4_private_use`
* :meth:`IPAddress.is_ipv6_unique_local`
* :meth:`IPAddress.is_global`

The following address blocks used to be handled by ``is_private`` have no dedicated
convenience methods and you'll have to handle them manually or request a method
addition:

* ``100.64.0.0/10`` – Shared Address Space
* ``192.0.0.0/24`` – IETF Protocol Assignments (watch out – there are exceptions in there)
* ``198.18.0.0/15`` – Benchmarking
* ``239.0.0.0``-``239.255.255.255`` – ``240.0.0.0/4`` is Reserved, ``239.0.0.0/8`` – unclear

Changed:

* Stop accepting leading zeros when parsing IPv4 addresses in :data:`INET_PTON` mode
(it's been allowed on some platforms).

If you need to allow and discard leading zeros use the :data:`ZEROFILL` flag.

This change will affect implicit conversions from ``str`` in all relevant contexts. If you need
to control the IPv4 parsing mode construct :class:`IPAddress` objects explicitly.
* Stop parsing IPv4 addresses permissively (``inet_aton()``-like) by default.

:data:`INET_PTON` is the default mode.

If you need to be permissive and parse using ``inet_aton()`` semantics use the
:data:`INET_ATON` flag.

This change will affect implicit conversions from ``str`` in all relevant contexts. If you
need to control the IPv4 parsing mode construct :class:`IPAddress` objects explicitly.
* Apply the two changes above to :func:`valid_ipv4` as well.
* Update the address databases to the 2024-02-10 versions.

Fixed:

* Return ``False`` instead of raising :exc:`AddrFormatError` when an empty string is passed
to :func:`valid_ipv4` or :func:`valid_ipv6`.
* Fix handling of ``dialect`` provided to :class:`EUI` during copy-construction.

---------------

0.10.1

---------------

Date: 2024-01-02

Fixed:

* Get rid of some warnings

Deprecated:

* Deprecate the flag shorthands: ``N``, ``P`` and ``Z``. Use :data:`NOHOST`, :data:`INET_PTON`
and :data:`ZEROFILL` instead.
* Deprecate importing objects from ``netaddr`` subpackages. Only importing things from the
top-level ``netaddr`` namespace is supported, everything else is considered private.

This has already been the case but we can use a reminder.
* Deprecate permissive-by-default IPv4 parsing in :func:`valid_ipv4`. The ``inet_pton()``
semantics (with leading zeros always disallowed) will become the default. Use :data:`INET_ATON`
and/or :data:`ZEROFILL` flags if you need the legacy behavior.

---------------

0.10.0

---------------

Date: 2023-12-31

Added:

* Add an :data:`INET_ATON` flag to explicitly request ``inet_aton()`` IPv4 parsing semantics
from :class:`IPAddress`.
* Add an :meth:`IPAddress.is_ipv4_private_use` convenience method.
* Add an :meth:`IPAddress.is_global` convenience method to allow determining if an address is
considered globally reachable.
* Add an :meth:`IPAddress.is_ipv6_unique_local` convenience method.

Fixed:

* Improve Python 3.13 compatibility, thank you John Eckersberg.

Deprecated:

* Deprecate Python 3.7 support.
* Deprecate abbreviated CIDR format support in :class:`IPNetwork`
(``implicit_prefix=True``).
* Deprecate accepting leading zeros when parsing IPv4 addresses in :data:`INET_PTON` mode
(it's been allowed on some platforms).

If you need to allow and discard leading zeros use the :data:`ZEROFILL` flag.

This change will affect implicit conversions from ``str`` in all relevant contexts. If you need
to control the IPv4 parsing mode construct :class:`IPAddress` objects explicitly.
* Deprecate parsing IPv4 addresses permissively (``inet_aton()``-like) by default.

:data:`INET_PTON` will become the default mode.

If you need to be permissive and parse using ``inet_aton()`` semantics use the
:data:`INET_ATON` flag.

This change will affect implicit conversions from ``str`` in all relevant contexts. If you need
to control the IPv4 parsing mode construct :class:`IPAddress` objects explicitly.
* Deprecate the ``IPAddress.is_private`` method. Migration instructions in the
documentation.

Other:

* Raise an exception if invalid flags are passed to ``IPAddress``, ``IPNetwork`` or ``IPRange``.
* Improve the documentation substantially.
* Update the DB files to the latest versions (2023-12-23).

--------------

0.9.0

--------------

Date: 2023-09-18

Added:

* Add hash capabilities to OUI (225, amitmi704)

Fixed:

* **Backwards incompatible:** Handle RFC 6164 IPv6 addresses (don't reserve first IP
address in point-to-point subnets) ($267, Damien Claisse)
* **Technically backwards incompatible:** Fix for is_loopback behaviour – consider
``IPNetwork('::1/128')`` to be loopback (222, 223, niels)
* Include tutorials in source distributions (215, Louis Sautier)
* Fix a documentation typo (242, Wouter)
* Fix print syntax in the documentation to be Python 3 compatible (221, François Magimel)
* Fix the Sphinx syntax in the documentation (220, François Magimel)

Other:

* Update the databases (266, Jakub Stasiak)
* Deprecate Python 3.6 (263, Jakub Stasiak)
* Eliminate unnecessary evals (228, KOLANICH)

--------------
Links

@pyup-bot pyup-bot mentioned this pull request Feb 14, 2024
@pyup-bot
Copy link
Collaborator Author

Closing this in favor of #140

@pyup-bot pyup-bot closed this Feb 17, 2024
@monobot monobot deleted the pyup-update-netaddr-0.8.0-to-1.1.0 branch February 17, 2024 21:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant