[sqlalchemy] Re: Negation of filter_by(relation=None)?

2012-03-19 Thread sandro dentella
On 19 Mar, 14:55, Michael Bayer  wrote:

> > How can I nagate it, i.e. If I want all records that *do* have movies?
>
> you'd get that using filter(Director.movies.any()).

Great, thanks!

sandro
*:-)

-- 
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 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.



[sqlalchemy] Negation of filter_by(relation=None)?

2012-03-19 Thread sandro dentella
Hi,

if you have a std:

 class Director(Base):
 name = ...
 movies = relationship(Movie...)

you can do something as::

session.query(Director).filter_by(movies=None)

that is nicely translated into::

 SELECT director.id AS director_id, director.last_name AS
director_last_name, director.first_name AS director_first_name,
director.nation AS director_nation
FROM director
WHERE NOT (EXISTS (SELECT 1
FROM movie
WHERE director.id = movie.director_id))


How can I nagate it, i.e. If I want all records that *do* have movies?

TIA
sandro
*:-)

-- 
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 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.



[sqlalchemy] Re: event.remove failure

2011-08-18 Thread sandro dentella


On 18 Ago, 16:52, Michael Bayer  wrote:
> remove() isn't implemented yet.    While the simple operation you see below 
> would be fine for a single listener on a single target, the targets we have 
> which propagate to subclasses (mapper events, attribute events) would require 
> a more elaborate system that can revisit everywhere the event has been 
> propagated and remove it from there as well.  
>
> this is why "remove" isn't published in the docs right now.

Thanks, I wasn't carefull enought to realize it was not in the docs. I
guessed there was such a function and I found it, so I tried to use
it...

> In our own tests I use a hack to remove an entire set of listeners at once, 
> if this is a testing teardown scenario you're dealing with.

No really I would need it in a different setup. I have many GTK
widgets
 that  show some data that are in a session and I need to update the
GUI whenever the data change.

> Otherwise, ad-hoc removal on a per operation basis ?     I knew someone would 
> try it though damned if I could imagine what possible use there could be for 
> that.   If this is the case here, care to entertain me ?

Not sure what you mean exactly here, but if the point is: "why I want
to use 'remove'". It's just that when I destroy the GUI widget that
displays data I'd like to remove the listener to be sure no reference
tries to keep my object in memory. As of now I see that callbacks are
still called.

sandro
*:-)

-- 
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 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.



[sqlalchemy] event.remove failure

2011-08-18 Thread sandro dentella
Hi,

I started to play with events to port a library to sqla 0.7. I managed to 
use
the 'listen' function but I failed on 'remove'. Looking at the signatures
they seem to be just the same, but here is what I get:

  In [7]: event.listen(obj.__class__.title, 'set', listen_cb)

  In [8]: event.remove(obj.__class__.title, 'set', listen_cb)
  
---
  TypeError Traceback (most recent call 
last)

  /home/misc/src/hg/py/sqlkit-pub/demo/sql/demo.py in ()
  > 1 
