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.5 (2023-10-07)

  • Use Cython 3.0.3

  • Produce wheels using final Python 3.12 release, thanks to cibuildwheel 2.16.2

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.5 (unreleased)

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

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.12musllinux: musl 1.1+ i686

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

Uploaded CPython 3.12musllinux: musl 1.1+ ARM64

pglast-5.5-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.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.12macOS 10.9+ x86-64

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

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

pglast-5.5-cp311-cp311-musllinux_1_1_i686.whl (5.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ i686

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

Uploaded CPython 3.11musllinux: musl 1.1+ ARM64

pglast-5.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.11macOS 10.9+ x86-64

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

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.10musllinux: musl 1.1+ i686

pglast-5.5-cp310-cp310-musllinux_1_1_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ ARM64

pglast-5.5-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.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

pglast-5.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (4.8 MB view details)

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

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

Uploaded CPython 3.10macOS 10.9+ x86-64

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

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.9musllinux: musl 1.1+ i686

pglast-5.5-cp39-cp39-musllinux_1_1_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ ARM64

pglast-5.5-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.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

pglast-5.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (4.8 MB view details)

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

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

Uploaded CPython 3.9macOS 10.9+ x86-64

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

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.8musllinux: musl 1.1+ i686

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

Uploaded CPython 3.8musllinux: musl 1.1+ ARM64

pglast-5.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

pglast-5.5-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.5-cp38-cp38-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for pglast-5.5.tar.gz
Algorithm Hash digest
SHA256 cb3e90f95b7b66e4fd35ac6e41003e047ed4e847da8a6ecda3a1899a7390a35a
MD5 e63dad076e32d29d8194b35daeaaf12f
BLAKE2b-256 2a64c6c49f7435da3659c994d9e83e68fb58fc32b204e4bd80ad6dfe6c10f527

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a73b494c3c8d7ac0f66b62bca7cc17b5900bf20fee548b4260444c6762fd1388
MD5 8aba30e6aaed3d394b14424143a7285c
BLAKE2b-256 e06b8f905c50f3cd18b81683909aa58237c62935907b79f843c1108850dbcf56

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 7201d959274828c911e081c90c45279be146b5df9925352d1ec4e2daf3deef2b
MD5 26d380c8565efcbc96f7674966eb5945
BLAKE2b-256 7b8f2d7365058a39dfa5b46c07ac95bb0cfa5074f536343e334b91b8f7d1c596

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 42bbcb83eb7722d39f142474e9451882116d371a562446d271a0e8e6bb2df48f
MD5 fb3b3dda20d5dcc08b90bab7fe9094e3
BLAKE2b-256 33c01f920e6813a316e5fd50a24f3b49fbab50854eb05d9001be9e2b14588770

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8f897c4bdfdf78528159a0c689608d9b3a966a8c00a9bd04bb7551ff543b005d
MD5 88304e9273fefcc2fb7cd2b4e8214203
BLAKE2b-256 df6f62e8d14209b8fee77426ee285972a5f267f72d7ea0d411cac5802155852a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d0b6845dff052ef5866ad3c7fb7cfaaadd6235e5a38fca55e0e158cbec4f37d0
MD5 94da5e7f5123a7eaa25215f838467a10
BLAKE2b-256 1302a5768aa2afe5f9f7c4113c384a75d2837aa6df7621d15c71ec0264520789

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 7ae8c130b75ad9d875a3404006f59f575ebe8695dda1e1d8627da5500a61cf6f
MD5 cd9f6b2db4c1f00c714660ea837040c8
BLAKE2b-256 0103d9869669566971792cc5beb2f45d35a644c7541fc1b62e5a361637d325e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d9d5e048dfddcc8c62c97eb21a939c4d9065312732c5c2b67a4cb9b07a3ebed6
MD5 df0beebe43e55d3a916b453bb0899f24
BLAKE2b-256 b32ed7e08cd6a1b47a2bb8df6194a5b4e5f33ace4b347db2837dd7178c58469f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b22ac1e4d6c165aae4fdf4e7ccb83a261de554ea74bac0a7fe5900fd83ae25a6
MD5 e2a3d9ec32ba0142e8d7fd1eb3ccaa08
BLAKE2b-256 4772e13fecbe18f07bbec215baf2b02947d6e7e983abb508f167d06e579877ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 58a57019933069362b55723270f109465d3a3ffd1c802eaf650d9969bc4a8fcc
MD5 77fecb4badab33d3e3aa63a02a819c0e
BLAKE2b-256 9e04a79c0551612bcbec84aad8b0dc246fd50f6273838fec656163c044d95edf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d0c056a6137087ee3a0edad888017ed19b97affa0155c2277f8f4a503c2b8de6
MD5 3b9994715cf533ab903d4dc3f4b2e88b
BLAKE2b-256 ae8c574b169b48db6b32fc13f31f4f34a2b095095c7fc0da315f79b66d8f4bdf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d3a0a2ff7e024d3cd24786a1c24f745379216990ddae5cca0e0de06a1c371213
MD5 f66268f8bb0850e5ae8128b4114bff6e
BLAKE2b-256 82dc856ceb233a02bd539a151d4e733cd9132779a4ff572312038df318a0e6f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4a75e42e5dbd2060c685dbc2b7fcf4344b6d06e4b4fdcec15b43836a478bc7ec
MD5 10930cb7d5f74d77ed5741acc658c600
BLAKE2b-256 3106cebcd05af762de355e19d936dca37851e737711e5ecba4fda499ebd14791

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 bb9c3c1c9970919b9720d607564a85eca87f03da863402d41b2f00f7b2174e48
MD5 c6641df63732e1434b903eeb3b2f4563
BLAKE2b-256 c1574ce7d3c60363326f9631bda8f56782fb884b71384f6723af7cb81120b45a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f987b8f2ee1bdc9d518cc2a117bb1fee126421bd63ed5196e3d7bded79443b0a
MD5 aed86c1b84dc403277e8c356e22caf86
BLAKE2b-256 24a4ee05ca80a95238b6172108574b3315b5aa4f3d4296a6fe558e8a4e7d81bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 56a9c16a1e0ed9955da1a2a52667df53e45fb7b3461973840682267176a28db0
MD5 bd637b4ec80e731bfd41c018940dead3
BLAKE2b-256 9a5be514d35155672eaff8bc6a38200987d51f40752619eb3f67f975fc20c6b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 f64fc19dc688e5b0f0a31b241cd1ec4dba87f5f19e3f602ab61e12563d324509
MD5 14c0067dca37526194a9c34e462d61a8
BLAKE2b-256 54a63cba8847895099f550bc0d47cddf1b8589a6bff09440abe79db3a435c434

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 ce2ecc5a35ca4b597c943469c353946c1da7cb54e3a26dfdd5263edb18d57ad4
MD5 5b24dd26eab7d777ba12fcdace160659
BLAKE2b-256 435d30f31cfbf5fc631c66571d2afe8d80cc417f924f8252723b252a3dff99d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3882fe0456ae3b99c7100e495dcd58b7ea371ee2c73e8bf62cff6df6177dccbf
MD5 9c1251ad7f4fc7a3cf5ed4da6f8a3f97
BLAKE2b-256 0d4c7a0e026f81267a289b807d71d876598590464e62431ff0036ba7346efb23

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4d607eed529dc86b5e5d0e87744581b54750c218dc03a82bd90681d4a922e37f
MD5 b07bfcc8c108a50861744d4d69ea1748
BLAKE2b-256 627fab53745e2b675d7a961b3671bb4d53836f28fffb49c5fc60e3d8fae65d68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0bbf4d091b6eed18a9a560658920673e3be01b9f1acb8d8b07b4c0ac5da8a7e1
MD5 f292d84bd47736760ab48162356478c5
BLAKE2b-256 0d957dcdf31c2b0be55d95f9ff1564e6625f8b9cdc47a31c4b1ea7d74b2a2582

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8ae7c79a92ea0ef08223929743fee78ba3c30f99527c4d863cb1facbf50414a2
MD5 f42c710003ad3fed010f9e950a5ad133
BLAKE2b-256 c8cfea7b66879e5b64684a03690335b9aeb3f1c2ed5ae862ca158cc6b5f69675

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pglast-5.5-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.6

File hashes

Hashes for pglast-5.5-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 fa04e4c472779e0d8ce080c3503d86812e27ba85ee2127e3baf592c090a10bf4
MD5 451f56ff069cd8174650fd454b9c1e4d
BLAKE2b-256 ab9ee5876f204d0780bc9f57ab9629e187d318d08ac9ab89b37d78477c01e915

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pglast-5.5-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.6

File hashes

Hashes for pglast-5.5-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 3df9575f1950102260d0f21a22e1769e530e1c887f141729216511fb658f16b2
MD5 5c2c5b91c42819c8d075bb680d05e417
BLAKE2b-256 f2c7b05261d84de2c5c8f1c717cf7e039c78856b08ff59655aa3039db9d98f1a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d9bad588cb19cff71fbbfb7efd4031cafbab0e2bbca6b05ffd0d5b1e858a3c93
MD5 ca3494b77f5420eb0ab4b694debb1ad6
BLAKE2b-256 d193d5ae8829e46ec3d6ac93fa0a1d3de949d0277a9f2b3e7ca56627eef1afbb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3b7021286f9561fbab359e250f9ef62a33b5d9491b9321b42b8f6a919ed15898
MD5 f83ec9ea5088884fbf30a9bb76ee249f
BLAKE2b-256 99ceae18b7ecc93c09144da74df1565ac65ac82f6bcc1dd0af8d325ad79a153d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 97b0d42c40f2062c549a836d34a65389abf2ce5e30dd344b3e0ad615c533b4e6
MD5 6697d3037c68b0de6d53b79c6d6f40d6
BLAKE2b-256 9945f71048ea753d40210e9908dc3a7c82dfe4c5321b0683377929027b82b75f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 436a1511c3c321d2351eb5e6dee93d0d86a44f7e1d685df7faadc73e6705cc62
MD5 79cadb142dc41a0a4f9bd63fa7afca81
BLAKE2b-256 03c337e584e4fc546c19b671c7acb59f5333520cd04ec71b816111017ac410ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c00899147dd9e8fce1597622544d74688c7f3d2e7fc4bcc732d24028a070a093
MD5 33d8337253e850a802356210c374838a
BLAKE2b-256 0fb67a1022a8a5362565d31d88c2b5b3adb37b42af111209933dd5dbea9e860a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pglast-5.5-cp38-cp38-musllinux_1_1_x86_64.whl
  • Upload date:
  • Size: 5.4 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.6

File hashes

Hashes for pglast-5.5-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 202615a82f661e11925afe7f7d535b2659957dec14b03eff44ffd182ee78d1e8
MD5 831d70cef964feeff0af27938cc25f26
BLAKE2b-256 b59803b6af5a51f3a9b25551d731429ef12277a6e34c6101a6039c5d6c8c5208

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pglast-5.5-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.6

File hashes

Hashes for pglast-5.5-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 e99e0477ca4317ead07ad0c1fc90f2bbdb0b25992b8fb27cf23b3e3fe017c249
MD5 088fe11db6351bd974a3201a027972f5
BLAKE2b-256 f03ee6789c21b41ef1a234992a1c34c0cd480404b5248c41f21e8fad0b8d9476

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d37022814365f4e76314539b2b72d94777e95b2af47cc717d468ef2d6985c8f5
MD5 301e3592dec8c2e6da77ac2869a0ff7b
BLAKE2b-256 36e1e21d00720d8b3ced39eca1e28bbe3323e2ca87a72b9b134bf88fcc3fb4c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3c4dad512f41beaa6e60c62e75cba9bf79f4ee791c8e5524cd7ad0d7cb0f72f8
MD5 4e5541ab6eaf5d128e8ed21c1a4b2be3
BLAKE2b-256 6afcebf44f9f09b166ab5878fa8a1b46f4b9c0c45264085692aa6ed33d1137bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7d2f2ea1b6e23ead507b0214a0c66739d29291543c111eb50d8c99980896ec27
MD5 8da4289fe248af26586dda99bc076fe2
BLAKE2b-256 8178aa1a45b60b9baecb1650d3f090cdc74f6e35527a82137098741766f2d9ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0c62c8d826db062d5817953e08980f8e66c020a571f5d35ad3a8df21625e46f8
MD5 d99db003b95048dc46ad4be32ef8b8e4
BLAKE2b-256 9fa8bea9eeffc3c1a367043c581c12647b51e31b648c11dce1559e8cfeaa1654

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pglast-5.5-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 af63fbda695b2ede89157e66cc13afd4cadfadd02d17ea2eaf50928548f67326
MD5 9baa4c83797feafc0b60e9ee7153fb18
BLAKE2b-256 64b61e6706a9356bc4effdcf21a6c4e856a8ec023c5018cca9460f2867509676

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