On Wed, Oct 10, 2018 at 12:56 PM Alex Rothberg <agrothb...@gmail.com> wrote:
>
> let me get that. in the meantime, what are your thoughts on just removing the 
> view only from the original relationship and then using an explicit primary 
> join where none of the columns are marked foreign? Theoretically that should 
> solve this problem, no?

is this just for the warning?    I don't think the relationship() can
be set up with no columns marked as foreign, it takes that as a cue
that it should figure out the "foreign" columns on its own.

There's another way to make sure Employee is always dependent on
FundTitle but it's a little bit off-label.     Add the dependency you
want directly into the unit of work:

from sqlalchemy.orm import unitofwork
from sqlalchemy import event


@event.listens_for(Session, "before_flush")
def _add_dep(session, context, objects):
    context.dependencies.update([
        (
            unitofwork.SaveUpdateAll(context, inspect(FundTitle)),
            unitofwork.SaveUpdateAll(context, inspect(Employee))
        )
    ])





>
> On Wednesday, October 10, 2018 at 12:41:25 PM UTC-4, Alex Rothberg wrote:
>>
>> Is it possible to specific a non viewonly relationship in which I have a 
>> primary join specified in which none of the fk's are marked "foreign"? ie 
>> where I can mark the relationship dependancy but it wont set any columns? It 
>> looks like there may be some logic in sqla that assume all columns are fk if 
>> none are specified as foreign?
>>
>> On Wednesday, October 10, 2018 at 11:56:49 AM UTC-4, Alex Rothberg wrote:
>>>
>>> So one minor issue and one big issue with that solution:
>>> 1. minor issue, I now get these: SAWarning: relationship 'XXXX' will copy 
>>> columnYYYY to column ZZZZ, which conflicts with relationship(s): '....
>>> 2. major issue, I use raiseload("*") and now I start seeing: 
>>> sqlalchemy.exc.InvalidRequestError: 'Employee._ft_for_dependency' is not 
>>> available due to lazy='raise'
>>>
>>> On Wednesday, October 10, 2018 at 9:57:55 AM UTC-4, Mike Bayer wrote:
>>>>
>>>> On Tue, Oct 9, 2018 at 6:45 PM Alex Rothberg <agrot...@gmail.com> wrote:
>>>> >
>>>> > Okay with some small tweaks to your original code, I am able to show the 
>>>> > issue I am having. comment out flush to see issue:
>>>>
>>>> so what you're doing here is making Employee dependent on FundTitle,
>>>> which makes this a little out of the ordinary but this is fine.   You
>>>> need to give the ORM a clue that this dependency exists, since it
>>>> never looks at foreign key constraints unless you tell it to.
>>>> Adding a relationship to FundTitle that doesn't have viewonly=True is
>>>> an easy way to do this, there's no need to ever make use of the
>>>> relationship otherwise:
>>>>
>>>> class Employee(Base):
>>>>     __tablename__ = 'employee'
>>>>
>>>>     # ...
>>>>     fund_title = relationship(FundTitle, viewonly=True)
>>>>
>>>>     _ft_for_dependency = relationship(FundTitle)
>>>>
>>>>     __table_args__ = (
>>>>         ForeignKeyConstraint(
>>>>             (title_id, department_id, fund_id),
>>>>             (FundTitle.title_id, FundTitle.department_id, 
>>>> FundTitle.fund_id)
>>>>         ),
>>>>     )
>>>>
>>>> then you can take the flush() out and there's no issue, as long as
>>>> you're always making sure that FundTitle object is present either in
>>>> the current Session or the row in the database exists.
>>>>
>>>>
>>>> >
>>>> > from sqlalchemy import *
>>>> > from sqlalchemy.orm import *
>>>> > from sqlalchemy.ext.declarative import declarative_base
>>>> >
>>>> > Base = declarative_base()
>>>> >
>>>> >
>>>> > class Title(Base):
>>>> >     __tablename__ = 'title'
>>>> >     id = Column(Integer, primary_key=True)
>>>> >     department_id = Column(ForeignKey('department.id'), nullable=False)
>>>> >
>>>> >     department = relationship(lambda: Department)
>>>> >
>>>> >
>>>> > class Department(Base):
>>>> >     __tablename__ = 'department'
>>>> >     id = Column(Integer, primary_key=True)
>>>> >
>>>> >
>>>> > class Fund(Base):
>>>> >     __tablename__ = 'fund'
>>>> >     id = Column(Integer, primary_key=True)
>>>> >     title_id = Column(ForeignKey('title.id'), nullable=False)
>>>> >     department_id = Column(ForeignKey('department.id'), nullable=False)
>>>> >     department = relationship("Department")
>>>> >     title = relationship("Title")
>>>> >
>>>> >
>>>> > class FundTitle(Base):
>>>> >     __tablename__ = 'fund_title'
>>>> >     id = Column(Integer, primary_key=True)
>>>> >     title_id = Column(ForeignKey('title.id'), nullable=False)
>>>> >     department_id = Column(ForeignKey('department.id'), nullable=False)
>>>> >     fund_id = Column(ForeignKey('fund.id'), nullable=False)
>>>> >     department = relationship("Department")
>>>> >     title = relationship("Title")
>>>> >     fund = relationship("Fund")
>>>> >
>>>> >     __table_args__ = (
>>>> >         UniqueConstraint(
>>>> >             title_id, department_id, fund_id
>>>> >         ),
>>>> >     )
>>>> >
>>>> >
>>>> > class Employee(Base):
>>>> >     __tablename__ = 'employee'
>>>> >     id = Column(Integer, primary_key=True)
>>>> >     title_id = Column(ForeignKey('title.id'), nullable=False)
>>>> >     department_id = Column(ForeignKey('department.id'), nullable=False)
>>>> >     fund_id = Column(ForeignKey('fund.id'), nullable=False)
>>>> >
>>>> >     department = relationship(lambda: Department)
>>>> >     title = relationship("Title")
>>>> >     fund = relationship("Fund")
>>>> >
>>>> >     fund_title = relationship(FundTitle, viewonly=True)
>>>> >
>>>> >
>>>> >     __table_args__ = (
>>>> >         ForeignKeyConstraint(
>>>> >             (title_id, department_id, fund_id), (FundTitle.title_id, 
>>>> > FundTitle.department_id, FundTitle.fund_id)
>>>> >         ),
>>>> >     )
>>>> >
>>>> >
>>>> > e = create_engine("postgresql://localhost/test_issue", echo=False)
>>>> >
>>>> > # Base.metadata.drop_all(e)
>>>> > Base.metadata.create_all(e)
>>>> >
>>>> > s = Session(e)
>>>> > # s.rollback()
>>>> >
>>>> > while True:
>>>> >     d1 = Department()
>>>> >     t1 = Title(department=d1)
>>>> >     f1 = Fund(department=d1, title=t1)
>>>> >     ft1 = FundTitle(title=t1, department=d1, fund=f1)
>>>> >
>>>> >     s.add_all([d1, t1, f1,  ft1])
>>>> >
>>>> >     s.flush()
>>>> >
>>>> >     e1 = Employee(title=t1, department=d1, fund=f1)
>>>> >
>>>> >     s.add_all([e1,])
>>>> >     s.commit()
>>>> >
>>>> > On Tuesday, October 9, 2018 at 12:20:30 PM UTC-4, Mike Bayer wrote:
>>>> >>
>>>> >> On Tue, Oct 9, 2018 at 10:44 AM Alex Rothberg <agrot...@gmail.com> 
>>>> >> wrote:
>>>> >> >
>>>> >> > In looking at what you wrote doesn't this cause an fk violation (it 
>>>> >> > does for me):
>>>> >> > 2018-10-08 10:18:38,760 INFO sqlalchemy.engine.base.Engine INSERT 
>>>> >> > INTO employee (title_id, department_id, fund_id) VALUES 
>>>> >> > (%(title_id)s, %(department_id)s, %(fund_id)s) RETURNING employee.id
>>>> >> > 2018-10-08 10:18:38,763 INFO sqlalchemy.engine.base.Engine INSERT 
>>>> >> > INTO fund_title (title_id, department_id, fund_id) VALUES 
>>>> >> > (%(title_id)s, %(department_id)s, %(fund_id)s) RETURNING fund_title.id
>>>> >> >
>>>> >> > in that a a (non deferred) fk is violated between employee and 
>>>> >> > fund_title ?
>>>> >>
>>>> >> see we need to see how youve laid out your ForeignKeyConstraints, if
>>>> >> they are composite and overlapping, there are additional options that
>>>> >> may be needed (specifically the post_update flag).  you'll note I laid
>>>> >> out all FKs as single column.
>>>> >>
>>>> >> >
>>>> >> > On Mon, Oct 8, 2018 at 10:20 AM Mike Bayer <mik...@zzzcomputing.com> 
>>>> >> > wrote:
>>>> >> >>
>>>> >> >> On Sun, Oct 7, 2018 at 7:11 PM Alex Rothberg <agrot...@gmail.com> 
>>>> >> >> wrote:
>>>> >> >> >
>>>> >> >> > Okay so I investigated / thought about this further. The issue is 
>>>> >> >> > that while I do have a relationship between the various models, 
>>>> >> >> > some of the relationships are viewonly since I have overlapping 
>>>> >> >> > fks.
>>>> >> >> >
>>>> >> >> > For example I have a model Employee, which has fks: department_id, 
>>>> >> >> > title_id, and fund_id. The related models are Department (fk 
>>>> >> >> > department_id), Title (fk department_id and title_id) , Fund (fk 
>>>> >> >> > fund_id) and FundTitle (fk department_id, title_id and fund_id). I 
>>>> >> >> > have set FundTitle to viewonly. When updating / creating an 
>>>> >> >> > Employee, I do create and add a new FundTitle to the session, 
>>>> >> >> > however I don't assign it to the employee as the relationship is 
>>>> >> >> > viewonly. If I don't flush before making the assignment, the final 
>>>> >> >> > flush / commit attempts to update / create the employee before 
>>>> >> >> > creating the FundTitle.
>>>> >> >>
>>>> >> >> let's work with source code that is runnable (e.g. MCVE).   Below is
>>>> >> >> the model that it seems you are describing, and then there's a
>>>> >> >> demonstration of assembly of all those components using 
>>>> >> >> relationships,
>>>> >> >> a single flush and it all goes in in the correct order, all FKs are
>>>> >> >> nullable=False.
>>>> >> >>
>>>> >> >> from sqlalchemy import *
>>>> >> >> from sqlalchemy.orm import *
>>>> >> >> from sqlalchemy.ext.declarative import declarative_base
>>>> >> >>
>>>> >> >> Base = declarative_base()
>>>> >> >>
>>>> >> >>
>>>> >> >> class Employee(Base):
>>>> >> >>     __tablename__ = 'employee'
>>>> >> >>     id = Column(Integer, primary_key=True)
>>>> >> >>     title_id = Column(ForeignKey('title.id'), nullable=False)
>>>> >> >>     department_id = Column(ForeignKey('department.id'), 
>>>> >> >> nullable=False)
>>>> >> >>     fund_id = Column(ForeignKey('fund.id'), nullable=False)
>>>> >> >>     department = relationship("Department")
>>>> >> >>     title = relationship("Title")
>>>> >> >>     fund = relationship("Fund")
>>>> >> >>
>>>> >> >>
>>>> >> >> class Title(Base):
>>>> >> >>     __tablename__ = 'title'
>>>> >> >>     id = Column(Integer, primary_key=True)
>>>> >> >>     department_id = Column(ForeignKey('department.id'), 
>>>> >> >> nullable=False)
>>>> >> >>     department = relationship("Department")
>>>> >> >>
>>>> >> >>
>>>> >> >> class Department(Base):
>>>> >> >>     __tablename__ = 'department'
>>>> >> >>     id = Column(Integer, primary_key=True)
>>>> >> >>
>>>> >> >>
>>>> >> >> class Fund(Base):
>>>> >> >>     __tablename__ = 'fund'
>>>> >> >>     id = Column(Integer, primary_key=True)
>>>> >> >>     title_id = Column(ForeignKey('title.id'), nullable=False)
>>>> >> >>     department_id = Column(ForeignKey('department.id'), 
>>>> >> >> nullable=False)
>>>> >> >>     department = relationship("Department")
>>>> >> >>     title = relationship("Title")
>>>> >> >>
>>>> >> >>
>>>> >> >> class FundTitle(Base):
>>>> >> >>     __tablename__ = 'fund_title'
>>>> >> >>     id = Column(Integer, primary_key=True)
>>>> >> >>     title_id = Column(ForeignKey('title.id'), nullable=False)
>>>> >> >>     department_id = Column(ForeignKey('department.id'), 
>>>> >> >> nullable=False)
>>>> >> >>     fund_id = Column(ForeignKey('fund.id'), nullable=False)
>>>> >> >>     department = relationship("Department")
>>>> >> >>     title = relationship("Title")
>>>> >> >>     fund = relationship("Fund")
>>>> >> >>
>>>> >> >> e = create_engine("postgresql://scott:tiger@localhost/test", 
>>>> >> >> echo=True)
>>>> >> >> Base.metadata.create_all(e)
>>>> >> >>
>>>> >> >> s = Session(e)
>>>> >> >>
>>>> >> >> d1 = Department()
>>>> >> >> t1 = Title(department=d1)
>>>> >> >> f1 = Fund(department=d1, title=t1)
>>>> >> >> ft1 = FundTitle(title=t1, department=d1, fund=f1)
>>>> >> >> e1 = Employee(title=t1, department=d1, fund=f1)
>>>> >> >>
>>>> >> >> s.add_all([d1, t1, f1, ft1, e1])
>>>> >> >> s.commit()
>>>> >> >>
>>>> >> >>
>>>> >> >> the INSERTs can be ordered naturally here and the unit of work will 
>>>> >> >> do
>>>> >> >> that for you if you use relationship:
>>>> >> >>
>>>> >> >> BEGIN (implicit)
>>>> >> >> 2018-10-08 10:18:38,750 INFO sqlalchemy.engine.base.Engine INSERT 
>>>> >> >> INTO
>>>> >> >> department DEFAULT VALUES RETURNING department.id
>>>> >> >> 2018-10-08 10:18:38,750 INFO sqlalchemy.engine.base.Engine {}
>>>> >> >> 2018-10-08 10:18:38,753 INFO sqlalchemy.engine.base.Engine INSERT 
>>>> >> >> INTO
>>>> >> >> title (department_id) VALUES (%(department_id)s) RETURNING title.id
>>>> >> >> 2018-10-08 10:18:38,753 INFO sqlalchemy.engine.base.Engine 
>>>> >> >> {'department_id': 1}
>>>> >> >> 2018-10-08 10:18:38,757 INFO sqlalchemy.engine.base.Engine INSERT 
>>>> >> >> INTO
>>>> >> >> fund (title_id, department_id) VALUES (%(title_id)s,
>>>> >> >> %(department_id)s) RETURNING fund.id
>>>> >> >> 2018-10-08 10:18:38,757 INFO sqlalchemy.engine.base.Engine
>>>> >> >> {'title_id': 1, 'department_id': 1}
>>>> >> >> 2018-10-08 10:18:38,760 INFO sqlalchemy.engine.base.Engine INSERT 
>>>> >> >> INTO
>>>> >> >> employee (title_id, department_id, fund_id) VALUES (%(title_id)s,
>>>> >> >> %(department_id)s, %(fund_id)s) RETURNING employee.id
>>>> >> >> 2018-10-08 10:18:38,761 INFO sqlalchemy.engine.base.Engine
>>>> >> >> {'title_id': 1, 'department_id': 1, 'fund_id': 1}
>>>> >> >> 2018-10-08 10:18:38,763 INFO sqlalchemy.engine.base.Engine INSERT 
>>>> >> >> INTO
>>>> >> >> fund_title (title_id, department_id, fund_id) VALUES (%(title_id)s,
>>>> >> >> %(department_id)s, %(fund_id)s) RETURNING fund_title.id
>>>> >> >> 2018-10-08 10:18:38,764 INFO sqlalchemy.engine.base.Engine
>>>> >> >> {'title_id': 1, 'department_id': 1, 'fund_id': 1}
>>>> >> >> 2018-10-08 10:18:38,766 INFO sqlalchemy.engine.base.Engine COMMIT
>>>> >> >>
>>>> >> >>
>>>> >> >>
>>>> >> >>
>>>> >> >>
>>>> >> >> >
>>>> >> >> > On Tuesday, September 18, 2018 at 9:02:30 AM UTC-4, Mike Bayer 
>>>> >> >> > wrote:
>>>> >> >> >>
>>>> >> >> >> if there are no dependencies between two particular objects of
>>>> >> >> >> different classes, say A and B, then there is no deterministic
>>>> >> >> >> ordering between them.   For objects of the same class, they are
>>>> >> >> >> inserted in the order in which they were added to the Session.
>>>> >> >> >>
>>>> >> >> >> the correct way to solve this problem in SQLAlchemy is to use
>>>> >> >> >> relationship() fully.  I know you've stated that these objects 
>>>> >> >> >> have a
>>>> >> >> >> relationship() between them but you have to actually use it, that 
>>>> >> >> >> is:
>>>> >> >> >>
>>>> >> >> >> obj_a = A()
>>>> >> >> >> obj_b = B()
>>>> >> >> >>
>>>> >> >> >> obj_a.some_relationship = obj_b   # will definitely flush 
>>>> >> >> >> correctly
>>>> >> >> >> unless there is a bug
>>>> >> >> >>
>>>> >> >> >> OTOH if you are only using foreign key attributes, the ORM does 
>>>> >> >> >> *not*
>>>> >> >> >> have any idea in how it should be flushing these:
>>>> >> >> >>
>>>> >> >> >> obj_a = A()
>>>> >> >> >> obj_b = B()
>>>> >> >> >>
>>>> >> >> >> obj_a.some_fk = obj_b.some_id    # ORM doesn't care about this, no
>>>> >> >> >> ordering is implied
>>>> >> >> >>
>>>> >> >> >>
>>>> >> >> >> since you said you're not setting any IDs, I'm not sure how you 
>>>> >> >> >> could
>>>> >> >> >> be doing the above.
>>>> >> >> >>
>>>> >> >> >>
>>>> >> >> >>
>>>> >> >> >>
>>>> >> >> >>
>>>> >> >> >>
>>>> >> >> >> On Tue, Sep 18, 2018 at 5:53 AM Simon King 
>>>> >> >> >> <si...@simonking.org.uk> wrote:
>>>> >> >> >> >
>>>> >> >> >> > It's not something I've ever looked into, but I'm not aware of 
>>>> >> >> >> > any
>>>> >> >> >> > debugging options here, no. You'd probably want to start by 
>>>> >> >> >> > scattering
>>>> >> >> >> > print statements around the UOWTransaction class
>>>> >> >> >> > (https://bitbucket.org/zzzeek/sqlalchemy/src/c94d67892e68ac317d72eb202cca427084b3ca74/lib/sqlalchemy/orm/unitofwork.py?at=master&fileviewer=file-view-default#unitofwork.py-111)
>>>> >> >> >> >
>>>> >> >> >> > Looking at that code made me wonder whether you've set any 
>>>> >> >> >> > particular
>>>> >> >> >> > cascade options on your relationship; I'm not sure if cascade 
>>>> >> >> >> > options
>>>> >> >> >> > affect the dependency calculation.
>>>> >> >> >> >
>>>> >> >> >> > Simon
>>>> >> >> >> >
>>>> >> >> >> > On Tue, Sep 18, 2018 at 5:28 AM Alex Rothberg 
>>>> >> >> >> > <agrot...@gmail.com> wrote:
>>>> >> >> >> > >
>>>> >> >> >> > > In order to guide me in stripping down this code to produce 
>>>> >> >> >> > > an example for positing, are there any options / flags / 
>>>> >> >> >> > > introspections I can turn on to understand how sql makes 
>>>> >> >> >> > > decisions about the order in which is writes statements to 
>>>> >> >> >> > > the DB?
>>>> >> >> >> > >
>>>> >> >> >> > > On Friday, September 14, 2018 at 10:13:45 AM UTC-4, Simon 
>>>> >> >> >> > > King wrote:
>>>> >> >> >> > >>
>>>> >> >> >> > >> In that case can you show us the code that is causing the 
>>>> >> >> >> > >> problem?
>>>> >> >> >> > >> On Fri, Sep 14, 2018 at 2:55 PM Alex Rothberg 
>>>> >> >> >> > >> <agrot...@gmail.com> wrote:
>>>> >> >> >> > >> >
>>>> >> >> >> > >> > I am not generating any IDs myself and I already have 
>>>> >> >> >> > >> > relationships between the models.
>>>> >> >> >> > >> >
>>>> >> >> >> > >> > On Friday, September 14, 2018 at 4:33:08 AM UTC-4, Simon 
>>>> >> >> >> > >> > King wrote:
>>>> >> >> >> > >> >>
>>>> >> >> >> > >> >> On Thu, Sep 13, 2018 at 10:50 PM Alex Rothberg 
>>>> >> >> >> > >> >> <agrot...@gmail.com> wrote:
>>>> >> >> >> > >> >> >
>>>> >> >> >> > >> >> > Is it possible to hint at sqla the order in which it 
>>>> >> >> >> > >> >> > should write out changes to the DB?
>>>> >> >> >> > >> >> >
>>>> >> >> >> > >> >> > I am having issues in which I add two new objects to a 
>>>> >> >> >> > >> >> > session, a and b where a depends on b, but sqla is 
>>>> >> >> >> > >> >> > flushing a before b leading to an fk issue. I can solve 
>>>> >> >> >> > >> >> > this a few ways: explicitly calling flush after adding 
>>>> >> >> >> > >> >> > b, or changing the fk constraint to be initially 
>>>> >> >> >> > >> >> > deferred. Ideally I would not have to do either of 
>>>> >> >> >> > >> >> > these.
>>>> >> >> >> > >> >> >
>>>> >> >> >> > >> >>
>>>> >> >> >> > >> >> If you have configured a relationship between the two 
>>>> >> >> >> > >> >> classes
>>>> >> >> >> > >> >> (http://docs.sqlalchemy.org/en/latest/orm/tutorial.html#building-a-relationship),
>>>> >> >> >> > >> >> and you've linked the objects together using that 
>>>> >> >> >> > >> >> relationship (a.b =
>>>> >> >> >> > >> >> b), then SQLAlchemy will flush them in the correct order. 
>>>> >> >> >> > >> >> If you are
>>>> >> >> >> > >> >> generating your IDs in Python and assigning them to the 
>>>> >> >> >> > >> >> primary and
>>>> >> >> >> > >> >> foreign key columns directly, SQLAlchemy probably won't 
>>>> >> >> >> > >> >> understand the
>>>> >> >> >> > >> >> dependency.
>>>> >> >> >> > >> >>
>>>> >> >> >> > >> >> Does using a relationship fix your problem?
>>>> >> >> >> > >> >>
>>>> >> >> >> > >> >> Simon
>>>> >> >> >> > >> >
>>>> >> >> >> > >> > --
>>>> >> >> >> > >> > SQLAlchemy -
>>>> >> >> >> > >> > The Python SQL Toolkit and Object Relational Mapper
>>>> >> >> >> > >> >
>>>> >> >> >> > >> > http://www.sqlalchemy.org/
>>>> >> >> >> > >> >
>>>> >> >> >> > >> > To post example code, please provide an MCVE: Minimal, 
>>>> >> >> >> > >> > Complete, and Verifiable Example. See 
>>>> >> >> >> > >> > http://stackoverflow.com/help/mcve for a full description.
>>>> >> >> >> > >> > ---
>>>> >> >> >> > >> > You received this message because you are subscribed to 
>>>> >> >> >> > >> > the Google Groups "sqlalchemy" group.
>>>> >> >> >> > >> > To unsubscribe from this group and stop receiving emails 
>>>> >> >> >> > >> > from it, send an email to sqlalchemy+...@googlegroups.com.
>>>> >> >> >> > >> > To post to this group, send email to 
>>>> >> >> >> > >> > sqlal...@googlegroups.com.
>>>> >> >> >> > >> > Visit this group at 
>>>> >> >> >> > >> > https://groups.google.com/group/sqlalchemy.
>>>> >> >> >> > >> > For more options, visit https://groups.google.com/d/optout.
>>>> >> >> >> > >
>>>> >> >> >> > > --
>>>> >> >> >> > > SQLAlchemy -
>>>> >> >> >> > > The Python SQL Toolkit and Object Relational Mapper
>>>> >> >> >> > >
>>>> >> >> >> > > http://www.sqlalchemy.org/
>>>> >> >> >> > >
>>>> >> >> >> > > To post example code, please provide an MCVE: Minimal, 
>>>> >> >> >> > > Complete, and Verifiable Example. See 
>>>> >> >> >> > > http://stackoverflow.com/help/mcve for a full description.
>>>> >> >> >> > > ---
>>>> >> >> >> > > You received this message because you are subscribed to the 
>>>> >> >> >> > > Google Groups "sqlalchemy" group.
>>>> >> >> >> > > To unsubscribe from this group and stop receiving emails from 
>>>> >> >> >> > > it, send an email to sqlalchemy+...@googlegroups.com.
>>>> >> >> >> > > To post to this group, send email to 
>>>> >> >> >> > > sqlal...@googlegroups.com.
>>>> >> >> >> > > Visit this group at 
>>>> >> >> >> > > https://groups.google.com/group/sqlalchemy.
>>>> >> >> >> > > For more options, visit https://groups.google.com/d/optout.
>>>> >> >> >> >
>>>> >> >> >> > --
>>>> >> >> >> > SQLAlchemy -
>>>> >> >> >> > The Python SQL Toolkit and Object Relational Mapper
>>>> >> >> >> >
>>>> >> >> >> > http://www.sqlalchemy.org/
>>>> >> >> >> >
>>>> >> >> >> > To post example code, please provide an MCVE: Minimal, 
>>>> >> >> >> > Complete, and Verifiable Example.  See  
>>>> >> >> >> > http://stackoverflow.com/help/mcve for a full description.
>>>> >> >> >> > ---
>>>> >> >> >> > You received this message because you are subscribed to the 
>>>> >> >> >> > Google Groups "sqlalchemy" group.
>>>> >> >> >> > To unsubscribe from this group and stop receiving emails from 
>>>> >> >> >> > it, send an email to sqlalchemy+...@googlegroups.com.
>>>> >> >> >> > To post to this group, send email to sqlal...@googlegroups.com.
>>>> >> >> >> > Visit this group at https://groups.google.com/group/sqlalchemy.
>>>> >> >> >> > For more options, visit https://groups.google.com/d/optout.
>>>> >> >> >
>>>> >> >> > --
>>>> >> >> > SQLAlchemy -
>>>> >> >> > The Python SQL Toolkit and Object Relational Mapper
>>>> >> >> >
>>>> >> >> > http://www.sqlalchemy.org/
>>>> >> >> >
>>>> >> >> > To post example code, please provide an MCVE: Minimal, Complete, 
>>>> >> >> > and Verifiable Example. See http://stackoverflow.com/help/mcve for 
>>>> >> >> > a full description.
>>>> >> >> > ---
>>>> >> >> > You received this message because you are subscribed to the Google 
>>>> >> >> > Groups "sqlalchemy" group.
>>>> >> >> > To unsubscribe from this group and stop receiving emails from it, 
>>>> >> >> > send an email to sqlalchemy+...@googlegroups.com.
>>>> >> >> > To post to this group, send email to sqlal...@googlegroups.com.
>>>> >> >> > Visit this group at https://groups.google.com/group/sqlalchemy.
>>>> >> >> > For more options, visit https://groups.google.com/d/optout.
>>>> >> >>
>>>> >> >> --
>>>> >> >> SQLAlchemy -
>>>> >> >> The Python SQL Toolkit and Object Relational Mapper
>>>> >> >>
>>>> >> >> http://www.sqlalchemy.org/
>>>> >> >>
>>>> >> >> To post example code, please provide an MCVE: Minimal, Complete, and 
>>>> >> >> Verifiable Example.  See  http://stackoverflow.com/help/mcve for a 
>>>> >> >> full description.
>>>> >> >> ---
>>>> >> >> You received this message because you are subscribed to a topic in 
>>>> >> >> the Google Groups "sqlalchemy" group.
>>>> >> >> To unsubscribe from this topic, visit 
>>>> >> >> https://groups.google.com/d/topic/sqlalchemy/fZMJQoI2qkY/unsubscribe.
>>>> >> >> To unsubscribe from this group and all its topics, send an email to 
>>>> >> >> sqlalchemy+...@googlegroups.com.
>>>> >> >> To post to this group, send email to sqlal...@googlegroups.com.
>>>> >> >> Visit this group at https://groups.google.com/group/sqlalchemy.
>>>> >> >> For more options, visit https://groups.google.com/d/optout.
>>>> >> >
>>>> >> > --
>>>> >> > SQLAlchemy -
>>>> >> > The Python SQL Toolkit and Object Relational Mapper
>>>> >> >
>>>> >> > http://www.sqlalchemy.org/
>>>> >> >
>>>> >> > To post example code, please provide an MCVE: Minimal, Complete, and 
>>>> >> > Verifiable Example. See http://stackoverflow.com/help/mcve for a full 
>>>> >> > description.
>>>> >> > ---
>>>> >> > You received this message because you are subscribed to the Google 
>>>> >> > Groups "sqlalchemy" group.
>>>> >> > To unsubscribe from this group and stop receiving emails from it, 
>>>> >> > send an email to sqlalchemy+...@googlegroups.com.
>>>> >> > To post to this group, send email to sqlal...@googlegroups.com.
>>>> >> > Visit this group at https://groups.google.com/group/sqlalchemy.
>>>> >> > For more options, visit https://groups.google.com/d/optout.
>>>> >
>>>> > --
>>>> > SQLAlchemy -
>>>> > The Python SQL Toolkit and Object Relational Mapper
>>>> >
>>>> > http://www.sqlalchemy.org/
>>>> >
>>>> > To post example code, please provide an MCVE: Minimal, Complete, and 
>>>> > Verifiable Example. See http://stackoverflow.com/help/mcve for a full 
>>>> > description.
>>>> > ---
>>>> > You received this message because you are subscribed to the Google 
>>>> > Groups "sqlalchemy" group.
>>>> > To unsubscribe from this group and stop receiving emails from it, send 
>>>> > an email to sqlalchemy+...@googlegroups.com.
>>>> > To post to this group, send email to sqlal...@googlegroups.com.
>>>> > Visit this group at https://groups.google.com/group/sqlalchemy.
>>>> > For more options, visit https://groups.google.com/d/optout.
>
> --
> SQLAlchemy -
> The Python SQL Toolkit and Object Relational Mapper
>
> http://www.sqlalchemy.org/
>
> To post example code, please provide an MCVE: Minimal, Complete, and 
> Verifiable Example. See http://stackoverflow.com/help/mcve for a full 
> description.
> ---
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sqlalchemy+unsubscr...@googlegroups.com.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> Visit this group at https://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to