[Python-checkins] CVS: python/dist/src/Lib/plat-win winreg.py,1.3,1.4
Paul Prescod
python-dev@python.org
Fri, 21 Jul 2000 14:43:11 -0700
- Previous message: [Python-checkins] CVS: python/nondist/sandbox/doctools README,NONE,1.1 htmldoc.py,NONE,1.1 inspect.py,NONE,1.1 onlinehelp.py,NONE,1.1
- Next message: [Python-checkins] CVS: python/nondist/peps pep-0213.txt,1.2,1.3
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/python/python/dist/src/Lib/plat-win
In directory slayer.i.sourceforge.net:/tmp/cvs-serv23894
Modified Files:
winreg.py
Log Message:
Added docstrings
Index: winreg.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/plat-win/winreg.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** winreg.py 2000/07/01 20:57:03 1.3
--- winreg.py 2000/07/21 21:43:09 1.4
***************
*** 1,2 ****
--- 1,33 ----
+ """
+ Windows registry support.
+
+ openKey( keyname )
+ open existing key object
+
+ >>> key=openKey( r"HKLM\HARDWARE\DESCRIPTION\System" )
+
+ createKey( keyname )
+ create a key if it doesn't already exist
+
+ >>> key=createKey( r"HKLM\SOFTWARE\Python\Test" )
+
+ deleteKey( keyname )
+ delete a key if it exists
+ Note: deleteKey may not be recursive on all platforms.
+
+ >>> key=createKey( r"HKLM\SOFTWARE\Python\Test" )
+
+ RemoteKey( machine, top_level_key ):
+ open a key on another machine.
+ You can use the returned key as a basis for opens, creates and deletes
+ on the other machine.
+
+ >>> key=RemoteKey( "somemachine", "HKLM" )
+
+ For information on the key API, open a key and look at its docstring.
+
+
+ """
+
import _winreg
import sys
***************
*** 7,10 ****
--- 38,42 ----
class RegType:
+ "Represents one of the types that can go into the registry"
def __init__( self, msname, friendlyname ):
self.msname=msname
***************
*** 13,16 ****
--- 45,49 ----
def __repr__( self ):
+ "Return a useful representation of the type object"
return "<RegType %d: %s %s>" % \
(self.intval, self.msname, self.friendlyname )
***************
*** 50,61 ****
--- 83,97 ----
class _DictBase:
+ "Base class for dictionary-type objects"
def __init__( self, key ):
self.key=key
def clear( self ):
+ "Clear the list of keys/data values, as in dictionaries"
keys=list( self.keys() )
map( self.__delitem__, keys )
def get( self, item, defaultVal=None ):
+ "Get a key/value by name or index"
try:
return self.__getitem__( item )
***************
*** 64,67 ****
--- 100,104 ----
def has_key( self, item ):
+ "Check if a key/data value with a particular name exists"
try:
self.__getitem__( item )
***************
*** 71,74 ****
--- 108,112 ----
def keys( self ):
+ "Get a list of key/data value names"
keys=[]
try:
***************
*** 81,84 ****
--- 119,123 ----
def values( self ):
+ "Get a list of key objects or data values"
values=[] # map() doesn't use the IndexError semantics...
for i in self:
***************
*** 87,90 ****
--- 126,130 ----
def items( self ):
+ "Get pairs of keyname/key object or valuename/value data"
return map( None, self.keys(), self.values() )
***************
*** 93,96 ****
--- 133,137 ----
def _getName( item, nameFromNum ):
+ "Helper function -- don't use it directly"
if type( item ) == IntType:
try:
***************
*** 108,111 ****
--- 149,153 ----
class RegValuesDict( _DictBase ):
+ "A dictionary of registry data values"
def _nameFromNum( self, i ):
return self.key._nameFromNum( i )
***************
*** 125,131 ****
valname=_getName( item, self._nameFromNum )
self.key.deleteValue( valname )
-
class RegKeysDict( _DictBase ):
def _nameFromNum( self, item ):
return _winreg.EnumKey( self.key.handle, item )
--- 167,173 ----
valname=_getName( item, self._nameFromNum )
self.key.deleteValue( valname )
class RegKeysDict( _DictBase ):
+ "A dictionary of registry keys"
def _nameFromNum( self, item ):
return _winreg.EnumKey( self.key.handle, item )
***************
*** 140,143 ****
--- 182,186 ----
def openKey( keyname, samFlags=None ):
+ "Open a key by name"
lst=string.split( keyname, "\\", 1 )
if len( lst )==2:
***************
*** 162,170 ****
--- 205,221 ----
class RegKey:
+ "A registry key object"
+
+ def __init__( self, name, handle=None ):
+ self.name=name
+ self.handle=handle
+
def _nameFromNum( self, item ):
+ "internal"
(name,data,datatype)=_winreg.EnumValue( self.handle, item )
return name
def __nonzero__(self):
+ "Is the key open?"
if self.handle:
return 1
***************
*** 173,176 ****
--- 224,228 ----
def __cmp__ (self, other ):
+ "Compare two keys for equality"
if hasattr( other, "handle" ) and hasattr( other, "name" ):
return cmp( self.name, other.name )
***************
*** 178,208 ****
return cmp( self.handle, other )
- def __init__( self, name, handle=None ):
- self.name=name
- self.handle=handle
-
def __repr__( self ):
return "<Windows RegKey: %s>"% self.name
def close(self ):
return _winreg.CloseKey( self.handle )
def getSubkeyNames( self ):
return self.getSubkeys().keys()
def getValueNames( self ):
return self.getValues().keys()
def deleteSubkey( self, subkey ):
return _winreg.DeleteKey( self.handle, subkey )
def deleteValue( self, valname ):
return _winreg.DeleteValue( self.handle, valname )
def createSubkey( self, keyname ):
handle=_winreg.CreateKey( self.handle, keyname )
return RegKey( self.name+"\\"+keyname, handle)
def openSubkey( self, keyname, samFlags=None ):
if samFlags:
handle=_winreg.OpenKey( self.handle, keyname, 0, samFlags )
--- 230,263 ----
return cmp( self.handle, other )
def __repr__( self ):
return "<Windows RegKey: %s>"% self.name
def close(self ):
+ "Close the key"
return _winreg.CloseKey( self.handle )
def getSubkeyNames( self ):
+ "Get a list of subkey names"
return self.getSubkeys().keys()
def getValueNames( self ):
+ "Get a list of value names"
return self.getValues().keys()
def deleteSubkey( self, subkey ):
+ "Delete a subkey by name"
return _winreg.DeleteKey( self.handle, subkey )
def deleteValue( self, valname ):
+ "Delete a value by name"
return _winreg.DeleteValue( self.handle, valname )
def createSubkey( self, keyname ):
+ "Create a subkey by name"
handle=_winreg.CreateKey( self.handle, keyname )
return RegKey( self.name+"\\"+keyname, handle)
def openSubkey( self, keyname, samFlags=None ):
+ "Open a named subkey"
if samFlags:
handle=_winreg.OpenKey( self.handle, keyname, 0, samFlags )
***************
*** 212,221 ****
--- 267,279 ----
def getSubkeys( self ):
+ "Get a dictionary-like mapping of subkeys"
return RegKeysDict( self )
def getValues( self ):
+ "Get a dictionary-like mapping of data values"
return RegValuesDict( self )
def getValueNameDataAndType( self, valname ):
+ "Get a data value's name, data and type all at one time"
try:
if type( valname )==IntType:
***************
*** 234,241 ****
--- 292,301 ----
def getValueData( self, valname ):
+ "Get a data value's data."
name, data, type=self.getValueNameDataAndType( valname )
return data
def setValue( self, valname, data, regtype=None ):
+ "Set a data value's data (and optionally type)"
if regtype:
typeint=regtype.intval
***************
*** 251,264 ****
--- 311,330 ----
def flush(self ):
+ "Make sure that all changes are written to the registry. "
+ "Only use this if you know what you are doing. "
+ "It isn't usually needed."
_winreg.FlushKey( self.keyobbj )
def save( self, filename ):
+ "Save a key to a filename"
_winreg.SaveKey( self.keyobj, filename )
def load( self, subkey, filename ):
+ "Load a key from a filename"
return _winreg.RegLoadKey( self.handle, subkey, filename )
class RemoteKey( RegKey ):
+ "Open a key on a remote machine"
def __init__( self, machine, topLevelKey ):
assert topLevelKey in _hivenames
- Previous message: [Python-checkins] CVS: python/nondist/sandbox/doctools README,NONE,1.1 htmldoc.py,NONE,1.1 inspect.py,NONE,1.1 onlinehelp.py,NONE,1.1
- Next message: [Python-checkins] CVS: python/nondist/peps pep-0213.txt,1.2,1.3
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]