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
-~----------~----~----~----~------~----~------~--~---

Reply via email to