diff options
author | pmoody@google.com <pmoody@google.com@09200d28-7f98-11dd-ad27-0f66e57d2035> | 2011-09-08 22:50:08 +0000 |
---|---|---|
committer | pmoody@google.com <pmoody@google.com@09200d28-7f98-11dd-ad27-0f66e57d2035> | 2011-09-08 22:50:08 +0000 |
commit | ea53e856d74307518d4b4499e1a883c6ffed2d20 (patch) | |
tree | b364c924570d2a29b210889b30fdee59e952e789 | |
parent | 272ab88844ff041308c1085e1676e8b525cdeb8b (diff) | |
download | ipaddr-py-ea53e856d74307518d4b4499e1a883c6ffed2d20.tar.gz |
remove the ip attribute from the network objects. make collpase_address_list work. still need to figure out how to handle type-promotion
git-svn-id: https://ipaddr-py.googlecode.com/svn@228 09200d28-7f98-11dd-ad27-0f66e57d2035
-rw-r--r-- | branches/3144/ipaddr.py | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/branches/3144/ipaddr.py b/branches/3144/ipaddr.py index ca6bdf2..00b118c 100644 --- a/branches/3144/ipaddr.py +++ b/branches/3144/ipaddr.py @@ -387,7 +387,10 @@ def collapse_address_list(addresses): if ips and ips[-1]._version != ip._version: raise TypeError("%s and %s are not of the same version" % ( str(ip), str(ips[-1]))) - ips.append(ip.ip) + try: + ips.append(ip.ip) + except AttributeError: + ips.append(ip.network_address) else: if nets and nets[-1]._version != ip._version: raise TypeError("%s and %s are not of the same version" % ( @@ -1429,6 +1432,23 @@ class IPv4Interface(_BaseV4, _BaseNetwork): class IPv4Network(IPv4Interface): def __init__(self, address): IPv4Interface.__init__(self, address, strict=True) + del self.__dict__['ip'] + + def __str__(self): + return '%s/%d' % (str(self.network_address), + self.prefixlen) + + @property + def with_prefixlen(self): + return '%s/%d' % (str(self.network_address), self._prefixlen) + + @property + def with_netmask(self): + return '%s/%s' % (str(self.network_address), str(self.netmask)) + + @property + def with_hostmask(self): + return '%s/%s' % (str(self.network_address), str(self.hostmask)) class _BaseV6(object): @@ -1960,3 +1980,20 @@ class IPv6Interface(_BaseV6, _BaseNetwork): class IPv6Network(IPv6Interface): def __init__(self, address): IPv6Interface.__init__(self, address, strict=True) + del self.__dict__['ip'] + + def __str__(self): + return '%s/%d' % (str(self.network_address), + self.prefixlen) + + @property + def with_prefixlen(self): + return '%s/%d' % (str(self.network_address), self._prefixlen) + + @property + def with_netmask(self): + return '%s/%s' % (str(self.network_address), str(self.netmask)) + + @property + def with_hostmask(self): + return '%s/%s' % (str(self.network_address), str(self.hostmask)) |