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
File details
Details for the file metapensiero.sqlalchemy.proxy-5.14.tar.gz
.
File metadata
- Download URL: metapensiero.sqlalchemy.proxy-5.14.tar.gz
- Upload date:
- Size: 47.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38d6f13370807f786886c6013997c68b2494e2998feff70c2a3d336a7861db26 |
|
MD5 | f4db867c2c2a301f163983491e8bc2a0 |
|
BLAKE2b-256 | 9433f2dd47119f3a7e902133d435281cc150c804aaebc65a3535774633cd460d |
File details
Details for the file metapensiero.sqlalchemy.proxy-5.14-py3-none-any.whl
.
File metadata
- Download URL: metapensiero.sqlalchemy.proxy-5.14-py3-none-any.whl
- Upload date:
- Size: 32.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb42e173247f3244121161f9798132feb5037efb7b56c0a3add03b2087b31876 |
|
MD5 | 4912c12fe2045a3be67c4708bef7b986 |
|
BLAKE2b-256 | 186a340bb021f29f40ea484115e45e9f742f7ac831ebd33598b14d435460a828 |