On Wed, Nov 8, 2017 at 7:43 AM, Hugo Heyman <hugo.hey...@gmail.com> wrote:
> Hi again,
>
> I've been trying to isolate the problem and I think I have found what's
> causing this for me. A while back I added this package
> https://github.com/operator/sqlalchemy_bulk_lazy_loader
> (it simplified things when using graphene-sqlalchemy)

OK, yeah this line:

https://github.com/operator/sqlalchemy_bulk_lazy_loader/blob/master/lib/sqlalchemy_bulk_lazy_loader.py#L141

should be removed and a simple "from sqlalchemy.orm import
strategy_options" should be placed at the top of the module.

otherwise, this line is adding a "dependency" to the "importlater"
thing (which is something that resolves import cycles in SQLAlchemy in
a thread-safe way) that isn't getting resolved.



>
> The error seem to happen even without using the custom 'bulk' lazy option on
> any relation, as long as BulkLazyLoader.register_loader()runs.
>
> I'll take this issue to bulk lazy loader, since the origin of this error is
> probably there.
>
> Thanks for all your effort trying to help me!
>
> /Hugo
>
> On Tue, Nov 7, 2017 at 6:41 PM, Mike Bayer <mike...@zzzcomputing.com> wrote:
>>
>> Are you able to reproduce this error in other environments or only this
>> one particular virtual environment?   If it doesn't reproduce elsewheere can
>> you try recreating your environment?   Otherwise if you can reproduce it in
>> other environments can you show me the complete steps I'd need to do to
>> recreate ?
>>
>> On Nov 7, 2017 11:53 AM, "Hugo Heyman" <hugo.hey...@gmail.com> wrote:
>>
>> Traceback (most recent call last):
>>   File "<console>", line 1, in <module>
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py",
>> line 157, in do
>>     return getattr(self.registry(), name)(*args, **kwargs)
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/session.py",
>> line 921, in commit
>>     self.transaction.commit()
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/session.py",
>> line 461, in commit
>>     self._prepare_impl()
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/session.py",
>> line 441, in _prepare_impl
>>     self.session.flush()
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/session.py",
>> line 2192, in flush
>>     self._flush(objects)
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/session.py",
>> line 2312, in _flush
>>     transaction.rollback(_capture_exception=True)
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py",
>> line 66, in __exit__
>>     compat.reraise(exc_type, exc_value, exc_tb)
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/util/compat.py",
>> line 187, in reraise
>>     raise value
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/session.py",
>> line 2276, in _flush
>>     flush_context.execute()
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py",
>> line 368, in execute
>>     postsort_actions = self._generate_actions()
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py",
>> line 327, in _generate_actions
>>     if action.execute(self):
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py",
>> line 447, in execute
>>     self.dependency_processor.presort_deletes(uow, delete_states)
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/dependency.py",
>> line 430, in presort_deletes
>>     self._passive_delete_flag)
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py",
>> line 223, in get_attribute_history
>>     attributes.LOAD_AGAINST_COMMITTED)
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/attributes.py",
>> line 909, in get_history
>>     current = self.get(state, dict_, passive=passive)
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/attributes.py",
>> line 584, in get
>>     value = self.callable_(state, passive)
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/strategies.py",
>> line 557, in _load_for_state
>>     return self._emit_lazyload(session, state, ident_key, passive)
>>   File "<string>", line 1, in <lambda>
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/strategies.py",
>> line 615, in _emit_lazyload
>>     strategy_options.Load.for_existing_path(
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py",
>> line 977, in __getattr__
>>     attr = getattr(self.module, key)
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py",
>> line 767, in __get__
>>     obj.__dict__[self.__name__] = result = self.fget(obj)
>>   File
>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py",
>> line 962, in module
>>     % (self._il_path, self._il_addtl))
>> ImportError: importlater.resolve_all() hasn't been called (this is
>> sqlalchemy.orm strategy_options)
>>
>> On Tue, Nov 7, 2017 at 5:26 PM, Mike Bayer <mike...@zzzcomputing.com>
>> wrote:
>>>
>>> Can you show me the stack trace you get with 1.1.15?   Thanks
>>>
>>> On Nov 7, 2017 8:30 AM, "Hugo Heyman" <hugo.hey...@gmail.com> wrote:
>>>>
>>>> Unfortunately it didn't help. I tried adding those imports both in the
>>>> models file and run them first in shell.
>>>>
>>>> On Tue, Nov 7, 2017 at 2:18 PM, Mike Bayer <clas...@zzzcomputing.com>
>>>> wrote:
>>>>>
>>>>> Ok, see if for the moment some imports at the top help:
>>>>>
>>>>>
>>>>> import sqlalchemy
>>>>> import sqlalchemy.orm
>>>>>
>>>>> Make sure those run first.
>>>>>
>>>>> On Nov 7, 2017 8:12 AM, "Hugo Heyman" <hugo.hey...@gmail.com> wrote:
>>>>>>
>>>>>> 1.2.0b3 but I also tried 1.1.15 now with the same result.
>>>>>>
>>>>>> /Hugo
>>>>>>
>>>>>> On Tue, Nov 7, 2017 at 1:26 PM, Mike Bayer <mike...@zzzcomputing.com>
>>>>>> wrote:
>>>>>>>
>>>>>>> That's probably our fault, what is the exact version of SQLAlchemy in
>>>>>>> use ?  Did you try upgrading to the latest release ?
>>>>>>>
>>>>>>> On Nov 7, 2017 4:32 AM, "Hugo Heyman" <hugo.hey...@gmail.com> wrote:
>>>>>>>>
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>>
>>>>>>>> I get an error I don't really understand. When I do session commit
>>>>>>>> after a deletion like this:
>>>>>>>>
>>>>>>>> App: app.bootstrap_new [debug]
>>>>>>>> Instance: /Users/hugo/Dropbox/lahey/api/instance
>>>>>>>> >>> from app.extensions import db
>>>>>>>> >>> from app.models.user import User
>>>>>>>> >>> user = User.query.all()[0]
>>>>>>>> >>> db.session.delete(user)
>>>>>>>> >>> db.session.commit()
>>>>>>>>  (this is in a shell with flask app context but I get the same error
>>>>>>>> when trying to delete in app that is being served)
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Traceback (most recent call last):
>>>>>>>>>   File "<console>", line 1, in <module>
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py",
>>>>>>>>> line 153, in do
>>>>>>>>>     return getattr(self.registry(), name)(*args, **kwargs)
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/session.py",
>>>>>>>>> line 937, in commit
>>>>>>>>>     self.transaction.commit()
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/session.py",
>>>>>>>>> line 461, in commit
>>>>>>>>>     self._prepare_impl()
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/session.py",
>>>>>>>>> line 441, in _prepare_impl
>>>>>>>>>     self.session.flush()
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/session.py",
>>>>>>>>> line 2237, in flush
>>>>>>>>>     self._flush(objects)
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/session.py",
>>>>>>>>> line 2363, in _flush
>>>>>>>>>     transaction.rollback(_capture_exception=True)
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py",
>>>>>>>>> line 66, in __exit__
>>>>>>>>>     compat.reraise(exc_type, exc_value, exc_tb)
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/util/compat.py",
>>>>>>>>> line 187, in reraise
>>>>>>>>>     raise value
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/session.py",
>>>>>>>>> line 2327, in _flush
>>>>>>>>>     flush_context.execute()
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py",
>>>>>>>>> line 370, in execute
>>>>>>>>>     postsort_actions = self._generate_actions()
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py",
>>>>>>>>> line 329, in _generate_actions
>>>>>>>>>     if action.execute(self):
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py",
>>>>>>>>> line 454, in execute
>>>>>>>>>     self.dependency_processor.presort_deletes(uow, delete_states)
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/dependency.py",
>>>>>>>>> line 419, in presort_deletes
>>>>>>>>>     self._passive_delete_flag)
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py",
>>>>>>>>> line 225, in get_attribute_history
>>>>>>>>>     attributes.LOAD_AGAINST_COMMITTED)
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/attributes.py",
>>>>>>>>> line 928, in get_history
>>>>>>>>>     current = self.get(state, dict_, passive=passive)
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/attributes.py",
>>>>>>>>> line 603, in get
>>>>>>>>>     value = self.callable_(state, passive)
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/strategies.py",
>>>>>>>>> line 623, in _load_for_state
>>>>>>>>>     return self._emit_lazyload(session, state, ident_key, passive)
>>>>>>>>>   File "<string>", line 1, in <lambda>
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/strategies.py",
>>>>>>>>> line 747, in _emit_lazyload
>>>>>>>>>     result = q(session).params(**params).all()
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/ext/baked.py",
>>>>>>>>> line 399, in all
>>>>>>>>>     return list(self)
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/ext/baked.py",
>>>>>>>>> line 296, in __iter__
>>>>>>>>>     baked_context = bq._bake(self.session)
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/ext/baked.py",
>>>>>>>>> line 198, in _bake
>>>>>>>>>     query = self._as_query(session)
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/ext/baked.py",
>>>>>>>>> line 221, in _as_query
>>>>>>>>>     query = step(query)
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/orm/strategies.py",
>>>>>>>>> line 727, in <lambda>
>>>>>>>>>     strategy_options.Load.for_existing_path(
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py",
>>>>>>>>> line 977, in __getattr__
>>>>>>>>>     attr = getattr(self.module, key)
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py",
>>>>>>>>> line 767, in __get__
>>>>>>>>>     obj.__dict__[self.__name__] = result = self.fget(obj)
>>>>>>>>>   File
>>>>>>>>> "/Users/hugo/Dropbox/lahey/api/.venv/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py",
>>>>>>>>> line 962, in module
>>>>>>>>>     % (self._il_path, self._il_addtl))
>>>>>>>>> ImportError: importlater.resolve_all() hasn't been called (this is
>>>>>>>>> sqlalchemy.orm strategy_options)
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> My model declaration for this object looks like this:
>>>>>>>> import datetime
>>>>>>>> from sqlalchemy_utils.types.password import PasswordType
>>>>>>>> from sqlalchemy_utils import force_auto_coercion
>>>>>>>>
>>>>>>>> from app.extensions import db
>>>>>>>>
>>>>>>>> # Setup coercion of passwords
>>>>>>>> force_auto_coercion()
>>>>>>>>
>>>>>>>>
>>>>>>>> class User(db.Model):
>>>>>>>>  id = db.Column(db.Integer, primary_key=True)
>>>>>>>>  email = db.Column(db.String(120), unique=True, nullable=False)
>>>>>>>>  password = db.Column(PasswordType(schemes=['pbkdf2_sha512']),
>>>>>>>> nullable=False)
>>>>>>>>  name = db.Column(db.String(256))
>>>>>>>>  created_at = db.Column(db.DateTime, default=datetime.datetime.now)
>>>>>>>>  updated_at = db.Column(db.DateTime, onupdate=datetime.datetime.now)
>>>>>>>>
>>>>>>>> I can delete objects of other models without trouble. I've tried to
>>>>>>>> follow the code in the traceback, but can't really make sense of it.
>>>>>>>> Could this have something to do with the PasswordType column from
>>>>>>>> sqlalchemy_utils?
>>>>>>>>
>>>>>>>> Help is much appreciated!
>>>>>>>>
>>>>>>>> /Hugo
>>>>>>>>
>>>>>>>> --
>>>>>>>> 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 a topic in
>>>>>>> the Google Groups "sqlalchemy" group.
>>>>>>> To unsubscribe from this topic, visit
>>>>>>> https://groups.google.com/d/topic/sqlalchemy/kz47tCpbf-A/unsubscribe.
>>>>>>> To unsubscribe from this group and all its topics, 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.
>>>>>
>>>>> --
>>>>> 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/kz47tCpbf-A/unsubscribe.
>>>>> To unsubscribe from this group and all its topics, 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.
>>>
>>> --
>>> 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/kz47tCpbf-A/unsubscribe.
>>> To unsubscribe from this group and all its topics, 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.
>>
>>
>> --
>> 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/kz47tCpbf-A/unsubscribe.
>> To unsubscribe from this group and all its topics, 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.

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