Skip to main content

PostgreSQL Languages AST and statements prettifier

Project description

Author:

Lele Gaifax

Contact:
lele@metapensiero.it
License:

GNU General Public License version 3 or later

Status:
Build status Documentation status Test coverage status
Version:
5

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.

See a more detailed introduction in the documentation.

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.

Documentation

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

Changes

Version 5

5.3 (2023-08-05)

5.2 (2023-05-20)

5.1 (2023-02-28)

5.0 (2023-02-19)

  • No changes

5.0.dev1 (2023-02-11)

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').

5.0.dev0 (2022-12-19)

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

Breaking changes
  • Target PostgreSQL 15, thanks to libpg_query 15-4.0.0

Version 4

4.3 (2023-04-27)

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)

4.0 (2022-12-12)

4.0.dev0 (2022-11-24)

  • Update libpg_query to 14-3.0.0

  • 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)

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

Version 3

3.17 (2022-11-04)

  • Fix AlterSubscriptionStmt printer, handling “SET PUBLICATION” without options

3.16 (2022-11-03)

3.15 (2022-10-17)

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

3.14 (2022-08-08)

  • Harden the way Visitor handle modifications to the AST (issue #107)

3.13 (2022-06-29)

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

  • 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)

3.9 (2022-02-24)

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

  • Properly handle dereferenced array expression (issue #99)

  • Avoid improper “floatification” of literal integers (issue #100)

3.8 (2021-12-28)

  • Fix glitch in the AST extractor tool (issue #97)

  • Add Linux AArch64 wheel build support (PR #95), thanks to odidev

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

3.7 (2021-10-13)

3.6 (2021-10-09)

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

3.5 (2021-09-26)

  • Forward the special_functions option to substream, when concatenating items (issue #89)

  • Fix representation of floating point numbers without decimal digits (issue #91)

  • Produce Python 3.10 wheels, thanks to cibuildwheel 2.1.2

  • Update libpg_query to 13-2.0.7

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

  • Implement more special functions (PR #92), thanks to Boris Zentner

3.4 (2021-08-21)

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

3.3 (2021-07-04)

3.2 (2021-06-25)

  • Effectively include libpg_query’s vendored sources (issue #82)

3.1 (2021-06-25)

  • Fix packaging glitch (issue #82)

  • Build wheels also for macOS

  • Update libpg_query to 13-2.0.5

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)

  • Make it possible to pass also concrete ast.Nodes 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)

  • 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)

  • 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

  • New rudimentary support for the preserve comments feature (issue #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

  • 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

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

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

  • Use Ronan’s fork of libpg_query, targeting PostgreSQL 12.1 (PR #36)

  • Change get_postgresql_version() to return a (major, minor) tuple (issue #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

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

  • Handle ALTER TYPE ... RENAME (PR #62), , thanks to Ronan Dunklau

Version 1

1.18 (2021-06-01)

  • Fix exclusion constraint printer (issue #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

  • 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

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)

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

1.11 (2020-05-08)

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

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

  • Implement CreateOpClassStmt printer (PR #47), thanks to Ronan Dunklau

1.10 (2020-01-25)

  • Fix collation name printer (PR #44), thanks to Ronan Dunklau

  • Implement CreatePLangStmt printer (PR #42), thanks to Bennie Swart

  • Fix privileges printer (PR #41), thanks to Bennie Swart

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

  • Fix function body dollar quoting (PR #39), thanks to Bennie Swart

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)

1.7 (2019-12-01)

  • Implement NotifyStmt printer

  • Implement RuleStmt printer, thanks to Gavin M. Roy for his PR #28

  • Fix RenameStmt, properly handling object name

  • Produce Python 3.8 wheels, thanks to cibuildwheel 1.0.0

  • Support ALTER TABLE RENAME CONSTRAINT (PR #35), thanks to Ronan Dunklau

1.6 (2019-09-04)

  • Fix issue with boolean expressions precedence (issue #29)

  • Implement BitString printer

  • Support LEAKPROOF option (PR #31), thanks to Ronan Dunklau

  • Support DEFERRABLE INITIALLY DEFERRED option (PR #32), thanks to Ronan Dunklau

1.5 (2019-06-04)

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

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

1.4 (2019-04-06)

  • Fix wrap of trigger’s WHEN expression (issue #18)

  • Support for variadic functions (PR #19), thanks to Ronan Dunklau

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

  • 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

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

  • Expose the package version as pglast.__version__ (issue #12)

1.2 (2019-02-13)

  • Implement new split() function (see PR #10)

  • Implement BooleanTest printer (issue #11)

1.1 (2018-07-20)

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

1.0 (2018-06-16)

0.28 (2018-06-06)

  • Update libpg_query to 10-1.0.2

  • Support the ‘?’-style parameter placeholder variant allowed by libpg_query (details)

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)

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)

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)

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)

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)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pglast-5.3.tar.gz (3.1 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pglast-5.3-cp312-cp312-musllinux_1_1_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

pglast-5.3-cp312-cp312-musllinux_1_1_i686.whl (5.2 MB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ i686

pglast-5.3-cp312-cp312-musllinux_1_1_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ ARM64

pglast-5.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pglast-5.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

pglast-5.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (4.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pglast-5.3-cp312-cp312-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

pglast-5.3-cp311-cp311-musllinux_1_1_x86_64.whl (5.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

pglast-5.3-cp311-cp311-musllinux_1_1_i686.whl (5.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ i686

pglast-5.3-cp311-cp311-musllinux_1_1_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ ARM64

pglast-5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pglast-5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

pglast-5.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (4.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pglast-5.3-cp311-cp311-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

pglast-5.3-cp310-cp310-musllinux_1_1_x86_64.whl (5.2 MB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

pglast-5.3-cp310-cp310-musllinux_1_1_i686.whl (5.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ i686

pglast-5.3-cp310-cp310-musllinux_1_1_aarch64.whl (5.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ ARM64

pglast-5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pglast-5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

pglast-5.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (4.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pglast-5.3-cp310-cp310-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

pglast-5.3-cp39-cp39-musllinux_1_1_x86_64.whl (5.2 MB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

pglast-5.3-cp39-cp39-musllinux_1_1_i686.whl (5.1 MB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ i686

pglast-5.3-cp39-cp39-musllinux_1_1_aarch64.whl (5.1 MB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ ARM64

pglast-5.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pglast-5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

pglast-5.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (4.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pglast-5.3-cp39-cp39-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

pglast-5.3-cp38-cp38-musllinux_1_1_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

pglast-5.3-cp38-cp38-musllinux_1_1_i686.whl (5.3 MB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ i686

pglast-5.3-cp38-cp38-musllinux_1_1_aarch64.whl (5.3 MB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ ARM64

pglast-5.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

pglast-5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

pglast-5.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (4.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pglast-5.3-cp38-cp38-macosx_10_9_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

Details for the file pglast-5.3.tar.gz.

File metadata

  • Download URL: pglast-5.3.tar.gz
  • Upload date:
  • Size: 3.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pglast-5.3.tar.gz
Algorithm Hash digest
SHA256 7e235dfb5d61a8c1e0cd230d4fb7e09dede94de2789eee64ac0e3c2c28086884
MD5 a0fdbd74180df5357d31d6a1a36062e1
BLAKE2b-256 2732c6add10eb206054798e0dfdf3ae7bb7e5ddfcc173d344ac84c2f85a9b4fd

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 90299075a4cb60e4811a343808ac136231ba57cfff1a461c3e56ad74b92b9138
MD5 e4029bc96fd5af10a5c74c5017c13e2a
BLAKE2b-256 475be07c12229f4e33e942b6f84e9433d24bfcf08e1d5cc11f6ac71c780abe2c

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp312-cp312-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 ee924d3e275f7d5740a269bc79de3b525dbc559a21d12be8d67297fa43514972
MD5 d000dbfc6ca17decc1737e03ebd2a73c
BLAKE2b-256 b9954ccc116083c9b012c5105da263f30bfd1c929d70e52aa7cd53c4b0a351ab

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp312-cp312-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 258734742b6781e0a7a533bb7de0f1f4657dd29fa3d2ed7202cce176fdf05f68
MD5 cc3fe837b6b4cab86f89f360e1c47ed3
BLAKE2b-256 69c5f913db6db486333ee4cee2ac2f2a358651b121bd9a5bbe6a6f756a383e01

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1105b75ab1d059bfc4ee56ba8d908c9a6d9b9a118e4de8459ced156d2d352428
MD5 7564f47ecb72eb26a7b5821b108402d6
BLAKE2b-256 7f501174d99c5eb403d2a60b9c25084d4b8b03917c657a24bf1427a22530ceba

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e918122d0632e1042127d39ea6c9971ed343e601c600b6e26ca93c972fffef8e
MD5 ac33c0fdb4d13eae5d2c892709f18cd6
BLAKE2b-256 cbb943df2ee41a590f5ac44ba37ade9a22607526c7d904af140186d0d057b80f

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 781a8539ffa123bcc89da0204bbb496cc8532fe4394d0af6438b07025b339d65
MD5 f0f05ba056da569fae56d64a27acbd1a
BLAKE2b-256 a6994b2e89a5120ab88ad294ea651b5d0f506308f4cf247d6a2e8e1305b17730

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dbfcd25db0dcb32068f749786ad93ee84a73ff3d40384a16c78e228df0d85c8e
MD5 bcc75282132fb369ea69c59c55092177
BLAKE2b-256 3af2231c15d95a177ef878ff77dc0efea0bab170711f9c4f8460ecdec59e58c4

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8a144df9dc5f0aeda61fa74865a3c1cc40e179027958c7f9a56f55f5aff224af
MD5 aafea1dcd8b53f10a7fd963092c0ff8b
BLAKE2b-256 2079d16f90c93c29f732b051a53abf7262631dd3f4f8f2ad87755fb038c02aa0

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp311-cp311-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 702e925c8e097e6d8294da6e4b89feaadb3c89cca75024a38400b9c7a7276c0b
MD5 819a2698d5fb43c830bd3388c8fd8fc6
BLAKE2b-256 23fc473830649b87161f3a5a00ed504c2bfc21b86a3b918eeb2d002c4f8c787d

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp311-cp311-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d2535ef8c51c44de14b7fac6395f09ec3576d576e7ec466d0d5f9367d33ac8b6
MD5 6671f15f1699c09eb52649996ed9012f
BLAKE2b-256 c939d7a09456991bccd14d8c0a38404d5abec53024d3de11e9d7b193ae34e4fb

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d597edb2e7349f544588161797d876a8113a7bbc6f3982210eb8d7ba8807555c
MD5 72f7a347c0c5bb3b7eac614198dd6662
BLAKE2b-256 7ab2c1fc32249e29792dbaff4ec058cb4447c6fe8c7a262e0658afc4ccd50008

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6a722f98d4340ccb089e16e2feb5dc45ec251a40b37f0b573283264100f9a2a0
MD5 da4c8d8fbfb0b62d9ab9043f0b5f2c2c
BLAKE2b-256 58b57f27e3d34125e529bd3fe145a3266060c439f929185c921d21640711f657

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 97dab083c6b7f030521e6549acf342ea84df8aa6b27f3abccd0d2cffe77a596b
MD5 913ca44a65888dc4f66eaa74beff274e
BLAKE2b-256 98b5250be26f6f02a3730531f234f2785ebeddeb984dbac5936dd421478b0d2e

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 48efb62c4e364e585e31d39eb3729dfe7ecd4bc65c757c174e8f49aff880feff
MD5 05d9872878ff22efc8bc0af6dd3bdc61
BLAKE2b-256 5dc0f34fd94226e626326950a754f39ce90a36442af2ff43b89a82faf644ba85

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a67b5aac66c34112a87f9ea2326fc2ad12d7ea11a1dee9f360cabb98f843160c
MD5 bd63bff4d99bcd1910fcb81f3a0e5ffa
BLAKE2b-256 da76497ab45b8ed96832a7befc2195b90cd6df77c8b1c4787cf857bd61479454

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp310-cp310-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 8777ceaefccfd75c1dfa3a11985eb208da127bb2f8a3417a09a2c18e1abe0011
MD5 8dbd40f44d046d26dec1758ca4cd0c90
BLAKE2b-256 038cb2b624900810319c8f313628d7b09beb9f32d3b2e2bbc21c438ff67d41a1

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp310-cp310-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d057f55746c157daa20443e21b1f38b2a7e0142b14a44cfed9cc3a23a0d77d3e
MD5 64dde7b70930e239fbf6c71749df32cd
BLAKE2b-256 6e3347a9f87418e25350a8886f221afeebf62b9e3160c2c3b5deedbc11abc7cb

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef23aba6cf9adf899157f5d9e91319b0f013c172b0173dbd3e9667ea6dde3d1c
MD5 1c21013a8143f75fe36ddd34f429e70d
BLAKE2b-256 535c27fbcf2772bcaac7d098ea467c159a99df6579c6891aa5b618921a9aea27

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 12cde9beded1411d54500622e5002e77d9c083e82e32d0d227162dffc4eecaad
MD5 aabd529948292388fc97c52d78cfc5e2
BLAKE2b-256 653877cc0e940ae56fd90da7a93f6546c572eac85f961bc807c919c68afd6c40

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 3aef8896abf59bc783fd29e677a86c205546fac5184bcfab0ede507066d87f76
MD5 25c47040bc4b4ab7a5c8ede92b64b00f
BLAKE2b-256 6ba4559dff1c2c292d7d03d0222baadb76eb4ea44928b622b6cc8f35aec89213

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 55349d2efa7d9d3cb7d437c6517d7874c2a261ae22c01cfbd834bf876e278f02
MD5 2831a76283a5dd28db0b7209618b43ad
BLAKE2b-256 9b7032dde0795e415d190286dac9000b8324dea587861fae4213c81764bbd3b4

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

  • Download URL: pglast-5.3-cp39-cp39-musllinux_1_1_x86_64.whl
  • Upload date:
  • Size: 5.2 MB
  • Tags: CPython 3.9, musllinux: musl 1.1+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pglast-5.3-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 e48ac6070bd01d8176c148d93823d3f3416d20d13013ccd2c888eda0e8cff2bb
MD5 2fb74c09e303775ea6ad225848f63fab
BLAKE2b-256 a108dedc84a7ec1d4e3af7acc175313fdd8b7ba03916e834d12bcd25a2eca770

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp39-cp39-musllinux_1_1_i686.whl.

File metadata

  • Download URL: pglast-5.3-cp39-cp39-musllinux_1_1_i686.whl
  • Upload date:
  • Size: 5.1 MB
  • Tags: CPython 3.9, musllinux: musl 1.1+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pglast-5.3-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 be8559a96c059c703fe01df87aaacdf395c3328d3496d9999e362f37577c29fb
MD5 1da562e3c40da9694e88bb1d584008b4
BLAKE2b-256 b49470eaee20d47632c836dcb1d4696b60795238d37f41b6142f6b30bd3a0069

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp39-cp39-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 97e2344ca274e2cc3abc17d3a992bd310b94ef7d6757ee6774d681be2c19ef79
MD5 d94730fcf9d63ecb56132f295487d38b
BLAKE2b-256 203ffb5e52d0120d13f0572f43df3db512147bab350ee113722ec4c53b2a9f38

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0c561ea96717c336a512bb9586cd98cbc3b6d19dacfcdfa2b9695513003915b0
MD5 0c97f58ffbc2918ad5843f7bb4335b3b
BLAKE2b-256 455cb8643ca0e187686e0c1b56e49e6a6c20cfe6222122954c668c9cbee9285c

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 48d2633781e7ded63ca8ae66775f3f0a875680f4411bd995250816c15bfabc00
MD5 d17813ee07e429b3baa1f95182fdb81e
BLAKE2b-256 ce159c2eb64b25ec93bc9c975fcdb380be29cecf0d26e5d724ffa1eb9b73bd28

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 cae135f064fe13766151ef40d3a2a822c23793793e22e7f570ee2f0eb337e26d
MD5 fe567b092dd0328d5f92577f23b9f14a
BLAKE2b-256 7ff64210bdf11532d41d15341d7cf209df229d758fbf415ef2786c8358468353

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2b65b82eeb9159d11918a173619cb18b707775ab70c7959e68303572c021dca2
MD5 b05d2e6e3e3189e9e8b5ebec37f55bb1
BLAKE2b-256 f22ec59f21153e0780e93fabe658d772cd8de4c876b994722a2b00c874970af4

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

  • Download URL: pglast-5.3-cp38-cp38-musllinux_1_1_x86_64.whl
  • Upload date:
  • Size: 5.3 MB
  • Tags: CPython 3.8, musllinux: musl 1.1+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pglast-5.3-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d5446f16b4f960fda1bf4d044e2eac9a923bf0008d26b282a9fb11b9c0bf3a37
MD5 4bfb6f8d3e933d677e84cc70fd65d610
BLAKE2b-256 e9990e939c7519f87028a4fc0949721772ae8c2277ef66862dd879a5409869af

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp38-cp38-musllinux_1_1_i686.whl.

File metadata

  • Download URL: pglast-5.3-cp38-cp38-musllinux_1_1_i686.whl
  • Upload date:
  • Size: 5.3 MB
  • Tags: CPython 3.8, musllinux: musl 1.1+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pglast-5.3-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 1d642e2ea2407dd3012fc6b891ad6a420a5062da065327267dd20bf82da816b2
MD5 d4f053bb974828243f4b551a516fd09b
BLAKE2b-256 a7c27952b0dadeceeef450e604b84f7528b600056f2941912ddfbd9ebbad050c

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp38-cp38-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d9e71fd7f4300cc1dc5c6249cad3d439a37af3c2ec657f91fb3101c16bd2a1ce
MD5 293e638a65744e4dc2c278ded14172ee
BLAKE2b-256 dab9ba2cbee5c309827d365c0e1770c0928b70e898bfbe81ea971d047ddad59f

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 90c78d678bc73e477c1ea3d4515950b2170681793388f49ef47ebf47aabb3af6
MD5 352bc2c3030de124a44766fadf7a7ae5
BLAKE2b-256 58bc5320ca894617468baeca90588bd2fa36e3b06389bc697c947677acce07ab

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9184887cf39ca209b75b93a44413965f416ab45504b9d0f67f97e610abfd9e68
MD5 84d85523574eab8c07591f895eb49d19
BLAKE2b-256 79fd3cd3f50d47cb62dc305a31cb87e2a4f7740ce0fa4841564de0a47d5188f5

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 03f61ceec359712a087eb64bc5e3ef5c3431b53d10eaa26de4b17041064773d6
MD5 a8183d2ff466392be31404842c19510c
BLAKE2b-256 a2f1d2b0d361450950509e2cb3d668e4cc42e619a19d66e3ec8404595cf30e2c

See more details on using hashes here.

File details

Details for the file pglast-5.3-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pglast-5.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 72064a16c82b8b89a59037846c4ffb379e1721ab09b3da75fdb3770367a94df1
MD5 9e234f28c11c69060c592cceff87ea78
BLAKE2b-256 3a4a8fd8a6ee82d73d3a1c37d7b2667b0b8a55415d09d4e20d4b060dfab92f31

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page