Skip to content
This repository was archived by the owner on Jun 12, 2024. It is now read-only.
This repository was archived by the owner on Jun 12, 2024. It is now read-only.

No module named lib2to3 with python-3.13  #130

@pornmailbox

Description

@pornmailbox

Hi.
I can't install ipaddr-py on my newest Gentoo. There is no module lib2to3 in Python-3.13.
I'm manually converted *.py files on another machine with Python-3.12 via lib2to3.
Listed below diff resolve this issue for me.

diff '--color=auto' -Naur a/ipaddr.py b/ipaddr.py
--- a/ipaddr.py>2017-09-15 21:35:54.000000000 +0300
+++ b/ipaddr.py>2024-05-30 11:35:05.191731657 +0300
@@ -521,7 +521,7 @@
         return  '%s' % self._string_from_ip_int(self._ip)
.
     def __hash__(self):
-        return hash(hex(long(self._ip)))
+        return hash(hex(int(self._ip)))
.
     def _get_address_key(self):
         return (self._version, self)
@@ -896,7 +896,7 @@
         Raises:
             NetmaskValueError: If the input is not an integer, or out of range.
         """
-        if not isinstance(prefixlen, (int, long)):
+        if not isinstance(prefixlen, int):
             raise NetmaskValueError('%r is not an integer' % prefixlen)
         prefixlen = int(prefixlen)
         if not (0 <= prefixlen <= self._max_prefixlen):
@@ -1158,7 +1158,7 @@
.
         """
         octets = []
-        for _ in xrange(4):
+        for _ in range(4):
             octets.insert(0, str(ip_int & 0xFF))
             ip_int >>= 8
         return '.'.join(octets)
@@ -1271,7 +1271,7 @@
             return
.
         # Efficient constructor from integer.
-        if isinstance(address, (int, long)):
+        if isinstance(address, int):
             self._ip = address
             if address < 0 or address > self._ALL_ONES:
                 raise AddressValueError(address)
@@ -1353,7 +1353,7 @@
         _BaseV4.__init__(self, address)
.
         # Constructing from a single IP address.
-        if isinstance(address, (int, long, Bytes, IPv4Address)):
+        if isinstance(address, (int, Bytes, IPv4Address)):
             self.ip = IPv4Address(address)
             self._ip = self.ip._ip
             self._prefixlen = self._max_prefixlen
@@ -1457,7 +1457,7 @@
         # This indicates that a run of zeroes has been skipped.
         try:
             skip_index, = (
-                [i for i in xrange(1, len(parts) - 1) if not parts[i]] or
+                [i for i in range(1, len(parts) - 1) if not parts[i]] or
                 [None])
         except ValueError:
             # Can't have more than one '::'
@@ -1491,12 +1491,12 @@
.
         try:
             # Now, parse the hextets into a 128-bit integer.
-            ip_int = long(0)
-            for i in xrange(parts_hi):
+            ip_int = int(0)
+            for i in range(parts_hi):
                 ip_int <<= 16
                 ip_int |= self._parse_hextet(parts[i])
             ip_int <<= 16 * parts_skipped
-            for i in xrange(-parts_lo, 0):
+            for i in range(-parts_lo, 0):
                 ip_int <<= 16
                 ip_int |= self._parse_hextet(parts[i])
             return ip_int
@@ -1617,7 +1617,7 @@
.
         ip_int = self._ip_int_from_string(ip_str)
         parts = []
-        for i in xrange(self._HEXTET_COUNT):
+        for i in range(self._HEXTET_COUNT):
             parts.append('%04x' % (ip_int & 0xFFFF))
             ip_int >>= 16
         parts.reverse()
@@ -1802,7 +1802,7 @@
             return
.
         # Efficient constructor from integer.
-        if isinstance(address, (int, long)):
+        if isinstance(address, int):
             self._ip = address
             if address < 0 or address > self._ALL_ONES:
                 raise AddressValueError(address)
@@ -1880,7 +1880,7 @@
         _BaseV6.__init__(self, address)
.
         # Constructing from a single IP address.
-        if isinstance(address, (int, long, Bytes, IPv6Address)):
+        if isinstance(address, (int, Bytes, IPv6Address)):
             self.ip = IPv6Address(address)
             self._ip = self.ip._ip
             self._prefixlen = self._max_prefixlen
diff '--color=auto' -Naur a/ipaddr_test.py b/ipaddr_test.py
--- a/ipaddr_test.py<-->2017-09-15 03:18:44.000000000 +0300
+++ b/ipaddr_test.py<-->2024-05-30 11:35:06.456722898 +0300
@@ -1035,7 +1035,7 @@
         # i70
         self.assertEqual(hash(ipaddr.IPAddress('1.2.3.4')),
                           hash(ipaddr.IPAddress(
-                    long(ipaddr.IPAddress('1.2.3.4')._ip))))
+                    int(ipaddr.IPAddress('1.2.3.4')._ip))))
         ip1 = ipaddr.IPAddress('10.1.1.0')
         ip2 = ipaddr.IPAddress('1::')
         dummy = {}
@@ -1082,7 +1082,7 @@
             '7:6:5:4:3:2:1::': '7:6:5:4:3:2:1:0/128',
             '0:6:5:4:3:2:1::': '0:6:5:4:3:2:1:0/128',
             }
-        for uncompressed, compressed in test_addresses.items():
+        for uncompressed, compressed in list(test_addresses.items()):
             self.assertEqual(compressed, str(ipaddr.IPv6Network(uncompressed)))
.
     def testExplodeShortHandIpStr(self):

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions