Commit b6e54adb authored by Fred Drake's avatar Fred Drake

Ooops! I didn't finish all the renaming needed here, so this was

attempting a recursive import and causing a fatal error.
parent 8173d99e
import winreg import _winreg
import sys import sys
import exceptions import exceptions
import array import array
...@@ -9,37 +9,37 @@ class RegType: ...@@ -9,37 +9,37 @@ class RegType:
def __init__( self, msname, friendlyname ): def __init__( self, msname, friendlyname ):
self.msname=msname self.msname=msname
self.friendlyname=friendlyname self.friendlyname=friendlyname
self.intval=getattr( winreg, msname ) self.intval=getattr( _winreg, msname )
def __repr__( self ): def __repr__( self ):
return "<RegType %d: %s %s>" % \ return "<RegType %d: %s %s>" % \
(self.intval, self.msname, self.friendlyname ) (self.intval, self.msname, self.friendlyname )
_typeConstants={ _typeConstants={
winreg.REG_NONE: _winreg.REG_NONE:
RegType( "REG_NONE", "None" ), RegType( "REG_NONE", "None" ),
winreg.REG_SZ: _winreg.REG_SZ:
RegType( "REG_SZ", "String" ), RegType( "REG_SZ", "String" ),
winreg.REG_EXPAND_SZ: _winreg.REG_EXPAND_SZ:
RegType("REG_EXPAND_SZ", "Expandable Template String" ), RegType("REG_EXPAND_SZ", "Expandable Template String" ),
winreg.REG_BINARY: _winreg.REG_BINARY:
RegType("REG_BINARY", "Binary Data"), RegType("REG_BINARY", "Binary Data"),
winreg.REG_DWORD : _winreg.REG_DWORD :
RegType("REG_DWORD", "Integer" ), RegType("REG_DWORD", "Integer" ),
# winreg.REG_DWORD_LITTLE_ENDIAN : # _winreg.REG_DWORD_LITTLE_ENDIAN :
# RegType("REG_DWORD_LITTLE_ENDIAN", "Integer"), # RegType("REG_DWORD_LITTLE_ENDIAN", "Integer"),
winreg.REG_DWORD_BIG_ENDIAN : _winreg.REG_DWORD_BIG_ENDIAN :
RegType("REG_DWORD_BIG_ENDIAN", "Big Endian Integer"), RegType("REG_DWORD_BIG_ENDIAN", "Big Endian Integer"),
winreg.REG_LINK : _winreg.REG_LINK :
RegType("REG_LINK", "Link"), RegType("REG_LINK", "Link"),
winreg.REG_MULTI_SZ : _winreg.REG_MULTI_SZ :
RegType("REG_MULTI_SZ", "List of Strings"), RegType("REG_MULTI_SZ", "List of Strings"),
winreg.REG_RESOURCE_LIST : _winreg.REG_RESOURCE_LIST :
RegType("REG_RESOURCE_LIST", "Resource List"), RegType("REG_RESOURCE_LIST", "Resource List"),
winreg.REG_FULL_RESOURCE_DESCRIPTOR : _winreg.REG_FULL_RESOURCE_DESCRIPTOR :
RegType( "REG_FULL_RESOURCE_DESCRIPTOR", RegType( "REG_FULL_RESOURCE_DESCRIPTOR",
"Full Resource Descriptor" ), "Full Resource Descriptor" ),
winreg.REG_RESOURCE_REQUIREMENTS_LIST: _winreg.REG_RESOURCE_REQUIREMENTS_LIST:
RegType( "REG_RESOURCE_REQUIREMENTS_LIST", RegType( "REG_RESOURCE_REQUIREMENTS_LIST",
"Resource Requirements List" ) "Resource Requirements List" )
} }
...@@ -128,7 +128,7 @@ class RegValuesDict( _DictBase ): ...@@ -128,7 +128,7 @@ class RegValuesDict( _DictBase ):
class RegKeysDict( _DictBase ): class RegKeysDict( _DictBase ):
def _nameFromNum( self, item ): def _nameFromNum( self, item ):
return winreg.EnumKey( self.key.handle, item ) return _winreg.EnumKey( self.key.handle, item )
def __getitem__( self, item ): def __getitem__( self, item ):
keyname=_getName( item, self._nameFromNum ) keyname=_getName( item, self._nameFromNum )
...@@ -162,7 +162,7 @@ def deleteKey( keyname ): ...@@ -162,7 +162,7 @@ def deleteKey( keyname ):
class RegKey: class RegKey:
def _nameFromNum( self, item ): def _nameFromNum( self, item ):
(name,data,datatype)=winreg.EnumValue( self.handle, item ) (name,data,datatype)=_winreg.EnumValue( self.handle, item )
return name return name
def __nonzero__(self): def __nonzero__(self):
...@@ -185,7 +185,7 @@ class RegKey: ...@@ -185,7 +185,7 @@ class RegKey:
return "<Windows RegKey: %s>"% self.name return "<Windows RegKey: %s>"% self.name
def close(self ): def close(self ):
return winreg.CloseKey( self.handle ) return _winreg.CloseKey( self.handle )
def getSubkeyNames( self ): def getSubkeyNames( self ):
return self.getSubkeys().keys() return self.getSubkeys().keys()
...@@ -194,20 +194,20 @@ class RegKey: ...@@ -194,20 +194,20 @@ class RegKey:
return self.getValues().keys() return self.getValues().keys()
def deleteSubkey( self, subkey ): def deleteSubkey( self, subkey ):
return winreg.DeleteKey( self.handle, subkey ) return _winreg.DeleteKey( self.handle, subkey )
def deleteValue( self, valname ): def deleteValue( self, valname ):
return winreg.DeleteValue( self.handle, valname ) return _winreg.DeleteValue( self.handle, valname )
def createSubkey( self, keyname ): def createSubkey( self, keyname ):
handle=winreg.CreateKey( self.handle, keyname ) handle=_winreg.CreateKey( self.handle, keyname )
return RegKey( self.name+"\\"+keyname, handle) return RegKey( self.name+"\\"+keyname, handle)
def openSubkey( self, keyname, samFlags=None ): def openSubkey( self, keyname, samFlags=None ):
if samFlags: if samFlags:
handle=winreg.OpenKey( self.handle, keyname, 0, samFlags ) handle=_winreg.OpenKey( self.handle, keyname, 0, samFlags )
else: else:
handle=winreg.OpenKey( self.handle, keyname, 0 ) handle=_winreg.OpenKey( self.handle, keyname, 0 )
return RegKey( self.name+"\\"+keyname, handle ) return RegKey( self.name+"\\"+keyname, handle )
def getSubkeys( self ): def getSubkeys( self ):
...@@ -219,14 +219,14 @@ class RegKey: ...@@ -219,14 +219,14 @@ class RegKey:
def getValueNameDataAndType( self, valname ): def getValueNameDataAndType( self, valname ):
try: try:
if type( valname )==IntType: if type( valname )==IntType:
(valname,data,datatype)=winreg.EnumValue( self.handle, valname ) (valname,data,datatype)=_winreg.EnumValue( self.handle, valname )
else: else:
keyname=_getName( valname, self._nameFromNum ) keyname=_getName( valname, self._nameFromNum )
(data,datatype)=winreg.QueryValueEx( self.handle, keyname ) (data,datatype)=_winreg.QueryValueEx( self.handle, keyname )
except (WindowsError, EnvironmentError): except (WindowsError, EnvironmentError):
raise IndexError, valname raise IndexError, valname
if datatype==winreg.REG_BINARY: if datatype==_winreg.REG_BINARY:
# use arrays for binary data # use arrays for binary data
data=array.array( 'c', data ) data=array.array( 'c', data )
...@@ -241,28 +241,28 @@ class RegKey: ...@@ -241,28 +241,28 @@ class RegKey:
typeint=regtype.intval typeint=regtype.intval
else: else:
if type( data )==StringType: if type( data )==StringType:
typeint=winreg.REG_SZ typeint=_winreg.REG_SZ
elif type( data )==IntType: elif type( data )==IntType:
typeint=winreg.REG_DWORD typeint=_winreg.REG_DWORD
elif type( data )==array.ArrayType: elif type( data )==array.ArrayType:
typeint=winreg.REG_BINARY typeint=_winreg.REG_BINARY
data=data.tostring() data=data.tostring()
winreg.SetValueEx( self.handle, valname, 0, typeint, data ) _winreg.SetValueEx( self.handle, valname, 0, typeint, data )
def flush(self ): def flush(self ):
winreg.FlushKey( self.keyobbj ) _winreg.FlushKey( self.keyobbj )
def save( self, filename ): def save( self, filename ):
winreg.SaveKey( self.keyobj, filename ) _winreg.SaveKey( self.keyobj, filename )
def load( self, subkey, filename ): def load( self, subkey, filename ):
return winreg.RegLoadKey( self.handle, subkey, filename ) return _winreg.RegLoadKey( self.handle, subkey, filename )
class RemoteKey( RegKey ): class RemoteKey( RegKey ):
def __init__( self, machine, topLevelKey ): def __init__( self, machine, topLevelKey ):
assert topLevelKey in _hivenames assert topLevelKey in _hivenames
self.handle = winreg.ConnectRegistry( machine, parentKey ) self.handle = _winreg.ConnectRegistry( machine, parentKey )
self.name=r"\\%s\%s" % (machine, topLevelKey ) self.name=r"\\%s\%s" % (machine, topLevelKey )
_hivenames = ["HKEY_CLASSES_ROOT","HKEY_CURRENT_USER","HKEY_LOCAL_MACHINE", _hivenames = ["HKEY_CLASSES_ROOT","HKEY_CURRENT_USER","HKEY_LOCAL_MACHINE",
...@@ -270,7 +270,7 @@ _hivenames = ["HKEY_CLASSES_ROOT","HKEY_CURRENT_USER","HKEY_LOCAL_MACHINE", ...@@ -270,7 +270,7 @@ _hivenames = ["HKEY_CLASSES_ROOT","HKEY_CURRENT_USER","HKEY_LOCAL_MACHINE",
"HKEY_PERFORMANCE_DATA"] "HKEY_PERFORMANCE_DATA"]
hives={} hives={}
for name in _hivenames: for name in _hivenames:
hives[name]=RegKey( name, getattr( winreg, name ) ) hives[name]=RegKey( name, getattr( _winreg, name ) )
hives["HKLM"]=hives["HKEY_LOCAL_MACHINE"] hives["HKLM"]=hives["HKEY_LOCAL_MACHINE"]
hives["HKCR"]=hives["HKEY_CLASSES_ROOT"] hives["HKCR"]=hives["HKEY_CLASSES_ROOT"]
hives["HKCU"]=hives["HKEY_CURRENT_USER"] hives["HKCU"]=hives["HKEY_CURRENT_USER"]
...@@ -280,7 +280,7 @@ _flagnames = ["KEY_ALL_ACCESS","KEY_CREATE_LINK", "KEY_CREATE_SUB_KEY", ...@@ -280,7 +280,7 @@ _flagnames = ["KEY_ALL_ACCESS","KEY_CREATE_LINK", "KEY_CREATE_SUB_KEY",
"KEY_QUERY_VALUE", "KEY_READ", "KEY_SET_VALUE"] "KEY_QUERY_VALUE", "KEY_READ", "KEY_SET_VALUE"]
flags={} flags={}
for name in _flagnames: for name in _flagnames:
flags[name]=getattr( winreg, name ) flags[name]=getattr( _winreg, name )
_RegNotifyChangeKeyValueOptions=[ "REG_NOTIFY_CHANGE_ATTRIBUTES", _RegNotifyChangeKeyValueOptions=[ "REG_NOTIFY_CHANGE_ATTRIBUTES",
"REG_NOTIFY_CHANGE_SECURITY", "REG_NOTIFY_CHANGE_LAST_SET", "REG_NOTIFY_CHANGE_SECURITY", "REG_NOTIFY_CHANGE_LAST_SET",
...@@ -311,7 +311,7 @@ def test(): ...@@ -311,7 +311,7 @@ def test():
#typeConstantNames=map( lambda x: x.msname, typeConstants.values() ) #typeConstantNames=map( lambda x: x.msname, typeConstants.values() )
#allnames=_hivenames+_flagnames+typeConstantNames+unusednames #allnames=_hivenames+_flagnames+typeConstantNames+unusednames
#winregnames=winreg.__dict__.keys() #winregnames=_winreg.__dict__.keys()
#for name in winregnames: #for name in winregnames:
# if name not in allnames: # if name not in allnames:
# print name # print name
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment