Author: phd
Date: 2005-02-10 12:18:05 +0000 (Thu, 10 Feb 2005)
New Revision: 596
Added:
home/phd/SQLObject/inheritance/sqlobject/tests/test_basic_old.py
home/phd/SQLObject/inheritance/sqlobject/tests/test_sorting_old.py
home/phd/SQLObject/inheritance/sqlobject/tests/test_stringid_old.py
home/phd/SQLObject/inheritance/sqlobject/tests/test_style_old.py
Modified:
home/phd/SQLObject/inheritance/sqlobject/classregistry.py
home/phd/SQLObject/inheritance/sqlobject/main.py
home/phd/SQLObject/inheritance/sqlobject/tests/dbtest.py
home/phd/SQLObject/inheritance/sqlobject/tests/test_basic.py
home/phd/SQLObject/inheritance/sqlobject/tests/test_sorting.py
home/phd/SQLObject/inheritance/sqlobject/tests/test_stringid.py
home/phd/SQLObject/inheritance/sqlobject/tests/test_style.py
Log:
Merged patches from revisions 591:595 from the trunk
Modified: home/phd/SQLObject/inheritance/sqlobject/classregistry.py
===================================================================
--- home/phd/SQLObject/inheritance/sqlobject/classregistry.py 2005-02-10 04:53:14 UTC (rev 595)
+++ home/phd/SQLObject/inheritance/sqlobject/classregistry.py 2005-02-10 12:18:05 UTC (rev 596)
@@ -74,9 +74,11 @@
"%r, from the module %s in %s)"
% (cls.__name__,
other, other.__module__,
- sys.modules[other.__module__].__file__,
+ getattr(sys.modules.get(other.__module__),
+ '__file__', '(unknown)'),
cls, cls.__module__,
- sys.modules[cls.__module__].__file__))
+ getattr(sys.modules.get(cls.__module__),
+ '__file__', '(unknown)')))
self.classes[cls.__name__] = cls
if self.callbacks.has_key(cls.__name__):
for callback, args, kw in self.callbacks[cls.__name__]:
Modified: home/phd/SQLObject/inheritance/sqlobject/main.py
===================================================================
--- home/phd/SQLObject/inheritance/sqlobject/main.py 2005-02-10 04:53:14 UTC (rev 595)
+++ home/phd/SQLObject/inheritance/sqlobject/main.py 2005-02-10 12:18:05 UTC (rev 596)
@@ -30,7 +30,6 @@
import joins
import index
import classregistry
-findClass = classregistry.findClass # for those who imported findClass from sqlobject.main
import declarative
import sys
@@ -110,8 +109,6 @@
delFunc(obj, var)
break
-#phd: findClass has been moved to classregistry to avoid circular import
-
def findDependencies(name, registry=None):
depends = []
for klass in classregistry.registry(registry).allClasses():
@@ -161,9 +158,6 @@
def setClass(cls, soClass):
cls.soClass = soClass
- setClass = classmethod(setClass)
-
- def finishClass(cls):
if not cls.style:
if cls.soClass._connection and cls.soClass._connection.style:
cls.style = cls.soClass._connection.style
@@ -173,7 +167,7 @@
cls.table = cls.style.pythonClassToDBTable(cls.soClass.__name__)
if cls.idName is None:
cls.idName = cls.style.idForTable(cls.table)
- finishClass = classmethod(finishClass)
+ setClass = classmethod(setClass)
class _sqlmeta_attr(object):
@@ -182,17 +176,24 @@
def __get__(self, obj, type=None):
return getattr((type or obj).sqlmeta, self.name)
-
+
# @@: This should become a public interface or documented or
# something. Turning it on gives earlier warning about things
# that will be deprecated (having this off we won't flood people
# with warnings right away).
-strict_warnings = False
+warnings_level = 1
+exception_level = None
+# Current levels:
+# 1) Actively deprecated in version after 0.6.1 (0.7?); removed after
+# 2) Deprecated after 1 (0.8?)
+# 3) Deprecated after 2 (0.9?)
-def deprecated(message):
- if strict_warnings:
- warnings.warn(message, DeprecationWarning, stacklevel=1)
+def deprecated(message, level=1):
+ if exception_level is not None and exception_level <= level:
+ raise NotImplementedError(message)
+ if warnings_level is not None and warnings_level <= level:
+ warnings.warn(message, DeprecationWarning, stacklevel=2)
class SelectResults(object):
IterationClass = dbconnection.Iteration
@@ -437,8 +438,6 @@
#cls.sqlmeta = cls.sqlmeta.clone()
cls.sqlmeta = type('sqlmeta', (cls.sqlmeta,), {})
cls.sqlmeta.setClass(cls)
- cls.sqlmeta.finishClass()
-
implicitColumns = []
implicitJoins = []
@@ -462,7 +461,7 @@
if (new_attrs.has_key('_table') and not is_base):
deprecated("'_table' is deprecated; please set the 'table' "
- "attribute in sqlmeta instead")
+ "attribute in sqlmeta instead", level=2)
cls.sqlmeta.table = cls._table
del cls._table
@@ -551,7 +550,7 @@
if (new_attrs.has_key('_style') and not is_base):
deprecated("'_style' is deprecated; please set the 'style' "
- "attribute in sqlmeta instead")
+ "attribute in sqlmeta instead", level=2)
cls.sqlmeta.style = cls._style
del cls._style
@@ -574,7 +573,7 @@
if (new_attrs.has_key('_idName') and not is_base):
deprecated("'_idName' is deprecated; please set the 'idName' "
- "attribute in sqlmeta instead")
+ "attribute in sqlmeta instead", level=2)
cls.sqlmeta.idName = cls._idName
del cls._idName
@@ -1504,6 +1503,6 @@
else:
return obj
-__all__ = ['NoDefault', 'SQLObject',
+__all__ = ['NoDefault', 'SQLObject', 'sqlmeta',
'getID', 'getObject',
'SQLObjectNotFound']
Modified: home/phd/SQLObject/inheritance/sqlobject/tests/dbtest.py
===================================================================
--- home/phd/SQLObject/inheritance/sqlobject/tests/dbtest.py 2005-02-10 04:53:14 UTC (rev 595)
+++ home/phd/SQLObject/inheritance/sqlobject/tests/dbtest.py 2005-02-10 12:18:05 UTC (rev 596)
@@ -229,5 +229,27 @@
# To avoid name clashes:
_inserts = inserts
+def deprecated_module():
+ sqlobject.main.warnings_level = None
+ sqlobject.main.exception_level = None
+
+def setup_module(mod):
+ # modules with '_old' test backward compatible methods, so they
+ # don't get warnings or errors.
+ mod_name = str(mod.__name__)
+ if mod_name.endswith('/py'):
+ mod_name = mod_name[:-3]
+ if mod_name.endswith('_old'):
+ sqlobject.main.warnings_level = None
+ sqlobject.main.exception_level = None
+ else:
+ sqlobject.main.warnings_level = None
+ sqlobject.main.exception_level = 0
+
+def teardown_module(mod=None):
+ sqlobject.main.warnings_level = None
+ sqlobject.main.exception_level = 0
+
__all__ = ['getConnection', 'setupClass', 'Dummy', 'raises',
- 'd', 'inserts', 'supports']
+ 'd', 'inserts', 'supports', 'deprecated_module',
+ 'setup_module', 'teardown_module']
Modified: home/phd/SQLObject/inheritance/sqlobject/tests/test_basic.py
===================================================================
--- home/phd/SQLObject/inheritance/sqlobject/tests/test_basic.py 2005-02-10 04:53:14 UTC (rev 595)
+++ home/phd/SQLObject/inheritance/sqlobject/tests/test_basic.py 2005-02-10 12:18:05 UTC (rev 596)
@@ -5,9 +5,7 @@
name = StringCol(length=50, dbName='name_col')
_cacheValues = False
- _columns = [
- StringCol('passwd', length=10),
- ]
+ passwd = StringCol(length=10)
def _set_passwd(self, passwd):
self._SO_set_passwd(passwd.encode('rot13'))
Copied: home/phd/SQLObject/inheritance/sqlobject/tests/test_basic_old.py (from rev 595, trunk/SQLObject/sqlobject/tests/test_basic_old.py)
Modified: home/phd/SQLObject/inheritance/sqlobject/tests/test_sorting.py
===================================================================
--- home/phd/SQLObject/inheritance/sqlobject/tests/test_sorting.py 2005-02-10 04:53:14 UTC (rev 595)
+++ home/phd/SQLObject/inheritance/sqlobject/tests/test_sorting.py 2005-02-10 12:18:05 UTC (rev 596)
@@ -3,7 +3,8 @@
class Names(SQLObject):
- _table = 'names_table'
+ class sqlmeta(sqlmeta):
+ table = 'names_table'
firstName = StringCol(length=30)
lastName = StringCol(length=30)
Copied: home/phd/SQLObject/inheritance/sqlobject/tests/test_sorting_old.py (from rev 595, trunk/SQLObject/sqlobject/tests/test_sorting_old.py)
Modified: home/phd/SQLObject/inheritance/sqlobject/tests/test_stringid.py
===================================================================
--- home/phd/SQLObject/inheritance/sqlobject/tests/test_stringid.py 2005-02-10 04:53:14 UTC (rev 595)
+++ home/phd/SQLObject/inheritance/sqlobject/tests/test_stringid.py 2005-02-10 12:18:05 UTC (rev 596)
@@ -7,7 +7,8 @@
class SOStringID(SQLObject):
- _table = 'so_string_id'
+ class sqlmeta(sqlmeta):
+ table = 'so_string_id'
_idType = str
val = StringCol(alternateID=True)
Copied: home/phd/SQLObject/inheritance/sqlobject/tests/test_stringid_old.py (from rev 595, trunk/SQLObject/sqlobject/tests/test_stringid_old.py)
Modified: home/phd/SQLObject/inheritance/sqlobject/tests/test_style.py
===================================================================
--- home/phd/SQLObject/inheritance/sqlobject/tests/test_style.py 2005-02-10 04:53:14 UTC (rev 595)
+++ home/phd/SQLObject/inheritance/sqlobject/tests/test_style.py 2005-02-10 12:18:05 UTC (rev 596)
@@ -12,11 +12,13 @@
class SOStyleTest1(SQLObject):
a = StringCol()
st2 = ForeignKey('SOStyleTest2')
- _style = AnotherStyle()
+ class sqlmeta(sqlmeta):
+ style = AnotherStyle()
class SOStyleTest2(SQLObject):
b = StringCol()
- _style = AnotherStyle()
+ class sqlmeta(sqlmeta):
+ style = AnotherStyle()
def test_style():
setupClass([SOStyleTest2, SOStyleTest1])
Copied: home/phd/SQLObject/inheritance/sqlobject/tests/test_style_old.py (from rev 595, trunk/SQLObject/sqlobject/tests/test_style_old.py)
|