]>
code.delx.au - pymsnt/blob - src/utils.py
1 # Copyright 2004 James Bunton <james@delx.cjb.net>
2 # Licensed for distribution under the GPL version 2, check COPYING for details
4 def fudgestr(text
, num
):
5 if(not (text
.__class
__ in [str, unicode])): return ""
15 return fudgestr(text
, 128)
19 """ Does a deep copy of a dictionary """
21 for key
in dic
.keys():
26 """ Does a deep copy of a list """
33 """ Mutilates a class :) """
35 # exec "me." + key + " = None"
38 return el
.getAttribute((u
'http://www.w3.org/XML/1998/namespace', u
'lang'))
44 "feature-not-implemented" : 501,
47 "internal-server-error" : 500,
48 "item-not-found" : 404,
49 "jid-malformed" : 400,
50 "not-acceptable" : 406,
52 "not-authorized" : 401,
53 "payment-required" : 402,
54 "recipient-unavailable" : 404,
56 "registration-required" : 407,
57 "remote-server-not-found" : 404,
58 "remote-server-timeout" : 504,
59 "resource-constraint" : 500,
60 "service-unavailable" : 503,
61 "subscription-required" : 407,
62 "undefined-condition" : 500,
63 "unexpected-request" : 400
67 if(path
and path
[0] == "/"):
78 def parseFile(filename
):
84 """ Taken from http://xoomer.virgilio.it/dialtone/rsschannel.py """
89 def parseFile(self
, filename
):
90 return self
.parseString(file(filename
).read())
92 def parseString(self
, data
):
94 from twisted
.xish
.domish
import SuxElementStream
96 from tlib
.domish
import SuxElementStream
97 es
= SuxElementStream()
98 es
.DocumentStartEvent
= self
.docStart
99 es
.DocumentEndEvent
= self
.docEnd
100 es
.ElementEvent
= self
.element
104 def docStart(self
, e
):
110 def element(self
, e
):
111 self
.root
.addChild(e
)
115 checkTwistedCached
= None
117 """ Returns False if we're using an old version that needs tlib, otherwise returns True """
118 global checkTwistedCached
119 if(checkTwistedCached
== None):
120 import twisted
.copyright
121 checkTwistedCached
= (VersionNumber(twisted
.copyright
.version
) >= VersionNumber("2.0.0"))
122 return checkTwistedCached
125 def __init__(self
, vstring
):
131 self
.varray
.append(0)
134 elif(c
.isdigit() and flag
):
135 self
.varray
[index
] *= 10
136 self
.varray
[index
] += int(c
)
140 def __cmp__(self
, other
):
143 if(i
== len(other
.varray
)):
144 if(i
< len(self
.varray
)):
148 if(i
== len(self
.varray
)):
149 if(i
< len(other
.varray
)):
154 if(self
.varray
[i
] > other
.varray
[i
]):
156 elif(self
.varray
[i
] < other
.varray
[i
]):
164 def __init__(self
, size
):
168 def push(self
, data
):
169 self
.lst
.append(str(data
))
170 if(len(self
.lst
) > self
.size
):
171 self
.lst
.remove(self
.lst
[0])
174 return "".join(self
.lst
)