I have the same problem right now. Seems maybe all the cases were not
covered?
I have a table 'race' that i can't load. But other tables loaded
without problem.

Code:
   (Pdb) soup.meeting
   <class 'sqlalchemy.ext.sqlsoup.MappedMeeting'>
   (Pdb) soup.race
   *** TypeError: type() argument 1 must be string, not unicode


Escaping to str the unicode value 'MappedRace' worked, but its a
hack ;)
>svn diff sqlalchemy.svn/
Index: sqlalchemy.svn/lib/sqlalchemy/ext/sqlsoup.py
===================================================================
--- sqlalchemy.svn/lib/sqlalchemy/ext/sqlsoup.py        (revision
5183)
+++ sqlalchemy.svn/lib/sqlalchemy/ext/sqlsoup.py        (working copy)
@@ -445,6 +445,8 @@
     selectable = expression._selectable(selectable)
     mapname = 'Mapped' + _selectable_name(selectable)
     if isinstance(selectable, Table):
+        if isinstance(mapname, unicode):
+            mapname = str(mapname)
         klass = TableClassType(mapname, (object,), {})
     else:
         klass = SelectableClassType(mapname, (object,), {})

Code:
   (Pdb) soup.race
   *** TypeError: type() argument 1 must be string, not unicode
(Pdb) soup.race
<class 'sqlalchemy.ext.sqlsoup.MappedRace'>

So, what is the right way io fix that issue?


On Jul 13 2007, 4:29 pm, bbull <[EMAIL PROTECTED]> wrote:
> The latest trunk seems to have fixed this issue.
>
> Thanks
>
> On Jul 12, 6:22 pm, jason kirtland <[EMAIL PROTECTED]> wrote:
>
> > bbull wrote:
> > > I have some code that returns what I'm calling a table object.
>
> > > return getattr(self.dbc, tablename)
>
> > > where self.dbc is an SqlSoup object and tablename is the name of the
> > > table.
>
> > > [..]
> > > TypeError: type() argument 1 must be string, not unicode
>
> > > For some reason, the line "mapname = 'Mapped' +
> > > _selectable_name(selectable)" in sqlsoup.py creates a unicode object
> > > instead of a string object when 'entity' is passed in.  If I put a
> > > simple str() around the code ("mapname = str('Mapped' +
> > > _selectable_name(selectable))"), it works with no problem.
>
> > > Any reason why only this one particular case would cause this problem?
>
> > Try that again with the latest from trunk.
>
> > -j

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
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