diff options
author | Rob Austein <sra@hactrn.net> | 2007-07-02 16:13:52 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2007-07-02 16:13:52 +0000 |
commit | 63843aba48cc1cbfa468de397262077501d44c67 (patch) | |
tree | 7b22aaedee0d5bc6ff113a4ba7e5f93872232a5f | |
parent | 2f10c4e9536cc90d0ec3c43ae776b9e8553d6e69 (diff) |
Checkpoint
svn path=/scripts/resource-set.py; revision=705
-rw-r--r-- | scripts/resource-set.py | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/scripts/resource-set.py b/scripts/resource-set.py index 60f4afc3..fe0da8d3 100644 --- a/scripts/resource-set.py +++ b/scripts/resource-set.py @@ -18,11 +18,9 @@ class ip_address(object): return self.addr.__hash__() class ipv4_address(ip_address): - re = "[0-9.]+" af = socket.AF_INET class ipv6_address(ip_address): - re = "[0-9:a-fA-F]+" af = socket.AF_INET6 class resource(object): @@ -34,7 +32,7 @@ class asn(resource, long): class ip_prefix(resource): def __init__(self, addr, prefixlen): - self.addr = addr + self.addr = self.ac(addr) self.prefixlen = prefixlen def __str__(self): @@ -46,6 +44,12 @@ class ip_prefix(resource): def __hash__(self): return self.addr.__hash__() + self.prefixlen.__hash__() +class ipv4_prefix(ip_prefix): + ac = ipv4_address + +class ipv6_prefix(ip_prefix): + ac = ipv6_address + class resource_range(resource): def __init__(self, min, max): @@ -70,13 +74,10 @@ class resource_set(set): set.__init__(self, elts) def __str__(self): - return "{" + ", ".join(map(str, self)) + "}" + s = [i for i in self] + s.sort() + return "{" + ", ".join(map(str, s)) + "}" -s = resource_set(ip_prefix(ipv6_address("fe80::"), 16), ip_prefix(ipv4_address("10.0.0.44"), 32)) +s = resource_set(ipv6_prefix("fe80::", 16), ipv4_prefix("10.0.0.44", 32), ipv4_prefix("10.3.0.44", 32)) print s - -print len(s) - -for i in s: - print i |