]> granicus.if.org Git - python/commitdiff
Issue #23268: Fixed bugs in the comparison of ipaddress classes.
authorSerhiy Storchaka <storchaka@gmail.com>
Mon, 26 Jan 2015 08:11:39 +0000 (10:11 +0200)
committerSerhiy Storchaka <storchaka@gmail.com>
Mon, 26 Jan 2015 08:11:39 +0000 (10:11 +0200)
1  2 
Lib/ipaddress.py
Lib/test/test_ipaddress.py
Misc/NEWS

index 2ba98d8926619bbdacf7ae44c9ecb4fe2d495b0e,ac03c36ce08e2d4e78053fdc1e803fdce5ea6d9b..6c225f3037093857ce015dc2c9373287a8f825a9
@@@ -557,16 -514,14 +524,17 @@@ class _IPAddressBase
              pass
  
          # Invert the bits, and try matching a /0+1+/ hostmask instead.
 -        ip_int ^= self._ALL_ONES
 +        ip_int ^= cls._ALL_ONES
          try:
 -            return self._prefix_from_ip_int(ip_int)
 +            return cls._prefix_from_ip_int(ip_int)
          except ValueError:
 -            self._report_invalid_netmask(ip_str)
 +            cls._report_invalid_netmask(ip_str)
 +
 +    def __reduce__(self):
 +        return self.__class__, (str(self),)
  
  
+ @functools.total_ordering
  class _BaseAddress(_IPAddressBase):
  
      """A generic IP object.
      def _get_address_key(self):
          return (self._version, self)
  
 +    def __reduce__(self):
 +        return self.__class__, (self._ip,)
 +
  
+ @functools.total_ordering
  class _BaseNetwork(_IPAddressBase):
  
      """A generic IP network object.
index 5ec2cd45fe87475c46a2201fe5dbac0d7b655bff,bfb569950f0d6e0fa6d45c53c4956d6cb2d5e4ac..e985329117f7acdee8d399f4824b00992024af71
@@@ -7,8 -7,8 +7,9 @@@
  import unittest
  import re
  import contextlib
+ import functools
  import operator
 +import pickle
  import ipaddress
  
  
diff --cc Misc/NEWS
Simple merge