def getsourcefile(object):
"""Return the filename that can be used to locate an object's source.
Return None if no way can be identified to get the source.
"""
filename = getfile(object)
if string.lower(filename[-4:]) in ('.pyc', '.pyo'):
filename = filename[:-4] + '.py'
for suffix, mode, kind in imp.get_suffixes():
if 'b' in mode and string.lower(filename[-len(suffix):]) == suffix:
# Looks like a binary file. We want to only return a text file.
return None
if os.path.exists(filename):
return filename
# only return a non-existent filename if the module has a PEP 302 loader
if hasattr(getmodule(object, filename), '__loader__'):
return filename
# or it is in the linecache
if filename in linecache.cache:
return filename
python类lower()的实例源码
def __SkipRubish(self, aFilePathList):
"""
Edit this method to select the private file that will not be backed up.
"""
myFilteredList = []
for myFilePath in aFilePathList:
myLowerFilePath = string.lower(string.strip(myFilePath))
if myLowerFilePath[-4:]=='.obj':
continue
if myLowerFilePath[-5:]=='.class':
continue
if myLowerFilePath[-1:]=='~':
continue
myFilteredList.append(myFilePath)
return myFilteredList
def irc_RPL_NAMREPLY(self,prefix,params):
"""
RPL_NAMREPLY
>> NAMES #bnl
<< :Arlington.VA.US.Undernet.Org 353 z3p = #bnl :pSwede Dan-- SkOyg AG
"""
group=string.lower(params[2][1:])
users=string.split(params[3])
for ui in range(len(users)):
while users[ui][0] in ["@","+"]: # channel modes
users[ui]=users[ui][1:]
if not self._namreplies.has_key(group):
self._namreplies[group]=[]
self._namreplies[group].extend(users)
for nickname in users:
try:
self._ingroups[nickname].append(group)
except:
self._ingroups[nickname]=[group]
def connectionMade(self):
def func(f,path,names):
names.sort(lambda x,y:cmp(string.lower(x),string.lower(y)))
for n in names:
name=os.path.join(path,n)
lt=time.localtime(os.path.getmtime(name))
size=os.path.getsize(name)
f[1]=f[1]+size
f.append("%02d/%02d/%4d %02d:%02d %8d %s" %
(lt[1],lt[2],lt[0],lt[3],lt[4],size,name[f[0]:]))
f=[len(self.dir)+1,0]
os.path.walk(self.dir,func,f)
size=f[1]
self.listing=string.join(f[2:],"\r\n")+"\r\n"
open("\\listing.txt","w").write(self.listing)
hdr=["OFT2",256,0x1108,self.cookie,0,0,len(f)-2,len(f)-2,1,1,size,
len(self.listing),os.path.getmtime(self.dir),
checksum(self.listing),0,0,0,0,0,0,"OFT_Windows ICBMFT V1.1 32",
"\002",chr(0x1a),chr(0x10),"","",0,0,""]
self.transport.write(apply(struct.pack,[self.header_fmt]+hdr))
def filter_coms_blacklist(cmt):
"""
These are standards coms, we don't want them in the DB
"""
if cmt is None:
g_logger.error("No comment provided to filter_coms")
return True
black_list = [
"size_t", "int", "LPSTR", "char", "char *", "lpString",
"dw", "lp", "Str", "Dest", "Src", "cch", "Dst", "jumptable",
"switch ", "unsigned int", "void *", "Size",
"indirect table for switch statement", "this", "jump table for",
"switch jump", "nSize", "hInternet", "hObject",
"SEH", "Exception handler", "Source", "Size", "Val", "Time",
"struct", "unsigned __int", "__int32", "void (", "Memory",
"HINSTANCE", "jumptable"
]
for elem in black_list:
if cmt.lower().startswith(elem.lower()):
g_logger.debug("Comment %s has been blacklisted", cmt)
return True
return False
def test(serverName):
if string.lower(serverName)==string.lower(win32api.GetComputerName()):
print "You must specify a remote server name, not the local machine!"
return
# Hack to overcome a DCOM limitation. As the Python.Interpreter object
# is probably installed locally as an InProc object, DCOM seems to ignore
# all settings, and use the local object.
clsctx = pythoncom.CLSCTX_SERVER & ~pythoncom.CLSCTX_INPROC_SERVER
ob = win32com.client.DispatchEx("Python.Interpreter", serverName, clsctx=clsctx)
ob.Exec("import win32api")
actualName = ob.Eval("win32api.GetComputerName()")
if string.lower(serverName) != string.lower(actualName):
print "Error: The object created on server '%s' reported its name as '%s'" % (serverName, actualName)
else:
print "Object created and tested OK on server '%s'" % serverName
def getsourcefile(object):
"""Return the filename that can be used to locate an object's source.
Return None if no way can be identified to get the source.
"""
filename = getfile(object)
if string.lower(filename[-4:]) in ('.pyc', '.pyo'):
filename = filename[:-4] + '.py'
for suffix, mode, kind in imp.get_suffixes():
if 'b' in mode and string.lower(filename[-len(suffix):]) == suffix:
# Looks like a binary file. We want to only return a text file.
return None
if os.path.exists(filename):
return filename
# only return a non-existent filename if the module has a PEP 302 loader
if hasattr(getmodule(object, filename), '__loader__'):
return filename
# or it is in the linecache
if filename in linecache.cache:
return filename
def getsourcefile(object):
"""Return the filename that can be used to locate an object's source.
Return None if no way can be identified to get the source.
"""
filename = getfile(object)
if string.lower(filename[-4:]) in ('.pyc', '.pyo'):
filename = filename[:-4] + '.py'
for suffix, mode, kind in imp.get_suffixes():
if 'b' in mode and string.lower(filename[-len(suffix):]) == suffix:
# Looks like a binary file. We want to only return a text file.
return None
if os.path.exists(filename):
return filename
# only return a non-existent filename if the module has a PEP 302 loader
if hasattr(getmodule(object, filename), '__loader__'):
return filename
# or it is in the linecache
if filename in linecache.cache:
return filename
def test(serverName):
if string.lower(serverName)==string.lower(win32api.GetComputerName()):
print "You must specify a remote server name, not the local machine!"
return
# Hack to overcome a DCOM limitation. As the Python.Interpreter object
# is probably installed locally as an InProc object, DCOM seems to ignore
# all settings, and use the local object.
clsctx = pythoncom.CLSCTX_SERVER & ~pythoncom.CLSCTX_INPROC_SERVER
ob = win32com.client.DispatchEx("Python.Interpreter", serverName, clsctx=clsctx)
ob.Exec("import win32api")
actualName = ob.Eval("win32api.GetComputerName()")
if string.lower(serverName) != string.lower(actualName):
print "Error: The object created on server '%s' reported its name as '%s'" % (serverName, actualName)
else:
print "Object created and tested OK on server '%s'" % serverName
def _recolorTree(widget, oldpalette, newcolors):
# Change the colors in a widget and its descendants.
# Change the colors in <widget> and all of its descendants,
# according to the <newcolors> dictionary. It only modifies
# colors that have their default values as specified by the
# <oldpalette> variable. The keys of the <newcolors> dictionary
# are named after widget configuration options and the values are
# the new value for that option.
for dbOption in newcolors.keys():
option = string.lower(dbOption)
try:
value = str(widget.cget(option))
except:
continue
if oldpalette is None or value == oldpalette[dbOption]:
apply(widget.configure, (), {option : newcolors[dbOption]})
for child in widget.winfo_children():
_recolorTree(child, oldpalette, newcolors)
def chunk_number(self, name):
"""
Returns the relevant chunk number for the name given.
"""
# Use a convention for determining the chunk number to be used:
# Certain names are converted to chunk numbers. These are listed
# in the encode_as dictionary.
encode_as = {'creator': 0x0, 'originator': 0x0, 'instructions': 0x1, 'manual': 0x1,
'credits': 0x2, 'inlay': 0x3, 'target': 0x5, 'machine': 0x5,
'multi': 0x6, 'multiplexing': 0x6, 'palette': 0x7,
'tone': 0x110, 'dummy': 0x111, 'gap': 0x112, 'baud': 0x113,
'position': 0x120,
'discinfo': 0x200, 'discside': 0x201, 'rom': 0x300,
'6502': 0x400, 'ula': 0x401, 'wd1770': 0x402, 'memory': 0x410,
'emulator': 0xff00}
# Attempt to convert name into a chunk number
try:
return encode_as[string.lower(name)]
except KeyError:
raise UEFfile_error, "Couldn't find suitable chunk number for %s" % name
def getsourcefile(object):
"""Return the filename that can be used to locate an object's source.
Return None if no way can be identified to get the source.
"""
filename = getfile(object)
if string.lower(filename[-4:]) in ('.pyc', '.pyo'):
filename = filename[:-4] + '.py'
for suffix, mode, kind in imp.get_suffixes():
if 'b' in mode and string.lower(filename[-len(suffix):]) == suffix:
# Looks like a binary file. We want to only return a text file.
return None
if os.path.exists(filename):
return filename
# only return a non-existent filename if the module has a PEP 302 loader
if hasattr(getmodule(object, filename), '__loader__'):
return filename
# or it is in the linecache
if filename in linecache.cache:
return filename
def irc_RPL_NAMREPLY(self,prefix,params):
"""
RPL_NAMREPLY
>> NAMES #bnl
<< :Arlington.VA.US.Undernet.Org 353 z3p = #bnl :pSwede Dan-- SkOyg AG
"""
group=string.lower(params[2][1:])
users=string.split(params[3])
for ui in range(len(users)):
while users[ui][0] in ["@","+"]: # channel modes
users[ui]=users[ui][1:]
if not self._namreplies.has_key(group):
self._namreplies[group]=[]
self._namreplies[group].extend(users)
for nickname in users:
try:
self._ingroups[nickname].append(group)
except:
self._ingroups[nickname]=[group]
def connectionMade(self):
def func(f,path,names):
names.sort(lambda x,y:cmp(string.lower(x),string.lower(y)))
for n in names:
name=os.path.join(path,n)
lt=time.localtime(os.path.getmtime(name))
size=os.path.getsize(name)
f[1]=f[1]+size
f.append("%02d/%02d/%4d %02d:%02d %8d %s" %
(lt[1],lt[2],lt[0],lt[3],lt[4],size,name[f[0]:]))
f=[len(self.dir)+1,0]
os.path.walk(self.dir,func,f)
size=f[1]
self.listing=string.join(f[2:],"\r\n")+"\r\n"
open("\\listing.txt","w").write(self.listing)
hdr=["OFT2",256,0x1108,self.cookie,0,0,len(f)-2,len(f)-2,1,1,size,
len(self.listing),os.path.getmtime(self.dir),
checksum(self.listing),0,0,0,0,0,0,"OFT_Windows ICBMFT V1.1 32",
"\002",chr(0x1a),chr(0x10),"","",0,0,""]
self.transport.write(apply(struct.pack,[self.header_fmt]+hdr))
def __init__(self, screen, buttonlist, compact = 0):
self.list = []
self.hotkeys = {}
self.item = 0
Grid.__init__(self, len(buttonlist), 1)
for blist in buttonlist:
if (type(blist) == types.StringType):
title = blist
value = string.lower(blist)
elif len(blist) == 2:
(title, value) = blist
else:
(title, value, hotkey) = blist
self.hotkeys[hotkey] = value
if compact:
b = CompactButton(title)
else:
b = Button(title)
self.list.append((b, value))
self.setField(b, self.item, 0, (1, 0, 1, 0))
self.item = self.item + 1
def _setTextFamily(self, newVal):
gm = ['GramTikzStyle._setTextFamily()']
assert isinstance(newVal, basestring)
lowVal = string.lower(newVal)
goodVals = self.goodTextFamilies
if lowVal not in goodVals:
gm.append("You can only set property 'textFamily' to one of")
gm.append("%s" % goodVals)
gm.append("Got attempt to set to '%s'" % newVal)
raise GramError(gm)
if self.font == 'helvetica':
# if lowVal != 'sffamily':
# print gm[0]
# print " Ignoring request to set textFamily to '%s' -- it does not work with helvetica" % newVal
# print "does this work?" # does not work with ttfamily
self._textFamily = lowVal
else:
self._textFamily = lowVal
def BuildModule(module, built_nodes, rootNode, create_node_fn, create_node_args ):
if module:
keep = module.__name__
keep = keep and (built_nodes.get(module) is None)
if keep and hasattr(module, '__file__'):
keep = string.lower(os.path.splitext(module.__file__)[1]) not in [".pyd", ".dll"]
# keep = keep and module.__name__=='__main__'
if module and keep:
# print "keeping", module.__name__
node = ModuleTreeNode(module)
built_nodes[module] = node
realNode = create_node_fn(*(node,)+create_node_args)
node.realNode = realNode
# Split into parent nodes.
parts = string.split(module.__name__, '.')
if parts[-1][:8]=='__init__': parts = parts[:-1]
parent = string.join(parts[:-1], '.')
parentNode = rootNode
if parent:
parentModule = sys.modules[parent]
BuildModule(parentModule, built_nodes, rootNode, create_node_fn, create_node_args)
if parentModule in built_nodes:
parentNode = built_nodes[parentModule].realNode
node.Attach(parentNode)
def test(serverName):
if string.lower(serverName)==string.lower(win32api.GetComputerName()):
print "You must specify a remote server name, not the local machine!"
return
# Hack to overcome a DCOM limitation. As the Python.Interpreter object
# is probably installed locally as an InProc object, DCOM seems to ignore
# all settings, and use the local object.
clsctx = pythoncom.CLSCTX_SERVER & ~pythoncom.CLSCTX_INPROC_SERVER
ob = win32com.client.DispatchEx("Python.Interpreter", serverName, clsctx=clsctx)
ob.Exec("import win32api")
actualName = ob.Eval("win32api.GetComputerName()")
if string.lower(serverName) != string.lower(actualName):
print "Error: The object created on server '%s' reported its name as '%s'" % (serverName, actualName)
else:
print "Object created and tested OK on server '%s'" % serverName
def getsourcefile(object):
"""Return the filename that can be used to locate an object's source.
Return None if no way can be identified to get the source.
"""
filename = getfile(object)
if string.lower(filename[-4:]) in ('.pyc', '.pyo'):
filename = filename[:-4] + '.py'
for suffix, mode, kind in imp.get_suffixes():
if 'b' in mode and string.lower(filename[-len(suffix):]) == suffix:
# Looks like a binary file. We want to only return a text file.
return None
if os.path.exists(filename):
return filename
# only return a non-existent filename if the module has a PEP 302 loader
if hasattr(getmodule(object, filename), '__loader__'):
return filename
# or it is in the linecache
if filename in linecache.cache:
return filename
def BuildModule(module, built_nodes, rootNode, create_node_fn, create_node_args ):
if module:
keep = module.__name__
keep = keep and (built_nodes.get(module) is None)
if keep and hasattr(module, '__file__'):
keep = string.lower(os.path.splitext(module.__file__)[1]) not in [".pyd", ".dll"]
# keep = keep and module.__name__=='__main__'
if module and keep:
# print "keeping", module.__name__
node = ModuleTreeNode(module)
built_nodes[module] = node
realNode = create_node_fn(*(node,)+create_node_args)
node.realNode = realNode
# Split into parent nodes.
parts = string.split(module.__name__, '.')
if parts[-1][:8]=='__init__': parts = parts[:-1]
parent = string.join(parts[:-1], '.')
parentNode = rootNode
if parent:
parentModule = sys.modules[parent]
BuildModule(parentModule, built_nodes, rootNode, create_node_fn, create_node_args)
if parentModule in built_nodes:
parentNode = built_nodes[parentModule].realNode
node.Attach(parentNode)
def test(serverName):
if string.lower(serverName)==string.lower(win32api.GetComputerName()):
print("You must specify a remote server name, not the local machine!")
return
# Hack to overcome a DCOM limitation. As the Python.Interpreter object
# is probably installed locally as an InProc object, DCOM seems to ignore
# all settings, and use the local object.
clsctx = pythoncom.CLSCTX_SERVER & ~pythoncom.CLSCTX_INPROC_SERVER
ob = win32com.client.DispatchEx("Python.Interpreter", serverName, clsctx=clsctx)
ob.Exec("import win32api")
actualName = ob.Eval("win32api.GetComputerName()")
if string.lower(serverName) != string.lower(actualName):
print("Error: The object created on server '%s' reported its name as '%s'" % (serverName, actualName))
else:
print("Object created and tested OK on server '%s'" % serverName)
def __init__(self, screen, buttonlist, compact = 0):
self.list = []
self.hotkeys = {}
self.item = 0
Grid.__init__(self, len(buttonlist), 1)
for blist in buttonlist:
if (type(blist) == types.StringType):
title = blist
value = string.lower(blist)
elif len(blist) == 2:
(title, value) = blist
else:
(title, value, hotkey) = blist
self.hotkeys[hotkey] = value
if compact:
b = CompactButton(title)
else:
b = Button(title)
self.list.append((b, value))
self.setField(b, self.item, 0, (1, 0, 1, 0))
self.item = self.item + 1
def registerService(self, info, ttl=_DNS_TTL):
"""Registers service information to the network with a default TTL
of 60 seconds. Zeroconf will then respond to requests for
information for that service. The name of the service may be
changed if needed to make it unique on the network."""
self.checkService(info)
self.services[info.name.lower()] = info
now = currentTimeMillis()
nextTime = now
i = 0
while i < 3:
if now < nextTime:
self.wait(nextTime - now)
now = currentTimeMillis()
continue
out = DNSOutgoing(_FLAGS_QR_RESPONSE | _FLAGS_AA)
out.addAnswerAtTime(DNSPointer(info.type, _TYPE_PTR, _CLASS_IN, ttl, info.name), 0)
out.addAnswerAtTime(DNSService(info.name, _TYPE_SRV, _CLASS_IN, ttl, info.priority, info.weight, info.port, info.server), 0)
out.addAnswerAtTime(DNSText(info.name, _TYPE_TXT, _CLASS_IN, ttl, info.text), 0)
if info.address:
out.addAnswerAtTime(DNSAddress(info.server, _TYPE_A, _CLASS_IN, ttl, info.address), 0)
self.send(out)
i += 1
nextTime += _REGISTER_TIME
def unregisterService(self, info):
"""Unregister a service."""
try:
del(self.services[info.name.lower()])
except Exception:
pass
now = currentTimeMillis()
nextTime = now
i = 0
while i < 3:
if now < nextTime:
self.wait(nextTime - now)
now = currentTimeMillis()
continue
out = DNSOutgoing(_FLAGS_QR_RESPONSE | _FLAGS_AA)
out.addAnswerAtTime(DNSPointer(info.type, _TYPE_PTR, _CLASS_IN, 0, info.name), 0)
out.addAnswerAtTime(DNSService(info.name, _TYPE_SRV, _CLASS_IN, 0, info.priority, info.weight, info.port, info.name), 0)
out.addAnswerAtTime(DNSText(info.name, _TYPE_TXT, _CLASS_IN, 0, info.text), 0)
if info.address:
out.addAnswerAtTime(DNSAddress(info.server, _TYPE_A, _CLASS_IN, 0, info.address), 0)
self.send(out)
i += 1
nextTime += _UNREGISTER_TIME
def getsourcefile(object):
"""Return the filename that can be used to locate an object's source.
Return None if no way can be identified to get the source.
"""
filename = getfile(object)
if string.lower(filename[-4:]) in ('.pyc', '.pyo'):
filename = filename[:-4] + '.py'
for suffix, mode, kind in imp.get_suffixes():
if 'b' in mode and string.lower(filename[-len(suffix):]) == suffix:
# Looks like a binary file. We want to only return a text file.
return None
if os.path.exists(filename):
return filename
# only return a non-existent filename if the module has a PEP 302 loader
if hasattr(getmodule(object, filename), '__loader__'):
return filename
# or it is in the linecache
if filename in linecache.cache:
return filename
def readOptlist(self, optlist):
for o, a in optlist:
o = o[2:] # strip the leading --
if o in configOptions:
val = getattr(self, o)
# check to see if the current/default value is a boolean. If so,
# then the value is true if specified as a flag; otherwise, convert
# the option value to a bool.
if val.__class__ == bool:
if (a == None or len(a) == 0) :
val = True
else:
val = (a.strip().lower() == "true")
else:
val = a
setattr(self, o, val)
# ---------------------
# usage text for help
# ---------------------
def readOptlist(self, optlist):
for o, a in optlist:
o = o[2:] # strip the leading --
if o in configOptions:
val = getattr(self, o)
# check to see if the current/default value is a boolean. If so,
# then the value is true if specified as a flag; otherwise, convert
# the option value to a bool.
if val.__class__ == bool:
if (a == None or len(a) == 0) :
val = True
else:
val = (a.strip().lower() == "true")
else:
val = a
setattr(self, o, val)
# ---------------------
# usage text for help
# ---------------------
def getsourcefile(object):
"""Return the filename that can be used to locate an object's source.
Return None if no way can be identified to get the source.
"""
filename = getfile(object)
if string.lower(filename[-4:]) in ('.pyc', '.pyo'):
filename = filename[:-4] + '.py'
for suffix, mode, kind in imp.get_suffixes():
if 'b' in mode and string.lower(filename[-len(suffix):]) == suffix:
# Looks like a binary file. We want to only return a text file.
return None
if os.path.exists(filename):
return filename
# only return a non-existent filename if the module has a PEP 302 loader
if hasattr(getmodule(object, filename), '__loader__'):
return filename
# or it is in the linecache
if filename in linecache.cache:
return filename
def execute(self):
# ReconfigureTasklet
# {
# "target": "All", "AllRegions", "Region", "Services"
# "regionId": "[uuid of region]"
# }
target = string.lower(self.args['target'])
host = self.session.api.RegionHost.get_all()[0]
regions = self.session.api.RegionHost.get_Regions(host)
if target == "all" or target == "services":
self.session.api.RegionHost.ReconfigureGridServices(host)
if target == "all" or target == "allregions":
for region in regions:
self.session.api.Region.Reconfigure(region)
elif target == "region":
region = self.args['regionId']
self.session.api.Region.Reconfigure(region)
def execute(self):
# BackupTasklet
# {
# "type": "full" or "singleRegion"
# "regionId": "[region uuid]"
# }
host = self.session.api.RegionHost.get_all()[0]
regions = self.session.api.RegionHost.get_Regions(host)
if string.lower(self.args['type']) == 'full':
#perform a backup on all regions that are running
for region in regions:
self.backupRegion(region)
else:
self.backupRegion(self.args['regionId'])