2 
3 
4 
5 

  /misc/src/sqlalchemy/sqlalchemy/lib/sqlalchemy/event.pyc in remove(target, 
identifie
   69 """
   70 for evt_cls in _registrars[identifier]:
  ---> 71 for tgt in evt_cls._accept_with(target):
   72 tgt.dispatch._remove(identifier, tgt, fn, *args, **kw)
   73 return

  TypeError: 'InstrumentedAttribute' object is not iterable


Did I misundertand the syntax or what else?


TIA

sandro
*:-)

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/sqlalchemy/-/SqqNPsbu8DsJ.
To post to this group, send email to sqlalchemy@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: association_proxy introspection

2011-03-23 Thread sandro dentella
On Tue, Mar 22, 2011 at 05:43:17AM -0700, sandro dentella wrote:
> Hi,
> 
> i just "discovered" association_proxy and like it very much. It
> definetely helps in some situations. I already have a library that
> setup gui instrospecting the mapper, to allow editing and filtering of
> records.
> 
> the only way I found to get the association_proxy of a class is
> checking its attributes::
> 
> for key, value in vars(d.t.mapper.class_).iteritems():
> if isinstance(value, AssociationProxy):
> print key
> 
> I can't find a way to get information on the column it is proxying,
> that would be needed to me in order to setup a proper representation:
> how can I find it?

ok, the way is probably:

target_col = obj_proxy.target_class.__table__.c[obj_proxy.value_attr]

Please correct me if this is wrong or just not always right.

This opens some questions on how to use it in a query that I leave for a
separate thread.

sandro

-- 
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 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.



[sqlalchemy] association_proxy introspection

2011-03-22 Thread sandro dentella
Hi,

i just "discovered" association_proxy and like it very much. It
definetely helps in some situations. I already have a library that
setup gui instrospecting the mapper, to allow editing and filtering of
records.

the only way I found to get the association_proxy of a class is
checking its attributes::

for key, value in vars(d.t.mapper.class_).iteritems():
if isinstance(value, AssociationProxy):
print key

I can't find a way to get information on the column it is proxying,
that would be needed to me in order to setup a proper representation:
how can I find it?

I see there's no property on the mapper, corresponding to an
association_proxy, is it possible to instrospect the mapper and see
get some info?

thanks in advance
sandro
*:-)

-- 
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 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.



[sqlalchemy] attaching an AttributeExt to an existing mapper

2011-02-07 Thread sandro dentella
Hi,


is there a way to attach an attribute extension of an existing
property of an (existing) mapper?
I made some tests [1] and it seems that attaching the AttrExt to a
mapper does not work:

  mapper.get_property('name').extension = MyAttrExt()

Is there a way apart from setting it while creating the property?


thanks in advance
sandro
*:-)

[1] http://dpaste.com/hold/394115/

-- 
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 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.



[sqlalchemy] Re: mapper for outerjoin: getting None objects

2010-10-31 Thread sandro dentella
Thanks as usual for your valuable and prompt response


sandro
*:-)


-- 
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] LONGVARCHAR

2010-10-29 Thread sandro dentella
Hi,

firefox uses sqlite to store bookmark info. The file is called
places.sqlite and the schema has type LONGVARCHAR for some fields and
LONG for another. Autoloading that with sqlalchemy maps that columns
to NullType rather that to a String / Integer one. Same for LONG type

I don't really know if LONGVARCHAR/LONG are correct types for sqlite
but they are accepted and used: is it possible to make sqlalchemy
autoload correctly? Or should we ask firefox guys to use different
types?

sandro
*:-)

-- 
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: CircularDependencyError on 0.6 (works on 0.5.8)

2010-09-02 Thread sandro dentella


On 26 Ago, 18:41, Michael Bayer  wrote:
> of course you'll get a cycle if you do this, though:
>
> s1 = School(cod="S1", cod_riferimento="S1", cliente=False)
> d1 = School(cod="D1", cod_riferimento="S1", cliente=False)
> s1.sedi = [s1, d1]
>

That was it! now I got it. thanks.


> s1->s1 is not supported by self referential flushes, unless you put 
> post_update=True on the relation() you have there.

that works

Thanks as usual for your great support

sandro
*:-)

-- 
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] upgrading code with prop.backref from 0.5 -> 0.6

2010-08-19 Thread sandro dentella
Hi,

Let's start with the simple example based on movie/director example

  class Director(Base):
  __tablename__ = 'director'
  id = Column(Integer, primary_key=True)
  last_name   = Column(String(60), nullable=False)
  movies  = relation('Movie', backref='director',
cascade='all, delete-orphan',)

  class Movie(Base):
  __tablename__  = 'movie'
  id = Column(Integer, primary_key=True)
  title  = Column(String(60), nullable=False)
  director_id= Column(Integer, ForeignKey('director.id'),
nullable=False)

Due to delete-orphan cascading rule when creating a movie object I
need to
attach a director object. In a table editor when setting a foreign key
I
parse all the properties to see if someone requires such 'director'
obj so
that I can easily fetch it and attach. The working code in 0.5 is as
follows:

  def get_props_for_delete_orphan(mapper, field_name):
  """
  discover if field_name setting needs to set an object to
fullfill the request
  for a delete_orphan cascading on a possible relation
  returns the generator for the properties or ()
  """
  prop = mapper.get_property(field_name)
  assert isinstance(prop, properties.ColumnProperty)
  assert len(prop.columns) == 1  # I don't handle mapper with two
columns in a property
  column = prop.columns[0]

  props = []
  for pr in mapper.iterate_properties:
  if isinstance(pr, properties.RelationProperty):
  if pr.direction.name in ('MANYTOONE',):
  for col in pr.local_remote_pairs[0]:
  # I can't use col in p.local_remote_pairs
  # as it uses 'col == p.local_remote_pairs' that evaluates
  # to a BinaryExpression
  if column is col:
  try:
  if pr.backref.prop.cascade.delete_orphan:
  props += [pr]
  except AttributeError, e:
  pass
  return tuple(props)

This fails in sqla 0.6 as pr.backref is empty. Which is the correct
way to
get the properties that have a backref that have cascade with
delete_orphan?


thanks
sandro
*:-)

-- 
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: mappers and non_primary arg

2010-07-05 Thread sandro dentella

Please, can anybody tell me what's the meaning of 'non_primary' arg of
mapper function. 

I probably misunderstood it but I'd like to know what it is meant for.

thanks
sandro



On Thu, Jul 01, 2010 at 10:41:44AM -0700, sandro dentella wrote:
> Hi,
> 
> I'm trying to use non_primary arg of function 'mapper'.
> 
> 
> Currently I have a GUI widget to browse/edit tables that is based on
> introspection of the mapper.
> 
> My goal would be to reuse all the machinary of table browsing even
> when browsing tables that where built w/o primary key.
> 
> I'm ready to understand that I can't use persistence but I thought
> that flagging as a non primary mapper I could assemble a mapper even
> from a table missing a primary_key, that's what I thought was the
> meaning of: "Construct a Mapper that will define only the selection of
> instances, not their persistence."
> 
> What I get is:
> 
> ipdb> mapper(X, table, non_primary=True)
> *** ArgumentError: Mapper Mapper|lavori_class|lavori|non-primary could
> not assemble any primary key columns for mapped table 'lavori'
> 
> So what's the real meaning of primary_key?
> 
> 
> thanks
> 
> sandro
> *:-)

-- 
Sandro Dentella  *:-)
http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy

-- 
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] mappers and non_primary arg

2010-07-01 Thread sandro dentella
Hi,

I'm trying to use non_primary arg of function 'mapper'.


Currently I have a GUI widget to browse/edit tables that is based on
introspection of the mapper.

My goal would be to reuse all the machinary of table browsing even
when browsing tables tat where built w/o primary key.

I'm ready to understand that I can't use persistence but I thought
that flagging as a non primary mapper I could assemble a mapper even
from a table missing a primary_key, that's what I thought was the
meaning of: "Construct a Mapper that will define only the selection of
instances, not their persistence."

What I get is:

ipdb> mapper(X, table, non_primary=True)
*** ArgumentError: Mapper Mapper|lavori_class|lavori|non-primary could
not assemble any primary key columns for mapped table 'lavori'

So wht's the real meaning of primary_key?


thanks

sandro
*:-)

-- 
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: declarative + order_by of 2 columns: is it possible?

2010-05-18 Thread sandro dentella
Hi,

On 11 Mag, 18:23, sandro dentella  wrote:
> Hi,
>
> i have a working declarative configuration that has a relation as
> this::
>
>   client  = relation(Cliente, backref='jobs' , lazy=False,
> order_by=status.desc)
>
> now I'd like to add a second column in the order_by field but adding a
> list doesn't seem to work. I tried:
>
>   client  = relation(Cliente, backref='jobs' , lazy=False,
> order_by=[status.desc, description])
>
> before posting the error I'd like to understand if that should be
> correct as I don't find in the docs the correct syntax, I just find
> the syntax for order_by method of query.

sorry for reposting, but I can't even understnd if the above syntax
should be allowed or not.
According to docs for 'relation':

 order_by – indicates the ordering that should be applied when loading
these items.

doesn't meant it accepts more than one column, order_by for query
does...
It's not vital but I'd like to know if it's possible and I'm just
misinterpreting the syntax.

thanks

sandro

-- 
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] declarative + order_by of 2 columns: is it possible?

2010-05-11 Thread sandro dentella
Hi,

i have a working declarative configuration that has a relation as
this::

  client  = relation(Cliente, backref='jobs' , lazy=False,
order_by=status.desc)

now I'd like to add a second column in the order_by field but adding a
list doesn't seem to work. I tried:

  client  = relation(Cliente, backref='jobs' , lazy=False,
order_by=[status.desc, description])

before posting the error I'd like to understand if that should be
correct as I don't find in the docs the correct sintax, I just find
the syntax for order_by method of query.

thanks
sandro
*:-)

-- 
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: Type of Column added with column_property

2009-12-16 Thread sandro dentella
Just to be clearer: if I used func.count, the property is correctly
set to Intege type. How can I create a column in the mapper and have
the column reflect the real type in the db.

I do introspections in columns to prepare the gui to display it and to
add filters on that field (http://sqlkit.argolinux.org/sqlkit/
filters.html) and that would help a lot.

thanks in advance
sandro
*:-)

On 15 Dic, 19:58, Alessandro Dentella  wrote:
> Hi,
>
> is there a way to set the type of a column added to a mapper with
> column_property?
>
>   m = mapper(New, t, properties={
>'my_bool': column_property(
>func.my_bool(t.c.id, type=Boolean)
>   )
> })
>
> func 'my_bool' is a stored procedure on Postgresql and returns a boolean, but
> the type of the column is NullType:
>
>   m.get_property('my_bool').columns[0].type
>   NullType()
>
> --
> Sandro Dentella  *:-)http://sqlkit.argolinux.org   SQLkit home page - 
> PyGTK/python/sqlalchemy

--

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] Doubts on relation with cascade & delete by backend

2009-07-23 Thread sandro dentella

Hi,

I have a simple setup that may be summarized as:

  class User(Base):
   __tablename__ = 'user'
   name = Column(String(20), primary_key=True)

  class Mail(Base):
   __tablename__ = 'address'
   mail = Column(String(20), primary_key=True)
   user_name = Column(ForeignKey(User.name, ondelete="CASCADE"),
 nullable=False)


the generated DDL allows deletion of a user also in case it has
associated
addresses thanks to the ON DELETE CASCADE.

If I try to delete the object from sqlalchemy I get an error, since SA
tries
to set úser_name'attribute to NULL that is forbidden by the NOT NULL
constraint.


I can add a relation that will fix things by adding a backref:

  user = relation(User,
 backref=backref('addresses', cascade='all, delete-
orphan'))

Is there a way to obtain that any cascading is left to the backend?
(pg in
my case). I have not been able to find references but I'm sure I saw
some
discussion on that already...


Thanks in advance

sandro
*:-)





--~--~-~--~~~---~--~~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] compound ForeignKeyConstraint

2009-07-17 Thread sandro dentella

Hi,

  which is the correct way to see if a ForeignKey in the set
column.foreign_key is part of a compound ForeignKeyConstraint?

  thanks in advance
  sandro
--~--~-~--~~~---~--~~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: creating objects in after_flush hook

2009-05-12 Thread sandro dentella

I correct myself

On 12 Mag, 11:05, Alessandro Dentella  wrote:
> Hi,
>
>   in a sessionExtension.after_flush hook I create objects (namely todo
>   actions depending on what people have inserted/updated).
>
>   At present I create these objects in the current session, but I do
>   understand is not clean as the flush has already occurred. It almost
>   works, objects are really created but are left in the dirty set.


I didn't realize I entered twice in the after_flush... I guess once
the first
'normal' and the second for the newly created object.

This seems to confirm the fact that we can create objects even from
withing
the after_flush hook and have them saved in the same session. Good!

sandro
--~--~-~--~~~---~--~~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: puzzling outerjoin in the mapper

2009-04-30 Thread sandro dentella

Thanks. I do appreciate that this will become the default as I think
that if you ask for an outer join that's what you expect.

thanks again for you time
sandro

--~--~-~--~~~---~--~~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: puzzling outerjoin in the mapper

2009-04-27 Thread sandro dentella

Missing an answer I opened ticket #1392:

http://www.sqlalchemy.org/trac/ticket/1392#preview


--~--~-~--~~~---~--~~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: puzzling outerjoin in the mapper

2009-04-23 Thread sandro dentella

Hi,

   Mike, should I file a ticket for this?... or I just misinterpreted
the result?

   sandro
   *:-)
--~--~-~--~~~---~--~~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Attempting to flush an item of type...

2009-04-17 Thread sandro dentella

the solution was to inherit setup.USER with a non-relative path
fossati.models.client.User.
I misinterpreted the words 'whose mapper...' and believed it was
referencing Entry.user while it is referred to setup.USER.

sandro


--~--~-~--~~~---~--~~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: availability of related obj

2009-04-08 Thread sandro dentella


> specifically the lazy loader will work in the "after_flush_postexec()"
> phase of the sessionextension.  during after_flush(), the post-flush
> bookkeeping has not been establishsed yet on assigned_to_id, and the lazy
> loader always looks for the "persisted" version of the attribute.

ok, this explains my example in fact, that really means I cannot use
that
relation in after_flush. after_lush_postexec is too late as I need
session.dirty/session.new  to be able to understand what happened and
take
actions consequently.

thanks
sandro
--~--~-~--~~~---~--~~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: availability of related obj

2009-04-08 Thread sandro dentella

> as soon as Ticket is persistent within the flush, the ticket.assigned_to
> relation will be "live" and will lazy load when accessed.  no commit is
> needed.

mmh, in the following example, I can't use assigned_to within
after_flush.
Am I doing something wrong?

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Table, Column, ForeignKey, text, func
from sqlalchemy.types import *
from sqlalchemy.orm import relation, sessionmaker
from sqlalchemy.orm.interfaces import SessionExtension

Base = declarative_base()
Base.metadata.bind = 'sqlite://'

class User(Base):
__tablename__ = 'user'
id = Column(Integer, primary_key=True)
username = Column(String(20))

class Ticket(Base):
__tablename__ = 'ticket'
id = Column(Integer, primary_key=True)
assigned_to_id = Column(ForeignKey(User.id))

assigned_to = relation(User, primaryjoin = assigned_to_id ==
User.id,
lazy=True)


class SKSessionExtension(SessionExtension):
def after_flush(self, session, flush_context):
"""
implement the after-flush signal
"""

for new in session.new:
if isinstance(new, Ticket):
print "NEW: %s - assigned_to: %s" % ( new,
new.assigned_to)

Session = sessionmaker(bind=Base.metadata.bind)
session = Session(extension=SKSessionExtension())


Base.metadata.create_all()
#Base.metadata.bind.echo = True

user = User()
user.username = 'aaa'
session.add(user)
session.commit()

ticket = Ticket()
ticket.assigned_to_id = user.id

session.add(ticket)

session.flush()

print "AFTER FLUSH", ticket.assigned_to

session.commit()

print "AFTER COMMIT", ticket.assigned_to

--
that leads to this output:

NEW: <__main__.Ticket object at 0x84f51cc> - assigned_to: None
AFTER FLUSH None
AFTER COMMIT <__main__.User object at 0x84f060c>


sandro



--~--~-~--~~~---~--~~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: remove an object from a property deletes from session

2009-03-27 Thread sandro dentella



On 26 Mar, 18:04, "Michael Bayer"  wrote:
> it would only do that if you have delete-orphan on the relation, and the
> object was never saved.it will get re-added once you attach it to


that's exactly the situation I have. thanks for the explanation.

sandro
*:-)
--~--~-~--~~~---~--~~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: getting referenced *class* from relation

2009-03-17 Thread sandro dentella

thanks!
*:-)
--~--~-~--~~~---~--~~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: puzzling setup with ForeignKey

2009-02-19 Thread sandro dentella

On 19 Feb, 13:15, a...@svilendobrev.com wrote:
> if u make it the same way as the other ticket_status... key, would it
> work?

No, it won't.

*:-(


--~--~-~--~~~---~--~~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Autoloading float field from sqlite

2009-01-07 Thread sandro dentella

I realize now that autoloading a float field in Sqlite returns a
SLNumeric rather that Float. The schema is:

sqlite> .schema all_types
CREATE TABLE all_types (
   ...
float FLOAT,
   ...
PRIMARY KEY (id)
);

is this a known issue?


sandro
*:-)
--~--~-~--~~~---~--~~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] query & doctest

2008-11-29 Thread sandro dentella

Hi,

  in a doctest I have::

>>> str(q) == str(query.filter(User.first_name == 'ed'))
True

 that  works but the following fails,
(both where built starting from the same session.query(User)

>>> q == query.filter(User.first_name == 'ed')
True

in another place comparing str fails just because a join has ON join
condition inverted (but semantically equivalent). What's the correct
way to test if two queries are semantically equivalent?

Thanks

sandro
*:-)

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



[sqlalchemy] flush & session.is_modified()

2008-11-18 Thread sandro dentella

Hi,

  I have a code like this:

if self.session.dirty:
for dirty in self.session.dirty:
if self.session.is_modified(dirty):
return True
if self.session.new:
for obj in self.session.new:
if self.session.is_modified(obj):
return True

I realized that if I have a session with autoflush=True, checking
is_modified(dirty_obj), triggers a flush(), so that next loop on
'session.new' would never find anything.

While I personally have non reason to keep autoflush=True, I didn't
want to force this for everybody using my library (sqlkit). Is there a
way to force is_modified (with collection) not to flush(), the same
way as session.query  can be issued without flushing?

TIA
sandro
*:-)

--
http://sqlkit.argolinux.org
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[sqlalchemy] Printing SQL statement

2008-11-13 Thread sandro dentella

I noticed in message [1] a way of getting sql statement of
meta.create_all(). It doesn't work for me:

  File "/tmp/sa.py", line 11, in 
gen = e.dialect.schemagenerator(e, proxy, None)
  File "/misc/src/hg/py/sqlkit4/bin/../sqlalchemy/sql/compiler.py",
line 777, in __init__
AttributeError: 'Engine' object has no attribute 'identifier_preparer'


I there another way to get the SQL code?

thanks
*:-)



[1]
http://groups.google.it/group/sqlalchemy/browse_frm/thread/a03f49894b06a1a4/5bd8003c2f7980fc?hl=it&lnk=gst&q=create_all+print#5bd8003c2f7980fc
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[sqlalchemy] [Announce] sqlkit 0.8.3

2008-11-11 Thread sandro dentella

I hope this list may be interested in this package based on
sqlalchemy.
Working with sqlalchemy has been a very nice experience, any day
discovering
some nice feature of sqlalchemy that just fitted my needs.

I know I only used a subset of SA power but my intention is to add
features as
long as I learn and need them.

Any feedback, comment, criticism, hint or patch is really appreciated.

Note: I only tested it with PostgreSQL, sqlite, MySql, should someone
test it
with other backends I'd be very interested in having a feedback

Thanks for SA and for the support that made it possible to get here
sandro
*:-)

  ANNOUNCE: sqlkit 0.8.3

November, 10  2008


I'm happy to announce release 0.8.3 of sqlkit package for python -
the first
public release.

  http://sqlkit.argolinux.org/

The package
---
SQLkit PyGtk package provides Mask and Table widgets to edit database
data. It's meant as a base for database desktop applications.

The application
---
It also provides 'sqledit' a PyGTK application based on sqlkit that
can be
used from command line to browse and edit data.

The package has 2 very rich demo suites for sql widgets (the main one
in
sqlkit/demo/sql/demo.py) and for layout creation

Main features of sqlkit:


  * editor of databases in 2 modes: table & mask
  * based on sqlalchemy: can cope with many different databases
  * very powerfull filtering capabilities:
- each field can be used to filter records
- filter may span relationship
- date filtering possible also on relative basis (good for
saved
  queries)
  * completion on all text field and foreign keys
  * very easy way to draw a layout for mask views
  * completely effortless editing of relationships
  * very easy way to set defaults
  * possibility to display totals of numeric fields
  * any possible sql constraint can be attached to a Mask or a
Table. It can be expressed a s a normal sqlalchemy query or with
django-like syntax
  * sqledit: python script to edit db


Sqlkit is based on:
---
  * python (>= 2.4)
  * PyGtk
  * Sqlalchemy (>= 0.5)
  * glade
  * dateutils


Dowload & more:
---

  * http://docs.argolinux.org/sqlkit/sqlkit/download.html
  * hg clone http://hg.argolinux.org/py/sqlkit
  * google group: http://groups.google.it/group/sqlkit/
  * License: GNU GPL
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[sqlalchemy] Missing 'match' documentation?

2008-10-20 Thread sandro dentella

Hi,

  I think I don't see documentation on the 'match' operator that works
differently according to db backend.
  If I just missed it please point me to the right place, otherwise
can you give me some more info?
  How can it be used with sqlite: can it work as ~ in postgres?

  If I try lo used it  as in:
   session.query(mapper).filter(title_col.match('a'))

I get back a:


: (OperationalError) unable
to use function MATCH in the requested context u'SELECT movie.id AS
movie_id, movie.title AS movie_title, movie.description AS
movie_description, movie.year AS movie_year, movie.date_release AS
movie_date_release, movie.director_id AS movie_director_id \nFROM
movie \nWHERE movie.title MATCH ? ORDER BY director_id \n LIMIT 200
OFFSET 0' ['a']

 TIA
sandro
*:-)
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[sqlalchemy] ClauseList with join?

2008-10-11 Thread sandro dentella

Hi,

  I started using the .join() method on query and that' s really
powerful, with reset_joinpoint and the list of attributes setting the
path of relations. Now I'd like to being able to write join clause in
advance with respect to the moment I have the the query available , in
he same way I can write ClauseList in advance. Is there any way?

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



[sqlalchemy] classes and mapper

2008-09-10 Thread sandro dentella

Hi,

  is there a way I can get the mapper from a class?
  suppose I made:

  m = mapper(User, user_table)

  m holds my mapper. Is there a way o get the same mapper from The
User class?

  thanks in advance
  sandro
 *:-)
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[sqlalchemy] Re: commit vs flush

2008-09-08 Thread sandro dentella



> > least this seems to me...)
>
> > In the  GUI I use as test, thoght objects are flushed but they come
> > back unless I issue a session.commit().
>
> Hmm. If by "come back" you mean they show back up in a separate session
> and still exist in the database, then it may be that you've forgotten to
> commit the transaction at all. If you turn off autocommit, transactions
> are never committed except by explicitly calling commit().


indeed that's the case. But if I commit(), any other object in the
session
get committed and I don't want this...

thanks again
sandro
*:-)
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[sqlalchemy] Re: commit vs flush

2008-09-07 Thread sandro dentella

>   At that point I realized that I didn't really understand what would
> be the
>   difference between:
> 
>   flush()
>   commit()

After 5 minutes I wrote this mail, laying in the bed I saw it as clear as it
could be, i think. Flush is writing the SQL code, commit... is COMMITting. 

So the question becomes: can I disale autoflush and commit what has already
been flushed leaving the rest in the session? My test seem to say that it's
not possible.

That leaves me with the original question: how can I just flush/commit one
single object?


Thanks
sandro
*:-)

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



[sqlalchemy] commit vs flush

2008-09-07 Thread sandro dentella


  Hi,

  I'm trying to flush deletion of single objects w/o triggering a
complete
  commit and even after reading the docs several time I think I have
not got
  it right. In a little test I manage to do it correctly: I delete/
flush
  single objects and they are DELETEd from the table (at least this
seems to
  me...)

  In the  GUI I use as test, thoght objects are flushed but they come
  back unless I issue a session.commit().

  At that point I realized that I didn't really understand what would
be the
  difference between:

  flush()
  commit()

  I did understand that commit issues a flush... but then... what is a
flush
  w/o a commit?

  I do see that after flushing session.dirty is empty and setting
bind.echo
  = True shows:

DELETE 
2008-09-08 00:24:16,882 INFO sqlalchemy.engine.base.Engine.0x...e0cc
DELETE FROM director WHERE director.id = ?
2008-09-08 00:24:16,882 INFO sqlalchemy.engine.base.Engine.0x...e0cc
[19]
DIRTY IdentitySet([]),

   Nevertheless if I don't issue a session.commit() the objects I
deleted
   come back. (Using sqlite for the test. session.autoflush = True,
   autocommit=False )


Thanks for any explanation
sandro
*:-)
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[sqlalchemy] Re: session.dirty but not session.is_modified....

2008-07-16 Thread sandro dentella


Thanks. In fact I use session.is_modified() but I thought it was just
a workaround to cope with something I didnt' thoroughly understand...


sandro
*:-)
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[sqlalchemy] session.dirty but not session.is_modified....

2008-07-15 Thread sandro dentella

Hi,

   I'm puzzled by the fact that an object that is declared dirty
  (returned by session.dirty) is not considered modified (and in fact
  has not intentionally modified):


In [17]: t1.session.dirty
Out[17]: IdentitySet([])

In [18]: dirty = t1.session.dirty.pop()

In [19]: dirty
Out[19]: 

In [20]: t1.session.dirty
Out[20]: IdentitySet([])

In [21]: t1.session.is_modified(dirty)
Out[21]: False


Am I wrong or this is not the correct behaviour? where should I look
to understand
what makes sqlalchemy think that the object is dirty?

i tried with:


for field_name in self.mapper.columns.keys():
new, unchanged, old =  attributes.get_history(
attributes.instance_state(obj), field_name)

and all fields are not changed:

lato [] ['a'] []
legame [] ['p'] []
sicuro [] [1] []
email [] [''] []



Thanks in advance
sandro
*:-)

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



[sqlalchemy] session expire and discard

2008-06-29 Thread sandro dentella

Hi,

  is there a way to say to a session to forget all the changes to an
object without hitting the database. Expire or refresh do that but at
the prize of a new select.

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



[sqlalchemy] Re: validation and old values

2008-06-29 Thread sandro dentella

thanks

sandro
*:-)
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[sqlalchemy] validation and old values

2008-06-25 Thread sandro dentella

Hi,

   I'm adding validation to a (generic) gtk sql editor.

   The first thing I'd like to know is if I can reach the old values
   of an instance after I modified it (before committing).
   The reason is that I'd like  to give the possibility to have new
   and old values in the validation of the record.

   thanks in advance

  sandro


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



[sqlalchemy] Re: PG: INET type support

2006-11-09 Thread Sandro Dentella

>> PostgreSQL inet type seems not to be a supported type at the  
>> moment. Are
>> there plans to add it in SA?
>
>I dont think INET is a SQL type, so the PGInet type would be its own  
>object in postgres.py, subclassing TypeEngine directly.  it would  
>also need to define what kind of python object should be sent/
>received in the convert_bind_param/convert_result_value methods  
>(unless psycopg2 is doing that for us).

Psycopg2 returns a string, not a particular type.

My application is an editor of db tables, that autoloads tables. Of course
every time an unknown type is met it raises a bad error. How do you consider
it's better to cope with this situation?

In particular this inet type is written by Django in the
comments_(free)comments table, so no way to autoload that table. In my
version 

Patching my personal copy is not handy, and postgesql.py doesn't support
other Postgres types as well (eg: arrays, geometric, network, bit). What's
your view on how should one deal with these types?

>> A laste question. How (if at all) can I use get_dbapi_type to know  
>> the type
>> of a returned data after autoloading a Table but *before* issueing  
>> a query?
>> (to know wich widget should handle it).
>
>if  you are looking for the python type (which is distinct from a  
>DBAPI type), we dont have that mapping set up right now (though there  
>is an old ticket in trac for this).  id propose adding a  
>"get_python_type" method to TypeEngine.  although if you are already  

+1 for this. That'd be definitely usefull also to cast back from widgets to
correct type.

>mapping widgets to types, you could map to the TypeEngine classes  
>directly as well for now

I'm a little confused. 

table.c[attr_name].type
would return something like this:
   

How can I get:
   


Thanks
sandro
*:-)

-- 
Sandro Dentella  *:-)
http://www.tksql.orgTkSQL Home page - My GPL work

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



[sqlalchemy] PG: INET type support

2006-10-30 Thread Sandro Dentella

PostgreSQL inet type seems not to be a supported type at the moment. Are
there plans to add it in SA?

I just added it in postgresql.py 

   'inet': PGInet,

class PGInet(sqltypes.INET):
def get_col_spec(self):
return "INET"

I'm unsure what sould be returned by get_dbapi_type

class Inet(TypeEngine):
"""Implements a type for inet objects"""
def get_dbapi_type(self, dbapi):
return dbapi.???

class INET(Inet): pass

What else should be done, which is the best way to go not to have to patch
after any svn update?


A laste question. How (if at all) can I use get_dbapi_type to know the type
of a returned data after autoloading a Table but *before* issueing a query?
(to know wich widget should handle it).


TIA
sandro
*:-)



-- 
Sandro Dentella  *:-)
http://www.tksql.orgTkSQL Home page - My GPL work

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



[sqlalchemy] Simple question: getting backend type from engine

2006-10-23 Thread Sandro Dentella

Hi,

  which is the correct way to tell wich backend I'm using from the engine.

  My application (a sql editor) should behave differently according to the
  dialect. I see I can read engine.dialect.__class__, is this the
  correct/suggested way? 

  TIA
  sandro


-- 
Sandro Dentella  *:-)
e-mail: [EMAIL PROTECTED] 
http://www.tksql.orgTkSQL Home page - My GPL work

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