pglast


Namepglast JSON
Version 7.3 PyPI version JSON
download
home_pagehttps://github.com/lelit/pglast
SummaryPostgreSQL Languages AST and statements prettifier
upload_time2025-02-09 10:20:09
maintainerNone
docs_urlNone
authorLele Gaifax
requires_pythonNone
licenseGPLv3+
keywords postgresql parser sql prettifier
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. -*- coding: utf-8 -*-
.. :Project:   pglast — PostgreSQL Languages AST
.. :Created:   mer 02 ago 2017 14:49:24 CEST
.. :Author:    Lele Gaifax <lele@metapensiero.it>
.. :License:   GNU General Public License version 3 or later
.. :Copyright: © 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024 Lele Gaifax
..

========
 pglast
========

PostgreSQL Languages AST and statements prettifier
==================================================

:Author: Lele Gaifax
:Contact: lele@metapensiero.it
:License: `GNU General Public License version 3 or later`__
:Status: |build| |doc| |codecov|
:Version: `7`__

__ https://www.gnu.org/licenses/gpl.html
__ https://pglast.readthedocs.io/en/v7/development.html#history

.. |build| image:: https://github.com/lelit/pglast/actions/workflows/ci.yml/badge.svg?branch=v7
   :target: https://github.com/lelit/pglast/actions/workflows/ci.yml
   :alt: Build status
.. |doc| image:: https://readthedocs.org/projects/pglast/badge/?version=v7
   :target: https://readthedocs.org/projects/pglast/builds/
   :alt: Documentation status
.. |codecov| image:: https://codecov.io/gh/lelit/pglast/branch/v3/graph/badge.svg?token=A90D8tWnft
   :target: https://codecov.io/gh/lelit/pglast
   :alt: Test coverage status

This is a Python 3 module that exposes the *parse tree* of a PostgreSQL__ statement (extracted
by the almost standard PG parser repackaged as a standalone static library by `libpg_query`__)
as set of interconnected *nodes*, usually called an *abstract syntax tree*.

__ https://www.postgresql.org/
__ https://github.com/pganalyze/libpg_query

See a `more detailed introduction`__ in the documentation_.

__ https://pglast.readthedocs.io/en/v7/introduction.html


Installation
------------

As usual, the easiest way is with pip::

  $ pip install pglast

Alternatively you can clone the repository::

  $ git clone https://github.com/lelit/pglast.git --recursive

and install from there::

  $ pip install ./pglast


Development
-----------

There is a set of *makefiles* implementing the most common operations, a ``make help`` will
show a brief table of contents. A comprehensive test suite, based on pytest__, covers__ nearly
99% of the source lines.

__ https://docs.pytest.org/en/latest/
__ https://codecov.io/gh/lelit/pglast/branch/v7/


Documentation
-------------

Latest documentation is hosted by `Read the Docs`__ at https://pglast.readthedocs.io/en/v7

__ https://readthedocs.org/


.. -*- coding: utf-8 -*-

.. _changes:

Changes
-------

Version 7
#########

7.3 (2025-02-09)
~~~~~~~~~~~~~~~~

- Handle the ``SET configuration_parameter FROM CURRENT`` case in the ``VariableSetStmt``
  printer (`PR #168`__), thanks to Bolaji Wahab

  __ https://github.com/lelit/pglast/pull/168


7.2 (2024-12-21)
~~~~~~~~~~~~~~~~

- Merge with `Version 6`_

- Handle ``timestamp AT LOCAL`` expression, new in PG17


7.1 (2024-11-26)
~~~~~~~~~~~~~~~~

- Merge with `Version 6`_


7.0 (2024-11-13)
~~~~~~~~~~~~~~~~

- No visible changes


7.0.dev1 (2024-11-01)
~~~~~~~~~~~~~~~~~~~~~

- Upgrade libpg_query to `17-6.0.0`__

  __ https://github.com/pganalyze/libpg_query/releases/tag/17-6.0.0


7.0.dev0 (2024-10-31)
~~~~~~~~~~~~~~~~~~~~~

- No visible changes with respect to v6, apart from the support for new/revised syntaxes of
  `PostgreSQL 17`__

  __ https://www.postgresql.org/docs/17/release-17.html

~~~~~~~~~~~~~~~~~~~~
**Breaking changes**
~~~~~~~~~~~~~~~~~~~~

- Target PostgreSQL 17, thanks to libpg_query `17-latest-dev`__

  __ https://github.com/pganalyze/libpg_query/tree/17-latest-dev

- Require Python >= 3.9


Version 6
#########

6.14 (2025-02-09)
~~~~~~~~~~~~~~~~~

- Handle the ``SET configuration_parameter FROM CURRENT`` case in the ``VariableSetStmt``
  printer (backport of `PR #168`__)

  __ https://github.com/lelit/pglast/pull/168


6.13 (2024-12-17)
~~~~~~~~~~~~~~~~~

- Better fix to the ``x AT TIME ZONE foo`` glitch, v6.12 solution was incomplete


6.12 (2024-12-16)
~~~~~~~~~~~~~~~~~

- Properly wrap ``x AT TIME ZONE foo`` in parens when it is the argument of a ``DEFAULT``
  constraint


6.11 (2024-11-26)
~~~~~~~~~~~~~~~~~

- Remove spurious trailing space in the ``ConstrTypePrinter.CONSTR_IDENTITY`` and the
  ``Constraint`` printers (issue `#165`__)

  __ https://github.com/lelit/pglast/issues/165


6.10 (2024-11-01)
~~~~~~~~~~~~~~~~~

- Upgrade libpg_query to `16-5.2.0`__

  __ https://github.com/pganalyze/libpg_query/releases/tag/16-5.2.0


6.9 (2024-10-31)
~~~~~~~~~~~~~~~~

- Fix regression introduced by recent modification to the ``CommonTableExpr`` printer that
  impacted on the ``RawStream`` renderer (issue `#163`__)

  __ https://github.com/lelit/pglast/issues/163

- Expose the ``RawStream`` renderer in the CLI tool with a new ``--normalize`` option


6.8 (2024-10-29)
~~~~~~~~~~~~~~~~

- Upgrade libpg_query to not-yet-publicly-released commit__, to solve an issue related to
  `plpgsql` (issue `#156`__)

  __ https://github.com/pganalyze/libpg_query/commit/06670290ad39e61805ecacbc6267df61f6ae3d91
  __ https://github.com/lelit/pglast/issues/156


6.7 (2024-10-28)
~~~~~~~~~~~~~~~~

- Generate wheels on PyPI using Python 3.13.0 final release, thanks to cibuildwheel `2.21.3`__

  __ https://cibuildwheel.pypa.io/en/stable/changelog/#v2213

- Improve ``CommonTableExpr`` printer, reducing horizontal space waste


6.6 (2024-09-30)
~~~~~~~~~~~~~~~~

- Make recently introduced doctest related to issue #88 work on different Python versions


6.5 (2024-09-29)
~~~~~~~~~~~~~~~~

- Fix glitch when using the ``--preserve-comments`` flag (issue `#159`__)

  __ https://github.com/lelit/pglast/issues/159

- Finally add a note to ``parse_plpgsql()`` documentation mentioning how it differs from
  ``parse_sql()`` (issue `#88`__)

  __ https://github.com/lelit/pglast/issues/88


6.4 (2024-09-28)
~~~~~~~~~~~~~~~~

- Fix issue with deserialization of deeply nested ASTs (issue `#153`__)

  __ https://github.com/lelit/pglast/issues/153

- Upgrade libpg_query to not-yet-publicly-released commit__, to solve an issue related to
  `plpgsql` (issue `#154`__)

  __ https://github.com/pganalyze/libpg_query/commit/680f5ee67c6fdae497c8d1edfadd02b9b8eac74f
  __ https://github.com/lelit/pglast/issues/154


6.3 (2024-08-06)
~~~~~~~~~~~~~~~~

- Fix ``SEQUENCE NAME`` in ``create_seq_stmt_def_elem`` (`PR #151`__), thanks to orages

  __ https://github.com/lelit/pglast/pull/151

- Generate wheels on PyPI using Python 3.13.0rc1 release, thanks to cibuildwheel `2.20.0`__

  __ https://cibuildwheel.pypa.io/en/stable/changelog/#v2200

- Use `Cython 3.0.11`__

  __ https://github.com/cython/cython/blob/master/CHANGES.rst#3011-2024-08-05


6.2 (2024-02-01)
~~~~~~~~~~~~~~~~

- Almost no-op release to fix issue `144`__, producing correct wheels for macOS arm64

  __ https://github.com/lelit/pglast/issues/144

6.1 (2024-01-22)
~~~~~~~~~~~~~~~~

- Inherit fix for issue `143`__ from `version 5`_

  __ https://github.com/lelit/pglast/issues/143


6.0 (2024-01-22)
~~~~~~~~~~~~~~~~

- Produce wheels for macOS arm64


6.0.dev2 (2024-01-21)
~~~~~~~~~~~~~~~~~~~~~

- Enable compilation on Windows and produce related 32bit and 64bit wheels (issue `#7`__)

  __ https://github.com/lelit/pglast/issues/7


6.0.dev1 (2024-01-11)
~~~~~~~~~~~~~~~~~~~~~

- Re-enable Linux 32bit wheels, thanks to libpg_query to `16-5.1.0`__

  __ https://github.com/pganalyze/libpg_query/releases/tag/16-5.1.0


6.0.dev0 (2023-12-29)
~~~~~~~~~~~~~~~~~~~~~

- No visible changes with respect to v5, apart from the support for new/revised syntaxes of
  `PostgreSQL 16`__

  __ https://www.postgresql.org/docs/16/release-16.html

- Do not build binary wheels for Python 3.8

- Skip compilation on Linux 32bit (see `this comment`__ for details)

  __ https://github.com/pganalyze/libpg_query/pull/225#issuecomment-1864145089

~~~~~~~~~~~~~~~~~~~~
**Breaking changes**
~~~~~~~~~~~~~~~~~~~~

- Target PostgreSQL 16, thanks to libpg_query `16-5.0.0`__

  __ https://github.com/pganalyze/libpg_query/releases/tag/16-5.0.0


Version 5
#########

5.9 (2024-01-22)
~~~~~~~~~~~~~~~~

- Fix issue `143`__, affecting ``AlterOwnerStmt`` and ``RenameStmt`` printers

  __ https://github.com/lelit/pglast/issues/143


5.8 (2024-01-11)
~~~~~~~~~~~~~~~~

- Fix issue `#142`__, a glitch that affected 32-bit systems

  __ https://github.com/lelit/pglast/issues/142


5.7 (2023-12-23)
~~~~~~~~~~~~~~~~

- Use `Cython 3.0.7`__

  __ https://github.com/cython/cython/blob/master/CHANGES.rst#307-2023-12-19

- Update libpg_query to `15-4.2.4`__

  __ https://github.com/pganalyze/libpg_query/releases/tag/15-4.2.4


5.6 (2023-12-07)
~~~~~~~~~~~~~~~~

- Fix issue `#138`__, a defect that hindered the creation of AST nodes that act as *markers*,
  (currently ``A_Star`` and ``CheckPointStmt``), that do not carry any other information

  __ https://github.com/lelit/pglast/issues/138

- Use `Cython 3.0.6`__

  __ https://github.com/cython/cython/blob/master/CHANGES.rst#306-2023-11-26

- Handle the ``ENABLE TRIGGER ALL`` in ``AlterTableCmd``

- Fix issue `#136`__, a regression introduced by “Avoid overly abundancy of parentheses in
  expressions”

  __ https://github.com/lelit/pglast/issues/136


5.5 (2023-10-07)
~~~~~~~~~~~~~~~~

- Use `Cython 3.0.3`__

  __ https://github.com/cython/cython/blob/master/CHANGES.rst#303-2023-10-05

- Produce wheels using final Python 3.12 release, thanks to ``cibuildwheel`` `2.16.2`__

  __ https://cibuildwheel.readthedocs.io/en/stable/changelog/#v2162


5.4 (2023-08-24)
~~~~~~~~~~~~~~~~

- Improve documentation, adding ``parser.Displacements``, ``parser.scan`` and ``parser.split``
  examples (`issue #128`__)

  __ https://github.com/lelit/pglast/issues/128

- Fix issues `#129`__ and `#130`__ (merged from `version 4.4`__)

  __ https://github.com/lelit/pglast/issues/129
  __ https://github.com/lelit/pglast/issues/130
  __ `4.4 (2023-08-24)`_


5.3 (2023-08-05)
~~~~~~~~~~~~~~~~

- Update libpg_query to `15-4.2.3`__

  __ https://github.com/pganalyze/libpg_query/releases/tag/15-4.2.3


5.2 (2023-05-20)
~~~~~~~~~~~~~~~~

- Update libpg_query to `15-4.2.1`__

  __ https://github.com/pganalyze/libpg_query/releases/tag/15-4.2.1


5.1 (2023-02-28)
~~~~~~~~~~~~~~~~

- Merge `version 4.2`__ changes

  __ `4.2 (2023-02-27)`_


5.0 (2023-02-19)
~~~~~~~~~~~~~~~~

- No changes


5.0.dev1 (2023-02-11)
~~~~~~~~~~~~~~~~~~~~~

- Update libpg_query to `15-4.2.0`__

  __ https://github.com/pganalyze/libpg_query/releases/tag/15-4.2.0

~~~~~~~~~~~~~~~~~~~~
**Breaking changes**
~~~~~~~~~~~~~~~~~~~~

- Change the type of the ``ast.Float`` value from ``Decimal`` to ``str``

  Using a ``Decimal`` implies potential differences in the representation of floating numbers,
  and already caused issues (`#91`__ and `#100`__) in the past, making it impossible to render,
  say, ``SELECT 0.0e1``, due to the fact that ``Decimal('0.0e1')`` resolves to
  ``Decimal('0')``.

  __ https://github.com/lelit/pglast/issues/91
  __ https://github.com/lelit/pglast/issues/100


5.0.dev0 (2022-12-19)
~~~~~~~~~~~~~~~~~~~~~

- No visible changes with respect to v4, apart from the support for new/revised syntaxes of
  `PostgreSQL 15`__

  __ https://www.postgresql.org/docs/15/release-15.html

~~~~~~~~~~~~~~~~~~~~
**Breaking changes**
~~~~~~~~~~~~~~~~~~~~

- Target PostgreSQL 15, thanks to libpg_query `15-4.0.0`__

  __ https://github.com/pganalyze/libpg_query/releases/tag/15-4.0.0


Version 4
#########

4.5 (unreleased)
~~~~~~~~~~~~~~~~

- Use `Cython 3.0.2`__

  __ https://github.com/cython/cython/blob/master/CHANGES.rst#302-2023-08-27


4.4 (2023-08-24)
~~~~~~~~~~~~~~~~

- Fix issues `#129`__ and `#130`__ (merged from `version 3.18`__)

  __ https://github.com/lelit/pglast/issues/129
  __ https://github.com/lelit/pglast/issues/130
  __ `3.18 (2023-08-24)`_


4.3 (2023-04-27)
~~~~~~~~~~~~~~~~

- Fix `serialization issue`__ when column's ``DEFAULT`` value is an expression

  __ https://github.com/pganalyze/libpg_query/issues/188


4.2 (2023-02-27)
~~~~~~~~~~~~~~~~

- Handle special syntax required by ``SET TIME ZONE INTERVAL '-08:00' hour to minute``

- Fix mistype mapping of raw C "long" and "double" attributes, that were decorated with the
  wrong Python type


4.1 (2022-12-19)
~~~~~~~~~~~~~~~~

- Fix serialization glitches introduced by “Avoid overly abundancy of parentheses in
  expressions” (to be precise, by this__ commit)

  __ https://github.com/lelit/pglast/commit/6cfe75eea80f9c9bec4ba467e7ec1ec0796020de


