[Python-checkins] r72207 - python/branches/py3k/Lib/ipaddr.py

gregory.p.smith python-checkins at python.org
Sat May 2 20:35:58 CEST 2009


Author: gregory.p.smith
Date: Sat May 2 20:35:58 2009
New Revision: 72207
Log:
ipaddr cleanup for python 3.x:
* Get rid of __hex__.
* Support bytearray as well as bytes.
* Don't double test for integer input.
Modified:
 python/branches/py3k/Lib/ipaddr.py
Modified: python/branches/py3k/Lib/ipaddr.py
==============================================================================
--- python/branches/py3k/Lib/ipaddr.py	(original)
+++ python/branches/py3k/Lib/ipaddr.py	Sat May 2 20:35:58 2009
@@ -263,9 +263,6 @@
 def __int__(self):
 return self.ip
 
- def __hex__(self):
- return hex(int(self))
-
 def address_exclude(self, other):
 """Remove an address from a larger block.
 
@@ -572,7 +569,7 @@
 self._version = 4
 
 # Efficient constructor from integer.
- if isinstance(ipaddr, int) or isinstance(ipaddr, int):
+ if isinstance(ipaddr, int):
 self.ip = ipaddr
 self._prefixlen = 32
 self.netmask = self._ALL_ONES
@@ -580,7 +577,8 @@
 raise IPv4IpValidationError(ipaddr)
 return
 
- if isinstance(ipaddr, bytes) and len(ipaddr) == 4:
+ # Constructing from a packed address
+ if isinstance(ipaddr, (bytes, bytearray)) and len(ipaddr) == 4:
 self.ip = struct.unpack('!I', ipaddr)[0]
 self._prefixlen = 32
 self.netmask = self._ALL_ONES
@@ -909,7 +907,7 @@
 self._version = 6
 
 # Efficient constructor from integer.
- if isinstance(ipaddr, int) or isinstance(ipaddr, int):
+ if isinstance(ipaddr, int):
 self.ip = ipaddr
 self._prefixlen = 128
 self.netmask = self._ALL_ONES
@@ -917,7 +915,8 @@
 raise IPv6IpValidationError(ipaddr)
 return
 
- if isinstance(ipaddr, bytes) and len(ipaddr) == 16:
+ # Constructing from a packed address
+ if isinstance(ipaddr, (bytes, bytearray)) and len(ipaddr) == 16:
 tmp = struct.unpack('!QQ', ipaddr)
 self.ip = (tmp[0] << 64) | tmp[1]
 self._prefixlen = 128


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /