[sqlalchemy] Re: pass any field as a keyword param to the constructor?

2009-11-29 Thread Lukasz Szybalski
I guess the proper solution is to setup your python class mapper like
this, and use the update method of the __dict__ instead of setattr.

class Recall(object):
def __init__(self, **kw):
self.__dict__.update(kw)
pass


Lucas

On Thu, Nov 26, 2009 at 3:24 PM, Lukasz Szybalski szybal...@gmail.com wrote:
 Any idea how should I be set the None Type argument to str.?

 x=Recall()
 type(x.MAKETXT) is type 'NoneType'

 set in OrmObject when it does the setattr it probably fails because
 you cannot setattr on NoneType objects?

 setattr(x.MAKETXT,'somevalue')
 Traceback (most recent call last):
  File stdin, line 1, in module
 TypeError: attribute name must be string, not 'NoneType'


 What is the proper way to do this?
 Thanks,
 Lucas

 On Wed, Nov 25, 2009 at 10:36 PM, Lukasz Szybalski szybal...@gmail.com 
 wrote:
 http://www.sqlalchemy.org/trac/wiki/UsageRecipes/GenericOrmBaseClass

 class Recall(OrmObject):pass

 mapper(Recall,recall_table)

 record=Recall(RECORD_ID=RECORD_ID,CAMPNO=CAMPNO,MAKETXT=MAKETXT)
 session.add(record)
 session.flush()

 This is not working if using the example set in the url. Is setattr
 still working.? What is the proper way to do this.for SA
 0.5.6?

 SQLAlchemy 0.5 Implementation:

 class OrmObject(object):

    def __init__(self, **kw):
        for key in kw:
            if not key.startswith('_') and key in self.__dict__:
                setattr(self, key, kw[key])

    def __repr__(self):
        attrs = []
        for key in self.__dict__:
            if not key.startswith('_'):
                attrs.append((key, getattr(self, key)))
        return self.__class__.__name__ + '(' + ', '.join(x[0] + '=' +
                                            repr(x[1]) for x in attrs) + ')'

 Thanks,
 Lucas




 --
 Setup CalendarServer for your company.
 http://lucasmanual.com/mywiki/CalendarServer
 Automotive Recall Database - See if you vehicle has a recall
 http://lucasmanual.com/recall




-- 
Setup CalendarServer for your company.
http://lucasmanual.com/mywiki/CalendarServer
Automotive Recall Database - See if you vehicle has a recall
http://lucasmanual.com/recall

--

You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.




Re: [sqlalchemy] Re: pass any field as a keyword param to the constructor?

2009-11-29 Thread Michael Bayer

On Nov 29, 2009, at 2:17 PM, Lukasz Szybalski wrote:

 I guess the proper solution is to setup your python class mapper like
 this, and use the update method of the __dict__ instead of setattr.
 
 class Recall(object):
def __init__(self, **kw):
self.__dict__.update(kw)
pass

if Recall is ORM-mapped, the above won't work.  use setattr(), not __dict__ 
access.

 
 
 Lucas
 
 On Thu, Nov 26, 2009 at 3:24 PM, Lukasz Szybalski szybal...@gmail.com wrote:
 Any idea how should I be set the None Type argument to str.?
 
 x=Recall()
 type(x.MAKETXT) is type 'NoneType'
 
 set in OrmObject when it does the setattr it probably fails because
 you cannot setattr on NoneType objects?
 
 setattr(x.MAKETXT,'somevalue')

don't you mean setattr(x, 'MAKETXT', 'somevalue') here?





 Traceback (most recent call last):
  File stdin, line 1, in module
 TypeError: attribute name must be string, not 'NoneType'
 
 
 What is the proper way to do this?
 Thanks,
 Lucas
 
 On Wed, Nov 25, 2009 at 10:36 PM, Lukasz Szybalski szybal...@gmail.com 
 wrote:
 http://www.sqlalchemy.org/trac/wiki/UsageRecipes/GenericOrmBaseClass
 
 class Recall(OrmObject):pass
 
 mapper(Recall,recall_table)
 
 record=Recall(RECORD_ID=RECORD_ID,CAMPNO=CAMPNO,MAKETXT=MAKETXT)
 session.add(record)
 session.flush()
 
 This is not working if using the example set in the url. Is setattr
 still working.? What is the proper way to do this.for SA
 0.5.6?
 
 SQLAlchemy 0.5 Implementation:
 
 class OrmObject(object):
 
def __init__(self, **kw):
for key in kw:
if not key.startswith('_') and key in self.__dict__:
setattr(self, key, kw[key])
 
def __repr__(self):
attrs = []
for key in self.__dict__:
if not key.startswith('_'):
attrs.append((key, getattr(self, key)))
return self.__class__.__name__ + '(' + ', '.join(x[0] + '=' +
repr(x[1]) for x in attrs) + ')'
 
 Thanks,
 Lucas
 
 
 
 
 --
 Setup CalendarServer for your company.
 http://lucasmanual.com/mywiki/CalendarServer
 Automotive Recall Database - See if you vehicle has a recall
 http://lucasmanual.com/recall
 
 
 
 
 -- 
 Setup CalendarServer for your company.
 http://lucasmanual.com/mywiki/CalendarServer
 Automotive Recall Database - See if you vehicle has a recall
 http://lucasmanual.com/recall
 
 --
 
 You received this message because you are subscribed to the Google Groups 
 sqlalchemy group.
 To post to this group, send email to sqlalch...@googlegroups.com.
 To unsubscribe from this group, send email to 
 sqlalchemy+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/sqlalchemy?hl=en.
 
 

