PostgreSQL Languages AST and statements prettifier
Project description
- Contact:
- lele@metapensiero.it
- License:
- Status:
- Version:
- 6
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/v6
Changes
Version 6
6.10 (2024-11-01)
Upgrade libpg_query to 16-5.2.0
6.9 (2024-10-31)
Fix regression introduced by recent modification to the CommonTableExpr printer that impacted on the RawStream renderer (issue #163)
Expose the RawStream renderer in the CLI tool with a new --normalize option
6.8 (2024-10-29)
6.7 (2024-10-28)
Generate wheels on PyPI using Python 3.13.0 final release, thanks to cibuildwheel 2.21.3
Improve CommonTableExpr printer, reducing horizontal space waste
6.6 (2024-09-30)
Make recently introduced doctest related to issue #88 work on different Python versions
6.5 (2024-09-29)
6.4 (2024-09-28)
6.3 (2024-08-06)
Fix SEQUENCE NAME in create_seq_stmt_def_elem (PR #151), thanks to orages
Generate wheels on PyPI using Python 3.13.0rc1 release, thanks to cibuildwheel 2.20.0
Use Cython 3.0.11
6.2 (2024-02-01)
Almost no-op release to fix issue 144, producing correct wheels for macOS arm64
6.1 (2024-01-22)
6.0 (2024-01-22)
Produce wheels for macOS arm64
6.0.dev2 (2024-01-21)
Enable compilation on Windows and produce related 32bit and 64bit wheels (issue #7)
6.0.dev1 (2024-01-11)
Re-enable Linux 32bit wheels, thanks to libpg_query to 16-5.1.0
6.0.dev0 (2023-12-29)
No visible changes with respect to v5, apart from the support for new/revised syntaxes of PostgreSQL 16
Do not build binary wheels for Python 3.8
Skip compilation on Linux 32bit (see this comment for details)
Breaking changes
Target PostgreSQL 16, thanks to libpg_query 16-5.0.0
Version 5
5.9 (2024-01-22)
Fix issue 143, affecting AlterOwnerStmt and RenameStmt printers
5.8 (2024-01-11)
Fix issue #142, a glitch that affected 32-bit systems
5.7 (2023-12-23)
Use Cython 3.0.7
Update libpg_query to 15-4.2.4
5.6 (2023-12-07)
Fix issue #138, a defect that hindered the creation of AST nodes that act as markers, (currently A_Star and CheckPointStmt), that do not carry any other information
Use Cython 3.0.6
Handle the ENABLE TRIGGER ALL in AlterTableCmd
Fix issue #136, a regression introduced by “Avoid overly abundancy of parentheses in expressions”
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)
Update libpg_query to 15-4.2.3
5.2 (2023-05-20)
Update libpg_query to 15-4.2.1
5.1 (2023-02-28)
Merge version 4.2 changes
5.0 (2023-02-19)
No changes
5.0.dev1 (2023-02-11)
Update libpg_query to 15-4.2.0
Breaking changes
Change the type of the ast.Float value from Decimal to str
Using a Decimal implies potential differences in the representation of floating numbers, and already caused issues (#91 and #100) in the past, making it impossible to render, say, SELECT 0.0e1, due to the fact that Decimal('0.0e1') resolves to Decimal('0').
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)
Use Cython 3.0.2
4.4 (2023-08-24)
Fix issues #129 and #130 (merged from version 3.18)
4.3 (2023-04-27)
Fix serialization issue when column’s DEFAULT value is an expression
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)
Update libpg_query to final 14-3.0.0
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)
Update libpg_query to 13-2.2.0
3.15 (2022-10-17)
3.14 (2022-08-08)
Harden the way Visitor handle modifications to the AST (issue #107)
3.13 (2022-06-29)
Update libpg_query to 13-2.1.2
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)
3.7 (2021-10-13)
Update libpg_query to 13-2.1.0
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)
Update libpg_query to 13-2.0.6
3.2 (2021-06-25)
Effectively include libpg_query’s vendored sources (issue #82)
3.1 (2021-06-25)
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)
1.11 (2020-05-08)
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)
1.5 (2019-06-04)
1.4 (2019-04-06)
1.3 (2019-03-28)
1.2 (2019-02-13)
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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for pglast-6.10-cp313-cp313-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8cf7f2d815b8365bc86becf1bbb7f8a8530a2e585566699b077e1bab6d87ffc4 |
|
MD5 | d5e75adac6aa567eaa8cd5d0940d38ec |
|
BLAKE2b-256 | 0e7cd1ece375ac9d16008e1ed35dbb263bd6977f483c9fa2ccd7da53ead3eeea |
Hashes for pglast-6.10-cp313-cp313-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0127a00df893bebb9d2f7f194359ba9a5a68966861c3f7e743d52175be5fb55c |
|
MD5 | ccefae78f383daae8eb841346032f399 |
|
BLAKE2b-256 | f2585f3aac85ebe38bdd387ffe7cf58df43e5089938f195703a8bb1047f5d0cf |
Hashes for pglast-6.10-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | caeef80056ef71b291f239439cad9bb8b80f1841d60977149ec09463aa80692e |
|
MD5 | 078a03c4c8dcec41a5c1099390fe82a6 |
|
BLAKE2b-256 | 5dbf2e440a57db2386b94260f9ce3b9251026b2b13c3a962e27826f5dd24566e |
Hashes for pglast-6.10-cp313-cp313-musllinux_1_2_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 454c64c55858d160cacb130d4469a859a58a1a07423f652aa937ebfe927a59e0 |
|
MD5 | adc9a2b60578d0f2f2421cd89271eb4f |
|
BLAKE2b-256 | 5598df6f9d144e5ccbf6a81ca405d43128d84ca15b262dcbc152707d814a43bf |
Hashes for pglast-6.10-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94d1becbc20d4baad034b5658cf0a704bdf273e3566d0b405cc809c44647dd3a |
|
MD5 | e391574e74a4433976bfe8b3397ef196 |
|
BLAKE2b-256 | cd2e9703b17bc63980b66c169e885c9ec577f27d91c5836ea508c87dd04a2377 |
Hashes for pglast-6.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9fd5a93aad8e14381947851b65311398e22bd090ed3a44d4d3fbbd0bce5360aa |
|
MD5 | 612c988e27adb8e4d71ee28e4c9722f3 |
|
BLAKE2b-256 | 06c65828300ead198b8a3e82659503a9e4070db408cecda5bec4eaf8bfda5524 |
Hashes for pglast-6.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82f4eb299b046c8629801fef82ed15841b9c2f8435e1dbc89eed636befca8e9c |
|
MD5 | 8007bc0cf3838e46c90ae96797856ed8 |
|
BLAKE2b-256 | 6f5219932ee792ae0b08aec2a1dad255d6bd793eaf05662bd8b5051048228825 |
Hashes for pglast-6.10-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd49d181eab393dd6cc74ef020cd3f072c17ecfb174a06035857bb8c3890dc7c |
|
MD5 | 36308d304563c53f20c6848c8f6dee84 |
|
BLAKE2b-256 | 6901baef3019af1f3f4bf1984d621cf2a2c5b7fc7ff4d02c0aa5f1c595170918 |
Hashes for pglast-6.10-cp313-cp313-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a650c9be20153a4b4e09bbe56a68baba2de7f875314319e69b3a1908e96e3886 |
|
MD5 | c489d9f28c02d6c65dbeeef450c1832b |
|
BLAKE2b-256 | ac3210468e156fbae484616cb31640ef653b355af7be666c90225b16d3fb3080 |
Hashes for pglast-6.10-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd708afd2509d6b99cfd23f734b97d1da9ee9fda2e463815e38de988501a7974 |
|
MD5 | 076b3dfa195bee8ec7bb407c9f4be551 |
|
BLAKE2b-256 | 0276532052fb24df11cb3b61c8ffaf76ea6e26b62028a35b90b6ecb190a52446 |
Hashes for pglast-6.10-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34240ef57b74bb3460efde6e8df5a717ee263bcd934ac259652810e0e31be9b3 |
|
MD5 | 00483bb1501f4bc71922eaeae941ae78 |
|
BLAKE2b-256 | 2f3acdf8c98517ec0abd96a81d3dde5ae7b6b3a96e72d5e6f6f27b53d5c4fde8 |
Hashes for pglast-6.10-cp312-cp312-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8f6fd1782bcfb4bb99c03e33e06aeefae7a9e90363bba869cc054859a0ffb86 |
|
MD5 | 237e2985485854d2673cb292c7a0a8d8 |
|
BLAKE2b-256 | 1acb2aa5edda1cac6e703315505c0a73e6f184de65947612b3b303286025971f |
Hashes for pglast-6.10-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19a41a3a80fe9722aeaa1f229b652d62b5dcf6d0e36a898ec42493f94ccac2e3 |
|
MD5 | e068f21187db494e2c183672efbe2d1a |
|
BLAKE2b-256 | 22981930876f6e983beb9fd9bd1f66be27f29e647aa2e7a8700070ce96a9bc06 |
Hashes for pglast-6.10-cp312-cp312-musllinux_1_2_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9803bda186a7917364a1c4d80c206cdd90fe137e5484b6b083f8d4a53762362 |
|
MD5 | 8e11fe37de4626fb1d9a601bb160d56d |
|
BLAKE2b-256 | 0eb66537283dfb84d74ce739f8687834ac807c1486c6a0efe336e72f2cb3e82b |
Hashes for pglast-6.10-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 671e292efb168bc66360b0ea42307167d1828ce70450e9eae7c0dbdee8283284 |
|
MD5 | be6987b109487167f73f341867d4e9d6 |
|
BLAKE2b-256 | c98b9a85f0113c9b157b3de18e2b098d3f0d237b0a9948fbfc958d9981bbdecd |
Hashes for pglast-6.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9befa733a57b6a7704f02f9ae7ca8686608ceb2ba05498284940ca53fae313db |
|
MD5 | a606da1ac43dacf431e88a2930fcab29 |
|
BLAKE2b-256 | de931a7b4131943718b613795e666a7284f14d2ccfc93232f5e0521d9b79e302 |
Hashes for pglast-6.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac7d6d6478a0b85489983eb2839c140a3fc0301d5cdf801a583fbf31791f753d |
|
MD5 | eee7647d60a7bd1f6a0e3abe071e106c |
|
BLAKE2b-256 | fff56fc116cf36f82ffb384a948520f4e8b8050f55505cf316a1b87515002378 |
Hashes for pglast-6.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e3a153c7b62c4a20b83737610711be80657f5ab660143a97110a01a4b4b26e0 |
|
MD5 | c3e6b06b6d5546e2701e120c7972a98b |
|
BLAKE2b-256 | b6685ac17582ab2856f1691d2410b79c43f0dcfe85bbb060a25530465e149706 |
Hashes for pglast-6.10-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a4955545b1ba0cd9bb23bd9879921333feab1fee5430af87ea406d3dc797dca |
|
MD5 | a0b9e8086145009783504e3dba11d26e |
|
BLAKE2b-256 | 72812ae870adc857db248c93f6e51d65a545007612cda2e2eebb79c3855e6d1d |
Hashes for pglast-6.10-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b422049d034ebcac021302a0be864d9a5edaf1f82b0e09181648d4ed41d71fe4 |
|
MD5 | 67f5daf4ae79ce14a436b2584aa4befb |
|
BLAKE2b-256 | b4f6509773bac9e63e866b945ce856d15348c14aeff001df23d4e6b1bd4d08af |
Hashes for pglast-6.10-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a34e69866b241360869bec2e2896b839c43c2a9c96cc31d5a80819d465efe942 |
|
MD5 | b0fa5cf3cbdff1d0d9b235d279028f9e |
|
BLAKE2b-256 | c5f3fde7f4edd856564a25c7b77a6284909cd6c423a2b5d0dfb0ae2a9f269ad6 |
Hashes for pglast-6.10-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5f3dae82e9f25ee41a6c3bb4ab93e2bab6b803883171a76b9185a15fd9996a7 |
|
MD5 | 48156a66e18ad76329041937baef49a1 |
|
BLAKE2b-256 | e88d98b398ea60e20a940417b25959b88c5cf3f943fb9af45a3f71c03ef3e997 |
Hashes for pglast-6.10-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2e7bb4afc0246c9f921db15dba3fe56a8a00e47993393f0edb500e9a0c34b40 |
|
MD5 | 890153d0d294ec4b1274fea863e37d0b |
|
BLAKE2b-256 | 6d2d6f421136072d3efe682b2d9ac19f0e02e0965b29667403a693a162139e9e |
Hashes for pglast-6.10-cp311-cp311-musllinux_1_2_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27a57ba7aa13f87948e99f050e0e2b84f8f3d045b3d9f8f66b201947075eaeae |
|
MD5 | 22008352d416d0eddcd2ea8a3ee2f8cc |
|
BLAKE2b-256 | 701d91ca04ccb3591cfe68a5a6b123a1fe5ace4ddf063303cb217a34b53eb56a |
Hashes for pglast-6.10-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0b12e062ab61e8fc4e96019e5863de88acde1d2f277d86a949ebac27254a083 |
|
MD5 | e4c692fe8e30e572b4010e7660d77de7 |
|
BLAKE2b-256 | 58c37c684a4365b01002bf329c16aec4194f154252d5b848004a4c822750a36c |
Hashes for pglast-6.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f748b2396c632d415b6ed695cfe91bac84f5d7a485b1f6545cc7e451d29b96f |
|
MD5 | 5ebbf40d22bd0ee737c8319cb4de00cb |
|
BLAKE2b-256 | 6f007437f7513ac73f9b49b1f1c7d4a0e4609f047a88f2e7bbbf501e303625de |
Hashes for pglast-6.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 418ad0ba0666e14db63a0a9ef095896060993e50a45a5a5a2229bee27adecf81 |
|
MD5 | 845c716eafe32e183c57f01adc13b4f5 |
|
BLAKE2b-256 | 8138984fd6d4d7d9342e08bbdc55c17f06b3c4f587d28589b14b2ba71dd23550 |
Hashes for pglast-6.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf4dcd6662cdcc208fec537bc57502fa9e6b4c5a277a63bb2333b084163599f4 |
|
MD5 | 609e170fcc9bac16c52c981461e3dd94 |
|
BLAKE2b-256 | 38d56a727623c0bb55c1f537b7e2e2e87f2659055f973fce51918c54e8f8fdc4 |
Hashes for pglast-6.10-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca6129a243b028d8b288d59e71535cd1f2c5372f291dffab3e1e6b4a393ecd7c |
|
MD5 | d3513c57824de57a79db5eadb50c22bf |
|
BLAKE2b-256 | 63b9d10a766895a6dcaa0235a76da8359086d474a97b73e8be1cc476b4228133 |
Hashes for pglast-6.10-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 23c1bf7f3d8bc7c45852d11f7938a51b6da2d1e77c9e9f2b720fb02dfbb59ef3 |
|
MD5 | 0b46b86e60ccd80959520fcf4d06d67c |
|
BLAKE2b-256 | f53fca409ee30c2699d8ff055b0f0747d66de74b7754e446eee81dae1cbf88ec |
Hashes for pglast-6.10-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae4d131785d59bc8518371eb8f5076a772186bbe48d60829bb2c7954369a3dce |
|
MD5 | 99f491e4b56b43a1e119e436dcbc7ec9 |
|
BLAKE2b-256 | e5fd90b2e8d1ee822ecfda47c5b652c6868862cb8fafea5ccc8b96ce80c0f5ad |
Hashes for pglast-6.10-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 665e55d95dfe79d87a95a6606fc0aef09d5af98b80a3be370a0dff661b1d18d3 |
|
MD5 | f0f0c6e09edfc6f1ee4923c87080f060 |
|
BLAKE2b-256 | 379b3e77096a22726c5fbb24d0c88bfcd98bf28780adcdabd533d9e774739306 |
Hashes for pglast-6.10-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6635cbaba7284c6f037212e431b40032df23a170c5668436df2a470de7069177 |
|
MD5 | 0ab29d7a39d1981ece52322d283cd0a6 |
|
BLAKE2b-256 | 61da3fe94713a5def79a4b6ec147d1d7b2466a4e04ba1f4f970f6d830c7b57d0 |
Hashes for pglast-6.10-cp310-cp310-musllinux_1_2_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7862ef3fb295bec7c8b24d436ea2330ff70cbaee1d4e1da84d976fa3e3932b3 |
|
MD5 | b7afa42b7b9143da6c7f057b388192e7 |
|
BLAKE2b-256 | 9181a7db6dcba3ff9b845ead31ce497a6c28f6bf2ae2f8b4365aaf378de253ce |
Hashes for pglast-6.10-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dad09d783cb178aaf0dac695b1d729410e6b153832c291b180867d7f0b1800ac |
|
MD5 | 8ab23f68277594831328fa092184c612 |
|
BLAKE2b-256 | 879e7c5701b9de44acda952456abbfdaff94a9d3155363224f941e29e244f616 |
Hashes for pglast-6.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2e11800818188d5b0c3cbd3c799076213943b897520798e0666f07fcdf30722 |
|
MD5 | 0d66a0a2fce990eb9d1df52d1b5614ce |
|
BLAKE2b-256 | 7ca3eeb05c4b643cf2453fb716f6ecfd1f030806bc350d953053123d12e89474 |
Hashes for pglast-6.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 700ac6e2882e08e27f305e485100f10207458da9f0b1dcfddb8412f852c8f1c2 |
|
MD5 | 5911eca071034391dc1d9e48a676871f |
|
BLAKE2b-256 | e23a7908b9f6a39144af79877705b22c2a1d0832e15dd272796357fd05a656ec |
Hashes for pglast-6.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f020aef1b6691295bb0cc96127db5ca87345903533b1b1039cf920160cec63b2 |
|
MD5 | 021c98a2156ea396d62857e0b96f2914 |
|
BLAKE2b-256 | 248bb9f994a7b782b655ebd8da3222645d30fdb9dc9f70d28c40801373dc0a7e |
Hashes for pglast-6.10-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16c05b7c83ed25565c02e134ece2a22ac47d04f3729d527e94bc098cc32e5e11 |
|
MD5 | a57bea6a38f7d9ea913eb68b1fc9b570 |
|
BLAKE2b-256 | 5ec3b6631ac4cfaa73500b7fd09f35cc4ac721154c38b23031a213747d19a633 |
Hashes for pglast-6.10-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04468add0460b84c8ffb51341ed707c6a5e973a43f6f888e253c4bfbe308c537 |
|
MD5 | 319a1814b42d6518f37cc292d3724524 |
|
BLAKE2b-256 | e92faab8158d2ce3c99ba2cf653a77d521f3d98054b92397d187f8974603a956 |
Hashes for pglast-6.10-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf770d195b2f7a2f1fba75892ac5014e6dde76b7db8b06f60e0989b4bea72b97 |
|
MD5 | 77fbffe5c6503bb692a5c22de00c886a |
|
BLAKE2b-256 | 67c07d49092c8b918bada5283159d57ac32ae6d7d3cc72b39370abca40cd4272 |
Hashes for pglast-6.10-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db9897b724b461191f54b78fb7d6051c7fc39d0b182a71c31b0009c936fc9240 |
|
MD5 | 732724dee61b9d010d7ccbb4bd606cf7 |
|
BLAKE2b-256 | 5c94cf796e3d5f88d790a879de7889e512e370461542cd1ea5124051f4218213 |
Hashes for pglast-6.10-cp39-cp39-musllinux_1_2_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b21265dfd7bc33f6005e1c7a6eed758b065d3f9b5043bdc0ba41e6a8e6595e5 |
|
MD5 | ea91cb83352c2737cc496499cac6a8f4 |
|
BLAKE2b-256 | 3d60870b6596805d5adadeb5b7f659147cff9aac3d98ede023b274ddcfb8be01 |
Hashes for pglast-6.10-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4a29af08cd5921e03959d5e59e5acd640b53fe18adba6d279932398f68bb350 |
|
MD5 | 778a035a67a66f15be4319db4a6e809f |
|
BLAKE2b-256 | d3227e82675c5197cca07d1d7f6d4702440302d609edb88e0920ad7247cfcd36 |
Hashes for pglast-6.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 920a3148136d7c0788ce95246d825968b00ac5382ad572d90aa02e90bc1d45fb |
|
MD5 | 99a44067ed5cb73f53581281f1578059 |
|
BLAKE2b-256 | 51db9e87f97869775cf8ba3a75966752507f53e7bf2192c53e5d4fe887434b8c |
Hashes for pglast-6.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32dd43a462ef6892a57c9fd06443ba72343a755622d091382b371527dda1e2bd |
|
MD5 | 8a3e4ec624e2aa91537c959e9e6c8737 |
|
BLAKE2b-256 | 9b007ca79c4cec02c8190d4981ca6fa017f24c9db5c0dcdba9acdd93f0bcfd19 |
Hashes for pglast-6.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1632f76d71786394b5884f64a5d3bfab9ce6720cab8f7a323be0b44728d02119 |
|
MD5 | 281a125793eb59c6d7af1cfa7459abca |
|
BLAKE2b-256 | 81da75f254e9e946f2faccc5f06fbaa4be9d1ed9a3bfa89c3f564e12a98bb586 |
Hashes for pglast-6.10-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0769946c1e2a585a688fb4f08b70bf6b4f1029891791971e15f8ad9f72963581 |
|
MD5 | 9e6e4c14576a5f435985a67cffeefdf0 |
|
BLAKE2b-256 | e205707e0795a9e9585e786191df90a24fb8e5d719d7582110c70763be7f7b59 |
Hashes for pglast-6.10-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f18c0f03f10c692b87ff1331db410ab738ed237c128ddadf3ad8f0c3a3ba7e2 |
|
MD5 | 257940032bd17da852bc75c882237015 |
|
BLAKE2b-256 | b8e1f3a9a8f5aa2753eefe00643231a20235ae7c74799f0cae7cafe3a0014a8e |