Metadata-Version: 2.1
Name: metapensiero.sqlalchemy.proxy
Version: 5.10
Summary: Expose SQLAlchemy's queries and their metadata to a webservice
Home-page: https://bitbucket.org/lele/metapensiero.sqlalchemy.proxy
Author: Lele Gaifax
Author-email: lele@metapensiero.it
License: GPLv3+
Description: .. -*- coding: utf-8 -*-
        .. :Project:   metapensiero.sqlalchemy.proxy
        .. :Created:   gio 30 apr 2009 10:01:20 CEST
        .. :Author:    Lele Gaifax <lele@metapensiero.it>
        .. :License:   GNU General Public License version 3 or later
        .. :Copyright: © 2009, 2010, 2012, 2013, 2014, 2016, 2017 Lele Gaifax
        ..
        
        ===============================
         metapensiero.sqlalchemy.proxy
        ===============================
        
        Expose SQLAlchemy's queries and their metadata to a webservice
        ==============================================================
        
        This package contains a few utilities to make it easier applying some filtering to a stock
        query and obtaining the resultset in various formats.
        
        Since version 4 only Python 3 is supported: if you are still working with Python 2 (really⁈)
        you may want to use `version 3.6`__ instead.
        
        See latest documentation at http://metapensierosqlalchemyproxy.readthedocs.io/en/latest/
        
        __ https://pypi.python.org/pypi/metapensiero.sqlalchemy.proxy/3.6
        
        
        Changes
        -------
        
        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)
        ~~~~~~~~~~~~~~~~
        
        .. warning:: This release **breaks** backward compatibility in several ways!
        
        * 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
        
        __ https://pypi.python.org/pypi/nssjson
        
        
        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__.
        
        __ https://bitbucket.org/lele/metapensiero.sqlalchemy.proxy/src/master/OLDERCHANGES.rst
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Topic :: Database
Provides-Extra: dev