4.0 (2022-12-12)
~~~~~~~~~~~~~~~~

- Update libpg_query to final `14-3.0.0`__

  __ https://github.com/pganalyze/libpg_query/releases/tag/14-3.0.0


4.0.dev0 (2022-11-24)
~~~~~~~~~~~~~~~~~~~~~

- Update libpg_query to `14-3.0.0`__

  __ https://github.com/pganalyze/libpg_query/blob/14-latest/CHANGELOG.md#14-300---2022-11-17

- Avoid overly abundancy of parentheses in expressions

- Prefer ``SELECT a FROM b LIMIT ALL`` to ``... LIMIT NONE``

~~~~~~~~~~~~~~~~~~~~
**Breaking changes**
~~~~~~~~~~~~~~~~~~~~

- Target PostgreSQL 14

- The wrapper classes used in previous versions, implemented in ``pglast.node``, are gone: now
  everything works on top of the ``AST`` classes (`issue #80`__)

  __ https://github.com/lelit/pglast/issues/80

- The ``Ancestor`` class is not iterable anymore: it was an internal implementation facility,
  now moved to a ``_iter_members()`` method


Version 3
#########

3.18 (2023-08-24)
~~~~~~~~~~~~~~~~~

- Fix ``BooleanTest`` printer, enclosing expression within parens in more cases (`issue
  #129`__)

  __ https://github.com/lelit/pglast/issues/129

- Fix ``Constraint`` printer, avoiding repetition of "DEFERRABLE INITIALLY DEFERRED" on some
  kind of constraints (`issue #130`__)

  __ https://github.com/lelit/pglast/issues/130


3.17 (2022-11-04)
~~~~~~~~~~~~~~~~~

- Fix ``AlterSubscriptionStmt`` printer, handling "SET PUBLICATION" without options


3.16 (2022-11-03)
~~~~~~~~~~~~~~~~~

- Update libpg_query to `13-2.2.0`__

  __ https://github.com/pganalyze/libpg_query/blob/13-latest/CHANGELOG.md#13-220---2022-11-02


3.15 (2022-10-17)
~~~~~~~~~~~~~~~~~

- Produce Python 3.11 wheels (`PR #108`__), thanks to ``cibuildwheel`` 2.11.1__ and to Bastien
  Gandouet

  __ https://github.com/lelit/pglast/pull/108
  __ https://cibuildwheel.readthedocs.io/en/stable/changelog/#v2111


3.14 (2022-08-08)
~~~~~~~~~~~~~~~~~

- Harden the way ``Visitor`` handle modifications to the AST (`issue #107`__)

  __ https://github.com/lelit/pglast/issues/107


3.13 (2022-06-29)
~~~~~~~~~~~~~~~~~

- Update libpg_query to `13-2.1.2`__

  __ https://github.com/pganalyze/libpg_query/blob/13-latest/CHANGELOG.md#13-212---2022-06-28


3.12 (2022-06-19)
~~~~~~~~~~~~~~~~~

- Rewrite the implementation of the ``referenced_relations()`` function, that was flawed with
  regard to CTEs handling (`issue #106`__), thanks to Michal Charemza for providing his own
  version

  __ https://github.com/lelit/pglast/issues/106

- Improve ``WithClause`` printer indentation

- Fix minor whitespace related issues in a few printer functions


3.11 (2022-05-29)
~~~~~~~~~~~~~~~~~

- Fix the ``Visitor`` class, it was ignoring nodes nested in sub-lists

- Reduce the size of the generated parser by factoring out common code into helper functions


3.10 (2022-05-11)
~~~~~~~~~~~~~~~~~

- Update libpg_query to `13-2.1.1`__ (`PR #102`__), thanks to James Guthrie

  __ https://github.com/pganalyze/libpg_query/blob/13-latest/CHANGELOG.md#13-211---2022-05-03
  __ https://github.com/lelit/pglast/pull/102

- Produce `musllinux`__ wheels, thanks to ``cibuildwheel`` `2.5.0`__ (:PEP:`656` was actually
  introduced in `2.2.0`__)

  __ https://peps.python.org/pep-0656/
  __ https://cibuildwheel.readthedocs.io/en/stable/changelog/#v250
  __ https://cibuildwheel.readthedocs.io/en/stable/changelog/#v220


3.9 (2022-02-24)
~~~~~~~~~~~~~~~~

- Fix bug handling node containing a ``location`` field, e.g. ``CreateTableSpaceStmt`` (`issue
  #98`__)

  __ https://github.com/lelit/pglast/issues/98

- Properly handle dereferenced array expression (`issue #99`__)

  __ https://github.com/lelit/pglast/issues/99

- Avoid improper "floatification" of literal integers (`issue #100`__)

  __ https://github.com/lelit/pglast/issues/100


3.8 (2021-12-28)
~~~~~~~~~~~~~~~~

- Fix glitch in the AST extractor tool (`issue #97`__)

  __ https://github.com/lelit/pglast/issues/97

- Add Linux AArch64 wheel build support (`PR #95`__), thanks to odidev

  __ https://github.com/lelit/pglast/pull/95

- Fix type mismatch when using ``--remove-pg_catalog-from-functions`` (`PR #93`__), thanks
  to Boris Zentner

  __ https://github.com/lelit/pglast/pull/93/


3.7 (2021-10-13)
~~~~~~~~~~~~~~~~

- Update libpg_query to `13-2.1.0`__

  __ https://github.com/pganalyze/libpg_query/blob/13-latest/CHANGELOG.md#13-210---2021-10-12_


3.6 (2021-10-09)
~~~~~~~~~~~~~~~~

- Use latest libpg_query, to fix an error parsing ``PLpgSQL`` statements (`issue #88`__)

  __ https://github.com/lelit/pglast/issues/88


3.5 (2021-09-26)
~~~~~~~~~~~~~~~~

- Forward the ``special_functions`` option to substream, when concatenating items
  (`issue #89`__)

  __ https://github.com/lelit/pglast/issues/89

- Fix representation of floating point numbers without decimal digits (`issue #91`__)

  __ https://github.com/lelit/pglast/issues/91

- Produce Python 3.10 wheels, thanks to ``cibuildwheel`` 2.1.2

- Update libpg_query to `13-2.0.7`__

  __ https://github.com/pganalyze/libpg_query/blob/13-latest/CHANGELOG.md#13-207---2021-07-16_

- New option ``--remove-pg_catalog-from-functions`` on the command line tool (`PR #90`__), thanks
  to Boris Zentner

  __ https://github.com/lelit/pglast/pull/90/

- Implement more *special functions* (`PR #92`__), thanks to Boris Zentner

  __ https://github.com/lelit/pglast/pull/92/


3.4 (2021-08-21)
~~~~~~~~~~~~~~~~

- Fix another packaging issue, that prevented recompilation from the sdist ``.tar.gz`` (`issue
  #86`__), thanks to Christopher Brichford

  __ https://github.com/lelit/pglast/issues/82


3.3 (2021-07-04)
~~~~~~~~~~~~~~~~

- Update libpg_query to `13-2.0.6`__

  __ https://github.com/pganalyze/libpg_query/blob/13-latest/CHANGELOG.md#13-206---2021-06-29_


3.2 (2021-06-25)
~~~~~~~~~~~~~~~~

- Effectively include libpg_query's vendored sources (`issue #82`__)

  __ https://github.com/lelit/pglast/issues/82


3.1 (2021-06-25)
~~~~~~~~~~~~~~~~

- Fix packaging glitch (`issue #82`__)

  __ https://github.com/lelit/pglast/issues/82

- Build wheels also for macOS

- Update libpg_query to `13-2.0.5`__

  __ https://github.com/pganalyze/libpg_query/blob/13-latest/CHANGELOG.md#13-205---2021-06-24_


3.0 (2021-06-04)
~~~~~~~~~~~~~~~~

- Fix glitch in the ``RawStream``, avoiding spurious space after an open parenthesis

- Improve the ``Visitor`` class, to make it easier altering the original tree

- Properly handle nested lists in the serialization of AST Node


3.0.dev2 (2021-05-22)
~~~~~~~~~~~~~~~~~~~~~

- Fix bug in ``CreateStmt`` printer (`issue #79`__)

  __ https://github.com/lelit/pglast/issues/79

- Make it possible to pass also concrete ``ast.Node``\ s to ``RawStream```

~~~~~~~~~~~~~~~~~~~~
**Breaking changes**
~~~~~~~~~~~~~~~~~~~~

- To reduce confusion, the ``printer`` module has been removed: print-specific stuff is now
  directly exposed by the ``printers`` subpackage while serialization classes are now in the
  new ``stream`` module

- The default value for the ``safety_belt`` option of the ``printify()`` function is now
  ``False``


3.0.dev1 (2021-05-16)
~~~~~~~~~~~~~~~~~~~~~

- Fix ``AT_SetIdentity``, ``AT_EnableReplicaTrig`` and ``AlterSubscriptionStmt`` printers

- Improve ``AlterTSConfigType`` and ``IntoClause`` printers

- New generic "visitor pattern" (`issue #51`__) exemplified by a new
  ``referenced_relations()`` function (`issue #66`__)

  __ https://github.com/lelit/pglast/issues/51
  __ https://github.com/lelit/pglast/issues/66

- Refine printing of SQL comments

- Implement ``AlterExtensionStmt`` printer


3.0.dev0 (2021-05-03)
~~~~~~~~~~~~~~~~~~~~~

- Expose the new ``pg_query_scan()`` function as ``parser.scan()``

- Expose the ``pg_query_parse()`` function as ``parser.parse_sql_json()``

- Expose the new ``pg_query_parse_protobuf()`` function as ``parser.parse_sql_protobuf()``

- Expose the new ``pg_query_deparse_protobuf()`` function as ``parser.deparse_protobuf()``

- Honor the ``catalogname`` of a ``RangeVar`` if present (`issue #71`__)

  __ https://github.com/lelit/pglast/issues/71

- Cover almost all ``SQL`` statements, testing against the whole ``PostgreSQL`` `regression
  suite`__ (`issue #68`__, `PR #72`__ and `PR #77`__), thanks to Ronan Dunklau and Hong Cheng

  __ https://github.com/pganalyze/libpg_query/tree/13-latest/test/sql/postgres_regress_
  __ https://github.com/lelit/pglast/issues/68
  __ https://github.com/lelit/pglast/pull/72
  __ https://github.com/lelit/pglast/pull/77

- New rudimentary support for the `preserve comments` feature (`issue #23`__)

  __ https://github.com/lelit/pglast/issues/23

~~~~~~~~~~~~~~~~~~~~
**Breaking changes**
~~~~~~~~~~~~~~~~~~~~

- Target PostgreSQL 13

- The ``pglast.parser`` module exposes all ``libpg_query`` entry points, even the new
  ``pg_query_deparse_protobuf()`` function that is basically equivalent to
  ``RawStream``\ -based printer

- The ``split()`` function is now based on the lower level ``pg_query_split_with_xxx()``
  functions

- The ``parse_sql()`` function returns native Python objects, not a ``JSON`` string as before:
  all PG *nodes* are now represented by subclasses of ``pglast.ast.Node``, without exception,
  even ``Expr`` and ``Value`` are there. The latter impacts on ``pglast.node.Scalar``: for
  example it now may contains a ``ast.Integer`` instance instead of a Python ``int``

- The ``pgpp --parse-tree`` output is a `pprint`__ represention of the ``AST``, not a ``JSON``
  string as before

  __ https://docs.python.org/3.9/library/pprint.html#pprint.pprint

- The ``ParseError`` exception does not expose the ``location`` as an instance member anymore,
  although its still there, as the second argument (ie ``.args[1]``); furthermore, its value
  now corresponds to the index in the original Unicode string, instead of the offset in the
  ``UTF-8`` representation passed to the underlying C function


Version 2
#########

2.0.dev3 (2021-02-20)
~~~~~~~~~~~~~~~~~~~~~

- Handle ``INCLUDE`` clause in ``IndexStmt`` (`PR #67`__), thanks to Ronan Dunklau

  __ https://github.com/lelit/pglast/pull/67


2.0.dev2 (2020-10-24)
~~~~~~~~~~~~~~~~~~~~~

- Merge new ``fingerprint`` functionality from ``v1`` (i.e. ``master``) branch


2.0.dev1 (2020-09-26)
~~~~~~~~~~~~~~~~~~~~~

- Require Python 3.6 or greater

- Handle ``ALTER TYPE .. RENAME VALUE`` in ``AlterEnumStmt`` (`PR #52`__), thanks to Ronan
  Dunklau

  __ https://github.com/lelit/pglast/pull/52

- Add support for Create / Alter / Drop PROCEDURE (`PR #48`__), thanks to Ronan Dunklau

  __ https://github.com/lelit/pglast/pull/48

- Use Ronan's fork__ of libpg_query, targeting PostgreSQL 12.1 (`PR #36`__)

  __ https://github.com/rdunklau/libpg_query
  __ https://github.com/lelit/pglast/pull/36

- Change get_postgresql_version() to return a ``(major, minor)`` tuple (`issue #38`__)

  __ https://github.com/lelit/pglast/issues/38

- Handle ``ALTER TABLE ... ALTER COLUMN ... SET STORAGE ...``

- Handle PG12 materialized CTEs (`issue #57`)

- Support column numbers in ``ALTER INDEX`` (`PR #58`__), thanks to Ronan Dunklau

  __ https://github.com/lelit/pglast/pull/58

- Handle ``SET LOGGED`` and ``SET UNLOGGED`` in ``ALTER TABLE`` (`PR #59`__), thanks to Ronan
  Dunklau

  __ https://github.com/lelit/pglast/pull/59

- Handle ``ALTER TYPE ... RENAME`` (`PR #62`__), , thanks to Ronan
  Dunklau

  __ https://github.com/lelit/pglast/pull/62


Version 1
#########

1.18 (2021-06-01)
~~~~~~~~~~~~~~~~~

- Fix exclusion constraint printer (`issue #81`__)

  __ https://github.com/lelit/pglast/issues/81


1.17 (2021-02-20)
~~~~~~~~~~~~~~~~~

- Fix the generic case in the ``RenameStmt`` printer


1.16 (2021-02-20)
~~~~~~~~~~~~~~~~~

- Promote to the *stable* state

- Move the job of building and uploading binary wheels from TravisCI to GitHub Actions


1.15 (2021-02-19)
~~~~~~~~~~~~~~~~~

- Fix ``IF EXISTS`` variant of ``RenameStmt`` printer (`PR #70`__), thanks to Jonathan
  Mortensen

  __ https://github.com/lelit/pglast/pull/70

- Update libpg_query to 10-1.0.5


1.14 (2020-10-24)
~~~~~~~~~~~~~~~~~

- Produce Python 3.9 wheels, thanks to ``cibuildwheel`` 1.6.3

- Expose the ``libpg_query``'s `fingerprint`__ functionality (`PR #64`__), thanks to Yiming
  Wang

  __ https://github.com/lfittl/libpg_query/wiki/Fingerprinting
  __ https://github.com/lelit/pglast/pull/64


1.13 (2020-09-26)
~~~~~~~~~~~~~~~~~

- Handle ``SELECT FROM foo``


1.12 (2020-06-08)
~~~~~~~~~~~~~~~~~

- Double quote column names in the ``TYPE_FUNC_NAME_KEYWORDS`` set (`issue #55`__)

  __ https://github.com/lelit/pglast/issues/55

- Possibly wrap ``SELECT`` in ``UNION``/``INTERSECT`` between parens, when needed
  (`issue #55`__)

  __ https://github.com/lelit/pglast/issues/55


1.11 (2020-05-08)
~~~~~~~~~~~~~~~~~

- Fix ``A_Expr`` printer, when ``lexpr`` is missing (`PR #54`__), thanks to Aiham

  __ https://github.com/lelit/pglast/pull/54

