Expose SQLAlchemy's queries and their metadata to a webservice
Project description
- Version:
- 5
- license:
GPLv3
This package contains a few utilities to make it easier applying some filtering to a stock query and obtaining the resultset in various formats.
See latest documentation at https://metapensierosqlalchemyproxy.readthedocs.io/en/latest/
Tests suite
The tests suite is based on tox and pytest: to run it simply execute
$ make check
The PostgreSQL unit requires an existing database called mp_sa_proxy_test with the hstore extension, and that the current user can access it without password:
$ createdb mp_sa_proxy_test $ psql -c "create extension hstore;" mp_sa_proxy_test
Changes
5.14 (2020-04-25)
Silently assume ASCending direction in sort criteria
5.13 (2020-02-08)
Remove deprecated call to pyramid.i18n.get_localizer()
5.12 (2018-11-06)
Fix deprecated import of abstract classed directly from the collections module
5.11 (2018-09-09)
Fix deprecation warning related to collections abstract classes import
5.10 (2018-07-01)
Fix failure extracting metadata of a column associated to a Sequence
5.9 (2018-07-01)
Rename the async module to asyncio for Python 3.7 compatibility
5.8 (2018-04-13)
Align the async layer with latest changes related to CompoundSelect support, now almost complete
5.7 (2018-04-13)
Extend last fix to the Pyramid expose() decorator (yes, I know, I should really invest some time in writing some tests for that…)
5.6 (2018-04-12)
Handle CompoundSelect such as SELECT 'foo' UNION SELECT 'bar'
5.5 (2018-04-09)
Fix… last fix :-|
5.4 (2018-04-09)
Fix regression that broke using a generator as an expose() function
5.3 (2018-03-15)
The Pyramid expose() decorator now forwards unrecognized keyword arguments to the proxy call
5.2 (2018-03-12)
Handle extraction of metadata from a BinaryExpression such as SELECT jsonfield['attr']
5.1 (2018-03-08)
When a column has a default value, and it is directly computable (i.e. it is not a server side default), then extract it into its metadata
5.0 (2017-07-22)
More versatile way to add/override basic metadata information (see register_sa_type_metadata())
More versatile way to use different JSON library or encode/decode settings (see register_json_decoder_encoder()): although the default implementation is still based on nssjson, it is not required by default anymore at install time
Basic metadata changed:
the width slot for all fields is gone, it’s more reasonably computed by the actual UI framework in use: it was rather arbitrary anyway, and set to length * 10 for String columns
the length slot is present only for String columns
the type slot now basically follows the SQLAlchemy nomenclature, in particular:
- Integer
is now integer instead of int
- BigInteger
is now integer, instead of int with an arbitrarily different width than the one used for Integer
- Numeric
is now numeric instead of float
- DateTime
is now datetime instead of date with timestamp set to True
- Time
is now time instead of date with time set to True
- Interval
is now interval instead of string with timedelta set to True
- Text
is now text instead of string with an arbitrary width of 50
- UnicodeText
is now text`
- Unicode
is now string
the format slot for DateTime, Date and Time fields is gone, as it was ExtJS specific
4.8 (2017-06-17)
Use a tuple instead of a list for the foreign_keys slot in metadata, and for the primary_key too when it is composed by more than one column
4.7 (2017-05-18)
Properly recognize SA Interval() columns
4.6 (2017-05-08)
Handle big integers in metadata information
4.5 (2017-04-10)
Fix a crash when applying a filter on a non-existing column in a statement selecting from a function
4.4 (2017-04-01)
Rename filter operator CONTAINED to CONTAINS, and reimplement it to cover different data types, in particular PostgreSQL’s ranges
4.3 (2017-03-22)
Minor tweak, no externally visible changes
4.2 (2017-03-10)
Reduce clutter, generating a simpler representation of Operator and Direction enums
4.1 (2017-02-13)
Fix an oversight in Filter tuple slots positions, to simplify Filter.make() implementation
4.0 (2017-02-13)
From now on, a Python3-only package
Backward incompatible sorters and filters refactor, to make interaction easier for code using the library
Drop obsolete Pylons extension
3.6 (2017-01-11)
New Sphinx documentation
Field’s metadata now carries also information about foreign keys
Handle literal columns in core queries
3.5 (2016-12-29)
Fix incompatibility issue with SQLAlchemy 1.1.x when using ORM
3.4 (2016-03-12)
Better recognition of boolean argument values, coming from say an HTTP channel as string literals
Use tox to run the tests
3.3 (2016-02-23)
Handle the case when the column type cannot be determined
3.2 (2016-02-19)
Fix corner case with queries ordered by a subselect
3.1 (2016-02-07)
Fix metadata extraction of labelled columns on joined tables
Adjust size of time fields and align them to the right
3.0 (2016-02-03)
Internal, backward incompatible code reorganization, splitting the main module into smaller pieces
Handle corner cases with joined queries involving aliased tables
Previous changes are here.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for metapensiero.sqlalchemy.proxy-5.14.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38d6f13370807f786886c6013997c68b2494e2998feff70c2a3d336a7861db26 |
|
MD5 | f4db867c2c2a301f163983491e8bc2a0 |
|
BLAKE2b-256 | 9433f2dd47119f3a7e902133d435281cc150c804aaebc65a3535774633cd460d |
Hashes for metapensiero.sqlalchemy.proxy-5.14-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb42e173247f3244121161f9798132feb5037efb7b56c0a3add03b2087b31876 |
|
MD5 | 4912c12fe2045a3be67c4708bef7b986 |
|
BLAKE2b-256 | 186a340bb021f29f40ea484115e45e9f742f7ac831ebd33598b14d435460a828 |