summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/ext
Commit message (Collapse)AuthorAgeFilesLines
* - Loosened some restrictions that were added to ``@declared_attr``Mike Bayer2015-03-181-9/+6
| | | | | | | | | | | | | objects, such that they were prevented from being called outside of the declarative process; this is related to the enhancements of #3150 which allow ``@declared_attr`` to return a value that is cached based on the current class as it's being configured. The exception raise has been removed, and the behavior changed so that outside of the declarative process, the function decorated by ``@declared_attr`` is called every time just like a regular ``@property``, without using any caching, as none is available at this stage. fixes #3331
* - ensure as_declarative is part of __all__ hereMike Bayer2015-03-121-0/+1
|
* - Added a new extension suite :mod:`sqlalchemy.ext.baked`. ThisMike Bayer2015-03-112-0/+504
| | | | | | | | simple but unusual system allows for a dramatic savings in Python overhead for the construction and processing of orm :class:`.Query` objects, from query construction up through rendering of a string SQL statement. fixes #3054
* - Fixed bug where using an ``__abstract__`` mixin in the middleMike Bayer2015-03-101-0/+21
| | | | | | | of a declarative inheritance hierarchy would prevent attributes and configuration being correctly propagated from the base class to the inheriting class. fixes #3219 fixes #3240
* - copyright 2015Mike Bayer2015-03-1013-13/+13
|
* Fix slice addressing of _AssociationList with python3Gilles Dartiguelongue2015-03-101-1/+4
|
* - repair issue in declared_attr.cascading such that within aMike Bayer2015-02-241-0/+2
| | | | | | | | | subclass, the value returned by the descriptor is not available because the superclass is already mapped with the InstrumentedAttribute, until the subclass is mapped. We add a setattr() to set up that attribute so that the __mapper_args__ hook and possibly others have access to the "cascaded" version of the attribute within the call.
* - add MemoizedSlots, a generalized solution to using __getattr__Mike Bayer2015-01-052-3/+3
| | | | | for memoization on a class that uses slots. - apply many more __slots__. mem use for nova now at 46% savings
* - strategies + declarativeMike Bayer2015-01-041-0/+10
|
* correctionsMike Bayer2014-12-271-1/+1
|
* Maul the evaulate & friends typoPriit Laes2014-12-191-1/+1
|
* - squash-merge the improve_toc branch, which moves all the Sphinx stylingMike Bayer2014-12-171-1371/+0
| | | | | | and extensions into an external library, and also reorganizes most large documentation pages into many small areas to reduce scrolling and better present the context into a more fine-grained hierarchy.
* - Fixed "'NoneType' object has no attribute 'concrete'" errorMike Bayer2014-10-061-1/+1
| | | | | | when using :class:`.AbstractConcreteBase` in conjunction with a subclass that declares ``__abstract__``. fixes #3185
* commentsMike Bayer2014-09-261-3/+8
|
* - refactor of declarative, break up into indiviudal methodsMike Bayer2014-09-253-338/+654
| | | | | | | | | | | | | | | | | | | | | | | that are now affixed to _MapperConfig - declarative now creates column copies ahead of time so that they are ready to go for a declared_attr - overhaul of declared_attr; memoization, cascading modifier - A relationship set up with :class:`.declared_attr` on a :class:`.AbstractConcreteBase` base class will now be configured on the abstract base mapping automatically, in addition to being set up on descendant concrete classes as usual. fixes #2670 - The :class:`.declared_attr` construct has newly improved behaviors and features in conjunction with declarative. The decorated function will now have access to the final column copies present on the local mixin when invoked, and will also be invoked exactly once for each mapped class, the returned result being memoized. A new modifier :attr:`.declared_attr.cascading` is added as well. fixes #3150 - the original plan for #3150 has been scaled back; by copying mixin columns up front and memoizing, we don't actually need the "map properties later" thing. - full docs + migration notes
* - The :mod:`sqlalchemy.ext.automap` extension will now setMike Bayer2014-09-221-6/+40
| | | | | | | | | | | | | | ``cascade="all, delete-orphan"`` automatically on a one-to-many relationship/backref where the foreign key is detected as containing one or more non-nullable columns. This argument is present in the keywords passed to :func:`.automap.generate_relationship` in this case and can still be overridden. Additionally, if the :class:`.ForeignKeyConstraint` specifies ``ondelete="CASCADE"`` for a non-nullable or ``ondelete="SET NULL"`` for a nullable set of columns, the argument ``passive_deletes=True`` is also added to the relationship. Note that not all backends support reflection of ondelete, but backends that do include Postgresql and MySQL. fixes #3210
* - Fixed an unlikely race condition observed in some exotic end-userMike Bayer2014-09-181-1/+6
| | | | | | | | setups, where the attempt to check for "duplicate class name" in declarative would hit upon a not-totally-cleaned-up weak reference related to some other class being removed; the check here now ensures the weakref still references an object before calling upon it further. fixes #3208
* - Fixed bug in ordering list where the order of items would beMike Bayer2014-09-101-2/+5
| | | | | | | | thrown off during a collection replace event, if the reorder_on_append flag were set to True. The fix ensures that the ordering list only impacts the list that is explicitly associated with the object. fixes #3191
* Merge branch 'mutable-dict-update' of ↵Mike Bayer2014-08-251-0/+4
|\ | | | | | | https://bitbucket.org/goodscloud/sqlalchemy into pr27
| * add update() support to MutableDictMatt Chisholm2014-08-091-0/+4
| |
* | Merge branch 'mutable-dict-coerce-fix' of ↵Mike Bayer2014-08-251-3/+3
|\ \ | | | | | | | | | https://bitbucket.org/goodscloud/sqlalchemy into pr27
| * | fix MutableDict.coerceMatt Chisholm2014-08-091-3/+3
| |/ | | | | | | If a class inherited from MutableDict (say, for instance, to add an update() method), coerce() would give back an instance of MutableDict instead of an instance of the derived class.
* | - rename _InspectionAttr to InspectionAttrMike Bayer2014-08-132-9/+9
|/
* - also add the alternate approach, name column distinctly from attribute name,Mike Bayer2014-07-161-0/+14
| | | | ref #3129
* - add a documentation section for naming conflicts, fixes #3129Mike Bayer2014-07-161-0/+44
|
* PEP8 style fixesBrian Jarrett2014-07-1313-351/+399
|
* - break up the <authors> copyright comment as part of a passMike Bayer2014-07-0913-13/+26
| | | | to get all flake8 passing
* Merged in therve/bug-3093/bug/3093 (pull request #24) Mike Bayer2014-07-061-1/+2
|\ | | | | Return the assigned value in MultableDict.setdefault
| * Return the assigned value in MultableDict.setdefaultThomas Herve2014-06-241-1/+2
| |
* | - Fixed bug when the declarative ``__abstract__`` flag was not beingMike Bayer2014-06-251-1/+1
|/ | | | | | | distinguished for when it was actually the value ``False``. The ``__abstract__`` flag needs to acutally evaluate to a True value at the level being tested. fixes #3097
* - The ``__mapper_args__`` dictionary is copied from a declarativeMike Bayer2014-05-301-1/+4
| | | | | | | | | mixin or abstract class when accessed, so that modifications made to this dictionary by declarative itself won't conflict with that of other mappings. The dictionary is modified regarding the ``version_id_col`` and ``polymorphic_on`` arguments, replacing the column within with the one that is officially mapped to the local class/table. fixes #3062
* - Fixed bug in mutable extension where :class:`.MutableDict` did notMike Bayer2014-05-141-0/+5
| | | | | report change events for the ``setdefault()`` dictionary operation. fixes #3051
* Documentation fix-up: "its" vs. "it's"pr/91Matthias Urlichs2014-05-111-1/+1
| | | | | | | | | Removed ungrammatical apostrophes from documentation, replacing "it's" with "its" where appropriate (but in a few cases with "it is" when that read better). While doing that, I also fixed a couple of minor typos etc. as I noticed them.
* Fix many typos throughout the codebasepr/85Alex Gaynor2014-04-263-4/+4
| | | | Found using: https://github.com/intgr/topy
* - the rewording of orderinglist docs got committed by accident, finish it upMike Bayer2014-03-281-20/+12
|
* - Fixed ORM bug where changing the primary key of an object, then markingMike Bayer2014-03-281-2/+21
| | | | | | | | | | | | | it for DELETE would fail to target the correct row for DELETE. Then to compound matters, basic "number of rows matched" checks were not being performed. Both issues are fixed, however note that the "rows matched" check requires so-called "sane multi-row count" functionality; the DBAPI's executemany() method must count up the rows matched by individual statements and SQLAlchemy's dialect must mark this feature as supported, currently applies to some mysql dialects, psycopg2, sqlite only. fixes #3006 - Enabled "sane multi-row count" checking for the psycopg2 DBAPI, as this seems to be supported as of psycopg2 2.0.9.
* clarify doc hereMike Bayer2014-03-281-4/+4
|
* - Added support to automap for the case where a relationship shouldMike Bayer2014-03-281-14/+77
| | | | | | | not be created between two classes that are in a joined inheritance relationship, for those foreign keys that link the subclass back to the superclass. fixes #3004
* - Fixed bug in mutable extension as well asMike Bayer2014-03-191-0/+3
| | | | | | :func:`.attributes.flag_modified` where the change event would not be propagated if the attribute had been reassigned to itself. fixes #2997
* - Fixed bug in association proxy where assigning an empty sliceMike Bayer2014-03-041-2/+3
| | | | (e.g. ``x[:] = [...]``) would fail on Py3k.
* - Fixed a regression in association proxy caused by :ticket:`2810` whichMike Bayer2014-02-271-5/+3
| | | | | | | | | caused a user-provided "getter" to no longer receive values of ``None`` when fetching scalar values from a target that is non-present. The check for None introduced by this change is now moved into the default getter, so a user-provided getter will also again receive values of None. re: #2810
* - extensive cross-linking of relationship options with their documentation ↵Mike Bayer2014-02-161-1/+5
| | | | | | sections - convert all paramter references in relationship documentation to :paramref:
* - use an OrderedDict here so that tests are more deterministicMike Bayer2014-02-141-2/+2
|
* - Fixed bug where :class:`.AbstractConcreteBase` would fail to beMike Bayer2014-02-113-4/+43
| | | | | | | | | | | | | | | | | | | | | fully usable within declarative relationship configuration, as its string classname would not be available in the registry of classnames at mapper configuration time. The class now explicitly adds itself to the class regsitry, and additionally both :class:`.AbstractConcreteBase` as well as :class:`.ConcreteBase` set themselves up *before* mappers are configured within the :func:`.configure_mappers` setup, using the new :meth:`.MapperEvents.before_configured` event. [ticket:2950] - Added new :meth:`.MapperEvents.before_configured` event which allows an event at the start of :func:`.configure_mappers`, as well as ``__declare_first__()`` hook within declarative to complement ``__declare_last__()``. - modified how after_configured is invoked; we just make a dispatch() not actually connected to any mapper. this makes it easier to also invoke before_configured correctly. - improved the ComparableEntity fixture to handle collections that are sets.
* this example doesn't work, we don't really have a solution for this as far ↵Mike Bayer2014-02-101-31/+0
| | | | as automating this pattern
* - Fixed bug where the :class:`.AutomapBase` class of theMike Bayer2014-02-082-5/+31
| | | | | | | new automap extension would fail if classes were pre-arranged in single or potentially joined inheritance patterns. The repaired joined inheritance issue could also potentially apply when using :class:`.DeferredReflection` as well.
* Merge pull request #60 from wichert/mutable-doc-importmike bayer2014-01-231-1/+0
|\ | | | | Remove uneeded import from code example
| * Remove uneeded import from code examplepr/60Wichert Akkerman2014-01-201-1/+0
| | | | | | | | | | This had me reread the code twice to see if I missed why the import was present.
* | - Support is improved for supplying a :func:`.join` construct as theMike Bayer2014-01-221-0/+4
|/ | | | | | | | | | target of :paramref:`.relationship.secondary` for the purposes of creating very complex :func:`.relationship` join conditions. The change includes adjustments to query joining, joined eager loading to not render a SELECT subquery, changes to lazy loading such that the "secondary" target is properly included in the SELECT, and changes to declarative to better support specification of a join() object with classes as targets.
* - happy new yearMike Bayer2014-01-0513-13/+13
|