--

You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.




Re: [sqlalchemy] Re: pass any field as a keyword param to the constructor?

2009-11-29 Thread Lukasz Szybalski
On Sun, Nov 29, 2009 at 3:58 PM, Michael Bayer mike...@zzzcomputing.com wrote:

 On Nov 29, 2009, at 2:17 PM, Lukasz Szybalski wrote:

 I guess the proper solution is to setup your python class mapper like
 this, and use the update method of the __dict__ instead of setattr.

 class Recall(object):
    def __init__(self, **kw):
        self.__dict__.update(kw)
    pass


mapper(Recall,recall_table)

then.

x=Recall(column1=column1.)
session.add(Recall)

 if Recall is ORM-mapped, the above won't work.  use setattr(), not __dict__ 
 access.

This seems to work in 0.5.6? Does that change in 0.6? or



Yes.



 Lucas

 On Thu, Nov 26, 2009 at 3:24 PM, Lukasz Szybalski szybal...@gmail.com 
 wrote:
 Any idea how should I be set the None Type argument to str.?

 x=Recall()
 type(x.MAKETXT) is type 'NoneType'

 set in OrmObject when it does the setattr it probably fails because
 you cannot setattr on NoneType objects?

 setattr(x.MAKETXT,'somevalue')

 don't you mean setattr(x, 'MAKETXT', 'somevalue') here?

yesthat was my mistake...

--

You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.




Re: [sqlalchemy] Re: pass any field as a keyword param to the constructor?

2009-11-29 Thread Michael Bayer

On Nov 29, 2009, at 7:24 PM, Lukasz Szybalski wrote:

 On Sun, Nov 29, 2009 at 3:58 PM, Michael Bayer mike...@zzzcomputing.com 
 wrote:
 
 On Nov 29, 2009, at 2:17 PM, Lukasz Szybalski wrote:
 
 I guess the proper solution is to setup your python class mapper like
 this, and use the update method of the __dict__ instead of setattr.
 
 class Recall(object):
def __init__(self, **kw):
self.__dict__.update(kw)
pass
 
 
 mapper(Recall,recall_table)
 
 then.
 
 x=Recall(column1=column1.)
 session.add(Recall)
 
 if Recall is ORM-mapped, the above won't work.  use setattr(), not __dict__ 
 access.
 
 This seems to work in 0.5.6? Does that change in 0.6? or

its not been safe to modify __dict__ directly since at least 0.3.



 
 
 
 Yes.
 
 
 
 Lucas
 
 On Thu, Nov 26, 2009 at 3:24 PM, Lukasz Szybalski szybal...@gmail.com 
 wrote:
 Any idea how should I be set the None Type argument to str.?
 
 x=Recall()
 type(x.MAKETXT) is type 'NoneType'
 
 set in OrmObject when it does the setattr it probably fails because
 you cannot setattr on NoneType objects?
 
 setattr(x.MAKETXT,'somevalue')
 
 don't you mean setattr(x, 'MAKETXT', 'somevalue') here?
 
 yesthat was my mistake...
 
 --
 
 You received this message because you are subscribed to the Google Groups 
 sqlalchemy group.
 To post to this group, send email to sqlalch...@googlegroups.com.
 To unsubscribe from this group, send email to 
 sqlalchemy+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/sqlalchemy?hl=en.
 
 

--

You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.




[sqlalchemy] Re: pass any field as a keyword param to the constructor?

2009-11-26 Thread Lukasz Szybalski
Any idea how should I be set the None Type argument to str.?

x=Recall()
type(x.MAKETXT) is type 'NoneType'

set in OrmObject when it does the setattr it probably fails because
you cannot setattr on NoneType objects?

setattr(x.MAKETXT,'somevalue')
Traceback (most recent call last):
  File stdin, line 1, in module
TypeError: attribute name must be string, not 'NoneType'


What is the proper way to do this?
Thanks,
Lucas

On Wed, Nov 25, 2009 at 10:36 PM, Lukasz Szybalski szybal...@gmail.com wrote:
 http://www.sqlalchemy.org/trac/wiki/UsageRecipes/GenericOrmBaseClass

 class Recall(OrmObject):pass

 mapper(Recall,recall_table)

 record=Recall(RECORD_ID=RECORD_ID,CAMPNO=CAMPNO,MAKETXT=MAKETXT)
 session.add(record)
 session.flush()

 This is not working if using the example set in the url. Is setattr
 still working.? What is the proper way to do this.for SA
 0.5.6?

 SQLAlchemy 0.5 Implementation:

 class OrmObject(object):

    def __init__(self, **kw):
        for key in kw:
            if not key.startswith('_') and key in self.__dict__:
                setattr(self, key, kw[key])

    def __repr__(self):
        attrs = []
        for key in self.__dict__:
            if not key.startswith('_'):
                attrs.append((key, getattr(self, key)))
        return self.__class__.__name__ + '(' + ', '.join(x[0] + '=' +
                                            repr(x[1]) for x in attrs) + ')'

 Thanks,
 Lucas




-- 
Setup CalendarServer for your company.
http://lucasmanual.com/mywiki/CalendarServer
Automotive Recall Database - See if you vehicle has a recall
http://lucasmanual.com/recall

--

You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.