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:
4

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 http://pglast.readthedocs.io/

Changes

Version 4

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


Release history Release notifications | RSS feed

This version

4.1

Download files

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

Source Distribution

pglast-4.1.tar.gz (3.0 MB view details)

Uploaded Source

Built Distributions

pglast-4.1-cp311-cp311-musllinux_1_1_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

pglast-4.1-cp311-cp311-musllinux_1_1_i686.whl (5.0 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

pglast-4.1-cp311-cp311-musllinux_1_1_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ ARM64

pglast-4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pglast-4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

pglast-4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (4.7 MB view details)

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

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

Uploaded CPython 3.11 macOS 10.9+ x86-64

pglast-4.1-cp310-cp310-musllinux_1_1_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

pglast-4.1-cp310-cp310-musllinux_1_1_i686.whl (4.9 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

pglast-4.1-cp310-cp310-musllinux_1_1_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ ARM64

pglast-4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pglast-4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

pglast-4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (4.6 MB view details)

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

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

Uploaded CPython 3.10 macOS 10.9+ x86-64

pglast-4.1-cp39-cp39-musllinux_1_1_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

pglast-4.1-cp39-cp39-musllinux_1_1_i686.whl (4.9 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

pglast-4.1-cp39-cp39-musllinux_1_1_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ ARM64

pglast-4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pglast-4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

pglast-4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (4.6 MB view details)

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

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

Uploaded CPython 3.9 macOS 10.9+ x86-64

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

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

pglast-4.1-cp38-cp38-musllinux_1_1_i686.whl (5.2 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

pglast-4.1-cp38-cp38-musllinux_1_1_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ ARM64

pglast-4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pglast-4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

pglast-4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (4.7 MB view details)

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

pglast-4.1-cp38-cp38-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

pglast-4.1-cp37-cp37m-musllinux_1_1_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

pglast-4.1-cp37-cp37m-musllinux_1_1_i686.whl (4.7 MB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

pglast-4.1-cp37-cp37m-musllinux_1_1_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ ARM64

pglast-4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

pglast-4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.4 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

pglast-4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (4.3 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pglast-4.1-cp37-cp37m-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for pglast-4.1.tar.gz
Algorithm Hash digest
SHA256 257814daea0c85fa8a9503a4b1b75866d9c96eced464a953c59368ece2061228
MD5 9d1d1c66b0fb0101de20099007cd6051
BLAKE2b-256 dcf6a20682fec4598c2b17631bd933c8e0b38cdb4e054c71c6d9d09ebb7cf95c

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 fcd125056800ff01f45fb4b8c0c7ac2c6d6af14fe5cd1fab8cc35409028e7ee9
MD5 548f380f280cffaeeb80b2686e983ac4
BLAKE2b-256 c130c2c7b71e5e261424a930c8f2fa3da9cd12e999935891e12162ca7ddc328a

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 be13c83ce6feb7172ed08472c05c5784017036bf9e38339a1ec5d4b0a061ff51
MD5 04307d4252c848c75a5565290b081071
BLAKE2b-256 fd52aaec426e7dda7a97faa7c8ca99b270773aa6c5cdd4fa41224ca9f945c926

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 cd3999d5179bc263c1bd849196596f84c186b63c274b0e3bacf98e05805e77b7
MD5 48774a774619480a60807edbd0419b3a
BLAKE2b-256 6b1b3a13b020aea4599f3c4d2d48477521f125a1e8cfcb61529d9978b67e4a22

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 07c4f1639dfd948ab1213cb667609416262124aa88a8a5ae7d063d32c556312b
MD5 729d09fe4998ca5cfae8938af44b85b2
BLAKE2b-256 f96308ca341f08234e043ffafa00872022ac30120a0760572f450b0d22dbf079

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2dadfb8a2abd50afcd918a2e960fbe84cfb6cec2d97447e8b60f1a33d33802bd
MD5 a658e398f51338ecc6e657c4a858dde4
BLAKE2b-256 ba47b8f118a698da243764134cc901639558685c7f67689ad7fc4cb41b7ed4ac

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e764d11df354c4844005fe4761308dc49a39c699428524edeae7670b51ca7fc3
MD5 4a825243b337b3d4a66034ce09975a4f
BLAKE2b-256 c5ca2f55c9da5a8982057a43244543116e20da3c8ff1b3e2a714a9baaad601de

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2b321f33ddd38dd2d1f346979253f56b408550580dcce3ac82eb2ea30da0a9cb
MD5 f32564e9dffbd0d11014688812899b68
BLAKE2b-256 740c960981b5b888cc5099d41dacd815617a438968ac203a256ffd3804af229b

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5cd5de0f1918240f29e744180553923fa1bf77903235e466b361dd6c616e4848
MD5 15c9babcf39be342494155334ebf0653
BLAKE2b-256 3bc6a2bdbb4172b81c270ba34c76c1b19e8453f23b200cb9f939247f57edd40d

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 be7e1e2506d22fe831533e08fb2dadac6cb42636e3642b91c324a7710d3e739e
MD5 7a8220d3de5934ce6d2c00b00a3e3840
BLAKE2b-256 c8aede361f788a7e86934a5c842b6b2ac828845d5d5bf7bd44a35e52fe9acca4

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 edb29eba11e60f89367951a19b549993b7acd40de438dbd6451861686a653ea8
MD5 9d170d5dd6b88ea424b57fa470dec18d
BLAKE2b-256 17713b91b64de73695c47eb7da5c2a809ab64b1facefb8166e7dce1345bf3ef5

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 43438bb0214fc419d10909a931c289a4684d6a7a6c679a6a63fc8700de9cd0f2
MD5 85138657426f069c455e88170a884e23
BLAKE2b-256 5a194177cd21581d12e36ed6b63cc82346cbb577dd22b32ae0c2a2fdcf700ca2

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5d97b433456ea45563a7b7df7e732e1d2fdfb687c073057636b08e383b005f14
MD5 035e42d0ef131c007cc6d341bd893821
BLAKE2b-256 644f4ee8f100768924372cd0210af594cfffbf09f9043ca1e49c7579a893ce5b

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d9467a1f9df3aa49166f9a2dcb82f882cb66d4e1f06d84ba34258d729523cbf2
MD5 fef7e0b4e11bc00ec3b9a50e7a333019
BLAKE2b-256 1ce2e253f3ae9d268230aaf0b38d8e48c33a6b2ab88405f4fd2b5e968584e5a0

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e51aa32afac4e42cdb93ffa7cbd8af9022aa786b695b1b243da4cef26b9734d1
MD5 863a298494f54b9368591c6bc5a68143
BLAKE2b-256 b829028e294f00c949a92361f45c4bd7865633b4c6b84a029d80f78a85ee76b2

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 358d892d121b98dcc5a2da340f26173dcae958a661dab22e075528e65024720a
MD5 f8f6230102a441991def7044888f4d59
BLAKE2b-256 749237e0c5394e4d60e3c767454537fef2f1391999e9f3417cb429c3cac20502

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 f3361c32bd85f2d12ca537c2d06710a604e10f2ba117968a59a6ce291a2a95f8
MD5 d96159a138f6c2be04273b7e89ea91e7
BLAKE2b-256 9b4f6e49860b359697c0e636e7af5bb82ec9aa5ea989e089c681c6ea3f493eb1

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 88918bac9a3feb9bbd390cd34f8b6a68d6cd28e6b88746fd2680a00019c58736
MD5 4d6b1f10b3fa4c1966ae1f39f9c1892f
BLAKE2b-256 476d37a86892d39593dc56951a0d2d095d59418f5257599c36342ac905e5ffbf

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cd955e0840489a4e58b6d1043cd302a6bf965279917d8a7e80f640bae95fc6d3
MD5 b302f31d661012e48d5aed6b5d8494ae
BLAKE2b-256 5182ebca4c7706e9c2efcb1695f56e94f93cee57a090087353abce1a09836112

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2d75d13fc90a75f40fe2dc11f3a16fd63eb4b3ac87804d877feb984e50da4d98
MD5 e479d9ffc27de3fe93ac8354b6a5d4d1
BLAKE2b-256 ecee322ddc6b22b873f304d54868fa5d5d99320f5c0501d50081bbe5992304de

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ac53d45b390beb4a9064df009193722dd5ef57feb90e18a6a9fc5e77a81234bf
MD5 e321cab0de3f81fa5e2a901899a803ed
BLAKE2b-256 8b2895223221319cf1f853b48460189492ca2265e7008b64414a2416c493caf6

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dd61c2b41cafedd4a08a4c2413b26715d71cd86631ef3092d624d1e8919710bc
MD5 6b974265cdd108324639cdcf83ac1dfe
BLAKE2b-256 e3bd60b5105ba6cac8c4f7cbc827f2d08a04bf8fb98f5221bde7936b24e75faa

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 71508436e727cb53e93ceca6850e1a7ca2dddecefd4d76871978259fcb98fb01
MD5 98b93366c8e662902caa879cfe7300c9
BLAKE2b-256 02d9e0fdfa6b9dde649608c79457c07a68b27bf3c8009bbaf07359bb3033df4e

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 5d8324da2248846d15b2fe480374b81912ed1b39e8993cfc19ede55d60af5237
MD5 eb2981781ba40d53557207df304a5a29
BLAKE2b-256 22509e2d9ea33a530916dbc94b4ed6d8ab7ddcbe190e69abdd809cc434d78cdd

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 f344639c51e1f7d43d5b6e166afc2e67a4a158993b4f60409e91dce49fd1e5f2
MD5 59faf6f32bbeeb58b937425b94bc445a
BLAKE2b-256 9b48871ae69107ce6a490e68d79031c4b815c9d0283d0a0146b8d490ccf29f34

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d7bef320ed6d1fc19e9d5d04ad5f3f649dde88368ee5ba9e1d9d5474df4d2e6c
MD5 bc4e62346839293fb77d91a1c225f4d8
BLAKE2b-256 77bdd046b11362a61347099ec5f464cd245c71be2410dba325a9dfaf91b9db4b

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0ca20c6544c5839e824dc165bd558082ae1f1832829bb0953364d4dfac63f96f
MD5 f6e3314a5f080928f5f4ed111b278840
BLAKE2b-256 9301fc08ef385d4e39242469b6a1871c9d02ff8622a9131587cb63301b3b4103

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 bb0bd8ded87ec002f056cca11a01cd457112f43afa3b744bed3daaefc63137d6
MD5 0f749b8e6408c0dbdf348523d440152e
BLAKE2b-256 ad4c6cfec075a49cbd0fc8d5f2b338b37d8f73cdedc4ca649d3392d3b5246f1f

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pglast-4.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 15e846259075ba58a296f55b0f043dfb2a7e8f3d7a39a6e6c4ea2f8292f8ae48
MD5 91f8df23ce34cfb041f9dc60d9b5b5a4
BLAKE2b-256 b85f2040feb7a7d2b8d1682242adc5a27a65dc3cf0eb49eb1cbd702100874292

See more details on using hashes here.

Provenance

File details

Details for the file pglast-4.1-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pglast-4.1-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 90a05773ef7ae0b4e2c41b3cee52fc859a83b66cc145fdd749a3573d8ad5efe4
MD5 961f39c432eddd5ba11a7e1014c3c91c
BLAKE2b-256 40d6d83952721fd63023dca5d396c9bd4465415a0ee1ac430983f51819ade28c

See more details on using hashes here.

Provenance

File details

Details for the file pglast-4.1-cp37-cp37m-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for pglast-4.1-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 d68a93bcc7cd4603b62245e4155a17c1d93f3ffadf00b039ab19a1dbd3eead7c
MD5 e7464d1c44a42f144fba4961bd08c049
BLAKE2b-256 58601ebfc54bb6f32dff90cc89c0c83d771f3dd84fad2bff5c41392517b1935c

See more details on using hashes here.

Provenance

File details

Details for the file pglast-4.1-cp37-cp37m-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for pglast-4.1-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 32d34f39a9a87359018457231a18215d0f48a204fd564547390594a3e2683cce
MD5 e09e2a660afb642d6d932b596d596037
BLAKE2b-256 2cbb3569d1228622f2e4749c8ee502f38da564524e458b4b8f9b8d54e64c444c

See more details on using hashes here.

Provenance

File details

Details for the file pglast-4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pglast-4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8ebc8df72a0f56da85cab0ca44b3c1a92e6c4a015abd6db62688ec4c80aefdba
MD5 a132cfa6190e164e960a527fc0393cf5
BLAKE2b-256 dd427c57ea6194243abf9fb1a476cc7301b15f2c2756c0131f9966116bbbb3ea

See more details on using hashes here.

Provenance

File details

Details for the file pglast-4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pglast-4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3781573212b855d59026f6cc40ebb63787f6f374bf19793db538b23871dc9ffd
MD5 636531ef5e4df0a0f16aa3f5ece36936
BLAKE2b-256 f960374bdb819b4820e9652ce137c43e1f6eee6b1818f564e65f93231a70a5c7

See more details on using hashes here.

Provenance

File details

Details for the file pglast-4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pglast-4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b52e8bc04ff6ba53fd1f0c1967ab3add7f103aeded9eda546cebe82fe53ac9d2
MD5 75f5f258ef3f5358580afa835c1cd557
BLAKE2b-256 5d694c857dfafe52489a8c3f9b0a38c7a00bbd0ce9e689806cac9095b7d54512

See more details on using hashes here.

Provenance

File details

Details for the file pglast-4.1-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pglast-4.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 91c8caeeb20bf96dfbc2962fe520d1dff0652730a5eb56c6b15c79fcaea4c9ef
MD5 ecfa135d2103d49b98f7e56ad427adec
BLAKE2b-256 99ffa032732434179ddc3caf195c24e17c55d34d96255081058e364290330a61

See more details on using hashes here.

Provenance

Supported by

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