{ "info": { "author": "Open Knowledge International", "author_email": "info@okfn.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# goodtables-py\n\n[![Travis](https://img.shields.io/travis/frictionlessdata/goodtables-py/master.svg)](https://travis-ci.org/frictionlessdata/goodtables-py)\n[![Coveralls](http://img.shields.io/coveralls/frictionlessdata/goodtables-py.svg?branch=master)](https://coveralls.io/r/frictionlessdata/goodtables-py?branch=master)\n[![PyPi](https://img.shields.io/pypi/v/goodtables.svg)](https://pypi.python.org/pypi/goodtables)\n[![Github](https://img.shields.io/badge/github-master-brightgreen)](https://github.com/frictionlessdata/goodtables-py)\n[![Gitter](https://img.shields.io/gitter/room/frictionlessdata/chat.svg)](https://gitter.im/frictionlessdata/chat)\n\nGoodtables is a framework to validate tabular data. It can check the structure\nof your data (e.g. all rows have the same number of columns), and its contents\n(e.g. all dates are valid).\n\n> **[Important Notice]** `goodtables` was renamed to `frictionless` since version 3. The framework got various improvements and was extended to be a complete data solution. The change in not breaking for the existing software so no actions are required. Please read the [Migration Guide](https://framework.frictionlessdata.io/docs/development/migration#from-goodtables) to start working with Frictionless for Python.\n> - we continue to bug-fix `goodtables@2.x` in this [branch](https://github.com/frictionlessdata/goodtables-py/tree/goodtables) as well as it's available on [PyPi](https://pypi.org/project/goodtables/) as it was before\n> - please note that `frictionless@3.x` version's API, we're working on at the moment, is not stable\n> - we will release `frictionless@4.x` by the end of 2020 to be the first SemVer/stable version\n\n## Features\n\n* **Structural checks**: Ensure that there are no empty rows, no blank headers, etc.\n* **Content checks**: Ensure that the values have the correct types (\"string\", \"number\", \"date\", etc.), that their format is valid (\"string must be an e-mail\"), and that they respect the constraints (\"age must be a number greater than 18\").\n* **Support for multiple tabular formats**: CSV, Excel files, LibreOffice, Data Package, etc.\n* **Parallelized validations for multi-table datasets**\n* **Command line interface**\n\n## Contents\n\n\n\n - [Getting Started](#getting-started)\n - [Installing](#installing)\n - [Running on CLI](#running-on-cli)\n - [Running on Python](#running-on-python)\n - [Documentation](#documentation)\n - [Report](#report)\n - [Checks](#checks)\n - [Presets](#presets)\n - [Data Quality Errors](#data-quality-errors)\n - [Frequently Asked Questions](#frequently-asked-questions)\n - [API Reference](#api-reference)\n - [`cli`](#cli)\n - [`validate`](#validate)\n - [`preset`](#preset)\n - [`check`](#check)\n - [`Error`](#error)\n - [`spec`](#spec)\n - [`GoodtablesException`](#goodtablesexception)\n - [Contributing](#contributing)\n - [Changelog](#changelog)\n\n\n\n## Getting Started\n\n> For faster goodtables-combatible Pandas dataframes validation take a look at https://github.com/ezwelty/goodtables-pandas-py\n\n### Installing\n\n```\npip install goodtables\npip install goodtables[ods] # If you need LibreOffice's ODS file support\n```\n\n### Running on CLI\n\n```\ngoodtables data.csv\n```\n\nUse `goodtables --help` to see the different options.\n\n### Running on Python\n\n```python\nfrom goodtables import validate\n\nreport = validate('invalid.csv')\nreport['valid'] # false\nreport['table-count'] # 1\nreport['error-count'] # 3\nreport['tables'][0]['valid'] # false\nreport['tables'][0]['source'] # 'invalid.csv'\nreport['tables'][0]['errors'][0]['code'] # 'blank-header'\n```\n\nYou can read a more in depth explanation on using goodtables with Python on\nthe [developer documentation](#developer-documentation) section. Check also\nthe [examples](examples) folder for other examples.\n\n## Documentation\n\nGoodtables validates your tabular dataset to find structural and content\nerrors. Consider you have a file named `invalid.csv`. Let's validate it:\n\n```python\nreport = validate('invalid.csv')\n```\n\nWe could also pass a remote URI instead of a local path. It supports CSV, XLS,\nXLSX, ODS, JSON, and all other formats supported by the [tabulator][tabulator]\nlibrary.\n\n### Report\n\n> The validation report follows the JSON Schema defined on [goodtables/schemas/report.json][validation-jsonschema].\n\nThe output of the `validate()` method is a report dictionary. It includes\ninformation if the data was valid, count of errors, list of table reports, which\nindividual checks failed, etc. A report will be looking like this:\n\n```json\n{\n \"time\": 0.009,\n \"error-count\": 1,\n \"warnings\": [\n \"Table \\\"data/invalid.csv\\\" inspection has reached 1 error(s) limit\"\n ],\n \"preset\": \"table\",\n \"valid\": false,\n \"tables\": [\n {\n \"errors\": [\n {\n \"row-number\": null,\n \"message\": \"Header in column 3 is blank\",\n \"row\": null,\n \"column-number\": 3,\n \"code\": \"blank-header\"\n }\n ],\n \"error-count\": 1,\n \"headers\": [\n \"id\",\n \"name\",\n \"\",\n \"name\"\n ],\n \"scheme\": \"file\",\n \"row-count\": 2,\n \"valid\": false,\n \"encoding\": \"utf-8\",\n \"time\": 0.007,\n \"schema\": null,\n \"format\": \"csv\",\n \"source\": \"data/invalid\"\n }\n ],\n \"table-count\": 1\n}\n```\n\nThe errors are divided in one of the following categories:\n\n- `source` - data can't be loaded or parsed\n- `structure` - general tabular errors like duplicate headers\n- `schema` - error of checks against [Table Schema](http://specs.frictionlessdata.io/table-schema/)\n- `custom` - custom checks errors\n\n### Checks\n\nCheck is a main validation actor in goodtables. The list of enabled checks can\nbe changed using `checks` and `skip_checks` arguments. Let's explore the options\non an example:\n\n```python\nreport = validate('data.csv') # by default structure and schema (if available) checks\nreport = validate('data.csv', checks=['structure']) # only structure checks\nreport = validate('data.csv', checks=['schema']) # only schema (if available) checks\nreport = validate('data.csv', checks=['bad-headers']) # check only 'bad-headers'\nreport = validate('data.csv', skip_checks=['bad-headers']) # exclude 'bad-headers'\n```\n\nBy default a dataset will be validated against all available Data Quality Spec\nerrors. Some checks can be unavailable for validation. For example, if the\nschema isn't provided, only the `structure` checks will be done.\n\n### Presets\n\nGoodtables support different formats of tabular datasets. They're called\npresets. A tabular dataset is some data that can be split in a list of data\ntables, as:\n\n![Dataset](data/dataset.png)\n\nWe can change the preset using the `preset` argument for `validate()`. By\ndefault, it'll be inferred from the source, falling back to `table`. To validate\na [data package][datapackage], we can do:\n\n```python\nreport = validate('datapackage.json') # implicit preset\nreport = validate('datapackage.json', preset='datapackage') # explicit preset\n```\n\nThis will validate all tabular resources in the datapackage.\n\nIt's also possible to validate a list of files using the \"nested\" preset. To do\nso, the first argument to `validate()` should be a list of dictionaries, where\neach key in the dictionary is named after a parameter on `validate()`. For example:\n\n```python\nreport = validate([{'source': 'data1.csv'}, {'source': 'data2.csv'}]) # implicit preset\nreport = validate([{'source': 'data1.csv'}, {'source': 'data2.csv'}], preset='nested') # explicit preset\n```\n\nIs similar to:\n\n```python\nreport_data1 = validate('data1.csv')\nreport_data2 = validate('data2.csv')\n```\n\nThe difference is that goodtables validates multiple tables in parallel, so\ncalling using the \"nested\" preset should run faster.\n\n### Data Quality Errors\n\nBase report errors are standardized and described in\n[Data Quality Spec](https://github.com/frictionlessdata/data-quality-spec/blob/master/spec.json).\n\n#### Source errors\n\nThe basic checks can't be disabled, as they deal with goodtables being able to read the files.\n\n| check | description |\n| --- | --- |\n| io-error | Data reading error because of IO error. |\n| http-error | Data reading error because of HTTP error. |\n| source-error | Data reading error because of not supported or inconsistent contents. |\n| scheme-error | Data reading error because of incorrect scheme. |\n| format-error | Data reading error because of incorrect format. |\n| encoding-error | Data reading error because of an encoding problem. |\n\n#### Structure errors\n\nThese checks validate that the structure of the file are valid.\n\n| check | description |\n| --- | --- |\n| blank-header | There is a blank header name. All cells in the header row must have a value. |\n| duplicate-header | There are multiple columns with the same name. All column names must be unique. |\n| blank-row | Rows must have at least one non-blank cell. |\n| duplicate-row | Rows can't be duplicated. |\n| extra-value | A row has more columns than the header. |\n| missing-value | A row has less columns than the header. |\n\n#### Schema errors\n\nThese checks validate the contents of the file. To use them, you need to pass a [Table Schema][tableschema]. If you don't have a schema, goodtables can infer it if you use the `infer_schema` option.\n\nIf your schema only covers part of the data, you can use the `infer_fields` to infer the remaining fields.\n\nLastly, if the order of the fields in the data is different than in your schema, enable the `order_fields` option.\n\n| check | description |\n| --- | --- |\n| schema-error | Schema is not valid. |\n| non-matching-header | The header's name in the schema is different from what's in the data. |\n| extra-header | The data contains a header not defined in the schema. |\n| missing-header | The data doesn't contain a header defined in the schema. |\n| type-or-format-error | The value can\u2019t be cast based on the schema type and format for this field. |\n| required-constraint | This field is a required field, but it contains no value. |\n| pattern-constraint | This field value's should conform to the defined pattern. |\n| unique-constraint | This field is a unique field but it contains a value that has been used in another row. |\n| enumerable-constraint | This field value should be equal to one of the values in the enumeration constraint. |\n| minimum-constraint | This field value should be greater or equal than constraint value. |\n| maximum-constraint | This field value should be less or equal than constraint value. |\n| minimum-length-constraint | A length of this field value should be greater or equal than schema constraint value. |\n| maximum-length-constraint | A length of this field value should be less or equal than schema constraint value. |\n\n#### Custom errors\n\n| check | description |\n| --- | --- |\n| [blacklisted-value](#blacklisted-value) | Ensure there are no cells with the blacklisted values. |\n| [deviated-value](#deviated-value) | Ensure numbers are within a number of standard deviations from the average. |\n| [foreign-key](#foreign-key) | Ensure foreign keys are valid within a data package |\n| [sequential-value](#sequential-value) | Ensure numbers are sequential. |\n| [truncated-value](#truncated-value) | Detect values that were potentially truncated. |\n| [custom-constraint](#custom-constraint) | Defines a constraint based on the values of other columns (e.g. `value * quantity == total`). |\n\n##### blacklisted-value\n\nSometimes we have to check for some values we don't want to have in out dataset. It accepts following options:\n\n| option | type | description |\n| --- | --- | --- |\n| column | int/str | Column number or name |\n| blacklist | list of str | List of blacklisted values |\n\nConsider the following CSV file:\n\n```csv\nid,name\n1,John\n2,bug\n3,bad\n5,Alex\n```\n\nLet's check that the `name` column doesn't contain rows with `bug` or `bad`:\n\n```python\nfrom goodtables import validate\n\nreport = validate('data.csv', checks=[\n {'blacklisted-value': {'column': 'name', 'blacklist': ['bug', 'bad']}},\n])\n# error on row 3 with code \"blacklisted-value\"\n# error on row 4 with code \"blacklisted-value\"\n```\n\n##### deviated-value\n\nThis check helps to find outlines in a column containing positive numbers. It accepts following options:\n\n| option | type | description |\n| --- | --- | --- |\n| column | int/str | Column number or name |\n| average | str | Average type, either \"mean\", \"median\" or \"mode\" |\n| interval | int | Values must be inside range `average \u00b1 standard deviation * interval` |\n\nConsider the following CSV file:\n\n```csv\ntemperature\n1\n-2\n7\n0\n1\n2\n5\n-4\n100\n8\n3\n```\n\nWe use `median` to get an average of the column values and allow interval of 3 standard deviations. For our case median is `2.0` and standard deviation is `29.73` so all valid values must be inside the `[-87.19, 91.19]` interval.\n\n```python\nreport = validate('data.csv', checks=[\n {'deviated-value': {'column': 'temperature', 'average': 'median', 'interval': 3}},\n])\n# error on row 10 with code \"deviated-value\"\n```\n\n##### foreign-key\n\n> We support here relative paths. It MUST be used only for trusted data sources.\n\nThis check validate foreign keys within a data package. Consider we have a data package defined below:\n\n```python\nDESCRIPTOR = {\n 'resources': [\n {\n 'name': 'cities',\n 'data': [\n ['id', 'name', 'next_id'],\n [1, 'london', 2],\n [2, 'paris', 3],\n [3, 'rome', 4],\n # [4, 'rio', None],\n ],\n 'schema': {\n 'fields': [\n {'name': 'id', 'type': 'integer'},\n {'name': 'name', 'type': 'string'},\n {'name': 'next_id', 'type': 'integer'},\n ],\n 'foreignKeys': [\n {\n 'fields': 'next_id',\n 'reference': {'resource': '', 'fields': 'id'},\n },\n {\n 'fields': 'id',\n 'reference': {'resource': 'people', 'fields': 'label'},\n },\n ],\n },\n }, {\n 'name': 'people',\n 'data': [\n ['label', 'population'],\n [1, 8],\n [2, 2],\n # [3, 3],\n # [4, 6],\n ],\n },\n ],\n}\n```\n\nRunning `goodtables` on it will raise a few `foreign-key` errors because we have commented some rows in the data package's data:\n\n```python\nreport = validate(DESCRIPTOR, checks=['structure', 'schema', 'foreign-key'])\nprint(report)\n```\n\n```\n{'error-count': 2,\n 'preset': 'datapackage',\n 'table-count': 2,\n 'tables': [{'datapackage': '...',\n 'error-count': 2,\n 'errors': [{'code': 'foreign-key',\n 'message': 'Foreign key \"[\\'next_id\\']\" violation in '\n 'row 4',\n 'message-data': {'fields': ['next_id']},\n 'row-number': 4},\n {'code': 'foreign-key',\n 'message': 'Foreign key \"[\\'id\\']\" violation in row 4',\n 'message-data': {'fields': ['id']},\n 'row-number': 4}],\n 'format': 'inline',\n 'headers': ['id', 'name', 'next_id'],\n 'resource-name': 'cities',\n 'row-count': 4,\n 'schema': 'table-schema',\n 'source': 'inline',\n 'time': 0.031,\n 'valid': False},\n {'datapackage': '...',\n 'error-count': 0,\n 'errors': [],\n 'format': 'inline',\n 'headers': ['label', 'population'],\n 'resource-name': 'people',\n 'row-count': 3,\n 'source': 'inline',\n 'time': 0.038,\n 'valid': True}],\n 'time': 0.117,\n 'valid': False,\n 'warnings': []}\n```\n\nIt experimetally supports external resource checks, for example, for a `foreignKey` definition like these:\n\n```json\n{\"package\": \"../people/datapackage.json\", \"resource\": \"people\", \"fields\": \"label\"}\n{\"package\": \"http:/example.com/datapackage.json\", \"resource\": \"people\", \"fields\": \"label\"}\n```\n\n##### sequential-value\n\nThis checks is for pretty common case when a column should have integers that sequentially increment. It accepts following options:\n\n| option | type | description |\n| --- | --- | --- |\n| column | int/str | Column number or name |\n\nConsider the following CSV file:\n\n```csv\nid,name\n1,one\n2,two\n3,three\n5,five\n```\n\nLet's check if the `id` column contains sequential integers:\n\n```python\nfrom goodtables import validate\n\nreport = validate('data.csv', checks=[\n {'sequential-value': {'column': 'id'}},\n])\n# error on row 5 with code \"sequential-value\"\n```\n\n##### truncated-value\n\nSome database or spreadsheet software (like MySQL or Excel) could cutoff values on saving. There are some well-known heuristics to find this bad values. See https://github.com/propublica/guides/blob/master/data-bulletproofing.md for more detailed information.\n\nConsider the following CSV file:\n\n```csv\nid,amount,comment\n1,14000000,good\n2,2147483647,bad\n3,32767,bad\n4,234234234,bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbad\n```\n\nTo detect all probably truncated values we could use `truncated-value` check:\n\n```python\nreport = validate('data.csv', checks=[\n 'truncated-value',\n])\n# error on row 3 with code \"truncated-value\"\n# error on row 4 with code \"truncated-value\"\n# error on row 5 with code \"truncated-value\"\n```\n\n##### custom-constraint\n\nWith Table Schema we could create constraints for an individual field but sometimes it's not enough. With a custom constraint check every row could be checked against given limited python expression in which variable names resolve to column values. See list of [available operators]( https://github.com/danthedeckie/simpleeval#operators). It accepts following options:\n\n
\n
constraint (str)
\n
Constraint definition (e.g. col1 + col2 == col3)
\n
\n\nConsider csv file like this:\n\n```csv\nid,name,salary,bonus\n1,Alex,1000,200\n2,Sam,2500,500\n3,Ray,1350,500\n4,John,5000,1000\n```\n\nLet's say our business rule is to be shy on bonuses:\n\n```python\nreport = validate('data.csv', checks=[\n {'custom-constraint': {'constraint': 'salary > bonus * 4'}},\n])\n# error on row 4 with code \"custom-constraint\"\n```\n\n### Frequently Asked Questions\n\n#### How can I add a new custom check?\n\nTo create a custom check user could use a `check` decorator. This way the builtin check could be overridden (use the spec error code like `duplicate-row`) or could be added a check for a custom error (use `type`, `context` and `position` arguments):\n\n```python\nfrom goodtables import validate, check, Error\n\n@check('custom-check', type='custom', context='body')\ndef custom_check(cells):\n errors = []\n for cell in cells:\n message = 'Custom error on column {column_number} and row {row_number}'\n error = Error(\n 'custom-error',\n cell,\n message\n )\n errors.append(error)\n return errors\n\nreport = validate('data.csv', checks=['custom-check'])\n```\n\nRecommended steps:\n- let's discuss in comment proposed checks first\n- select name for a new check like `possible-noise-text`\n- copy https://github.com/frictionlessdata/goodtables-py/blob/master/goodtables/contrib/checks/blacklisted_value.py to new check module\n- add new check module to configuration - https://github.com/frictionlessdata/goodtables-py/blob/master/goodtables/config.py\n- write actual code for the new check\n- write tests and readme for the new check\n\n#### How can I add support for a new tabular file type?\n\nTo create a custom preset user could use a `preset` decorator. This way the builtin preset could be overridden or could be added a custom preset.\n\n```python\nfrom tabulator import Stream\nfrom tableschema import Schema\nfrom goodtables import validate\n\n@preset('custom-preset')\ndef custom_preset(source, **options):\n warnings = []\n tables = []\n for table in source:\n try:\n tables.append({\n 'source': str(source),\n 'stream': Stream(...),\n 'schema': Schema(...),\n 'extra': {...},\n })\n except Exception:\n warnings.append('Warning message')\n return warnings, tables\n\nreport = validate(source, preset='custom-preset')\n```\n\nFor now this documentation section is incomplete. Please see builtin presets to learn more about the dataset extraction protocol.\n\n## API Reference\n\n### `cli`\n```python\ncli()\n```\nCommand-line interface\n\n```\nUsage: cli.py [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n --version Show the version and exit.\n --help Show this message and exit.\n\nCommands:\n validate* Validate tabular files (default).\n init Init data package from list of files.\n```\n\n\n### `validate`\n```python\nvalidate(source, **options)\n```\nValidates a source file and returns a report.\n\n__Arguments__\n\n- __source (Union[str, Dict, List[Dict], IO])__:\n The source to be validated.\n It can be a local file path, URL, dict, list of dicts, or a\n file-like object. If it's a list of dicts and the `preset` is\n \"nested\", each of the dict key's will be used as if it was passed\n as a keyword argument to this method.\n\n The file can be a CSV, XLS, JSON, and any other format supported by\n `tabulator`_.\n- __checks (List[str])__:\n List of checks names to be enabled. They can be\n individual check names (e.g. `blank-headers`), or check types (e.g.\n `structure`).\n- __skip_checks (List[str])__:\n List of checks names to be skipped. They can\n be individual check names (e.g. `blank-headers`), or check types\n (e.g. `structure`).\n- __infer_schema (bool)__:\n Infer schema if one wasn't passed as an argument.\n- __infer_fields (bool)__:\n Infer schema for columns not present in the received schema.\n- __order_fields (bool)__:\n Order source columns based on schema fields order.\n This is useful when you don't want to validate that the data\n columns' order is the same as the schema's.\n- __error_limit (int)__:\n Stop validation if the number of errors per table exceeds this value.\n- __table_limit (int)__:\n Maximum number of tables to validate.\n- __row_limit (int)__:\n Maximum number of rows to validate.\n- __preset (str)__:\n Dataset type could be `table` (default), `datapackage`,\n `nested` or custom. Usually, the preset can be inferred from the\n source, so you don't need to define it.\n- __Any (Any)__:\n Any additional arguments not defined here will be passed on,\n depending on the chosen `preset`. If the `preset` is `table`, the\n extra arguments will be passed on to `tabulator`_, if it is\n `datapackage`, they will be passed on to the `datapackage`_\n constructor.\n\n__Raises__\n- `GoodtablesException`: Raised on any non-tabular error.\n\n__Returns__\n\n`dict`: The validation report.\n\n\n### `preset`\n```python\npreset(name)\n```\nRegister a custom preset (decorator)\n\n__Example__\n\n\n```python\n@preset('custom-preset')\ndef custom_preset(source, **options):\n # ...\n```\n\n__Arguments__\n- __name (str)__: preset name\n\n\n### `check`\n```python\ncheck(name, type=None, context=None, position=None)\n```\nRegister a custom check (decorator)\n\n__Example__\n\n\n```python\n@check('custom-check', type='custom', context='body')\ndef custom_check(cells):\n # ...\n```\n\n__Arguments__\n- __name (str)__: preset name\n- __type (str)__: has to be `custom`\n- __context (str)__: has to be `head` or `body`\n- __position (str)__: has to be `before:` or `after:`\n\n\n### `Error`\n```python\nError(self, code, cell=None, row_number=None, message=None, message_substitutions=None)\n```\nDescribes a validation check error\n\n__Arguments__\n- __code (str)__: The error code. Must be one in the spec.\n- __cell (dict, optional)__: The cell where the error occurred.\n- __row_number (int, optional)__: The row number where the error occurs.\n- __message (str, optional)__:\n The error message. Defaults to the message from the Data Quality Spec.\n- __message_substitutions (dict, optional)__:\n Dictionary with substitutions to be used when\n generating the error message and description.\n\n__Raises__\n- `KeyError`: Raised if the error code isn't known.\n\n\n### `spec`\ndict() -> new empty dictionary\ndict(mapping) -> new dictionary initialized from a mapping object's\n (key, value) pairs\ndict(iterable) -> new dictionary initialized as if via:\n d = {}\n for k, v in iterable:\n d[k] = v\ndict(**kwargs) -> new dictionary initialized with the name=value pairs\n in the keyword argument list. For example: dict(one=1, two=2)\n### `GoodtablesException`\n```python\nGoodtablesException(self, /, *args, **kwargs)\n```\nBase goodtables exception\n\n## Contributing\n\n> The project follows the [Open Knowledge International coding standards](https://github.com/okfn/coding-standards).\n\nRecommended way to get started is to create and activate a project virtual environment.\nTo install package and development dependencies into active environment:\n\n```bash\n$ make install\n```\n\nTo run tests with linting and coverage:\n\n```bash\n$ make test\n```\n\n## Changelog\n\nHere described only breaking and the most important changes. The full changelog and documentation for all released versions could be found in nicely formatted [commit history](https://github.com/frictionlessdata/goodtables-py/commits/master).\n\n##### v2.5\n\n- Added `check.check_headers_hook` to support headers check for body-contexted checks (see https://github.com/frictionlessdata/goodtables-py/tree/v3 for native support)\n\n##### v2.4\n\n- Added integrity checks for data packages. If `resource.bytes` or `resource.hash` (sha256) is provided it will be verified against actual values\n\n##### v2.3\n\n- Added a [foreign keys check](#foreign-key)\n\n##### v2.2\n\n- Improved missing/non-matching-headers detection ([#298](https://github.com/frictionlessdata/goodtables-py/issues/298))\n\n##### v2.1\n\n- A new key added to the `error.to_dict` return: `message-data`\n\n##### v2.0\n\nBreaking changes:\n\n- Checks method signature now only receives the current row's `cells` list\n- Checks raise errors by returning an array of `Error` objects\n- Cells have the row number in the `row-number` key\n- Files with ZIP extension are presumed to be datapackages, so `goodtables mydatapackage.zip` works\n- Improvements to goodtables CLI ([#233](https://github.com/frictionlessdata/goodtables-py/issues/233))\n- New `goodtables init ` command to create a new `datapackage.json` with the files passed as parameters and their inferred schemas.\n\nBug fixes:\n- Fix bug with `truncated-values` check on date fields ([#250](https://github.com/frictionlessdata/goodtables-py/issues/250))\n\n##### v1.5\n\nNew API added:\n- Validation `source` now could be a `pathlib.Path`\n\n##### v1.4\n\nImproved behaviour:\n- rebased on Data Quality Spec v1\n- rebased on Data Package Spec v1\n- rebased on Table Schema Spec v1\n- treat primary key as required/unique field\n\n##### v1.3\n\nNew advanced checks added:\n- `blacklisted-value`\n- `custom-constraint`\n- `deviated-value`\n- `sequential-value`\n- `truncated-value`\n\n##### v1.2\n\nNew API added:\n- `report.preset`\n- `report.tables[].schema`\n\n##### v1.1\n\nNew API added:\n- `report.tables[].scheme`\n- `report.tables[].format`\n- `report.tables[].encoding`\n\n##### v1.0\n\nThis version includes various big changes. A migration guide is under development and will be published here.\n\n##### v0.6\n\nFirst version of `goodtables`.\n\n[tableschema]: https://specs.frictionlessdata.io/table-schema/\n[tabulator]: https://github.com/frictionlessdata/tabulator-py/\n[datapackage]: https://specs.frictionlessdata.io/data-package/ \"Data Package specification\"\n[semver]: https://semver.org/ \"Semantic Versioning\"\n[validation-jsonschema]: goodtables/schemas/report.json \"Validation Report JSON Schema\"\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/frictionlessdata/goodtables", "keywords": "data validation,frictionless data,open data,json schema,json table schema,data package,tabular data package", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "goodtables", "package_url": "https://pypi.org/project/goodtables/", "platform": "", "project_url": "https://pypi.org/project/goodtables/", "project_urls": { "Homepage": "https://github.com/frictionlessdata/goodtables" }, "release_url": "https://pypi.org/project/goodtables/2.5.4/", "requires_dist": [ "six (>=1.9)", "click (>=6.6)", "click-default-group", "requests (>=2.10)", "simpleeval (>=0.9)", "statistics (>=1.0)", "tabulator (>=1.40)", "tableschema (>=1.16.4)", "datapackage (>=1.10)", "mock ; extra == 'develop'", "pylama ; extra == 'develop'", "pytest ; extra == 'develop'", "pytest-cov ; extra == 'develop'", "pyyaml ; extra == 'develop'", "ezodf (>=0.3) ; extra == 'ods'", "lxml (>=3.0) ; extra == 'ods'" ], "requires_python": "", "summary": "Goodtables is a framework to inspect tabular data.", "version": "2.5.4", "yanked": false, "yanked_reason": null }, "last_serial": 9509279, "releases": { "0.3.1": [ { "comment_text": "", "digests": { "md5": "e0b2da34da68fd5f758c7b0188bb1ffe", "sha256": "3bd282b769941428dadebbb38948fb74255ebf582dd5a10bc3a14c3df9a60b88" }, "downloads": -1, "filename": "goodtables-0.3.1.tar.gz", "has_sig": false, "md5_digest": "e0b2da34da68fd5f758c7b0188bb1ffe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14506, "upload_time": "2015-03-05T17:12:52", "upload_time_iso_8601": "2015-03-05T17:12:52.677336Z", "url": "https://files.pythonhosted.org/packages/85/77/a51e0ff263ad717825f4d62cec502b000f1a0e523ca4ad82d53f83fdc814/goodtables-0.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "6e84a3c5c4f090f6092f3d456dd0cbcf", "sha256": "35ce08d8211859b651b84f5360bdeda1b0d8b2e2d0c2214b0f1f199ac9cf5fd6" }, "downloads": -1, "filename": "goodtables-0.3.2.tar.gz", "has_sig": false, "md5_digest": "6e84a3c5c4f090f6092f3d456dd0cbcf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14625, "upload_time": "2015-03-05T21:00:11", "upload_time_iso_8601": "2015-03-05T21:00:11.978854Z", "url": "https://files.pythonhosted.org/packages/92/01/63820545711259383eadd24e99496de8251d5b524f5aabcf1e41e9023831/goodtables-0.3.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "5fd6184dd6997bd05a8f4170a7761efd", "sha256": "d9bcffcc343f424e1a9a5cb256cec79f135d2da304e369c03f9b92fce28db3aa" }, "downloads": -1, "filename": "goodtables-0.3.3.tar.gz", "has_sig": false, "md5_digest": "5fd6184dd6997bd05a8f4170a7761efd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15334, "upload_time": "2015-03-08T10:15:28", "upload_time_iso_8601": "2015-03-08T10:15:28.280366Z", "url": "https://files.pythonhosted.org/packages/97/f1/bb95c904d1ee83c7b6ff5cb9192154321f743e40d1dd15e590c64f7db9b8/goodtables-0.3.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "b0c6aa626e0d34c2f6cc9fd16d154936", "sha256": "10a7bd5184ef6c31cf43b046bbaa94b3931164d4bae693b980ba78af2951ab6c" }, "downloads": -1, "filename": "goodtables-0.3.4.tar.gz", "has_sig": false, "md5_digest": "b0c6aa626e0d34c2f6cc9fd16d154936", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15340, "upload_time": "2015-03-09T16:41:42", "upload_time_iso_8601": "2015-03-09T16:41:42.360920Z", "url": "https://files.pythonhosted.org/packages/61/d7/c93a5a187c39c1158a401904c30822f6b70ac4785d7429900a32040dea58/goodtables-0.3.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "b683716902c5e47cd6b9092cd7fc3e42", "sha256": "0730788ae17f70e6fe4bd7c5fb52d083ae818e9957e94ce983107a8865d2d0a5" }, "downloads": -1, "filename": "goodtables-0.3.5.tar.gz", "has_sig": false, "md5_digest": "b683716902c5e47cd6b9092cd7fc3e42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15318, "upload_time": "2015-03-10T07:52:51", "upload_time_iso_8601": "2015-03-10T07:52:51.359075Z", "url": "https://files.pythonhosted.org/packages/fa/74/68d797fa02bfd6f6764cb15c65b8bf945cb256a4f67c98e777b7b2d3bac1/goodtables-0.3.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "b3c68c71228b78cd8ff3ac8c3b084af3", "sha256": "18a94a051b385723a3a87209ed8cfea1b883a5d5ba1e5044a25bd94a2fee43f6" }, "downloads": -1, "filename": "goodtables-0.3.6.tar.gz", "has_sig": false, "md5_digest": "b3c68c71228b78cd8ff3ac8c3b084af3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15222, "upload_time": "2015-03-11T17:41:50", "upload_time_iso_8601": "2015-03-11T17:41:50.487629Z", "url": "https://files.pythonhosted.org/packages/c5/bf/304a7a3bdbb6660113f2904aa49e8d810d269fb94c84958dde4dc0c47633/goodtables-0.3.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "c9a06321b990952b45f30875171b3a0c", "sha256": "dd9e2c7a4ec7f1d964dd0324b0d30351fc544b9ff071b29af49dcd5738a0026d" }, "downloads": -1, "filename": "goodtables-0.3.7.tar.gz", "has_sig": false, "md5_digest": "c9a06321b990952b45f30875171b3a0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15226, "upload_time": "2015-03-16T12:34:20", "upload_time_iso_8601": "2015-03-16T12:34:20.175553Z", "url": "https://files.pythonhosted.org/packages/db/1e/8c72353732814bf48e0fdfe3c34aebd2d168b3c2736acf5fdf4db57b6b6a/goodtables-0.3.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "40df8a6b761e3bc50c4ffae734d31099", "sha256": "419ae00ccf7be9d8124e08302b6f5cced66d76d67d8b9b59e91f3358fa62d3be" }, "downloads": -1, "filename": "goodtables-0.3.8.tar.gz", "has_sig": false, "md5_digest": "40df8a6b761e3bc50c4ffae734d31099", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15340, "upload_time": "2015-03-16T13:10:35", "upload_time_iso_8601": "2015-03-16T13:10:35.729418Z", "url": "https://files.pythonhosted.org/packages/c5/87/a2ded38d6682a0e67155550ea6e327375b58653189cb6da2a01d19aa1607/goodtables-0.3.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "c34e549a6fa5d2ea64ef942988f16e8b", "sha256": "84263147e54e01cdd71d54aa27a403773b0e2bfc4462d9caafbecb6cb132e263" }, "downloads": -1, "filename": "goodtables-0.3.9.tar.gz", "has_sig": false, "md5_digest": "c34e549a6fa5d2ea64ef942988f16e8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15355, "upload_time": "2015-03-17T15:20:19", "upload_time_iso_8601": "2015-03-17T15:20:19.967078Z", "url": "https://files.pythonhosted.org/packages/d1/f8/52191e03797b69e5ee05a35c0f10609d02c24b682f6b0977452c35802950/goodtables-0.3.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "4bd0b29d7d890f9ba6ce07c60370b878", "sha256": "687384904197c380a2647ef12ffd231c82db1759f342584af19b638b909a1de1" }, "downloads": -1, "filename": "goodtables-0.4.0.tar.gz", "has_sig": false, "md5_digest": "4bd0b29d7d890f9ba6ce07c60370b878", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15318, "upload_time": "2015-03-18T07:22:11", "upload_time_iso_8601": "2015-03-18T07:22:11.767059Z", "url": "https://files.pythonhosted.org/packages/89/d7/b37b11e87d08e0ac359433a4c462abb0e2aa188ef0e7e122c427bf148eb9/goodtables-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "13f3e9a80af44ead77cc0ea88b00b5f0", "sha256": "183e8800e37c7f518b594be9a7c7f3db6c35501fc3f3bda9e84c9e257de023a4" }, "downloads": -1, "filename": "goodtables-0.4.1-py3.4.egg", "has_sig": false, "md5_digest": "13f3e9a80af44ead77cc0ea88b00b5f0", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 52391, "upload_time": "2015-03-18T08:38:46", "upload_time_iso_8601": "2015-03-18T08:38:46.205495Z", "url": "https://files.pythonhosted.org/packages/42/f2/a110c044a0a015508289a7669d493f68817a9d7789c696fdb9e08a0c3b82/goodtables-0.4.1-py3.4.egg", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c5ddb437995b0209018469ee2084d056", "sha256": "6ce285240b529cec52ba9d87d37195650c97c44b33490d4982b5e8f58b465703" }, "downloads": -1, "filename": "goodtables-0.4.1.tar.gz", "has_sig": false, "md5_digest": "c5ddb437995b0209018469ee2084d056", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15327, "upload_time": "2015-03-18T08:38:49", "upload_time_iso_8601": "2015-03-18T08:38:49.334439Z", "url": "https://files.pythonhosted.org/packages/a8/f0/ed017d41decbe8cfcdd46f81977ef9e141f01f2ed77b76e5268a961aef2a/goodtables-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "c8afbc89369e2f52500b504b36aa868c", "sha256": "e4cd8d31f7a77bd42893b470f8940b2e177dc75bbd61b702c87d6fb10aeec455" }, "downloads": -1, "filename": "goodtables-0.4.2.tar.gz", "has_sig": false, "md5_digest": "c8afbc89369e2f52500b504b36aa868c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15342, "upload_time": "2015-03-18T15:29:39", "upload_time_iso_8601": "2015-03-18T15:29:39.783280Z", "url": "https://files.pythonhosted.org/packages/c3/4b/a045e13a097f91f3aeba058441cdcd859fea80e5d010cf4db853ea41da0d/goodtables-0.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "8cae8d724f05c7fe6d4f208eccfe8386", "sha256": "77a719360169e1f93224df98bc54b6f124652b1f7f6daaab3bd184bdc1e6b461" }, "downloads": -1, "filename": "goodtables-0.4.3.tar.gz", "has_sig": false, "md5_digest": "8cae8d724f05c7fe6d4f208eccfe8386", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15362, "upload_time": "2015-03-18T16:11:28", "upload_time_iso_8601": "2015-03-18T16:11:28.441934Z", "url": "https://files.pythonhosted.org/packages/20/4b/71c7955377f4beb7821422a35eb997bb4a28471d6310f60382d2cb7bbfac/goodtables-0.4.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "4ecba5bb1658bcc483aa9dc190a03c3e", "sha256": "b62b34f0fe3dd2cb0f7c63fe409da0dada80636365681329bf23e73c8088cafb" }, "downloads": -1, "filename": "goodtables-0.4.4.tar.gz", "has_sig": false, "md5_digest": "4ecba5bb1658bcc483aa9dc190a03c3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15344, "upload_time": "2015-03-19T11:14:52", "upload_time_iso_8601": "2015-03-19T11:14:52.986533Z", "url": "https://files.pythonhosted.org/packages/f5/88/8f700760d078f88464c57c96c40384c8066d14d9ef9de8f15f3256cc2123/goodtables-0.4.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "a19d1daed0f8e4344b83972bd9732293", "sha256": "0d80695efa27bb44f1cb80982160b8c4921232f152ffe26c60d7bc49ef2bd21c" }, "downloads": -1, "filename": "goodtables-0.4.5.tar.gz", "has_sig": false, "md5_digest": "a19d1daed0f8e4344b83972bd9732293", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15841, "upload_time": "2015-03-22T12:33:38", "upload_time_iso_8601": "2015-03-22T12:33:38.284945Z", "url": "https://files.pythonhosted.org/packages/3e/6b/1d3871e31ff37af30c0afee6164873a323a299575b1027732bb721669143/goodtables-0.4.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "732baa36f8eb1f006719897db53f296c", "sha256": "3d691f99369373047898afaf3899d75b17c6482458126ba7ac58a63b2614bf0f" }, "downloads": -1, "filename": "goodtables-0.4.6.tar.gz", "has_sig": false, "md5_digest": "732baa36f8eb1f006719897db53f296c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16029, "upload_time": "2015-03-25T09:43:26", "upload_time_iso_8601": "2015-03-25T09:43:26.075475Z", "url": "https://files.pythonhosted.org/packages/7e/e9/7b77633d9da29339dd91636918af92112ed40729139e93e63899705a450e/goodtables-0.4.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.7": [ { "comment_text": "", "digests": { "md5": "1b21bab7c820f03f8c5c6cf354ac39cf", "sha256": "7108cdd44bbf723e8c1e27299905a94f6f3a84d2ab89834476ec4ffa7b223ffe" }, "downloads": -1, "filename": "goodtables-0.4.7.tar.gz", "has_sig": false, "md5_digest": "1b21bab7c820f03f8c5c6cf354ac39cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16772, "upload_time": "2015-03-30T08:04:22", "upload_time_iso_8601": "2015-03-30T08:04:22.401694Z", "url": "https://files.pythonhosted.org/packages/28/c2/9a9a2ccaefd89151dc5fb71928202037e1452b190d061272909714a9b9bc/goodtables-0.4.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.8": [ { "comment_text": "", "digests": { "md5": "a715de150aacd814f1a6c4a3aa574a24", "sha256": "e6c211db599c360140f4d0febe0dc2d668775a9fb1dc2403956d36d2e6687e9d" }, "downloads": -1, "filename": "goodtables-0.4.8.tar.gz", "has_sig": false, "md5_digest": "a715de150aacd814f1a6c4a3aa574a24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16774, "upload_time": "2015-03-30T09:42:29", "upload_time_iso_8601": "2015-03-30T09:42:29.427838Z", "url": "https://files.pythonhosted.org/packages/6b/87/324f9876171f083b4e5a30a2d7d311915cf2b1630c23a02e3ee5ca76a5e0/goodtables-0.4.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.9": [ { "comment_text": "", "digests": { "md5": "4af662ce22bfd4ed0c3f7b0bd346b199", "sha256": "ac317243bfe1375d713cdab79fad05e17806a57e054c1b3be9a083ae0993d106" }, "downloads": -1, "filename": "goodtables-0.4.9.tar.gz", "has_sig": false, "md5_digest": "4af662ce22bfd4ed0c3f7b0bd346b199", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16833, "upload_time": "2015-03-30T11:18:53", "upload_time_iso_8601": "2015-03-30T11:18:53.207649Z", "url": "https://files.pythonhosted.org/packages/d8/4d/fb1e7b20c263bb18341537d78f409109ba685f97e435d41c3f9c8762505f/goodtables-0.4.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "91ec76ab5323b4755163616af313d88b", "sha256": "a95aced1f59a462fb9a182860e49abd8cd20544994a8f82a2191694abf39ec7e" }, "downloads": -1, "filename": "goodtables-0.5.0.tar.gz", "has_sig": false, "md5_digest": "91ec76ab5323b4755163616af313d88b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16828, "upload_time": "2015-03-30T11:29:39", "upload_time_iso_8601": "2015-03-30T11:29:39.965465Z", "url": "https://files.pythonhosted.org/packages/a9/d9/c4de260ec27cee8f75d7bb29017b800e04fe91c3e75bc99ca67a53426265/goodtables-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "fb7d068c2b51a1136fdc117e246ea7d4", "sha256": "624ebf99e6212023575d17d3c8f82d8b3ee4e7242f217e8925812ba4b4d2cbd2" }, "downloads": -1, "filename": "goodtables-0.5.1.tar.gz", "has_sig": false, "md5_digest": "fb7d068c2b51a1136fdc117e246ea7d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16885, "upload_time": "2015-04-14T11:29:33", "upload_time_iso_8601": "2015-04-14T11:29:33.878439Z", "url": "https://files.pythonhosted.org/packages/e1/a3/378a495b26836fbee85617e6fdd48e8f3b97d297a1516f2f432e05319d9c/goodtables-0.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "71fca8c03f9f5446649fcf722f948891", "sha256": "be447805bfec67446073cf15b165233e7d5f5d82ee7c0ba0ab38f997228e4c9d" }, "downloads": -1, "filename": "goodtables-0.5.2.tar.gz", "has_sig": false, "md5_digest": "71fca8c03f9f5446649fcf722f948891", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16941, "upload_time": "2015-04-14T13:29:48", "upload_time_iso_8601": "2015-04-14T13:29:48.756754Z", "url": "https://files.pythonhosted.org/packages/3a/78/fdc9310ac29bc1d00832cda3c54cafdd6841d596aafa8431f09df5b045ec/goodtables-0.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "b8310bc9e5715281471dd599e8b0166c", "sha256": "4fcd6a9a6cb108b0f55ac217796f92901a3c2bdd3f831d7c22842d3a7c9c1fce" }, "downloads": -1, "filename": "goodtables-0.5.3.tar.gz", "has_sig": false, "md5_digest": "b8310bc9e5715281471dd599e8b0166c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17004, "upload_time": "2015-04-28T15:29:18", "upload_time_iso_8601": "2015-04-28T15:29:18.359292Z", "url": "https://files.pythonhosted.org/packages/25/97/717dd6c58d14b1b31b5eed715d66a06d7c68be6366b552c44eb35c78fd9e/goodtables-0.5.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "cf3c18ae85eb7505a78b28b5e96d83f0", "sha256": "7f4d2496198a54170ce5b9cd65bce6c0bc0be69257d6c54ff65d8a7bcf86960f" }, "downloads": -1, "filename": "goodtables-0.5.4.tar.gz", "has_sig": false, "md5_digest": "cf3c18ae85eb7505a78b28b5e96d83f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16836, "upload_time": "2015-06-07T11:16:52", "upload_time_iso_8601": "2015-06-07T11:16:52.585385Z", "url": "https://files.pythonhosted.org/packages/7c/65/584fab4a768ea3b70aa017e3f93e7fa7b94ef07d9f738f74582a63d67535/goodtables-0.5.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.5": [ { "comment_text": "", "digests": { "md5": "022b2f4c15c83de6cf286e6ab6c09a22", "sha256": "0b2ad739bbe0865a33d1532076bfffc08eda4b0b6ff7ab11cdf3982d3b072f62" }, "downloads": -1, "filename": "goodtables-0.5.5.tar.gz", "has_sig": false, "md5_digest": "022b2f4c15c83de6cf286e6ab6c09a22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16893, "upload_time": "2015-06-07T13:24:19", "upload_time_iso_8601": "2015-06-07T13:24:19.538110Z", "url": "https://files.pythonhosted.org/packages/ed/b2/8c89d6491f80b15a02c70d8f6ab77cb22c16645ef997d39696d82c00208b/goodtables-0.5.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.6": [ { "comment_text": "", "digests": { "md5": "f137525ac77edeb61cc3fb2d1108ed3b", "sha256": "465e399e94bc387d2ab11109f92a43a71b32a583a16201ee119396637b2fd7d4" }, "downloads": -1, "filename": "goodtables-0.5.6.tar.gz", "has_sig": false, "md5_digest": "f137525ac77edeb61cc3fb2d1108ed3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16894, "upload_time": "2015-06-07T13:44:34", "upload_time_iso_8601": "2015-06-07T13:44:34.138310Z", "url": "https://files.pythonhosted.org/packages/72/05/c3e66ed78a57f0cb550b62c161f06a3649a2e00982dafdc21de6d5947f27/goodtables-0.5.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.7": [ { "comment_text": "", "digests": { "md5": "477218cf0062e77e64586f4eb3d135e7", "sha256": "cc3d762ddea1be0a24855cfc5ed58e311c30f5a950821886708e4fd3b8c04e5d" }, "downloads": -1, "filename": "goodtables-0.5.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "477218cf0062e77e64586f4eb3d135e7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25610, "upload_time": "2016-02-18T14:26:22", "upload_time_iso_8601": "2016-02-18T14:26:22.098889Z", "url": "https://files.pythonhosted.org/packages/27/01/d9bab1bc3000ead6a7843f225688c899ee0dec4b254bc764c59b175664f6/goodtables-0.5.7-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9ca9fa9b86504006da8fa93f1f4627a3", "sha256": "17ebb45e9546d369b1287ee4aa6b8d7a6e199f0bb3e074738ad5238ba71b99a9" }, "downloads": -1, "filename": "goodtables-0.5.7.tar.gz", "has_sig": false, "md5_digest": "9ca9fa9b86504006da8fa93f1f4627a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16799, "upload_time": "2016-02-18T14:26:36", "upload_time_iso_8601": "2016-02-18T14:26:36.419136Z", "url": "https://files.pythonhosted.org/packages/dc/6c/87adc09a053db29289e89723c7dc15d47912d89752270712882c25df498f/goodtables-0.5.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "7e1c95fb8a4567866d4453c5714427b8", "sha256": "88a82ab72d28f1b4751415fd89b5822b86618b25232a6220c07edb95324e9289" }, "downloads": -1, "filename": "goodtables-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7e1c95fb8a4567866d4453c5714427b8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25612, "upload_time": "2016-02-18T14:31:31", "upload_time_iso_8601": "2016-02-18T14:31:31.696880Z", "url": "https://files.pythonhosted.org/packages/3d/e2/a39d9fbb26d2bc475c41845d35e6b172fc026886b6eac9207c05c867e674/goodtables-0.6.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2f8bc1b047d66d845dafc9c377ce79ef", "sha256": "c62933d5dc1ebcf524e83a54c7f178e503a3766eb1d62cd2a057c86a76ff70fa" }, "downloads": -1, "filename": "goodtables-0.6.0.tar.gz", "has_sig": false, "md5_digest": "2f8bc1b047d66d845dafc9c377ce79ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16789, "upload_time": "2016-02-18T14:31:43", "upload_time_iso_8601": "2016-02-18T14:31:43.909123Z", "url": "https://files.pythonhosted.org/packages/61/a4/9be4d98fb0b7c3cae9fca06409e46d8ded50b727e58cd59bdc4c8a741f26/goodtables-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "eaea97055f92a524e057861e3263a7df", "sha256": "283615a71eae38bc2ff84b386cd2297955c13a51152759ffe6d8d611e36c784b" }, "downloads": -1, "filename": "goodtables-0.6.1.tar.gz", "has_sig": false, "md5_digest": "eaea97055f92a524e057861e3263a7df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16833, "upload_time": "2016-03-17T13:14:09", "upload_time_iso_8601": "2016-03-17T13:14:09.747060Z", "url": "https://files.pythonhosted.org/packages/1c/bd/f82ef9dff62d8a39b8dbdb276474c4ff2b6ae6e7eb3e866563a8f83e20f3/goodtables-0.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "4ee0edaa19f93ee56008c833dd06de50", "sha256": "78a379895b7badd0bf5b28aaa2d008d93dc083ea7d7bfef878154e3a8b3f1be6" }, "downloads": -1, "filename": "goodtables-0.6.2.tar.gz", "has_sig": false, "md5_digest": "4ee0edaa19f93ee56008c833dd06de50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16979, "upload_time": "2016-03-28T07:59:10", "upload_time_iso_8601": "2016-03-28T07:59:10.722316Z", "url": "https://files.pythonhosted.org/packages/02/2b/b08af2a737da4c939c821c781f391aeb2d254442db3740f6e5c1367cbc05/goodtables-0.6.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "1c1c4bc9865b6fef0b3f233d404fcb65", "sha256": "f4552b83f9e63f8fa3b002d5e05cbbe73efd4ee2531bacc660e4fece2b8331a5" }, "downloads": -1, "filename": "goodtables-0.6.3.tar.gz", "has_sig": false, "md5_digest": "1c1c4bc9865b6fef0b3f233d404fcb65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18164, "upload_time": "2016-03-30T12:18:45", "upload_time_iso_8601": "2016-03-30T12:18:45.194612Z", "url": "https://files.pythonhosted.org/packages/ff/8e/2839a6995dc40a1a86fd45aad7c9c4a068837519af845c8525025dad2730/goodtables-0.6.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "e9fad141dd6806ea25a11b7a89e9c5a2", "sha256": "e6983ac51aec8af7e61ea01172fec83c95e5c08ec7f06da9096bdd5e4053385a" }, "downloads": -1, "filename": "goodtables-0.6.4.tar.gz", "has_sig": false, "md5_digest": "e9fad141dd6806ea25a11b7a89e9c5a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18299, "upload_time": "2016-03-31T10:50:38", "upload_time_iso_8601": "2016-03-31T10:50:38.660186Z", "url": "https://files.pythonhosted.org/packages/59/36/a2bf8d6f9b0d5f354499b6af480cca5c0e9ea97f4ad401f7d82c2da44eb6/goodtables-0.6.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "943c29c93727bd540cad5c1f3a22a93f", "sha256": "54d6887d123a0284ecfaa67ae9f6b14da09d1d463c0f12053a7e24bd77fb12a5" }, "downloads": -1, "filename": "goodtables-0.6.5.tar.gz", "has_sig": false, "md5_digest": "943c29c93727bd540cad5c1f3a22a93f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18303, "upload_time": "2016-04-04T14:25:16", "upload_time_iso_8601": "2016-04-04T14:25:16.398028Z", "url": "https://files.pythonhosted.org/packages/15/d4/dc93bcec5ad515b211ce7685a8aeadcec31055e9d30af7bee72a7db317ad/goodtables-0.6.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "8a12764537a114da484abcb923436eb3", "sha256": "21743e0024940989165fa26a4be4d3beade8ce5804459aa6511072e96c566705" }, "downloads": -1, "filename": "goodtables-0.7.0.tar.gz", "has_sig": false, "md5_digest": "8a12764537a114da484abcb923436eb3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19020, "upload_time": "2016-04-22T10:52:03", "upload_time_iso_8601": "2016-04-22T10:52:03.566435Z", "url": "https://files.pythonhosted.org/packages/b2/7c/aa581e045b0042f0b532d58011db8b0f4a9c129c462d6c788d469aaa08da/goodtables-0.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "cf85c1c6847c5e242f4d20c60db21eaf", "sha256": "0a26546587c20896abb2ab329dee2f208c30ab50ccbfcb79ff09ff6c94a8f13d" }, "downloads": -1, "filename": "goodtables-0.7.1.tar.gz", "has_sig": false, "md5_digest": "cf85c1c6847c5e242f4d20c60db21eaf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19140, "upload_time": "2016-05-01T21:38:23", "upload_time_iso_8601": "2016-05-01T21:38:23.518669Z", "url": "https://files.pythonhosted.org/packages/e7/28/5f2a3d24ea898d99ec57bee29c4a65635bc41e084677fe401b6b5071aa37/goodtables-0.7.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "405a13810aa63103e2ae2c097d6a6d80", "sha256": "e8840558341b9a89e9c2959d1e8c3ed067dc1d3dcf0ef90b934283be03ce328e" }, "downloads": -1, "filename": "goodtables-0.7.2.tar.gz", "has_sig": false, "md5_digest": "405a13810aa63103e2ae2c097d6a6d80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19676, "upload_time": "2016-05-11T10:13:58", "upload_time_iso_8601": "2016-05-11T10:13:58.300465Z", "url": "https://files.pythonhosted.org/packages/71/c7/96909a01fdb5a4d75dfa910a542624ad0ea7f018b66f381ac3077e3c99c2/goodtables-0.7.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "8dc1cbb1210cf66a7dfc4e95a2300252", "sha256": "e326ddb73f81f7e6e6c61dfc6247d25254d60b6f2fce2d57852978100b124dda" }, "downloads": -1, "filename": "goodtables-0.7.3.tar.gz", "has_sig": false, "md5_digest": "8dc1cbb1210cf66a7dfc4e95a2300252", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19691, "upload_time": "2016-05-19T19:26:20", "upload_time_iso_8601": "2016-05-19T19:26:20.005929Z", "url": "https://files.pythonhosted.org/packages/9e/54/191eda1cb1dcbf128f4a5a8543e9d7a82bee0eb2e1660401daa2bc4ee1f9/goodtables-0.7.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.4": [ { "comment_text": "", "digests": { "md5": "400de44f9780fae79719a22cf72ea972", "sha256": "594989689739c2e1114fb9bbafbdca3fcabbc62c5c79983ab7056f50e1a0f7fd" }, "downloads": -1, "filename": "goodtables-0.7.4.tar.gz", "has_sig": false, "md5_digest": "400de44f9780fae79719a22cf72ea972", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19693, "upload_time": "2016-05-19T19:31:56", "upload_time_iso_8601": "2016-05-19T19:31:56.560712Z", "url": "https://files.pythonhosted.org/packages/89/ed/3943791660edb0b6dd42a3e1bb0ced25a5f3377b37ce9f3db746570ef1d7/goodtables-0.7.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.5": [ { "comment_text": "", "digests": { "md5": "1848c178dc2ae3a7e59575070f3ddcbf", "sha256": "d120404b734993ec4ec9a20880bb53b2def87b48ad628a667718432c74576020" }, "downloads": -1, "filename": "goodtables-0.7.5.tar.gz", "has_sig": false, "md5_digest": "1848c178dc2ae3a7e59575070f3ddcbf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19674, "upload_time": "2016-06-06T13:18:48", "upload_time_iso_8601": "2016-06-06T13:18:48.064155Z", "url": "https://files.pythonhosted.org/packages/0e/80/8448a91cefba9292c0c27193d4907c7a1e08f90c4f24cc3f0af2d0e484f1/goodtables-0.7.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.6": [ { "comment_text": "", "digests": { "md5": "79aac110deb22901867b06f6a09e9348", "sha256": "f34cb61c996ea143e9b99cc74b98b3ae72a7c05af73a4aaaceed62b94844bad0" }, "downloads": -1, "filename": "goodtables-0.7.6.tar.gz", "has_sig": false, "md5_digest": "79aac110deb22901867b06f6a09e9348", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19843, "upload_time": "2016-09-12T12:16:54", "upload_time_iso_8601": "2016-09-12T12:16:54.953567Z", "url": "https://files.pythonhosted.org/packages/71/6a/724bab5b4329ff28fda85f745a3e0b85fa97b6e3fc0492cefb2cac96f33b/goodtables-0.7.6.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "f6000d376d716b7efae9956563106604", "sha256": "5a6200c356cd0086c5b1a8b0713d75ccd63600e8c6f3a45afed05b8166c3a327" }, "downloads": -1, "filename": "goodtables-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f6000d376d716b7efae9956563106604", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 38577, "upload_time": "2017-07-19T09:06:57", "upload_time_iso_8601": "2017-07-19T09:06:57.759767Z", "url": "https://files.pythonhosted.org/packages/82/66/cb99d23be702966a92692eb28f9954dd0eb6d313ecb9a41ede9db91ab572/goodtables-1.0.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "667fef4bb76f32d270991606b5fcda2c", "sha256": "541071512d63b5ec15198862b2c8ad616f56b75922aee70bf216fc1df5e6c95c" }, "downloads": -1, "filename": "goodtables-1.0.0.tar.gz", "has_sig": false, "md5_digest": "667fef4bb76f32d270991606b5fcda2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61128, "upload_time": "2017-07-19T09:07:00", "upload_time_iso_8601": "2017-07-19T09:07:00.311274Z", "url": "https://files.pythonhosted.org/packages/4a/b0/0c44b7bac462e1dfa88e3b3435e080b7a09137e24e4a772435653a6d8b1d/goodtables-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0a10": [ { "comment_text": "", "digests": { "md5": "49edb0bd5a46ae952b7dad56001ea4b3", "sha256": "008d6f1fe20c974e74e54dc9e4558e4aa14677593ef2ec8788cf8997b8acac91" }, "downloads": -1, "filename": "goodtables-1.0.0a10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "49edb0bd5a46ae952b7dad56001ea4b3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 33329, "upload_time": "2017-05-25T09:45:59", "upload_time_iso_8601": "2017-05-25T09:45:59.421779Z", "url": "https://files.pythonhosted.org/packages/e6/3f/c9fb5e75486ec2fa9b0ca5f9f5f24670368226d86e14b4ec434eb8edb5c5/goodtables-1.0.0a10-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e4839345658cc94769ac3d26c2f7bf29", "sha256": "5bb0196c70688ff11fcbb31f2d87c48df2217e1d6e3dff84304eefc071f26e9b" }, "downloads": -1, "filename": "goodtables-1.0.0a10.tar.gz", "has_sig": false, "md5_digest": "e4839345658cc94769ac3d26c2f7bf29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24304, "upload_time": "2017-05-25T09:46:01", "upload_time_iso_8601": "2017-05-25T09:46:01.456080Z", "url": "https://files.pythonhosted.org/packages/f4/7d/9f728c9ac371050f65aec6de21e0fef69a7b4a402f68e5f324bcb1b8e28a/goodtables-1.0.0a10.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0a11": [ { "comment_text": "", "digests": { "md5": "50eda51c919e608d7eaf11b36b43ed26", "sha256": "a6fd2390246ddfa97efa9abaa10a5e66e729cdd59ba4bc1f48e7b75a149dece8" }, "downloads": -1, "filename": "goodtables-1.0.0a11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "50eda51c919e608d7eaf11b36b43ed26", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 33428, "upload_time": "2017-05-25T10:27:05", "upload_time_iso_8601": "2017-05-25T10:27:05.081829Z", "url": "https://files.pythonhosted.org/packages/c6/3c/311b0d91098e68536da50ef913f80cb7ede3f87d1f1a0c527673f6d627e6/goodtables-1.0.0a11-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ebb7dc4664b8e67731cd320afae2e6f5", "sha256": "3809e520a3fad51df18468e4180fc3fc59e7ad1baf4403fb643f4468b5ca53ba" }, "downloads": -1, "filename": "goodtables-1.0.0a11.tar.gz", "has_sig": false, "md5_digest": "ebb7dc4664b8e67731cd320afae2e6f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24418, "upload_time": "2017-05-25T10:27:07", "upload_time_iso_8601": "2017-05-25T10:27:07.007121Z", "url": "https://files.pythonhosted.org/packages/0f/5f/0f98fde2fe8e719c80183080256663c4897bec91138a24d1b567227955ac/goodtables-1.0.0a11.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0a12": [ { "comment_text": "", "digests": { "md5": "46c17fe6dd05b1f4bbca018469c34ea2", "sha256": "d989fe19fb232a0b9812da6d2d10cce5eb8422fe437ef8d8cf015cbf026eaf6c" }, "downloads": -1, "filename": "goodtables-1.0.0a12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "46c17fe6dd05b1f4bbca018469c34ea2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 34089, "upload_time": "2017-05-26T13:26:12", "upload_time_iso_8601": "2017-05-26T13:26:12.593299Z", "url": "https://files.pythonhosted.org/packages/8a/1e/466b5935207793cebf7db89e85f6d19155efff998053522f34dd468ab792/goodtables-1.0.0a12-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f7ed6cee7736bd3bb8307a3e12604700", "sha256": "09e1a16213571b68cb764ae9d485d2b15ee62c59830b58646cb3e46f32c0e510" }, "downloads": -1, "filename": "goodtables-1.0.0a12.tar.gz", "has_sig": false, "md5_digest": "f7ed6cee7736bd3bb8307a3e12604700", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26030, "upload_time": "2017-05-26T13:26:14", "upload_time_iso_8601": "2017-05-26T13:26:14.559335Z", "url": "https://files.pythonhosted.org/packages/07/61/f5a5a7f1aaf5eade6f9636976816ed938f592364eca3af9f168a2cd76cec/goodtables-1.0.0a12.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0a13": [ { "comment_text": "", "digests": { "md5": "4a05841c98b94aab607a7f1bdd8134d3", "sha256": "6c2ca07fed8eb4d542fe2c784a4ee294bee9a96a85c72cecd95735afd6399311" }, "downloads": -1, "filename": "goodtables-1.0.0a13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4a05841c98b94aab607a7f1bdd8134d3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 34171, "upload_time": "2017-05-31T12:09:01", "upload_time_iso_8601": "2017-05-31T12:09:01.726120Z", "url": "https://files.pythonhosted.org/packages/11/d0/c0f23f03c72edd0b8946527bdd4a000c17293246ede2e03d15ddd5feae92/goodtables-1.0.0a13-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "08e9ab5ac9bca0f2006ab8e68fb61899", "sha256": "c5ef8cbf82ac2305164c8ce9d8822f2df6bb2286eff262f15cca44f21fc69f9a" }, "downloads": -1, "filename": "goodtables-1.0.0a13.tar.gz", "has_sig": false, "md5_digest": "08e9ab5ac9bca0f2006ab8e68fb61899", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26106, "upload_time": "2017-05-31T12:09:03", "upload_time_iso_8601": "2017-05-31T12:09:03.788407Z", "url": "https://files.pythonhosted.org/packages/6f/56/729e3a3b775b900b762469b82d8921931a24b91529661cce9d78bb39b739/goodtables-1.0.0a13.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0a15": [ { "comment_text": "", "digests": { "md5": "24e30da69e9d5a4999adad102bb4264f", "sha256": "5ddf06ddd361268dcebd6bc73e40741e8c127bef0a71334397628881954cd944" }, "downloads": -1, "filename": "goodtables-1.0.0a15-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "24e30da69e9d5a4999adad102bb4264f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 34515, "upload_time": "2017-06-09T08:49:50", "upload_time_iso_8601": "2017-06-09T08:49:50.830976Z", "url": "https://files.pythonhosted.org/packages/c7/6a/aaa7cc11e9bf8c7115968aacc47112255c8dbeb80c75908067b134ef1983/goodtables-1.0.0a15-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ac9736eed93939591c36dc0ef868f284", "sha256": "6ad632c0929f8e43de37fdd952c771d6fd99fda8128b74af92167781c6920989" }, "downloads": -1, "filename": "goodtables-1.0.0a15.tar.gz", "has_sig": false, "md5_digest": "ac9736eed93939591c36dc0ef868f284", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62084, "upload_time": "2017-06-09T08:49:52", "upload_time_iso_8601": "2017-06-09T08:49:52.929487Z", "url": "https://files.pythonhosted.org/packages/37/61/656329065c30a6d2dd145c7382a2b7cda8961f477a1e184d277338d7f60f/goodtables-1.0.0a15.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0a16": [ { "comment_text": "", "digests": { "md5": "49dc9fcfbad9467d82d9592501825438", "sha256": "a0bb0a76e28ab5c6b2cbf1e7ab4116e665f45534d0a857d05b37ff0199c87637" }, "downloads": -1, "filename": "goodtables-1.0.0a16-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "49dc9fcfbad9467d82d9592501825438", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 34592, "upload_time": "2017-06-16T09:22:56", "upload_time_iso_8601": "2017-06-16T09:22:56.270898Z", "url": "https://files.pythonhosted.org/packages/21/fe/c627573f27ce79fd4d8faff069771aaeb05a5c835be3c2f235ddfe646478/goodtables-1.0.0a16-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a3d9d132965f108c774778b48b27e56f", "sha256": "e0a441f298fa80b1e5bd0553c24b63a4b0fac46fcb99d3febd62178c5bd6adc4" }, "downloads": -1, "filename": "goodtables-1.0.0a16.tar.gz", "has_sig": false, "md5_digest": "a3d9d132965f108c774778b48b27e56f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61948, "upload_time": "2017-06-16T09:22:58", "upload_time_iso_8601": "2017-06-16T09:22:58.355562Z", "url": "https://files.pythonhosted.org/packages/a8/9f/4d843718635ba63f2905563088c5fb7cead83cd580cc8bf821f7f8d3f1cd/goodtables-1.0.0a16.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0a2": [ { "comment_text": "", "digests": { "md5": "fbb1643715d54eb68f11e8047f47d04d", "sha256": "3ba03d7d1671c3380cc3425d697d87ff01404402659b2f46ef767a8bf09ce2a8" }, "downloads": -1, "filename": "goodtables-1.0.0a2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fbb1643715d54eb68f11e8047f47d04d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 32350, "upload_time": "2016-11-02T15:10:52", "upload_time_iso_8601": "2016-11-02T15:10:52.465321Z", "url": "https://files.pythonhosted.org/packages/35/b3/9bb3e80d0184a7452bfbda1b19654f375e56865fd2726b8e06ba3f290e2e/goodtables-1.0.0a2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e6388cd602eab7670eb0c254968a289c", "sha256": "074f9ae5217e1b7cb39c7bd44f9638a671d6202d7469189fbf4e7caf46719881" }, "downloads": -1, "filename": "goodtables-1.0.0a2.tar.gz", "has_sig": false, "md5_digest": "e6388cd602eab7670eb0c254968a289c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53845, "upload_time": "2016-11-02T15:10:55", "upload_time_iso_8601": "2016-11-02T15:10:55.131475Z", "url": "https://files.pythonhosted.org/packages/cb/21/906cc9003a9202ccc9c4034bed89d33b2776dffc4dab2ef693b5d0182e8f/goodtables-1.0.0a2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0a3": [ { "comment_text": "", "digests": { "md5": "43b58e875b3ccc0543308793ad221cc3", "sha256": "4a4513fe4562ed6fde087417bdca35c886479a891f245ef2181270de1138fd7b" }, "downloads": -1, "filename": "goodtables-1.0.0a3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "43b58e875b3ccc0543308793ad221cc3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 32370, "upload_time": "2016-11-03T12:34:39", "upload_time_iso_8601": "2016-11-03T12:34:39.282172Z", "url": "https://files.pythonhosted.org/packages/c1/d3/a88e87c446afcca7a059c34436ce0a3ff973309e20e904476b946d8f9d28/goodtables-1.0.0a3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f7877c6efda02e0250c91e2f6c447fda", "sha256": "f9a6954a45d168110867fe7adc88a61d2ad4fd53874928cfeffd1f5700604456" }, "downloads": -1, "filename": "goodtables-1.0.0a3.tar.gz", "has_sig": false, "md5_digest": "f7877c6efda02e0250c91e2f6c447fda", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54145, "upload_time": "2016-11-03T12:34:41", "upload_time_iso_8601": "2016-11-03T12:34:41.488993Z", "url": "https://files.pythonhosted.org/packages/b7/8b/1caa5590dfc0dc9bf7964a8f7e6c67c091adf1190a8919287499078ad232/goodtables-1.0.0a3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0a4": [ { "comment_text": "", "digests": { "md5": "07acdb3c291a50a9fce9ccc3280144c2", "sha256": "5b65b9da0e69e827799a14ee554c82871d7b74074747416d3e69eff10b437ee2" }, "downloads": -1, "filename": "goodtables-1.0.0a4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "07acdb3c291a50a9fce9ccc3280144c2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 32653, "upload_time": "2016-11-18T11:13:37", "upload_time_iso_8601": "2016-11-18T11:13:37.465448Z", "url": "https://files.pythonhosted.org/packages/82/a4/f5263da52e6458d9828be45a912f9383f1d57ad08d2e09416aa59b84ae27/goodtables-1.0.0a4-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e61bf87ca0d65c0bda6e34ef5af43ce9", "sha256": "973f44962e885a24cf43a20ed22d4575b687150bd4abf1285f74533e5f47ff8c" }, "downloads": -1, "filename": "goodtables-1.0.0a4.tar.gz", "has_sig": false, "md5_digest": "e61bf87ca0d65c0bda6e34ef5af43ce9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54241, "upload_time": "2016-11-18T11:13:39", "upload_time_iso_8601": "2016-11-18T11:13:39.830669Z", "url": "https://files.pythonhosted.org/packages/8a/c1/8366307484e1d3ca27571ee7033d8a1082deda5a01615af9e8901c9392d6/goodtables-1.0.0a4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0a5": [ { "comment_text": "", "digests": { "md5": "c40dbad82830ccb4d573696d27c2d271", "sha256": "64aabaf9f5d23dc79babb09b6bdc40575a7187e0eb24a5441df5be8289f9e674" }, "downloads": -1, "filename": "goodtables-1.0.0a5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c40dbad82830ccb4d573696d27c2d271", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 32363, "upload_time": "2017-02-06T12:21:50", "upload_time_iso_8601": "2017-02-06T12:21:50.527828Z", "url": "https://files.pythonhosted.org/packages/27/c4/b197b1eedf4af538ae2ff9fb0e0ee44e3de9fa7214df89c6cada5d26ecd8/goodtables-1.0.0a5-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "43229466485bd4f71d6b562ea07be242", "sha256": "c0528855e32b203d7d2bd3c1e93a4d83644a37205361bc2ed7c77c00c1b1b99d" }, "downloads": -1, "filename": "goodtables-1.0.0a5.tar.gz", "has_sig": false, "md5_digest": "43229466485bd4f71d6b562ea07be242", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23623, "upload_time": "2017-02-06T12:21:52", "upload_time_iso_8601": "2017-02-06T12:21:52.103956Z", "url": "https://files.pythonhosted.org/packages/a3/ed/e1de0f707a48816d5280c6c171e18d73eec259dae254ef4f64ed32330d6b/goodtables-1.0.0a5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0a6": [ { "comment_text": "", "digests": { "md5": "5b33a45ee20f495a8179ba547cb1f390", "sha256": "81409104e5836aeda120ba432991977d2e42bcd6bc1e3feadded31e07ae7c811" }, "downloads": -1, "filename": "goodtables-1.0.0a6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5b33a45ee20f495a8179ba547cb1f390", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 33731, "upload_time": "2017-03-03T11:33:19", "upload_time_iso_8601": "2017-03-03T11:33:19.145062Z", "url": "https://files.pythonhosted.org/packages/39/97/49191d1b92100c81ad4a3099ea53e22a3801949f5682473303013fcb8b8d/goodtables-1.0.0a6-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "034cce8ea9ac659ac90ead247ce5796e", "sha256": "861e21f7cb33c419b7ed87a89421f716effeb3a276a64f5b42e0e5b1fa3a93b3" }, "downloads": -1, "filename": "goodtables-1.0.0a6.tar.gz", "has_sig": false, "md5_digest": "034cce8ea9ac659ac90ead247ce5796e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23954, "upload_time": "2017-03-03T11:33:21", "upload_time_iso_8601": "2017-03-03T11:33:21.259603Z", "url": "https://files.pythonhosted.org/packages/31/c7/6afaa67fcc28db5e8e37731f22f248126d4719e55b8ecd499aae21e6c11d/goodtables-1.0.0a6.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0a7": [ { "comment_text": "", "digests": { "md5": "e9dcdbff36dc52550ed9d097dc0445fd", "sha256": "1ee87d5487b8e67aa705859ece0d5d1505398913148ce072eb26d6626627b5af" }, "downloads": -1, "filename": "goodtables-1.0.0a7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e9dcdbff36dc52550ed9d097dc0445fd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 33653, "upload_time": "2017-03-03T15:02:54", "upload_time_iso_8601": "2017-03-03T15:02:54.241398Z", "url": "https://files.pythonhosted.org/packages/94/76/7b888e282030295daf874344dec95a3e4c7c0067bd6d1916d6c41f9069d3/goodtables-1.0.0a7-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f6e4ffa674322d742c70e00a2ce7dabd", "sha256": "c90c0d231c306f12ed3090b9e3e8c9ce2793f582c7d0dd732062218de77b657f" }, "downloads": -1, "filename": "goodtables-1.0.0a7.tar.gz", "has_sig": false, "md5_digest": "f6e4ffa674322d742c70e00a2ce7dabd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23922, "upload_time": "2017-03-03T15:02:56", "upload_time_iso_8601": "2017-03-03T15:02:56.156292Z", "url": "https://files.pythonhosted.org/packages/9d/05/1c8b46b6bdecc0fd92bc6e13ab55c5646c848634678dd605a4a1dfe4935d/goodtables-1.0.0a7.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0a8": [ { "comment_text": "", "digests": { "md5": "1a47360fa20a6081b7ea2dab5b26e48d", "sha256": "f282b9138a10510f0d98e865892e80caa318365f711bbe00efe7978fca19a74f" }, "downloads": -1, "filename": "goodtables-1.0.0a8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1a47360fa20a6081b7ea2dab5b26e48d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 33194, "upload_time": "2017-03-03T17:15:51", "upload_time_iso_8601": "2017-03-03T17:15:51.390363Z", "url": "https://files.pythonhosted.org/packages/b5/38/f594696e74ac6903ad35f6513bdb0e03e2ec1a8940492ae095097d17a6c0/goodtables-1.0.0a8-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d0d9d8f08ec1dd567462d49308492cfa", "sha256": "9f8b39c693d5415c6ccffef5656a8996ad533da43bad50dea62202bfc614639a" }, "downloads": -1, "filename": "goodtables-1.0.0a8.tar.gz", "has_sig": false, "md5_digest": "d0d9d8f08ec1dd567462d49308492cfa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24113, "upload_time": "2017-03-03T17:15:53", "upload_time_iso_8601": "2017-03-03T17:15:53.352953Z", "url": "https://files.pythonhosted.org/packages/f2/bb/818d9549976187eaa69e8435923bb17a94cf1908ef2eb815fc788350f003/goodtables-1.0.0a8.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0a9": [ { "comment_text": "", "digests": { "md5": "bff4dfcd6b26ae6bf3c1eb9494316a09", "sha256": "39bbea446f1294601158a54d52f895a793f015cd70f354b32a9bdeb7acb73656" }, "downloads": -1, "filename": "goodtables-1.0.0a9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bff4dfcd6b26ae6bf3c1eb9494316a09", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 33315, "upload_time": "2017-05-18T11:59:28", "upload_time_iso_8601": "2017-05-18T11:59:28.531192Z", "url": "https://files.pythonhosted.org/packages/f3/b9/0179a274c00c50ca42d32a1c9d76c2ec8e85b1ce7ae210e3628e7aa2fabf/goodtables-1.0.0a9-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "33c3cf6b35f028d8553d6f8ea54e81aa", "sha256": "7dfd905f7133b2f61d3bc1abaaa237133539a376236eb08e98cf56efa1020450" }, "downloads": -1, "filename": "goodtables-1.0.0a9.tar.gz", "has_sig": false, "md5_digest": "33c3cf6b35f028d8553d6f8ea54e81aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24288, "upload_time": "2017-05-18T11:59:30", "upload_time_iso_8601": "2017-05-18T11:59:30.403087Z", "url": "https://files.pythonhosted.org/packages/8b/28/db2998c1f6a25db20d8b2d06420286ee94d3183e125b23cadb2587f6aa56/goodtables-1.0.0a9.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "e006f42bbbcafe99ff0ae3a0f03c53b2", "sha256": "af7b0e9ae8305aa326d9eae0647461a77735031171c0226c452951859906e11c" }, "downloads": -1, "filename": "goodtables-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e006f42bbbcafe99ff0ae3a0f03c53b2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 40350, "upload_time": "2017-08-08T18:29:12", "upload_time_iso_8601": "2017-08-08T18:29:12.472896Z", "url": "https://files.pythonhosted.org/packages/c7/c0/04321e9e7cad9bc170b0f46e79378afbb14089544714b72e07ad5ae360b1/goodtables-1.1.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "17a1f8426435275aeefee44c992e7f4a", "sha256": "709b43a35bb824f057833142c3f4280c83e81d75d00cc7050c07b3bdf63385eb" }, "downloads": -1, "filename": "goodtables-1.1.0.tar.gz", "has_sig": false, "md5_digest": "17a1f8426435275aeefee44c992e7f4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63566, "upload_time": "2017-08-08T18:29:14", "upload_time_iso_8601": "2017-08-08T18:29:14.191691Z", "url": "https://files.pythonhosted.org/packages/3a/fc/c04bf9b0525c1ec24e2480a7d654bc024e0f8c4233883f783e6021df773a/goodtables-1.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "66cb0ec9990e6a7d4b4d529c66ecebbb", "sha256": "4e63c94f02920ba4972777bff61e40f48422b353297ac30a18138eab45be9cef" }, "downloads": -1, "filename": "goodtables-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "66cb0ec9990e6a7d4b4d529c66ecebbb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 40424, "upload_time": "2017-08-09T08:34:18", "upload_time_iso_8601": "2017-08-09T08:34:18.632903Z", "url": "https://files.pythonhosted.org/packages/a1/a1/6efdf70833980497e5eabf11f0803732622344c9350f525eb5de0988a241/goodtables-1.2.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0316d379e3bfc11a5e939f8f79013dff", "sha256": "ab3c92adff7b8eb164278f180f2640bac3287f01b34f3f534b0427525c27e233" }, "downloads": -1, "filename": "goodtables-1.2.0.tar.gz", "has_sig": false, "md5_digest": "0316d379e3bfc11a5e939f8f79013dff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63724, "upload_time": "2017-08-09T08:34:19", "upload_time_iso_8601": "2017-08-09T08:34:19.674618Z", "url": "https://files.pythonhosted.org/packages/b0/39/8d724b7c78b1433d934dc89748fc5d72499add956e70a6f12a4ed63734f5/goodtables-1.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "9ead4493204fdc2bfa05916f69e80235", "sha256": "a8558c70561cfdb21b2ee805e0ef0ece082ca3934175131954ca161fb85faefe" }, "downloads": -1, "filename": "goodtables-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9ead4493204fdc2bfa05916f69e80235", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 52455, "upload_time": "2017-08-09T15:09:46", "upload_time_iso_8601": "2017-08-09T15:09:46.930384Z", "url": "https://files.pythonhosted.org/packages/dc/f4/3fa2343003f80503b6f048d9b8792edd63c1154c2a2eebf83aa701eacdba/goodtables-1.3.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e21dd0f54bf1e56477e3c52ded453f93", "sha256": "d7607112e16332960f860bdbc75d0eb9336ca8f93569d7b085ccec2ea93c6043" }, "downloads": -1, "filename": "goodtables-1.3.0.tar.gz", "has_sig": false, "md5_digest": "e21dd0f54bf1e56477e3c52ded453f93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 116545, "upload_time": "2017-08-09T15:09:48", "upload_time_iso_8601": "2017-08-09T15:09:48.422476Z", "url": "https://files.pythonhosted.org/packages/d4/dc/bd091daa9e5b4af9b49e3ac2fb66f86b26917aec81b6e2df31722e5b5285/goodtables-1.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "543f21ce7e39e3a80d31aef45be345fd", "sha256": "9c355bcb52faf9454c0cc52f5172fc059c058df509d6eacc4d67fd1220a6bafa" }, "downloads": -1, "filename": "goodtables-1.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "543f21ce7e39e3a80d31aef45be345fd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 52415, "upload_time": "2017-09-08T13:44:44", "upload_time_iso_8601": "2017-09-08T13:44:44.134605Z", "url": "https://files.pythonhosted.org/packages/c2/10/9566dff1551d30592782786486eb9e7a3bbbb17420d0f5dde54c920f195c/goodtables-1.4.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f49e11c65a57b4f73f3c8acd332bd133", "sha256": "1e22573e7d9b45570b1319c7962a8b4951a69d35a29d121f383227f6faa98c6e" }, "downloads": -1, "filename": "goodtables-1.4.0.tar.gz", "has_sig": false, "md5_digest": "f49e11c65a57b4f73f3c8acd332bd133", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 160790, "upload_time": "2017-09-08T13:44:46", "upload_time_iso_8601": "2017-09-08T13:44:46.183331Z", "url": "https://files.pythonhosted.org/packages/d7/bb/299b1f5960bc065e6a432bc87d5e250cc4798d23dbe83d8226348029f807/goodtables-1.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "73c002c0504002d9a0054d251ee2ecd2", "sha256": "1158cdc18758bb0a303a8538e8b335998b81453ac7436012b76eb59230ae2650" }, "downloads": -1, "filename": "goodtables-1.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "73c002c0504002d9a0054d251ee2ecd2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 52418, "upload_time": "2017-09-10T09:03:40", "upload_time_iso_8601": "2017-09-10T09:03:40.317774Z", "url": "https://files.pythonhosted.org/packages/3c/43/8a491db1a48ebd5145aac7bebcdc718831298b292b08379e0a7f31ac37cb/goodtables-1.4.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "65b8a3ce00a86b08dab3f1635214dea7", "sha256": "2aa36500d4cb0feeade37084d31142a00366092047980d27712b3a9ffa755500" }, "downloads": -1, "filename": "goodtables-1.4.1.tar.gz", "has_sig": false, "md5_digest": "65b8a3ce00a86b08dab3f1635214dea7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 160780, "upload_time": "2017-09-10T09:03:41", "upload_time_iso_8601": "2017-09-10T09:03:41.781752Z", "url": "https://files.pythonhosted.org/packages/0b/db/caed20ea96dffc43ccf5a4c04efc7acf86d4750ea386b7bc560ee05b3a33/goodtables-1.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "53f1944b571a363a714f1d0a09d6247d", "sha256": "548b6b6e7f8dcc15edab4e4491320d587f0ecac54b9086fd306fecf188166928" }, "downloads": -1, "filename": "goodtables-1.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "53f1944b571a363a714f1d0a09d6247d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 52567, "upload_time": "2017-09-19T16:37:06", "upload_time_iso_8601": "2017-09-19T16:37:06.323782Z", "url": "https://files.pythonhosted.org/packages/09/a1/23a28c5c95909e0de2cb7614f5f926ac8a99e44fda0fde1b44d398c9f323/goodtables-1.4.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "89cf844cb58bfe00ab7b0a689b7b617e", "sha256": "2620b86034cd4094c9c25cdebe3ddf010831ce5c8f832bbc28a4724914933f6a" }, "downloads": -1, "filename": "goodtables-1.4.2.tar.gz", "has_sig": false, "md5_digest": "89cf844cb58bfe00ab7b0a689b7b617e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 156229, "upload_time": "2017-09-19T16:37:08", "upload_time_iso_8601": "2017-09-19T16:37:08.243107Z", "url": "https://files.pythonhosted.org/packages/5e/f5/c5f912f4770f23e9d235f7f5eb27e6415959634a09ded46095314f5ac2df/goodtables-1.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.3": [ { "comment_text": "", "digests": { "md5": "c5f2a6c173cfdc7fd98b4e1b2c2fd3da", "sha256": "34a286b4ea63eb123d0503b616dac5fe523f6d5089c36a4d7d04f7f4740f8e63" }, "downloads": -1, "filename": "goodtables-1.4.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c5f2a6c173cfdc7fd98b4e1b2c2fd3da", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 52567, "upload_time": "2017-09-20T16:43:09", "upload_time_iso_8601": "2017-09-20T16:43:09.726752Z", "url": "https://files.pythonhosted.org/packages/13/08/703ec01251553b8f9118b11598e8e51f96f58384bb4a2cced3489ad99072/goodtables-1.4.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9ae271adb556bc7d314f03c81e978c2e", "sha256": "86c06897ac24cdcdcfc3fb23cf57748d6f00b0355f278f0b4eb9827461c48608" }, "downloads": -1, "filename": "goodtables-1.4.3.tar.gz", "has_sig": false, "md5_digest": "9ae271adb556bc7d314f03c81e978c2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 155651, "upload_time": "2017-09-20T16:43:11", "upload_time_iso_8601": "2017-09-20T16:43:11.104982Z", "url": "https://files.pythonhosted.org/packages/f0/18/0438251a44d114dc48d9bfce06a373479b794ae5104e236ea5e778ff28b0/goodtables-1.4.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.4": [ { "comment_text": "", "digests": { "md5": "67498448828a7a3d46cbf23e84c32418", "sha256": "d0a1df625c1252ea6b84163c64de74a69c6ffa90f6009dd447a0793e52def6d5" }, "downloads": -1, "filename": "goodtables-1.4.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "67498448828a7a3d46cbf23e84c32418", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 52570, "upload_time": "2017-10-03T12:40:17", "upload_time_iso_8601": "2017-10-03T12:40:17.966551Z", "url": "https://files.pythonhosted.org/packages/a2/64/62a063b301299fd9a17c7070d257c6423b4b4751f6d538af2e3af7f3a3e8/goodtables-1.4.4-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f6fb164a83139eae5a50af1c2b2b20e5", "sha256": "7ec2ad71515d4e701a0a9750c0d42f70134f7834f239df06af95de5330fb38a7" }, "downloads": -1, "filename": "goodtables-1.4.4.tar.gz", "has_sig": false, "md5_digest": "f6fb164a83139eae5a50af1c2b2b20e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 156291, "upload_time": "2017-10-03T12:40:19", "upload_time_iso_8601": "2017-10-03T12:40:19.846085Z", "url": "https://files.pythonhosted.org/packages/a9/32/f657d006b98d8a33031464111c8c405ca98016dff52be10b1be84acfc768/goodtables-1.4.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.5": [ { "comment_text": "", "digests": { "md5": "0e0ee6cb84e4b4487e17702530efdebf", "sha256": "8e2c8d559ef33a92c0c50d8ece4bc81e25790dfe43afb952f8ac97beb75ebf25" }, "downloads": -1, "filename": "goodtables-1.4.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0e0ee6cb84e4b4487e17702530efdebf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 52573, "upload_time": "2017-10-05T14:28:54", "upload_time_iso_8601": "2017-10-05T14:28:54.363172Z", "url": "https://files.pythonhosted.org/packages/c0/db/f628e5a2746fb89b8c6d74b8248c84b3a4718c90a69a8b353c00b35afb43/goodtables-1.4.5-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ec367bbc48a372a602f9399f6c791133", "sha256": "0ebbf839bbd84b235357a0394a80b6506ca53d2ee684340adfba5f9ad359fabe" }, "downloads": -1, "filename": "goodtables-1.4.5.tar.gz", "has_sig": false, "md5_digest": "ec367bbc48a372a602f9399f6c791133", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 156834, "upload_time": "2017-10-05T14:29:00", "upload_time_iso_8601": "2017-10-05T14:29:00.610828Z", "url": "https://files.pythonhosted.org/packages/52/ed/59ac52107e6966c7bab3fe879fa98a9acffb9281d5f7d70fadd46b96603b/goodtables-1.4.5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "19755a6210410924057b1b6dd2f6ccff", "sha256": "cd2354351ac8070f4778645b5dfd690e9bd136d3b86374011a15cfd9416ebc01" }, "downloads": -1, "filename": "goodtables-1.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "19755a6210410924057b1b6dd2f6ccff", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 52743, "upload_time": "2017-10-05T15:23:58", "upload_time_iso_8601": "2017-10-05T15:23:58.013277Z", "url": "https://files.pythonhosted.org/packages/b8/ae/623c2c49203d4535ec66b32671c20117603f97ea93d47f193032ec6c663e/goodtables-1.5.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3423d1c7d68da3417c839622a09da146", "sha256": "423dc317f95f199cc5c7562632026858e2b34e2a46096c010995d04dfa19b4d1" }, "downloads": -1, "filename": "goodtables-1.5.0.tar.gz", "has_sig": false, "md5_digest": "3423d1c7d68da3417c839622a09da146", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 156845, "upload_time": "2017-10-05T15:23:59", "upload_time_iso_8601": "2017-10-05T15:23:59.397060Z", "url": "https://files.pythonhosted.org/packages/9a/59/21a860f465926fc75a7c27ef1513e32425c3dd2f426c04be2080f22b3f2b/goodtables-1.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "4e26ed0636e1bc84421c09979eee36d0", "sha256": "601aba502857d93c564619469ac74d6f9e2791a7fa9e7b59e66ad2e2201667b4" }, "downloads": -1, "filename": "goodtables-1.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4e26ed0636e1bc84421c09979eee36d0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 52743, "upload_time": "2017-10-11T08:57:33", "upload_time_iso_8601": "2017-10-11T08:57:33.165482Z", "url": "https://files.pythonhosted.org/packages/c5/45/a8a7e79c3440c159a310343c203a5ed620c26c304288b9b412d644fefca0/goodtables-1.5.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f30c963d1e39756248c7546958be6600", "sha256": "a3c17d2e59fa3bffe8f3bdf79bed4e02420d661f9ce50ac68bb274d10aa6bc70" }, "downloads": -1, "filename": "goodtables-1.5.1.tar.gz", "has_sig": false, "md5_digest": "f30c963d1e39756248c7546958be6600", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 157056, "upload_time": "2017-10-11T08:57:34", "upload_time_iso_8601": "2017-10-11T08:57:34.753525Z", "url": "https://files.pythonhosted.org/packages/ad/ce/474ebc0a6ff23dd0ee0ce89c2c3b6ca6c8e51684d9a7b995d26bd14663a7/goodtables-1.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "49d8a6a7f0ce342c1aab41f236ea3bae", "sha256": "4b80dab6ef92f40f6865b792e03b07dfc6e7521364e665033ba9567d287bd45a" }, "downloads": -1, "filename": "goodtables-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "49d8a6a7f0ce342c1aab41f236ea3bae", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56950, "upload_time": "2018-03-22T17:35:50", "upload_time_iso_8601": "2018-03-22T17:35:50.243853Z", "url": "https://files.pythonhosted.org/packages/6e/a6/1ae907662860521ac961906172f31b27294a219e613c4adfaabc151c6460/goodtables-2.0.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9afd0bfb398e95122ae5011493db5ec2", "sha256": "7d6dc779c9cdfd2c85c694c12717d4f50ac44702927ce1b2c1101f6b502a7aa2" }, "downloads": -1, "filename": "goodtables-2.0.0.tar.gz", "has_sig": false, "md5_digest": "9afd0bfb398e95122ae5011493db5ec2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 160431, "upload_time": "2018-03-22T17:35:51", "upload_time_iso_8601": "2018-03-22T17:35:51.894754Z", "url": "https://files.pythonhosted.org/packages/d8/69/1d4d245be619f0d2fa64cab38fc303db337db54b2b493d348244d2433124/goodtables-2.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "bb7ff27b1e7c7243cfc1796cc602397b", "sha256": "31ecdd8d3f551ab1d812b3ef6dea9f710e2da7b246a4e9f46f3ebe39159cc9f4" }, "downloads": -1, "filename": "goodtables-2.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bb7ff27b1e7c7243cfc1796cc602397b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 47924, "upload_time": "2018-04-12T08:39:34", "upload_time_iso_8601": "2018-04-12T08:39:34.964242Z", "url": "https://files.pythonhosted.org/packages/99/f5/505e9e567e62510166b9b6353679f5ed2c147741245d541f3853565a92d9/goodtables-2.0.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b8da9f9aff2e5f2694143cf6e7c2a20b", "sha256": "83b19006f242ac1ea94b135c0e745342b014397dfa7940d706abbd830c4e5db0" }, "downloads": -1, "filename": "goodtables-2.0.2.tar.gz", "has_sig": false, "md5_digest": "b8da9f9aff2e5f2694143cf6e7c2a20b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 158884, "upload_time": "2018-04-12T08:39:36", "upload_time_iso_8601": "2018-04-12T08:39:36.146095Z", "url": "https://files.pythonhosted.org/packages/93/19/9ab2f3cdee1bbdb4d91023c90f8458f871b991bf9b1a70436997fe33479f/goodtables-2.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "850c5cc934e73b82c64d8d32ab9318ef", "sha256": "0a9d5c32d613b22ac65540ac86d063d420f5af70bf9afec791ed7e3d08eba6bf" }, "downloads": -1, "filename": "goodtables-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "850c5cc934e73b82c64d8d32ab9318ef", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 48025, "upload_time": "2018-09-20T06:25:47", "upload_time_iso_8601": "2018-09-20T06:25:47.348862Z", "url": "https://files.pythonhosted.org/packages/6c/84/7aab93b7c2f3ece3c784843652f1e478795ae0569a3ad1795d6795238ef1/goodtables-2.1.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "485eb5c7ae96986299a80f6801486352", "sha256": "2ce8868f21935e531226061561d3d21b94b404d52f270bd29689aa4dee49d1d9" }, "downloads": -1, "filename": "goodtables-2.1.0.tar.gz", "has_sig": false, "md5_digest": "485eb5c7ae96986299a80f6801486352", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 157881, "upload_time": "2018-09-20T06:25:49", "upload_time_iso_8601": "2018-09-20T06:25:49.051506Z", "url": "https://files.pythonhosted.org/packages/02/da/39db74554d80c056fffcc2387efce198e169c8a55ef779057bac419fe759/goodtables-2.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "931410519c6c9affe7aa4e993af9f757", "sha256": "1117d22bca5be75bf6a50b4e897e73a626fb620b6254bc84f22ad6751287cf2d" }, "downloads": -1, "filename": "goodtables-2.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "931410519c6c9affe7aa4e993af9f757", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 48852, "upload_time": "2018-10-01T08:16:46", "upload_time_iso_8601": "2018-10-01T08:16:46.325476Z", "url": "https://files.pythonhosted.org/packages/dc/0d/bbbba7e3697bf0ecc54125df9136f08c2f584fa20e8286b3839dfe294f27/goodtables-2.1.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0a15f6f71e8a12d5cdb51f12d85b494a", "sha256": "76b5e079465ebd629f26b2a4178b92a357afbd1c7ab52199b17f55d4b6ef5242" }, "downloads": -1, "filename": "goodtables-2.1.1.tar.gz", "has_sig": false, "md5_digest": "0a15f6f71e8a12d5cdb51f12d85b494a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 160748, "upload_time": "2018-10-01T08:16:47", "upload_time_iso_8601": "2018-10-01T08:16:47.971876Z", "url": "https://files.pythonhosted.org/packages/00/3e/5f61156b3f40250a2011bd37d1c681a8588abbd248dec00de9cba7c7b174/goodtables-2.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "12d89997a4123a0a94b8f16c2c3fbb19", "sha256": "54d73ab3d332678b0318cb57d4b51bfcfc6a3f29a66df861cc2d63dcb118514e" }, "downloads": -1, "filename": "goodtables-2.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "12d89997a4123a0a94b8f16c2c3fbb19", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 48884, "upload_time": "2019-04-11T12:42:51", "upload_time_iso_8601": "2019-04-11T12:42:51.633803Z", "url": "https://files.pythonhosted.org/packages/4b/a5/91bd6dbe0ae5442fe6524ff2fc7d5a33a88106408400787debd134f58c4a/goodtables-2.1.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ce4f4419a7d73ced5a58c0e45d8409f4", "sha256": "80151e84f567aac6dd55e6af7251bff7c87985832aa2a0f754935aedf48a3452" }, "downloads": -1, "filename": "goodtables-2.1.2.tar.gz", "has_sig": false, "md5_digest": "ce4f4419a7d73ced5a58c0e45d8409f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 162165, "upload_time": "2019-04-11T12:42:53", "upload_time_iso_8601": "2019-04-11T12:42:53.536707Z", "url": "https://files.pythonhosted.org/packages/85/7d/64ab0e5e2f4912a3239ba2178c3130d1799ecede1bafc1f4afffb3a996d6/goodtables-2.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.3": [ { "comment_text": "", "digests": { "md5": "c22fccb39c99e2ca23ca429cbefe7a7d", "sha256": "65092d388229a45c97fe3552c2a18a3b7c0aeb10170418bf23b4c4f664105bda" }, "downloads": -1, "filename": "goodtables-2.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c22fccb39c99e2ca23ca429cbefe7a7d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 48967, "upload_time": "2019-04-11T13:16:50", "upload_time_iso_8601": "2019-04-11T13:16:50.254240Z", "url": "https://files.pythonhosted.org/packages/e8/f4/52892a03bd81cb97381cb78a4ef9f7b08b4d12d61b216bebe5e828fa4597/goodtables-2.1.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "aa67c3de91628a596c62089023bd0093", "sha256": "7e8bc644b32270b1e7e146da9c3512f8b299d85c613674de77b6a0580e648695" }, "downloads": -1, "filename": "goodtables-2.1.3.tar.gz", "has_sig": false, "md5_digest": "aa67c3de91628a596c62089023bd0093", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 159183, "upload_time": "2019-04-11T13:16:52", "upload_time_iso_8601": "2019-04-11T13:16:52.039203Z", "url": "https://files.pythonhosted.org/packages/9d/d6/73f19f6fb5345f3f5f45bd3aecad7bc063ff273a0814a12f7d9772458344/goodtables-2.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.4": [ { "comment_text": "", "digests": { "md5": "6bf197adca9251be1c63dc199d4dc7f8", "sha256": "26271e9c7f98120f61d98ca81d5a7827d19207c73d941e0a88a7ee6b370f2f98" }, "downloads": -1, "filename": "goodtables-2.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6bf197adca9251be1c63dc199d4dc7f8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 49039, "upload_time": "2019-04-17T11:40:21", "upload_time_iso_8601": "2019-04-17T11:40:21.119841Z", "url": "https://files.pythonhosted.org/packages/9d/c9/7de0a336c4f8bb7ee15e8fd61b2c0fdb0b3b11adfdc8d4ad7cf7e1fc972a/goodtables-2.1.4-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f7fc0c132da719eaa00b209c9284e6be", "sha256": "7835d1ea06d16eef05a669b60181bac32749e50cfec4b36d5fff2373606c712c" }, "downloads": -1, "filename": "goodtables-2.1.4.tar.gz", "has_sig": false, "md5_digest": "f7fc0c132da719eaa00b209c9284e6be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 163052, "upload_time": "2019-04-17T11:40:22", "upload_time_iso_8601": "2019-04-17T11:40:22.774625Z", "url": "https://files.pythonhosted.org/packages/5c/e2/57b3e4c96f613cc36a5fe8d2d4110fb36d6c6986e5b48f22be5a5a4dc138/goodtables-2.1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.5": [ { "comment_text": "", "digests": { "md5": "a4dbc3b831053982c5dbf40344e4e0b4", "sha256": "e5ec09300b6f9318dc4f6dbfbc5089813d040f1f1833f9c3d9afbf7bfabab2a0" }, "downloads": -1, "filename": "goodtables-2.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a4dbc3b831053982c5dbf40344e4e0b4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 49069, "upload_time": "2019-06-03T12:34:01", "upload_time_iso_8601": "2019-06-03T12:34:01.014510Z", "url": "https://files.pythonhosted.org/packages/84/f2/9bd3cf20dbfbc5544b8433cee446a92cd234e4090c70d5a5dbce9d00731a/goodtables-2.1.5-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4a1ec9db48ed1963adaa206b29496c0b", "sha256": "c0326f143ea1364f497e2274fbdcc28cd258fb7bfb57ec811515c65270c7afae" }, "downloads": -1, "filename": "goodtables-2.1.5.tar.gz", "has_sig": false, "md5_digest": "4a1ec9db48ed1963adaa206b29496c0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 158509, "upload_time": "2019-06-03T12:34:03", "upload_time_iso_8601": "2019-06-03T12:34:03.554249Z", "url": "https://files.pythonhosted.org/packages/58/af/c35a3b639cfc80eb936f352317a63e88122e99c38374b309cdafc2145a9f/goodtables-2.1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.6": [ { "comment_text": "", "digests": { "md5": "87ff95627234d8437e614df65babbcd6", "sha256": "231b1a7efd0f55d9eef4c37bd92c9a4ab24490a5466cbc0d1a3faf65df21e09e" }, "downloads": -1, "filename": "goodtables-2.1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "87ff95627234d8437e614df65babbcd6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 49070, "upload_time": "2019-06-10T07:20:50", "upload_time_iso_8601": "2019-06-10T07:20:50.576791Z", "url": "https://files.pythonhosted.org/packages/af/78/aaf498a9d1dd337ed3a70bd029b8256b47b6201d4ef9353d3cd6f0eebc79/goodtables-2.1.6-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "57e00c6785df2ac46d6bbaea6d12e71a", "sha256": "e363d0d2762f5ac48b5f408bfe45c0de1ce8bad908cff42464bb11616ad40e55" }, "downloads": -1, "filename": "goodtables-2.1.6.tar.gz", "has_sig": false, "md5_digest": "57e00c6785df2ac46d6bbaea6d12e71a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 158437, "upload_time": "2019-06-10T07:20:52", "upload_time_iso_8601": "2019-06-10T07:20:52.866612Z", "url": "https://files.pythonhosted.org/packages/ac/64/5a933c9cbde885556e7cf83781c7f41245978ac316029ab5d1079963fcad/goodtables-2.1.6.tar.gz", "yanked": false, "yanked_reason": null } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "76bcdd99ae18c5f97f5557e8671af752", "sha256": "a663a7ac3020a732825812d60afaa58317e50f5322d8eb1c7928350847da38e1" }, "downloads": -1, "filename": "goodtables-2.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "76bcdd99ae18c5f97f5557e8671af752", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 49509, "upload_time": "2019-06-24T07:11:39", "upload_time_iso_8601": "2019-06-24T07:11:39.167609Z", "url": "https://files.pythonhosted.org/packages/78/44/74226e4b4bc1fd344b140bf8721376d309529c7cac8532f6560541329846/goodtables-2.2.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ae8c24c2697bd3bb64a3faf0cf293642", "sha256": "8abbbf8ad2e7eb2a803df72147c450dc33ad46ed64dd51c728ec109edded8693" }, "downloads": -1, "filename": "goodtables-2.2.0.tar.gz", "has_sig": false, "md5_digest": "ae8c24c2697bd3bb64a3faf0cf293642", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 160726, "upload_time": "2019-06-24T07:11:41", "upload_time_iso_8601": "2019-06-24T07:11:41.825756Z", "url": "https://files.pythonhosted.org/packages/47/24/55eaeb83406d5456a3576e24f8de30fa7a70f07598d76449fcba0026aa22/goodtables-2.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.2.1": [ { "comment_text": "", "digests": { "md5": "3bd4a6528222a816585d6255e65a56b9", "sha256": "1c1a0939a6ee4d7eececda3925460b82ac31c191f82ac41910c5434c79cb904d" }, "downloads": -1, "filename": "goodtables-2.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3bd4a6528222a816585d6255e65a56b9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 49576, "upload_time": "2019-07-08T08:15:30", "upload_time_iso_8601": "2019-07-08T08:15:30.297090Z", "url": "https://files.pythonhosted.org/packages/2c/02/d8eba4c5df5678830f614e8410db086466de1f89948bfdbabb68a82572cb/goodtables-2.2.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "94486497c1379a32687842d3db908d2a", "sha256": "a96288e882c67affb24aa8cd150e6d327020d877f070aa37c325003f78b0cba4" }, "downloads": -1, "filename": "goodtables-2.2.1.tar.gz", "has_sig": false, "md5_digest": "94486497c1379a32687842d3db908d2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 158913, "upload_time": "2019-07-08T08:15:32", "upload_time_iso_8601": "2019-07-08T08:15:32.733879Z", "url": "https://files.pythonhosted.org/packages/25/92/9585a2d5073dbb5f3a33a4cb81fe19553ca9f0372c93e8063646a9255764/goodtables-2.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "012792752eb8b0f6dcd14524c8bfad7d", "sha256": "d1102f0d2ab45501c296758eedbbbfae71865f0c6fb789c86875c514dabd7ada" }, "downloads": -1, "filename": "goodtables-2.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "012792752eb8b0f6dcd14524c8bfad7d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 52765, "upload_time": "2019-10-29T14:05:40", "upload_time_iso_8601": "2019-10-29T14:05:40.368724Z", "url": "https://files.pythonhosted.org/packages/f0/f7/bb009c3f42cf073dd3d0544893efe5f5d7255bc82b099fb7022420ee5ce4/goodtables-2.3.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "20f3b97623c9397ce685cad9d4c1d7c1", "sha256": "d35e6d5af76c4763037090d058780fbc19fe4a277afe33a07b60f59e61793762" }, "downloads": -1, "filename": "goodtables-2.3.0.tar.gz", "has_sig": false, "md5_digest": "20f3b97623c9397ce685cad9d4c1d7c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4946414, "upload_time": "2019-10-29T14:05:43", "upload_time_iso_8601": "2019-10-29T14:05:43.496154Z", "url": "https://files.pythonhosted.org/packages/48/56/7670e1e1e7d98916cbad32835e3df2b08d33d1255b7457e8f4164deffbf9/goodtables-2.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.3.1": [ { "comment_text": "", "digests": { "md5": "cb9dbecc43f2cc26115e9eef43df1e33", "sha256": "37004c7504f65f9390ff330947d8e908037e53cd332134a6a8dc1d27f0616d23" }, "downloads": -1, "filename": "goodtables-2.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cb9dbecc43f2cc26115e9eef43df1e33", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 52885, "upload_time": "2019-10-30T10:23:58", "upload_time_iso_8601": "2019-10-30T10:23:58.421628Z", "url": "https://files.pythonhosted.org/packages/6f/07/d33c3b1bc0b49ea45f501cb99026cc83d29fd8ad3cb0f14cbfa32d46ac59/goodtables-2.3.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e345e3beafeaa36f4bd13bdecded2dfd", "sha256": "4c20e320e018fccf71720b2ba00aa48dcce897b93e29f8f2581cdbc5292f6ea1" }, "downloads": -1, "filename": "goodtables-2.3.1.tar.gz", "has_sig": false, "md5_digest": "e345e3beafeaa36f4bd13bdecded2dfd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4947662, "upload_time": "2019-10-30T10:24:01", "upload_time_iso_8601": "2019-10-30T10:24:01.733102Z", "url": "https://files.pythonhosted.org/packages/97/5e/b46c0ac514d5252fab46f2d5743a68cf8717d763d2ca7c892cb9d0e93dd2/goodtables-2.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "57d0e86e2e11853e2b046860069db4b8", "sha256": "0428b376ac65d14c94de5b0e826eed0216303a9b76deaec1dcf6ce563b19984e" }, "downloads": -1, "filename": "goodtables-2.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "57d0e86e2e11853e2b046860069db4b8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 55227, "upload_time": "2019-10-31T14:59:13", "upload_time_iso_8601": "2019-10-31T14:59:13.906837Z", "url": "https://files.pythonhosted.org/packages/51/cf/c7febee67697a170d214b3145017bbc91c016064b1e5e48fd323ab99103c/goodtables-2.4.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ec8880d29bab41bcc10234ba27c32808", "sha256": "576be8e942e2c59eb13a2003dba6917ff4c3c3e17c6e1590969a4e483e04de6b" }, "downloads": -1, "filename": "goodtables-2.4.0.tar.gz", "has_sig": false, "md5_digest": "ec8880d29bab41bcc10234ba27c32808", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4950290, "upload_time": "2019-10-31T14:59:17", "upload_time_iso_8601": "2019-10-31T14:59:17.220498Z", "url": "https://files.pythonhosted.org/packages/0c/c9/9ccfa337d918a973b764b6f1dff5b5062bdec685a8d01c754a7cb4ebd432/goodtables-2.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.1": [ { "comment_text": "", "digests": { "md5": "c9a3bd622d4a294d6e55a710f8e70967", "sha256": "c39f2ffb728a383e12654ec23404e253f2a751f2d8237c5d6efb4f2d7ee3896e" }, "downloads": -1, "filename": "goodtables-2.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c9a3bd622d4a294d6e55a710f8e70967", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 55438, "upload_time": "2019-11-26T14:30:33", "upload_time_iso_8601": "2019-11-26T14:30:33.099876Z", "url": "https://files.pythonhosted.org/packages/8a/0e/5b947bd093011a45e8be6b4ff782e9bf0b0c88c6fd92487bbe7a0e35fd13/goodtables-2.4.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fc87b4d28d600517929282a2a4310b0e", "sha256": "d4a39144495c5969451b9147070aa9778fee7559a3c12943341804e1d1f1183b" }, "downloads": -1, "filename": "goodtables-2.4.1.tar.gz", "has_sig": false, "md5_digest": "fc87b4d28d600517929282a2a4310b0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5258782, "upload_time": "2019-11-26T14:30:36", "upload_time_iso_8601": "2019-11-26T14:30:36.328134Z", "url": "https://files.pythonhosted.org/packages/e4/bd/bd32528a6edb5654c46a4aa4aba31f57b12293715d40fc4513e6ca4c32ad/goodtables-2.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.10": [ { "comment_text": "", "digests": { "md5": "5e8355b0a61c406f545ad6f35fe9ab23", "sha256": "5a6781fbc560b282abc2a4224c11691dd57a9211875ad14cc2b70ae6720cbf12" }, "downloads": -1, "filename": "goodtables-2.4.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5e8355b0a61c406f545ad6f35fe9ab23", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 57035, "upload_time": "2020-03-23T16:42:37", "upload_time_iso_8601": "2020-03-23T16:42:37.926709Z", "url": "https://files.pythonhosted.org/packages/a5/1a/aae589b25a5b6938cda5823fb6428b8b7c1a1ef8780144bacdd6f2abe863/goodtables-2.4.10-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8457fd1ee36e1f7245ff5e13ddbed262", "sha256": "6cffd763f4841b074bc59ffd2facf47fed7c3fcceb1e56fe39f3172e78b1fcfd" }, "downloads": -1, "filename": "goodtables-2.4.10.tar.gz", "has_sig": false, "md5_digest": "8457fd1ee36e1f7245ff5e13ddbed262", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5551878, "upload_time": "2020-03-23T16:42:41", "upload_time_iso_8601": "2020-03-23T16:42:41.504848Z", "url": "https://files.pythonhosted.org/packages/5e/09/b9fdcf152570b91c627246651b1ac7e15f4fd76401a5507acc98744d9668/goodtables-2.4.10.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.11": [ { "comment_text": "", "digests": { "md5": "c595f319c91339d4661074817041bc41", "sha256": "5fa6452a3c9ff4cd5e5694468fba5957156f21fab3706786f04702717d0b0dba" }, "downloads": -1, "filename": "goodtables-2.4.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c595f319c91339d4661074817041bc41", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 57093, "upload_time": "2020-03-24T13:41:09", "upload_time_iso_8601": "2020-03-24T13:41:09.610777Z", "url": "https://files.pythonhosted.org/packages/7e/a5/36f399aa09974bc4b306dee2f483349fc3294b5662babf286c16ce4e81e5/goodtables-2.4.11-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8b949096de66374bd0b539b74d1599b1", "sha256": "6c796bbc1161a6df14970f05794c7d2a4d4ecee4b60ac2ae38f25383342515de" }, "downloads": -1, "filename": "goodtables-2.4.11.tar.gz", "has_sig": false, "md5_digest": "8b949096de66374bd0b539b74d1599b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5552047, "upload_time": "2020-03-24T13:41:12", "upload_time_iso_8601": "2020-03-24T13:41:12.982851Z", "url": "https://files.pythonhosted.org/packages/33/ba/7164b9469c7d8dfc7ae1c4f5d56fd5042d92f2b285d5e0fd14bf42f785f3/goodtables-2.4.11.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.12": [ { "comment_text": "", "digests": { "md5": "9be6891fe7fbb4b79392d0f5771144bb", "sha256": "1e97dbaa941343e018a61522e443550185eafd82132f87929c62c02745a34cde" }, "downloads": -1, "filename": "goodtables-2.4.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9be6891fe7fbb4b79392d0f5771144bb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 57220, "upload_time": "2020-03-24T13:48:01", "upload_time_iso_8601": "2020-03-24T13:48:01.838425Z", "url": "https://files.pythonhosted.org/packages/39/e8/a0ad39dafbf3cc966b5eb4997bbffaba1b9693a6e0fa8919c9a403238d8b/goodtables-2.4.12-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "205bab1c60ab8af1608a3c686a6c9321", "sha256": "e74c8c2b7c41b7fc62daf2ca0a084ea5c0bc5e2723c6f95004bc536bdfbc90c0" }, "downloads": -1, "filename": "goodtables-2.4.12.tar.gz", "has_sig": false, "md5_digest": "205bab1c60ab8af1608a3c686a6c9321", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5552700, "upload_time": "2020-03-24T13:48:04", "upload_time_iso_8601": "2020-03-24T13:48:04.896902Z", "url": "https://files.pythonhosted.org/packages/3d/78/eb865edb2cca13d6609f52d6f4f2691fdb96391ff14761ab03fdfa9325b9/goodtables-2.4.12.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.13": [ { "comment_text": "", "digests": { "md5": "86a436914dcee7c06fdfdb87dab2dc02", "sha256": "e6fcce05fd3896f7f71d28cacbfa8ddcd4ed7f607ed299bec80a6e45fc6f4bd0" }, "downloads": -1, "filename": "goodtables-2.4.13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "86a436914dcee7c06fdfdb87dab2dc02", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 57220, "upload_time": "2020-04-23T12:45:58", "upload_time_iso_8601": "2020-04-23T12:45:58.837292Z", "url": "https://files.pythonhosted.org/packages/82/3c/3e306eb43cf265e43627624b3a61ee59d75b91413179b6e8c9844471ef18/goodtables-2.4.13-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5238695ab2ede74fde9dc83eaad38878", "sha256": "c03c65ce50927398d62486fa2d46de18b3612491dd06a87f4a147f8b95863d52" }, "downloads": -1, "filename": "goodtables-2.4.13.tar.gz", "has_sig": false, "md5_digest": "5238695ab2ede74fde9dc83eaad38878", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5680378, "upload_time": "2020-04-23T12:46:01", "upload_time_iso_8601": "2020-04-23T12:46:01.496941Z", "url": "https://files.pythonhosted.org/packages/20/9d/4f95bc4fb304ac33ca9be58d8d4e0b4d440cf395bad4f8ae1c3880c30eb7/goodtables-2.4.13.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.14": [ { "comment_text": "", "digests": { "md5": "fc564f3a09d928e1fcb85acb928a0e57", "sha256": "ff0b57539ec25c21efe6e7864ba07c8c394bed1cf54d44fc4de91662a22c2cbc" }, "downloads": -1, "filename": "goodtables-2.4.14-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fc564f3a09d928e1fcb85acb928a0e57", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 57223, "upload_time": "2020-04-24T07:56:32", "upload_time_iso_8601": "2020-04-24T07:56:32.412402Z", "url": "https://files.pythonhosted.org/packages/6a/b1/6248800ba7fa81a6f5e976802a0555444b526817b34f12f45b40d7ab6c5f/goodtables-2.4.14-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "322eaaaf46a21d084fc3e4ceeb22ca36", "sha256": "0170a685145e7d5b2699e756ebcdcc7571455678e688bc52fd145b2e8964b6e2" }, "downloads": -1, "filename": "goodtables-2.4.14.tar.gz", "has_sig": false, "md5_digest": "322eaaaf46a21d084fc3e4ceeb22ca36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5687070, "upload_time": "2020-04-24T07:56:34", "upload_time_iso_8601": "2020-04-24T07:56:34.719035Z", "url": "https://files.pythonhosted.org/packages/cd/db/0407fb5cba2ec1fa7afcae2de9096d9082f4982cd2f7262f072b1c8e119a/goodtables-2.4.14.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.15": [ { "comment_text": "", "digests": { "md5": "c718928325c2b2f3ae2151d69de25a2a", "sha256": "8a2f01e1aaaf8735957cb81851b07c4313eda3e1c9289851b3d65df87406efcb" }, "downloads": -1, "filename": "goodtables-2.4.15-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c718928325c2b2f3ae2151d69de25a2a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 57463, "upload_time": "2020-04-27T15:04:40", "upload_time_iso_8601": "2020-04-27T15:04:40.004441Z", "url": "https://files.pythonhosted.org/packages/d6/49/711b5b622f116beb633975e1754fe5c8b16c409b975e04acc300c84b6636/goodtables-2.4.15-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0b0bdba8afc891f3e11973528997902e", "sha256": "24870bc49d0f8f40fe801fbba00da241d601d5d92202c507db31370fd2cf9872" }, "downloads": -1, "filename": "goodtables-2.4.15.tar.gz", "has_sig": false, "md5_digest": "0b0bdba8afc891f3e11973528997902e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5690654, "upload_time": "2020-04-27T15:04:42", "upload_time_iso_8601": "2020-04-27T15:04:42.296588Z", "url": "https://files.pythonhosted.org/packages/3c/31/ae9691f139dfd2f3a504d2253b4762fe5d31318c99454e11a8d640701dc4/goodtables-2.4.15.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.16": [ { "comment_text": "", "digests": { "md5": "e68b4b950d69580dd1ab9524811a2236", "sha256": "e788ac6e5051e92e990199f8265486b033a1d295c71bc4e5d6f3a31affba04de" }, "downloads": -1, "filename": "goodtables-2.4.16-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e68b4b950d69580dd1ab9524811a2236", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 57466, "upload_time": "2020-04-29T14:05:56", "upload_time_iso_8601": "2020-04-29T14:05:56.275381Z", "url": "https://files.pythonhosted.org/packages/52/13/3e4974d52dc6f3e80a36454b3e3c4ad44505fda260f3a1d5e6eda1728c3b/goodtables-2.4.16-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6a8f102cbd2b6d837939daf292251c1e", "sha256": "865541434f8e13135bc2c32f7d65fa53fcaf9b90f6b00dcf17473ad3dbf0a69a" }, "downloads": -1, "filename": "goodtables-2.4.16.tar.gz", "has_sig": false, "md5_digest": "6a8f102cbd2b6d837939daf292251c1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5697419, "upload_time": "2020-04-29T14:05:58", "upload_time_iso_8601": "2020-04-29T14:05:58.745618Z", "url": "https://files.pythonhosted.org/packages/e3/ff/98a2dba39146edeeacce58ea2b7aabac4a563ec2b3b0924389fd64572c4b/goodtables-2.4.16.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.2": [ { "comment_text": "", "digests": { "md5": "81e02c459e2dc6acd5edefe884539cd9", "sha256": "345a86f8e29fce02e9a612ef19ea79e0752ef391d0a1cb0c80312e370b55c882" }, "downloads": -1, "filename": "goodtables-2.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "81e02c459e2dc6acd5edefe884539cd9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56666, "upload_time": "2019-12-18T08:49:03", "upload_time_iso_8601": "2019-12-18T08:49:03.269752Z", "url": "https://files.pythonhosted.org/packages/97/7b/0ff315c1eaa5daffb94bf050040d2d7c0bd7b6828a4c4523d8b9ba500d02/goodtables-2.4.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "136bc1e8e433b1ebbe5b7fc36ea95689", "sha256": "be35977664fd8f1132ea2c92f33ca46f0b9fa48f80831bae3f5edb9075733fda" }, "downloads": -1, "filename": "goodtables-2.4.2.tar.gz", "has_sig": false, "md5_digest": "136bc1e8e433b1ebbe5b7fc36ea95689", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5423475, "upload_time": "2019-12-18T08:49:06", "upload_time_iso_8601": "2019-12-18T08:49:06.042303Z", "url": "https://files.pythonhosted.org/packages/5f/21/d35cd41307a70d266cc949b19de187b36e189a056adc442a5d21a0c11f8b/goodtables-2.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.3": [ { "comment_text": "", "digests": { "md5": "064b8f5a5749e9ae2418388579ecdfae", "sha256": "019d430d5499d23c8ab02958253db17e8bf8a633c647d849a4a48ff7a3bfe1ff" }, "downloads": -1, "filename": "goodtables-2.4.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "064b8f5a5749e9ae2418388579ecdfae", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56703, "upload_time": "2020-02-27T11:04:29", "upload_time_iso_8601": "2020-02-27T11:04:29.143988Z", "url": "https://files.pythonhosted.org/packages/ed/96/9b5f3a13242406fcc1de6d5eff7471d76f9b324e28b85af6a360b44cdc18/goodtables-2.4.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "81ed2cb0e4281501b04f323c8e17ec8c", "sha256": "bf86a5e2e06520b353232d2edcea0fb103bf06090f1ccc28d0586c2e3decaa49" }, "downloads": -1, "filename": "goodtables-2.4.3.tar.gz", "has_sig": false, "md5_digest": "81ed2cb0e4281501b04f323c8e17ec8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5510222, "upload_time": "2020-02-27T11:04:32", "upload_time_iso_8601": "2020-02-27T11:04:32.461865Z", "url": "https://files.pythonhosted.org/packages/de/39/fcd87cfc21710d483b83e2317e6758e921ccf0f463fc84c4ded4c6217ce6/goodtables-2.4.3.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.4": [ { "comment_text": "", "digests": { "md5": "2b97b67d5db1085c832275829a221405", "sha256": "a8d90df839289745ffab5c05337988742f564b48639c79a29fd6ea21a7e3fbcd" }, "downloads": -1, "filename": "goodtables-2.4.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2b97b67d5db1085c832275829a221405", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56715, "upload_time": "2020-03-02T16:02:15", "upload_time_iso_8601": "2020-03-02T16:02:15.693178Z", "url": "https://files.pythonhosted.org/packages/fd/6f/3e789b00f5184ebe4d9becbd6e43259062f3973f4b013b52eabe41fa38a8/goodtables-2.4.4-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4eb99d1ad4813bf734e8090748ab18fa", "sha256": "4dac805d2e1fe05caba5f01b317093bdfb7643b256a06cea5ec21657e224dc8c" }, "downloads": -1, "filename": "goodtables-2.4.4.tar.gz", "has_sig": false, "md5_digest": "4eb99d1ad4813bf734e8090748ab18fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5524298, "upload_time": "2020-03-02T16:02:19", "upload_time_iso_8601": "2020-03-02T16:02:19.850714Z", "url": "https://files.pythonhosted.org/packages/22/f0/9a3e59010d0f64bdda9d675e0b3f1e60eb3c5a152d0f049db8463ddd9c59/goodtables-2.4.4.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.5": [ { "comment_text": "", "digests": { "md5": "903b303466934c23dfc72bc996e7a463", "sha256": "02ea2f6fef6110cdce0a41a88489352b3e042982d6f9c63428067c5127f14c78" }, "downloads": -1, "filename": "goodtables-2.4.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "903b303466934c23dfc72bc996e7a463", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56729, "upload_time": "2020-03-09T11:01:10", "upload_time_iso_8601": "2020-03-09T11:01:10.360539Z", "url": "https://files.pythonhosted.org/packages/63/9f/fd15ce8cd61570d95479696dcd30990d97d7204d97b33da1543b36793663/goodtables-2.4.5-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e3063c1e5c0d9fd41b510075aad05675", "sha256": "257724a7583d2e54413823f9858f58508ef8cffab99a3c1a19581939843900bc" }, "downloads": -1, "filename": "goodtables-2.4.5.tar.gz", "has_sig": false, "md5_digest": "e3063c1e5c0d9fd41b510075aad05675", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5533365, "upload_time": "2020-03-09T11:01:13", "upload_time_iso_8601": "2020-03-09T11:01:13.087941Z", "url": "https://files.pythonhosted.org/packages/9a/0f/b0719bc9c73c71e334c5641f31b79dab13fff294dd988a396ab40be99a38/goodtables-2.4.5.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.6": [ { "comment_text": "", "digests": { "md5": "cb2df12f50658bdd86a3425ffdef3daf", "sha256": "0ddd22a22b83dac3826d9874268cd48a608de48daa49d3ba95269b4484d1dfe7" }, "downloads": -1, "filename": "goodtables-2.4.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cb2df12f50658bdd86a3425ffdef3daf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56804, "upload_time": "2020-03-09T12:11:52", "upload_time_iso_8601": "2020-03-09T12:11:52.471644Z", "url": "https://files.pythonhosted.org/packages/6c/e3/b70ac2296301c828d34e0cbfcae6a8e89900de1d61d67210609c1b62e492/goodtables-2.4.6-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "58b07b1f12ed3d6ea44a468934e6b225", "sha256": "361a56d37200ff34370ad54418dbfec0a0475106f4f21e09c643e8b1473f0571" }, "downloads": -1, "filename": "goodtables-2.4.6.tar.gz", "has_sig": false, "md5_digest": "58b07b1f12ed3d6ea44a468934e6b225", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5533389, "upload_time": "2020-03-09T12:11:54", "upload_time_iso_8601": "2020-03-09T12:11:54.896392Z", "url": "https://files.pythonhosted.org/packages/b6/06/9a0c74f5fd30dcef5452647672d17bd793dbb6a0295fca673ad5de6401f4/goodtables-2.4.6.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.7": [ { "comment_text": "", "digests": { "md5": "a1f16a4a797efc5fbff4c15b338779ce", "sha256": "5f7815c7174eaee2f8a6426ac3fa7ba0d087092f4f519b340b65a59f02a0328d" }, "downloads": -1, "filename": "goodtables-2.4.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a1f16a4a797efc5fbff4c15b338779ce", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56867, "upload_time": "2020-03-09T16:43:36", "upload_time_iso_8601": "2020-03-09T16:43:36.402998Z", "url": "https://files.pythonhosted.org/packages/fd/c3/01bd0abf6b7e05e3957525e8e7876d19de9de45d4f8f328d0f071a6bde87/goodtables-2.4.7-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d842ebdb89fa33a45e5e4539f26b9b66", "sha256": "3c60eb94e333642380b677e0073dd4b168321e75fc76fe4bcf17a70e04b86080" }, "downloads": -1, "filename": "goodtables-2.4.7.tar.gz", "has_sig": false, "md5_digest": "d842ebdb89fa33a45e5e4539f26b9b66", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5532951, "upload_time": "2020-03-09T16:43:39", "upload_time_iso_8601": "2020-03-09T16:43:39.360067Z", "url": "https://files.pythonhosted.org/packages/f6/9f/692d75f9ada9319b2df7141ceef28a1dc92d12cf7398bb156a49c6894df5/goodtables-2.4.7.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.8": [ { "comment_text": "", "digests": { "md5": "23ff40175ce9d03e58a7b53ac206974d", "sha256": "f33521b586dfe470df6152646c3b188eb90c3593da768e384db4a40bc86af049" }, "downloads": -1, "filename": "goodtables-2.4.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "23ff40175ce9d03e58a7b53ac206974d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56872, "upload_time": "2020-03-16T07:37:19", "upload_time_iso_8601": "2020-03-16T07:37:19.812944Z", "url": "https://files.pythonhosted.org/packages/0d/07/7e07f44e2ac9817f0ceaae99e21a6efcf2378732912be13113583ec06a59/goodtables-2.4.8-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fecb103e7803abb0adc0bacaf402a9f5", "sha256": "b84f453a8bbd7baabbf0997775624d3ed63c85c858bd8a51bd75bbe793aa23d6" }, "downloads": -1, "filename": "goodtables-2.4.8.tar.gz", "has_sig": false, "md5_digest": "fecb103e7803abb0adc0bacaf402a9f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5543322, "upload_time": "2020-03-16T07:37:22", "upload_time_iso_8601": "2020-03-16T07:37:22.669913Z", "url": "https://files.pythonhosted.org/packages/ee/8c/309a75f785e46d30c1feaac88f528d019b0e4c5b48b332f29ca9030e07f6/goodtables-2.4.8.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.9": [ { "comment_text": "", "digests": { "md5": "0dcc6840dff42b579e9832871d25976a", "sha256": "2c9184302ea5e4c6b432d416bc7bdd794b1f0e5c74a9abceafa47e9f37311b8f" }, "downloads": -1, "filename": "goodtables-2.4.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0dcc6840dff42b579e9832871d25976a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 57009, "upload_time": "2020-03-18T06:14:07", "upload_time_iso_8601": "2020-03-18T06:14:07.685321Z", "url": "https://files.pythonhosted.org/packages/26/a5/901bc840bb6b7e9c49df753eede4235d1cec41e718220c42ee34efdf15b1/goodtables-2.4.9-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "189b3468dff688eaa8d68a54aeb12e9e", "sha256": "2c137ebbe3f1eebb97d5ee6fe5d99ca2a07b403ad9aa8e042ee07ef1b9b7c8c2" }, "downloads": -1, "filename": "goodtables-2.4.9.tar.gz", "has_sig": false, "md5_digest": "189b3468dff688eaa8d68a54aeb12e9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5549214, "upload_time": "2020-03-18T06:14:10", "upload_time_iso_8601": "2020-03-18T06:14:10.557684Z", "url": "https://files.pythonhosted.org/packages/2f/40/aef9362a4752067f6e5b546e0d4c35508b81b87aee9bcb5ebb0c4ed40e24/goodtables-2.4.9.tar.gz", "yanked": false, "yanked_reason": null } ], "2.5.0": [ { "comment_text": "", "digests": { "md5": "50631ff43b4a8acf35c5a0b278184e6c", "sha256": "d04c48090289585b891684171487dcef2aa0f4ec9b103c73df348ac5fb9f7904" }, "downloads": -1, "filename": "goodtables-2.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "50631ff43b4a8acf35c5a0b278184e6c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 57719, "upload_time": "2020-06-12T11:07:21", "upload_time_iso_8601": "2020-06-12T11:07:21.525035Z", "url": "https://files.pythonhosted.org/packages/4f/2a/e78681c6e87544cf8dc206c6584d292ca25a0173651302b789acf126d91b/goodtables-2.5.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "590cb4bfd387ff7710cd0cdcbec73081", "sha256": "c0e79da118520376721dd819e78a7e9b0267c038fb07d6036b1e24cafd430bec" }, "downloads": -1, "filename": "goodtables-2.5.0.tar.gz", "has_sig": false, "md5_digest": "590cb4bfd387ff7710cd0cdcbec73081", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5834170, "upload_time": "2020-06-12T11:07:23", "upload_time_iso_8601": "2020-06-12T11:07:23.872019Z", "url": "https://files.pythonhosted.org/packages/8f/20/05d8ee5cd3c52c01ecbb1831992d561a36a54a63833110ca8173e6644027/goodtables-2.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.5.1": [ { "comment_text": "", "digests": { "md5": "d68262d5f9b797e3d6fabe5790c388f3", "sha256": "49a74a307a2d3b1badb812d877e09368e3a7eb62787586f833c5105f901fdc18" }, "downloads": -1, "filename": "goodtables-2.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d68262d5f9b797e3d6fabe5790c388f3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 58048, "upload_time": "2020-09-21T11:38:24", "upload_time_iso_8601": "2020-09-21T11:38:24.628792Z", "url": "https://files.pythonhosted.org/packages/37/58/c6b922eb62ec7036eab7f642a7e261c181dbbba841f867b7ec5ce50a81d0/goodtables-2.5.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "88bc088004d6524245d028ee960a3720", "sha256": "238e23e823ab22c5e7321202554cb8ea415b48f229450794551fefe7fab9d44f" }, "downloads": -1, "filename": "goodtables-2.5.1.tar.gz", "has_sig": false, "md5_digest": "88bc088004d6524245d028ee960a3720", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6161958, "upload_time": "2020-09-21T11:38:27", "upload_time_iso_8601": "2020-09-21T11:38:27.067210Z", "url": "https://files.pythonhosted.org/packages/21/55/ee041880fe45822c582b568b0a5d6b2ecaa0362f672ba4aad72d2364d57a/goodtables-2.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.5.2": [ { "comment_text": "", "digests": { "md5": "67f85429a21ef14263191baaf5256bd0", "sha256": "41a4bcee52c553b64f2904c10d8869c4664a5ba3b10f1cf3e93be331061dffd6" }, "downloads": -1, "filename": "goodtables-2.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "67f85429a21ef14263191baaf5256bd0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 58047, "upload_time": "2020-10-12T07:49:54", "upload_time_iso_8601": "2020-10-12T07:49:54.360188Z", "url": "https://files.pythonhosted.org/packages/1d/ca/62ba2733251134defd100a6f50cec12310f472361ce28b474d3ddd664005/goodtables-2.5.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9ea939a167b726653ba2fb8c864eed12", "sha256": "89007d6fdc746b40c89e48fee4a630a3f9d05fd12a7e8a0000f9a8ac958eea43" }, "downloads": -1, "filename": "goodtables-2.5.2.tar.gz", "has_sig": false, "md5_digest": "9ea939a167b726653ba2fb8c864eed12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 66456, "upload_time": "2020-10-12T07:49:56", "upload_time_iso_8601": "2020-10-12T07:49:56.570720Z", "url": "https://files.pythonhosted.org/packages/d9/cb/a52fcdc25ad38e389d9bbf713ef4b572799626ad8571d3e3caf4ae041d07/goodtables-2.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.5.4": [ { "comment_text": "", "digests": { "md5": "58ade63dbcb908ede947c50109661b7a", "sha256": "6175806b5aa1879e6eeb6899df69edd6ba22ef5e99b23f6a35b55f49b7800076" }, "downloads": -1, "filename": "goodtables-2.5.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "58ade63dbcb908ede947c50109661b7a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 58036, "upload_time": "2021-02-24T09:29:36", "upload_time_iso_8601": "2021-02-24T09:29:36.194349Z", "url": "https://files.pythonhosted.org/packages/9c/ea/d0015027c1cd008cc4da48829747f3f9e585ed541349ca66d0e4ee0c2cab/goodtables-2.5.4-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "89d708f61494bcb50b05d096ec6b0774", "sha256": "67c51ac98967684763adb6406f92a683571d144b3a80095b0351a65f49848027" }, "downloads": -1, "filename": "goodtables-2.5.4.tar.gz", "has_sig": false, "md5_digest": "89d708f61494bcb50b05d096ec6b0774", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 66408, "upload_time": "2021-02-24T09:29:39", "upload_time_iso_8601": "2021-02-24T09:29:39.394167Z", "url": "https://files.pythonhosted.org/packages/93/25/c691e85a93d0411ef50903a56ff26ffcc784f392e2765d2555548a0dd1a0/goodtables-2.5.4.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "58ade63dbcb908ede947c50109661b7a", "sha256": "6175806b5aa1879e6eeb6899df69edd6ba22ef5e99b23f6a35b55f49b7800076" }, "downloads": -1, "filename": "goodtables-2.5.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "58ade63dbcb908ede947c50109661b7a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 58036, "upload_time": "2021-02-24T09:29:36", "upload_time_iso_8601": "2021-02-24T09:29:36.194349Z", "url": "https://files.pythonhosted.org/packages/9c/ea/d0015027c1cd008cc4da48829747f3f9e585ed541349ca66d0e4ee0c2cab/goodtables-2.5.4-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "89d708f61494bcb50b05d096ec6b0774", "sha256": "67c51ac98967684763adb6406f92a683571d144b3a80095b0351a65f49848027" }, "downloads": -1, "filename": "goodtables-2.5.4.tar.gz", "has_sig": false, "md5_digest": "89d708f61494bcb50b05d096ec6b0774", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 66408, "upload_time": "2021-02-24T09:29:39", "upload_time_iso_8601": "2021-02-24T09:29:39.394167Z", "url": "https://files.pythonhosted.org/packages/93/25/c691e85a93d0411ef50903a56ff26ffcc784f392e2765d2555548a0dd1a0/goodtables-2.5.4.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }