hello, I am using TurboEntity and SQLAlchemy-0.3.1. I am getting the
following error:
<!-- ~/Documents/DataProc/Development/data/source/CCIS tbrannon -->
python parser.py
<csv.DictReader instance at 0x121a648>
{'drug_id': '1701',
'mechanism': 'Complement Cascade Inhibitor',
'mechanism_id': '595818'}
'Mechanism'
CLASSOBJ <class '__main__.Mechanism'>
Traceback (most recent call last):
File "parser.py", line 62, in ?
main()
File "parser.py", line 59, in main
o.store(row)
File "parser.py", line 45, in store
classins = classobj(**row)
File "build/bdist.darwin-8.8.1-i386/egg/sqlalchemy/orm/mapper.py",
line 562, in init
File
"build/bdist.darwin-8.8.1-i386/egg/sqlalchemy/ext/assignmapper.py",
line 23, in __init__
File
"build/bdist.darwin-8.8.1-i386/egg/sqlalchemy/orm/attributes.py", line
42, in __set__
File
"build/bdist.darwin-8.8.1-i386/egg/sqlalchemy/orm/attributes.py", line
243, in set
File
"build/bdist.darwin-8.8.1-i386/egg/sqlalchemy/orm/attributes.py", line
81, in sethasparent
AttributeError: 'str' object has no attribute '_state'
<!-- ~/Documents/DataProc/Development/data/source/CCIS tbrannon -->
My source code follows :
import csv
import pprint
import pysqlite2
import sqlalchemy
from turboentity import *
from turboentity import objectstore
metadata = sqlalchemy.BoundMetaData('sqlite:///drug_mech.sqlite3')
class Mechanism (Entity):
serial_id = Column(String(length=255)),
mechanism_id = ManyToOne('Drug')
mechanism = Column(String(length=255))
class Drug (Entity):
mechanism_id = OneToMany('Mechanism') # a drug has many mechanisms
drug_id = Column(String(length=255)),
company = Column(String(length=255)),
phase = Column(String(length=255)),
product = Column(String(length=255)),
tradename = Column(String(length=255)),
targets = Column(String(length=255))
class MyCSV:
def __init__(self, filename, headers, orm_class):
self.filename = 'archive/' + filename
self.headers = headers
self.orm_class = orm_class
def mkrdr(self):
return csv.DictReader(open(self.filename, 'rb'),
fieldnames=self.headers,
delimiter='|')
def store(self, row):
pprint.pprint(row)
pprint.pprint(self.orm_class)
# The following deep magic per
#
http://groups.google.com/group/comp.lang.python/browse_frm/thread/973d616b35a7dd5a/43b135f6e6b06615?lnk=gst&q=instance+from+class+name&rnum=2#43b135f6e6b06615
classobj = eval(self.orm_class)
print "CLASSOBJ", classobj
classins = classobj(**row)
pprint.pprint(classins)
def main():
create_all()
o = MyCSV('mechanism.txt',
"mechanism_id drug_id mechanism".split(),
'Mechanism')
rdr = o.mkrdr()
pprint.pprint(rdr)
for row in rdr:
o.store(row)
main()
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---