From 25a6b0f9e50b9c1c69f2e21a82cb7352b5acbdc6060768ae3ecaf31f87b45787 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Fri, 23 Aug 2024 18:24:28 +0200 Subject: [PATCH] Sync from SUSE:SLFO:Main python-netaddr revision 96461ddea835f5f5267c175e43699e0c --- .gitattributes | 23 +++ netaddr-1.2.1.tar.gz | 3 + python-netaddr.changes | 408 +++++++++++++++++++++++++++++++++++++++++ python-netaddr.spec | 84 +++++++++ 4 files changed, 518 insertions(+) create mode 100644 .gitattributes create mode 100644 netaddr-1.2.1.tar.gz create mode 100644 python-netaddr.changes create mode 100644 python-netaddr.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/netaddr-1.2.1.tar.gz b/netaddr-1.2.1.tar.gz new file mode 100644 index 0000000..b9d95c7 --- /dev/null +++ b/netaddr-1.2.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6eb8fedf0412c6d294d06885c110de945cf4d22d2b510d0404f4e06950857987 +size 2278809 diff --git a/python-netaddr.changes b/python-netaddr.changes new file mode 100644 index 0000000..3ae275a --- /dev/null +++ b/python-netaddr.changes @@ -0,0 +1,408 @@ +------------------------------------------------------------------- +Thu Mar 21 09:13:43 UTC 2024 - Daniel Garcia + +- Update to 1.2.1: + * Fix bad version 1.2.0 upload to PyPI – now yanked. No changes to + the package. +- 1.2.0: + * Add CLI tool subcommand to display cli-network-info. + * Support running interactive-shell without IPython installed. + * Explicitly raise TypeError is a non-string value is passed to + valid_ipv4 or valid_ipv6. +- 1.1.0: + * Add the required Python version to the package metadata (#365). + * Add expand_partial_ipv4_address to the public API. + * Fix IPNetwork(...) in IPRange(...) false negatives (#157). + * Fix a few IPNetwork slicing edge cases (#214). + * Fix support for partial IP addresses accidentally left in IPNetwork in 1.0.0. + * Fixed an incorrect license classifier in the package metadata. +- 1.0.0: + * Removed: + * Drop support for Python versions lower than 3.7. + * Remove the flag shorthands: N, P and Z. Use NOHOST, INET_PTON + and ZEROFILL instead. + * Remove abbreviated CIDR format support in IPNetwork (implicit_prefix=True), + use cidr_abbrev_to_verbose if you need this behavior. + * Remove the IPAddress.is_private method. + * Changed: + * Stop accepting leading zeros when parsing IPv4 addresses in INET_PTON mode + (it's been allowed on some platforms). + * Stop parsing IPv4 addresses permissively (inet_aton()-like) by default. + * Apply the two changes above to valid_ipv4 as well. + * Update the address databases to the 2024-02-10 versions. + * Fixed: + * Return False instead of raising AddrFormatError when an empty string is passed + to valid_ipv4 or valid_ipv6. + * Fix handling of dialect provided to EUI during copy-construction. + +------------------------------------------------------------------- +Sun Jan 7 20:54:19 UTC 2024 - Dirk Müller + +- update to 0.10.1: + * Get rid of some warnings + * 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. + * Improve Python 3.13 compatibility, thank you John Eckersberg. + * Deprecate Python 3.7 support. + * Deprecate abbreviated CIDR format support in + :class:`IPNetwork` + * 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. + * 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). + +------------------------------------------------------------------- +Mon Sep 25 09:15:49 UTC 2023 - Martin Hauke + +- Update to version 0.9.0 + Added: + * Add hash capabilities to OUI. + Fixed: + * Backwards incompatible: Handle RFC 6164 IPv6 addresses (don't + reserve first IP address in point-to-point subnets). + * Technically backwards incompatible: Fix for is_loopback + behaviour – consider IPNetwork('::1/128') to be loopback. + * Fix print syntax in the documentation to be Python 3 compatible + * Fix the Sphinx syntax in the documentation. + Other: + * Deprecate Python 3.6. + * Eliminate unnecessary evals. + +------------------------------------------------------------------- +Sun Jun 11 13:10:26 UTC 2023 - ecsos + +- Add %{?sle15_python_module_pythons} + +------------------------------------------------------------------- +Mon Nov 8 21:36:16 UTC 2021 - Dirk Müller + +- fix build for older distros + +------------------------------------------------------------------- +Sat Jul 4 18:19:40 UTC 2020 - Martin Hauke + +- Update to version 0.8.0 + * Fixed weak reference support in classes with __slots__ + * Added __bytes__ to IPAddress for intuitive usage + * Added format() function to EUI + * Added IPNetwork.netmask property setter + * Added support for IABs in the 40:D8:55 OUI + * Drastically optimized spanning_cidr() + * Fixed "x.x.x.x/x" in IPNetwork tests + * Added support for passing iterables of IPRange to IPSet and + cidr_merge() + Bugfixes: + * N log N complexity instead of linear + * Efficiently creating a large IPSet from a list of IPRanges? + * Weak reference support +- Run testsuite + +------------------------------------------------------------------- +Thu May 21 10:56:34 UTC 2020 - Petr Gajdos + +- %python3_only -> %python_alternative + +------------------------------------------------------------------- +Tue Dec 4 12:50:45 UTC 2018 - Matej Cepl + +- Remove superfluous devel dependency for noarch package + +------------------------------------------------------------------- +Sun Aug 6 09:31:51 UTC 2017 - mardnh@gmx.de + +- Convert to singlespec + +------------------------------------------------------------------- +Sat Jan 14 14:15:17 UTC 2017 - michael@stroeder.com + +- update to 0.7.19: + * added a new SubnetSplitter class for those looking to divide up subnets. + Thanks alanwill and RyPeck and those on (Stack Overflow discussion). + * removed bundled pytest dependency code for "python setup.py test". + * setup.py now uses setuptools only (no more distutils) and setup_egg.py removed. + * cleaned up INSTALL docs so they accurately reflect current Python packaging. + * fixed broken parsing, generating and reading of IEEE index files when switching + between Python 2.x and 3.x. + FIXED Issue 133: https://github.com/drkjam/netaddr/issues/133 + - Splitting a single network into multiple prefixed networks + FIXED Issue 129: https://github.com/drkjam/netaddr/issues/129 + - fix IPAddress().netmask_bits to return 0 for 0.0.0.0 and [::] addresses + FIXED Issue 117: https://github.com/drkjam/netaddr/issues/117 + - (python setup.py test) failing with python3 >= 3.5 + FIXED Issue 137: https://github.com/drkjam/netaddr/issues/137 + - API reference is broken on ReadTheDocs + FIXED Issue 143: https://github.com/drkjam/netaddr/issues/143 + - Please refresh the bundled IANA and IEEE databases + +------------------------------------------------------------------- +Fri Sep 25 16:49:07 UTC 2015 - michael@stroeder.com + +- update to 0.7.18: + * cidr_merge() algorithm is now O(n) and much faster. + * nmap target specification now fully supported including IPv4 CIDR + prefixes and IPv6 addresses. + FIXED Issue 100: https://github.com/drkjam/netaddr/issues/100 + - nmap.py - CIDR targets + FIXED Issue 112: https://github.com/drkjam/netaddr/issues/112 + - Observation: netaddr slower under pypy + * Fixed a regression with valid_mac due to shadow import in the + netaddr module. + FIXED Issue 114: https://github.com/drkjam/netaddr/issues/114 + - netaddr.valid_mac('00-B0-D0-86-BB-F7')==False for 0.7.16 but True for 0.7.15 + * IPv4 networks with /31 and /32 netmasks are now treated according to + RFC 3021. Thanks to kalombos and braaen. + FIXED Issue 109: https://github.com/drkjam/netaddr/issues/109 + - Identify registry of global IPv6 unicast allocations + FIXED Issue 108: https://github.com/drkjam/netaddr/issues/108 + - One part of docs unclear? + FIXED Issue 106: https://github.com/drkjam/netaddr/issues/106 + - Eui64 Updated (pull request for Issue 105) + FIXED Issue 105: https://github.com/drkjam/netaddr/issues/105 + - Support dialects for EUI-64 addresses + FIXED Issue 102: https://github.com/drkjam/netaddr/issues/102 + - 0.7.15 tarball is missing tests. + FIXED Issue 96: https://github.com/drkjam/netaddr/issues/96 + - Wrong hosts and broadcasts for /31 and /32 networks. + * Fix slowness in IPSet.__contains__. Thanks to novas0x2a for noticing. + * Normalize IPNetworks when they are added to an IPSet + * Converted test suite to py.test + +------------------------------------------------------------------- +Sun Apr 19 09:40:50 UTC 2015 - benoit.monin@gmx.fr + +- update to 0.7.14: + * Fix weird build breakage in 0.7.13 + * EUI, OUI, and IAB objects can now be compared with strings + * Implement the "!=" operator for OUI and IAB under Python2 + * 64 bit EUIs could only be created from strings with "-" as + a separator + * FIXED: Compare L2 addresses with their representations + * FIXED: OUI database tests fail in 0.7.13 + * FIXED: Incorrect python executable path in + netaddr-0.7.13-py2.py3-none-any.whl + * FIXED: Handle eui64 addresses with colon as a delimiter and + without delimeter +- set the source URL to pypi +- remove chmod call: file mode fixed upstream + +------------------------------------------------------------------- +Tue Jan 6 23:51:18 UTC 2015 - michael@stroeder.com + +- update to 0.7.13: + * IPAddress objects can now be added to/subtracted from each other + * compute static global ipv6 addr from the net prefix and mac address + * add classifiers for python 3.3 and 3.4 support + +------------------------------------------------------------------- +Thu Sep 11 12:40:27 UTC 2014 - dmueller@suse.com + +- update to 0.7.12: + * Added method IPSet.iter_ipranges(). + * bool(IPSet()) works now for large IPSets, e.g. IPSet(['2405:8100::/32']). + * IPNetwork.iter_hosts now skips the subnet-router anycast address for IPv6. + * Removed function fbsocket.inet_aton because it is unused and unnecessary + +------------------------------------------------------------------- +Mon May 12 20:10:14 UTC 2014 - hpj@urpla.net + +- Update to 0.7.11: + * Performance of IPSet increased dramatically, implemented by + Stefan Nordhausen and Martijn van Oosterhout. As a side effect, + IPSet(IPNetwork("10.0.0.0/8")) is now as fast as you'd expect. + * Various performance improvements all over the place. + * netaddr is now hosted on PyPI and can be installed via pip. + * Doing "10.0.0.42" in IPNetwork("10.0.0.0/24") works now. + * IPSet has two new methods: iscontiguous() and iprange(), thanks to Louis des Landes. + * Re-added the IPAddress.netmask_bits() method that was accidently removed. + * Networks 128.0.0.0/16, 191.255.0.0/16, and 223.255.255.0/24 are not marked as + reserved IPv4 addresses any more. Thanks to marnickv for pointing that out. + * Various bug fixes contributed by Wilfred Hughes, 2*yo and Adam Goodman. + FIXED Issue 58: https://github.com/drkjam/netaddr/issues/58 + - foo.bar doesn't throw AddrFormatError + FIXED Issue 57: https://github.com/drkjam/netaddr/issues/57 + - netaddr packages not hosted on PyPI + FIXED Issue 56: https://github.com/drkjam/netaddr/issues/56 + - Fix comparison with large IPSet() + FIXED Issue 55: https://github.com/drkjam/netaddr/pull/55 + - Fix smallest_matching_cidr and all_matching_cidrs + FIXED Issue 53: https://github.com/drkjam/netaddr/issues/53 + - Exclude 128.0.0.0/16 and possibly others from reserved range set? + FIXED Issue 51: https://github.com/drkjam/netaddr/issues/51 + - Encoding errors in netaddr/eui/oui.txt + FIXED Issue 46: https://github.com/drkjam/netaddr/issues/46 + - len(IPSet()) fails on python3 + FIXED Issue 43: https://github.com/drkjam/netaddr/issues/43 + - Method to check if IPSet is contiguous + FIXED Issue 38: https://github.com/drkjam/netaddr/issues/38 + - netmask_bits is missing from the IPAddress + FIXED Issue 37: https://github.com/drkjam/netaddr/issues/37 + - Test failures with Python 3.3 + +------------------------------------------------------------------- +Thu Oct 24 11:09:05 UTC 2013 - speilicke@suse.com + +- Require python-setuptools instead of distribute (upstreams merged) + +------------------------------------------------------------------- +Mon Sep 10 02:34:53 UTC 2012 - alexandre@exatati.com.br + +- Update to 0.7.10: + * A bunch of Python 3.x bug fixes. Thanks Arfrever. + * Extended nmap support to cover full target specification. + FIXED Issue 36 - http://github.com/drkjam/netaddr/issues/36 + - ResourceWarnings with Python >=3.2 + FIXED Issue 35 - http://github.com/drkjam/netaddr/issues/35 + - netaddr-0.7.9: Test failure with Python 3 + FIXED Issue 34 - http://github.com/drkjam/netaddr/issues/34 + - netaddr.ip.iana.SaxRecordParser.endElement() incompatible + with Python 3.1 + FIXED Issue 33 - http://github.com/drkjam/netaddr/issues/33 + - netaddr script not installed with Python 3 + FIXED Issue 23 - http://github.com/drkjam/netaddr/issues/23 + - valid_nmap_range() does not validate nmap format case. + FIXED Issue 22 - http://github.com/drkjam/netaddr/issues/22 + - all_matching_cidrs: documentation incorrect + +------------------------------------------------------------------- +Wed Aug 29 05:12:38 UTC 2012 - alexandre@exatati.com.br + +- Update to 0.7.9: + * Re-release to fix build removing Sphinx dependency. +- Aditional changes from 0.7.8: + * New SAX parser for IANA data source files (contributed by + Andrew Stromnov) + * Fixed pickling failures with EUI, OUI and IAB classes. + FIXED Issue 31 - http://github.com/drkjam/netaddr/issues/31 + - Exclude '39.0.0.0/8' network from reserved set. Thanks + Andrew Stromnov + FIXED Issue 28 - http://github.com/drkjam/netaddr/issues/28 + - Fix algorithm in ipv6_link_local to fully conform to rfc4291. + Thanks Philipp Wollermann + FIXED Issue 25 - http://github.com/drkjam/netaddr/issues/25 + - install_requires is too aggressive? Thanks Adam Lindsay and + commenters. + FIXED Issue 21 - http://github.com/drkjam/netaddr/issues/21 + - deepcopy for EUI fails. Thanks Ryan Nowakowski. + +------------------------------------------------------------------- +Thu May 31 05:08:00 UTC 2012 - alexandre@exatati.com.br + +- Update to 0.7.7: + * Comprehensive documentation update! It's only taken 4 years + to get around to using Sphinx and I can confirm it is + **TOTALLY AWESOME!** + * Various bug fixes + * Refreshed IEEE OUI and IAB data + * FIXED Issue 24 - http://github.com/drkjam/netaddr/issues/24 + - Fixed TypeError when comparing BaseIP instance with + non-BaseIP objects. Thanks pvaret + * FIXED Issue 17 - http://github.com/drkjam/netaddr/issues/17 + - For large ipv6 networks the .subnet() method fails. Thanks + daveyss + * FIXED Issue 20 - http://github.com/drkjam/netaddr/issues/20 + - Test failure with Python 3. Thanks Arfrever + +------------------------------------------------------------------- +Tue Sep 20 13:43:05 UTC 2011 - saschpe@suse.de + +- Changed license to 'BSD-3-Clause' (SPDX style) + +------------------------------------------------------------------- +Tue Sep 20 13:40:39 UTC 2011 - saschpe@suse.de + +- Fixed non-executable script rpmlint warning +- Readded dependency on python-setuptools (with python-distribute): + You can't simply remove this, it will break RPMs update mechanism! +- Preparatory stuff belongs into the %prep section and the %clean + section has a sane default + +------------------------------------------------------------------- +Wed Sep 14 00:32:39 UTC 2011 - alexandre@exatati.com.br + +- Regenerate spec file with py2pack; +- Removed unneded python-setuptools BuildRequires; +- Update to 0.7.6: + * A bug fix point release + * Refreshed 3rd party data caches + * Tested against Python 3.2.x and PyPy 1.6.x + * Fixed unit tests under for Mac OSX + Specific bug fixes addressed in this release + -------------------------------------------- + * FIXED Issue 15 - http://github.com/drkjam/netaddr/issues/15 + - Incorrect and invalid glob produced when last octet is not * + * FIXED Issue 13 - http://github.com/drkjam/netaddr/issues/13 + - Added support for IPython 0.11 API changes. Thanks juliantaylor + * FIXED Issue 11 - http://github.com/drkjam/netaddr/issues/11 + - Calling valid_glob on cidr raises ValueError. Thanks radicand + * FIXED Issue 7 - http://github.com/drkjam/netaddr/issues/7 + - Unpickling Bug in IPSet. Thanks LuizOz and labeneator + * FIXED Issue 2 - http://github.com/drkjam/netaddr/issues/2 + - UnboundLocalError raised in IPNetwork constructor. Thanks keesbos + + Miscellanea + ----------- + - Has a famous soft drink company started making it own NICs? + +------------------------------------------------------------------- +Thu Mar 3 09:51:36 UTC 2011 - saschpe@suse.de + +- Spec file cleanup: + * Added %changelog + * Removed empty lines + * Added AUTHORS, CHANGELOG, COPYRIGHT, README, LICENSE and + THANKS files (all documentation) + +------------------------------------------------------------------- +Wed Oct 6 01:41:45 UTC 2010 - alexandre@exatati.com.br + +- Update to 0.7.5: + * Python 3.x is now fully supported. The paint is still drying on this so + please help with testing and raise bug tickets when you find any issues! + * Moved code hosting to github. All history ported thanks to the most + excellent tool, svn2git (http://github.com/nirvdrum/svn2git). + * All netaddr objects now use approx. 65% less memory due to the use of + __slots__ in classes throughout the codebase. Thanks to Stefan Nordhausen + and his Python guru for this suggestion! + * Applied many optimisations and speedups throughout the codebase. + * Fixed the behaviour of the IPNetwork constructor so it now behaves in + a much more sensible and expected way (i.e. no longer uses inet_aton + semantics which is just plain odd for network addresses). + * One minor change to behaviour in this version is that the .value property + on IPAddress and IPNetwork objects no longer support assignment using a + string IP address. Only integer value assignments are now valid. The impact + of this change should be minimal for the majority of users. + * FIXED Issue 49 - http://code.google.com/p/netaddr/issues/detail?id=49 + - Incorrect IP range recognition on IPs with leading zeros + * FIXED Issue 50 - http://code.google.com/p/netaddr/issues/detail?id=50 + - CIDR block parsing + * FIXED Issue 52 - http://code.google.com/p/netaddr/issues/detail?id=52 + - ipv6 cidr matches incorrectly match ipv4 [sic] + * FIXED Issue 53 - http://code.google.com/p/netaddr/issues/detail?id=53 + - Error in online documentation + * FIXED Issue 54 - http://code.google.com/p/netaddr/issues/detail?id=54 + - IP recognition failure + * FIXED Issue 55 - http://code.google.com/p/netaddr/issues/detail?id=55 + - Support for Python 3.x + * FIXED Issue 56 - http://code.google.com/p/netaddr/issues/detail?id=56 + - checking IPAddress in IPNetwork + * FIXED Issue 57 - http://code.google.com/p/netaddr/issues/detail?id=57 + - netaddr objects can't pickle + * FIXED Issue 58 - http://code.google.com/p/netaddr/issues/detail?id=58 + - IPSet operations should accept the same arguments as IPAddress + * FIXED Issue 59 - http://code.google.com/p/netaddr/issues/detail?id=59 + - netaddr fails to load when imported by a PowerDNS coprocess + +------------------------------------------------------------------- +Wed May 12 11:36:17 UTC 2010 - alexandre@exatati.com.br + +- Initial package (0.7.4) for openSUSE. diff --git a/python-netaddr.spec b/python-netaddr.spec new file mode 100644 index 0000000..c4138c8 --- /dev/null +++ b/python-netaddr.spec @@ -0,0 +1,84 @@ +# +# spec file for package python-netaddr +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%{?sle15_python_module_pythons} +Name: python-netaddr +Version: 1.2.1 +Release: 0 +Summary: Pythonic manipulation of IPv4, IPv6, CIDR, EUI and MAC network addresses +License: BSD-3-Clause +Group: Development/Languages/Python +URL: https://github.com/drkjam/netaddr +Source: https://files.pythonhosted.org/packages/source/n/netaddr/netaddr-%{version}.tar.gz +BuildRequires: %{python_module pip} +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wheel} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +Requires(post): update-alternatives +Requires(postun): update-alternatives +BuildArch: noarch +%python_subpackages + +%description +A pure Python network address representation and manipulation library. + +netaddr provides a Pythonic way of working with: + - IPv4 and IPv6 addresses and subnets (including CIDR notation); + - MAC (Media Access Control) addresses in multiple formats; + - IEEE EUI-64, OUI and IAB identifiers; + - a user friendly IP glob-style format. + +Included are routines for: + - generating, sorting and summarizing IP addresses; + - converting IP addresses and ranges between various different formats; + - performing set based operations on groups of IP addresses and subnets; + - arbitrary IP address range calculations and conversions; + - querying IEEE OUI and IAB organisational information; + - querying of IP standards related data from key IANA data sources. + +%prep +%autosetup -p1 -n netaddr-%{version} +sed -i "1d" netaddr/{cli,ip/iana,eui/ieee,tests/__init__}.py # Fix non-executable scripts + +%build +%pyproject_wheel + +%install +%pyproject_install +%python_clone -a %{buildroot}%{_bindir}/netaddr +%python_expand %fdupes %{buildroot}%{$python_sitelib} + +%check +%pytest + +%post +%python_install_alternative netaddr + +%postun +%python_uninstall_alternative netaddr + +%files %{python_files} +%license LICENSE.rst +%doc AUTHORS.rst CHANGELOG.rst COPYRIGHT.rst README.rst +%{python_sitelib}/netaddr* +%{_bindir}/netaddr-%{python_bin_suffix} +%python_alternative %{_bindir}/netaddr + +%changelog