[Python-checkins] python/dist/src/Lib pickle.py,1.143,1.144 copy_reg.py,1.14,1.15
gvanrossum@users.sourceforge.net
gvanrossum@users.sourceforge.net
Mon, 03 Feb 2003 17:54:51 -0800
Update of /cvsroot/python/python/dist/src/Lib
In directory sc8-pr-cvs1:/tmp/cvs-serv3141/Lib
Modified Files:
pickle.py copy_reg.py
Log Message:
Rename the extension registry variables to have leading underscores --
this clarifies that they are part of an internal API (albeit shared
between pickle.py, copy_reg.py and cPickle.c).
I'd like to do the same for copy_reg.dispatch_table, but worry that it
might be used by existing code. This risk doesn't exist for the
extension registry.
Index: pickle.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/pickle.py,v
retrieving revision 1.143
retrieving revision 1.144
diff -C2 -d -r1.143 -r1.144
*** pickle.py 3 Feb 2003 19:46:54 -0000 1.143
--- pickle.py 4 Feb 2003 01:54:48 -0000 1.144
***************
*** 29,33 ****
from types import *
from copy_reg import dispatch_table, _reconstructor
! from copy_reg import extension_registry, inverted_registry, extension_cache
import marshal
import sys
--- 29,33 ----
from types import *
from copy_reg import dispatch_table, _reconstructor
! from copy_reg import _extension_registry, _inverted_registry, _extension_cache
import marshal
import sys
***************
*** 846,850 ****
if self.proto >= 2:
! code = extension_registry.get((module, name))
if code:
assert code > 0
--- 846,850 ----
if self.proto >= 2:
! code = _extension_registry.get((module, name))
if code:
assert code > 0
***************
*** 1239,1251 ****
def get_extension(self, code):
nil = []
! obj = extension_cache.get(code, nil)
if obj is not nil:
self.append(obj)
return
! key = inverted_registry.get(code)
if not key:
raise ValueError("unregistered extension code %d" % code)
obj = self.find_class(*key)
! extension_cache[code] = obj
self.append(obj)
--- 1239,1251 ----
def get_extension(self, code):
nil = []
! obj = _extension_cache.get(code, nil)
if obj is not nil:
self.append(obj)
return
! key = _inverted_registry.get(code)
if not key:
raise ValueError("unregistered extension code %d" % code)
obj = self.find_class(*key)
! _extension_cache[code] = obj
self.append(obj)
Index: copy_reg.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/copy_reg.py,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** copy_reg.py 4 Feb 2003 00:21:06 -0000 1.14
--- copy_reg.py 4 Feb 2003 01:54:49 -0000 1.15
***************
*** 79,85 ****
# reserved.
! extension_registry = {} # key -> code
! inverted_registry = {} # code -> key
! extension_cache = {} # code -> object
# Don't ever rebind those names: cPickle grabs a reference to them when
# it's initialized, and won't see a rebinding.
--- 79,85 ----
# reserved.
! _extension_registry = {} # key -> code
! _inverted_registry = {} # code -> key
! _extension_cache = {} # code -> object
# Don't ever rebind those names: cPickle grabs a reference to them when
# it's initialized, and won't see a rebinding.
***************
*** 91,120 ****
raise ValueError, "code out of range"
key = (module, name)
! if (extension_registry.get(key) == code and
! inverted_registry.get(code) == key):
return # Redundant registrations are benign
! if key in extension_registry:
raise ValueError("key %s is already registered with code %s" %
! (key, extension_registry[key]))
! if code in inverted_registry:
raise ValueError("code %s is already in use for key %s" %
! (code, inverted_registry[code]))
! extension_registry[key] = code
! inverted_registry[code] = key
def remove_extension(module, name, code):
"""Unregister an extension code. For testing only."""
key = (module, name)
! if (extension_registry.get(key) != code or
! inverted_registry.get(code) != key):
raise ValueError("key %s is not registered with code %s" %
(key, code))
! del extension_registry[key]
! del inverted_registry[code]
! if code in extension_cache:
! del extension_cache[code]
def clear_extension_cache():
! extension_cache.clear()
# Standard extension code assignments
--- 91,120 ----
raise ValueError, "code out of range"
key = (module, name)
! if (_extension_registry.get(key) == code and
! _inverted_registry.get(code) == key):
return # Redundant registrations are benign
! if key in _extension_registry:
raise ValueError("key %s is already registered with code %s" %
! (key, _extension_registry[key]))
! if code in _inverted_registry:
raise ValueError("code %s is already in use for key %s" %
! (code, _inverted_registry[code]))
! _extension_registry[key] = code
! _inverted_registry[code] = key
def remove_extension(module, name, code):
"""Unregister an extension code. For testing only."""
key = (module, name)
! if (_extension_registry.get(key) != code or
! _inverted_registry.get(code) != key):
raise ValueError("key %s is not registered with code %s" %
(key, code))
! del _extension_registry[key]
! del _inverted_registry[code]
! if code in _extension_cache:
! del _extension_cache[code]
def clear_extension_cache():
! _extension_cache.clear()
# Standard extension code assignments