[Sqlalchemy-commits] commit/sqlalchemy: 6 new changesets
Brought to you by:
zzzeek
From: Bitbucket <com...@bi...> - 2016-10-17 16:31:50
|
6 new commits in sqlalchemy: https://bitbucket.org/zzzeek/sqlalchemy/commits/665b92d83f3a/ Changeset: 665b92d83f3a Branch: None User: zzzeek Date: 2016-10-14 17:26:35+00:00 Summary: Check for __module__ not present in util.wrap_callable() The newly added wrap_callable() function assumes __module__ is present when this is not the case for objects such as functools.partial. Change-Id: Ia226260e9a65419e26d5c1f7187512f7fd4bb7c1 Fixes: #3823 Affected #: 3 files https://bitbucket.org/zzzeek/sqlalchemy/commits/d18221c542bf/ Changeset: d18221c542bf Branch: None User: kaiyou Date: 2016-10-16 14:45:54+00:00 Summary: Remove some legacy dead code from the declared_attr logic The second 'if' condition was never called because the original condition always returns. Affected #: 1 file https://bitbucket.org/zzzeek/sqlalchemy/commits/4684cfb50836/ Changeset: 4684cfb50836 Branch: None User: zzzeek Date: 2016-10-17 15:28:43+00:00 Summary: Merge "Check for __module__ not present in util.wrap_callable()" Affected #: 3 files https://bitbucket.org/zzzeek/sqlalchemy/commits/ae7d2837b3c5/ Changeset: ae7d2837b3c5 Branch: None User: zzzeek Date: 2016-10-17 15:28:36+00:00 Summary: Assemble "don't joinedload other side" rule using query._current_path Discovered during testing for [ticket:3822], the rule added for [ticket:1495] will fail if the source object has propagated options set up, which add elements to query._current_path. Fixes: #3824 Change-Id: I3d96c96fee5f9b247f739d2136d18681ac61f2fe Affected #: 6 files https://bitbucket.org/zzzeek/sqlalchemy/commits/c02675b407b8/ Changeset: c02675b407b8 Branch: None User: zzzeek Date: 2016-10-17 15:29:23+00:00 Summary: Memoize load_path in all cases, run quick populators for path change Adds a new variant to the "isnew" state within entity loading for isnew=False, but the load path is new. This is to address the use case of an entity appearing in multiple places in the row in a more generalized way than the fixes in [ticket:3431], [ticket:3811] in that loading.py will be able to tell the populator that this row is not "isnew" but is a "new" path for the entity. For the moment, the new information is only being applied to the use of "quick" populators so that simple column loads can take place on top of a deferred loader from elsewhere in the row. As part of this change, state.load_path() will now always be populated with the "path" that was in effect when this state was originally loaded, which for multi-path loads of the same entity is still non-deterministic. Ideally there'd be some kind of "here's all the paths that loaded this state and how" type of data structure though it's not clear if that could be done while maintaining performance. Fixes: #3822 Change-Id: Ib915365353dfcca09e15c24001a8581113b97d5e Affected #: 6 files https://bitbucket.org/zzzeek/sqlalchemy/commits/8ef4f6a53864/ Changeset: 8ef4f6a53864 Branch: master User: zzzeek Date: 2016-10-17 16:13:01+00:00 Summary: Add explicit copy() to Enum The Boolean and Enum types both place SchemaType second in the inheritance hierarchy. In the case of Enum, this works out that the copy() method is called from the base TypeEngine which fails to transfer _create_events. The test suite doesn't seem to work with the inhertance hierarchy set up like this as the event listeners don't work out, the _on_metadata_create and _on_table_create hooks cause the production of an adapted type which then adds event listeners that cause deque changed while iteration. It's not clear why Enum /Boolean don't have this problem. But in any case it seems like the class mechanics for these types remains fragile and would benefit from yet another refactor someday. Change-Id: Ib641a5d2321b00f58bbe98dd0c5e789374db32b2 Fixes: #3827 Affected #: 3 files Repository URL: https://bitbucket.org/zzzeek/sqlalchemy/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. |