summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/ext/hybrid.py
Commit message (Collapse)AuthorAgeFilesLines
* Minor fixes in the ext.hybrid documentation.pr/316Randy Barlow2016-10-231-2/+2
|
* Check for __clause_element__() in ORM insert/updateMike Bayer2016-10-051-1/+1
| | | | | | | | | | | | | | | | ORM attributes can now be assigned any object that is has a ``__clause_element__()`` attribute, which will result in inline SQL the way any :class:`.ClauseElement` class does. This covers other mapped attributes not otherwise transformed by further expression constructs. As part of this, it was considered that we could add __clause_element__() to ClauseElement, however this causes endless loops in a "while" pattern and this pattern has been identified in third party libraries. Add a test to ensure we never make that change. Change-Id: I9e15b3f1c4883fd3909acbf7dc81d034c6e3ce1d Fixes: #3802
* Propagate hybrid properties / infoMike Bayer2016-04-181-1/+12
| | | | | | | | | | | Keystone and others depend on the .property attribute being "mirrored" when a @hybrid_property is linked directly to a mapped attribute. Restore this linkage and also create a defined behavior for the .info dictionary; it is that of the hybrid itself. Add this behavioral change to the migration notes. Change-Id: I8ac34ef52039387230c648866c5ca15d381f7fee References: #3653
* Honor hybrid property / method docstringsMike Bayer2016-04-181-5/+25
| | | | | | | | | | | | The docstring specified on a hybrid property or method is now honored at the class level, allowing it to work with tools like Sphinx autodoc. The mechanics here necessarily involve some wrapping of expressions to occur for hybrid properties, which may cause them to appear differently using introspection. Fixes: #3653 Change-Id: I02549977fe8b2a051802eed7b00cc532fbc214e3 Pull-request: https://github.com/zzzeek/sqlalchemy/pull/239
* - happy new yearMike Bayer2016-01-291-1/+1
|
* Correcting the Hybrid Property ExampleJason Myers2015-09-101-1/+1
| | | | | | Fixes #3528 Signed-off-by: Jason Myers <jason@jasonamyers.com>
* Missing comma in method argspr/184Benjamin Petersen2015-06-221-1/+1
|
* - copyright 2015Mike Bayer2015-03-101-1/+1
|
* - add MemoizedSlots, a generalized solution to using __getattr__Mike Bayer2015-01-051-2/+2
| | | | | for memoization on a class that uses slots. - apply many more __slots__. mem use for nova now at 46% savings
* correctionsMike Bayer2014-12-271-1/+1
|
* - rename _InspectionAttr to InspectionAttrMike Bayer2014-08-131-6/+6
|
* PEP8 style fixesBrian Jarrett2014-07-131-3/+4
|
* - break up the <authors> copyright comment as part of a passMike Bayer2014-07-091-1/+2
| | | | to get all flake8 passing
* - happy new yearMike Bayer2014-01-051-1/+1
|
* Minor hybrid extension documentation updatepr/18David Beitey2013-07-191-2/+2
|
* - rework PropComparator.adapted() to be PropComparator.adapt_to_entity(),Mike Bayer2013-06-171-1/+1
| | | | | | | passes in AliasedInsp and allows more flexibility. - rework the AliasedClass/AliasedInsp relationship so that AliasedInsp has all state and functionality. AliasedClass is just a facade. [ticket:2756]
* formattingMike Bayer2013-02-021-3/+7
|
* happy new year (see #2645)Diana Clarke2013-01-011-1/+1
|
* Extended the :doc:`/core/inspection` system so that all Python descriptorsMike Bayer2012-12-291-2/+33
| | | | | | | | associated with the ORM or its extensions can be retrieved. This fulfills the common request of being able to inspect all :class:`.QueryableAttribute` descriptors in addition to extension types such as :class:`.hybrid_property` and :class:`.AssociationProxy`. See :attr:`.Mapper.all_orm_descriptors`.
* just a pep8 pass of lib/sqlalchemy/extDiana Clarke2012-11-191-7/+9
|
* hybrids: illustrate correlated subqueryMike Bayer2012-08-271-5/+62
|
* pep8Mike Bayer2012-07-181-93/+125
|
* - move ext to relative importsMike Bayer2012-07-171-2/+2
|
* - express most of the orm.util functions in terms of the inspection systemMike Bayer2012-07-161-96/+96
| | | | | | | | | | | | | | - modify inspection system: 1. raise a new exception for any case where the inspection context can't be returned. this supersedes the "not mapped" errors. 2. don't configure mappers on a mapper inspection. this allows the inspectors to be used during mapper config time. instead, the mapper configures on "with_polymorphic_selectable" now, which is needed for all queries - add a bunch of new "is_XYZ" attributes to inspectors - finish making the name change of "compile" -> "configure", for some reason this was only done partially
* fix up docs a bit here, not sure if some enhancements had alreadyMike Bayer2012-03-131-30/+35
| | | | been made as things didn't seem as bad as [ticket:2306] indicated
* - [bug] implemented standard "can't set attribute" /Mike Bayer2012-01-271-0/+4
| | | | | | "can't delete attribute" AttributeError when setattr/delattr used on a hybrid that doesn't define fset or fdel. [ticket:2353]
* happy new yearMike Bayer2012-01-041-1/+1
|
* refine this a bitMike Bayer2011-12-051-4/+18
|
* - [feature] Added an example to the hybrid docsMike Bayer2011-12-051-0/+134
| | | | | | | | | of a "transformer" - a hybrid that returns a query-transforming callable in combination with a custom comparator. Uses a new method on Query called with_transformation(). The use case here is fairly experimental, but only adds one line of code to Query.
* typoMike Bayer2011-05-221-1/+1
|
* go a little further and introduce hybrid valueMike Bayer2011-05-221-1/+87
|
* - add some docs to hybrid comparators, operators/comparator logic at the baseMike Bayer2011-05-221-1/+15
|
* - rework setup.py script to work with:Mike Bayer2011-04-171-3/+3
| | | | | | | | | | - Python 3 - Python 3 builds if Distribute isn't installed - rework install documentation again - raise if doc build with mako < 0.4.1 - Python 3.1 builds force doctest parse but then fails due to distribute bug, so remove usage of backslash \\ in hybrid.py docstring - put in the latest ez_setup.py
* and try that again.....Mike Bayer2011-01-201-3/+2
|
* - use types.MethodType here for python3 compatMike Bayer2011-01-201-3/+3
|
* - Session.connection(), Session.execute() accept 'bind',Mike Bayer2011-01-181-2/+2
| | | | | | | | to allow execute/connection operations to participate in the open transaction of an engine explicitly. [ticket:1996] - fix up the docs for connection, execute, which were awful. - correct usage strings in hybrid
* - tests for hybridMike Bayer2011-01-171-12/+309
| | | | | - documentation for hybrid - rewrite descriptor, synonym, comparable_property documentation
* - rename hybrid.property_, hybrid.method to hybrid_property, hybrid_method. ↵Mike Bayer2011-01-121-7/+7
| | | | | | | more typing on the import but this is just clearer. - adapt dictlike-polymorphic.py to use hybrid.
* - whitespace removal bonanzaMike Bayer2011-01-021-16/+16
|
* - clean up copyright, update for 2011, stamp every file withMike Bayer2011-01-021-0/+6
| | | | | a consistent tag - AUTHORS file
* - add docs for hybridMike Bayer2010-11-281-17/+2
|
* this doesnt actually workMike Bayer2010-08-271-5/+0
|
* - hybrid_andMike Bayer2010-08-251-4/+7
| | | | - move the update_wrapper to synonym for now, we can't assume the return value of hybrid.expr is an updateable wrapper
* devMike Bayer2010-08-061-14/+9
|
* some cleanup, some screwing around with comparators...many more issues coming upMike Bayer2010-08-061-0/+31
|
* - at long last have gotten the "proxy_property" keywordMike Bayer2010-08-061-4/+7
| | | | | | | | arg of register_descriptor to not be needed. synonym, comparable, concreteinherited props now supply a descriptor directly in the class dict, whose __get__(None, cls) supplies a QueryableAttribute. The basic idea is that the hybrid prop can be used for this. Payoff here is arguable, except that hybrid can be at the base of future synonym/comparable operations.
* - add hybrid extensionMike Bayer2010-08-061-0/+111
- mapper begins to lose awareness of SynonynmProperty, ComparableProperty