@@ -1514,45 +1514,28 @@ def __init__(self, address, strict=True):
1514
1514
1515
1515
# Constructing from a packed address or integer
1516
1516
if isinstance (address , (int , bytes )):
1517
- self .network_address = IPv4Address (address )
1518
- self .netmask , self ._prefixlen = self ._make_netmask (self ._max_prefixlen )
1519
- #fixme: address/network test here.
1520
- return
1521
-
1522
- if isinstance (address , tuple ):
1523
- if len (address ) > 1 :
1524
- arg = address [1 ]
1525
- else :
1526
- # We weren't given an address[1]
1527
- arg = self ._max_prefixlen
1528
- self .network_address = IPv4Address (address [0 ])
1529
- self .netmask , self ._prefixlen = self ._make_netmask (arg )
1530
- packed = int (self .network_address )
1531
- if packed & int (self .netmask ) != packed :
1532
- if strict :
1533
- raise ValueError ('%s has host bits set' % self )
1534
- else :
1535
- self .network_address = IPv4Address (packed &
1536
- int (self .netmask ))
1537
- return
1538
-
1517
+ addr = address
1518
+ mask = self ._max_prefixlen
1519
+ # Constructing from a tuple (addr, [mask])
1520
+ elif isinstance (address , tuple ):
1521
+ addr = address [0 ]
1522
+ mask = address [1 ] if len (address ) > 1 else self ._max_prefixlen
1539
1523
# Assume input argument to be string or any object representation
1540
1524
# which converts into a formatted IP prefix string.
1541
- addr = _split_optional_netmask (address )
1542
- self .network_address = IPv4Address (self ._ip_int_from_string (addr [0 ]))
1543
-
1544
- if len (addr ) == 2 :
1545
- arg = addr [1 ]
1546
1525
else :
1547
- arg = self ._max_prefixlen
1548
- self .netmask , self ._prefixlen = self ._make_netmask (arg )
1549
-
1550
- if strict :
1551
- if (IPv4Address (int (self .network_address ) & int (self .netmask )) !=
1552
- self .network_address ):
1526
+ args = _split_optional_netmask (address )
1527
+ addr = self ._ip_int_from_string (args [0 ])
1528
+ mask = args [1 ] if len (args ) == 2 else self ._max_prefixlen
1529
+
1530
+ self .network_address = IPv4Address (addr )
1531
+ self .netmask , self ._prefixlen = self ._make_netmask (mask )
1532
+ packed = int (self .network_address )
1533
+ if packed & int (self .netmask ) != packed :
1534
+ if strict :
1553
1535
raise ValueError ('%s has host bits set' % self )
1554
- self .network_address = IPv4Address (int (self .network_address ) &
1555
- int (self .netmask ))
1536
+ else :
1537
+ self .network_address = IPv4Address (packed &
1538
+ int (self .netmask ))
1556
1539
1557
1540
if self ._prefixlen == (self ._max_prefixlen - 1 ):
1558
1541
self .hosts = self .__iter__
@@ -2207,46 +2190,30 @@ def __init__(self, address, strict=True):
2207
2190
"""
2208
2191
_BaseNetwork .__init__ (self , address )
2209
2192
2210
- # Efficient constructor from integer or packed address
2211
- if isinstance (address , (bytes , int )):
2212
- self .network_address = IPv6Address (address )
2213
- self .netmask , self ._prefixlen = self ._make_netmask (self ._max_prefixlen )
2214
- return
2215
-
2216
- if isinstance (address , tuple ):
2217
- if len (address ) > 1 :
2218
- arg = address [1 ]
2219
- else :
2220
- arg = self ._max_prefixlen
2221
- self .netmask , self ._prefixlen = self ._make_netmask (arg )
2222
- self .network_address = IPv6Address (address [0 ])
2223
- packed = int (self .network_address )
2224
- if packed & int (self .netmask ) != packed :
2225
- if strict :
2226
- raise ValueError ('%s has host bits set' % self )
2227
- else :
2228
- self .network_address = IPv6Address (packed &
2229
- int (self .netmask ))
2230
- return
2231
-
2193
+ # Constructing from a packed address or integer
2194
+ if isinstance (address , (int , bytes )):
2195
+ addr = address
2196
+ mask = self ._max_prefixlen
2197
+ # Constructing from a tuple (addr, [mask])
2198
+ elif isinstance (address , tuple ):
2199
+ addr = address [0 ]
2200
+ mask = address [1 ] if len (address ) > 1 else self ._max_prefixlen
2232
2201
# Assume input argument to be string or any object representation
2233
2202
# which converts into a formatted IP prefix string.
2234
- addr = _split_optional_netmask (address )
2235
-
2236
- self .network_add
10000
ress = IPv6Address (self ._ip_int_from_string (addr [0 ]))
2237
-
2238
- if len (addr ) == 2 :
2239
- arg = addr [1 ]
2240
2203
else :
2241
- arg = self ._max_prefixlen
2242
- self .netmask , self ._prefixlen = self ._make_netmask (arg )
2243
-
2244
- if strict :
2245
- if (IPv6Address (int (self .network_address ) & int (self .netmask )) !=
2246
- self .network_address ):
2204
+ args = _split_optional_netmask (address )
2205
+ addr = self ._ip_int_from_string (args [0 ])
2206
+ mask = args [1 ] if len (args ) == 2 else self ._max_prefixlen
2207
+
2208
+ self .network_address = IPv6Address (addr )
2209
+ self .netmask , self ._prefixlen = self ._make_netmask (mask )
2210
+ packed = int (self .network_address )
2211
+ if packed & int (self .netmask ) != packed :
2212
+ if strict :
2247
2213
raise ValueError ('%s has host bits set' % self )
2248
- self .network_address = IPv6Address (int (self .network_address ) &
2249
- int (self .netmask ))
2214
+ else :
2215
+ self .network_address = IPv6Address (packed &
2216
+ int (self .netmask ))
2250
2217
2251
2218
if self ._prefixlen == (self ._max_prefixlen - 1 ):
2252
2219
self .hosts = self .__iter__
0 commit comments