{ "info": { "author": "Lele Gaifax", "author_email": "lele@metapensiero.it", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Programming Language :: SQL", "Topic :: Database", "Topic :: Utilities" ], "description": ".. -*- coding: utf-8 -*-\n.. :Project: pglast -- PostgreSQL Languages AST\n.. :Created: mer 02 ago 2017 14:49:24 CEST\n.. :Author: Lele Gaifax \n.. :License: GNU General Public License version 3 or later\n.. :Copyright: \u00a9 2017, 2018, 2019 Lele Gaifax\n..\n\n========\n pglast\n========\n\nPostgreSQL Languages AST and statements prettifier\n==================================================\n\n:Author: Lele Gaifax\n:Contact: lele@metapensiero.it\n:License: `GNU General Public License version 3 or later`__\n:Status: |build| |doc|\n\n__ https://www.gnu.org/licenses/gpl.html\n.. |build| image:: https://travis-ci.org/lelit/pglast.svg?branch=master\n :target: https://travis-ci.org/lelit/pglast\n :alt: Build status\n.. |doc| image:: https://readthedocs.org/projects/pglast/badge/?version=latest\n :target: https://readthedocs.org/projects/pglast/builds/\n :alt: Documentation status\n\nThis is a Python 3 module that exposes the *parse tree* of a PostgreSQL__ statement (extracted\nby the almost standard PG parser repackaged as a standalone static library by `libpg_query`__)\nas set of interconnected *nodes*, usually called an *abstract syntax tree*.\n\n__ https://www.postgresql.org/\n__ https://github.com/lfittl/libpg_query\n\nI needed a better SQL reformatter than the one implemented by `sqlparse`__, and was annoyed by\na few glitches (subselects__ in particular) that ruins the otherwise excellent job it does,\nconsidering that it is a generic library that tries to swallow many different SQL dialects.\n\n__ https://pypi.org/project/sqlparse/\n__ https://github.com/andialbrecht/sqlparse/issues/334\n\nWhen I found `psqlparse`__ I decided to try implementing a PostgreSQL `focused tool`__: at the\nbeginning it's been easier than I feared, but I quickly hit some shortcomings in that\nimplementation, so I opted for writing my own solution restarting from scratch, with the\nfollowing goals:\n\n__ https://github.com/alculquicondor/psqlparse\n__ https://github.com/alculquicondor/psqlparse/pull/22\n\n- target only Python 3.4+\n\n- target PostgreSQL 10\n\n- use a more dynamic approach to represent the *parse tree*, with a twofold advantage:\n\n 1. it is much less boring to code, because there's no need to write one Python class for each\n PostgreSQL node tag\n\n 2. the representation is version agnostic, it can be adapted to newer/older Elephants in a\n snap\n\n- allow exploration of parse tree in both directions, because I realized that some kinds of\n nodes require that knowledge to determine their textual representation\n\n- avoid introducing arbitrary renames of tags and attributes, so what you read in PostgreSQL\n documentation/sources\\ [*]_ is available without the hassle of guessing how a symbol has been\n mapped\n\n- use a `zero copy`__ approach, keeping the original parse tree returned from the underlying\n libpg_query functions and have each node just borrow a reference to its own subtree\n\n__ https://en.wikipedia.org/wiki/Zero-copy\n\n.. [*] Currently what you can find in the following headers:\n\n - `lockoptions.h`__\n - `nodes.h`__\n - `parsenodes.h`__\n - `pg_class.h`__\n - `primnodes.h`__\n\n__ https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/include/nodes/lockoptions.h;hb=HEAD\n__ https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/include/nodes/nodes.h;hb=HEAD\n__ https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/include/nodes/parsenodes.h;hb=HEAD\n__ https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/include/catalog/pg_class.h;hb=HEAD\n__ https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/include/nodes/primnodes.h;hb=HEAD\n\nIntroduction\n------------\n\nAt the lower level the module exposes two libpg_query functions, ``parse_sql()`` and\n``parse_plpgsql()``, that take respectively an ``SQL`` statement and a ``PLpgSQL`` statement\nand return a *parse tree* as a hierarchy of Python dictionaries, lists and scalar values. In\nsome cases these scalars correspond to some C ``typedef enums``, that are automatically\nextracted from the PostgreSQL headers mentioned above and are available as ``pglast.enums``.\n\nAt a higher level that tree is represented by three Python classes, a ``Node`` that represents\na single node, a ``List`` that wraps a sequence of nodes and a ``Scalar`` for plain values such\na *strings*, *integers*, *booleans* or *none*.\n\nEvery node is identified by a *tag*, a string label that characterizes its content that is\nexposed as a set of *attributes* as well as with a dictionary-like interface (technically they\nimplements both a ``__getattr__`` method and a ``__getitem__`` method). When asked for an\nattribute, the node returns an instance of the base classes, i.e. another ``Node``, or a\n``List`` or a ``Scalar``, depending on the data type of that item. When the node does not\ncontain the requested attribute it returns a singleton ``Missing`` marker instance.\n\nA ``List`` wraps a plain Python ``list`` and may contains a sequence of ``Node`` instances, or\nin some cases other sub-lists, that can be accessed with the usual syntax, or iterated.\n\nFinally, a ``Scalar`` carries a single value of some type, accessible through its ``value``\nattribute.\n\nOn top of that, the module implements two serializations, one that transforms a ``Node`` into a\n*raw* textual representation and another that returns a *prettified* representation. The latter\nis exposed by the ``pgpp`` CLI tool, see below for an example.\n\nInstallation\n------------\n\nAs usual, the easiest way is with pip::\n\n $ pip install pglast\n\nAlternatively you can clone the repository::\n\n $ git clone https://github.com/lelit/pglast.git --recursive\n\nand install from there::\n\n $ pip install ./pglast\n\nDevelopment\n-----------\n\nThere is a set of *makefiles* implementing the most common operations, a ``make help`` will\nshow a brief table of contents. A comprehensive test suite, based on pytest__, covers 98% of\nthe source lines.\n\n__ https://docs.pytest.org/en/latest/\n\nExamples of usage\n-----------------\n\n* Parse an ``SQL`` statement and get its *AST* root node::\n\n >>> from pglast import Node, parse_sql\n >>> root = Node(parse_sql('SELECT foo FROM bar'))\n >>> print(root)\n None=[1*{RawStmt}]\n\n* Recursively traverse the parse tree::\n\n >>> for node in root.traverse():\n ... print(node)\n ...\n None[0]={RawStmt}\n stmt={SelectStmt}\n fromClause[0]={RangeVar}\n inh=\n location=<16>\n relname=<'bar'>\n relpersistence=<'p'>\n op=<0>\n targetList[0]={ResTarget}\n location=<7>\n val={ColumnRef}\n fields[0]={String}\n str=<'foo'>\n location=<7>\n\n As you can see, the ``repr``\\ esentation of each value is mnemonic: ``{some_tag}`` means a\n ``Node`` with tag ``some_tag``, ``[X*{some_tag}]`` is a ``List`` containing `X` nodes of that\n particular kind\\ [*]_ and ```` is a ``Scalar``.\n\n* Get a particular node::\n\n >>> from_clause = root[0].stmt.fromClause\n >>> print(from_clause)\n fromClause=[1*{RangeVar}]\n\n* Obtain some information about a node::\n\n >>> range_var = from_clause[0]\n >>> print(range_var.node_tag)\n RangeVar\n >>> print(range_var.attribute_names)\n dict_keys(['relname', 'inh', 'relpersistence', 'location'])\n >>> print(range_var.parent_node)\n stmt={SelectStmt}\n\n* Iterate over nodes::\n\n >>> for a in from_clause:\n ... print(a)\n ... for b in a:\n ... print(b)\n ...\n fromClause[0]={RangeVar}\n inh=\n location=<16>\n relname=<'bar'>\n relpersistence=<'p'>\n\n* Reformat a SQL statement\\ [*]_ from the command line::\n\n $ echo \"select a,b,c from sometable\" | pgpp\n SELECT a\n , b\n , c\n FROM sometable\n\n $ echo \"select a,b,c from sometable\" | pgpp -c\n SELECT a,\n b,\n c\n FROM sometable\n\n $ echo 'update \"table\" set value=123 where value is null' | pgpp\n UPDATE \"table\"\n SET value = 123\n WHERE value IS NULL\n\n $ echo \"\n insert into t (id, description)\n values (1, 'this is short enough'),\n (2, 'this is too long, and will be splitted')\" | pgpp -s 20\n INSERT INTO t (id, description)\n VALUES (1, 'this is short enough')\n , (2, 'this is too long, an'\n 'd will be splitted')\n\n* Programmatically reformat a SQL statement::\n\n >>> from pglast import prettify\n >>> print(prettify('delete from sometable where value is null'))\n DELETE FROM sometable\n WHERE value IS NULL\n\nDocumentation\n-------------\n\nLatest documentation is hosted by `Read the Docs`__ at http://pglast.readthedocs.io/en/latest/\n\n__ https://readthedocs.org/\n\n\n.. [*] This is an approximation, because in principle a list could contain different kinds of\n nodes, or even sub-lists in some cases: the ``List`` representation arbitrarily shows\n the tag of the first object.\n\n.. [*] Currently this covers most `DML` statements such as ``SELECT``\\ s, ``INSERT``\\ s,\n ``DELETE``\\ s and ``UPDATE``\\ s, fulfilling my needs, but I'd like to extend it to\n handle also `DDL` statements and, why not, `PLpgSQL` instructions too.\n\n\n.. -*- coding: utf-8 -*-\n\nChanges\n-------\n\n1.6 (2019-09-04)\n~~~~~~~~~~~~~~~~\n\n- Fix issue with boolean expressions precedence (`issue #29`__)\n\n __ https://github.com/lelit/pglast/issues/29\n\n- Implement ``BitString`` printer\n\n- Support ``LEAKPROOF`` option (`PR #31`__), thanks to Ronan Dunklau\n\n __ https://github.com/lelit/pglast/pull/31\n\n- Support ``DEFERRABLE INITIALLY DEFERRED`` option (`PR #32`__), thanks to Ronan Dunklau\n\n __ https://github.com/lelit/pglast/pull/32\n\n\n1.5 (2019-06-04)\n~~~~~~~~~~~~~~~~\n\n- Fix issue with ``RETURNS SETOF`` functions, a more general solution than the one proposed by\n Ronan Dunklau (`PR #22`__)\n\n __ https://github.com/lelit/pglast/pull/22\n\n- Allow more than one empty line between statements (`PR #26`__), thanks to apnewberry\n\n __ https://github.com/lelit/pglast/pull/26\n\n\n1.4 (2019-04-06)\n~~~~~~~~~~~~~~~~\n\n- Fix wrap of trigger's WHEN expression (`issue #18`__)\n\n __ https://github.com/lelit/pglast/issues/18\n\n- Support for variadic functions (`PR #19`__), thanks to Ronan Dunklau\n\n __ https://github.com/lelit/pglast/pull/19\n\n- Support ORDER / LIMIT / OFFSET for set operations (`PR #20`__), thanks to Ronan Dunklau\n\n __ https://github.com/lelit/pglast/pull/20\n\n- Implement ``ConstraintsSetStmt`` and improve ``VariableSetStmt`` printers\n\n\n1.3 (2019-03-28)\n~~~~~~~~~~~~~~~~\n\n- Support ``CROSS JOIN`` and timezone modifiers on time and timestamp datatypes (`PR #15`__),\n thanks to Ronan Dunklau\n\n __ https://github.com/lelit/pglast/pull/15\n\n- Many new printers and several enhancements (`PR #14`__), thanks to Ronan Dunklau\n\n __ https://github.com/lelit/pglast/pull/14\n\n- Expose the package version as pglast.__version__ (`issue #12`__)\n\n __ https://github.com/lelit/pglast/issues/12\n\n\n1.2 (2019-02-13)\n~~~~~~~~~~~~~~~~\n\n- Implement new `split()` function (see `PR #10`__)\n\n __ https://github.com/lelit/pglast/pull/10\n\n- Implement ``BooleanTest`` printer (`issue #11`__)\n\n __ https://github.com/lelit/pglast/issues/11\n\n\n1.1 (2018-07-20)\n~~~~~~~~~~~~~~~~\n\n- No visible changes, but now PyPI carries binary wheels for Python 3.7.\n\n\n1.0 (2018-06-16)\n~~~~~~~~~~~~~~~~\n\n.. important:: The name of the package has been changed from ``pg_query`` to ``pglast``, to\n satisfy the request made by the author of ``libpg_query`` in `issue #9`__.\n\n This affects both the main repository on GitHub, that from now on is\n ``https://github.com/lelit/pglast``, and the ReadTheDocs project that hosts the\n documentation, ``http://pglast.readthedocs.io/en/latest/``.\n\n I'm sorry for any inconvenience this may cause.\n\n__ https://github.com/lelit/pglast/issues/9\n\n\n0.28 (2018-06-06)\n~~~~~~~~~~~~~~~~~\n\n- Update libpg_query to 10-1.0.2\n\n- Support the '?'-style parameter placeholder variant allowed by libpg_query (details__)\n\n__ https://github.com/lfittl/libpg_query/issues/45\n\n\n0.27 (2018-04-15)\n~~~~~~~~~~~~~~~~~\n\n- Prettier JOINs representation, aligning them with the starting relation\n\n\n0.26 (2018-04-03)\n~~~~~~~~~~~~~~~~~\n\n- Fix cosmetic issue with ANY() and ALL()\n\n\n0.25 (2018-03-31)\n~~~~~~~~~~~~~~~~~\n\n- Fix issue in the safety belt check performed by ``pgpp`` (`issue #4`__)\n\n__ https://github.com/lelit/pglast/issues/4\n\n\n0.24 (2018-03-02)\n~~~~~~~~~~~~~~~~~\n\n- Implement ``Null`` printer\n\n\n0.23 (2017-12-28)\n~~~~~~~~~~~~~~~~~\n\n- Implement some other DDL statements printers\n\n- New alternative style to print *comma-separated-values* lists, activated by a new\n ``--comma-at-eoln`` option on ``pgpp``\n\n\n0.22 (2017-12-03)\n~~~~~~~~~~~~~~~~~\n\n- Implement ``TransactionStmt`` and almost all ``DROP xxx`` printers\n\n\n0.21 (2017-11-22)\n~~~~~~~~~~~~~~~~~\n\n- Implement ``NamedArgExpr`` printer\n\n- New alternative printers for a set of *special functions*, activated by a new\n ``--special-functions`` option on ``pgpp`` (`issue #2`__)\n\n__ https://github.com/lelit/pglast/issues/2\n\n\n0.20 (2017-11-21)\n~~~~~~~~~~~~~~~~~\n\n- Handle special de-reference (``A_Indirection``) cases\n\n\n0.19 (2017-11-16)\n~~~~~~~~~~~~~~~~~\n\n- Fix serialization of column labels containing double quotes\n\n- Fix corner issues surfaced implementing some more DDL statement printers\n\n\n0.18 (2017-11-14)\n~~~~~~~~~~~~~~~~~\n\n- Fix endless loop due to sloppy conversion of command line option\n\n- Install the command line tool as ``pgpp``\n\n\n0.17 (2017-11-12)\n~~~~~~~~~~~~~~~~~\n\n- Rename printers.sql to printers.dml (**backward incompatibility**)\n\n- List printer functions in the documentation, referencing the definition of related node type\n\n- Fix inconsistent spacing in JOIN condition inside a nested expression\n\n- Fix representation of unbound arrays\n\n- Fix representation of ``interval`` data type\n\n- Initial support for DDL statements\n\n- Fix representation of string literals containing single quotes\n\n\n0.16 (2017-10-31)\n~~~~~~~~~~~~~~~~~\n\n- Update libpg_query to 10-1.0.0\n\n\n0.15 (2017-10-12)\n~~~~~~~~~~~~~~~~~\n\n- Fix indentation of boolean expressions in SELECT's targets (`issue #3`__)\n\n__ https://github.com/lelit/pglast/issues/3\n\n\n0.14 (2017-10-09)\n~~~~~~~~~~~~~~~~~\n\n- Update to latest libpg_query's 10-latest branch, targeting PostgreSQL 10.0 final\n\n\n0.13 (2017-09-17)\n~~~~~~~~~~~~~~~~~\n\n- Fix representation of subselects requiring surrounding parens\n\n\n0.12 (2017-08-22)\n~~~~~~~~~~~~~~~~~\n\n- New option ``--version`` on the command line tool\n\n- Better enums documentation\n\n- Release the GIL while calling libpg_query functions\n\n\n0.11 (2017-08-11)\n~~~~~~~~~~~~~~~~~\n\n- Nicer indentation for JOINs, making OUTER JOINs stand out\n\n- Minor tweaks to lists rendering, with less spurious whitespaces\n\n- New option ``--no-location`` on the command line tool\n\n\n0.10 (2017-08-11)\n~~~~~~~~~~~~~~~~~\n\n- Support Python 3.4 and Python 3.5 as well as Python 3.6\n\n\n0.9 (2017-08-10)\n~~~~~~~~~~~~~~~~\n\n- Fix spacing before the $ character\n\n- Handle type modifiers\n\n- New option ``--plpgsql`` on the command line tool, just for fun\n\n\n0.8 (2017-08-10)\n~~~~~~~~~~~~~~~~\n\n- Add enums subpackages to the documentation with references to their related headers\n\n- New ``compact_lists_margin`` option to produce a more compact representation when possible\n (see `issue #1`__)\n\n__ https://github.com/lelit/pglast/issues/1\n\n\n0.7 (2017-08-10)\n~~~~~~~~~~~~~~~~\n\n- Fix sdist including the Sphinx documentation\n\n\n0.6 (2017-08-10)\n~~~~~~~~~~~~~~~~\n\n- New option ``--parse-tree`` on the command line tool to show just the parse tree\n\n- Sphinx documentation, available online\n\n\n0.5 (2017-08-09)\n~~~~~~~~~~~~~~~~\n\n- Handle some more cases when a name must be double-quoted\n\n- Complete the serialization of the WindowDef node, handling its frame options\n\n\n0.4 (2017-08-09)\n~~~~~~~~~~~~~~~~\n\n- Expose the actual PostgreSQL version the underlying libpg_query libray is built on thru a new\n ``get_postgresql_version()`` function\n\n- New option `safety_belt` for the ``prettify()`` function, to protect the innocents\n\n- Handle serialization of ``CoalesceExpr`` and ``MinMaxExpr``\n\n\n0.3 (2017-08-07)\n~~~~~~~~~~~~~~~~\n\n- Handle serialization of ``ParamRef`` nodes\n\n- Expose a ``prettify()`` helper function\n\n\n0.2 (2017-08-07)\n~~~~~~~~~~~~~~~~\n\n- Test coverage at 99%\n\n- First attempt at automatic wheel upload to PyPI, let's see...\n\n\n0.1 (2017-08-07)\n~~~~~~~~~~~~~~~~\n\n- First release (\"Hi daddy!\", as my soul would tag it)", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/lelit/pglast", "keywords": "postgresql parser sql prettifier", "license": "GPLv3+", "maintainer": "", "maintainer_email": "", "name": "pglast", "package_url": "https://pypi.org/project/pglast/", "platform": "", "project_url": "https://pypi.org/project/pglast/", "project_urls": { "Homepage": "https://github.com/lelit/pglast" }, "release_url": "https://pypi.org/project/pglast/1.6/", "requires_dist": null, "requires_python": "", "summary": "PostgreSQL Languages AST and statements prettifier", "version": "1.6" }, "last_serial": 5779681, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "025e8ff4676e4eaf9137fadec8121c65", "sha256": "f58a82a32d88129b1208c4f087bde43482b4c63a8f626aeff8f1c7ec6fdb6041" }, "downloads": -1, "filename": "pglast-1.0-cp34-cp34m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "025e8ff4676e4eaf9137fadec8121c65", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 1019625, "upload_time": "2018-06-16T09:58:15", "url": "https://files.pythonhosted.org/packages/ca/51/f1914ab0b06190da568e619e5d164665ef6ebe583816a0419dd81dc2d8f2/pglast-1.0-cp34-cp34m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "7c985aa6e7f006047edd4f950af273d4", "sha256": "5df614ef0ff93c29c3da7a6b948f33d30424e8d433fffd0fdf208bc5db9b708b" }, "downloads": -1, "filename": "pglast-1.0-cp34-cp34m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "7c985aa6e7f006047edd4f950af273d4", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 1053463, "upload_time": "2018-06-16T09:58:17", "url": "https://files.pythonhosted.org/packages/19/c3/5eb007b7977f0dd8dc8e16060ee6c019d4ab37f51a992ad4cc20de8cae83/pglast-1.0-cp34-cp34m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "7db3199bc26afc72bd46ae5de48343d1", "sha256": "f726309358ddf7b1d99bfb0f1d850e3664adc57a5776199fcee06bd7068c1c8e" }, "downloads": -1, "filename": "pglast-1.0-cp35-cp35m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "7db3199bc26afc72bd46ae5de48343d1", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1018695, "upload_time": "2018-06-16T09:58:19", "url": "https://files.pythonhosted.org/packages/ed/3e/7c9d605790c5b9abef072b5e3114a6aa737c1dfa77110d689e682451ca42/pglast-1.0-cp35-cp35m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "ed89f06774d7e958bf4b72a8ddd516a9", "sha256": "9ae97cdd7ff88e1744b6229eaf9e114ef6b9fe2240bfc757332a3a5cb807856c" }, "downloads": -1, "filename": "pglast-1.0-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "ed89f06774d7e958bf4b72a8ddd516a9", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1051642, "upload_time": "2018-06-16T09:58:21", "url": "https://files.pythonhosted.org/packages/ab/41/94e6e012e5089b1ba0c3c8fd137cbf804dc6e297dd50d5bc5fe8be2f743f/pglast-1.0-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "b90a9336c42b8a86478bf98bb5bf156a", "sha256": "733c588864c422ec978d2b86e86eece502c31ffa7326194219da8041d9518047" }, "downloads": -1, "filename": "pglast-1.0-cp36-cp36m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "b90a9336c42b8a86478bf98bb5bf156a", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1020783, "upload_time": "2018-06-16T09:58:23", "url": "https://files.pythonhosted.org/packages/f4/ad/a8af4ff174c2ed2ccca33790b6a799c1e2b2943c67bb3e5d0dd9261e7d76/pglast-1.0-cp36-cp36m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "aedd927427359db39f7ad01619db8fef", "sha256": "eda3cd24ad6dd8887680b8792ac84fba975c0955108225e610b63bd72eff00a6" }, "downloads": -1, "filename": "pglast-1.0-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "aedd927427359db39f7ad01619db8fef", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1054449, "upload_time": "2018-06-16T09:58:25", "url": "https://files.pythonhosted.org/packages/b3/74/161d03d1e735e374ea2ed7fa38abdfc3dff3b3115d051f8c541dca5e7fcf/pglast-1.0-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "7f8216ddb4d4ad64ddf303f62528d87a", "sha256": "6c1131b8d1e4560ba4e282a856c505d17f416c0f80d78713edcb7616032a0675" }, "downloads": -1, "filename": "pglast-1.0.tar.gz", "has_sig": false, "md5_digest": "7f8216ddb4d4ad64ddf303f62528d87a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1483504, "upload_time": "2018-06-16T09:53:20", "url": "https://files.pythonhosted.org/packages/1a/7a/d0f7931929aebe5bfa9039536b787b6c6526b94bb1922373a4ed10a6e2e5/pglast-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "0b468bfbf6c5315ffd4d616ce660017f", "sha256": "14681946e56c777c1e538dcfeddc8c6ab5a1744d5bc644c6d7a5d6684d01688d" }, "downloads": -1, "filename": "pglast-1.1-cp34-cp34m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "0b468bfbf6c5315ffd4d616ce660017f", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 1019611, "upload_time": "2018-07-20T10:09:56", "url": "https://files.pythonhosted.org/packages/a8/10/bf9f82533de31b1e73b64e54a4314b2d16c4976233bc9184900a2d622875/pglast-1.1-cp34-cp34m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "8bda25705921837b5af7eacbb973ba6f", "sha256": "8e8c263116addbf51f9302caf835fe03a86b29fa343df99d40ebfed196fd82b8" }, "downloads": -1, "filename": "pglast-1.1-cp34-cp34m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "8bda25705921837b5af7eacbb973ba6f", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 1053372, "upload_time": "2018-07-20T10:09:58", "url": "https://files.pythonhosted.org/packages/f6/f4/c8d1fac1fbfd8396e5310c774318b644036e9fe07abaa730d6871cdcd780/pglast-1.1-cp34-cp34m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "7d7748874d326e22fffdd78876b732e2", "sha256": "95f17897d60644740c7c22ef4463c11e6d5eb483e6a0d4ab68e2f65876e22930" }, "downloads": -1, "filename": "pglast-1.1-cp35-cp35m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "7d7748874d326e22fffdd78876b732e2", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1018723, "upload_time": "2018-07-20T10:10:00", "url": "https://files.pythonhosted.org/packages/c7/99/a080081d79626af6b59b18f833e2f7e5b5512433327617bcf8dbd8bb41cd/pglast-1.1-cp35-cp35m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "d1dcfc0b5395a6b0e5302da4e3a80588", "sha256": "cf898496b18725e1e5e2e68de97a1259a5ee2f3c57c30149e79cefc6cafd03ac" }, "downloads": -1, "filename": "pglast-1.1-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "d1dcfc0b5395a6b0e5302da4e3a80588", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1051847, "upload_time": "2018-07-20T10:10:02", "url": "https://files.pythonhosted.org/packages/09/de/3efc6f3f6e52bc1705e4b3263d3356dddc5c7c00ce882e355d95da156c10/pglast-1.1-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "503f1cd8daa7901c6663b4f37e1035fc", "sha256": "58f16ce388e8963b91c407a3708496109beafa172711e003e757a454740cb1e2" }, "downloads": -1, "filename": "pglast-1.1-cp36-cp36m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "503f1cd8daa7901c6663b4f37e1035fc", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1020795, "upload_time": "2018-07-20T10:10:04", "url": "https://files.pythonhosted.org/packages/08/0f/89e87e85504a9f6db4e7128dc4c6f40e591e5f59443f42491c3b01a86de6/pglast-1.1-cp36-cp36m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "d9ec47dbaad0b56e20b5e7c67ede711c", "sha256": "7139e39a021607297f26cfaef7ed7b76fd48c242c21a77264b48a9824be62164" }, "downloads": -1, "filename": "pglast-1.1-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "d9ec47dbaad0b56e20b5e7c67ede711c", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1054579, "upload_time": "2018-07-20T10:10:06", "url": "https://files.pythonhosted.org/packages/56/c6/f7a6b8afda53845cf7aebbc20654f5a480d0550578d5a80f86f548ff8590/pglast-1.1-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "1ff73e32f362023b70277d58fe2c8549", "sha256": "5e5491dd52bee01dc18f7c24195153130ddeec499fec32b1f2c63404de7ee8e8" }, "downloads": -1, "filename": "pglast-1.1-cp37-cp37m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "1ff73e32f362023b70277d58fe2c8549", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1021598, "upload_time": "2018-07-20T10:10:07", "url": "https://files.pythonhosted.org/packages/4b/5d/02e3478b938ba9213fc072f9614e1a00655a2c507b5a9e26a257a1710ec7/pglast-1.1-cp37-cp37m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "9315b616ee291574b48709a876e7bc39", "sha256": "33b481f622c4bdca766385235e405930e75783d23599d27e329083f43e96e46f" }, "downloads": -1, "filename": "pglast-1.1-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "9315b616ee291574b48709a876e7bc39", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1055221, "upload_time": "2018-07-20T10:10:09", "url": "https://files.pythonhosted.org/packages/79/b1/b327a90ec5627fe131d25568613ec71f1ddf1dab5281caa150f998e0b468/pglast-1.1-cp37-cp37m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "5377bf3f1b244a356b4ab31d327a931a", "sha256": "3149c8b80c84f54fcdc56685e9e12625a7774e02352469d90ad9a30edcca759c" }, "downloads": -1, "filename": "pglast-1.1.tar.gz", "has_sig": false, "md5_digest": "5377bf3f1b244a356b4ab31d327a931a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1483748, "upload_time": "2018-07-20T10:03:29", "url": "https://files.pythonhosted.org/packages/7d/d3/38e9f76d1e5404fc843d0a29696ed961367200d0f907cea1cdcbf4f38acb/pglast-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "5682ec58c28e842665699345f5fa4e87", "sha256": "3d09b00498b3edca14155697baaf0fbd3cdada7b1dabb5962e460cec51b58b02" }, "downloads": -1, "filename": "pglast-1.2-cp34-cp34m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "5682ec58c28e842665699345f5fa4e87", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 1018843, "upload_time": "2019-02-13T08:50:40", "url": "https://files.pythonhosted.org/packages/38/7b/e46842f6f62081d16538545cef697f34f2e581581c3e5af05c400cc281c0/pglast-1.2-cp34-cp34m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "109e136d68e88b0f758ee41cc038de6a", "sha256": "66d80306d6ce53ffea89a00bdecf580ec56a643b00e658906997fd8030fa7fad" }, "downloads": -1, "filename": "pglast-1.2-cp34-cp34m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "109e136d68e88b0f758ee41cc038de6a", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 1050040, "upload_time": "2019-02-13T08:50:42", "url": "https://files.pythonhosted.org/packages/c0/0c/795a939a2ae3d60412fd6cc7bf11e2ef2e5cd169d7d178464c7c5862ab1f/pglast-1.2-cp34-cp34m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "51fe97991c9b2902a1242f3860f8a93a", "sha256": "b6bda02d107c46e51b0185d867a75787275c0dad5230a43f3077f2f2b45f8e09" }, "downloads": -1, "filename": "pglast-1.2-cp35-cp35m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "51fe97991c9b2902a1242f3860f8a93a", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1019857, "upload_time": "2019-02-13T08:50:44", "url": "https://files.pythonhosted.org/packages/0a/eb/edce9b2626c849c183ee644daa7dea784992566194830fec21d132f355f2/pglast-1.2-cp35-cp35m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "7fc1a70fdc7e6a413bdf6aa8efec68af", "sha256": "365d00fa420777a30edc953c704a836fada19da4e5f1838de2a82c7fe7972a52" }, "downloads": -1, "filename": "pglast-1.2-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "7fc1a70fdc7e6a413bdf6aa8efec68af", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1054070, "upload_time": "2019-02-13T08:50:46", "url": "https://files.pythonhosted.org/packages/f5/b3/b33933a42b323f98927c9eaa5d9fe017fe093608be2163d9c702514650e4/pglast-1.2-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "f35930cd28a2181a11efb89acf6106b4", "sha256": "1623afd02685d8080c024435e4f2ddd3c3dfc45daa79be6be61f722694e1c163" }, "downloads": -1, "filename": "pglast-1.2-cp36-cp36m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "f35930cd28a2181a11efb89acf6106b4", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1022564, "upload_time": "2019-02-13T08:50:48", "url": "https://files.pythonhosted.org/packages/55/48/0afdc89482be3d8019492410e57aa889c98f80ce810b2492a33dbcdb9342/pglast-1.2-cp36-cp36m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "5a1e6718690b46f3517df511c331505c", "sha256": "d2276152e640042f909e640516daf09f402b2465bab6561938cd4fe6b74f7b66" }, "downloads": -1, "filename": "pglast-1.2-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "5a1e6718690b46f3517df511c331505c", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1055984, "upload_time": "2019-02-13T08:50:50", "url": "https://files.pythonhosted.org/packages/75/5f/2a6d138376eab93658f84cdd310890ffe30685086b30a1d647a54e8e49c1/pglast-1.2-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "7dd9b6271cba88987e06c44d28a83c3d", "sha256": "68d2ca1c4e8fea3f8a2dfd435c764ce5df51bf84f7d218e75476f357f7d817e5" }, "downloads": -1, "filename": "pglast-1.2-cp37-cp37m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "7dd9b6271cba88987e06c44d28a83c3d", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1023586, "upload_time": "2019-02-13T08:50:52", "url": "https://files.pythonhosted.org/packages/d3/15/82fcde083135c2f364c0658750c61266b2688438d505198f0cf4274b627c/pglast-1.2-cp37-cp37m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "819c8571bbef570a5b6151afa86f6241", "sha256": "5097aa3313b9995a804549bed6a5bcf9834661aad43b1e647ea10ec1b2f7dd4b" }, "downloads": -1, "filename": "pglast-1.2-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "819c8571bbef570a5b6151afa86f6241", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1056697, "upload_time": "2019-02-13T08:50:53", "url": "https://files.pythonhosted.org/packages/07/40/41c0b722fb765e74c42ba32dd434ff4d3131192c577934ba844bddf49c7b/pglast-1.2-cp37-cp37m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "3263074a6112d343724c7dede88a7eff", "sha256": "e9d9026fc2ee86983a16679670bc85b6273d8266128185f90b7c84b3965bb1ee" }, "downloads": -1, "filename": "pglast-1.2.tar.gz", "has_sig": false, "md5_digest": "3263074a6112d343724c7dede88a7eff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1486757, "upload_time": "2019-02-13T08:44:39", "url": "https://files.pythonhosted.org/packages/9d/c8/b7eb3c3258aadbe3bf12a30ac538828fda57941b68bb6821f8878c9609d3/pglast-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "6dc2ad665fbf8aa79be4a2c23160e023", "sha256": "6608b9dbca52876c87447a8d5a183f14e987a3caa60975d63e1a3896c5949dd9" }, "downloads": -1, "filename": "pglast-1.3-cp35-cp35m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "6dc2ad665fbf8aa79be4a2c23160e023", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1026599, "upload_time": "2019-03-28T09:42:51", "url": "https://files.pythonhosted.org/packages/2f/5e/0ea181c99a97a1b7ba304ee2d595166dbd4bc76e9a5b0eed89190cdeac0a/pglast-1.3-cp35-cp35m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "63a1f7c7881d9a004b69b6d571170a3b", "sha256": "70c6f9f681f16e9b48c474dc36bf46ea02614a9486aef20611aa4f0e081e7ffa" }, "downloads": -1, "filename": "pglast-1.3-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "63a1f7c7881d9a004b69b6d571170a3b", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1060805, "upload_time": "2019-03-28T09:42:53", "url": "https://files.pythonhosted.org/packages/95/c4/f5f2bfe0eefd4ffae5aa8edbb4b5bf867ad6afa8e3f3d0faf6825128a50e/pglast-1.3-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "3de61ee39e9d5565cb7b84777f020d42", "sha256": "f456088d5cde9be601ffc99335ea1dc8b89f64126bad518b9ba1d03094326fe3" }, "downloads": -1, "filename": "pglast-1.3-cp36-cp36m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "3de61ee39e9d5565cb7b84777f020d42", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1029292, "upload_time": "2019-03-28T09:42:55", "url": "https://files.pythonhosted.org/packages/9e/35/c95203422d4b6b4f2d355da58c2776a639df50d05f3f1b7807a6e4d673a5/pglast-1.3-cp36-cp36m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "e755b4aefc7ecd80360002ff4dfd55a8", "sha256": "3ea887112513461019ae9264c788420e48ff8b0afb7777b3a4571d0acdf8807b" }, "downloads": -1, "filename": "pglast-1.3-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "e755b4aefc7ecd80360002ff4dfd55a8", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1062787, "upload_time": "2019-03-28T09:42:56", "url": "https://files.pythonhosted.org/packages/04/d8/6b5866d0d8b6e76bccee58cda2aeb7848b42a04d42583b112cf3da67f5b7/pglast-1.3-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "84c69a12e73c8fe94769f76381e57ef2", "sha256": "cebc76dda7c7a0593c9c594d71479a6ade0f96b5857f15bd41cd9890a7025c80" }, "downloads": -1, "filename": "pglast-1.3-cp37-cp37m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "84c69a12e73c8fe94769f76381e57ef2", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1030288, "upload_time": "2019-03-28T09:42:58", "url": "https://files.pythonhosted.org/packages/12/fe/6cf84a040ed3594b9ae0c9f227cfad5f93c2dd490133c845ced7d28863b9/pglast-1.3-cp37-cp37m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "c66d75af5f456622123410b5417fafb5", "sha256": "3dd0182d39e2876ffabe165d95e23f96d277e049bef679af65afb2cedf53dde1" }, "downloads": -1, "filename": "pglast-1.3-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "c66d75af5f456622123410b5417fafb5", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1063411, "upload_time": "2019-03-28T09:43:00", "url": "https://files.pythonhosted.org/packages/82/10/f9c24049fb2e12639aea093b72ad7f1af37d1ddc5fc59773d25cb9b79521/pglast-1.3-cp37-cp37m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "195ea908a0aea20e41387cb2a830288a", "sha256": "9f804c2cbf3f7c43252238d6a5c7fa2b19e923eb56fd17667a4405b961d27c2d" }, "downloads": -1, "filename": "pglast-1.3.tar.gz", "has_sig": false, "md5_digest": "195ea908a0aea20e41387cb2a830288a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1503982, "upload_time": "2019-03-28T09:27:30", "url": "https://files.pythonhosted.org/packages/1b/a6/20e809053c1be345b9a9415934bd6ed36108ecdc08d9428e5f66ae14e70a/pglast-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "2697da2483a6dba4a6b74739f0604521", "sha256": "8fbd6fc8d2f7c9c2969f2f1de6d863b29a55e258468819fc89c3b0066c34fbf8" }, "downloads": -1, "filename": "pglast-1.4-cp35-cp35m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "2697da2483a6dba4a6b74739f0604521", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1026990, "upload_time": "2019-04-06T11:06:18", "url": "https://files.pythonhosted.org/packages/3c/1a/7fd8e01c8959caa2a5b226f53c89bb388107fde37a84d2669446736e6831/pglast-1.4-cp35-cp35m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "a331c74af5861476e216980f00c2df91", "sha256": "d9bd96cdc573c3fff37752c171613e2e47497a1bce9f84e0fa24709f363d689e" }, "downloads": -1, "filename": "pglast-1.4-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "a331c74af5861476e216980f00c2df91", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1061151, "upload_time": "2019-04-06T11:06:20", "url": "https://files.pythonhosted.org/packages/d3/71/70479fda8143e8376b1665c3827fc699cdea4b1a411fe3b6513d04472093/pglast-1.4-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "fa9c9c6431c868e49566f14caf599c4c", "sha256": "a903bc2f4ba668ec96f3dba8b17eedf4a4b4599d2ac8614e1e2cce8b6d198eb1" }, "downloads": -1, "filename": "pglast-1.4-cp36-cp36m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "fa9c9c6431c868e49566f14caf599c4c", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1029588, "upload_time": "2019-04-06T11:06:22", "url": "https://files.pythonhosted.org/packages/f5/04/d1d0b8e0bf4bd172493b78ebb30c0c968d55434eb268a80dc3d318b79ed6/pglast-1.4-cp36-cp36m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "d512d8b82684b7b13e7d719d0201962a", "sha256": "10a6a44fa6ecf61370720786bb86507ee277cda29fc97622f42a45ac827e70bd" }, "downloads": -1, "filename": "pglast-1.4-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "d512d8b82684b7b13e7d719d0201962a", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1063112, "upload_time": "2019-04-06T11:06:24", "url": "https://files.pythonhosted.org/packages/aa/9e/c76d37381a7b7940a6051546a470446496371c8417cfb00c0985cbf8c2da/pglast-1.4-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "31ebfd55f9a973d2d41f99fc73899202", "sha256": "c96a8f3f78fbd8a773fa0e76a937b572e1682386f44e626365cfd542a878bf9b" }, "downloads": -1, "filename": "pglast-1.4-cp37-cp37m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "31ebfd55f9a973d2d41f99fc73899202", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1030647, "upload_time": "2019-04-06T11:06:26", "url": "https://files.pythonhosted.org/packages/d8/04/b5f580b84745788e9385e892698d3978b0ad31ce2176f6ea2eb68b08cc6f/pglast-1.4-cp37-cp37m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "7ea2debc0edfb1f613b549fb493480d5", "sha256": "c13310af90f35af58082481f26e12bd93ef571f587832fc235ea6a4ec4f060d3" }, "downloads": -1, "filename": "pglast-1.4-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "7ea2debc0edfb1f613b549fb493480d5", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1063761, "upload_time": "2019-04-06T11:06:27", "url": "https://files.pythonhosted.org/packages/49/06/d26e40b549a5f438da3554fc6c1c7653a0fba8fbc7a4624fc5d0c7b17d58/pglast-1.4-cp37-cp37m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "06f5d9f9287464713f467fdf247f22f8", "sha256": "1442ae2cfc6427e9a8fcc2dc18d9ecfcaa1b16eba237fdcf0b2b13912eab9a86" }, "downloads": -1, "filename": "pglast-1.4.tar.gz", "has_sig": false, "md5_digest": "06f5d9f9287464713f467fdf247f22f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1504873, "upload_time": "2019-04-06T11:01:06", "url": "https://files.pythonhosted.org/packages/46/5b/9efd80a10357baab5d9592650f7980b64eca5cc42a28013c1fbb0a86c8ec/pglast-1.4.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "582e2465706b9a5d6af3251b62abde2b", "sha256": "c4b8cbfe70522a19ee67b8fef7e5112c2fde3e920cc335b7c2bc97733816b02b" }, "downloads": -1, "filename": "pglast-1.5-cp35-cp35m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "582e2465706b9a5d6af3251b62abde2b", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1027062, "upload_time": "2019-06-04T15:06:45", "url": "https://files.pythonhosted.org/packages/6b/fe/4663d9a47c6aada0c1f692478b79dcd70c837bc16b17536c4354e81d8cd0/pglast-1.5-cp35-cp35m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "079efea515330bab107feaf5adaf3121", "sha256": "3be62523565af3f63b910cf13a8a3621a844f090940509c5bc7e2106fe501df8" }, "downloads": -1, "filename": "pglast-1.5-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "079efea515330bab107feaf5adaf3121", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1061257, "upload_time": "2019-06-04T15:06:47", "url": "https://files.pythonhosted.org/packages/9e/6e/1001c32d467ccbd36b747f0386715baee64d33dbf7ff5df3e70bcd3885c2/pglast-1.5-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "0ea534d681cc3921240c2a0f1d0773c5", "sha256": "6dbac4f7a59a8cb6897a604e309bd87ba1b9ff7a731e7aedbfbfa5076bb15651" }, "downloads": -1, "filename": "pglast-1.5-cp36-cp36m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "0ea534d681cc3921240c2a0f1d0773c5", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1029733, "upload_time": "2019-06-04T15:06:50", "url": "https://files.pythonhosted.org/packages/ed/d3/e4713ebabcaad6aa1daaa8ab045aed1c3e0abfea3fd760c133d9546cf0d9/pglast-1.5-cp36-cp36m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "89f3b889ab36215850b4d863b84fc066", "sha256": "69565f07f8119e19b996fe60d9c91518db5e1214629e28b7909f563c0fe8c5a3" }, "downloads": -1, "filename": "pglast-1.5-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "89f3b889ab36215850b4d863b84fc066", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1063287, "upload_time": "2019-06-04T15:06:52", "url": "https://files.pythonhosted.org/packages/65/96/1cb1f78703169f2e276a3e7ca041571a0b7115584d75b640fbc993bffaaa/pglast-1.5-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "094a05eeb0a499ebab57e6b406b7e48c", "sha256": "4632f00f6e6c7b58dd7c4a052d5148f006a1c121a337af33a5473f9b787823b0" }, "downloads": -1, "filename": "pglast-1.5-cp37-cp37m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "094a05eeb0a499ebab57e6b406b7e48c", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1030917, "upload_time": "2019-06-04T15:06:54", "url": "https://files.pythonhosted.org/packages/9b/bf/0ff818a3713fbf1d46d552f5df84f4d63773fa12a39f38929c8677a5372d/pglast-1.5-cp37-cp37m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "eae7c00a70a2077762c158f214e2f354", "sha256": "e98dcfeb43efb35b673e369f776229b8b770613b8b56be95f18d7442e5f2208f" }, "downloads": -1, "filename": "pglast-1.5-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "eae7c00a70a2077762c158f214e2f354", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1063991, "upload_time": "2019-06-04T15:06:57", "url": "https://files.pythonhosted.org/packages/74/42/072b90fd8ea8570f4ef7f765e3de3f5843acd786dd8aced84bdbac6fda86/pglast-1.5-cp37-cp37m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "c9702b1a12534e33dd3090d655e08665", "sha256": "369a7ab5aa9b50d047f3e48f54496993ec14b8f8814c9649f15747947589b516" }, "downloads": -1, "filename": "pglast-1.5.tar.gz", "has_sig": false, "md5_digest": "c9702b1a12534e33dd3090d655e08665", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1505622, "upload_time": "2019-06-04T15:01:05", "url": "https://files.pythonhosted.org/packages/99/14/1546e7af962e975cdaeeb8cd24ef578be3b543c8a95646e2672029237672/pglast-1.5.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "8d0e4e0c7c511aea1c61753392da8f8d", "sha256": "368be0c839f7605f438e246b07d47b660c949076d78ab8ac90837258e4be661b" }, "downloads": -1, "filename": "pglast-1.6-cp35-cp35m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "8d0e4e0c7c511aea1c61753392da8f8d", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1027309, "upload_time": "2019-09-04T07:03:31", "url": "https://files.pythonhosted.org/packages/d0/f2/28c36fef6444bf5eeb07a2c3281c34bbf8f274ea3e1b5d65789efa0c75a7/pglast-1.6-cp35-cp35m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "0ddb96da409b78cf390e2a0dc7307ec4", "sha256": "07fd56a43c21c2b49344a4f46283bfac289287502d686be22ee40285933fb5f8" }, "downloads": -1, "filename": "pglast-1.6-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "0ddb96da409b78cf390e2a0dc7307ec4", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1061657, "upload_time": "2019-09-04T07:03:33", "url": "https://files.pythonhosted.org/packages/ef/16/3086ebe80026e67ebfacf8f2a9d46ff9bd36290478ca2c5c213ce00557a6/pglast-1.6-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "aac2b65ed5b5c97bc4076d2361fdb2d3", "sha256": "06ff3191c34a90583f18b6aa6128d9e52cbc319855b4b1b427a1ece990f2761a" }, "downloads": -1, "filename": "pglast-1.6-cp36-cp36m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "aac2b65ed5b5c97bc4076d2361fdb2d3", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1030102, "upload_time": "2019-09-04T07:03:36", "url": "https://files.pythonhosted.org/packages/a1/26/8d3fd83cb59db9b9359f474b208fe400fb4cdfa3eff683bf43f3b1025bbf/pglast-1.6-cp36-cp36m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "70b6859aeb5cdb26348931891e2a830d", "sha256": "51bddd7019a2b3c1979577c330298189fe1f4d3ab1a61b70c561f502f305b27b" }, "downloads": -1, "filename": "pglast-1.6-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "70b6859aeb5cdb26348931891e2a830d", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1063637, "upload_time": "2019-09-04T07:03:38", "url": "https://files.pythonhosted.org/packages/bf/d4/71f323616291969a911473ed22de69326477800e039e0e1fc08448ab50a7/pglast-1.6-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "de0d26551122496c28f98a688d6e60d7", "sha256": "1777214c75bc19acf815988cb7bf3a96a0a457d7cb56a99296bf9fa21e076859" }, "downloads": -1, "filename": "pglast-1.6-cp37-cp37m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "de0d26551122496c28f98a688d6e60d7", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1031195, "upload_time": "2019-09-04T07:03:41", "url": "https://files.pythonhosted.org/packages/4e/e8/4d27a430b8ceece309a02b05d6a61fbaeb23422c62c819ef17258ec9c140/pglast-1.6-cp37-cp37m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "a62914784428d375a67daa96ebe22971", "sha256": "d8300ae990af54c332a8533d3e7d6768a5b0f4f73992565b7332d88f1339a5f1" }, "downloads": -1, "filename": "pglast-1.6-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "a62914784428d375a67daa96ebe22971", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1064411, "upload_time": "2019-09-04T07:03:43", "url": "https://files.pythonhosted.org/packages/55/ac/a5f01aaeb572ef25b1d273e9d156cd22f7ff98ce1d34e0b5684bdc6e6fd2/pglast-1.6-cp37-cp37m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "29c66ea5178ff5f358fd1f07ac4b19ff", "sha256": "dcbd8061c553b90440741b77fbb274beca84716641a50be8675a6afe6dfbcea2" }, "downloads": -1, "filename": "pglast-1.6.tar.gz", "has_sig": false, "md5_digest": "29c66ea5178ff5f358fd1f07ac4b19ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1507099, "upload_time": "2019-09-04T06:58:23", "url": "https://files.pythonhosted.org/packages/01/2e/8fc83932c89104282608e1d3e16047148dc47f03e4c1fceb76cb5c4d1a9c/pglast-1.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8d0e4e0c7c511aea1c61753392da8f8d", "sha256": "368be0c839f7605f438e246b07d47b660c949076d78ab8ac90837258e4be661b" }, "downloads": -1, "filename": "pglast-1.6-cp35-cp35m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "8d0e4e0c7c511aea1c61753392da8f8d", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1027309, "upload_time": "2019-09-04T07:03:31", "url": "https://files.pythonhosted.org/packages/d0/f2/28c36fef6444bf5eeb07a2c3281c34bbf8f274ea3e1b5d65789efa0c75a7/pglast-1.6-cp35-cp35m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "0ddb96da409b78cf390e2a0dc7307ec4", "sha256": "07fd56a43c21c2b49344a4f46283bfac289287502d686be22ee40285933fb5f8" }, "downloads": -1, "filename": "pglast-1.6-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "0ddb96da409b78cf390e2a0dc7307ec4", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1061657, "upload_time": "2019-09-04T07:03:33", "url": "https://files.pythonhosted.org/packages/ef/16/3086ebe80026e67ebfacf8f2a9d46ff9bd36290478ca2c5c213ce00557a6/pglast-1.6-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "aac2b65ed5b5c97bc4076d2361fdb2d3", "sha256": "06ff3191c34a90583f18b6aa6128d9e52cbc319855b4b1b427a1ece990f2761a" }, "downloads": -1, "filename": "pglast-1.6-cp36-cp36m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "aac2b65ed5b5c97bc4076d2361fdb2d3", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1030102, "upload_time": "2019-09-04T07:03:36", "url": "https://files.pythonhosted.org/packages/a1/26/8d3fd83cb59db9b9359f474b208fe400fb4cdfa3eff683bf43f3b1025bbf/pglast-1.6-cp36-cp36m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "70b6859aeb5cdb26348931891e2a830d", "sha256": "51bddd7019a2b3c1979577c330298189fe1f4d3ab1a61b70c561f502f305b27b" }, "downloads": -1, "filename": "pglast-1.6-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "70b6859aeb5cdb26348931891e2a830d", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1063637, "upload_time": "2019-09-04T07:03:38", "url": "https://files.pythonhosted.org/packages/bf/d4/71f323616291969a911473ed22de69326477800e039e0e1fc08448ab50a7/pglast-1.6-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "de0d26551122496c28f98a688d6e60d7", "sha256": "1777214c75bc19acf815988cb7bf3a96a0a457d7cb56a99296bf9fa21e076859" }, "downloads": -1, "filename": "pglast-1.6-cp37-cp37m-manylinux1_i686.whl", "has_sig": false, "md5_digest": "de0d26551122496c28f98a688d6e60d7", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1031195, "upload_time": "2019-09-04T07:03:41", "url": "https://files.pythonhosted.org/packages/4e/e8/4d27a430b8ceece309a02b05d6a61fbaeb23422c62c819ef17258ec9c140/pglast-1.6-cp37-cp37m-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "a62914784428d375a67daa96ebe22971", "sha256": "d8300ae990af54c332a8533d3e7d6768a5b0f4f73992565b7332d88f1339a5f1" }, "downloads": -1, "filename": "pglast-1.6-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "a62914784428d375a67daa96ebe22971", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1064411, "upload_time": "2019-09-04T07:03:43", "url": "https://files.pythonhosted.org/packages/55/ac/a5f01aaeb572ef25b1d273e9d156cd22f7ff98ce1d34e0b5684bdc6e6fd2/pglast-1.6-cp37-cp37m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "29c66ea5178ff5f358fd1f07ac4b19ff", "sha256": "dcbd8061c553b90440741b77fbb274beca84716641a50be8675a6afe6dfbcea2" }, "downloads": -1, "filename": "pglast-1.6.tar.gz", "has_sig": false, "md5_digest": "29c66ea5178ff5f358fd1f07ac4b19ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1507099, "upload_time": "2019-09-04T06:58:23", "url": "https://files.pythonhosted.org/packages/01/2e/8fc83932c89104282608e1d3e16047148dc47f03e4c1fceb76cb5c4d1a9c/pglast-1.6.tar.gz" } ] }