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.4 (2023-08-24)

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

  • Fix issues #129 and #130 (merged from version 4.4)

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.4 (2023-08-24)

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.18 (2023-08-24)

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

  • Fix Constraint printer, avoiding repetition of “DEFERRABLE INITIALLY DEFERRED” on some kind of constraints (issue #130)

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.4.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.4-cp312-cp312-musllinux_1_1_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.12musllinux: musl 1.1+ i686

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

Uploaded CPython 3.12musllinux: musl 1.1+ ARM64

pglast-5.4-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.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

pglast-5.4-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.4-cp312-cp312-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

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

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.11musllinux: musl 1.1+ i686

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

Uploaded CPython 3.11musllinux: musl 1.1+ ARM64

pglast-5.4-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.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

pglast-5.4-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.4-cp311-cp311-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

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

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.10musllinux: musl 1.1+ i686

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

Uploaded CPython 3.10musllinux: musl 1.1+ ARM64

pglast-5.4-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.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

pglast-5.4-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.4-cp310-cp310-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

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

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.9musllinux: musl 1.1+ i686

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

Uploaded CPython 3.9musllinux: musl 1.1+ ARM64

pglast-5.4-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.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

pglast-5.4-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.4-cp39-cp39-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

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

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.8musllinux: musl 1.1+ i686

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

Uploaded CPython 3.8musllinux: musl 1.1+ ARM64

pglast-5.4-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.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

pglast-5.4-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.4-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.4.tar.gz.

File metadata

  • Download URL: pglast-5.4.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.4.tar.gz
Algorithm Hash digest
SHA256 7f22ef81a60799387d39a59792e7a72a63531c25581659ff15b37ee6ed9af7ef
MD5 7f056c08364dff1cff46f55ac15bb5ee
BLAKE2b-256 6538dd0c98bee0be0bd3cfecda968403570b91c8dc582a5b5395dad32c484852

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 bc2429f7558646373d5801d18056b7f8f8cae3fd325a0b70fb9b7beb40043c1a
MD5 206fea88c703b26ab3e8731eedf86ba7
BLAKE2b-256 52a8907f501050206077c3b0fedae1a877043d1a22ce6fbe9ce3e9e8ca5fb127

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pglast-5.4-cp312-cp312-musllinux_1_1_i686.whl
  • Upload date:
  • Size: 5.2 MB
  • Tags: CPython 3.12, 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.4-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 b8ba37f8bc8ce7efb161fc358c050f1a47a6dcfbfe213d49a21639f3742efc92
MD5 c95fbe5002eda24afed50d3e2cc9cc62
BLAKE2b-256 c2596f18c45f0c2370c491f5facf7004d90c94e8f41fc444f8a4c728e0547eb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 7b0dda51d8bc425136d75cba58f69575ff87b17c784ca8ed9782693abe97f15f
MD5 6e0d99773f1e5217723ba40a8fc5fdc0
BLAKE2b-256 0be5812622f323c873ed49024d90c60ba2e514689827ab6d3b8300fff05c2256

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5e5a22b9cbbd157bf4ec408e9526ea4346fc7b0585daa0241d9a8425b6018fc0
MD5 2e2daad7841837e381afa40a422e4202
BLAKE2b-256 ed7d2f25ef76faf378e7bfd82aee60e2cd388d55157ab34dd54403ea3d0f81f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6b7fbd4ebf2343046cc7197f3f8eead5920e18445cc8e12b7853c03f2fd875a8
MD5 1e57501a65b3d60ed006d3054098c014
BLAKE2b-256 1f060b4181a6e7dbdb14581a41c529a32a70503f160d43d8867d33310764a0b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a6cc0b820dd9fbb5206e8681c15b42e12e6732869bfd47208ab4a070a19e7e0f
MD5 b28700ce7f0dfafb86ec88dd6e0f63c4
BLAKE2b-256 77e36103db577625229632bf8dba6c6b0b863bdfb57320a8d9a39f169e484c4f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 37bd6f6a3ac1fe5bc322500378482f27b5036e5dad3570ab0ad0a667a88f3a03
MD5 e78407edab2d9badc15fc301b84948b9
BLAKE2b-256 23b95c8c093297a5d056ec642c3a49d35cb9cd5277f0a40e450408e2ed8ffb17

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8411fb14538f38077c1fc9939d01764aa9988d3d6cf20efab7d024e5ee70e28f
MD5 8b3b720e0ad9c182a666f4976be15aaf
BLAKE2b-256 e3a139cd0f09c999c52ab2b3330fe00f0423d8500e53c49f4569aa0081529768

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pglast-5.4-cp311-cp311-musllinux_1_1_i686.whl
  • Upload date:
  • Size: 5.1 MB
  • Tags: CPython 3.11, 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.4-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 c919a74364cdc917b8ed44b404db833ea6ff718eebcf02d2f1433a54e7ce133f
MD5 a4c4cffea59e4bff4666f342be072347
BLAKE2b-256 476a173768e3f06b28531f4ad52f5d5b66fafe379457b71e2f18ceabf64b6764

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d00d640138e06528f5ffb00d013a921cffbd7ea9585401ad1516f7e54e90dec9
MD5 4507c04dc5d32fa625bde8b06a76b939
BLAKE2b-256 14f7675d69fd769e444b18c58eb4a0170949d8fb1cc05def70a0fc34ab6f730e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 172382c07806fdf1338549122f4c0b4f8a97d451229cf967f705fbdad0079abd
MD5 f253c165a990e2ccf8a632f730f047bf
BLAKE2b-256 ae7c16e66c1e0c22aefdf65960d1fafb2cd1e334eed3e39064e0e29ed8e5b275

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f2fdb1427af53da831bd5120aa9ac618b3559877ab2dab5e0a9580ba8748f22c
MD5 ca644554207dca40962cf19629d4fada
BLAKE2b-256 2f79e46a1853ee10c7dc8e7ab724f2c2cc3ff186a9b908772921ee4c12520efa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 44d8b82a74fdfd204cb732b08fdf3c2fec1c51c2c6322c3a90a53ab4c2b15ac3
MD5 265de6d816fd6793eab4f451e6d6d609
BLAKE2b-256 8a12fdbd67bde1566a535c45da510860f7c7a4013906d7e37ede7f0b8844d632

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 df58b9e312a5f61b3c85bc6861d5619d18d066d5d7e3fcf44b59459e4cf8a278
MD5 19656e1accfddd2d34171e0a351f8e68
BLAKE2b-256 75bcbb450cde2cd8becf5f0fc42b2f91e1eb25d1d2a4ee5220de4ea3a8deea54

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 46343d60486f8cd7fc018a749ec826ef89cfc20c2c5a968997a6e48a4560b4d4
MD5 dfb5d00a0560efe7b73b510f5de9cd3a
BLAKE2b-256 9ac6173e3c1a2391f2502640e45fb9a794a512b0ea5dea3e14928584ab769ad5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pglast-5.4-cp310-cp310-musllinux_1_1_i686.whl
  • Upload date:
  • Size: 5.1 MB
  • Tags: CPython 3.10, 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.4-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 eff667a9b31a5c5607a35d3a3e716d9185131a5363bcdd1fbd4c709ddd29fbd4
MD5 e9ff80f3f44b0f238dcd8b3d100212e6
BLAKE2b-256 9778076881a1e2f9273f8992dc8783d9cd63f50a1aaf4aafdca9cca1241ae00f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 fd7a6ba3d2a306dbd5a8fe59981c2ae44f4c7d6a692511ce00bb9cfb18db0f87
MD5 e3291f24818bbe5c31fa68c42c2c57bc
BLAKE2b-256 a55dceeb37aafd28ed355af9e17956e7862fe0eeaac518e8ea05c16fe6d3a561

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d39b3ea1b05160f55a1b4b99a306e3acdb7f17bcac61ce3e1059e197446274d0
MD5 400464e07f5581dd5b7654353d31aee3
BLAKE2b-256 bbca0361c28f5650b63799dad6959645831b4f6455c781c0c736c9a060ed053c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 38da193ae25f9f4e98567c324662ed5d26ca45805cb7e8f67ff1cb8ebac3cee2
MD5 8f51c0a1d2f7ce947dc0fc3f99b76f59
BLAKE2b-256 d3953b2e14a1b233e2968e28a2ec260fcc44a2a6e4204298ca098febd3453528

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 7efea9b03114976e198362ac8044b8a5151b08a2ef1d0c4ea00d3a2d03c249e7
MD5 f90be37010b043e4ecf8c26d110d7244
BLAKE2b-256 fd18aaca94c5e2eb13fc8688e2ccf536982deb2b5477adf2181c695c60bed7ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 160868bf80dbd2b264a516556e831ba4c16e25bc91d12639a84f0fc25b3725de
MD5 21db85ddb4330bf6b5585a06d59f3366
BLAKE2b-256 ff724a569bffdcc57bdd0a8a0bc7bcd6b5a7dd22c66eaf8199fcb8e7d524d640

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pglast-5.4-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.4-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9bb9ff91b87c0ff9cdff7dd71532662333e1bcf7f2a2143436108b52372aba43
MD5 6cdf34335d7dd426e0e603b6ba7c424b
BLAKE2b-256 1015f2775b364a525bd5449de799764bf48d41ffef6ac1e2bcddac7e26cabd71

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pglast-5.4-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.4-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 42cb81b5fe3dfc205f9d763ae5a6fa295d452a214c9c48d85731f153c65398b3
MD5 d4f296cf19ff02f0a3269e96514a6191
BLAKE2b-256 e05434c2bc82b4f2f40ad2f59995f504f83323b98e510bb1c4b645b3379e6e95

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 6e7ffa462eb44426a7b2c92d3ced5d3f65a50b37516ad1ff19863aadc99ef901
MD5 782fc2a6de4059191932265be1233f4b
BLAKE2b-256 4be6627cfd70587629bf8d550c24e47b7810774d77ff00e3c75b00ff1b04e953

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aac072fcb3fb08dd170d9e1a368a56677064812dd6091fc986811ea7e0440635
MD5 4b113422747214aa75c28119cb26d0b0
BLAKE2b-256 42d195335493180c6f423d9a52a4a1aec36dd9242846d5fba5d2c826e9fbaeee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7fc846fc8de459d9e61341648b181a085736161cf3243222c12a9ffdde74afab
MD5 a8f674bfd361031da092bd87ed305386
BLAKE2b-256 bf68e845b1380014fc87af4065fa1cbbddff001e5f4b9bc7cc60f4e1045b35e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0ccfc7ec0fd74f4777920211dfd16552ab21842c044d8a68c03d31f5cf669487
MD5 886c2a1905baf5c868a65ff6d3fce181
BLAKE2b-256 6ec51805717dd1ddc7d33aac1c99e219b3f01c23cb7bb14d3e759691df5322e7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pglast-5.4-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pglast-5.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f892ce3dd90933800ac1cd92fc62c0b1be1bebe070f138ccba9f4399341bacfb
MD5 44b77702bf1a6cc5767e8e6447061184
BLAKE2b-256 12c0c9ec26facc90df5a4cfa65bc32b1835c84f37cba304308f1018404b9b661

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pglast-5.4-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.4-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b741eb93c884cba4edfccb9ae7bb5ba9e1936d3f8aeaf6a5b1ac2c7813ddc514
MD5 6caa226d5d9ebd8983605c4da380d396
BLAKE2b-256 1668039bdee2b81e1d9bcfb111fb385e2183cd769c30b58d563184d1bdc272d8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pglast-5.4-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.4-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 702ff7806f58164af43df577053ddd7b2e67606240c1fb213939497d2cedd20f
MD5 0e5fbe84869f3a304a4418edeeed1263
BLAKE2b-256 6bf7e5b91ae10cd7f664acb427066766ad6c4e7bbad3c4554349c3335811e931

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 86bcf0304c728c8dbf452a871405e84a9cca3b04cb94b8e349c74c1b5c095df0
MD5 259fd9867ed33d6a301130c02f7f4e83
BLAKE2b-256 358322edbadbc00459a60fc592c6220a4a1d2d4050eb63100c9ab019027343fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ece28da1801abf20ec647d24be95b12923fcc4ff1c080c26a8635b1522268ec9
MD5 2b46243e9237b665244572b167bc02da
BLAKE2b-256 045513c955731f6c6d56b986d56307db34bbd2ba92d6928fe837d466b2f1de87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1c4206db533e139ceb77a708cb2cea825d42c5cd9129df1001a74f390b09b0ac
MD5 ba239b35c49c75f614ca1ed7b3af4088
BLAKE2b-256 eb7f63997c8ae5d7d6d40c77011d891231200a576412c8bc1b4adfa1c44d6bee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a47f6e90f56c5a43e0b8ff22abb08caff8d9fc79ad4c2a4f4406d0ef66a869db
MD5 838d0676476ab608a6fe2d729d4c442b
BLAKE2b-256 04bca4fe2412c4c34558aac4a13318c85c8c13627594589931e2bfc6d5020aec

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pglast-5.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 39e8df19259fa2a11ceb8553b7b15d3cbdb6eb37bae7c4d896663a71d6008bbf
MD5 704e916e66739c9afa9e217fc8468dad
BLAKE2b-256 6652525dc5e4818d78a272e538708476a4f5d9cc5eb97cb3e6ba9cd2d89aba65

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