- Support ``DISABLE ROW LEVEL SECURITY`` in ``AlterTableCmd`` (`PR #49`__), thanks to Ronan
  Dunklau

  __ https://github.com/lelit/pglast/pull/49

- Implement ``CreateOpClassStmt`` printer (`PR #47`__), thanks to Ronan Dunklau

  __ https://github.com/lelit/pglast/pull/47


1.10 (2020-01-25)
~~~~~~~~~~~~~~~~~

- Fix collation name printer (`PR #44`__), thanks to Ronan Dunklau

  __ https://github.com/lelit/pglast/pull/44

- Implement ``CreatePLangStmt`` printer (`PR #42`__), thanks to Bennie Swart

  __ https://github.com/lelit/pglast/pull/42

- Fix privileges printer (`PR #41`__), thanks to Bennie Swart

  __ https://github.com/lelit/pglast/pull/41

- Handle ``TRUNCATE`` event in ``CreateTrigStmt`` printer (`PR #40`__), thanks to Bennie Swart

  __ https://github.com/lelit/pglast/pull/40

- Fix function body dollar quoting (`PR #39`__), thanks to Bennie Swart

  __ https://github.com/lelit/pglast/pull/39


1.9 (2019-12-20)
~~~~~~~~~~~~~~~~

- Prettier ``INSERT`` representation


1.8 (2019-12-07)
~~~~~~~~~~~~~~~~

- Prettier ``CASE`` representation

- New option to emit a semicolon after the last statement (`issue #24`__)

  __ https://github.com/lelit/pglast/issues/24


1.7 (2019-12-01)
~~~~~~~~~~~~~~~~

- Implement ``NotifyStmt`` printer

- Implement ``RuleStmt`` printer, thanks to Gavin M. Roy for his `PR #28`__

  __ https://github.com/lelit/pglast/pull/28

- Fix ``RenameStmt``, properly handling object name

- Produce Python 3.8 wheels, thanks to `cibuildwheel`__ 1.0.0

  __ https://github.com/joerick/cibuildwheel

- Support ``ALTER TABLE RENAME CONSTRAINT`` (`PR #35`__), thanks to Ronan Dunklau

  __ https://github.com/lelit/pglast/pull/35


1.6 (2019-09-04)
~~~~~~~~~~~~~~~~

- Fix issue with boolean expressions precedence (`issue #29`__)

  __ https://github.com/lelit/pglast/issues/29

- Implement ``BitString`` printer

- Support ``LEAKPROOF`` option (`PR #31`__), thanks to Ronan Dunklau

  __ https://github.com/lelit/pglast/pull/31

- Support ``DEFERRABLE INITIALLY DEFERRED`` option (`PR #32`__), thanks to Ronan Dunklau

  __ https://github.com/lelit/pglast/pull/32


1.5 (2019-06-04)
~~~~~~~~~~~~~~~~

- Fix issue with ``RETURNS SETOF`` functions, a more general solution than the one proposed by
  Ronan Dunklau (`PR #22`__)

  __ https://github.com/lelit/pglast/pull/22

- Allow more than one empty line between statements (`PR #26`__), thanks to apnewberry

  __ https://github.com/lelit/pglast/pull/26


1.4 (2019-04-06)
~~~~~~~~~~~~~~~~

- Fix wrap of trigger's WHEN expression (`issue #18`__)

  __ https://github.com/lelit/pglast/issues/18

- Support for variadic functions (`PR #19`__), thanks to Ronan Dunklau

  __ https://github.com/lelit/pglast/pull/19

- Support ORDER / LIMIT / OFFSET for set operations (`PR #20`__), thanks to Ronan Dunklau

  __ https://github.com/lelit/pglast/pull/20

- Implement ``ConstraintsSetStmt`` and improve ``VariableSetStmt`` printers


1.3 (2019-03-28)
~~~~~~~~~~~~~~~~

- Support ``CROSS JOIN`` and timezone modifiers on time and timestamp datatypes (`PR #15`__),
  thanks to Ronan Dunklau

  __ https://github.com/lelit/pglast/pull/15

- Many new printers and several enhancements (`PR #14`__), thanks to Ronan Dunklau

  __ https://github.com/lelit/pglast/pull/14

- Expose the package version as pglast.__version__ (`issue #12`__)

  __ https://github.com/lelit/pglast/issues/12


1.2 (2019-02-13)
~~~~~~~~~~~~~~~~

- Implement new `split()` function (see `PR #10`__)

  __ https://github.com/lelit/pglast/pull/10

- Implement ``BooleanTest`` printer (`issue #11`__)

  __ https://github.com/lelit/pglast/issues/11


1.1 (2018-07-20)
~~~~~~~~~~~~~~~~

- No visible changes, but now PyPI carries binary wheels for Python 3.7.


1.0 (2018-06-16)
~~~~~~~~~~~~~~~~

.. important:: The name of the package has been changed from ``pg_query`` to ``pglast``, to
               satisfy the request made by the author of ``libpg_query`` in `issue #9`__.

               This affects both the main repository on GitHub, that from now on is
               ``https://github.com/lelit/pglast``, and the ReadTheDocs project that hosts the
               documentation, ``http://pglast.readthedocs.io/en/latest/``.

               I'm sorry for any inconvenience this may cause.

__ https://github.com/lelit/pglast/issues/9


0.28 (2018-06-06)
~~~~~~~~~~~~~~~~~

- Update libpg_query to 10-1.0.2

- Support the '?'-style parameter placeholder variant allowed by libpg_query (details__)

__ https://github.com/lfittl/libpg_query/issues/45


0.27 (2018-04-15)
~~~~~~~~~~~~~~~~~

- Prettier JOINs representation, aligning them with the starting relation


0.26 (2018-04-03)
~~~~~~~~~~~~~~~~~

- Fix cosmetic issue with ANY() and ALL()


0.25 (2018-03-31)
~~~~~~~~~~~~~~~~~

- Fix issue in the safety belt check performed by ``pgpp`` (`issue #4`__)

__ https://github.com/lelit/pglast/issues/4


0.24 (2018-03-02)
~~~~~~~~~~~~~~~~~

- Implement ``Null`` printer


0.23 (2017-12-28)
~~~~~~~~~~~~~~~~~

- Implement some other DDL statements printers

- New alternative style to print *comma-separated-values* lists, activated by a new
  ``--comma-at-eoln`` option on ``pgpp``


0.22 (2017-12-03)
~~~~~~~~~~~~~~~~~

- Implement ``TransactionStmt`` and almost all ``DROP xxx`` printers


0.21 (2017-11-22)
~~~~~~~~~~~~~~~~~

- Implement ``NamedArgExpr`` printer

- New alternative printers for a set of *special functions*, activated by a new
  ``--special-functions`` option on ``pgpp`` (`issue #2`__)

__ https://github.com/lelit/pglast/issues/2


0.20 (2017-11-21)
~~~~~~~~~~~~~~~~~

- Handle special de-reference (``A_Indirection``) cases


0.19 (2017-11-16)
~~~~~~~~~~~~~~~~~

- Fix serialization of column labels containing double quotes

- Fix corner issues surfaced implementing some more DDL statement printers


0.18 (2017-11-14)
~~~~~~~~~~~~~~~~~

- Fix endless loop due to sloppy conversion of command line option

- Install the command line tool as ``pgpp``


0.17 (2017-11-12)
~~~~~~~~~~~~~~~~~

- Rename printers.sql to printers.dml (**backward incompatibility**)

- List printer functions in the documentation, referencing the definition of related node type

- Fix inconsistent spacing in JOIN condition inside a nested expression

- Fix representation of unbound arrays

- Fix representation of ``interval`` data type

- Initial support for DDL statements

- Fix representation of string literals containing single quotes


0.16 (2017-10-31)
~~~~~~~~~~~~~~~~~

- Update libpg_query to 10-1.0.0


0.15 (2017-10-12)
~~~~~~~~~~~~~~~~~

- Fix indentation of boolean expressions in SELECT's targets (`issue #3`__)

__ https://github.com/lelit/pglast/issues/3


0.14 (2017-10-09)
~~~~~~~~~~~~~~~~~

- Update to latest libpg_query's 10-latest branch, targeting PostgreSQL 10.0 final


0.13 (2017-09-17)
~~~~~~~~~~~~~~~~~

- Fix representation of subselects requiring surrounding parens


0.12 (2017-08-22)
~~~~~~~~~~~~~~~~~

- New option ``--version`` on the command line tool

- Better enums documentation

- Release the GIL while calling libpg_query functions


0.11 (2017-08-11)
~~~~~~~~~~~~~~~~~

- Nicer indentation for JOINs, making OUTER JOINs stand out

- Minor tweaks to lists rendering, with less spurious whitespaces

- New option ``--no-location`` on the command line tool


0.10 (2017-08-11)
~~~~~~~~~~~~~~~~~

- Support Python 3.4 and Python 3.5 as well as Python 3.6


0.9 (2017-08-10)
~~~~~~~~~~~~~~~~

- Fix spacing before the $ character

- Handle type modifiers

- New option ``--plpgsql`` on the command line tool, just for fun


0.8 (2017-08-10)
~~~~~~~~~~~~~~~~

- Add enums subpackages to the documentation with references to their related headers

- New ``compact_lists_margin`` option to produce a more compact representation when possible
  (see `issue #1`__)

__ https://github.com/lelit/pglast/issues/1


0.7 (2017-08-10)
~~~~~~~~~~~~~~~~

- Fix sdist including the Sphinx documentation


0.6 (2017-08-10)
~~~~~~~~~~~~~~~~

- New option ``--parse-tree`` on the command line tool to show just the parse tree

- Sphinx documentation, available online


0.5 (2017-08-09)
~~~~~~~~~~~~~~~~

- Handle some more cases when a name must be double-quoted

- Complete the serialization of the WindowDef node, handling its frame options


0.4 (2017-08-09)
~~~~~~~~~~~~~~~~

- Expose the actual PostgreSQL version the underlying libpg_query libray is built on thru a new
  ``get_postgresql_version()`` function

- New option `safety_belt` for the ``prettify()`` function, to protect the innocents

- Handle serialization of ``CoalesceExpr`` and ``MinMaxExpr``


0.3 (2017-08-07)
~~~~~~~~~~~~~~~~

- Handle serialization of ``ParamRef`` nodes

- Expose a ``prettify()`` helper function


0.2 (2017-08-07)
~~~~~~~~~~~~~~~~

- Test coverage at 99%

- First attempt at automatic wheel upload to PyPI, let's see...


0.1 (2017-08-07)
~~~~~~~~~~~~~~~~

