summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/util
Commit message (Collapse)AuthorAgeFilesLines
* - implement kwarg validation and type system for dialect-specificMike Bayer2014-01-181-1/+1
| | | | | arguments; [ticket:2866] - add dialect specific kwarg functionality to ForeignKeyConstraint, ForeignKey
* - happy new yearMike Bayer2014-01-057-7/+7
|
* Merge branch 'automap'Mike Bayer2014-01-052-1/+9
|\ | | | | | | | | Conflicts: doc/build/changelog/changelog_09.rst
| * - conjunctions like and_() and or_() can now accept generators as arguments.Mike Bayer2014-01-052-1/+9
| |
* | - Fixed regression where using a ``functools.partial()`` with the eventMike Bayer2014-01-041-1/+3
|/ | | | | | | | | | | system would cause a recursion overflow due to usage of inspect.getargspec() on it in order to detect a legacy calling signature for certain events, and apparently there's no way to do this with a partial object. Instead we skip the legacy check and assume the modern style; the check itself now only occurs for the SessionEvents.after_bulk_update and SessionEvents.after_bulk_delete events. Those two events will require the new signature style if assigned to a "partial" event listener. [ticket:2905]
* - alter the decorator function, and the newer public_factory function,Mike Bayer2013-12-211-6/+20
| | | | | to use a named def instead of a lambda. this so that TypeError on wrong arguments are more legible. [ticket:2884]
* - Improvements to the system by which SQL types generate withinMike Bayer2013-12-181-31/+54
| | | | | | | | ``__repr__()``, particularly with regards to the MySQL integer/numeric/ character types which feature a wide variety of keyword arguments. The ``__repr__()`` is important for use with Alembic autogenerate for when Python code is rendered in a migration script. [ticket:2893]
* - Made a slight adjustment to the logic which waits for a pooledMike Bayer2013-12-061-2/+8
| | | | | | | | | | | connection to be available, such that for a connection pool with no timeout specified, it will every half a second break out of the wait to check for the so-called "abort" flag, which allows the waiter to break out in case the whole connection pool was dumped; normally the waiter should break out due to a notify_all() but it's possible this notify_all() is missed in very slim cases. This is an extension of logic first introduced in 0.8.0, and the issue has only been observed occasionally in stress tests.
* - adjustment, the spec says: "Within the user and password field, any ":",Mike Bayer2013-11-252-3/+3
| | | | | | | "@", or "/" must be encoded." - so re-apply encoding to both password and username, don't encode spaces as plus signs, don't encode any chars outside of :, @, / on stringification - but we still parse for any %XX character (is that right?)
* - Removed some now unneeded version checks [ticket:2829] courtesy alex gaynorMike Bayer2013-09-221-8/+1
|
* and we don't need weaksetMike Bayer2013-08-182-24/+1
|
* - add WeakSequence.append()Mike Bayer2013-08-181-3/+10
| | | | - fix and test weakref cleanout for WeakSequence, [ticket:2794]
* Fixed a potential issue in an ordered sequence implementation usedMike Bayer2013-08-181-5/+10
| | | | | | | by the ORM to iterate mapper hierarchies; under the Jython interpreter this implementation wasn't ordered, even though cPython and Pypy maintained ordering. Also in 0.8.3. [ticket:2794]
* - spot checking of imports, obsolete functionsMike Bayer2013-08-172-2/+1
|
* Improved support for the cymysql driver, supporting version 0.6.5,Mike Bayer2013-08-171-1/+1
| | | | courtesy Hajime Nakagami.
* - apply an import refactoring to the ORM as wellMike Bayer2013-08-142-92/+98
| | | | | | | | | - rework the event system so that event modules load after their targets, dependencies are reversed - create an improved strategy lookup system for the ORM - rework the ORM to have very few import cycles - move out "importlater" to just util.dependency - other tricks to cross-populate modules in as clear a way as possible
* - A large refactoring of the ``sqlalchemy.sql`` package has reorganizedMike Bayer2013-08-122-5/+99
| | | | | | | | | | | | | | | | | | | | | | the import structure of many core modules. ``sqlalchemy.schema`` and ``sqlalchemy.types`` remain in the top-level package, but are now just lists of names that pull from within ``sqlalchemy.sql``. Their implementations are now broken out among ``sqlalchemy.sql.type_api``, ``sqlalchemy.sql.sqltypes``, ``sqlalchemy.sql.schema`` and ``sqlalchemy.sql.ddl``, the last of which was moved from ``sqlalchemy.engine``. ``sqlalchemy.sql.expression`` is also a namespace now which pulls implementations mostly from ``sqlalchemy.sql.elements``, ``sqlalchemy.sql.selectable``, and ``sqlalchemy.sql.dml``. Most of the "factory" functions used to create SQL expression objects have been moved to classmethods or constructors, which are exposed in ``sqlalchemy.sql.expression`` using a programmatic system. Care has been taken such that all the original import namespaces remain intact and there should be no impact on any existing applications. The rationale here was to break out these very large modules into smaller ones, provide more manageable lists of function names, to greatly reduce "import cycles" and clarify the up-front importing of names, and to remove the need for redundant functions and documentation throughout the expression package.
* ok forget it, that approach didn't really cover every base, soMike Bayer2013-08-041-16/+29
| | | | we are pretty much back to the beginning, nothing to see here
* - don't need resolve, don't need import for this. just look in sys.modules,Mike Bayer2013-08-041-42/+16
| | | | since we are dealing with cycles in any case.
* don't split the regexps for chop_traceback()Mike Bayer2013-07-121-4/+2
|
* Dialect.initialize() is not called a second time if an :class:`.Engine`Mike Bayer2013-07-112-1/+15
| | | | | | is recreated, due to a disconnect error. This fixes a particular issue in the Oracle 8 dialect, but in general the dialect.initialize() phase should only be once per dialect. Also in 0.8.3. [ticket:2776]
* - create a new system where we can decorate an event methodMike Bayer2013-07-084-16/+57
| | | | | | | | | | | | | | | | with @_legacy_signature, will inspect incoming listener functions to see if they match an older signature, will wrap into a newer sig - add an event listen argument named=True, will send all args as kw args so that event listeners can be written with **kw, any combination of names - add a doc system to events that writes out the various calling styles for a given event, produces deprecation messages automatically. a little concerned that it's a bit verbose but will look at it up on RTD for awhile to get a feel. - change the calling signature for bulk update/delete events - we have the BulkUD object right there, and there's at least six or seven things people might want to see, so just send the whole BulkUD in [ticket:2775]
* - replace most explicitly-named test objects called "Mock..." withMike Bayer2013-06-302-1/+2
| | | | | | | | | | | | actual mock objects from the mock library. I'd like to use mock for new tests so we might as well use it in obvious places. - use unittest.mock in py3.3 - changelog - add a note to README.unittests - add tests_require in setup.py - have tests import from sqlalchemy.testing.mock - apply usage of mock to one of the event tests. we can be using this approach all over the place.
* remove all remaining start/end py2k/py3k blocksMike Bayer2013-06-071-1/+1
|
* - implement armin's awesome metaclass adaptor, can drop the refs to MetaBase.Mike Bayer2013-05-301-2/+17
|
* Merge branch 'rel_0_9'Mike Bayer2013-05-295-183/+258
|\ | | | | | | | | | | | | Conflicts: lib/sqlalchemy/dialects/postgresql/hstore.py lib/sqlalchemy/util/__init__.py lib/sqlalchemy/util/compat.py
| * keep the contract for Properties as returning lists for keys, values, items.Mike Bayer2013-05-291-3/+3
| | | | | | | | It's not the same as a dictionary as __iter__ does the values
| * - run the whole test suite with the "debugging" ordered dict on,Mike Bayer2013-05-271-8/+19
| | | | | | | | find some more failures
| * - fix a dict while iterate mutationMike Bayer2013-05-271-0/+11
| | | | | | | | | | - illustrate how OrderedDict can catch these, but commented out to save function overhead
| * fix test_execute w c extensionsMike Bayer2013-05-261-1/+2
| |
| * clean up some of this collection stuffMike Bayer2013-05-261-16/+27
| |
| * a pass where we try to squash down as many list()/keys() combinationsMike Bayer2013-05-261-3/+3
| | | | | | | | as possible
| * do a sweep of some obvious 3kismsMike Bayer2013-05-262-1/+3
| |
| * fix serializer tests. something is wrong with non-C pickle but for some ↵Mike Bayer2013-05-262-2/+17
| | | | | | | | | | | | reason py3k's pickle seems to be OK? not sure why that is, as this is all related to http://bugs.python.org/issue998998
| * merge defaultMike Bayer2013-05-231-24/+22
| |\
| * | most of ORM passing...Mike Bayer2013-05-042-8/+6
| | |
| * | baseMike Bayer2013-05-041-3/+3
| | |
| * | that's all of engineMike Bayer2013-05-041-0/+6
| | |
| * | - unicode literals need to just be handled differently if they have utf-8Mike Bayer2013-05-042-1/+11
| | | | | | | | | | | | | | | encoded in them vs. unicode escaping. not worth figuring out how to combine these right now
| * | postgresql dialect testsMike Bayer2013-04-281-1/+2
| | |
| * | - endless isinstance(x, str)s....Mike Bayer2013-04-283-55/+88
| | |
| * | cleanupMike Bayer2013-04-271-45/+21
| | |
| * | plugging awayMike Bayer2013-04-273-46/+40
| | |
| * | work through dialectsMike Bayer2013-04-272-18/+17
| | |
| * | - the raw 2to3 runMike Bayer2013-04-274-94/+102
| | | | | | | | | | | | - went through examples/ and cleaned out excess list() calls
* | | add the py2k symbol from the 0.9 branch to support the hstore changeMike Bayer2013-05-292-1/+2
| |/ |/|
* | Fixed a bug where the routine to detect the correct kwargsMike Bayer2013-05-231-24/+22
|/ | | | | | being sent to :func:`.create_engine` would fail in some cases, such as with the Sybase dialect. [ticket:2732]
* python2.5 fixMike Bayer2013-04-181-3/+2
|
* - remove reference to _exc_info before reraise to reduce cyclesMike Bayer2013-04-181-0/+3
|
* Reworked internal exception raises that emitMike Bayer2013-04-183-2/+58
| | | | | | | | | a rollback() before re-raising, so that the stack trace is preserved from sys.exc_info() before entering the rollback. This so that the traceback is preserved when using coroutine frameworks which may have switched contexts before the rollback function returns. [ticket:2703]