home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_1638 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  4.0 KB  |  167 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import re
  5. import dns.exception as dns
  6. NONE = 0
  7. A = 1
  8. NS = 2
  9. MD = 3
  10. MF = 4
  11. CNAME = 5
  12. SOA = 6
  13. MB = 7
  14. MG = 8
  15. MR = 9
  16. NULL = 10
  17. WKS = 11
  18. PTR = 12
  19. HINFO = 13
  20. MINFO = 14
  21. MX = 15
  22. TXT = 16
  23. RP = 17
  24. AFSDB = 18
  25. X25 = 19
  26. ISDN = 20
  27. RT = 21
  28. NSAP = 22
  29. NSAP_PTR = 23
  30. SIG = 24
  31. KEY = 25
  32. PX = 26
  33. GPOS = 27
  34. AAAA = 28
  35. LOC = 29
  36. NXT = 30
  37. SRV = 33
  38. NAPTR = 35
  39. KX = 36
  40. CERT = 37
  41. A6 = 38
  42. DNAME = 39
  43. OPT = 41
  44. APL = 42
  45. DS = 43
  46. SSHFP = 44
  47. IPSECKEY = 45
  48. RRSIG = 46
  49. NSEC = 47
  50. DNSKEY = 48
  51. DHCID = 49
  52. SPF = 99
  53. UNSPEC = 103
  54. TKEY = 249
  55. TSIG = 250
  56. IXFR = 251
  57. AXFR = 252
  58. MAILB = 253
  59. MAILA = 254
  60. ANY = 255
  61. _by_text = {
  62.     'NONE': NONE,
  63.     'A': A,
  64.     'NS': NS,
  65.     'MD': MD,
  66.     'MF': MF,
  67.     'CNAME': CNAME,
  68.     'SOA': SOA,
  69.     'MB': MB,
  70.     'MG': MG,
  71.     'MR': MR,
  72.     'NULL': NULL,
  73.     'WKS': WKS,
  74.     'PTR': PTR,
  75.     'HINFO': HINFO,
  76.     'MINFO': MINFO,
  77.     'MX': MX,
  78.     'TXT': TXT,
  79.     'RP': RP,
  80.     'AFSDB': AFSDB,
  81.     'X25': X25,
  82.     'ISDN': ISDN,
  83.     'RT': RT,
  84.     'NSAP': NSAP,
  85.     'NSAP-PTR': NSAP_PTR,
  86.     'SIG': SIG,
  87.     'KEY': KEY,
  88.     'PX': PX,
  89.     'GPOS': GPOS,
  90.     'AAAA': AAAA,
  91.     'LOC': LOC,
  92.     'NXT': NXT,
  93.     'SRV': SRV,
  94.     'NAPTR': NAPTR,
  95.     'KX': KX,
  96.     'CERT': CERT,
  97.     'A6': A6,
  98.     'DNAME': DNAME,
  99.     'OPT': OPT,
  100.     'APL': APL,
  101.     'DS': DS,
  102.     'SSHFP': SSHFP,
  103.     'IPSECKEY': IPSECKEY,
  104.     'RRSIG': RRSIG,
  105.     'NSEC': NSEC,
  106.     'DNSKEY': DNSKEY,
  107.     'DHCID': DHCID,
  108.     'SPF': SPF,
  109.     'UNSPEC': UNSPEC,
  110.     'TKEY': TKEY,
  111.     'TSIG': TSIG,
  112.     'IXFR': IXFR,
  113.     'AXFR': AXFR,
  114.     'MAILB': MAILB,
  115.     'MAILA': MAILA,
  116.     'ANY': ANY }
  117. _by_value = []([ (y, x) for x, y in _by_text.iteritems() ])
  118. _metatypes = {
  119.     OPT: True }
  120. _singletons = {
  121.     SOA: True,
  122.     NXT: True,
  123.     DNAME: True }
  124. _unknown_type_pattern = re.compile('TYPE([0-9]+)$', re.I)
  125.  
  126. class UnknownRdatatype(dns.exception.DNSException):
  127.     pass
  128.  
  129.  
  130. def from_text(text):
  131.     value = _by_text.get(text.upper())
  132.     if value is None:
  133.         match = _unknown_type_pattern.match(text)
  134.         if match == None:
  135.             raise UnknownRdatatype
  136.         match == None
  137.         value = int(match.group(1))
  138.         if value < 0 or value > 65535:
  139.             raise ValueError, 'type must be between >= 0 and <= 65535'
  140.         value > 65535
  141.     
  142.     return value
  143.  
  144.  
  145. def to_text(value):
  146.     if value < 0 or value > 65535:
  147.         raise ValueError, 'type must be between >= 0 and <= 65535'
  148.     value > 65535
  149.     text = _by_value.get(value)
  150.     if text is None:
  151.         text = 'TYPE' + `value`
  152.     
  153.     return text
  154.  
  155.  
  156. def is_metatype(rdtype):
  157.     if rdtype >= TKEY or rdtype <= ANY or _metatypes.has_key(rdtype):
  158.         return True
  159.     return False
  160.  
  161.  
  162. def is_singleton(rdtype):
  163.     if _singletons.has_key(rdtype):
  164.         return True
  165.     return False
  166.  
  167.