- First release ("Hi daddy!", as my soul would tag it)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/lelit/pglast",
    "name": "pglast",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "postgresql parser sql prettifier",
    "author": "Lele Gaifax",
    "author_email": "lele@metapensiero.it",
    "download_url": "https://files.pythonhosted.org/packages/95/4b/cc3fdc5aa74cb6c95e63d7346f983be23fb5ff96f84c760a1a3bdda10937/pglast-7.3.tar.gz",
    "platform": null,
    "description": ".. -*- coding: utf-8 -*-\n.. :Project:   pglast \u2014 PostgreSQL Languages AST\n.. :Created:   mer 02 ago 2017 14:49:24 CEST\n.. :Author:    Lele Gaifax <lele@metapensiero.it>\n.. :License:   GNU General Public License version 3 or later\n.. :Copyright: \u00a9 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024 Lele Gaifax\n..\n\n========\n pglast\n========\n\nPostgreSQL Languages AST and statements prettifier\n==================================================\n\n:Author: Lele Gaifax\n:Contact: lele@metapensiero.it\n:License: `GNU General Public License version 3 or later`__\n:Status: |build| |doc| |codecov|\n:Version: `7`__\n\n__ https://www.gnu.org/licenses/gpl.html\n__ https://pglast.readthedocs.io/en/v7/development.html#history\n\n.. |build| image:: https://github.com/lelit/pglast/actions/workflows/ci.yml/badge.svg?branch=v7\n   :target: https://github.com/lelit/pglast/actions/workflows/ci.yml\n   :alt: Build status\n.. |doc| image:: https://readthedocs.org/projects/pglast/badge/?version=v7\n   :target: https://readthedocs.org/projects/pglast/builds/\n   :alt: Documentation status\n.. |codecov| image:: https://codecov.io/gh/lelit/pglast/branch/v3/graph/badge.svg?token=A90D8tWnft\n   :target: https://codecov.io/gh/lelit/pglast\n   :alt: Test coverage status\n\nThis is a Python 3 module that exposes the *parse tree* of a PostgreSQL__ statement (extracted\nby the almost standard PG parser repackaged as a standalone static library by `libpg_query`__)\nas set of interconnected *nodes*, usually called an *abstract syntax tree*.\n\n__ https://www.postgresql.org/\n__ https://github.com/pganalyze/libpg_query\n\nSee a `more detailed introduction`__ in the documentation_.\n\n__ https://pglast.readthedocs.io/en/v7/introduction.html\n\n\nInstallation\n------------\n\nAs usual, the easiest way is with pip::\n\n  $ pip install pglast\n\nAlternatively you can clone the repository::\n\n  $ git clone https://github.com/lelit/pglast.git --recursive\n\nand install from there::\n\n  $ pip install ./pglast\n\n\nDevelopment\n-----------\n\nThere is a set of *makefiles* implementing the most common operations, a ``make help`` will\nshow a brief table of contents. A comprehensive test suite, based on pytest__, covers__ nearly\n99% of the source lines.\n\n__ https://docs.pytest.org/en/latest/\n__ https://codecov.io/gh/lelit/pglast/branch/v7/\n\n\nDocumentation\n-------------\n\nLatest documentation is hosted by `Read the Docs`__ at https://pglast.readthedocs.io/en/v7\n\n__ https://readthedocs.org/\n\n\n.. -*- coding: utf-8 -*-\n\n.. _changes:\n\nChanges\n-------\n\nVersion 7\n#########\n\n7.3 (2025-02-09)\n~~~~~~~~~~~~~~~~\n\n- Handle the ``SET configuration_parameter FROM CURRENT`` case in the ``VariableSetStmt``\n  printer (`PR #168`__), thanks to Bolaji Wahab\n\n  __ https://github.com/lelit/pglast/pull/168\n\n\n7.2 (2024-12-21)\n~~~~~~~~~~~~~~~~\n\n- Merge with `Version 6`_\n\n- Handle ``timestamp AT LOCAL`` expression, new in PG17\n\n\n7.1 (2024-11-26)\n~~~~~~~~~~~~~~~~\n\n- Merge with `Version 6`_\n\n\n7.0 (2024-11-13)\n~~~~~~~~~~~~~~~~\n\n- No visible changes\n\n\n7.0.dev1 (2024-11-01)\n~~~~~~~~~~~~~~~~~~~~~\n\n- Upgrade libpg_query to `17-6.0.0`__\n\n  __ https://github.com/pganalyze/libpg_query/releases/tag/17-6.0.0\n\n\n7.0.dev0 (2024-10-31)\n~~~~~~~~~~~~~~~~~~~~~\n\n- No visible changes with respect to v6, apart from the support for new/revised syntaxes of\n  `PostgreSQL 17`__\n\n  __ https://www.postgresql.org/docs/17/release-17.html\n\n~~~~~~~~~~~~~~~~~~~~\n**Breaking changes**\n~~~~~~~~~~~~~~~~~~~~\n\n- Target PostgreSQL 17, thanks to libpg_query `17-latest-dev`__\n\n  __ https://github.com/pganalyze/libpg_query/tree/17-latest-dev\n\n- Require Python >= 3.9\n\n\nVersion 6\n#########\n\n6.14 (2025-02-09)\n~~~~~~~~~~~~~~~~~\n\n- Handle the ``SET configuration_parameter FROM CURRENT`` case in the ``VariableSetStmt``\n  printer (backport of `PR #168`__)\n\n  __ https://github.com/lelit/pglast/pull/168\n\n\n6.13 (2024-12-17)\n~~~~~~~~~~~~~~~~~\n\n- Better fix to the ``x AT TIME ZONE foo`` glitch, v6.12 solution was incomplete\n\n\n6.12 (2024-12-16)\n~~~~~~~~~~~~~~~~~\n\n- Properly wrap ``x AT TIME ZONE foo`` in parens when it is the argument of a ``DEFAULT``\n  constraint\n\n\n6.11 (2024-11-26)\n~~~~~~~~~~~~~~~~~\n\n- Remove spurious trailing space in the ``ConstrTypePrinter.CONSTR_IDENTITY`` and the\n  ``Constraint`` printers (issue `#165`__)\n\n  __ https://github.com/lelit/pglast/issues/165\n\n\n6.10 (2024-11-01)\n~~~~~~~~~~~~~~~~~\n\n- Upgrade libpg_query to `16-5.2.0`__\n\n  __ https://github.com/pganalyze/libpg_query/releases/tag/16-5.2.0\n\n\n6.9 (2024-10-31)\n~~~~~~~~~~~~~~~~\n\n- Fix regression introduced by recent modification to the ``CommonTableExpr`` printer that\n  impacted on the ``RawStream`` renderer (issue `#163`__)\n\n  __ https://github.com/lelit/pglast/issues/163\n\n- Expose the ``RawStream`` renderer in the CLI tool with a new ``--normalize`` option\n\n\n6.8 (2024-10-29)\n~~~~~~~~~~~~~~~~\n\n- Upgrade libpg_query to not-yet-publicly-released commit__, to solve an issue related to\n  `plpgsql` (issue `#156`__)\n\n  __ https://github.com/pganalyze/libpg_query/commit/06670290ad39e61805ecacbc6267df61f6ae3d91\n  __ https://github.com/lelit/pglast/issues/156\n\n\n6.7 (2024-10-28)\n~~~~~~~~~~~~~~~~\n\n- Generate wheels on PyPI using Python 3.13.0 final release, thanks to cibuildwheel `2.21.3`__\n\n  __ https://cibuildwheel.pypa.io/en/stable/changelog/#v2213\n\n- Improve ``CommonTableExpr`` printer, reducing horizontal space waste\n\n\n6.6 (2024-09-30)\n~~~~~~~~~~~~~~~~\n\n- Make recently introduced doctest related to issue #88 work on different Python versions\n\n\n6.5 (2024-09-29)\n~~~~~~~~~~~~~~~~\n\n- Fix glitch when using the ``--preserve-comments`` flag (issue `#159`__)\n\n  __ https://github.com/lelit/pglast/issues/159\n\n- Finally add a note to ``parse_plpgsql()`` documentation mentioning how it differs from\n  ``parse_sql()`` (issue `#88`__)\n\n  __ https://github.com/lelit/pglast/issues/88\n\n\n6.4 (2024-09-28)\n~~~~~~~~~~~~~~~~\n\n- Fix issue with deserialization of deeply nested ASTs (issue `#153`__)\n\n  __ https://github.com/lelit/pglast/issues/153\n\n- Upgrade libpg_query to not-yet-publicly-released commit__, to solve an issue related to\n  `plpgsql` (issue `#154`__)\n\n  __ https://github.com/pganalyze/libpg_query/commit/680f5ee67c6fdae497c8d1edfadd02b9b8eac74f\n  __ https://github.com/lelit/pglast/issues/154\n\n\n6.3 (2024-08-06)\n~~~~~~~~~~~~~~~~\n\n- Fix ``SEQUENCE NAME`` in ``create_seq_stmt_def_elem`` (`PR #151`__), thanks to orages\n\n  __ https://github.com/lelit/pglast/pull/151\n\n- Generate wheels on PyPI using Python 3.13.0rc1 release, thanks to cibuildwheel `2.20.0`__\n\n  __ https://cibuildwheel.pypa.io/en/stable/changelog/#v2200\n\n- Use `Cython 3.0.11`__\n\n  __ https://github.com/cython/cython/blob/master/CHANGES.rst#3011-2024-08-05\n\n\n6.2 (2024-02-01)\n~~~~~~~~~~~~~~~~\n\n- Almost no-op release to fix issue `144`__, producing correct wheels for macOS arm64\n\n  __ https://github.com/lelit/pglast/issues/144\n\n6.1 (2024-01-22)\n~~~~~~~~~~~~~~~~\n\n- Inherit fix for issue `143`__ from `version 5`_\n\n  __ https://github.com/lelit/pglast/issues/143\n\n\n6.0 (2024-01-22)\n~~~~~~~~~~~~~~~~\n\n- Produce wheels for macOS arm64\n\n\n6.0.dev2 (2024-01-21)\n~~~~~~~~~~~~~~~~~~~~~\n\n- Enable compilation on Windows and produce related 32bit and 64bit wheels (issue `#7`__)\n\n  __ https://github.com/lelit/pglast/issues/7\n\n\n6.0.dev1 (2024-01-11)\n~~~~~~~~~~~~~~~~~~~~~\n\n- Re-enable Linux 32bit wheels, thanks to libpg_query to `16-5.1.0`__\n\n  __ https://github.com/pganalyze/libpg_query/releases/tag/16-5.1.0\n\n\n6.0.dev0 (2023-12-29)\n~~~~~~~~~~~~~~~~~~~~~\n\n- No visible changes with respect to v5, apart from the support for new/revised syntaxes of\n  `PostgreSQL 16`__\n\n  __ https://www.postgresql.org/docs/16/release-16.html\n\n- Do not build binary wheels for Python 3.8\n\n- Skip compilation on Linux 32bit (see `this comment`__ for details)\n\n  __ https://github.com/pganalyze/libpg_query/pull/225#issuecomment-1864145089\n\n~~~~~~~~~~~~~~~~~~~~\n**Breaking changes**\n~~~~~~~~~~~~~~~~~~~~\n\n- Target PostgreSQL 16, thanks to libpg_query `16-5.0.0`__\n\n  __ https://github.com/pganalyze/libpg_query/releases/tag/16-5.0.0\n\n\nVersion 5\n#########\n\n5.9 (2024-01-22)\n~~~~~~~~~~~~~~~~\n\n- Fix issue `143`__, affecting ``AlterOwnerStmt`` and ``RenameStmt`` printers\n\n  __ https://github.com/lelit/pglast/issues/143\n\n\n5.8 (2024-01-11)\n~~~~~~~~~~~~~~~~\n\n- Fix issue `#142`__, a glitch that affected 32-bit systems\n\n  __ https://github.com/lelit/pglast/issues/142\n\n\n5.7 (2023-12-23)\n~~~~~~~~~~~~~~~~\n\n- Use `Cython 3.0.7`__\n\n  __ https://github.com/cython/cython/blob/master/CHANGES.rst#307-2023-12-19\n\n- Update libpg_query to `15-4.2.4`__\n\n  __ https://github.com/pganalyze/libpg_query/releases/tag/15-4.2.4\n\n\n5.6 (2023-12-07)\n~~~~~~~~~~~~~~~~\n\n- Fix issue `#138`__, a defect that hindered the creation of AST nodes that act as *markers*,\n  (currently ``A_Star`` and ``CheckPointStmt``), that do not carry any other information\n\n  __ https://github.com/lelit/pglast/issues/138\n\n- Use `Cython 3.0.6`__\n\n  __ https://github.com/cython/cython/blob/master/CHANGES.rst#306-2023-11-26\n\n- Handle the ``ENABLE TRIGGER ALL`` in ``AlterTableCmd``\n\n- Fix issue `#136`__, a regression introduced by \u201cAvoid overly abundancy of parentheses in\n  expressions\u201d\n\n  __ https://github.com/lelit/pglast/issues/136\n\n\n5.5 (2023-10-07)\n~~~~~~~~~~~~~~~~\n\n- Use `Cython 3.0.3`__\n\n  __ https://github.com/cython/cython/blob/master/CHANGES.rst#303-2023-10-05\n\n- Produce wheels using final Python 3.12 release, thanks to ``cibuildwheel`` `2.16.2`__\n\n  __ https://cibuildwheel.readthedocs.io/en/stable/changelog/#v2162\n\n\n5.4 (2023-08-24)\n~~~~~~~~~~~~~~~~\n\n- Improve documentation, adding ``parser.Displacements``, ``parser.scan`` and ``parser.split``\n  examples (`issue #128`__)\n\n  __ https://github.com/lelit/pglast/issues/128\n\n- Fix issues `#129`__ and `#130`__ (merged from `version 4.4`__)\n\n  __ https://github.com/lelit/pglast/issues/129\n  __ https://github.com/lelit/pglast/issues/130\n  __ `4.4 (2023-08-24)`_\n\n\n5.3 (2023-08-05)\n~~~~~~~~~~~~~~~~\n\n- Update libpg_query to `15-4.2.3`__\n\n  __ https://github.com/pganalyze/libpg_query/releases/tag/15-4.2.3\n\n\n5.2 (2023-05-20)\n~~~~~~~~~~~~~~~~\n\n- Update libpg_query to `15-4.2.1`__\n\n  __ https://github.com/pganalyze/libpg_query/releases/tag/15-4.2.1\n\n\n5.1 (2023-02-28)\n~~~~~~~~~~~~~~~~\n\n- Merge `version 4.2`__ changes\n\n  __ `4.2 (2023-02-27)`_\n\n\n5.0 (2023-02-19)\n~~~~~~~~~~~~~~~~\n\n- No changes\n\n\n5.0.dev1 (2023-02-11)\n~~~~~~~~~~~~~~~~~~~~~\n\n- Update libpg_query to `15-4.2.0`__\n\n  __ https://github.com/pganalyze/libpg_query/releases/tag/15-4.2.0\n\n~~~~~~~~~~~~~~~~~~~~\n**Breaking changes**\n~~~~~~~~~~~~~~~~~~~~\n\n- Change the type of the ``ast.Float`` value from ``Decimal`` to ``str``\n\n  Using a ``Decimal`` implies potential differences in the representation of floating numbers,\n  and already caused issues (`#91`__ and `#100`__) in the past, making it impossible to render,\n  say, ``SELECT 0.0e1``, due to the fact that ``Decimal('0.0e1')`` resolves to\n  ``Decimal('0')``.\n\n  __ https://github.com/lelit/pglast/issues/91\n  __ https://github.com/lelit/pglast/issues/100\n\n\n5.0.dev0 (2022-12-19)\n~~~~~~~~~~~~~~~~~~~~~\n\n- No visible changes with respect to v4, apart from the support for new/revised syntaxes of\n  `PostgreSQL 15`__\n\n  __ https://www.postgresql.org/docs/15/release-15.html\n\n~~~~~~~~~~~~~~~~~~~~\n**Breaking changes**\n~~~~~~~~~~~~~~~~~~~~\n\n- Target PostgreSQL 15, thanks to libpg_query `15-4.0.0`__\n\n  __ https://github.com/pganalyze/libpg_query/releases/tag/15-4.0.0\n\n\nVersion 4\n#########\n\n4.5 (unreleased)\n~~~~~~~~~~~~~~~~\n\n- Use `Cython 3.0.2`__\n\n  __ https://github.com/cython/cython/blob/master/CHANGES.rst#302-2023-08-27\n\n\n4.4 (2023-08-24)\n~~~~~~~~~~~~~~~~\n\n- Fix issues `#129`__ and `#130`__ (merged from `version 3.18`__)\n\n  __ https://github.com/lelit/pglast/issues/129\n  __ https://github.com/lelit/pglast/issues/130\n  __ `3.18 (2023-08-24)`_\n\n\n4.3 (2023-04-27)\n~~~~~~~~~~~~~~~~\n\n- Fix `serialization issue`__ when column's ``DEFAULT`` value is an expression\n\n  __ https://github.com/pganalyze/libpg_query/issues/188\n\n\n4.2 (2023-02-27)\n~~~~~~~~~~~~~~~~\n\n- Handle special syntax required by ``SET TIME ZONE INTERVAL '-08:00' hour to minute``\n\n- Fix mistype mapping of raw C \"long\" and \"double\" attributes, that were decorated with the\n  wrong Python type\n\n\n4.1 (2022-12-19)\n~~~~~~~~~~~~~~~~\n\n- Fix serialization glitches introduced by \u201cAvoid overly abundancy of parentheses in\n  expressions\u201d (to be precise, by this__ commit)\n\n  __ https://github.com/lelit/pglast/commit/6cfe75eea80f9c9bec4ba467e7ec1ec0796020de\n\n\n4.0 (2022-12-12)\n~~~~~~~~~~~~~~~~\n\n- Update libpg_query to final `14-3.0.0`__\n\n  __ https://github.com/pganalyze/libpg_query/releases/tag/14-3.0.0\n\n\n4.0.dev0 (2022-11-24)\n~~~~~~~~~~~~~~~~~~~~~\n\n- Update libpg_query to `14-3.0.0`__\n\n  __ https://github.com/pganalyze/libpg_query/blob/14-latest/CHANGELOG.md#14-300---2022-11-17\n\n- Avoid overly abundancy of parentheses in expressions\n\n- Prefer ``SELECT a FROM b LIMIT ALL`` to ``... LIMIT NONE``\n\n~~~~~~~~~~~~~~~~~~~~\n**Breaking changes**\n~~~~~~~~~~~~~~~~~~~~\n\n- Target PostgreSQL 14\n\n- The wrapper classes used in previous versions, implemented in ``pglast.node``, are gone: now\n  everything works on top of the ``AST`` classes (`issue #80`__)\n\n  __ https://github.com/lelit/pglast/issues/80\n\n- The ``Ancestor`` class is not iterable anymore: it was an internal implementation facility,\n  now moved to a ``_iter_members()`` method\n\n\nVersion 3\n#########\n\n3.18 (2023-08-24)\n~~~~~~~~~~~~~~~~~\n\n- Fix ``BooleanTest`` printer, enclosing expression within parens in more cases (`issue\n  #129`__)\n\n  __ https://github.com/lelit/pglast/issues/129\n\n- Fix ``Constraint`` printer, avoiding repetition of \"DEFERRABLE INITIALLY DEFERRED\" on some\n  kind of constraints (`issue #130`__)\n\n  __ https://github.com/lelit/pglast/issues/130\n\n\n3.17 (2022-11-04)\n~~~~~~~~~~~~~~~~~\n\n- Fix ``AlterSubscriptionStmt`` printer, handling \"SET PUBLICATION\" without options\n\n\n3.16 (2022-11-03)\n~~~~~~~~~~~~~~~~~\n\n- Update libpg_query to `13-2.2.0`__\n\n  __ https://github.com/pganalyze/libpg_query/blob/13-latest/CHANGELOG.md#13-220---2022-11-02\n\n\n3.15 (2022-10-17)\n~~~~~~~~~~~~~~~~~\n\n- Produce Python 3.11 wheels (`PR #108`__), thanks to ``cibuildwheel`` 2.11.1__ and to Bastien\n  Gandouet\n\n  __ https://github.com/lelit/pglast/pull/108\n  __ https://cibuildwheel.readthedocs.io/en/stable/changelog/#v2111\n\n\n3.14 (2022-08-08)\n~~~~~~~~~~~~~~~~~\n\n- Harden the way ``Visitor`` handle modifications to the AST (`issue #107`__)\n\n  __ https://github.com/lelit/pglast/issues/107\n\n\n3.13 (2022-06-29)\n~~~~~~~~~~~~~~~~~\n\n- Update libpg_query to `13-2.1.2`__\n\n  __ https://github.com/pganalyze/libpg_query/blob/13-latest/CHANGELOG.md#13-212---2022-06-28\n\n\n3.12 (2022-06-19)\n~~~~~~~~~~~~~~~~~\n\n- Rewrite the implementation of the ``referenced_relations()`` function, that was flawed with\n  regard to CTEs handling (`issue #106`__), thanks to Michal Charemza for providing his own\n  version\n\n  __ https://github.com/lelit/pglast/issues/106\n\n- Improve ``WithClause`` printer indentation\n\n- Fix minor whitespace related issues in a few printer functions\n\n\n3.11 (2022-05-29)\n~~~~~~~~~~~~~~~~~\n\n- Fix the ``Visitor`` class, it was ignoring nodes nested in sub-lists\n\n- Reduce the size of the generated parser by factoring out common code into helper functions\n\n\n3.10 (2022-05-11)\n~~~~~~~~~~~~~~~~~\n\n- Update libpg_query to `13-2.1.1`__ (`PR #102`__), thanks to James Guthrie\n\n  __ https://github.com/pganalyze/libpg_query/blob/13-latest/CHANGELOG.md#13-211---2022-05-03\n  __ https://github.com/lelit/pglast/pull/102\n\n- Produce `musllinux`__ wheels, thanks to ``cibuildwheel`` `2.5.0`__ (:PEP:`656` was actually\n  introduced in `2.2.0`__)\n\n  __ https://peps.python.org/pep-0656/\n  __ https://cibuildwheel.readthedocs.io/en/stable/changelog/#v250\n  __ https://cibuildwheel.readthedocs.io/en/stable/changelog/#v220\n\n\n3.9 (2022-02-24)\n~~~~~~~~~~~~~~~~\n\n- Fix bug handling node containing a ``location`` field, e.g. ``CreateTableSpaceStmt`` (`issue\n  #98`__)\n\n  __ https://github.com/lelit/pglast/issues/98\n\n- Properly handle dereferenced array expression (`issue #99`__)\n\n  __ https://github.com/lelit/pglast/issues/99\n\n- Avoid improper \"floatification\" of literal integers (`issue #100`__)\n\n  __ https://github.com/lelit/pglast/issues/100\n\n\n3.8 (2021-12-28)\n~~~~~~~~~~~~~~~~\n\n- Fix glitch in the AST extractor tool (`issue #97`__)\n\n  __ https://github.com/lelit/pglast/issues/97\n\n- Add Linux AArch64 wheel build support (`PR #95`__), thanks to odidev\n\n  __ https://github.com/lelit/pglast/pull/95\n\n- Fix type mismatch when using ``--remove-pg_catalog-from-functions`` (`PR #93`__), thanks\n  to Boris Zentner\n\n  __ https://github.com/lelit/pglast/pull/93/\n\n\n3.7 (2021-10-13)\n~~~~~~~~~~~~~~~~\n\n- Update libpg_query to `13-2.1.0`__\n\n  __ https://github.com/pganalyze/libpg_query/blob/13-latest/CHANGELOG.md#13-210---2021-10-12_\n\n\n3.6 (2021-10-09)\n~~~~~~~~~~~~~~~~\n\n- Use latest libpg_query, to fix an error parsing ``PLpgSQL`` statements (`issue #88`__)\n\n  __ https://github.com/lelit/pglast/issues/88\n\n\n3.5 (2021-09-26)\n~~~~~~~~~~~~~~~~\n\n- Forward the ``special_functions`` option to substream, when concatenating items\n  (`issue #89`__)\n\n  __ https://github.com/lelit/pglast/issues/89\n\n- Fix representation of floating point numbers without decimal digits (`issue #91`__)\n\n  __ https://github.com/lelit/pglast/issues/91\n\n- Produce Python 3.10 wheels, thanks to ``cibuildwheel`` 2.1.2\n\n- Update libpg_query to `13-2.0.7`__\n\n  __ https://github.com/pganalyze/libpg_query/blob/13-latest/CHANGELOG.md#13-207---2021-07-16_\n\n- New option ``--remove-pg_catalog-from-functions`` on the command line tool (`PR #90`__), thanks\n  to Boris Zentner\n\n  __ https://github.com/lelit/pglast/pull/90/\n\n- Implement more *special functions* (`PR #92`__), thanks to Boris Zentner\n\n  __ https://github.com/lelit/pglast/pull/92/\n\n\n3.4 (2021-08-21)\n~~~~~~~~~~~~~~~~\n\n- Fix another packaging issue, that prevented recompilation from the sdist ``.tar.gz`` (`issue\n  #86`__), thanks to Christopher Brichford\n\n  __ https://github.com/lelit/pglast/issues/82\n\n\n3.3 (2021-07-04)\n~~~~~~~~~~~~~~~~\n\n- Update libpg_query to `13-2.0.6`__\n\n  __ https://github.com/pganalyze/libpg_query/blob/13-latest/CHANGELOG.md#13-206---2021-06-29_\n\n\n3.2 (2021-06-25)\n~~~~~~~~~~~~~~~~\n\n- Effectively include libpg_query's vendored sources (`issue #82`__)\n\n  __ https://github.com/lelit/pglast/issues/82\n\n\n3.1 (2021-06-25)\n~~~~~~~~~~~~~~~~\n\n- Fix packaging glitch (`issue #82`__)\n\n  __ https://github.com/lelit/pglast/issues/82\n\n- Build wheels also for macOS\n\n- Update libpg_query to `13-2.0.5`__\n\n  __ https://github.com/pganalyze/libpg_query/blob/13-latest/CHANGELOG.md#13-205---2021-06-24_\n\n\n3.0 (2021-06-04)\n~~~~~~~~~~~~~~~~\n\n- Fix glitch in the ``RawStream``, avoiding spurious space after an open parenthesis\n\n- Improve the ``Visitor`` class, to make it easier altering the original tree\n\n- Properly handle nested lists in the serialization of AST Node\n\n\n3.0.dev2 (2021-05-22)\n~~~~~~~~~~~~~~~~~~~~~\n\n- Fix bug in ``CreateStmt`` printer (`issue #79`__)\n\n  __ https://github.com/lelit/pglast/issues/79\n\n- Make it possible to pass also concrete ``ast.Node``\\ s to ``RawStream```\n\n~~~~~~~~~~~~~~~~~~~~\n**Breaking changes**\n~~~~~~~~~~~~~~~~~~~~\n\n- To reduce confusion, the ``printer`` module has been removed: print-specific stuff is now\n  directly exposed by the ``printers`` subpackage while serialization classes are now in the\n  new ``stream`` module\n\n- The default value for the ``safety_belt`` option of the ``printify()`` function is now\n  ``False``\n\n\n3.0.dev1 (2021-05-16)\n~~~~~~~~~~~~~~~~~~~~~\n\n- Fix ``AT_SetIdentity``, ``AT_EnableReplicaTrig`` and ``AlterSubscriptionStmt`` printers\n\n- Improve ``AlterTSConfigType`` and ``IntoClause`` printers\n\n- New generic \"visitor pattern\" (`issue #51`__) exemplified by a new\n  ``referenced_relations()`` function (`issue #66`__)\n\n  __ https://github.com/lelit/pglast/issues/51\n  __ https://github.com/lelit/pglast/issues/66\n\n- Refine printing of SQL comments\n\n- Implement ``AlterExtensionStmt`` printer\n\n\n3.0.dev0 (2021-05-03)\n~~~~~~~~~~~~~~~~~~~~~\n\n- Expose the new ``pg_query_scan()`` function as ``parser.scan()``\n\n- Expose the ``pg_query_parse()`` function as ``parser.parse_sql_json()``\n\n- Expose the new ``pg_query_parse_protobuf()`` function as ``parser.parse_sql_protobuf()``\n\n- Expose the new ``pg_query_deparse_protobuf()`` function as ``parser.deparse_protobuf()``\n\n- Honor the ``catalogname`` of a ``RangeVar`` if present (`issue #71`__)\n\n  __ https://github.com/lelit/pglast/issues/71\n\n- Cover almost all ``SQL`` statements, testing against the whole ``PostgreSQL`` `regression\n  suite`__ (`issue #68`__, `PR #72`__ and `PR #77`__), thanks to Ronan Dunklau and Hong Cheng\n\n  __ https://github.com/pganalyze/libpg_query/tree/13-latest/test/sql/postgres_regress_\n  __ https://github.com/lelit/pglast/issues/68\n  __ https://github.com/lelit/pglast/pull/72\n  __ https://github.com/lelit/pglast/pull/77\n\n- New rudimentary support for the `preserve comments` feature (`issue #23`__)\n\n  __ https://github.com/lelit/pglast/issues/23\n\n~~~~~~~~~~~~~~~~~~~~\n**Breaking changes**\n~~~~~~~~~~~~~~~~~~~~\n\n- Target PostgreSQL 13\n\n- The ``pglast.parser`` module exposes all ``libpg_query`` entry points, even the new\n  ``pg_query_deparse_protobuf()`` function that is basically equivalent to\n  ``RawStream``\\ -based printer\n\n- The ``split()`` function is now based on the lower level ``pg_query_split_with_xxx()``\n  functions\n\n- The ``parse_sql()`` function returns native Python objects, not a ``JSON`` string as before:\n  all PG *nodes* are now represented by subclasses of ``pglast.ast.Node``, without exception,\n  even ``Expr`` and ``Value`` are there. The latter impacts on ``pglast.node.Scalar``: for\n  example it now may contains a ``ast.Integer`` instance instead of a Python ``int``\n\n- The ``pgpp --parse-tree`` output is a `pprint`__ represention of the ``AST``, not a ``JSON``\n  string as before\n\n  __ https://docs.python.org/3.9/library/pprint.html#pprint.pprint\n\n- The ``ParseError`` exception does not expose the ``location`` as an instance member anymore,\n  although its still there, as the second argument (ie ``.args[1]``); furthermore, its value\n  now corresponds to the index in the original Unicode string, instead of the offset in the\n  ``UTF-8`` representation passed to the underlying C function\n\n\nVersion 2\n#########\n\n2.0.dev3 (2021-02-20)\n~~~~~~~~~~~~~~~~~~~~~\n\n- Handle ``INCLUDE`` clause in ``IndexStmt`` (`PR #67`__), thanks to Ronan Dunklau\n\n  __ https://github.com/lelit/pglast/pull/67\n\n\n2.0.dev2 (2020-10-24)\n~~~~~~~~~~~~~~~~~~~~~\n\n- Merge new ``fingerprint`` functionality from ``v1`` (i.e. ``master``) branch\n\n\n2.0.dev1 (2020-09-26)\n~~~~~~~~~~~~~~~~~~~~~\n\n- Require Python 3.6 or greater\n\n- Handle ``ALTER TYPE .. RENAME VALUE`` in ``AlterEnumStmt`` (`PR #52`__), thanks to Ronan\n  Dunklau\n\n  __ https://github.com/lelit/pglast/pull/52\n\n- Add support for Create / Alter / Drop PROCEDURE (`PR #48`__), thanks to Ronan Dunklau\n\n  __ https://github.com/lelit/pglast/pull/48\n\n- Use Ronan's fork__ of libpg_query, targeting PostgreSQL 12.1 (`PR #36`__)\n\n  __ https://github.com/rdunklau/libpg_query\n  __ https://github.com/lelit/pglast/pull/36\n\n- Change get_postgresql_version() to return a ``(major, minor)`` tuple (`issue #38`__)\n\n  __ https://github.com/lelit/pglast/issues/38\n\n- Handle ``ALTER TABLE ... ALTER COLUMN ... SET STORAGE ...``\n\n- Handle PG12 materialized CTEs (`issue #57`)\n\n- Support column numbers in ``ALTER INDEX`` (`PR #58`__), thanks to Ronan Dunklau\n\n  __ https://github.com/lelit/pglast/pull/58\n\n- Handle ``SET LOGGED`` and ``SET UNLOGGED`` in ``ALTER TABLE`` (`PR #59`__), thanks to Ronan\n  Dunklau\n\n  __ https://github.com/lelit/pglast/pull/59\n\n- Handle ``ALTER TYPE ... RENAME`` (`PR #62`__), , thanks to Ronan\n  Dunklau\n\n  __ https://github.com/lelit/pglast/pull/62\n\n\nVersion 1\n#########\n\n1.18 (2021-06-01)\n~~~~~~~~~~~~~~~~~\n\n- Fix exclusion constraint printer (`issue #81`__)\n\n  __ https://github.com/lelit/pglast/issues/81\n\n\n1.17 (2021-02-20)\n~~~~~~~~~~~~~~~~~\n\n- Fix the generic case in the ``RenameStmt`` printer\n\n\n1.16 (2021-02-20)\n~~~~~~~~~~~~~~~~~\n\n- Promote to the *stable* state\n\n- Move the job of building and uploading binary wheels from TravisCI to GitHub Actions\n\n\n1.15 (2021-02-19)\n~~~~~~~~~~~~~~~~~\n\n- Fix ``IF EXISTS`` variant of ``RenameStmt`` printer (`PR #70`__), thanks to Jonathan\n  Mortensen\n\n  __ https://github.com/lelit/pglast/pull/70\n\n- Update libpg_query to 10-1.0.5\n\n\n1.14 (2020-10-24)\n~~~~~~~~~~~~~~~~~\n\n- Produce Python 3.9 wheels, thanks to ``cibuildwheel`` 1.6.3\n\n- Expose the ``libpg_query``'s `fingerprint`__ functionality (`PR #64`__), thanks to Yiming\n  Wang\n\n  __ https://github.com/lfittl/libpg_query/wiki/Fingerprinting\n  __ https://github.com/lelit/pglast/pull/64\n\n\n1.13 (2020-09-26)\n~~~~~~~~~~~~~~~~~\n\n- Handle ``SELECT FROM foo``\n\n\n1.12 (2020-06-08)\n~~~~~~~~~~~~~~~~~\n\n- Double quote column names in the ``TYPE_FUNC_NAME_KEYWORDS`` set (`issue #55`__)\n\n  __ https://github.com/lelit/pglast/issues/55\n\n- Possibly wrap ``SELECT`` in ``UNION``/``INTERSECT`` between parens, when needed\n  (`issue #55`__)\n\n  __ https://github.com/lelit/pglast/issues/55\n\n\n1.11 (2020-05-08)\n~~~~~~~~~~~~~~~~~\n\n- Fix ``A_Expr`` printer, when ``lexpr`` is missing (`PR #54`__), thanks to Aiham\n\n  __ https://github.com/lelit/pglast/pull/54\n\n- Support ``DISABLE ROW LEVEL SECURITY`` in ``AlterTableCmd`` (`PR #49`__), thanks to Ronan\n  Dunklau\n\n  __ https://github.com/lelit/pglast/pull/49\n\n- Implement ``CreateOpClassStmt`` printer (`PR #47`__), thanks to Ronan Dunklau\n\n  __ https://github.com/lelit/pglast/pull/47\n\n\n1.10 (2020-01-25)\n~~~~~~~~~~~~~~~~~\n\n- Fix collation name printer (`PR #44`__), thanks to Ronan Dunklau\n\n  __ https://github.com/lelit/pglast/pull/44\n\n- Implement ``CreatePLangStmt`` printer (`PR #42`__), thanks to Bennie Swart\n\n  __ https://github.com/lelit/pglast/pull/42\n\n- Fix privileges printer (`PR #41`__), thanks to Bennie Swart\n\n  __ https://github.com/lelit/pglast/pull/41\n\n- Handle ``TRUNCATE`` event in ``CreateTrigStmt`` printer (`PR #40`__), thanks to Bennie Swart\n\n  __ https://github.com/lelit/pglast/pull/40\n\n- Fix function body dollar quoting (`PR #39`__), thanks to Bennie Swart\n\n  __ https://github.com/lelit/pglast/pull/39\n\n\n1.9 (2019-12-20)\n~~~~~~~~~~~~~~~~\n\n- Prettier ``INSERT`` representation\n\n\n1.8 (2019-12-07)\n~~~~~~~~~~~~~~~~\n\n- Prettier ``CASE`` representation\n\n- New option to emit a semicolon after the last statement (`issue #24`__)\n\n  __ https://github.com/lelit/pglast/issues/24\n\n\n1.7 (2019-12-01)\n~~~~~~~~~~~~~~~~\n\n- Implement ``NotifyStmt`` printer\n\n- Implement ``RuleStmt`` printer, thanks to Gavin M. Roy for his `PR #28`__\n\n  __ https://github.com/lelit/pglast/pull/28\n\n- Fix ``RenameStmt``, properly handling object name\n\n- Produce Python 3.8 wheels, thanks to `cibuildwheel`__ 1.0.0\n\n  __ https://github.com/joerick/cibuildwheel\n\n- Support ``ALTER TABLE RENAME CONSTRAINT`` (`PR #35`__), thanks to Ronan Dunklau\n\n  __ https://github.com/lelit/pglast/pull/35\n\n\n1.6 (2019-09-04)\n~~~~~~~~~~~~~~~~\n\n- Fix issue with boolean expressions precedence (`issue #29`__)\n\n  __ https://github.com/lelit/pglast/issues/29\n\n- Implement ``BitString`` printer\n\n- Support ``LEAKPROOF`` option (`PR #31`__), thanks to Ronan Dunklau\n\n  __ https://github.com/lelit/pglast/pull/31\n\n- Support ``DEFERRABLE INITIALLY DEFERRED`` option (`PR #32`__), thanks to Ronan Dunklau\n\n  __ https://github.com/lelit/pglast/pull/32\n\n\n1.5 (2019-06-04)\n~~~~~~~~~~~~~~~~\n\n- Fix issue with ``RETURNS SETOF`` functions, a more general solution than the one proposed by\n  Ronan Dunklau (`PR #22`__)\n\n  __ https://github.com/lelit/pglast/pull/22\n\n- Allow more than one empty line between statements (`PR #26`__), thanks to apnewberry\n\n  __ https://github.com/lelit/pglast/pull/26\n\n\n1.4 (2019-04-06)\n~~~~~~~~~~~~~~~~\n\n- Fix wrap of trigger's WHEN expression (`issue #18`__)\n\n  __ https://github.com/lelit/pglast/issues/18\n\n- Support for variadic functions (`PR #19`__), thanks to Ronan Dunklau\n\n  __ https://github.com/lelit/pglast/pull/19\n\n- Support ORDER / LIMIT / OFFSET for set operations (`PR #20`__), thanks to Ronan Dunklau\n\n  __ https://github.com/lelit/pglast/pull/20\n\n- Implement ``ConstraintsSetStmt`` and improve ``VariableSetStmt`` printers\n\n\n1.3 (2019-03-28)\n~~~~~~~~~~~~~~~~\n\n- Support ``CROSS JOIN`` and timezone modifiers on time and timestamp datatypes (`PR #15`__),\n  thanks to Ronan Dunklau\n\n  __ https://github.com/lelit/pglast/pull/15\n\n- Many new printers and several enhancements (`PR #14`__), thanks to Ronan Dunklau\n\n  __ https://github.com/lelit/pglast/pull/14\n\n- Expose the package version as pglast.__version__ (`issue #12`__)\n\n  __ https://github.com/lelit/pglast/issues/12\n\n\n1.2 (2019-02-13)\n~~~~~~~~~~~~~~~~\n\n- Implement new `split()` function (see `PR #10`__)\n\n  __ https://github.com/lelit/pglast/pull/10\n\n- Implement ``BooleanTest`` printer (`issue #11`__)\n\n  __ https://github.com/lelit/pglast/issues/11\n\n\n1.1 (2018-07-20)\n~~~~~~~~~~~~~~~~\n\n- No visible changes, but now PyPI carries binary wheels for Python 3.7.\n\n\n1.0 (2018-06-16)\n~~~~~~~~~~~~~~~~\n\n.. important:: The name of the package has been changed from ``pg_query`` to ``pglast``, to\n               satisfy the request made by the author of ``libpg_query`` in `issue #9`__.\n\n               This affects both the main repository on GitHub, that from now on is\n               ``https://github.com/lelit/pglast``, and the ReadTheDocs project that hosts the\n               documentation, ``http://pglast.readthedocs.io/en/latest/``.\n\n               I'm sorry for any inconvenience this may cause.\n\n__ https://github.com/lelit/pglast/issues/9\n\n\n0.28 (2018-06-06)\n~~~~~~~~~~~~~~~~~\n\n- Update libpg_query to 10-1.0.2\n\n- Support the '?'-style parameter placeholder variant allowed by libpg_query (details__)\n\n__ https://github.com/lfittl/libpg_query/issues/45\n\n\n0.27 (2018-04-15)\n~~~~~~~~~~~~~~~~~\n\n- Prettier JOINs representation, aligning them with the starting relation\n\n\n0.26 (2018-04-03)\n~~~~~~~~~~~~~~~~~\n\n- Fix cosmetic issue with ANY() and ALL()\n\n\n0.25 (2018-03-31)\n~~~~~~~~~~~~~~~~~\n\n- Fix issue in the safety belt check performed by ``pgpp`` (`issue #4`__)\n\n__ https://github.com/lelit/pglast/issues/4\n\n\n0.24 (2018-03-02)\n~~~~~~~~~~~~~~~~~\n\n- Implement ``Null`` printer\n\n\n0.23 (2017-12-28)\n~~~~~~~~~~~~~~~~~\n\n- Implement some other DDL statements printers\n\n- New alternative style to print *comma-separated-values* lists, activated by a new\n  ``--comma-at-eoln`` option on ``pgpp``\n\n\n0.22 (2017-12-03)\n~~~~~~~~~~~~~~~~~\n\n- Implement ``TransactionStmt`` and almost all ``DROP xxx`` printers\n\n\n0.21 (2017-11-22)\n~~~~~~~~~~~~~~~~~\n\n- Implement ``NamedArgExpr`` printer\n\n- New alternative printers for a set of *special functions*, activated by a new\n  ``--special-functions`` option on ``pgpp`` (`issue #2`__)\n\n__ https://github.com/lelit/pglast/issues/2\n\n\n0.20 (2017-11-21)\n~~~~~~~~~~~~~~~~~\n\n- Handle special de-reference (``A_Indirection``) cases\n\n\n0.19 (2017-11-16)\n~~~~~~~~~~~~~~~~~\n\n- Fix serialization of column labels containing double quotes\n\n- Fix corner issues surfaced implementing some more DDL statement printers\n\n\n0.18 (2017-11-14)\n~~~~~~~~~~~~~~~~~\n\n- Fix endless loop due to sloppy conversion of command line option\n\n- Install the command line tool as ``pgpp``\n\n\n0.17 (2017-11-12)\n~~~~~~~~~~~~~~~~~\n\n- Rename printers.sql to printers.dml (**backward incompatibility**)\n\n- List printer functions in the documentation, referencing the definition of related node type\n\n- Fix inconsistent spacing in JOIN condition inside a nested expression\n\n- Fix representation of unbound arrays\n\n- Fix representation of ``interval`` data type\n\n- Initial support for DDL statements\n\n- Fix representation of string literals containing single quotes\n\n\n0.16 (2017-10-31)\n~~~~~~~~~~~~~~~~~\n\n- Update libpg_query to 10-1.0.0\n\n\n0.15 (2017-10-12)\n~~~~~~~~~~~~~~~~~\n\n- Fix indentation of boolean expressions in SELECT's targets (`issue #3`__)\n\n__ https://github.com/lelit/pglast/issues/3\n\n\n0.14 (2017-10-09)\n~~~~~~~~~~~~~~~~~\n\n- Update to latest libpg_query's 10-latest branch, targeting PostgreSQL 10.0 final\n\n\n0.13 (2017-09-17)\n~~~~~~~~~~~~~~~~~\n\n- Fix representation of subselects requiring surrounding parens\n\n\n0.12 (2017-08-22)\n~~~~~~~~~~~~~~~~~\n\n- New option ``--version`` on the command line tool\n\n- Better enums documentation\n\n- Release the GIL while calling libpg_query functions\n\n\n0.11 (2017-08-11)\n~~~~~~~~~~~~~~~~~\n\n- Nicer indentation for JOINs, making OUTER JOINs stand out\n\n- Minor tweaks to lists rendering, with less spurious whitespaces\n\n- New option ``--no-location`` on the command line tool\n\n\n0.10 (2017-08-11)\n~~~~~~~~~~~~~~~~~\n\n- Support Python 3.4 and Python 3.5 as well as Python 3.6\n\n\n0.9 (2017-08-10)\n~~~~~~~~~~~~~~~~\n\n- Fix spacing before the $ character\n\n- Handle type modifiers\n\n- New option ``--plpgsql`` on the command line tool, just for fun\n\n\n0.8 (2017-08-10)\n~~~~~~~~~~~~~~~~\n\n- Add enums subpackages to the documentation with references to their related headers\n\n- New ``compact_lists_margin`` option to produce a more compact representation when possible\n  (see `issue #1`__)\n\n__ https://github.com/lelit/pglast/issues/1\n\n\n0.7 (2017-08-10)\n~~~~~~~~~~~~~~~~\n\n- Fix sdist including the Sphinx documentation\n\n\n0.6 (2017-08-10)\n~~~~~~~~~~~~~~~~\n\n- New option ``--parse-tree`` on the command line tool to show just the parse tree\n\n- Sphinx documentation, available online\n\n\n0.5 (2017-08-09)\n~~~~~~~~~~~~~~~~\n\n- Handle some more cases when a name must be double-quoted\n\n- Complete the serialization of the WindowDef node, handling its frame options\n\n\n0.4 (2017-08-09)\n~~~~~~~~~~~~~~~~\n\n- Expose the actual PostgreSQL version the underlying libpg_query libray is built on thru a new\n  ``get_postgresql_version()`` function\n\n- New option `safety_belt` for the ``prettify()`` function, to protect the innocents\n\n- Handle serialization of ``CoalesceExpr`` and ``MinMaxExpr``\n\n\n0.3 (2017-08-07)\n~~~~~~~~~~~~~~~~\n\n- Handle serialization of ``ParamRef`` nodes\n\n- Expose a ``prettify()`` helper function\n\n\n0.2 (2017-08-07)\n~~~~~~~~~~~~~~~~\n\n- Test coverage at 99%\n\n- First attempt at automatic wheel upload to PyPI, let's see...\n\n\n0.1 (2017-08-07)\n~~~~~~~~~~~~~~~~\n\n- First release (\"Hi daddy!\", as my soul would tag it)\n",
    "bugtrack_url": null,
    "license": "GPLv3+",
    "summary": "PostgreSQL Languages AST and statements prettifier",
    "version": "7.3",
    "project_urls": {
        "Homepage": "https://github.com/lelit/pglast"
    },
    "split_keywords": [
        "postgresql",
        "parser",
        "sql",
        "prettifier"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e4efd00ae95b2ec5b1034c8e5a41d8a2d1db57f654dc8fa98072e46916af47ad",
                "md5": "49057d15bf3ddd40e20f7990e2b76cd3",
                "sha256": "767ccee2c51fa6b1e6cc0749d1f63f9bc8f182258c6611f2a724a21f590c3e79"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "49057d15bf3ddd40e20f7990e2b76cd3",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 1144475,
            "upload_time": "2025-02-09T11:26:30",
            "upload_time_iso_8601": "2025-02-09T11:26:30.770704Z",
            "url": "https://files.pythonhosted.org/packages/e4/ef/d00ae95b2ec5b1034c8e5a41d8a2d1db57f654dc8fa98072e46916af47ad/pglast-7.3-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9020baa809ac4354879970eb32223718e3fccf6c79d65b5de2b05609e4594663",
                "md5": "581e38dd81599fb294fa00b82c7ee1f7",
                "sha256": "605a2c7094c4e0f9cddfaef51f4c0b6ac5fca32abfee62b844c206ffdfc094ff"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "581e38dd81599fb294fa00b82c7ee1f7",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 1080059,
            "upload_time": "2025-02-09T11:26:33",
            "upload_time_iso_8601": "2025-02-09T11:26:33.442333Z",
            "url": "https://files.pythonhosted.org/packages/90/20/baa809ac4354879970eb32223718e3fccf6c79d65b5de2b05609e4594663/pglast-7.3-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b616c09a5730d1d619be7e9260e3408d302c65bc0d751e062b1536a8b7da8b74",
                "md5": "c448a258db63e93351badcde09aa2e25",
                "sha256": "6c52cff78aeb212ad0b7579249b00cea4898ccc66e2e01c283e946c16cc37c88"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "c448a258db63e93351badcde09aa2e25",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 5434148,
            "upload_time": "2025-02-09T11:26:36",
            "upload_time_iso_8601": "2025-02-09T11:26:36.787354Z",
            "url": "https://files.pythonhosted.org/packages/b6/16/c09a5730d1d619be7e9260e3408d302c65bc0d751e062b1536a8b7da8b74/pglast-7.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "909d82a472aaedb696bb43bca726a18e09680bbcc5f1e1a6219066678a19906d",
                "md5": "f89913dbddbde8a5372c14aee45001f7",
                "sha256": "d2f477a411bfd51187dd96d38b2ae288b1839d937bb8e762156cee0103a4b9aa"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f89913dbddbde8a5372c14aee45001f7",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 5481759,
            "upload_time": "2025-02-09T11:26:39",
            "upload_time_iso_8601": "2025-02-09T11:26:39.752705Z",
            "url": "https://files.pythonhosted.org/packages/90/9d/82a472aaedb696bb43bca726a18e09680bbcc5f1e1a6219066678a19906d/pglast-7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bbb2ecb223ba8d932eaff6c648f0ca9e0eb948546906c406bb30fb6a3e9ca916",
                "md5": "e633b1d816669fa0138f4df45152faf7",
                "sha256": "5467b2a0d62d32ada899fedded4eaff6676039b6fb4fbc2b97c0bae34b5effdf"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "e633b1d816669fa0138f4df45152faf7",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 5317477,
            "upload_time": "2025-02-09T11:26:42",
            "upload_time_iso_8601": "2025-02-09T11:26:42.961091Z",
            "url": "https://files.pythonhosted.org/packages/bb/b2/ecb223ba8d932eaff6c648f0ca9e0eb948546906c406bb30fb6a3e9ca916/pglast-7.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "43dc4896d7a2ca722040728d2fcf7fc69351c4b655b8686ad1fd5aca646180d4",
                "md5": "a46c8e20274570b723adb7ba9d7874be",
                "sha256": "4a83b63280c8deafa0d19470fd9b3b0e340322a05eb570eb02e4eae17ee6c3da"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp310-cp310-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "a46c8e20274570b723adb7ba9d7874be",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 5231442,
            "upload_time": "2025-02-09T11:26:46",
            "upload_time_iso_8601": "2025-02-09T11:26:46.289897Z",
            "url": "https://files.pythonhosted.org/packages/43/dc/4896d7a2ca722040728d2fcf7fc69351c4b655b8686ad1fd5aca646180d4/pglast-7.3-cp310-cp310-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d03a34465160074cb749d118fe3946524e7915aad2b29f6f402ab8c63cd3f161",
                "md5": "ac4b82d0091d52ff7938dbfad3b67364",
                "sha256": "1fed4dc334c7faa2097d788885060188ea613553cb1fe51e285153cd8b28d227"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp310-cp310-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "ac4b82d0091d52ff7938dbfad3b67364",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 5245747,
            "upload_time": "2025-02-09T11:26:49",
            "upload_time_iso_8601": "2025-02-09T11:26:49.760387Z",
            "url": "https://files.pythonhosted.org/packages/d0/3a/34465160074cb749d118fe3946524e7915aad2b29f6f402ab8c63cd3f161/pglast-7.3-cp310-cp310-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c509a4eed3c898391f2533560a6b310b5d97773b98951fb7a75f275958941ef8",
                "md5": "24a0d41b18e2e2f8d3d60ecc102d9525",
                "sha256": "9325b0d0e64ccbd2c828318b7e0addaadc09a3d6ed4809438230269462832d12"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp310-cp310-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "24a0d41b18e2e2f8d3d60ecc102d9525",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 5371029,
            "upload_time": "2025-02-09T11:26:52",
            "upload_time_iso_8601": "2025-02-09T11:26:52.489890Z",
            "url": "https://files.pythonhosted.org/packages/c5/09/a4eed3c898391f2533560a6b310b5d97773b98951fb7a75f275958941ef8/pglast-7.3-cp310-cp310-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "99ca02af0e623ff41a69bf5d906e0bec0537b6a56f9cb2e2fe45457073b9dddd",
                "md5": "865872e49df3aa9e13b303420808b87e",
                "sha256": "a5bab80dacba84ee9f3bbd92faa854193fccd11f56ece2465208540b821499cb"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "865872e49df3aa9e13b303420808b87e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 1016636,
            "upload_time": "2025-02-09T11:26:55",
            "upload_time_iso_8601": "2025-02-09T11:26:55.453314Z",
            "url": "https://files.pythonhosted.org/packages/99/ca/02af0e623ff41a69bf5d906e0bec0537b6a56f9cb2e2fe45457073b9dddd/pglast-7.3-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b499da7796acd84300ca554ea6ed8df3e18760726b575fba7df1a5fe0f271051",
                "md5": "532743d23e8d5bb461ac7b2b7b688cce",
                "sha256": "4cf0548d81052a748830c9fd8d9aa79c757db3f2787c80ee42d920fc84c4c92c"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "532743d23e8d5bb461ac7b2b7b688cce",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 1078239,
            "upload_time": "2025-02-09T11:26:58",
            "upload_time_iso_8601": "2025-02-09T11:26:58.808773Z",
            "url": "https://files.pythonhosted.org/packages/b4/99/da7796acd84300ca554ea6ed8df3e18760726b575fba7df1a5fe0f271051/pglast-7.3-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d0103f0a8df6f1140d51d466b3ec0fa390efb87e041d979b668a291df0363868",
                "md5": "2ba578719bc8c163dc0c11a3cf62186d",
                "sha256": "4821b94af67aa28fd3a3387441fe839a751213d70a9fec1a95482385d0eeaf02"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2ba578719bc8c163dc0c11a3cf62186d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 1144945,
            "upload_time": "2025-02-09T11:27:01",
            "upload_time_iso_8601": "2025-02-09T11:27:01.962930Z",
            "url": "https://files.pythonhosted.org/packages/d0/10/3f0a8df6f1140d51d466b3ec0fa390efb87e041d979b668a291df0363868/pglast-7.3-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "301632d7791f0807c2a02c5856e8f6d3d37709b7beebcc661a99e43df3dffdf7",
                "md5": "8aaa86600b515958e91e598b75869691",
                "sha256": "937e27c41506dec154933cc10714439c04f3834820d61ff3d85692a224cffba7"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "8aaa86600b515958e91e598b75869691",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 1080284,
            "upload_time": "2025-02-09T11:27:04",
            "upload_time_iso_8601": "2025-02-09T11:27:04.831188Z",
            "url": "https://files.pythonhosted.org/packages/30/16/32d7791f0807c2a02c5856e8f6d3d37709b7beebcc661a99e43df3dffdf7/pglast-7.3-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "33e647a4b208bec56bf2258172b8206678d90ac8de6248286d6aa1055d0d229b",
                "md5": "d4f13cef15438da351963d5a86546fed",
                "sha256": "452b206123a03df79b0e5b5146d0aedd65a0ce88d5587756f78d5a35ef6dfdf3"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "d4f13cef15438da351963d5a86546fed",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 5500668,
            "upload_time": "2025-02-09T11:27:07",
            "upload_time_iso_8601": "2025-02-09T11:27:07.805135Z",
            "url": "https://files.pythonhosted.org/packages/33/e6/47a4b208bec56bf2258172b8206678d90ac8de6248286d6aa1055d0d229b/pglast-7.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "10d861c699b08d8c653b69ce8a8260323d1f1107fa77ec6005bc2e2a5f09b465",
                "md5": "d6f369f69b5a5225e3e4dde3fc1b61d8",
                "sha256": "2f17e9b271e53ef79ace3559460880d91bf2642101d9c81c631028e55aac911c"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d6f369f69b5a5225e3e4dde3fc1b61d8",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 5541771,
            "upload_time": "2025-02-09T11:27:10",
            "upload_time_iso_8601": "2025-02-09T11:27:10.317415Z",
            "url": "https://files.pythonhosted.org/packages/10/d8/61c699b08d8c653b69ce8a8260323d1f1107fa77ec6005bc2e2a5f09b465/pglast-7.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c5e28081ffcf08565b66b15e9ee384af108437f854f9ce2fcd9d16fd8618c0fe",
                "md5": "bdc2fe39c1f67aa577edf1f2247f0215",
                "sha256": "6ca9afc0969d9ae0740937a589a5c3eeea6249190ec5c4efbbe118c05fb1b78d"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "bdc2fe39c1f67aa577edf1f2247f0215",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 5393732,
            "upload_time": "2025-02-09T11:27:16",
            "upload_time_iso_8601": "2025-02-09T11:27:16.356368Z",
            "url": "https://files.pythonhosted.org/packages/c5/e2/8081ffcf08565b66b15e9ee384af108437f854f9ce2fcd9d16fd8618c0fe/pglast-7.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f66b4222ee256998ff47862b84d64ea6430e2da52920a6943db591fffc12e71e",
                "md5": "4fa7aac82418b0086bf8c0303b62c986",
                "sha256": "23234dc902e936f158e506c76b6994f245b687eb7e988c71bc45e14500aa885e"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp311-cp311-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "4fa7aac82418b0086bf8c0303b62c986",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 5289870,
            "upload_time": "2025-02-09T11:27:19",
            "upload_time_iso_8601": "2025-02-09T11:27:19.550644Z",
            "url": "https://files.pythonhosted.org/packages/f6/6b/4222ee256998ff47862b84d64ea6430e2da52920a6943db591fffc12e71e/pglast-7.3-cp311-cp311-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e61bbd09f66ca4559585c6b4265ba57f3bf81554ee428ea1865aa359c86042e3",
                "md5": "c6f7a547645932c1451fc093d5538687",
                "sha256": "a610d84c1908b5dce84018c90572c6047a6d71f0a97de53015694db99a757297"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp311-cp311-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "c6f7a547645932c1451fc093d5538687",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 5276746,
            "upload_time": "2025-02-09T11:27:22",
            "upload_time_iso_8601": "2025-02-09T11:27:22.881522Z",
            "url": "https://files.pythonhosted.org/packages/e6/1b/bd09f66ca4559585c6b4265ba57f3bf81554ee428ea1865aa359c86042e3/pglast-7.3-cp311-cp311-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "70e5510b8ab118c52b5b9d01776c1e13a018e46b8f8275741163651bed2b0de7",
                "md5": "4fd9872566cda48eb2f5235bde2c0459",
                "sha256": "567537917c73cc118926dc8e87780dcb9524e0262ce3b113463bbe2765daf63a"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp311-cp311-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4fd9872566cda48eb2f5235bde2c0459",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 5415204,
            "upload_time": "2025-02-09T11:27:27",
            "upload_time_iso_8601": "2025-02-09T11:27:27.560636Z",
            "url": "https://files.pythonhosted.org/packages/70/e5/510b8ab118c52b5b9d01776c1e13a018e46b8f8275741163651bed2b0de7/pglast-7.3-cp311-cp311-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "54a3fd0e5e13d9b3b9f8c0e6134b675a6b1828db1be36f819fc498058338bbe3",
                "md5": "afaf7ecc70a184f09b15c7fbfd76944a",
                "sha256": "55b1ba1ce4603278cebec3eb9ab7fc4b6af778f21a522ca2967d563006ec7f4a"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "afaf7ecc70a184f09b15c7fbfd76944a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 1016753,
            "upload_time": "2025-02-09T11:27:29",
            "upload_time_iso_8601": "2025-02-09T11:27:29.666713Z",
            "url": "https://files.pythonhosted.org/packages/54/a3/fd0e5e13d9b3b9f8c0e6134b675a6b1828db1be36f819fc498058338bbe3/pglast-7.3-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "65c06fc7c4d221a179115e1ba24ed9bd0c2bf9c0659a1c46f9cf51b736288bf3",
                "md5": "87518d8dc5e783a55166e2315220a84a",
                "sha256": "f26b5fe44a3edee61ebbf3426cc0d4087ef43ef5740129210f469de705fe1cd5"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "87518d8dc5e783a55166e2315220a84a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 1078811,
            "upload_time": "2025-02-09T11:27:32",
            "upload_time_iso_8601": "2025-02-09T11:27:32.630847Z",
            "url": "https://files.pythonhosted.org/packages/65/c0/6fc7c4d221a179115e1ba24ed9bd0c2bf9c0659a1c46f9cf51b736288bf3/pglast-7.3-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2b793a8b5a10750827c702491a7d6a77f9c73b78cef1412d2963ac6d13a3f772",
                "md5": "0cc8208976cb8b16d6fecd4d2eed754f",
                "sha256": "f136af80e9ba5283aaf1ad1d2ca21fdef93e797adcdaab8b858af8f3b01ced33"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp312-cp312-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0cc8208976cb8b16d6fecd4d2eed754f",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 1146687,
            "upload_time": "2025-02-09T11:27:34",
            "upload_time_iso_8601": "2025-02-09T11:27:34.669821Z",
            "url": "https://files.pythonhosted.org/packages/2b/79/3a8b5a10750827c702491a7d6a77f9c73b78cef1412d2963ac6d13a3f772/pglast-7.3-cp312-cp312-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "95618f87157a29084efc200f9fdc9ecb878736e8a18a6832e861edca9a5a6d72",
                "md5": "aab3fb7aceb75057886949d3fd384713",
                "sha256": "7d39520a0be2ebeb5d3f5915b6391551a4f5db0500d58630bb7684821b474110"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "aab3fb7aceb75057886949d3fd384713",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 1083282,
            "upload_time": "2025-02-09T11:27:37",
            "upload_time_iso_8601": "2025-02-09T11:27:37.230194Z",
            "url": "https://files.pythonhosted.org/packages/95/61/8f87157a29084efc200f9fdc9ecb878736e8a18a6832e861edca9a5a6d72/pglast-7.3-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cef95f6ddf3468619018fec076403a68e581cf26b8f8513a60c2d1bd86b918c1",
                "md5": "9c444d5a4a01c6881671e66009a33b00",
                "sha256": "e949152aae3bef5187eede9481b7c37531782d91d88fdc6cf464ca657ecdd8e7"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "9c444d5a4a01c6881671e66009a33b00",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 5543425,
            "upload_time": "2025-02-09T11:27:40",
            "upload_time_iso_8601": "2025-02-09T11:27:40.107729Z",
            "url": "https://files.pythonhosted.org/packages/ce/f9/5f6ddf3468619018fec076403a68e581cf26b8f8513a60c2d1bd86b918c1/pglast-7.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7a637d7ed62a766195b55431aae5a8bbedcbdb590d1d8482922603be11428df3",
                "md5": "57ab1e5d4134e6a7d3c74190a0c1cef2",
                "sha256": "a7d8a177bc3e4635add77cc8362b7396c4b87582fa7a1d927925598a078f5fbb"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "57ab1e5d4134e6a7d3c74190a0c1cef2",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 5642429,
            "upload_time": "2025-02-09T11:27:43",
            "upload_time_iso_8601": "2025-02-09T11:27:43.168556Z",
            "url": "https://files.pythonhosted.org/packages/7a/63/7d7ed62a766195b55431aae5a8bbedcbdb590d1d8482922603be11428df3/pglast-7.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ae69b78503626f041a823453128a3cd99048fcdc736eb6742247c70fecc68f28",
                "md5": "fc7c0c17708b1a24e9c37feb38bade86",
                "sha256": "96d0d409bf538eaaf6cd34284f22e19ede9b238560a48ff09586fae19a7e4221"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "fc7c0c17708b1a24e9c37feb38bade86",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 5413273,
            "upload_time": "2025-02-09T11:27:46",
            "upload_time_iso_8601": "2025-02-09T11:27:46.549316Z",
            "url": "https://files.pythonhosted.org/packages/ae/69/b78503626f041a823453128a3cd99048fcdc736eb6742247c70fecc68f28/pglast-7.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "293482978dd1ea1d7699e3755787ffe8f0948aac5fc39ee66986cba26a63f8f2",
                "md5": "9ff57ef731b8f4a8b86811b9f289dae3",
                "sha256": "514e41f730cc5d8acdbaee52dae7d52364df19a0749ad4a43124c4866f46b970"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp312-cp312-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "9ff57ef731b8f4a8b86811b9f289dae3",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 5297931,
            "upload_time": "2025-02-09T11:27:49",
            "upload_time_iso_8601": "2025-02-09T11:27:49.412036Z",
            "url": "https://files.pythonhosted.org/packages/29/34/82978dd1ea1d7699e3755787ffe8f0948aac5fc39ee66986cba26a63f8f2/pglast-7.3-cp312-cp312-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9f8e0181545bc626a53bdf86589be2d1a7a2e3dff3846ead76058098de847a6e",
                "md5": "576a8cbb2a11700212612ceae5f69ba8",
                "sha256": "3dc527a257b71f44d41bf0bb645e72a1fa01985406879a3361c4ccd9e687dde1"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp312-cp312-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "576a8cbb2a11700212612ceae5f69ba8",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 5253744,
            "upload_time": "2025-02-09T11:27:52",
            "upload_time_iso_8601": "2025-02-09T11:27:52.288174Z",
            "url": "https://files.pythonhosted.org/packages/9f/8e/0181545bc626a53bdf86589be2d1a7a2e3dff3846ead76058098de847a6e/pglast-7.3-cp312-cp312-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "299092e0f0f4426e2a5d27f3c3befd900011dafc1cf0b306cfe71a9e8b150243",
                "md5": "d38680f02b7e395e8cee98790222fe32",
                "sha256": "ab7e24832f756ec26a3601402dcfa92fcb8655520b91b6f4a791c88ff673b9c7"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d38680f02b7e395e8cee98790222fe32",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 5432941,
            "upload_time": "2025-02-09T11:27:55",
            "upload_time_iso_8601": "2025-02-09T11:27:55.407131Z",
            "url": "https://files.pythonhosted.org/packages/29/90/92e0f0f4426e2a5d27f3c3befd900011dafc1cf0b306cfe71a9e8b150243/pglast-7.3-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3ee828fe489ce8b8a22feab716c091136a6ba2e03a35657326213d5270c27b29",
                "md5": "becc2d88af4f1d620aad7c8f057167bf",
                "sha256": "bedbc03dc0801d60c14e9286ba876f14aa66ad505aa9c095d088fcdb6b09ec58"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "becc2d88af4f1d620aad7c8f057167bf",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 1010573,
            "upload_time": "2025-02-09T11:27:58",
            "upload_time_iso_8601": "2025-02-09T11:27:58.630693Z",
            "url": "https://files.pythonhosted.org/packages/3e/e8/28fe489ce8b8a22feab716c091136a6ba2e03a35657326213d5270c27b29/pglast-7.3-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "84418c978f22b792ecb5351ea3c985c3245ac628724a86d3969a9e52f966a9db",
                "md5": "df68d2d08e91d41f8442deff1f300ff5",
                "sha256": "fc97da805992ce04f6020881bede2c8c832912a6a804a2b178a96e5bb27b56b5"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "df68d2d08e91d41f8442deff1f300ff5",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 1055119,
            "upload_time": "2025-02-09T11:28:02",
            "upload_time_iso_8601": "2025-02-09T11:28:02.257628Z",
            "url": "https://files.pythonhosted.org/packages/84/41/8c978f22b792ecb5351ea3c985c3245ac628724a86d3969a9e52f966a9db/pglast-7.3-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "21534f60b7d0a6766bd61c3a81e0d1feb2eb6fc5a4f01d01baba16f60c72f0ed",
                "md5": "22ba39a23f2f10ed8457b92731c81813",
                "sha256": "058bafadb31816ee7e86dd8e00b8ed4ea03844fb94a2beae6f8f873322958afc"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp313-cp313-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "22ba39a23f2f10ed8457b92731c81813",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 1141206,
            "upload_time": "2025-02-09T11:28:04",
            "upload_time_iso_8601": "2025-02-09T11:28:04.329403Z",
            "url": "https://files.pythonhosted.org/packages/21/53/4f60b7d0a6766bd61c3a81e0d1feb2eb6fc5a4f01d01baba16f60c72f0ed/pglast-7.3-cp313-cp313-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8229a1f34547bbcb8d558882e4e7257ad66ec2deed1561bc3b7cb97537da6665",
                "md5": "fbf8e44130506c0ae6064e3bac5541f4",
                "sha256": "7a9613d9eaf5f8a7a20a520ca9d08c0916ab5dee5481915d9e0a14d4371099ac"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "fbf8e44130506c0ae6064e3bac5541f4",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 1080096,
            "upload_time": "2025-02-09T11:28:07",
            "upload_time_iso_8601": "2025-02-09T11:28:07.046604Z",
            "url": "https://files.pythonhosted.org/packages/82/29/a1f34547bbcb8d558882e4e7257ad66ec2deed1561bc3b7cb97537da6665/pglast-7.3-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b684cf8d4ce80b167487ad51e310bbc63efa889437eabfe3706d80ac1ec10503",
                "md5": "4fbd1439f8e7cdb6c8231799faac85c5",
                "sha256": "c29fc079b7bd78760d663814c45df9360529e12b22644e1a2f5fb94b3e07ee79"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "4fbd1439f8e7cdb6c8231799faac85c5",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 5547457,
            "upload_time": "2025-02-09T11:28:09",
            "upload_time_iso_8601": "2025-02-09T11:28:09.863952Z",
            "url": "https://files.pythonhosted.org/packages/b6/84/cf8d4ce80b167487ad51e310bbc63efa889437eabfe3706d80ac1ec10503/pglast-7.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7ed6bbdbb48e1669508b03c03cf6438e99b9d52a89b956c2e30b5f5798c31b13",
                "md5": "e3bd89f85d8e1403a07ee95d6f23ebcf",
                "sha256": "ab8735d0055c241f07366949d0bfc54e0b0d26981681f9e0b9f83ce7bc117d25"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e3bd89f85d8e1403a07ee95d6f23ebcf",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 5642884,
            "upload_time": "2025-02-09T11:28:12",
            "upload_time_iso_8601": "2025-02-09T11:28:12.149992Z",
            "url": "https://files.pythonhosted.org/packages/7e/d6/bbdbb48e1669508b03c03cf6438e99b9d52a89b956c2e30b5f5798c31b13/pglast-7.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "eaace86bd9dade72c610b1bc47fe9eb44638c510701b440bf95574c679e30d64",
                "md5": "558a1f297d3be20bf6caaf01788467d0",
                "sha256": "48c634096a76bd99d3897f280cbef47ebe76cefcc911b2d698a633e55f17f440"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "558a1f297d3be20bf6caaf01788467d0",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 5415160,
            "upload_time": "2025-02-09T11:28:15",
            "upload_time_iso_8601": "2025-02-09T11:28:15.501625Z",
            "url": "https://files.pythonhosted.org/packages/ea/ac/e86bd9dade72c610b1bc47fe9eb44638c510701b440bf95574c679e30d64/pglast-7.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "305d7a50a29860e9ea17a1e2f477f8f9628736fb6e30fd925a2c8a1d14d0059d",
                "md5": "e5a70829d41505770fb45a0c902c24ba",
                "sha256": "41eb3583e0fa64c8bc0949ad61bbf146ea416796ff0aa40adb6c24e21b6a1bcd"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp313-cp313-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "e5a70829d41505770fb45a0c902c24ba",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 5300833,
            "upload_time": "2025-02-09T11:28:18",
            "upload_time_iso_8601": "2025-02-09T11:28:18.107421Z",
            "url": "https://files.pythonhosted.org/packages/30/5d/7a50a29860e9ea17a1e2f477f8f9628736fb6e30fd925a2c8a1d14d0059d/pglast-7.3-cp313-cp313-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "820dbf024515489d484cec50764e6deeadfc6193fe58907afc308f9a7246a3e1",
                "md5": "db547e482d243a19d5bc08f5b5f35d3b",
                "sha256": "8e377c7a88b0231eef6ad65b0b2feef324942af34c314a53c9a9727d14c79216"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp313-cp313-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "db547e482d243a19d5bc08f5b5f35d3b",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 5258070,
            "upload_time": "2025-02-09T11:28:20",
            "upload_time_iso_8601": "2025-02-09T11:28:20.362727Z",
            "url": "https://files.pythonhosted.org/packages/82/0d/bf024515489d484cec50764e6deeadfc6193fe58907afc308f9a7246a3e1/pglast-7.3-cp313-cp313-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "03a72be696fdffe37987ea86cef414c0c839676da2d769d55237e02c2054663c",
                "md5": "a84e94148d340389bed5de2dbaee3bc6",
                "sha256": "8c683c3dfcd208a9716d91352e51382e3b0a7746286aea38c9f7802e75fa49f6"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp313-cp313-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a84e94148d340389bed5de2dbaee3bc6",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 5441131,
            "upload_time": "2025-02-09T11:28:23",
            "upload_time_iso_8601": "2025-02-09T11:28:23.556976Z",
            "url": "https://files.pythonhosted.org/packages/03/a7/2be696fdffe37987ea86cef414c0c839676da2d769d55237e02c2054663c/pglast-7.3-cp313-cp313-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6cb5fc480ef71e133d432abed9e60263b97ed8142884dbaf13b83456fae24dd3",
                "md5": "7a19fd6deb30fde3f7df1bce784b04b0",
                "sha256": "154d144829448d2c99bcaffb0b87e4ef9d9df7b3212b3476187191145348f3a1"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp313-cp313-win32.whl",
            "has_sig": false,
            "md5_digest": "7a19fd6deb30fde3f7df1bce784b04b0",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 1009630,
            "upload_time": "2025-02-09T11:28:26",
            "upload_time_iso_8601": "2025-02-09T11:28:26.834492Z",
            "url": "https://files.pythonhosted.org/packages/6c/b5/fc480ef71e133d432abed9e60263b97ed8142884dbaf13b83456fae24dd3/pglast-7.3-cp313-cp313-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "63a0b7089a0b9fcdfea2c5b12b0c3bbfe01288ce2115a76e7d73779470ec2aa1",
                "md5": "e24cc998af5fb45d477dff965bd77ba4",
                "sha256": "9d3f2286b8c47e76e6a6104ec2104623c175bd046aa53775822e0b8c5a9bc5e0"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "e24cc998af5fb45d477dff965bd77ba4",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 1050662,
            "upload_time": "2025-02-09T11:28:29",
            "upload_time_iso_8601": "2025-02-09T11:28:29.441079Z",
            "url": "https://files.pythonhosted.org/packages/63/a0/b7089a0b9fcdfea2c5b12b0c3bbfe01288ce2115a76e7d73779470ec2aa1/pglast-7.3-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "219549ec628bc29c9617eadc05c5a2a1db1954d1b96c423859ef89a307129699",
                "md5": "87d3d1248ac14720912d84a108c0111a",
                "sha256": "08e2c4d4dd4a4c642eb66bf320f6ca1766916fc7db8f2b7bfd3b7f237d030849"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "87d3d1248ac14720912d84a108c0111a",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 1144933,
            "upload_time": "2025-02-09T11:28:31",
            "upload_time_iso_8601": "2025-02-09T11:28:31.975043Z",
            "url": "https://files.pythonhosted.org/packages/21/95/49ec628bc29c9617eadc05c5a2a1db1954d1b96c423859ef89a307129699/pglast-7.3-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2247ad07c6f84e37a3fc52628e47204e1cd839714be22757670700883a6282b1",
                "md5": "e1892f6fd4774a62e1cbf43e62503abc",
                "sha256": "00bb378a117ce0845548e0e65088af6f3264a3f065053d912ec5c560aec8801e"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "e1892f6fd4774a62e1cbf43e62503abc",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 1080154,
            "upload_time": "2025-02-09T11:28:34",
            "upload_time_iso_8601": "2025-02-09T11:28:34.606449Z",
            "url": "https://files.pythonhosted.org/packages/22/47/ad07c6f84e37a3fc52628e47204e1cd839714be22757670700883a6282b1/pglast-7.3-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "29a1b17b76dd550e8b42ba54f11d5a78438eb61c4470de2b7f82951a5d673090",
                "md5": "62ba1f15d25e936da7a0852d48669df1",
                "sha256": "f736c3400a6d3ab09f7ec5921466837219f3ea530857e57c47b0b13089717218"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "62ba1f15d25e936da7a0852d48669df1",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 5436622,
            "upload_time": "2025-02-09T11:28:37",
            "upload_time_iso_8601": "2025-02-09T11:28:37.347274Z",
            "url": "https://files.pythonhosted.org/packages/29/a1/b17b76dd550e8b42ba54f11d5a78438eb61c4470de2b7f82951a5d673090/pglast-7.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "482ed4764377238194e4f1df95c3cd7a0a9cbec7116346f7a2fcc2bce603ca19",
                "md5": "d6d0e9e96fb0087a391bab98569ad320",
                "sha256": "abf7683e4f156cf8e721863d96314e75d9b59adb98e2acf0cca563b660975e8d"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d6d0e9e96fb0087a391bab98569ad320",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 5484695,
            "upload_time": "2025-02-09T11:28:40",
            "upload_time_iso_8601": "2025-02-09T11:28:40.305277Z",
            "url": "https://files.pythonhosted.org/packages/48/2e/d4764377238194e4f1df95c3cd7a0a9cbec7116346f7a2fcc2bce603ca19/pglast-7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "96ac49fe0d31dcf5265e33f4cacb613aa188f716c94c185fd2af2f79b383dd6d",
                "md5": "f036a1219ac9eb9adec10a6f3466b720",
                "sha256": "0629720afea08311c674f332d8eeaba5a8b9a5e7cb484eaa60f074f194fc3649"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "f036a1219ac9eb9adec10a6f3466b720",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 5321897,
            "upload_time": "2025-02-09T11:28:42",
            "upload_time_iso_8601": "2025-02-09T11:28:42.424047Z",
            "url": "https://files.pythonhosted.org/packages/96/ac/49fe0d31dcf5265e33f4cacb613aa188f716c94c185fd2af2f79b383dd6d/pglast-7.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6233ae41a191ae3618853edd8057999b46f3602c570b24332da171f3e49388a7",
                "md5": "06eaa66cb8a59ffb3086b7ba47c7f380",
                "sha256": "f419096549017f38084250578aec9e3540386cb0f92d8d3f07ada9efebf7aa80"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp39-cp39-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "06eaa66cb8a59ffb3086b7ba47c7f380",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 5232894,
            "upload_time": "2025-02-09T11:28:45",
            "upload_time_iso_8601": "2025-02-09T11:28:45.959986Z",
            "url": "https://files.pythonhosted.org/packages/62/33/ae41a191ae3618853edd8057999b46f3602c570b24332da171f3e49388a7/pglast-7.3-cp39-cp39-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "afb17f51ebeb1cd28ec77d01c85831230857bfda44960241b155f61b22754506",
                "md5": "50bdf0b66fb730b36b0bfe3cbc84accd",
                "sha256": "e48766b63aa89a29861c20dfa9d1d716f6f7628352cd249f8664e44c9f15a88b"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp39-cp39-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "50bdf0b66fb730b36b0bfe3cbc84accd",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 5248719,
            "upload_time": "2025-02-09T11:28:49",
            "upload_time_iso_8601": "2025-02-09T11:28:49.527698Z",
            "url": "https://files.pythonhosted.org/packages/af/b1/7f51ebeb1cd28ec77d01c85831230857bfda44960241b155f61b22754506/pglast-7.3-cp39-cp39-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "17475a1d885f551da153dd035dc515ec8cc243668f3f9ee224b06f76fd11ead5",
                "md5": "944c8fcf49c0fae61f14912b5ccf7e6c",
                "sha256": "66d551b54d29297c720bc41e4fc5681067a47fa588550aa485db6cbf84f099e4"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp39-cp39-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "944c8fcf49c0fae61f14912b5ccf7e6c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 5373067,
            "upload_time": "2025-02-09T11:28:52",
            "upload_time_iso_8601": "2025-02-09T11:28:52.692005Z",
            "url": "https://files.pythonhosted.org/packages/17/47/5a1d885f551da153dd035dc515ec8cc243668f3f9ee224b06f76fd11ead5/pglast-7.3-cp39-cp39-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2a6f0a20b58e7c834ee365c435d343513e5f7a02f76d2521f3fa529b7dded5be",
                "md5": "48824c321280b1f6391d3002521ebab8",
                "sha256": "3fc1eab2b5db63f8d86af46f8ae07a7e13e19b92471611d46a324032376408e5"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "48824c321280b1f6391d3002521ebab8",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 1017179,
            "upload_time": "2025-02-09T11:28:54",
            "upload_time_iso_8601": "2025-02-09T11:28:54.857756Z",
            "url": "https://files.pythonhosted.org/packages/2a/6f/0a20b58e7c834ee365c435d343513e5f7a02f76d2521f3fa529b7dded5be/pglast-7.3-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "be626b68217996ac17f79f9a46c94570c393d0b0f0d00a5da53569626ba491bd",
                "md5": "211bb5d79487996693853b62d21eec8b",
                "sha256": "c483ed1ac15af2f4569fe589d7036f3c45655bd189be2bac1eddc87149f70350"
            },
            "downloads": -1,
            "filename": "pglast-7.3-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "211bb5d79487996693853b62d21eec8b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 1078961,
            "upload_time": "2025-02-09T11:28:56",
            "upload_time_iso_8601": "2025-02-09T11:28:56.808173Z",
            "url": "https://files.pythonhosted.org/packages/be/62/6b68217996ac17f79f9a46c94570c393d0b0f0d00a5da53569626ba491bd/pglast-7.3-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "954bcc3fdc5aa74cb6c95e63d7346f983be23fb5ff96f84c760a1a3bdda10937",
                "md5": "04dafa77f30263e043c4e108ac6ec30c",
                "sha256": "8e5d0b48918994a614d5e5fbcb51250cd6ed90e468ee0ad1dc1cf93ade6969b0"
            },
            "downloads": -1,
            "filename": "pglast-7.3.tar.gz",
            "has_sig": false,
            "md5_digest": "04dafa77f30263e043c4e108ac6ec30c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 3367498,
            "upload_time": "2025-02-09T10:20:09",
            "upload_time_iso_8601": "2025-02-09T10:20:09.167244Z",
            "url": "https://files.pythonhosted.org/packages/95/4b/cc3fdc5aa74cb6c95e63d7346f983be23fb5ff96f84c760a1a3bdda10937/pglast-7.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-09 10:20:09",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "lelit",
    "github_project": "pglast",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "pglast"
}
        
Elapsed time: 0.46097s