Hi all together!
As this is my first post a short introducion: I am an geo-engineer
working on geoinformatics, spatial databases and spatial data
infrastructure. For this I am using sqlalchemy and geoalchemy for most
database-projects. At the moment i run into an error after upgrading
to 0.7.4.
I write a library with some classes that has to bundle function for
different applications accessing data on a PostgreSQL-9.x Server.
sqlalchemy is installed and maintained by easy_install not by
packetmanagement. After upgrading to 0.7.4 the following error occurs:
Python 2.6.5 (r265:79063, May 6 2011, 17:25:59)
[GCC 4.5.0 20100604 [gcc-4_5-branch revision 160292]] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlalchemy
>>> sqlalchemy.__version__
'0.7.4'
>>> import endblib
/usr/local/lib64/python2.6/site-packages/endblib/model/auth.py:42:
SADeprecationWarning: useexisting is deprecated. Use extend_existing.
schema=schemata['pub'], useexisting=False
/usr/local/lib64/python2.6/site-packages/endblib/model/auth.py:52:
SADeprecationWarning: useexisting is deprecated. Use extend_existing.
schema=schemata['pub'], useexisting=False
/usr/local/lib/python2.6/site-packages/SQLAlchemy-0.7.4-py2.6-linux-
x86_64.egg/sqlalchemy/ext/declarative.py:1172: SADeprecationWarning:
useexisting is deprecated. Use extend_existing.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib64/python2.6/site-packages/endblib/__init__.py",
line 24, in <module>
import model.endb as endb
File "/usr/local/lib64/python2.6/site-packages/endblib/model/
__init__.py", line 4, in <module>
import endb
File "/usr/local/lib64/python2.6/site-packages/endblib/model/
endb.py", line 479, in <module>
class Facility(EnDBBaseMixIn, Producer):
File "build/bdist.linux-x86_64/egg/sqlalchemy/ext/declarative.py",
line 1273, in __init__
File "build/bdist.linux-x86_64/egg/sqlalchemy/ext/declarative.py",
line 1266, in _as_declarative
File "build/bdist.linux-x86_64/egg/sqlalchemy/orm/__init__.py", line
1114, in mapper
File "build/bdist.linux-x86_64/egg/sqlalchemy/orm/mapper.py", line
201, in __init__
File "build/bdist.linux-x86_64/egg/sqlalchemy/orm/mapper.py", line
824, in _configure_properties
File "build/bdist.linux-x86_64/egg/sqlalchemy/orm/mapper.py", line
1481, in _should_exclude
File "build/bdist.linux-x86_64/egg/sqlalchemy/orm/mapper.py", line
1458, in _is_userland_descriptor
TypeError: Error when calling the metaclass bases
issubclass() arg 1 must be a class
The import works fine in version 0.6.6.
What (I think ;) ) it does here: It tries to map the class Facility
which consists of a MixIn-class to provide some special methods and a
parent class which provides some fields and general methods. Some
tests are done and one of it fails. To hunt this error down I searched
the code and found this in the function _is_userland_descriptor:
version 0.7.4:
def _is_userland_descriptor(self,
obj):
return not isinstance(obj,
(MapperProperty, attributes.QueryableAttribute))
and \
hasattr(obj, '__get__') and not \
isinstance(obj.__get__(None, obj),
attributes.QueryableAttribute)
version 0.6.6:
def _is_userland_descriptor(self, obj):
return not
isinstance(obj,
(MapperProperty,
attributes.InstrumentedAttribute)) and \
hasattr(obj, '__get__')
So what causes the error? If i have some time today i will try to
build a compressed example to demonstrate te effect. Can it be a
solution to set the two functions in a try/except-block?
Thank you in advance.
Uwe Seher
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.