{ "info": { "author": "Anders Hovm\u00f6ller", "author_email": "anders.hovmoller@trioptima.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7" ], "description": ".. image:: https://travis-ci.org/TriOptima/tri.table.svg?branch=master\n :target: https://travis-ci.org/TriOptima/tri.table\n\n\n.. image:: https://codecov.io/github/TriOptima/tri.table/coverage.svg?branch=master\n :target: https://codecov.io/github/TriOptima/tri.table?branch=master\n\n.. warning::\n\n tri.table is end of life. It has been merged into `iommi `_.\n\n iommi is backwards incompatible but the porting effort should be fairly mild,\n the biggest changes are that `show` is now called `include`, tri.query's\n `Variable` is renamed to `Filter` and plural is used consistently for\n containers (so `column__foo` is `columns__foo` in iommi).\n\n\ntri.table\n=========\n\ntri.table is a library to make full featured HTML tables easily:\n\n* generates header, rows and cells\n* grouping of headers\n* filtering\n* sorting\n* bulk edit\n* pagination\n* automatic rowspan\n* link creation\n* customization on multiple levels, all the way down to templates for cells\n\nAll these examples and a bigger example using many more features can be found in the examples django project.\n\nRead the full documentation for more.\n\n.. contents::\n\nSimple example\n--------------\n\n.. code:: python\n\n def readme_example_1(request):\n # Say I have a class...\n class Foo(object):\n def __init__(self, i):\n self.a = i\n self.b = 'foo %s' % (i % 3)\n self.c = (i, 1, 2, 3, 4)\n\n # and a list of them\n foos = [Foo(i) for i in xrange(4)]\n\n # I can declare a table:\n class FooTable(Table):\n a = Column.number() # This is a shortcut that results in the css class \"rj\" (for right justified) being added to the header and cell\n b = Column()\n c = Column(cell__format=lambda table, column, row, value, **_: value[-1]) # Display the last value of the tuple\n sum_c = Column(cell__value=lambda table, column, row, **_: sum(row.c), sortable=False) # Calculate a value not present in Foo\n\n # now to get an HTML table:\n return render_table_to_response(request, FooTable(data=foos), template='base.html')\n\nAnd this is what you get:\n\n.. image:: table_example_1.png\n\nFancy django features\n---------------------\n\nSay I have some models:\n\n.. code:: python\n\n class Foo(models.Model):\n a = models.IntegerField()\n\n def __unicode__(self):\n return 'Foo: %s' % self.a\n.. code:: python\n\n class Bar(models.Model):\n b = models.ForeignKey(Foo)\n c = models.CharField(max_length=255)\n\nNow I can display a list of Bars in a table like this:\n\n.. code:: python\n\n def readme_example_2(request):\n fill_dummy_data()\n\n class BarTable(Table):\n select = Column.select() # Shortcut for creating checkboxes to select rows\n b__a = Column.number( # Show \"a\" from \"b\". This works for plain old objects too.\n query__show=True, # put this field into the query language\n query__gui__show=True) # put this field into the simple filtering GUI\n c = Column(\n bulk=True, # Enable bulk editing for this field\n query_show=True,\n query__gui__show=True)\n\n return render_table_to_response(request, BarTable(data=Bar.objects.all()), template='base.html', paginate_by=20)\n\nThis gives me a view with filtering, sorting, bulk edit and pagination.\n\nAll these examples and a bigger example using many more features can be found in the examples django project.\n\nRead the full documentation for more.\n\nUsage\n-----\n\nAdd tri_form, tri_query, tri_table to INSTALLED_APPS.\n\nMotivation\n----------\n\ntri.table grew out of a frustration with how tables were created at TriOptima. We have a /lot/ of tables and the code to produce them included long HTML templates and often the code to extract and massage the data in some trivial way ended up as methods on the model classes or template tags, even though it was only used by one view.\n\nThis code was also error prone to change since we often have columns that we show or hide based on the permissions of the user, which meant the `thead` and `tbody` had to be in sync. When you have a lot of columns and more and more complex logic for when to show/hide columns this can become harder than it sounds!\n\nWe also saw that almost always the names of the columns (aka the headers) could be derived from the name of the field they should display data for, so we opted for defaults to make this case easier.\n\nIt was very important for us to have customization available at many levels. Many table libraries have really nice and short code for the default case but when you have to customize some tiny thing you have to rewrite huge swaths of the library's code. We didn't want to do that since we made this library in order to refactor out exactly this thing from our existing code base. We ended up with the powerful pattern of being able to supply callables for the points of customization, leading to small tweaks moving into the table definition instead of being scattered in model or template tag code. We also have many levels or customization so that the path from \"just display columns x, y and z somehow\" to heavy customization is smooth and gradual.\n\nWe chose to mimic how django forms and models are declared because we really like that kind of declarative style, but you can also use it in a more functional style if you want. The latter is useful when you want to create a list of the columns to display programmatically for example.\n\nThis library has been a big win for us. The time to create a page with a table on it has been drastically reduced without sacrificing any flexibility when we later want to tweak the view.\n\nRunning tests\n-------------\n\nYou need tox installed then just `make test`.\n\n\nLicense\n-------\n\nBSD\n\n\nDocumentation\n-------------\n\nhttps://tritable.readthedocs.org.\n\n\nChangelog\n---------\n\n8.5.1 (2020-12-04)\n~~~~~~~~~~~~~~~~~~\n\n* Removed broken validation of sort columns. This validation prevented sorting on annotations which was very confusing as it worked in dev.\n\n* NOTE: tri.table is a legacy library and is fully replaced by iommi\n\n\n8.5.0 (2020-08-21)\n~~~~~~~~~~~~~~~~~~\n\n* Include tri.struct 4.x as possible requirement\n\n\n8.4.0 (2020-04-24)\n~~~~~~~~~~~~~~~~~~\n\n* Fix bulk form missing requests attribute. (Failing on ajax selects)\n\n* Upped dependency tri.declarative to 5.x\n\n\n8.3.0 (2020-01-09)\n~~~~~~~~~~~~~~~~~~\n\n* Change python version to 3.7\n\n\n8.2.0 (2019-11-21)\n~~~~~~~~~~~~~~~~~~\n\n* Introduced `data_retrivial_method`, and turned it on by default for `foreign_key` and `many_to_many`. This means that by default tables are now efficient instead of requiring you to use `prefetch_related` or `select_related` manually.\n\n* Added missing `UUIDField` factory\n\n* Added missing `Column.multi_choice`\n\n* `page_size` wasn't refinable\n\n\n8.1.1 (2019-10-23)\n~~~~~~~~~~~~~~~~~~\n\n* Upped dependency on tri.form due to a bug fix there, and the use of that bug fix in tri.table\n\n* Handle late binding of `request` member of `Table`\n\n* Removed deprecated use of `@creation_ordered`\n\n\n8.1.0 (2019-10-15)\n~~~~~~~~~~~~~~~~~~\n\n* Implemented `Table.actions` as a replacement for `render_table`s argument `links`.\n\n* `Column.multi_choice_queryset` was broken.\n\n* Fixed `many_to_many` shortcut.\n\n* Deprecated the following parameters to `render_table`:\n * `template`: replaced by `Table.template`\n * `paginate_by`: replaced by `Table.page_size`\n * `show_hits`: no replacement\n * `hit_label`: no replacement\n * `page`: no replacement\n * `blank_on_empty`: no replacement\n * `links`: replaced by `Table.actions`\n\n* Bumped dependency tri.declarative to 4.x\n\n\n8.0.0 (2019-06-14)\n~~~~~~~~~~~~~~~~~~\n\n* Renamed module from `tri.table` to `tri_table`\n\n* Dropped support for python2 and Django < 2.0\n\n\n7.0.2 (2019-05-06)\n~~~~~~~~~~~~~~~~~~\n\n* Fixed cases where from_model lost the type when inheriting\n\n\n7.0.1 (2019-05-03)\n~~~~~~~~~~~~~~~~~~\n\n* Fixed a bug where columns that had query or bulk but attr=None would crash\n\n\n7.0.0 (2019-04-12)\n~~~~~~~~~~~~~~~~~~\n\n* Make `Column` shortcuts compatible with subclassing. The previous fix didn't work all the way.\n\n* Use the new major tri.declarative, and update to follow the new style of class member shortcuts\n\n* Removed support for django 1.8\n\n* `bulk_queryset` is now usable to create your own bulk actions without using `Table.bulk_form`\n\n* Bulk form now auto creates via `Form.from_model` correctly\n\n* Query is now auto created via `Query.from_model` correctly\n\n6.3.0 (2019-03-15)\n~~~~~~~~~~~~~~~~~~\n\n* Make Column shortcuts compatible with subclassing\n\n\n6.2.1 (2019-03-05)\n~~~~~~~~~~~~~~~~~~\n\n* Fixed a crash when you used a custom paginator in django 2.0+\n\n\n6.2.0 (2019-03-04)\n~~~~~~~~~~~~~~~~~~\n\n* Fixes for jinja2 compatibility (still not fully working)\n\n* `preprocess_data` now takes a new keyword argument `table`\n\n* You can now get the paginator context itself via `Table.paginator_context`\n\n* Paginator template is configurable\n\n* Fixed a bug where we triggered our own deprecation warning for `Column`\n\n* Use the new paginator API for django 2.0+\n\n\n6.1.0 (2019-01-29)\n~~~~~~~~~~~~~~~~~~\n\n* Deprecated `Column` argument `attrs` in favor of `header__attrs`\n\n* Added CSS classes `ascending`/`descending` on headers\n\n* Added ability to customize superheaders via `Column.superheader`\n\n* Added ability to customize `Column` header template via `header__template`\n\n* Deprecated `title` parameter to `Column`\n\n* Deprecated `css_class` parameter to `Column`\n\n* Removed class='row{1,2}' from tags. This is better accomplished with CSS.\n\n\n6.0.3 (2018-12-06)\n~~~~~~~~~~~~~~~~~~\n\n* Bug fix: \"Select all\" header button should fire click event, not just toggle the state.\n\n\n6.0.2 (2018-12-06)\n~~~~~~~~~~~~~~~~~~\n\n* Bug fix: \"Select all items\" question hidden when select all clicked again.\n\n* Bug fix: only show \"Select all item\" question if a paginator is present.\n\n\n6.0.1 (2018-12-04)\n~~~~~~~~~~~~~~~~~~\n\n* Bug fix: \"Select all items\" question should only be presented once.\n\n\n6.0.0 (2018-12-03)\n~~~~~~~~~~~~~~~~~~\n\n* Removed argument `pks` to `post_bulk_edit`. This argument is incompatible with non-paginated bulk edit, and it's redundant with the `queryset` argument.\n\n* Added support for bulk editing of an entire queryset, not just the selected items on the current page.\n\n* Fixed bug where the template context was not carried over to the row rendering when using a custom row template.\n\n* Removed `paginator` template tag, moved the functionality into `Table.render_paginator`. This means it can be used from jinja2 and is generally easier to work with.\n\n* Avoid filtering with tri.query if not needed. This means you can now take a slice of a queryset before you pass it to tri.table, if and only if you don't then have filters to apply.\n\n* New feature: refinable attribute `preprocess_data` on `Table`. This is useful if you want to for example display more than one row per result of a queryset or convert the paginated data into a list and do some batch mutation on the items.\n\n* `preprocess_row` returning None is now deprecated. You should now return the row. Just returning the object you were sent is probably what you want.\n\n\n5.3.1 (2018-10-10)\n~~~~~~~~~~~~~~~~~~\n\n* Added `Column.boolean_tristate` for optionally filter boolean fields.\n\n* Add support for setting namespace on tables to be able to reuse column names between two tables in the same view.\n\n* Removed buggy use of `setdefaults`. This could cause overriding of nested arguments to not take.\n\n\n5.3.0 (2018-08-19)\n~~~~~~~~~~~~~~~~~~\n\n* Added `preprocess_row` feature. You can use it to mutate a row in place before access.\n\n* Made `Table` a `RefinableObject`\n\n\n5.2.2 (2018-06-29)\n~~~~~~~~~~~~~~~~~~\n\n* Fix bad mark_safe invocation on custom cell format output.\n\n\n5.2.1 (2018-06-18)\n~~~~~~~~~~~~~~~~~~\n\n* Fixed bug with backwards compatibility for `Link`.\n\n\n5.2.0 (2018-06-15)\n~~~~~~~~~~~~~~~~~~\n\n* New feature: default sort ordering. Just pass `default_sort_order` to `Table`.\n\n* `Link` class is now just inherited from tri_form `Link`. Introduced a deprecation warning for the constructor argument `url`.\n\n* Simplified `prepare` handling for `Table`. You should no longer need to care about this for most operations. You will still need to call `prepare` to trigger the parsing of URL parameters for sorting etc.\n\n* Fixed many_to_many_factory\n\n\n5.1.1 (2018-04-09)\n~~~~~~~~~~~~~~~~~~\n\n* Lazy and memoized BoundCell.value\n\n\n5.1.0 (2018-01-08)\n~~~~~~~~~~~~~~~~~~\n\n* Fix sorting of columns that contains None, this was not working in Python 3\n\n\n5.0.0 (2017-08-22)\n~~~~~~~~~~~~~~~~~~\n\n* Moved to tri.declarative 0.35, tri.form 5.0 and tri.query 4.0. Check release notes for tri.form and tri.query for backwards incompatible changes\n\n* Removed deprecated `template_name` parameter to `render_table`\n\n* Note that `foo__class` to specify a constructor/callable is no longer a valid parameter, because of updated tri.form, use `foo__call_target` or just `foo`\n\n\n4.3.1 (2017-05-31)\n~~~~~~~~~~~~~~~~~~\n\n* Bugfix: sorting on reverse relations didn't work\n\n\n4.3.0 (2017-04-25)\n~~~~~~~~~~~~~~~~~~\n\n* Bugfix for Django 1.10 template handling\n\n* Updated to tri.form 4.7.1\n\n* Moved bulk button inside the table tag\n\n* Dropped support for Django 1.7\n\n\n4.2.0 (2017-04-21)\n~~~~~~~~~~~~~~~~~~\n\n* New feature: post bulk edit callback\n\n\n4.1.2 (2017-04-19)\n~~~~~~~~~~~~~~~~~~\n\n* Fixed silly non-ascii characters in README.rst and also changed to survive silly non-ascii characters in that same file.\n\n\n4.1.1 (2017-04-10)\n~~~~~~~~~~~~~~~~~~\n\n* Fix missing copy of `attrs__class`\n\n\n4.1.0 (2017-03-22)\n~~~~~~~~~~~~~~~~~~\n\n* `Column` class now inherits from `object`, making the implementation more pythonic.\n (Attributes still possible to override in constructor call, see `NamespaceAwareObject`)\n\n* `*.template` overrides can now be specified as `django.template.Template` instances.\n\n* The `template_name` parameter to `render_table` is now deprecated and superceeded by a `template` parameter.\n\n\n4.0.0 (2016-09-15)\n~~~~~~~~~~~~~~~~~~\n\n* Updated to newest tri.form, tri.query, tri.declarative. This gives us simpler factories for `from_model` methods.\n\n* Added shortcuts to `Column`: `time` and `decimal`\n\n* The following shortcuts have been updated to use the corresponding `Variable` shortcuts: date, datetime and email\n\n* Fix failure in endpoint result return on empty payload.\n `[]` is a valid endpoint dispatch result.\n\n* `render_table`/`render_table_to_response` no longer allow table to be passed as a positional argument\n\n\n3.0.1 (2016-09-06)\n~~~~~~~~~~~~~~~~~~\n\n* Fix crash on unidentified sort parameter.\n\n\n3.0.0 (2016-09-02)\n~~~~~~~~~~~~~~~~~~\n\n* `bound_row` is passed to row level callables. This is a potential breaking\n change if you didn't do `**_` at the end of your function signatures (which you\n should!)\n\n* `bound_row` and `bound_column` is passed to cell level callables. This is a\n potential breaking change like above.\n\n* `BoundRow` now supports `extra`.\n\n* compatibible with Django 1.9 & 1.10\n\n* Added strict check on the kwargs config namespace of `Table`\n\n* Added `extra` namespace to `Table`\n\n* Added `bound_cell` parameter to rendering of cell templates.\n\n\n2.5.0 (2016-07-14)\n~~~~~~~~~~~~~~~~~~\n\n* Added optional `endpoint_dispatch_prefix` table configuration to enable multiple\n tables on the same endpoint.\n\n\n2.4.0 (2016-07-13)\n~~~~~~~~~~~~~~~~~~\n\n* Made more parts of `BoundCell` available for reuse.\n\n\n2.3.0 (2016-07-12)\n~~~~~~~~~~~~~~~~~~\n\n* Added pass-through of extra arguments to `Link` objects for custom attributes.\n\n\n2.2.0 (2016-06-23)\n~~~~~~~~~~~~~~~~~~\n\n* Fix missing namespace collection for column custimization of Table.from_model\n\n\n2.1.0 (2016-06-16)\n~~~~~~~~~~~~~~~~~~\n\n* Renamed `db_compat.register_field_factory` to the clearer `register_column_factory`\n\n* Improved error reporting on missing django field type column factory declaration.\n\n* Added iteration interface to table to loop over bound rows\n\n* Added `endpoint` meta class parameter to table to enable custom json endpoints\n\n\n2.0.0 (2016-06-02)\n~~~~~~~~~~~~~~~~~~\n\n* Support for ajax backend\n\n* Dependent tri.form and tri.query libraries have new major versions\n\n\n1.16.0 (2016-04-25)\n~~~~~~~~~~~~~~~~~~~\n\n* Minor bugfix for fields-from-model handling of auto fields\n\n\n1.15.0 (2016-04-21)\n~~~~~~~~~~~~~~~~~~~\n\n* Table.from_model implemented\n\n\n1.14.0 (2016-04-19)\n~~~~~~~~~~~~~~~~~~~\n\n* Added `after` attribute on `Column` to enable custom column ordering (See `tri.declarative.sort_after()`)\n\n* Enable mixing column definitions in both declared fields and class meta.\n\n* Don't show any results if the form is invalid\n\n\n1.13.0 (2016-04-08)\n~~~~~~~~~~~~~~~~~~~\n\n* Add python 3 support\n\n\n1.12.0 (2016-02-29)\n~~~~~~~~~~~~~~~~~~~\n\n* Changed syntax for specifying html attributes and classes. They are now use the same way of addressing as\n other things, e.g.: Column(attrs__foo=\"bar\", attrs__class__baz=True) will yield something like\n `...`\n\n\n1.11.0 (2016-02-04)\n~~~~~~~~~~~~~~~~~~~\n\n* Fix missing evaluation of row__attr et al.\n\n\n1.10.0 (2016-01-28)\n~~~~~~~~~~~~~~~~~~~\n\n* Changed cell__template and row__template semantics slightly to enable customized cell ordering in templates.\n\n row__template implementations can now access a BoundCell object to use the default cell rendering.\n\n cell__template implementation are now assumed to render the tags themself.\n\n\n1.9.0 (2016-01-19)\n~~~~~~~~~~~~~~~~~~\n\n* Fixed to work with latest version of tri.form", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/TriOptima/tri.table", "keywords": "tri.table", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "tri.table", "package_url": "https://pypi.org/project/tri.table/", "platform": "", "project_url": "https://pypi.org/project/tri.table/", "project_urls": { "Homepage": "https://github.com/TriOptima/tri.table" }, "release_url": "https://pypi.org/project/tri.table/8.5.1/", "requires_dist": null, "requires_python": "", "summary": "tri.table is a library to make full featured HTML tables easily", "version": "8.5.1", "yanked": false, "yanked_reason": null }, "last_serial": 8821105, "releases": { "1.10.0": [ { "comment_text": "", "digests": { "md5": "93db62b6b9e42fd097c994db1bdbc0f2", "sha256": "53945915de048d6a7bfefe709e11cb31cf04c27a23eb35e5f614b7fa0f0fe164" }, "downloads": -1, "filename": "tri.table-1.10.0.tar.gz", "has_sig": false, "md5_digest": "93db62b6b9e42fd097c994db1bdbc0f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19407, "upload_time": "2016-01-29T14:42:38", "upload_time_iso_8601": "2016-01-29T14:42:38.504250Z", "url": "https://files.pythonhosted.org/packages/16/33/e041762ad09983bab44acb33918c92a688e4b98d1e8b0d0bf2d4e26a67ca/tri.table-1.10.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.11.0": [ { "comment_text": "", "digests": { "md5": "c55a0938f704699839c90879e612b562", "sha256": "1ff52012d4c4114902c1cd008660ce6d8514ee3df0ef674979f55ede09b21bac" }, "downloads": -1, "filename": "tri.table-1.11.0.tar.gz", "has_sig": false, "md5_digest": "c55a0938f704699839c90879e612b562", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19479, "upload_time": "2016-02-25T08:08:51", "upload_time_iso_8601": "2016-02-25T08:08:51.656326Z", "url": "https://files.pythonhosted.org/packages/ac/21/1a81c50d7b64d2a03480fba55e8acdd267db6e7885a038504bd70665fc03/tri.table-1.11.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.12.0": [ { "comment_text": "", "digests": { "md5": "ee31677441caa91aa98e990cee96a052", "sha256": "4cfa13a0bde351c748a08d82462e49fde6078e387f9fa7690c73e40b559efc81" }, "downloads": -1, "filename": "tri.table-1.12.0.tar.gz", "has_sig": false, "md5_digest": "ee31677441caa91aa98e990cee96a052", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19997, "upload_time": "2016-02-29T21:00:08", "upload_time_iso_8601": "2016-02-29T21:00:08.698904Z", "url": "https://files.pythonhosted.org/packages/8b/43/0122b097734996709227284ce268e7902163e84d4e6ca0ab96109e1390d8/tri.table-1.12.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.13.0": [ { "comment_text": "", "digests": { "md5": "c0f3da5892d3216084c69a02e939805a", "sha256": "1e06a31f66c062f5b50350998ce4ccfa30fd491a515b910ef691668485500d97" }, "downloads": -1, "filename": "tri.table-1.13.0.tar.gz", "has_sig": false, "md5_digest": "c0f3da5892d3216084c69a02e939805a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19918, "upload_time": "2016-04-08T13:44:08", "upload_time_iso_8601": "2016-04-08T13:44:08.891226Z", "url": "https://files.pythonhosted.org/packages/48/b7/d972d68cf641ab49b7e2306b05a156e4bae2e8ec0fb0680d5fc756d9832f/tri.table-1.13.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.16.0": [ { "comment_text": "", "digests": { "md5": "c6a8cac703024943a7285b8bb64dbd15", "sha256": "aec396e69de4ec5e0245b9f7d6146fae585f0c96642d0e4a0cf278d5881800b8" }, "downloads": -1, "filename": "tri.table-1.16.0.tar.gz", "has_sig": false, "md5_digest": "c6a8cac703024943a7285b8bb64dbd15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21846, "upload_time": "2016-04-25T12:23:55", "upload_time_iso_8601": "2016-04-25T12:23:55.374113Z", "url": "https://files.pythonhosted.org/packages/9d/65/20d9b5afa4d77e3df0b0d834564963041cd54f250b64361734768f8d5f03/tri.table-1.16.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.7.0": [ { "comment_text": "", "digests": { "md5": "20e59e5bc59c858d553c0571eba5bb04", "sha256": "c20db3ed47811f71ee49de918690157e903034ab8f90b2148c2f4e40dfb646ba" }, "downloads": -1, "filename": "tri.table-1.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "20e59e5bc59c858d553c0571eba5bb04", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19690, "upload_time": "2015-12-14T13:21:21", "upload_time_iso_8601": "2015-12-14T13:21:21.365603Z", "url": "https://files.pythonhosted.org/packages/5d/6a/52e8728bfa944948266f5b9f015788e262c9a78fb0f9cf20bf049f6ba628/tri.table-1.7.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "dad23ebf8da70cca7682bf9b0f9b21cd", "sha256": "699b4394169805c7da24b261899b870c7caaf92849dc46ed7a5ef67a25cbafa4" }, "downloads": -1, "filename": "tri.table-1.7.0.tar.gz", "has_sig": false, "md5_digest": "dad23ebf8da70cca7682bf9b0f9b21cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18499, "upload_time": "2015-12-14T13:21:27", "upload_time_iso_8601": "2015-12-14T13:21:27.514502Z", "url": "https://files.pythonhosted.org/packages/c9/aa/b0f68671432345b2e63cdfdbb4f0c2d053947ec4065abd4789cf74f0fdc8/tri.table-1.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.9.0": [ { "comment_text": "", "digests": { "md5": "1cc0f23d2e3b7fb89d48ea97a278908e", "sha256": "90de7d6aed1604b71b3a6ec235aadfd67f67374cc8b89d90ba66b798bd074367" }, "downloads": -1, "filename": "tri.table-1.9.0.tar.gz", "has_sig": false, "md5_digest": "1cc0f23d2e3b7fb89d48ea97a278908e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18990, "upload_time": "2016-01-19T14:29:06", "upload_time_iso_8601": "2016-01-19T14:29:06.929989Z", "url": "https://files.pythonhosted.org/packages/42/f2/e50acdce4132679d7710bd90745679053207b8f0d8453128bbd9a0e97771/tri.table-1.9.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "553eb82f100803587fab2878d0bf920f", "sha256": "d818c12bdae9c41b7876be170317c6dd164e5a865635780cc44bb46b39537a6b" }, "downloads": -1, "filename": "tri.table-2.0.0.tar.gz", "has_sig": false, "md5_digest": "553eb82f100803587fab2878d0bf920f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22157, "upload_time": "2016-06-02T11:48:08", "upload_time_iso_8601": "2016-06-02T11:48:08.138261Z", "url": "https://files.pythonhosted.org/packages/84/e2/8d541f916b4e3e556a9489ba10bd0af2fac2157bbb7cf0f67cd564582286/tri.table-2.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "f5762dae85e2b33e5f5f07e4c6b0ef1c", "sha256": "f5438c077eafc0d55c996e16621393f996bba70e1ade9e674940e4464da09967" }, "downloads": -1, "filename": "tri.table-2.1.0.tar.gz", "has_sig": false, "md5_digest": "f5762dae85e2b33e5f5f07e4c6b0ef1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22619, "upload_time": "2016-07-07T09:18:45", "upload_time_iso_8601": "2016-07-07T09:18:45.769047Z", "url": "https://files.pythonhosted.org/packages/bf/02/7cf2a98871117822b2f2bc2d44d7c01139127e8974e7276334de7141ff77/tri.table-2.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "2da31dbc797bd00662a2b780ec7e3917", "sha256": "251cfd22a6336859459c0d04315e364227f0384a726fdd8c4455588c8730fa28" }, "downloads": -1, "filename": "tri.table-2.2.0.tar.gz", "has_sig": false, "md5_digest": "2da31dbc797bd00662a2b780ec7e3917", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22692, "upload_time": "2016-07-07T09:12:23", "upload_time_iso_8601": "2016-07-07T09:12:23.913344Z", "url": "https://files.pythonhosted.org/packages/34/17/0dbb5d52f964f1eae42e1f829b3227dfb0e4872a0431aaa88a01cab82606/tri.table-2.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "893e46bea80e33d65e199101e4c52821", "sha256": "6483a0e1edd75ff3a471b9ff666c42272c41194eadefc048f98ced6b68070874" }, "downloads": -1, "filename": "tri.table-2.3.0.tar.gz", "has_sig": false, "md5_digest": "893e46bea80e33d65e199101e4c52821", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22806, "upload_time": "2016-07-12T12:25:46", "upload_time_iso_8601": "2016-07-12T12:25:46.465011Z", "url": "https://files.pythonhosted.org/packages/de/2b/1259f21bdc1da65639c25f29f8f6be5c400da3cae073e6a4f85ceb0713c0/tri.table-2.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.3.1": [ { "comment_text": "", "digests": { "md5": "55b36dbce18dc8ac77611d0f4b0dc26d", "sha256": "462f45af1e93a77cb74521fc82eb388f522c21a4fcd66c985338b2b2ee768605" }, "downloads": -1, "filename": "tri.table-2.3.1.tar.gz", "has_sig": false, "md5_digest": "55b36dbce18dc8ac77611d0f4b0dc26d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22906, "upload_time": "2016-09-06T07:17:50", "upload_time_iso_8601": "2016-09-06T07:17:50.495825Z", "url": "https://files.pythonhosted.org/packages/2b/bd/b5d01cce368031f41d64a74b04aa6b2f695f86f030f917ca8106a0b51598/tri.table-2.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "42021343e4c70ebeac0070798241dc0a", "sha256": "2f0a7329a066f5daed5fff63cae75b9f97e6f85f2db6ca532f487e8f7a894b7e" }, "downloads": -1, "filename": "tri.table-2.4.0.tar.gz", "has_sig": false, "md5_digest": "42021343e4c70ebeac0070798241dc0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22925, "upload_time": "2016-07-13T11:45:19", "upload_time_iso_8601": "2016-07-13T11:45:19.419072Z", "url": "https://files.pythonhosted.org/packages/22/96/8a1a593eabb2bde4622c417a5855cbefc9c75467ee93f205e2a25a2fadae/tri.table-2.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.5.0": [ { "comment_text": "", "digests": { "md5": "2b00ae518bc1a7e8bf6f609b6d5ec423", "sha256": "ae06cdea6fda10dce1e08c05aed7c69a25b95500f53ef752cdb53af5fffa6adb" }, "downloads": -1, "filename": "tri.table-2.5.0.tar.gz", "has_sig": false, "md5_digest": "2b00ae518bc1a7e8bf6f609b6d5ec423", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23273, "upload_time": "2016-08-25T13:40:13", "upload_time_iso_8601": "2016-08-25T13:40:13.965244Z", "url": "https://files.pythonhosted.org/packages/3e/7f/fbece2681b67d395bc76b9b745a2d3dfefe448f9d3ed075cb7a3babfb508/tri.table-2.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.6.0": [ { "comment_text": "", "digests": { "md5": "bc521a38e2285611b73ecae0e4da0309", "sha256": "0b47523fb560738afcb2497ec1770d9c421d362a73c67c0eac995daf04ce9837" }, "downloads": -1, "filename": "tri.table-2.6.0.tar.gz", "has_sig": false, "md5_digest": "bc521a38e2285611b73ecae0e4da0309", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23422, "upload_time": "2016-08-25T13:39:56", "upload_time_iso_8601": "2016-08-25T13:39:56.808868Z", "url": "https://files.pythonhosted.org/packages/dd/04/433ea3f0d7db218bd59b847ed0848c3627280cf2749fccca7b97f6d3a559/tri.table-2.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "295d71024b0ce3089a563003ad5604a3", "sha256": "03a917ba4ff80fa0c1422cb76d01a83442737ef0f39d7f5ca59087fcd7cc9531" }, "downloads": -1, "filename": "tri.table-3.0.0.tar.gz", "has_sig": false, "md5_digest": "295d71024b0ce3089a563003ad5604a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24025, "upload_time": "2016-09-06T07:55:17", "upload_time_iso_8601": "2016-09-06T07:55:17.697638Z", "url": "https://files.pythonhosted.org/packages/29/4f/33f38522c16edf00c3a010152b88c9f0d0edd9471be4c73bb713eb61fe0a/tri.table-3.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "47485907bd379eea73a21995c2a8d69b", "sha256": "77a8fed55548f02827470bda09804e640b28a0da1fdf4fd0545930a700de6e87" }, "downloads": -1, "filename": "tri.table-3.0.1.tar.gz", "has_sig": false, "md5_digest": "47485907bd379eea73a21995c2a8d69b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24129, "upload_time": "2016-09-14T10:02:55", "upload_time_iso_8601": "2016-09-14T10:02:55.945470Z", "url": "https://files.pythonhosted.org/packages/ec/5c/7fd0b36d67bcba079dfaab39d3fea583d0f0ded562a0612cba631092c386/tri.table-3.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "3.0.2": [ { "comment_text": "", "digests": { "md5": "a9fbf41b9f2898d9af646b665295dfac", "sha256": "4c2eeffac3d9dfb153dadd77997396bd8fd7533e7875d6e20dc34fce1418de0b" }, "downloads": -1, "filename": "tri.table-3.0.2.tar.gz", "has_sig": false, "md5_digest": "a9fbf41b9f2898d9af646b665295dfac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24240, "upload_time": "2016-09-14T10:05:13", "upload_time_iso_8601": "2016-09-14T10:05:13.401126Z", "url": "https://files.pythonhosted.org/packages/47/47/bc33b297ac821dceaef1b5f46da0690afd1884d3aa2c751b5cb164a0c049/tri.table-3.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "4.0.0": [ { "comment_text": "", "digests": { "md5": "1caa1fff7b06465ec7d0d843bd647d79", "sha256": "4e0383f15bb8900f14668cb0dc9a2b956f1e85b950772bfcc028161afa9da36b" }, "downloads": -1, "filename": "tri.table-4.0.0.tar.gz", "has_sig": false, "md5_digest": "1caa1fff7b06465ec7d0d843bd647d79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24539, "upload_time": "2016-09-27T12:47:00", "upload_time_iso_8601": "2016-09-27T12:47:00.506747Z", "url": "https://files.pythonhosted.org/packages/ec/0a/fd61d36bb5622ace71bf75e49c42d8e696b9d7aab9295fdec784d65bc466/tri.table-4.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "4.1.0": [ { "comment_text": "", "digests": { "md5": "13b8a645a7baa887d12e07fa554160ae", "sha256": "34d620db5e15b1d8ac26df59aa5d46d132541f188e1e2b43e0cef166ede292ab" }, "downloads": -1, "filename": "tri.table-4.1.0.tar.gz", "has_sig": false, "md5_digest": "13b8a645a7baa887d12e07fa554160ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25389, "upload_time": "2017-03-22T09:24:48", "upload_time_iso_8601": "2017-03-22T09:24:48.350853Z", "url": "https://files.pythonhosted.org/packages/b0/9a/c2423e8f0cb3be68eea9f99cb20c1e32f670d4a93ae56d4f018e656a9a5c/tri.table-4.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "4.1.1": [ { "comment_text": "", "digests": { "md5": "74a170335c5ed43d757d7fd4dcd96af3", "sha256": "51ac17fd19e63874cca73c01d473512fb8db986c5ca4133c1561e8bd1291aacd" }, "downloads": -1, "filename": "tri.table-4.1.1.tar.gz", "has_sig": false, "md5_digest": "74a170335c5ed43d757d7fd4dcd96af3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25466, "upload_time": "2017-04-19T11:47:20", "upload_time_iso_8601": "2017-04-19T11:47:20.072885Z", "url": "https://files.pythonhosted.org/packages/63/2c/11dd3e2990bf44cd5a62c4040dc7b5130d5bb076ece31ec3fe610e9df504/tri.table-4.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "4.1.2": [ { "comment_text": "", "digests": { "md5": "a52bfba83c48f5b5771d453271b32662", "sha256": "d8de107e801c7d7302e9806f53a15f80a2bcfe70901f515966bbde4705d66185" }, "downloads": -1, "filename": "tri.table-4.1.2.tar.gz", "has_sig": false, "md5_digest": "a52bfba83c48f5b5771d453271b32662", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25589, "upload_time": "2017-04-19T11:47:11", "upload_time_iso_8601": "2017-04-19T11:47:11.903336Z", "url": "https://files.pythonhosted.org/packages/1f/82/a013b54505b7beeca4e8424ca69e8db4a5a91529029db09366261e614028/tri.table-4.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "4.2.0": [ { "comment_text": "", "digests": { "md5": "c744a8d0cae1041caf8ed796216f1d3a", "sha256": "ed3b9bf6790da4e57a73a6ad47a8015ee25809c43d2afcc182ed34da4c33f518" }, "downloads": -1, "filename": "tri.table-4.2.0.tar.gz", "has_sig": false, "md5_digest": "c744a8d0cae1041caf8ed796216f1d3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25725, "upload_time": "2017-04-25T11:41:32", "upload_time_iso_8601": "2017-04-25T11:41:32.985434Z", "url": "https://files.pythonhosted.org/packages/bc/fd/f09e20278729da90290dcbcae810289346a6fa125266a3a124d8387dd120/tri.table-4.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "4.3.0": [ { "comment_text": "", "digests": { "md5": "db02c699dca670b74141d0e6eb8bc125", "sha256": "6058960659d65703b7eb23d5d3603c0dd199245addabfe9434bf237782a92062" }, "downloads": -1, "filename": "tri.table-4.3.0.tar.gz", "has_sig": false, "md5_digest": "db02c699dca670b74141d0e6eb8bc125", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25663, "upload_time": "2017-04-25T11:40:09", "upload_time_iso_8601": "2017-04-25T11:40:09.794718Z", "url": "https://files.pythonhosted.org/packages/4f/48/8a706762f2c6013c893c36291fa9b78f66fa7c255b30717f2d5a443de80b/tri.table-4.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "5.0.0": [ { "comment_text": "", "digests": { "md5": "755f910195df1d188b15d7a7799ae304", "sha256": "461fdcd81afbefb8c853271fb1b22215ede8fba26ccf8d1ad9e3a1a29467b136" }, "downloads": -1, "filename": "tri.table-5.0.0.tar.gz", "has_sig": false, "md5_digest": "755f910195df1d188b15d7a7799ae304", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26005, "upload_time": "2017-08-22T11:46:35", "upload_time_iso_8601": "2017-08-22T11:46:35.264844Z", "url": "https://files.pythonhosted.org/packages/58/7e/b2c831aa37badb47f06962abe97a58e496fa623fe5f70f005c3beb6374f1/tri.table-5.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "5.1.0": [ { "comment_text": "", "digests": { "md5": "e3b154a022ef1cc1d657af237f931e01", "sha256": "12693015db1af18c2d2855c8f959d039423aa6f15cb6f26f78d824805780a262" }, "downloads": -1, "filename": "tri.table-5.1.0.tar.gz", "has_sig": false, "md5_digest": "e3b154a022ef1cc1d657af237f931e01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26201, "upload_time": "2018-05-23T07:19:31", "upload_time_iso_8601": "2018-05-23T07:19:31.568374Z", "url": "https://files.pythonhosted.org/packages/9a/e9/de6d2fd6b78b839b79482302259c010ea48c0250270987b5b56358ba6562/tri.table-5.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "5.1.1": [ { "comment_text": "", "digests": { "md5": "c04298c6a1a255bbc5997fc93833c4fd", "sha256": "b5352f0c2485b3561f72f19badc16baa1fb4548a00eac59ba3ef3a757aadcdbf" }, "downloads": -1, "filename": "tri.table-5.1.1.tar.gz", "has_sig": false, "md5_digest": "c04298c6a1a255bbc5997fc93833c4fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26294, "upload_time": "2018-05-23T07:19:54", "upload_time_iso_8601": "2018-05-23T07:19:54.512247Z", "url": "https://files.pythonhosted.org/packages/6c/44/99f392a8e92d753a42f587ab5f94e6450a0459c586a88ae3c4a4a5e07e07/tri.table-5.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "5.2.0": [ { "comment_text": "", "digests": { "md5": "3f9e8a0dd1e6f0e63e06ac89ba379b3e", "sha256": "9705af2c7927f3a537c7fbf66667c4734abd0bed1166090b8960b7c636de3cb9" }, "downloads": -1, "filename": "tri.table-5.2.0.tar.gz", "has_sig": false, "md5_digest": "3f9e8a0dd1e6f0e63e06ac89ba379b3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26414, "upload_time": "2018-06-15T12:05:20", "upload_time_iso_8601": "2018-06-15T12:05:20.217842Z", "url": "https://files.pythonhosted.org/packages/36/f2/4264303062590a7a6a91b2e64c5a005e65217422c66ab7a7870024103a2d/tri.table-5.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "5.2.1": [ { "comment_text": "", "digests": { "md5": "4df956e83baf4b3295175ad4c92009ac", "sha256": "a6fbe40afe8cce5b8a7cd1f8ff567414fb2f21e7f20eeab353a55897345a045b" }, "downloads": -1, "filename": "tri.table-5.2.1.tar.gz", "has_sig": false, "md5_digest": "4df956e83baf4b3295175ad4c92009ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26911, "upload_time": "2018-06-29T08:03:56", "upload_time_iso_8601": "2018-06-29T08:03:56.231221Z", "url": "https://files.pythonhosted.org/packages/d6/5c/14e2c8cc9b2e71ae90a7b5a26107d30801220a2117f3b66cfea0aa12e05b/tri.table-5.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "5.2.2": [ { "comment_text": "", "digests": { "md5": "a5fd3afaf2edaa9e9adcce23a77837e2", "sha256": "90e9ebfe65efb6c983d03b0071cedb8ac0d5748493f533344cbe2fdf8e527ae8" }, "downloads": -1, "filename": "tri.table-5.2.2.tar.gz", "has_sig": false, "md5_digest": "a5fd3afaf2edaa9e9adcce23a77837e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26974, "upload_time": "2018-06-29T08:05:20", "upload_time_iso_8601": "2018-06-29T08:05:20.523905Z", "url": "https://files.pythonhosted.org/packages/0d/a1/628dba87eec80e2a17e2174470e85908097c081e7cc5908eadf35aba79a5/tri.table-5.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "5.3.0": [ { "comment_text": "", "digests": { "md5": "ab82e7bb05e0c16189f34566b3a88a03", "sha256": "d0e335c5aabf2f0a427172bda6608a2b8c79792a22aa0d9f485236f363009e2f" }, "downloads": -1, "filename": "tri.table-5.3.0.tar.gz", "has_sig": false, "md5_digest": "ab82e7bb05e0c16189f34566b3a88a03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27155, "upload_time": "2018-09-21T11:18:15", "upload_time_iso_8601": "2018-09-21T11:18:15.329109Z", "url": "https://files.pythonhosted.org/packages/29/a4/cd394fd897c56aad87690f6cf09df7d0aedd6c61b55de23f92c1c6211799/tri.table-5.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "5.3.1": [ { "comment_text": "", "digests": { "md5": "b533ad89a6219d17acad1d4e06eb92a0", "sha256": "19eaf132792474f2471b991c8ee4838bc3d0e653bc4c0d030a808d9398e57b1d" }, "downloads": -1, "filename": "tri.table-5.3.1.tar.gz", "has_sig": false, "md5_digest": "b533ad89a6219d17acad1d4e06eb92a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29610, "upload_time": "2018-10-10T13:24:03", "upload_time_iso_8601": "2018-10-10T13:24:03.574114Z", "url": "https://files.pythonhosted.org/packages/87/b4/d8078f37169a10ec98df595d8d7284a5b6c22d57a8e58502fc629ef93b9f/tri.table-5.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "6.0.0": [ { "comment_text": "", "digests": { "md5": "8493dfe18e216eee0044728e9bfb92b5", "sha256": "08f357bef923529d0d208639fe39406eae66fbb002a9520cec2231daeb64ab13" }, "downloads": -1, "filename": "tri.table-6.0.0.tar.gz", "has_sig": false, "md5_digest": "8493dfe18e216eee0044728e9bfb92b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30859, "upload_time": "2018-12-03T08:16:52", "upload_time_iso_8601": "2018-12-03T08:16:52.217649Z", "url": "https://files.pythonhosted.org/packages/08/de/2bd79b9cee3ca8ba6b93757d0496f614a5ffc5e7f877b7b32ac27a1553c5/tri.table-6.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "6.0.1": [ { "comment_text": "", "digests": { "md5": "c742154d8cc6cd3d9189aa7eb4fdbccf", "sha256": "f7b2ee3fe9e2eaa0f2888d25a8856ba6c0f6f1d7a05a648ad21121c67c3d5160" }, "downloads": -1, "filename": "tri.table-6.0.1.tar.gz", "has_sig": false, "md5_digest": "c742154d8cc6cd3d9189aa7eb4fdbccf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30952, "upload_time": "2018-12-04T10:00:03", "upload_time_iso_8601": "2018-12-04T10:00:03.075227Z", "url": "https://files.pythonhosted.org/packages/cb/25/da9eca07ed1d8a0aa6fd015565a31ad59b2a90b0e42a8c50596f2643b595/tri.table-6.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "6.0.2": [ { "comment_text": "", "digests": { "md5": "d42a9b6585f52a1641ebfef8459f343b", "sha256": "c31a6e9bf7a3a250f64769598d3b7504e4406871260deec3cf13767926a1ed58" }, "downloads": -1, "filename": "tri.table-6.0.2.tar.gz", "has_sig": false, "md5_digest": "d42a9b6585f52a1641ebfef8459f343b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31154, "upload_time": "2018-12-06T09:56:46", "upload_time_iso_8601": "2018-12-06T09:56:46.752777Z", "url": "https://files.pythonhosted.org/packages/01/b6/a59eb648f5809c47d6207c4401adb79bccd91f9e41e2f25408b3865b4c70/tri.table-6.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "6.0.3": [ { "comment_text": "", "digests": { "md5": "1a1d99b9dc42ae28a59a57d77884d62f", "sha256": "b103a6bacf707ad0491590619befabd995bd0be14509c59ffb250728418ba237" }, "downloads": -1, "filename": "tri.table-6.0.3.tar.gz", "has_sig": false, "md5_digest": "1a1d99b9dc42ae28a59a57d77884d62f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31224, "upload_time": "2018-12-06T12:35:46", "upload_time_iso_8601": "2018-12-06T12:35:46.174172Z", "url": "https://files.pythonhosted.org/packages/9c/e8/ead54ca1964eae4450dc4e4cfb1dce13c76838fa558214637eb3b7c45983/tri.table-6.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "6.1.0": [ { "comment_text": "", "digests": { "md5": "a64f181b54447d8fefe8c1b78304f6e9", "sha256": "899d63d201468562620f3b81ab7d0b7ab187acb7f340d7fcf115ab6ba3583012" }, "downloads": -1, "filename": "tri.table-6.1.0.tar.gz", "has_sig": false, "md5_digest": "a64f181b54447d8fefe8c1b78304f6e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32116, "upload_time": "2019-02-14T13:42:47", "upload_time_iso_8601": "2019-02-14T13:42:47.847144Z", "url": "https://files.pythonhosted.org/packages/b4/15/7f9b5262008c05ffd8fd94cf16b78dfbca3fdd0a563c6fd05cf4c4431d28/tri.table-6.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "6.2.0": [ { "comment_text": "", "digests": { "md5": "16a6a7ec3b46619076e126228ec7cb14", "sha256": "7606745ce949e9406c58de1ec2183953510055417903ebfb5275f5e0424aebbf" }, "downloads": -1, "filename": "tri.table-6.2.0.tar.gz", "has_sig": false, "md5_digest": "16a6a7ec3b46619076e126228ec7cb14", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33949, "upload_time": "2019-03-04T13:39:09", "upload_time_iso_8601": "2019-03-04T13:39:09.187746Z", "url": "https://files.pythonhosted.org/packages/f4/53/3fb2c04ab7455c76030f4680a9af95d5377cab1cad3e1bc83ba1568a7c2f/tri.table-6.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "6.2.1": [ { "comment_text": "", "digests": { "md5": "648c1201dd06721b54988503439666fc", "sha256": "6cb63ecdce887cfe6011685c3106eb53f0b3b71f3049b9e2b9a9fe88632486f9" }, "downloads": -1, "filename": "tri.table-6.2.1.tar.gz", "has_sig": false, "md5_digest": "648c1201dd06721b54988503439666fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34024, "upload_time": "2019-03-05T07:52:57", "upload_time_iso_8601": "2019-03-05T07:52:57.470425Z", "url": "https://files.pythonhosted.org/packages/2f/07/3a8859578a6e0d9955fb53bb8d023e3ff393c7e24e5ccebc559fd9fe65a0/tri.table-6.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "6.3.0": [ { "comment_text": "", "digests": { "md5": "42e7f9af134523c0225dc11f1e6da196", "sha256": "80374dbc3384f9bfff25002abe48065febb0ae1fdae6af3724a6fe71e9c8ee93" }, "downloads": -1, "filename": "tri.table-6.3.0.tar.gz", "has_sig": false, "md5_digest": "42e7f9af134523c0225dc11f1e6da196", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34117, "upload_time": "2019-03-15T12:36:03", "upload_time_iso_8601": "2019-03-15T12:36:03.484680Z", "url": "https://files.pythonhosted.org/packages/53/2a/bf914497d52099be0d398cbf1e895b2e99f90d6865f18f5c498ed63cf50c/tri.table-6.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "7.0.0": [ { "comment_text": "", "digests": { "md5": "012d2fb259b55bd6d8ca91aa45df21b3", "sha256": "bd869e95acf2daada2901cce02d3a8b68bd4c5fa7fa6dbcd9e8cf582f14945e4" }, "downloads": -1, "filename": "tri.table-7.0.0.tar.gz", "has_sig": false, "md5_digest": "012d2fb259b55bd6d8ca91aa45df21b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34874, "upload_time": "2019-04-12T14:25:33", "upload_time_iso_8601": "2019-04-12T14:25:33.847964Z", "url": "https://files.pythonhosted.org/packages/70/bf/18ee7115f4a2b7e36e5a7aa7c512b97684ce5d9a8aec9688cd217c89925f/tri.table-7.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "7.0.1": [ { "comment_text": "", "digests": { "md5": "17b26c8209ef59b46c72555d02eff18c", "sha256": "7f2d41b31d680fff5a9f28131c58398db649c216da45d8a427b061fe9792050c" }, "downloads": -1, "filename": "tri.table-7.0.1.tar.gz", "has_sig": false, "md5_digest": "17b26c8209ef59b46c72555d02eff18c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34969, "upload_time": "2019-05-06T09:14:58", "upload_time_iso_8601": "2019-05-06T09:14:58.772913Z", "url": "https://files.pythonhosted.org/packages/08/98/b63efc2c049b6eefe6bb39bc3febd32b824587eb09a6676d66eb74c8f304/tri.table-7.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "7.0.2": [ { "comment_text": "", "digests": { "md5": "7400f921913c62235a7592c1154cfd3d", "sha256": "0025ec655563ccdb47f93f95b9ffbc917eb6268f5edd5ec2b01d65549b253ac7" }, "downloads": -1, "filename": "tri.table-7.0.2.tar.gz", "has_sig": false, "md5_digest": "7400f921913c62235a7592c1154cfd3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35026, "upload_time": "2019-05-06T10:24:46", "upload_time_iso_8601": "2019-05-06T10:24:46.465165Z", "url": "https://files.pythonhosted.org/packages/e7/da/81496fe56b11db23d63b59bf8d96380a09abbf30b651095892dee522914d/tri.table-7.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "8.0.0": [ { "comment_text": "", "digests": { "md5": "c2dd2f454092c81716cf2ac4e4503882", "sha256": "3ae505cba8129922832f716940725a445d37d958e5cc41682a589342ba5bb18a" }, "downloads": -1, "filename": "tri.table-8.0.0.tar.gz", "has_sig": false, "md5_digest": "c2dd2f454092c81716cf2ac4e4503882", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34724, "upload_time": "2019-06-14T10:17:06", "upload_time_iso_8601": "2019-06-14T10:17:06.632473Z", "url": "https://files.pythonhosted.org/packages/33/c8/5b62463106ea7f37640ccf38eb29d87b2315711aa3ed35703b7eaeed9087/tri.table-8.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "8.1.0": [ { "comment_text": "", "digests": { "md5": "bc760bf17509208599006d58c1032975", "sha256": "1e1615f2977d646af88dc8c03f1d860777cb66f215bc87eff9c91f2b00ae0fdc" }, "downloads": -1, "filename": "tri.table-8.1.0.tar.gz", "has_sig": false, "md5_digest": "bc760bf17509208599006d58c1032975", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35352, "upload_time": "2019-10-15T11:35:18", "upload_time_iso_8601": "2019-10-15T11:35:18.958975Z", "url": "https://files.pythonhosted.org/packages/11/7d/3cd8403c235f0ade56fd1cf416616d6d50a2f08138488595db890a36b7c8/tri.table-8.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "8.1.1": [ { "comment_text": "", "digests": { "md5": "5816644a7a0f5cd6677080c69ea4e139", "sha256": "ec396197be7da6f14816833ba711f96dd09dd35a819f38cdcbbeb6e9f108e7ed" }, "downloads": -1, "filename": "tri.table-8.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5816644a7a0f5cd6677080c69ea4e139", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25492, "upload_time": "2019-10-23T14:02:49", "upload_time_iso_8601": "2019-10-23T14:02:49.688472Z", "url": "https://files.pythonhosted.org/packages/35/bf/6c0426795534b661e4c80c5ebde9e7c93d4cedbd33c12d12711cf8e68f72/tri.table-8.1.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8527f6dc32a367e1ae4e639c611b541b", "sha256": "03b7a204f086f6056e94893b42ac4504e5941cb1e30d8ea2d4c1e85d8e3d25f1" }, "downloads": -1, "filename": "tri.table-8.1.1.tar.gz", "has_sig": false, "md5_digest": "8527f6dc32a367e1ae4e639c611b541b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28230, "upload_time": "2019-10-23T14:02:52", "upload_time_iso_8601": "2019-10-23T14:02:52.206201Z", "url": "https://files.pythonhosted.org/packages/69/67/c24e1057b1978ccdad9b233a3d7fefd11c49bbf9a50e3dd9ccd998ba1570/tri.table-8.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "8.2.0": [ { "comment_text": "", "digests": { "md5": "f38564c360045c60cd22b6ee6c8dc903", "sha256": "358b0a5cd51a0fdfb075418a426b7b4bcc636f649e9b4212bef43b185cb4a684" }, "downloads": -1, "filename": "tri.table-8.2.0.tar.gz", "has_sig": false, "md5_digest": "f38564c360045c60cd22b6ee6c8dc903", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36854, "upload_time": "2019-11-21T09:43:09", "upload_time_iso_8601": "2019-11-21T09:43:09.616813Z", "url": "https://files.pythonhosted.org/packages/98/c5/604e5fbe2032be9cf1227e5d75f4c26556faad0be7ed21b44444fc678445/tri.table-8.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "8.3.0": [ { "comment_text": "", "digests": { "md5": "3622ab3d4821ccea1bbefb34e270c42c", "sha256": "376d0047237aa42651b92150d40ba4951207740038b5a1f1c46df51b7f47e880" }, "downloads": -1, "filename": "tri.table-8.3.0.tar.gz", "has_sig": false, "md5_digest": "3622ab3d4821ccea1bbefb34e270c42c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36919, "upload_time": "2020-01-09T10:24:01", "upload_time_iso_8601": "2020-01-09T10:24:01.149516Z", "url": "https://files.pythonhosted.org/packages/0a/ea/2167738c76bf1fd9da316ce61bb05aa14cb578fdbeea25e11e72dda8e802/tri.table-8.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "8.4.0": [ { "comment_text": "", "digests": { "md5": "7abbb55a66fa94a21964462ed7a211f0", "sha256": "d01a29df9f882cef6f28d289c949bc0a3ae0036d53a1506b8b02413db052cf47" }, "downloads": -1, "filename": "tri.table-8.4.0.tar.gz", "has_sig": false, "md5_digest": "7abbb55a66fa94a21964462ed7a211f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37552, "upload_time": "2020-04-24T09:24:03", "upload_time_iso_8601": "2020-04-24T09:24:03.468535Z", "url": "https://files.pythonhosted.org/packages/05/2e/039d80da5187b1b273dac3f383c3fe2298d4ec6726a534fad20c650094f0/tri.table-8.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "8.5.0": [ { "comment_text": "", "digests": { "md5": "439ca66bdaad9e4c0191a471a706a837", "sha256": "22fbfdf46158b388a3c3dcb056bb87e52e2727678d78c55ea4ba11f8111a3c0b" }, "downloads": -1, "filename": "tri.table-8.5.0.tar.gz", "has_sig": false, "md5_digest": "439ca66bdaad9e4c0191a471a706a837", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38322, "upload_time": "2020-12-04T11:26:17", "upload_time_iso_8601": "2020-12-04T11:26:17.947551Z", "url": "https://files.pythonhosted.org/packages/b1/b3/34b45ef8a43f34d493026c95543fb9f1030f0ebc45fc3977894773fc871f/tri.table-8.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "8.5.1": [ { "comment_text": "", "digests": { "md5": "7365d8579eb9b4e5aecd909856392a2c", "sha256": "feefcc4a95351eadd6b8023c4e065e3c2b28936a3d32c88111a11c2e73e99c9b" }, "downloads": -1, "filename": "tri.table-8.5.1.tar.gz", "has_sig": false, "md5_digest": "7365d8579eb9b4e5aecd909856392a2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38357, "upload_time": "2020-12-04T12:17:05", "upload_time_iso_8601": "2020-12-04T12:17:05.229762Z", "url": "https://files.pythonhosted.org/packages/33/74/e334fc5b4899bb97e673df7db7dff7724619a8242523e45030ece977712b/tri.table-8.5.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7365d8579eb9b4e5aecd909856392a2c", "sha256": "feefcc4a95351eadd6b8023c4e065e3c2b28936a3d32c88111a11c2e73e99c9b" }, "downloads": -1, "filename": "tri.table-8.5.1.tar.gz", "has_sig": false, "md5_digest": "7365d8579eb9b4e5aecd909856392a2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38357, "upload_time": "2020-12-04T12:17:05", "upload_time_iso_8601": "2020-12-04T12:17:05.229762Z", "url": "https://files.pythonhosted.org/packages/33/74/e334fc5b4899bb97e673df7db7dff7724619a8242523e45030ece977712b/tri.table-8.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }