{ "info": { "author": "Open Knowledge Foundation", "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": "# tableschema-py\n\n[![Travis](https://travis-ci.org/frictionlessdata/tableschema-py.svg?branch=master)](https://travis-ci.org/frictionlessdata/tableschema-py)\n[![Coveralls](http://img.shields.io/coveralls/frictionlessdata/tableschema-py.svg?branch=master)](https://coveralls.io/r/frictionlessdata/tableschema-py?branch=master)\n[![PyPi](https://img.shields.io/pypi/v/tableschema.svg)](https://pypi.python.org/pypi/tableschema)\n[![Github](https://img.shields.io/badge/github-master-brightgreen)](https://github.com/frictionlessdata/tableschema-py)\n[![Gitter](https://img.shields.io/gitter/room/frictionlessdata/chat.svg)](https://gitter.im/frictionlessdata/chat)\n\nA library for working with [Table Schema](http://specs.frictionlessdata.io/table-schema/) in Python.\n\n## Features\n\n- `Table` to work with data tables described by Table Schema\n- `Schema` representing Table Schema\n- `Field` representing Table Schema field\n- `validate` to validate Table Schema\n- `infer` to infer Table Schema from data\n- built-in command-line interface to validate and infer schemas\n- storage/plugins system to connect tables to different storage backends like SQL Database\n\n## Contents\n\n\n\n - [Gettings Started](#gettings-started)\n - [Installation](#installation)\n - [Examples](#examples)\n - [Documentation](#documentation)\n - [Table](#table)\n - [Schema](#schema)\n - [Field](#field)\n - [validate](#validate)\n - [infer](#infer)\n - [Exceptions](#exceptions)\n - [Storage](#storage)\n - [Plugins](#plugins)\n - [CLI](#cli)\n - [Contributing](#contributing)\n - [Changelog](#changelog)\n\n\n\n## Gettings Started\n\n### Installation\n\nThe package use semantic versioning. It means that major versions could include breaking changes. It's highly recommended to specify `tableschema` version range in your `setup/requirements` file e.g. `tableschema>=1.0,<2.0`.\n\n```bash\n$ pip install tableschema\n```\n\n### Examples\n\nCode examples in this readme requires Python 3.4+ interpreter. You could see even more example in [examples](https://github.com/frictionlessdata/tableschema-py/tree/master/examples) directory.\n\n```python\nfrom tableschema import Table\n\n# Create table\ntable = Table('path.csv', schema='schema.json')\n\n# Print schema descriptor\nprint(table.schema.descriptor)\n\n# Print cast rows in a dict form\nfor keyed_row in table.iter(keyed=True):\n print(keyed_row)\n```\n\n## Documentation\n\n### Table\n\nA table is a core concept in a tabular data world. It represents data with metadata (Table Schema). Let's see how we can use it in practice.\n\nConsider we have some local csv file. It could be inline data or from a remote link - all supported by the `Table` class (except local files for in-brower usage of course). But say it's `data.csv` for now:\n\n```csv\ncity,location\nlondon,\"51.50,-0.11\"\nparis,\"48.85,2.30\"\nrome,N/A\n```\n\nLet's create and read a table instance. We use the static `Table.load` method and the `table.read` method with the `keyed` option to get an array of keyed rows:\n\n```python\ntable = Table('data.csv')\ntable.headers # ['city', 'location']\ntable.read(keyed=True)\n# [\n# {city: 'london', location: '51.50,-0.11'},\n# {city: 'paris', location: '48.85,2.30'},\n# {city: 'rome', location: 'N/A'},\n# ]\n```\n\nAs we can see, our locations are just strings. But they should be geopoints. Also, Rome's location is not available, but it's just a string `N/A` instead of `None`. First we have to infer Table Schema:\n\n```python\ntable.infer()\ntable.schema.descriptor\n# { fields:\n# [ { name: 'city', type: 'string', format: 'default' },\n# { name: 'location', type: 'geopoint', format: 'default' } ],\n# missingValues: [ '' ] }\ntable.read(keyed=True)\n# Fails with a data validation error\n```\n\nLet's fix the \"not available\" location. There is a `missingValues` property in Table Schema specification. As a first try we set `missingValues` to `N/A` in `table.schema.descriptor`. The schema descriptor can be changed in-place, but all changes should also be committed using `table.schema.commit()`:\n\n```python\ntable.schema.descriptor['missingValues'] = 'N/A'\ntable.schema.commit()\ntable.schema.valid # false\ntable.schema.errors\n# []\n```\n\nAs a good citizens we've decided to check our schema descriptor's validity. And it's not valid! We should use an array for the `missingValues` property. Also, don't forget to include \"empty string\" as a valid missing value:\n\n```python\ntable.schema.descriptor['missingValues'] = ['', 'N/A']\ntable.schema.commit()\ntable.schema.valid # true\n```\n\nAll good. It looks like we're ready to read our data again:\n\n```python\ntable.read(keyed=True)\n# [\n# {city: 'london', location: [51.50,-0.11]},\n# {city: 'paris', location: [48.85,2.30]},\n# {city: 'rome', location: null},\n# ]\n```\n\nNow we see that:\n- locations are arrays with numeric latitude and longitude\n- Rome's location is a native Python `None`\n\nAnd because there are no errors after reading, we can be sure that our data is valid against our schema. Let's save it:\n\n```python\ntable.schema.save('schema.json')\ntable.save('data.csv')\n```\n\nOur `data.csv` looks the same because it has been stringified back to `csv` format. But now we have `schema.json`:\n\n```json\n{\n \"fields\": [\n {\n \"name\": \"city\",\n \"type\": \"string\",\n \"format\": \"default\"\n },\n {\n \"name\": \"location\",\n \"type\": \"geopoint\",\n \"format\": \"default\"\n }\n ],\n \"missingValues\": [\n \"\",\n \"N/A\"\n ]\n}\n\n```\n\nIf we decide to improve it even more we could update the schema file and then open it again. But now providing a schema path:\n\n```python\ntable = Table('data.csv', schema='schema.json')\n# Continue the work\n```\n\nThis is a basic introduction to the `Table` class. To learn more let's take a look at the `Table` class API reference.\n\n#### `Table(source, schema=None, strict=False, post_cast=[], storage=None, **options)`\n\nConstructor to instantiate `Table` class. If `references` argument is provided, foreign keys will be checked on any reading operation.\n\n- `source (str/list[])` - data source (one of):\n - local file (path)\n - remote file (url)\n - array of arrays representing the rows\n- `schema (any)` - data schema in all forms supported by `Schema` class\n- `strict (bool)` - strictness option to pass to `Schema` constructor\n- `post_cast (function[])` - list of post cast processors\n- `storage (None/str)` - storage name like `sql` or `bigquery`\n- `options (dict)` - `tabulator` or storage options\n- `(exceptions.TableSchemaException)` - raises any error that occurs in table creation process\n- `(Table)` - returns data table class instance\n\n#### `table.headers`\n\n- `(str[])` - returns data source headers\n\n#### `table.schema`\n\n- `(Schema)` - returns schema class instance\n\n#### `table.iter(keyed=Fase, extended=False, cast=True, relations=False, foreign_keys_values=False)`\n\nIterates through the table data and emits rows cast based on table schema. Data casting can be disabled.\n\n- `keyed (bool)` - iterate keyed rows\n- `extended (bool)` - iterate extended rows\n- `cast (bool)` - disable data casting if false\n- `relations (dict)` - dictionary of foreign key references in a form of `{resource1: [{field1: value1, field2: value2}, ...], ...}`. If provided, foreign key fields will checked and resolved to one of their references (/!\\ one-to-many fk are not completely resolved).\n- `foreign_keys_values (dict)` - three-level dictionary of foreign key references optimized to speed up validation process in a form of `{resource1: { (foreign_key_field1, foreign_key_field2) : { (value1, value2) : {one_keyedrow}, ... }}}`. If not provided but relations is true, it will be created before the validation process by *index_foreign_keys_values* method\n- `(exceptions.TableSchemaException)` - raises any error that occurs during this process\n- `(any[]/any{})` - yields rows:\n - `[value1, value2]` - base\n - `{header1: value1, header2: value2}` - keyed\n - `[rowNumber, [header1, header2], [value1, value2]]` - extended\n\n#### `table.read(keyed=False, extended=False, cast=True, relations=False, limit=None, foreign_keys_values=False)`\n\nRead the whole table and returns as array of rows. Count of rows could be limited.\n\n- `keyed (bool)` - flag to emit keyed rows\n- `extended (bool)` - flag to emit extended rows\n- `cast (bool)` - flag to disable data casting if false\n- `relations (dict)` - dict of foreign key references in a form of `{resource1: [{field1: value1, field2: value2}, ...], ...}`. If provided foreign key fields will checked and resolved to its references\n- `limit (int)` - integer limit of rows to return\n- `foreign_keys_values (dict)` - three-level dictionary of foreign key references optimized to speed up validation process in a form of `{resource1: { (foreign_key_field1, foreign_key_field2) : { (value1, value2) : {one_keyedrow}, ... }}}`\n- `(exceptions.TableSchemaException)` - raises any error that occurs during this process\n- `(list[])` - returns array of rows (see `table.iter`)\n\n#### `table.infer(limit=100, confidence=0.75)`\n\nInfer a schema for the table. It will infer and set Table Schema to `table.schema` based on table data.\n\n- `limit (int)` - limit rows sample size\n- `confidence (float)` - how many casting errors are allowed (as a ratio, between 0 and 1)\n- `(dict)` - returns Table Schema descriptor\n\n#### `table.save(target, storage=None, **options)`\n\n> To save schema use `table.schema.save()`\n\nSave data source to file locally in CSV format with `,` (comma) delimiter\n\n- `target (str)` - saving target (e.g. file path)\n- `storage (None/str)` - storage name like `sql` or `bigquery`\n- `options (dict)` - `tabulator` or storage options\n- `(exceptions.TableSchemaException)` - raises an error if there is saving problem\n- `(True/Storage)` - returns true or storage instance\n\n#### `table.index_foreign_keys_values(relations)`\n\nCreates a three-level dictionary of foreign key references optimized to speed up validation process in a form of `{resource1: { (foreign_key_field1, foreign_key_field2) : { (value1, value2) : {one_keyedrow}, ... }}}`.\nFor each foreign key of the schema it will iterate through the corresponding `relations['resource']` to create an index (i.e. a dict) of existing values for the foreign fields and store on keyed row for each value combination.\nThe optimization relies on the indexation of possible values for one foreign key in a hashmap to later speed up resolution.\nThis method is public to allow creating the index once to apply it on multiple tables charing the same schema (typically [grouped resources in datapackage](https://github.com/frictionlessdata/datapackage-py#group))\nNote 1: the second key of the output is a tuple of the foreign fields, a proxy identifier of the foreign key\nNote 2: the same relation resource can be indexed multiple times as a schema can contain more than one Foreign Keys pointing to the same resource\n\n- `relations (dict)` - dict of foreign key references in a form of `{resource1: [{field1: value1, field2: value2}, ...], ...}`. It must contain all resources pointed in the foreign keys schema definition.\n- `({resource1: { (foreign_key_field1, foreign_key_field2) : { (value1, value2) : {one_keyedrow}, ... }}})` - returns a three-level dictionary of foreign key references optimized to speed up validation process\n\n### Schema\n\nA model of a schema with helpful methods for working with the schema and supported data. Schema instances can be initialized with a schema source as a url to a JSON file or a JSON object. The schema is initially validated (see [validate](#validate) below). By default validation errors will be stored in `schema.errors` but in a strict mode it will be instantly raised.\n\nLet's create a blank schema. It's not valid because `descriptor.fields` property is required by the [Table Schema](http://specs.frictionlessdata.io/table-schema/) specification:\n\n```python\nschema = Schema()\nschema.valid # false\nschema.errors\n# []\n```\n\nTo avoid creating a schema descriptor by hand we will use a `schema.infer` method to infer the descriptor from given data:\n\n```python\nschema.infer([\n ['id', 'age', 'name'],\n ['1','39','Paul'],\n ['2','23','Jimmy'],\n ['3','36','Jane'],\n ['4','28','Judy'],\n])\nschema.valid # true\nschema.descriptor\n#{ fields:\n# [ { name: 'id', type: 'integer', format: 'default' },\n# { name: 'age', type: 'integer', format: 'default' },\n# { name: 'name', type: 'string', format: 'default' } ],\n# missingValues: [ '' ] }\n```\n\nNow we have an inferred schema and it's valid. We can cast data rows against our schema. We provide a string input which will be cast correspondingly:\n\n```python\nschema.cast_row(['5', '66', 'Sam'])\n# [ 5, 66, 'Sam' ]\n```\n\nBut if we try provide some missing value to the `age` field, the cast will fail because the only valid \"missing\" value is an empty string. Let's update our schema:\n\n```python\nschema.cast_row(['6', 'N/A', 'Walt'])\n# Cast error\nschema.descriptor['missingValues'] = ['', 'N/A']\nschema.commit()\nschema.cast_row(['6', 'N/A', 'Walt'])\n# [ 6, None, 'Walt' ]\n```\n\nWe can save the schema to a local file, and resume work on it at any time by loading it from that file:\n\n```python\nschema.save('schema.json')\nschema = Schema('schema.json')\n```\n\nThis was a basic introduction to the `Schema` class. To learn more, let's take a look at the `Schema` API reference.\n\n#### `Schema(descriptor, strict=False)`\n\nConstructor to instantiate `Schema` class.\n\n- `descriptor (str/dict)` - schema descriptor:\n - local path\n - remote url\n - dictionary\n- `strict (bool)` - flag to specify validation behaviour:\n - if false, errors will not be raised but instead collected in `schema.errors`\n - if true, validation errors are raised immediately\n- `(exceptions.TableSchemaException)` - raise any error that occurs during the process\n- `(Schema)` - returns schema class instance\n\n#### `schema.valid`\n\n- `(bool)` - returns validation status. Always true in strict mode.\n\n#### `schema.errors`\n\n- `(Exception[])` - returns validation errors. Always empty in strict mode.\n\n#### `schema.descriptor`\n\n- `(dict)` - returns schema descriptor\n\n#### `schema.primary_key`\n\n- `(str[])` - returns schema primary key\n\n#### `schema.foreign_keys`\n\n- `(dict[])` - returns schema foreign keys\n\n#### `schema.fields`\n\n- `(Field[])` - returns an array of `Field` instances\n\n#### `schema.field_names`\n\n- `(str[])` - returns an array of field names.\n\n#### `schema.get_field(name)`\n\nGet schema field by name.\n\nNote: use `update_field` if you want to modify the field descriptor\n\n- `name (str)` - schema field name\n- `(Field/None)` - returns `Field` instance or `None` if not found\n\n#### `schema.add_field(descriptor)`\n\nAdd new field to schema. The schema descriptor will be validated with newly added field descriptor.\n\n- `descriptor (dict)` - field descriptor\n- `(exceptions.TableSchemaException)` - raises any error that occurs during the process\n- `(Field/None)` - returns added `Field` instance or `None` if not added\n\n#### `schema.update_field(name, update)`\n\nUpdate existing descriptor field by name\n\n- `name (str)` - schema field name\n- `update (dict)` - update to apply to field's descriptor\n- `(bool)` - returns true on success and false if no field is found to be modified\n\ncf [`schema.commit()`](#schemacommitstrictnone) example\n\n#### `schema.remove_field(name)`\n\nRemove field resource by name. The schema descriptor will be validated after field descriptor removal.\n\n- `name (str)` - schema field name\n- `(exceptions.TableSchemaException)` - raises any error that occurs during the process\n- `(Field/None)` - returns removed `Field` instances or `None` if not found\n\n#### `schema.cast_row(row)`\n\nCast row based on field types and formats.\n\n- `row (any[])` - data row as an array of values\n- `(any[])` - returns cast data row\n\n#### `schema.infer(rows, headers=1, confidence=0.75, guesser_cls=None, resolver_cls=None)`\n\nInfer and set `schema.descriptor` based on data sample.\n\n- `rows (list[])` - array of arrays representing rows.\n- `headers (int/str[])` - data sample headers (one of):\n - row number containing headers (`rows` should contain headers rows)\n - array of headers (`rows` should NOT contain headers rows)\n- `confidence (float)` - how many casting errors are allowed (as a ratio, between 0 and 1)\n- `guesser_cls` & `resolver_cls` - you can implement inferring strategies by providing type-guessing and type-resolving classes [experimental]\n- `{dict}` - returns Table Schema descriptor\n\n#### `schema.commit(strict=None)`\n\nUpdate schema instance if there are in-place changes in the descriptor.\n\n- `strict (bool)` - alter `strict` mode for further work\n- `(exceptions.TableSchemaException)` - raises any error that occurs during the process\n- `(bool)` - returns true on success and false if not modified\n\n```python\nfrom tableschema import Schema\ndescriptor = {'fields': [{'name': 'my_field', 'title': 'My Field', 'type': 'string'}]}\nschema = Schema(descriptor)\nprint(schema.get_field('my_field').descriptor['type']) # string\n\n# Update descriptor by field position\nschema.descriptor['fields'][0]['type'] = 'number'\n# Update descriptor by field name\nschema.update_field('my_field', {'title': 'My Pretty Field'}) # True\n\n# Change are not committed\nprint(schema.get_field('my_field').descriptor['type']) # string\nprint(schema.get_field('my_field').descriptor['title']) # My Field\n\n\n# Commit change\nschema.commit()\nprint(schema.get_field('my_field').descriptor['type']) # number\nprint(schema.get_field('my_field').descriptor['title']) # My Pretty Field\n\n```\n\n#### `schema.save(target)`\n\nSave schema descriptor to target destination.\n\n- `target (str)` - path where to save a descriptor\n- `(exceptions.TableSchemaException)` - raises any error that occurs during the process\n- `(bool)` - returns true on success\n\n### Field\n\n```python\nfrom tableschema import Field\n\n# Init field\nfield = Field({'name': 'name', 'type': 'number'})\n\n# Cast a value\nfield.cast_value('12345') # -> 12345\n```\n\nData values can be cast to native Python objects with a Field instance. Type instances can be initialized with [field descriptors](https://specs.frictionlessdata.io/table-schema/). This allows formats and constraints to be defined.\n\nCasting a value will check the value is of the expected type, is in the correct format, and complies with any constraints imposed by a schema. E.g. a date value (in ISO 8601 format) can be cast with a DateType instance. Values that can't be cast will raise an `InvalidCastError` exception.\n\nCasting a value that doesn't meet the constraints will raise a `ConstraintError` exception.\n\nHere is an API reference for the `Field` class:\n\n#### `new Field(descriptor, missingValues=[''])`\n\nConstructor to instantiate `Field` class.\n\n- `descriptor (dict)` - schema field descriptor\n- `missingValues (str[])` - an array with string representing missing values\n- `(exceptions.TableSchemaException)` - raises any error that occurs during the process\n- `(Field)` - returns field class instance\n\n#### `field.schema`\n\n- `(Schema)` - returns a schema instance if the field belongs to some schema\n\n#### `field.name`\n\n- `(str)` - returns field name\n\n#### `field.type`\n\n- `(str)` - returns field type\n\n#### `field.format`\n\n- `(str)` - returns field format\n\n#### `field.required`\n\n- `(bool)` - returns true if field is required\n\n#### `field.constraints`\n\n- `(dict)` - returns an object with field constraints\n\n#### `field.descriptor`\n\n- `(dict)` - returns field descriptor\n\n#### `field.castValue(value, constraints=true)`\n\nCast given value according to the field type and format.\n\n- `value (any)` - value to cast against field\n- `constraints (boll/str[])` - gets constraints configuration\n - it could be set to true to disable constraint checks\n - it could be an Array of constraints to check e.g. ['minimum', 'maximum']\n- `(exceptions.TableSchemaException)` - raises any error that occurs during the process\n- `(any)` - returns cast value\n\n#### `field.testValue(value, constraints=true)`\n\nTest if value is compliant to the field.\n\n- `value (any)` - value to cast against field\n- `constraints (bool/str[])` - constraints configuration\n- `(bool)` - returns if value is compliant to the field\n\n### validate\n\nGiven a schema as JSON file, url to JSON file, or a Python dict, `validate` returns true for a valid Table Schema, or raises an exception, `exceptions.ValidationError`. It validates only **schema**, not data against schema!\n\n```python\nfrom tableschema import validate, exceptions\n\ntry:\n valid = validate(descriptor)\nexcept exceptions.ValidationError as exception:\n for error in exception.errors:\n # handle individual error\n```\n\n#### `validate(descriptor)`\n\nValidate a Table Schema descriptor.\n\n- `descriptor (str/dict)` - schema descriptor (one of):\n - local path\n - remote url\n - object\n- (exceptions.ValidationError) - raises on invalid\n- `(bool)` - returns true on valid\n\n### infer\n\nGiven headers and data, `infer` will return a Table Schema as a Python dict based on the data values. Given the data file, `data_to_infer.csv`:\n\n```\nid,age,name\n1,39,Paul\n2,23,Jimmy\n3,36,Jane\n4,28,Judy\n```\n\nLet's call `infer` for this file:\n\n```python\nfrom tableschema import infer\n\ndescriptor = infer('data_to_infer.csv')\n#{'fields': [\n# {\n# 'format': 'default',\n# 'name': 'id',\n# 'type': 'integer'\n# },\n# {\n# 'format': 'default',\n# 'name': 'age',\n# 'type': 'integer'\n# },\n# {\n# 'format': 'default',\n# 'name': 'name',\n# 'type': 'string'\n# }]\n#}\n```\n\nThe number of rows used by `infer` can be limited with the `limit` argument.\n\n#### `infer(source, headers=1, limit=100, confidence=0.75, **options)`\n\nInfer source schema.\n\n- `source (any)` - source as path, url or inline data\n- `headers (int/str[])` - headers rows number or headers list\n- `confidence (float)` - how many casting errors are allowed (as a ratio, between 0 and 1)\n- `(exceptions.TableSchemaException)` - raises any error that occurs during the process\n- `(dict)` - returns schema descriptor\n\n### Exceptions\n\n#### `exceptions.TableSchemaException`\n\nBase class for all library exceptions. If there are multiple errors, they can be read from the exception object:\n\n```python\n\ntry:\n # lib action\nexcept exceptions.TableSchemaException as exception:\n if exception.multiple:\n for error in exception.errors:\n # handle error\n```\n\n#### `exceptions.LoadError`\n\nAll loading errors.\n\n#### `exceptions.ValidationError`\n\nAll validation errors.\n\n#### `exceptions.CastError`\n\nAll value cast errors.\n\n#### `exceptions.RelationError`\n\nAll integrity errors.\n\n#### `exceptions.StorageError`\n\nAll storage errors.\n\n### Storage\n\nThe library includes interface declaration to implement tabular `Storage`. This interface allow to use different data storage systems like SQL with `tableschema.Table` class (load/save) as well as on the data package level:\n\n![Storage](https://raw.githubusercontent.com/frictionlessdata/tableschema-py/master/data/storage.png)\n\nFor instantiation of concrete storage instances, `tableschema.Storage` provides a unified factory method `connect` (which uses the plugin system under the hood):\n\n```python\n# pip install tableschema_sql\nfrom tableschema import Storage\n\nstorage = Storage.connect('sql', **options)\nstorage.create('bucket', descriptor)\nstorage.write('bucket', rows)\nstorage.read('bucket')\n```\n\n#### `Storage.connect(name, **options)`\n\nCreate tabular `storage` based on storage name.\n\n- `name (str)` - storage name like `sql`\n- `options (dict)` - concrete storage options\n- `(exceptions.StorageError)` - raises on any error\n- `(Storage)` - returns `Storage` instance\n\n---\n\n\nAn implementor should follow `tableschema.Storage` interface to write his own storage backend. Concrete storage backends could include additional functionality specific to conrete storage system. See `plugins` below to know how to integrate custom storage plugin into your workflow.\n\n#### `<>Storage(**options)`\n\nCreate tabular `storage`. Implementations should fully implement this interface to be compatible with the `Storage` API.\n\n- `options (dict)` - concrete storage options\n- `(exceptions.StorageError)` - raises on any error\n- `(Storage)` - returns `Storage` instance\n\n#### `storage.buckets`\n\nReturn list of storage bucket names. A `bucket` is a special term which has almost the same meaning as `table`. You should consider `bucket` as a `table` stored in the `storage`.\n\n- `(exceptions.StorageError)` - raises on any error\n- `str[]` - return list of bucket names\n\n#### `create(bucket, descriptor, force=False)`\n\nCreate one/multiple buckets.\n\n- `bucket (str/list)` - bucket name or list of bucket names\n- `descriptor (dict/dict[])` - schema descriptor or list of descriptors\n- `force (bool)` - whether to delete and re-create already existing buckets\n- `(exceptions.StorageError)` - raises on any error\n\n#### `delete(bucket=None, ignore=False)`\n\nDelete one/multiple/all buckets.\n\n- `bucket (str/list/None)` - bucket name or list of bucket names to delete. If `None`, all buckets will be deleted\n- `descriptor (dict/dict[])` - schema descriptor or list of descriptors\n- `ignore (bool)` - don't raise an error on non-existent bucket deletion from storage\n- `(exceptions.StorageError)` - raises on any error\n\n#### `describe(bucket, descriptor=None)`\n\nGet/set bucket's Table Schema descriptor.\n\n- `bucket (str)` - bucket name\n- `descriptor (dict/None)` - schema descriptor to set\n- `(exceptions.StorageError)` - raises on any error\n- `(dict)` - returns Table Schema descriptor\n\n#### `iter(bucket)`\n\nThis method should return an iterator of typed values based on the schema of this bucket.\n\n- `bucket (str)` - bucket name\n- `(exceptions.StorageError)` - raises on any error\n- `(list[])` - yields data rows\n\n#### `read(bucket)`\n\nThis method should read typed values based on the schema of this bucket.\n\n- `bucket (str)` - bucket name\n- `(exceptions.StorageError)` - raises on any error\n- `(list[])` - returns data rows\n\n#### `write(bucket, rows)`\n\nThis method writes data rows into `storage`. It should store values of unsupported types as strings internally (like csv does).\n\n- `bucket (str)` - bucket name\n- `rows (list[])` - data rows to write\n- `(exceptions.StorageError)` - raises on any error\n\n### Plugins\n\nTable Schema has a plugin system. Any package with the name like `tableschema_` can be imported as:\n\n```python\nfrom tableschema.plugins import \n```\n\nIf a plugin is not installed, an `ImportError` will be raised with a message describing how to install the plugin.\n\n#### Official plugins\n\n- [BigQuery Storage](https://github.com/frictionlessdata/tableschema-bigquery-py)\n- [Elasticsearch Storage](https://github.com/frictionlessdata/tableschema-elasticsearch-py)\n- [Pandas Storage](https://github.com/frictionlessdata/tableschema-pandas-py)\n- [SQL Storage](https://github.com/frictionlessdata/tableschema-sql-py)\n- [SPSS Storage](https://github.com/frictionlessdata/tableschema-spss-py)\n\n### CLI\n\n> It's a provisional API excluded from SemVer. If you use it as a part of another program please pin `tableschema` to a concrete version in your requirements file.\n\nTable Schema features a CLI called `tableschema`. This CLI exposes the `infer` and `validate` functions for command line use.\n\nExample of `validate` usage:\n\n```\n$ tableschema validate path/to-schema.json\n```\n\nExample of `infer` usage:\n\n```\n$ tableschema infer path/to/data.csv\n```\n\nThe response is a schema as JSON. The optional argument `--encoding` allows a character encoding to be specified for the data file. The default is utf-8.\n\n## Contributing\n\nThe project follows the [Open Knowledge International coding standards](https://github.com/okfn/coding-standards).\n\nThe recommended way to get started is to create and activate a project virtual environment.\nTo install package and development dependencies into your active environment:\n\n```\n$ make install\n```\n\nTo run tests with linting and coverage:\n\n```bash\n$ make test\n```\n\nFor linting, `pylama` (configured in `pylama.ini`) is used. At this stage it's already\ninstalled into your environment and could be used separately with more fine-grained control\nas described in documentation - https://pylama.readthedocs.io/en/latest/.\n\nFor example to sort results by error type:\n\n```bash\n$ pylama --sort \n```\n\nFor testing, `tox` (configured in `tox.ini`) is used.\nIt's already installed into your environment and could be used separately with more fine-grained control as described in documentation - https://testrun.org/tox/latest/.\n\nFor example to check subset of tests against Python 2 environment with increased verbosity.\nAll positional arguments and options after `--` will be passed to `py.test`:\n\n```bash\ntox -e py27 -- -v tests/\n```\n\nUnder the hood `tox` uses `pytest` (configured in `pytest.ini`), `coverage`\nand `mock` packages. These packages are available only in tox envionments.\n\n## Changelog\n\nHere described only breaking and the most important changes. The full changelog and documentation for all released versions can be found in the nicely formatted [commit history](https://github.com/frictionlessdata/tableschema-py/commits/master).\n\n#### v1.8\n\n- Added `table.index_foreign_keys_values` and improved foreign key checks performance\n\n#### v1.7\n\n- Added `field.schema` property\n\n#### v1.6\n\n- In `strict` mode raise an exception if there are problems in field construction\n\n#### v1.5\n\n- Allow providing custom guesser and resolver to schema infer\n\n#### v1.4\n\n- Added `schema.update_field` method\n\n#### v1.3\n\n- Support datetime with no time for date casting\n\n#### v1.2\n\n- Support floats like 1.0 for integer casting\n\n#### v1.1\n\n- Added the `confidence` parameter to `infer`\n\n#### v1.0\n\n- The library has been rebased on the Frictionless Data specs v1 - https://frictionlessdata.io/specs/table-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/tableschema-py", "keywords": "frictionless data,open data,json schema,table schema,data package,tabular data package", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "tableschema", "package_url": "https://pypi.org/project/tableschema/", "platform": "", "project_url": "https://pypi.org/project/tableschema/", "project_urls": { "Homepage": "https://github.com/frictionlessdata/tableschema-py" }, "release_url": "https://pypi.org/project/tableschema/1.8.0/", "requires_dist": [ "six (>=1.9)", "click (>=3.3)", "requests (>=2.5)", "python-dateutil (>=2.4)", "jsonschema (>=2.5)", "unicodecsv (>=0.14)", "isodate (>=0.5.4)", "rfc3986 (>=1.1.0)", "tabulator (>=1.20)", "mock ; extra == 'develop'", "pylama ; extra == 'develop'", "pytest ; extra == 'develop'", "pytest-cov ; extra == 'develop'", "tox ; extra == 'develop'" ], "requires_python": "", "summary": "A utility library for working with Table Schema in Python", "version": "1.8.0" }, "last_serial": 5950423, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "6356f037eabddca017dda4492f186546", "sha256": "527edd2034a7e13c04b344530f9d5b4309e45a303ee73bf7dc744bfe8ca1aeba" }, "downloads": -1, "filename": "tableschema-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6356f037eabddca017dda4492f186546", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 62371, "upload_time": "2017-09-04T09:41:34", "url": "https://files.pythonhosted.org/packages/a2/f1/4da4c6e0909c893286e9dad659c3147690f6bf3805666a6ca71b34a7281b/tableschema-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae263753cc152d58dfcbda52e5fdfd55", "sha256": "0472b12b228308d65a24a69296dba2afd1e2c2ab4c421b7b4e32a799280d9da1" }, "downloads": -1, "filename": "tableschema-1.0.0.tar.gz", "has_sig": false, "md5_digest": "ae263753cc152d58dfcbda52e5fdfd55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69435, "upload_time": "2017-09-04T09:41:35", "url": "https://files.pythonhosted.org/packages/c0/93/00749c33d31c15878aee6bd3da1504456caf79e800fc4704fa536e1e63b1/tableschema-1.0.0.tar.gz" } ], "1.0.0a10": [ { "comment_text": "", "digests": { "md5": "85c2c8f75f23cea1bd2cb33e47b58278", "sha256": "a11ceda69a3acb90101a8680946e2e02aea20eeab48ab6920da61c088adefbb3" }, "downloads": -1, "filename": "tableschema-1.0.0a10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "85c2c8f75f23cea1bd2cb33e47b58278", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 61484, "upload_time": "2017-08-22T07:27:55", "url": "https://files.pythonhosted.org/packages/66/f9/dacc3ed54d2e891e2aaeaba88808c103be669d1861b782e482650479fb65/tableschema-1.0.0a10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3cbb4083fd2df1219f0ef12efe39b38a", "sha256": "6dfbf745e404091d011611dcdf38cc3ee21fac9bd7014e3863daa77874077d05" }, "downloads": -1, "filename": "tableschema-1.0.0a10.tar.gz", "has_sig": false, "md5_digest": "3cbb4083fd2df1219f0ef12efe39b38a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68125, "upload_time": "2017-08-22T07:27:57", "url": "https://files.pythonhosted.org/packages/e5/fe/4b45d6733a915922617266b823faaea981fb09e530bc62c8dfb7f0552914/tableschema-1.0.0a10.tar.gz" } ], "1.0.0a11": [ { "comment_text": "", "digests": { "md5": "d656f1c434a2ce84748f64422af22bf8", "sha256": "0c90655e00026ec7f3e203453d8a85e1ca3db1c5fc88f6e2bfa4f8461d62cede" }, "downloads": -1, "filename": "tableschema-1.0.0a11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d656f1c434a2ce84748f64422af22bf8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 61414, "upload_time": "2017-08-22T08:22:05", "url": "https://files.pythonhosted.org/packages/73/ce/6859bb3a44322822be12aa623287c4c239f9415459d8ddccc9f893a91bd3/tableschema-1.0.0a11-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "13c3cb093b48073dca98754ec9fb9deb", "sha256": "49e6780c82bba42e23481ba61d6f66d63cb3b6f3461987a01b3ccca94b32c164" }, "downloads": -1, "filename": "tableschema-1.0.0a11.tar.gz", "has_sig": false, "md5_digest": "13c3cb093b48073dca98754ec9fb9deb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68573, "upload_time": "2017-08-22T08:22:06", "url": "https://files.pythonhosted.org/packages/85/8c/9558d7bec77816a027d08107d1e7f9c580c5174085a43835e02a151adefa/tableschema-1.0.0a11.tar.gz" } ], "1.0.0a12": [ { "comment_text": "", "digests": { "md5": "96027ae6a3d5085929beecc947a2bfe1", "sha256": "bbb701a2f73e6d06df8d6aa6357563680d4795560cc27d89da8aedf87dde6f33" }, "downloads": -1, "filename": "tableschema-1.0.0a12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "96027ae6a3d5085929beecc947a2bfe1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 61697, "upload_time": "2017-08-22T14:00:36", "url": "https://files.pythonhosted.org/packages/1a/33/d49edcf3e93f5125efb89a79450332afa5ed025fe859fc4517f2bed4a499/tableschema-1.0.0a12-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "517098ef58a7db8ce77ccac565e8d3bc", "sha256": "18b215d7059e87094bb32f36f0c62b380488788a975e99b005ca953c47700a12" }, "downloads": -1, "filename": "tableschema-1.0.0a12.tar.gz", "has_sig": false, "md5_digest": "517098ef58a7db8ce77ccac565e8d3bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68777, "upload_time": "2017-08-22T14:00:38", "url": "https://files.pythonhosted.org/packages/db/26/38cf9eca2ed1ae6e2846941d4bd922d44ca42a30254e778a8aa2f0e87395/tableschema-1.0.0a12.tar.gz" } ], "1.0.0a13": [ { "comment_text": "", "digests": { "md5": "c4d5067e69d65da094227feccabe5620", "sha256": "37db550b72fc073abb6b311050894dab10a1a2d3f765612941fa06965de5b5a2" }, "downloads": -1, "filename": "tableschema-1.0.0a13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c4d5067e69d65da094227feccabe5620", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 62444, "upload_time": "2017-08-29T13:22:34", "url": "https://files.pythonhosted.org/packages/c0/70/be78bd5a09ff30ab0c4fea90d8ed40b48cade00ccbd2b1f1c5df3c826df6/tableschema-1.0.0a13-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "67ce060b0eb9d9482ac48ad35680cf79", "sha256": "9c9f25d4db1fab3ee71f0235deddbe18705df83a2cbff67771a05cdade4e4385" }, "downloads": -1, "filename": "tableschema-1.0.0a13.tar.gz", "has_sig": false, "md5_digest": "67ce060b0eb9d9482ac48ad35680cf79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69638, "upload_time": "2017-08-29T13:22:36", "url": "https://files.pythonhosted.org/packages/49/54/a6b6290076dfb2c0dbbb9ec3b6693c25a9de6cb725c3d1c9b8a55ad5332d/tableschema-1.0.0a13.tar.gz" } ], "1.0.0a14": [ { "comment_text": "", "digests": { "md5": "a02744fd08cbfad79b45217349499e02", "sha256": "abf69cf98024f92497762ac38c458ba1ff20c6304539e3a1748afb8074593333" }, "downloads": -1, "filename": "tableschema-1.0.0a14-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a02744fd08cbfad79b45217349499e02", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 62432, "upload_time": "2017-08-31T19:25:49", "url": "https://files.pythonhosted.org/packages/9c/a0/de0d8e473c910a893ad7ac9a3201fb42e06aa2bab8cf356cde1536774d25/tableschema-1.0.0a14-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6efce7239d4786a5d1bf89e6ba945486", "sha256": "85ea093347a1db3729ef5dd97a7c41c43fec89a718adb085e10b34bb991376e9" }, "downloads": -1, "filename": "tableschema-1.0.0a14.tar.gz", "has_sig": false, "md5_digest": "6efce7239d4786a5d1bf89e6ba945486", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69674, "upload_time": "2017-08-31T19:25:51", "url": "https://files.pythonhosted.org/packages/d9/51/db4117a3f981d8436de929be1e6c076ed1e91ae1a8cde0d98a5f36fd35da/tableschema-1.0.0a14.tar.gz" } ], "1.0.0a3": [ { "comment_text": "", "digests": { "md5": "c57394825d3132d33a3e2333cbd255ee", "sha256": "a65b737fa0b1193ecfe41b6dc8675d1cea36149bc9071a29c1b1ad74660728c4" }, "downloads": -1, "filename": "tableschema-1.0.0a3.tar.gz", "has_sig": false, "md5_digest": "c57394825d3132d33a3e2333cbd255ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 122863, "upload_time": "2017-04-05T20:19:51", "url": "https://files.pythonhosted.org/packages/0f/2a/75d2da3563fbf817a8ceb53144328481345b205f7ad2eaa97892cd80b0ec/tableschema-1.0.0a3.tar.gz" } ], "1.0.0a4": [ { "comment_text": "", "digests": { "md5": "80c9137ea913eaeec52f0f61b2314aa9", "sha256": "902df50441fc61bf36af1378c1af1c05e7ec2d49a797ca48497fbc83ea13a683" }, "downloads": -1, "filename": "tableschema-1.0.0a4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "80c9137ea913eaeec52f0f61b2314aa9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 55137, "upload_time": "2017-04-11T08:30:22", "url": "https://files.pythonhosted.org/packages/66/ef/b6950d9267c56821c9247a2accb8250dd4c80faaffefc4af2e091fd11992/tableschema-1.0.0a4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ec5e5070cc8ce9c5ff019beca9269ba3", "sha256": "4c700346b01bd34c53ef24da0b649e5325ad4b57e329cd880ee14a8cfed357de" }, "downloads": -1, "filename": "tableschema-1.0.0a4.tar.gz", "has_sig": false, "md5_digest": "ec5e5070cc8ce9c5ff019beca9269ba3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35283, "upload_time": "2017-04-11T08:30:24", "url": "https://files.pythonhosted.org/packages/f6/8b/a518e76bfbb151ff52b4d4e33f4a332bb85c5c27f8d596824eced7c94247/tableschema-1.0.0a4.tar.gz" } ], "1.0.0a5": [ { "comment_text": "", "digests": { "md5": "a23d3dd91d82ca5ee75db07b16de3182", "sha256": "58436b4042c536f17541017d96b1001358450f402e9b0f90d3364b9581c2d121" }, "downloads": -1, "filename": "tableschema-1.0.0a5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a23d3dd91d82ca5ee75db07b16de3182", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 55139, "upload_time": "2017-05-25T08:12:18", "url": "https://files.pythonhosted.org/packages/14/d1/ac49f9515af40ce03cc764a80d882bb05ac22f7260262c618acf47eb1baa/tableschema-1.0.0a5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f2c8dd79f222dd33ca697d7e04f9696", "sha256": "891ff9b3ea4a01de7ef5f9608dd70929106836f9ef49706324040a2082cb7063" }, "downloads": -1, "filename": "tableschema-1.0.0a5.tar.gz", "has_sig": false, "md5_digest": "2f2c8dd79f222dd33ca697d7e04f9696", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35301, "upload_time": "2017-05-25T08:12:19", "url": "https://files.pythonhosted.org/packages/42/e5/89007e147c6eb80f85fba1b31ad476936eb404713f4f6a4943443e7d2c49/tableschema-1.0.0a5.tar.gz" } ], "1.0.0a7": [ { "comment_text": "", "digests": { "md5": "1cb5f99457a8347b2055257f1ea6a88f", "sha256": "cd014bf96be51a12eb0128612ed1516cca2d4a4ba0e4ec1bce3cd86766c166f0" }, "downloads": -1, "filename": "tableschema-1.0.0a7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1cb5f99457a8347b2055257f1ea6a88f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 55504, "upload_time": "2017-06-09T08:47:14", "url": "https://files.pythonhosted.org/packages/3a/d9/d77c2fed04f73b433e7426f68de23c8b1ab31bf70413a3ae42a800ae8087/tableschema-1.0.0a7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2107083501d81c20fbe313f68c3bc918", "sha256": "4feebf7e34a14531d4e3fbbc2dc82606b929a3efa17c695c5cbfc00a068c443a" }, "downloads": -1, "filename": "tableschema-1.0.0a7.tar.gz", "has_sig": false, "md5_digest": "2107083501d81c20fbe313f68c3bc918", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55780, "upload_time": "2017-06-09T08:47:16", "url": "https://files.pythonhosted.org/packages/63/70/2f9fc8691a1cafc2189b070c0b0823deaba998aa65be68670f7b061e2926/tableschema-1.0.0a7.tar.gz" } ], "1.0.0a8": [ { "comment_text": "", "digests": { "md5": "08400034b069f3cbb5499e434e6b1e1d", "sha256": "36025ae63ea076ba483b3ec76196f8893068a7d7837aa6ba9ba1a7f017966f08" }, "downloads": -1, "filename": "tableschema-1.0.0a8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "08400034b069f3cbb5499e434e6b1e1d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 55275, "upload_time": "2017-07-27T13:32:10", "url": "https://files.pythonhosted.org/packages/c6/42/c2775eb78025d4405cb20b4889d5f936e62bd02e24bed00349121379c70e/tableschema-1.0.0a8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c351fd167b8ab8f2a9011114ca9ef925", "sha256": "23585d907805d5c279d07fa938bf88d29973f2f22146f4dafa149df10015766b" }, "downloads": -1, "filename": "tableschema-1.0.0a8.tar.gz", "has_sig": false, "md5_digest": "c351fd167b8ab8f2a9011114ca9ef925", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56412, "upload_time": "2017-07-27T13:32:11", "url": "https://files.pythonhosted.org/packages/96/7a/fd984a3f11f764baf45c74396a55baeeaf46a08bbcbf959e0ddaf4814403/tableschema-1.0.0a8.tar.gz" } ], "1.0.0a9": [ { "comment_text": "", "digests": { "md5": "80a10104a4d35e37bf0eed5d10b98b79", "sha256": "6ab74db1ae68b4502e9874d31d631943a8591ab5884c88adbb4f10f31369df9d" }, "downloads": -1, "filename": "tableschema-1.0.0a9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "80a10104a4d35e37bf0eed5d10b98b79", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 61425, "upload_time": "2017-08-19T06:58:51", "url": "https://files.pythonhosted.org/packages/7c/d2/bf08ea930241bd7021980059a46fc34b439ccf2b8e47e435ba1e0fbebb50/tableschema-1.0.0a9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4db2c1767b3a29754e15e090132759f5", "sha256": "d0d6c6f1d0c3f293f6d1a2ac8d6ba311900aa40a78f916f104dbb6767612d68c" }, "downloads": -1, "filename": "tableschema-1.0.0a9.tar.gz", "has_sig": false, "md5_digest": "4db2c1767b3a29754e15e090132759f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67835, "upload_time": "2017-08-19T06:58:52", "url": "https://files.pythonhosted.org/packages/85/c0/6c4165ba12f10825d5dd55330849f841cc634c20b6d7726698160c2a1933/tableschema-1.0.0a9.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "74275b20471c2be9a5ab576b619ce8b9", "sha256": "6f93d5952349d76c9209ec4c0c61466a96a0898ea9a8847e78bc9ca52426c631" }, "downloads": -1, "filename": "tableschema-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "74275b20471c2be9a5ab576b619ce8b9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63157, "upload_time": "2017-09-07T13:49:50", "url": "https://files.pythonhosted.org/packages/90/ca/1dc6c24e2df73c3bcb21d472ecfa909f1a31faec576fee97ae29000b2834/tableschema-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1807968b1047cb0f681854266a129291", "sha256": "d162f475dd43771c5a72ee7433e83fe6904de0925e84d1856fa98351369762fd" }, "downloads": -1, "filename": "tableschema-1.0.1.tar.gz", "has_sig": false, "md5_digest": "1807968b1047cb0f681854266a129291", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 71123, "upload_time": "2017-09-07T13:49:51", "url": "https://files.pythonhosted.org/packages/17/29/f75b462f958b5e707d2a4c7f2afe81935d6424da84a9b0b01eee1f432568/tableschema-1.0.1.tar.gz" } ], "1.0.10": [ { "comment_text": "", "digests": { "md5": "6e2220fa66ac2445074c1670cf6120b9", "sha256": "0ad7d37e3d3ae97799f760de0215f605951e7b6e741caf152d655836ceed26d7" }, "downloads": -1, "filename": "tableschema-1.0.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6e2220fa66ac2445074c1670cf6120b9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 64218, "upload_time": "2017-11-20T10:01:24", "url": "https://files.pythonhosted.org/packages/2d/a6/c66d53b33565d5b3e2080baefd817df6a78af924f09273386baf4dbf3a31/tableschema-1.0.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "454d361a585b00f577c8a0a321430fc0", "sha256": "de1c568324bd2d1792a003e9cce1289a0307c4110459e4cd451c7da937511fab" }, "downloads": -1, "filename": "tableschema-1.0.10.tar.gz", "has_sig": false, "md5_digest": "454d361a585b00f577c8a0a321430fc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70361, "upload_time": "2017-11-20T10:01:27", "url": "https://files.pythonhosted.org/packages/f9/da/26cd3fbd02f3d846fb5058b867f8afa52faf0a318229f4d1e86aa50f51ba/tableschema-1.0.10.tar.gz" } ], "1.0.11": [ { "comment_text": "", "digests": { "md5": "b337b322379d1da63a61c51c78c71898", "sha256": "d4d58c0b0c91ea3bce3435f95136e52304bb112cbc842be74938feaf19daccb2" }, "downloads": -1, "filename": "tableschema-1.0.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b337b322379d1da63a61c51c78c71898", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 64078, "upload_time": "2017-12-20T13:47:30", "url": "https://files.pythonhosted.org/packages/21/79/2757cd6c0d0d0b37047bc962833cd3c81efc2f4eb2b2c93f5ba4f06eacfb/tableschema-1.0.11-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "faebba26363a974a7c4a5266bb3ee7e8", "sha256": "508662166446cb9d7c09a8a311379fc3bf81ee58b62b239fc73706b21c39be90" }, "downloads": -1, "filename": "tableschema-1.0.11.tar.gz", "has_sig": false, "md5_digest": "faebba26363a974a7c4a5266bb3ee7e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69005, "upload_time": "2017-12-20T13:47:32", "url": "https://files.pythonhosted.org/packages/4c/ca/38b2976b7081ddd6afc464c7ff682620904830c5cf18b314900258244b63/tableschema-1.0.11.tar.gz" } ], "1.0.12": [ { "comment_text": "", "digests": { "md5": "0572ed67d143e87a60ab5e9460a2194a", "sha256": "1810e94f36a95d5119695a697bf27d0cc8c33d7f1f10b4e6343d1c1f92c549c8" }, "downloads": -1, "filename": "tableschema-1.0.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0572ed67d143e87a60ab5e9460a2194a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 64127, "upload_time": "2018-02-20T10:16:44", "url": "https://files.pythonhosted.org/packages/2c/52/452b46eb8a115397b28094bf075642f5456dd19aabb4d9f6f2cd867bc93d/tableschema-1.0.12-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ce132446edf66a70bf29bc201b9de3ce", "sha256": "eceb2c2fc9d1977a87c1d394fd4c4d41253b72947b9940c2e33841d197cda90a" }, "downloads": -1, "filename": "tableschema-1.0.12.tar.gz", "has_sig": false, "md5_digest": "ce132446edf66a70bf29bc201b9de3ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69596, "upload_time": "2018-02-20T10:16:45", "url": "https://files.pythonhosted.org/packages/68/16/c55f2f62c88013923aef7a74f19b1244a1858c01e26e0ff83a85544509c6/tableschema-1.0.12.tar.gz" } ], "1.0.13": [ { "comment_text": "", "digests": { "md5": "b65373ac2bc30e3803c085c8c80f862f", "sha256": "9b2b7c3e029806526d4904231548b24c4902c567361bff679e0b9066913f9404" }, "downloads": -1, "filename": "tableschema-1.0.13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b65373ac2bc30e3803c085c8c80f862f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 54489, "upload_time": "2018-04-12T08:30:45", "url": "https://files.pythonhosted.org/packages/7b/1a/89fa57536721022143dd9cb30ccb9461b6545e7c8e17b1e73323722e4503/tableschema-1.0.13-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9b610481f174f75ba783be4d4416fea", "sha256": "ffe988396d7dc97a95bf75e2c7a553c9396d459e0f36937b48604dc277de45d0" }, "downloads": -1, "filename": "tableschema-1.0.13.tar.gz", "has_sig": false, "md5_digest": "f9b610481f174f75ba783be4d4416fea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 66341, "upload_time": "2018-04-12T08:30:47", "url": "https://files.pythonhosted.org/packages/48/a2/5bb1a985e6b9def3af5e4cf3a523d46baa5adff77820a656af8fedf1d942/tableschema-1.0.13.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "d3425769fa977d8ef4c85750acb903a9", "sha256": "f99e7aac641ffde81fe44d53d0662ae9708954b497828612e8f7fd1b8570a997" }, "downloads": -1, "filename": "tableschema-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d3425769fa977d8ef4c85750acb903a9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63281, "upload_time": "2017-09-18T08:44:05", "url": "https://files.pythonhosted.org/packages/d4/66/e6ac2057b6008c24b4cd2dfffb97476071f65e95503b32ebeab38d0f4de2/tableschema-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c84c1cef1db85747f98b8c0813f701ee", "sha256": "b5f6de549936b688df42525672bbd997f81140f5caf343b84356863c06fbb07f" }, "downloads": -1, "filename": "tableschema-1.0.2.tar.gz", "has_sig": false, "md5_digest": "c84c1cef1db85747f98b8c0813f701ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69149, "upload_time": "2017-09-18T08:44:06", "url": "https://files.pythonhosted.org/packages/9f/8a/33102a401381ec24e4e27a0efe1eeabfebbc15cb4c480378878b12ecc7c5/tableschema-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "bb7e10584b89d1b8e0066c596b3d8cb6", "sha256": "89087e2e2c0b08dbb4472ec2d1a00ae7ad0119fa08494e5a9760413ec1b11722" }, "downloads": -1, "filename": "tableschema-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bb7e10584b89d1b8e0066c596b3d8cb6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63432, "upload_time": "2017-09-20T16:10:42", "url": "https://files.pythonhosted.org/packages/83/e0/6e7b2142f75897462cb43c85f93a89ac707efbdbebfca83f506f8499dce9/tableschema-1.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ceffda7d072a64118fe11ff4965677a8", "sha256": "1f451e18d40aaa46c89aee6833981c2b1e675484a9840a556d045a64c51211ff" }, "downloads": -1, "filename": "tableschema-1.0.3.tar.gz", "has_sig": false, "md5_digest": "ceffda7d072a64118fe11ff4965677a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69269, "upload_time": "2017-09-20T16:10:44", "url": "https://files.pythonhosted.org/packages/5a/e7/b4caf41f0784cffa09e38c42d7626c9e95a3cd61bd8c15dff99341cead5d/tableschema-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "2e296ff79bdb8608aa70dac1cabe1e36", "sha256": "e176149ae80fbf09e71ad06de7ad98fed0e0f90340a57ab86ad3f20cd85c992d" }, "downloads": -1, "filename": "tableschema-1.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2e296ff79bdb8608aa70dac1cabe1e36", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63458, "upload_time": "2017-09-27T08:27:25", "url": "https://files.pythonhosted.org/packages/df/09/6d4f665220eecf775dd19cb95efb1d27e3cc89f1db9bd5832915012d6ab1/tableschema-1.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f6ec44bf22f79430c6800315098536e", "sha256": "26f004ee9ccf36c98450147448adb0024503bcb633b3c228de0fbcdbbcee18dd" }, "downloads": -1, "filename": "tableschema-1.0.4.tar.gz", "has_sig": false, "md5_digest": "0f6ec44bf22f79430c6800315098536e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69155, "upload_time": "2017-09-27T08:27:27", "url": "https://files.pythonhosted.org/packages/32/b6/0bc27b3a767e44fac42f97cb02a0795d39d569f4c53813bd6c6545b06c70/tableschema-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "26fa3aa01582a687d1639e5a110e7de5", "sha256": "ce3cecf3670cf57dd81d40a94a217ec79c2e252c5bc211391e8a2267dbc608b3" }, "downloads": -1, "filename": "tableschema-1.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "26fa3aa01582a687d1639e5a110e7de5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63763, "upload_time": "2017-09-30T09:28:43", "url": "https://files.pythonhosted.org/packages/e6/63/1d6779a2728bdf47bf160cfc262eb37bc051f6a6542f860607a6275a3c7a/tableschema-1.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "377abd506506c7c13c7e85fb813faa83", "sha256": "b629fd0e2ce5677480029040a80172af1cfc645bb89c716ecfb84ae852b1ff06" }, "downloads": -1, "filename": "tableschema-1.0.5.tar.gz", "has_sig": false, "md5_digest": "377abd506506c7c13c7e85fb813faa83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69631, "upload_time": "2017-09-30T09:28:45", "url": "https://files.pythonhosted.org/packages/49/2d/247cbc6cbb5e350e6343ffade9336da6fc23b9c38b8697c9eccc580f12ef/tableschema-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "2036738d3fcf1290f37f7843f52175b6", "sha256": "94a9ee039fcd16980a15e32f22978358ca22086d2584a70254cb5f6d1c74ea5f" }, "downloads": -1, "filename": "tableschema-1.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2036738d3fcf1290f37f7843f52175b6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63900, "upload_time": "2017-09-30T10:09:50", "url": "https://files.pythonhosted.org/packages/17/75/a570d3ec1097c3c4978f7b5fb4b5f1932d4ed520b230f8b0fcf0bcf60f39/tableschema-1.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1746b046ba7eef396e4632790adfbc46", "sha256": "b1da7894cf756221b4647945438bfbf6d78f63bfb94b2478ae93272a5a23fabe" }, "downloads": -1, "filename": "tableschema-1.0.6.tar.gz", "has_sig": false, "md5_digest": "1746b046ba7eef396e4632790adfbc46", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69810, "upload_time": "2017-09-30T10:09:54", "url": "https://files.pythonhosted.org/packages/27/c7/c4ef0ab11d427ca1aa83a5d3f429b4f5cbe63ef9d44c35a5a00ba00d8be2/tableschema-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "6863c051419716e0559c2e7dddc40003", "sha256": "481c914041349430d2120d64828f7ce6f832d35e3d154702ddc215cd8ac0531a" }, "downloads": -1, "filename": "tableschema-1.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6863c051419716e0559c2e7dddc40003", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63895, "upload_time": "2017-09-30T13:45:14", "url": "https://files.pythonhosted.org/packages/9a/97/51576529579c67e6192fd1436a0e7f63d94cffbc8da011c0552ab1c0a430/tableschema-1.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "016938549de555bcd8fc3b0bee1c1530", "sha256": "388693cf904d43f98d58b55b7acb1579b5afac7686a521aeea0b3e65a61886dd" }, "downloads": -1, "filename": "tableschema-1.0.7.tar.gz", "has_sig": false, "md5_digest": "016938549de555bcd8fc3b0bee1c1530", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69375, "upload_time": "2017-09-30T13:45:17", "url": "https://files.pythonhosted.org/packages/80/4c/687e6cd8fe07d6513717f2e2d54d56444c477ccce1a6a748fc898f0c2500/tableschema-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "d5f3e7ad9de65da7a0e8d3ae64ef113f", "sha256": "ba11b433be57c7f8e33a6ee679a9238b744f19b59eb838d10022d48abfdff37b" }, "downloads": -1, "filename": "tableschema-1.0.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d5f3e7ad9de65da7a0e8d3ae64ef113f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63884, "upload_time": "2017-10-01T06:38:54", "url": "https://files.pythonhosted.org/packages/a8/08/11f665094cd56a59676b617354d7f43c18de7b73abe213cdd9af0f2cce26/tableschema-1.0.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f629055e86b92c7daa416acb6298dc8d", "sha256": "5be2af69a9554d63b0eda5a5cd1fa030dbd205b3376e6b6da473c97bb14be2e5" }, "downloads": -1, "filename": "tableschema-1.0.8.tar.gz", "has_sig": false, "md5_digest": "f629055e86b92c7daa416acb6298dc8d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69778, "upload_time": "2017-10-01T06:38:56", "url": "https://files.pythonhosted.org/packages/34/60/913bec05204c3d17ff136164e73f13012e204fa8fecf6158880821d7badd/tableschema-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "d6e6f398f5fb956de2cc6deeb7207ad4", "sha256": "0ddfab2c1eb773180fa5c2d40fe3761cd772c569b13ac054a7a89669c4bdbec2" }, "downloads": -1, "filename": "tableschema-1.0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d6e6f398f5fb956de2cc6deeb7207ad4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63994, "upload_time": "2017-11-20T07:44:46", "url": "https://files.pythonhosted.org/packages/eb/02/ce4737ca68e5236c14d69106ed32bc768ce3b8de9de62da7bd2e47dac741/tableschema-1.0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1b7e51512b9ccb0b8a5aedf41a8d5df0", "sha256": "3e72e26a95400225eadf9b863f1bb835d8705d03252bf20dc27e1ad26da60d48" }, "downloads": -1, "filename": "tableschema-1.0.9.tar.gz", "has_sig": false, "md5_digest": "1b7e51512b9ccb0b8a5aedf41a8d5df0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70119, "upload_time": "2017-11-20T07:44:48", "url": "https://files.pythonhosted.org/packages/6e/9e/4b65e5a13c3def43504f278542a5d061d1c11a2f3b96e1ac7ab23641181b/tableschema-1.0.9.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "280cc8ae6d58953a2fbd7a51064bc993", "sha256": "67552d43f49cb02e7b16522b34ffe7effd071137ac81b4e8060eeb7cdc3c599d" }, "downloads": -1, "filename": "tableschema-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "280cc8ae6d58953a2fbd7a51064bc993", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 54738, "upload_time": "2018-05-29T08:57:19", "url": "https://files.pythonhosted.org/packages/d3/ce/1896526696bbf991c33c7198322fb4e39c80bd78a825a3da36e00b588d67/tableschema-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "21d920904cd039678750d65691ed9f15", "sha256": "4b68da205780b76b2856470bf3603b7ace97bc7b0ed02337429d78c9bb448b13" }, "downloads": -1, "filename": "tableschema-1.1.0.tar.gz", "has_sig": false, "md5_digest": "21d920904cd039678750d65691ed9f15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64978, "upload_time": "2018-05-29T08:57:20", "url": "https://files.pythonhosted.org/packages/33/f0/9d723e9d3f4ed63d59ca820a479da6eaf8bd3137b1e665f1d298f3a15208/tableschema-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "cb237b1a44c2fd81927f80be0cbeb2ee", "sha256": "22b286dd25870d6a9cab1f7e08af6ffc9cf33f96dcd95d4bb5b68fb77142aeee" }, "downloads": -1, "filename": "tableschema-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cb237b1a44c2fd81927f80be0cbeb2ee", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 54830, "upload_time": "2018-08-16T08:13:35", "url": "https://files.pythonhosted.org/packages/2a/90/3682205687baf3b47c467db04350c03070c1af877c183680d1abc5e9f8cd/tableschema-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1590e947965dd613cfe960fcf1c542f1", "sha256": "e53d850a9655d8320393ba6ccef18cf293e89860cc65988bdf8abb2ba2a1de80" }, "downloads": -1, "filename": "tableschema-1.2.0.tar.gz", "has_sig": false, "md5_digest": "1590e947965dd613cfe960fcf1c542f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64590, "upload_time": "2018-08-16T08:13:36", "url": "https://files.pythonhosted.org/packages/aa/4f/2dcfda2f7ad2b5cc2a2d8b44b699157e41aa889e3a46b1fc894dd9e6ec90/tableschema-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "068896ee6bd166fcffa55c8990274bc4", "sha256": "1ee1a85c086090fa2c32ccbaa159a6c408044b9a4e3dc98d2bcb9750c9d6ecca" }, "downloads": -1, "filename": "tableschema-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "068896ee6bd166fcffa55c8990274bc4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 54860, "upload_time": "2018-09-12T09:13:56", "url": "https://files.pythonhosted.org/packages/a0/e0/ec58dcf16e76189c4bf2d772d630a0074d7f36e24185b0a57a6813ad9793/tableschema-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d6754d970235733c4f7b9dacc8b08a71", "sha256": "93cdfe69953e7e435a0a831f390c27611fe6e0e204f196b6254dc9f9e8093e60" }, "downloads": -1, "filename": "tableschema-1.2.1.tar.gz", "has_sig": false, "md5_digest": "d6754d970235733c4f7b9dacc8b08a71", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62622, "upload_time": "2018-09-12T09:13:57", "url": "https://files.pythonhosted.org/packages/e0/86/e09e56618cffe2b48bd381490c79ffc45a196893e5de0bbc84b45053cc12/tableschema-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "c6fb3fb814dcc1fe7673498e1edc74ba", "sha256": "1336591abd48591ae13ac5f06d94dbd8a61c9bb58416a8f3ea9376684af3b83f" }, "downloads": -1, "filename": "tableschema-1.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c6fb3fb814dcc1fe7673498e1edc74ba", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 54885, "upload_time": "2018-09-19T07:46:18", "url": "https://files.pythonhosted.org/packages/3f/e1/96bcbaec2dbf78717372a404c4e24733a7a35245bbfe95cd195d0d537fc6/tableschema-1.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "06da5ac73cd91d77b06a16844ecd0c71", "sha256": "fd5b2f665425b6e77c4ab888b7af3ca7767006d223cd6d7059cf1c1e3a8c6c1f" }, "downloads": -1, "filename": "tableschema-1.2.2.tar.gz", "has_sig": false, "md5_digest": "06da5ac73cd91d77b06a16844ecd0c71", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62620, "upload_time": "2018-09-19T07:46:20", "url": "https://files.pythonhosted.org/packages/85/25/8b77784b7a9872225da626cc2982dfb161cac4e4cf8a4c07b1221df129de/tableschema-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "16c4876fd2a7257f9fd27b64fb2d2b15", "sha256": "87210f568f0cf55dc7f2ff0f31eec5e8e3f72071019bd9ae434a4f8770911806" }, "downloads": -1, "filename": "tableschema-1.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "16c4876fd2a7257f9fd27b64fb2d2b15", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 55708, "upload_time": "2018-10-08T07:27:10", "url": "https://files.pythonhosted.org/packages/14/4d/058dc3cac1cc94cb9f236987e880e243cc365738d8d7ac19464712f7f32d/tableschema-1.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "577917029205b3f4bf6e94b58b48e907", "sha256": "cd709900a3f024ec121239aed569a6df0a2a48dfc9498b86112813066de54f81" }, "downloads": -1, "filename": "tableschema-1.2.3.tar.gz", "has_sig": false, "md5_digest": "577917029205b3f4bf6e94b58b48e907", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64131, "upload_time": "2018-10-08T07:27:11", "url": "https://files.pythonhosted.org/packages/9c/59/6248c796ed268c35efb55d9ade9651072d3cdc96f1b4320259e335ed8722/tableschema-1.2.3.tar.gz" } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "a28dbfb4bf5a41d175f79086b5a07418", "sha256": "4677cfc996178a1d8716d6774caf53d7cb64f457096dd0fa3029c78de1950dc4" }, "downloads": -1, "filename": "tableschema-1.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a28dbfb4bf5a41d175f79086b5a07418", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 55732, "upload_time": "2018-10-09T08:30:25", "url": "https://files.pythonhosted.org/packages/ab/03/79439df1baef00ef00ee3f2896d8015ea3f958a7286ff0a299311b4d180b/tableschema-1.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f12cccd8a5bba4ae4578b9977b677a9f", "sha256": "cad0ea9f17ece36a65f53d0f063421dc231a3efc4239c342b5574628f6bc1013" }, "downloads": -1, "filename": "tableschema-1.2.4.tar.gz", "has_sig": false, "md5_digest": "f12cccd8a5bba4ae4578b9977b677a9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64159, "upload_time": "2018-10-09T08:30:27", "url": "https://files.pythonhosted.org/packages/66/1e/f3ebc0005afa33e7aae2bc3c279aad9537c24ed98e91b57360a5aa6f3c4c/tableschema-1.2.4.tar.gz" } ], "1.2.5": [ { "comment_text": "", "digests": { "md5": "5d90c493a3041f79306e5af614dc0337", "sha256": "139d26d3285451e106c8d16696942db5a7a17da533d9e79e62d2824abddd1a9f" }, "downloads": -1, "filename": "tableschema-1.2.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5d90c493a3041f79306e5af614dc0337", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 55754, "upload_time": "2018-10-18T09:22:29", "url": "https://files.pythonhosted.org/packages/28/29/2fd3744510a745bee4735bd34cb44f9a0cc02e646d929a40aa5b2f8b85d8/tableschema-1.2.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7acf05691e0b9ae3a28c1fc131fb55bf", "sha256": "747b1b13932764d6b9289ed12cb890abe7170703fae1a3e0e5b55f897d8b547a" }, "downloads": -1, "filename": "tableschema-1.2.5.tar.gz", "has_sig": false, "md5_digest": "7acf05691e0b9ae3a28c1fc131fb55bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64029, "upload_time": "2018-10-18T09:22:30", "url": "https://files.pythonhosted.org/packages/a3/ab/088ef5e0f006ac2a70ae45fb7ce246253b6e0581fd47730a5fa671f14214/tableschema-1.2.5.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "76255fdb9b5be7cedbe334368dbd12ee", "sha256": "68c7af20c7977dc895fd3b29c5eae36c5c89c203eba904e15197ef2a946b27a8" }, "downloads": -1, "filename": "tableschema-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "76255fdb9b5be7cedbe334368dbd12ee", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 55887, "upload_time": "2018-11-26T16:05:23", "url": "https://files.pythonhosted.org/packages/64/d1/8829af4dd2014026df1ec21fa6db8d4c0a680d8c29386525b01028b0161e/tableschema-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4871f4d4d31a651640d56e0e0fc6b3b2", "sha256": "54547982fd402a65e67829aa768b3a1abd7d8eb3a3ea8ae3817075e0cfd100d9" }, "downloads": -1, "filename": "tableschema-1.3.0.tar.gz", "has_sig": false, "md5_digest": "4871f4d4d31a651640d56e0e0fc6b3b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63291, "upload_time": "2018-11-26T16:05:25", "url": "https://files.pythonhosted.org/packages/a8/56/6d99b5836371aeafd18e9b4c4c5aba56dbefa71fde4326ad5eb494918a57/tableschema-1.3.0.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "831c90216ab2eae1d158a06f5e5a78d7", "sha256": "eb581d24ec02cb5854816a5a6124e956c82da3e040738534624266df106fb692" }, "downloads": -1, "filename": "tableschema-1.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "831c90216ab2eae1d158a06f5e5a78d7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 55955, "upload_time": "2019-03-25T15:10:37", "url": "https://files.pythonhosted.org/packages/47/95/fc7e51f8f2c1d74b1b4739def22c3ca35f9f1d8cdb27eaba149fb3a86094/tableschema-1.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2e9d53c6caef259d3b825592397a708", "sha256": "27e88588deb7ed6bbfbb4d98e31db8ca7e3fd6ad487521b119831e7b0aca4a60" }, "downloads": -1, "filename": "tableschema-1.3.1.tar.gz", "has_sig": false, "md5_digest": "c2e9d53c6caef259d3b825592397a708", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63443, "upload_time": "2019-03-25T15:10:48", "url": "https://files.pythonhosted.org/packages/6b/41/39459aa3ccff3eb687b4d34d01b4585fd8dfeea9775a88fe159167a2a46c/tableschema-1.3.1.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "e77875c9342a2b731a5660dc7a5263ee", "sha256": "0bf6b879e94f370d0a6c2d31dcc6621547b73e8d87a0653cea7eca1d0da522c2" }, "downloads": -1, "filename": "tableschema-1.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e77875c9342a2b731a5660dc7a5263ee", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 55969, "upload_time": "2019-03-25T16:06:15", "url": "https://files.pythonhosted.org/packages/aa/84/5b098aed454c7f4fa95673ddbbfa1ef47a29187f791a8e4a11566c34f45e/tableschema-1.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ff8762549a0b907dd884c27fe4e630af", "sha256": "77a7588703a4d9bfffad2d2d72cda0b628e675f0b7f2fbbc92ee8f2cb29a3bb3" }, "downloads": -1, "filename": "tableschema-1.3.2.tar.gz", "has_sig": false, "md5_digest": "ff8762549a0b907dd884c27fe4e630af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62003, "upload_time": "2019-03-25T16:06:17", "url": "https://files.pythonhosted.org/packages/e0/de/56a081fe69da6316efab3c27b44fc83d92dc060d7a26a336bdc0b792961f/tableschema-1.3.2.tar.gz" } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "1dc24223ec9c291715f6fe076f7b320e", "sha256": "61593fd474aabe62ee7dcf8f530ad70e28929b75da9822404af7e49fb5f26abe" }, "downloads": -1, "filename": "tableschema-1.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1dc24223ec9c291715f6fe076f7b320e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 55977, "upload_time": "2019-03-25T16:13:51", "url": "https://files.pythonhosted.org/packages/82/09/b5a0dd6c8d393f2099afeb899579ad87b09ef24bdb8e21440bda9017ad4e/tableschema-1.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d0fa228fbd654b41f72caa368a1c013f", "sha256": "e1b05602fe2b4b7fa162f993c2fcc859506a0f68c316c82293a303e6f3a26024" }, "downloads": -1, "filename": "tableschema-1.3.3.tar.gz", "has_sig": false, "md5_digest": "d0fa228fbd654b41f72caa368a1c013f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63559, "upload_time": "2019-03-25T16:13:52", "url": "https://files.pythonhosted.org/packages/20/06/9fe1da7f5b495bd54bead9cc94025fcdaf22d2b525568e785835cdfe1751/tableschema-1.3.3.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "5392979a4e02c8b356b02b2955735afb", "sha256": "5ef4284b6e8d1639d182c85f03284ed874584244f320d46c74250c9f23ca65d2" }, "downloads": -1, "filename": "tableschema-1.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5392979a4e02c8b356b02b2955735afb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56254, "upload_time": "2019-04-11T12:29:01", "url": "https://files.pythonhosted.org/packages/6f/3a/6451e3adabadb5875829ce31a618567aa1488e493e810868fe31e29a0d97/tableschema-1.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d84cc9d9cc58f5dbbb103b33d9fd834e", "sha256": "cb52928b8a3546f1846039239b6d2e6ef3219456fdfc3b3b4069d5f349e89482" }, "downloads": -1, "filename": "tableschema-1.4.0.tar.gz", "has_sig": false, "md5_digest": "d84cc9d9cc58f5dbbb103b33d9fd834e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64324, "upload_time": "2019-04-11T12:29:03", "url": "https://files.pythonhosted.org/packages/4f/d4/2e66c7a55212c53737e328b238bc7c30549eb555cb72b24afd56f2be397c/tableschema-1.4.0.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "a80e574a3b12946e6ca29f52683f013a", "sha256": "6caeea25f6411e71f031723122aa3acca7b48d5118411a3c1eeba9c0d99397b5" }, "downloads": -1, "filename": "tableschema-1.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a80e574a3b12946e6ca29f52683f013a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56242, "upload_time": "2019-04-17T11:39:37", "url": "https://files.pythonhosted.org/packages/7e/64/412d92b24caa0cf2a4e95105995839f5d7ec9c0f613709bd01d70af289e6/tableschema-1.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ec27f9640f797d0871b4c3a405cdad2", "sha256": "01ec3ad0ade5cb71218b067a55455acd6784d10b3f30a0feba3c27bf5942030c" }, "downloads": -1, "filename": "tableschema-1.4.1.tar.gz", "has_sig": false, "md5_digest": "1ec27f9640f797d0871b4c3a405cdad2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63259, "upload_time": "2019-04-17T11:39:38", "url": "https://files.pythonhosted.org/packages/72/1c/59cfd2c07c66b7469200f0dd22023882a531d7ff402581e330d0cbfe12a6/tableschema-1.4.1.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "4a844c18ebf9634a137d44caee9aaff3", "sha256": "48ba3abbf61d7ae218e528deea2e986cef6794bdda657346baa8747cb6cd0cb8" }, "downloads": -1, "filename": "tableschema-1.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4a844c18ebf9634a137d44caee9aaff3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56378, "upload_time": "2019-05-23T06:22:00", "url": "https://files.pythonhosted.org/packages/be/25/9fd3060ef918beaf5e4004937739d42f50556c9b8c42a440b53be04307d5/tableschema-1.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "865d632f570f5082150852441d985c12", "sha256": "c20f52f7cbcf598aca5da644891d177378b4e703bef5fe7ca0962b8f5c97a0ec" }, "downloads": -1, "filename": "tableschema-1.5.0.tar.gz", "has_sig": false, "md5_digest": "865d632f570f5082150852441d985c12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65246, "upload_time": "2019-05-23T06:22:03", "url": "https://files.pythonhosted.org/packages/aa/1b/e05ab602a7d17e3d13e3a3944f2ed1de1b62ebe4bdcb8413ee515d740db1/tableschema-1.5.0.tar.gz" } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "4dca43dfbe00f9dca26050c4e607c6c5", "sha256": "20d58c85a2eff942b3a28a666d8a824e689d754af6e31063f9ffd3a26ff62a91" }, "downloads": -1, "filename": "tableschema-1.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4dca43dfbe00f9dca26050c4e607c6c5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56395, "upload_time": "2019-06-06T11:11:09", "url": "https://files.pythonhosted.org/packages/e5/fb/91dc316ed5e576cc9aa833f0f2867f5117ac4992027c88970a85b0e5c11b/tableschema-1.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "48d6770884560b5550d595f329386c37", "sha256": "7c95dd4cafcff39a554e25d3802cc91efd4c52e83bf71629d3303c73a5f27d84" }, "downloads": -1, "filename": "tableschema-1.5.1.tar.gz", "has_sig": false, "md5_digest": "48d6770884560b5550d595f329386c37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65639, "upload_time": "2019-06-06T11:11:12", "url": "https://files.pythonhosted.org/packages/05/78/80a1f9e9af2699383fdd45dd2e5fd2b423a005e197fe4f507ad34bae9905/tableschema-1.5.1.tar.gz" } ], "1.5.2": [ { "comment_text": "", "digests": { "md5": "5b7941124e80d69b10fbe03c764c6dd7", "sha256": "b8d87a803fca596479d377f5c4e0b4367d50e11e6158748a82e6117c9658862c" }, "downloads": -1, "filename": "tableschema-1.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5b7941124e80d69b10fbe03c764c6dd7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56399, "upload_time": "2019-06-10T07:15:58", "url": "https://files.pythonhosted.org/packages/1c/4e/480edcdc938ff56b2c67b36e5295c0871759b9a2544321493e05a608436f/tableschema-1.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a814114374b7fef37252cc7d7affebc5", "sha256": "50532bf25fdfe4e7d031a3da5b5e404bfb6b7eff0a17220262bc931dd22c4480" }, "downloads": -1, "filename": "tableschema-1.5.2.tar.gz", "has_sig": false, "md5_digest": "a814114374b7fef37252cc7d7affebc5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65656, "upload_time": "2019-06-10T07:16:00", "url": "https://files.pythonhosted.org/packages/62/47/0346c6d63c80eff704ebb7a9922d112aa9f6bd351bed3dfbf30137b8be75/tableschema-1.5.2.tar.gz" } ], "1.5.3": [ { "comment_text": "", "digests": { "md5": "72c8c07e020ee569e3002fd68331e281", "sha256": "7fdecb023fbbaa59c2eaca881c86944022a711a8db943b1bfa38b3595ab58478" }, "downloads": -1, "filename": "tableschema-1.5.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "72c8c07e020ee569e3002fd68331e281", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56401, "upload_time": "2019-06-23T12:28:08", "url": "https://files.pythonhosted.org/packages/a1/55/36de5a9c3cf6f615ddfcec5fc1b99dac393f09351ac2ffa4b18c9fbeb36b/tableschema-1.5.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "725b06dedb9f6bceef2310c754f40f61", "sha256": "1e5000a8aad6a52b54f3c84804ccaabfda6d1c28759a7c5d0ad45148959467ab" }, "downloads": -1, "filename": "tableschema-1.5.3.tar.gz", "has_sig": false, "md5_digest": "725b06dedb9f6bceef2310c754f40f61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65236, "upload_time": "2019-06-23T12:28:10", "url": "https://files.pythonhosted.org/packages/b7/eb/e18fe7ec1041327116d146b3a0a168f755956008d68a17ac5ddf21544e57/tableschema-1.5.3.tar.gz" } ], "1.5.4": [ { "comment_text": "", "digests": { "md5": "8fcfc47ccf4b662ddbd5c5f9ffcc1490", "sha256": "bef3d2b4a34e03953d8933c4b25f7b854e944373581e59d4e67f6c2ae6f83f8e" }, "downloads": -1, "filename": "tableschema-1.5.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8fcfc47ccf4b662ddbd5c5f9ffcc1490", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56431, "upload_time": "2019-06-28T13:09:50", "url": "https://files.pythonhosted.org/packages/6d/9b/54d2d01f5338b790bb6e3d8c951163f319d38b0cdcb99ae7bffa367ced7d/tableschema-1.5.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c82f2a9b6d4904269042eb5ff97c594c", "sha256": "73c718e78b398c6f4c2fc56ec9ab19c8c56a06e8fff3237e2e584ec94b7d752c" }, "downloads": -1, "filename": "tableschema-1.5.4.tar.gz", "has_sig": false, "md5_digest": "c82f2a9b6d4904269042eb5ff97c594c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65240, "upload_time": "2019-06-28T13:09:52", "url": "https://files.pythonhosted.org/packages/70/9b/33d27c56d5653bda4aabcd6045097d13a3ca6a8ba5124f988ba5927ea103/tableschema-1.5.4.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "00dc1c30b9656300d28f3851d7f7f374", "sha256": "04975fa0fa7c5d817417764b11231db06cedb798fdf1f35845b5926da197a0d8" }, "downloads": -1, "filename": "tableschema-1.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "00dc1c30b9656300d28f3851d7f7f374", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56482, "upload_time": "2019-07-08T06:41:15", "url": "https://files.pythonhosted.org/packages/71/8e/0788131b048fbb8b19dc94e60d40797f397c1feae905d3e27e3171a0520e/tableschema-1.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b8db13d6497e21a77a1868a6123f23d4", "sha256": "ac75b847634bc3c0b21013f11dfd9db71bb4cc44be4ce2e6b8e3a7ab6839bc58" }, "downloads": -1, "filename": "tableschema-1.6.0.tar.gz", "has_sig": false, "md5_digest": "b8db13d6497e21a77a1868a6123f23d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65350, "upload_time": "2019-07-08T06:41:17", "url": "https://files.pythonhosted.org/packages/9c/0a/b9952ee4ea532479507095177ea8e287965a5485350239fbaace112523b7/tableschema-1.6.0.tar.gz" } ], "1.7.0": [ { "comment_text": "", "digests": { "md5": "0047cc8add8a5fff8fd998c4a33e553f", "sha256": "a55747eee03fd7fcd01d21cc0b8680124c8fa9d91685dbc674370970b20476cb" }, "downloads": -1, "filename": "tableschema-1.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0047cc8add8a5fff8fd998c4a33e553f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56758, "upload_time": "2019-09-03T07:44:48", "url": "https://files.pythonhosted.org/packages/ce/37/7805458b9f2eabc8906b116338a8d1746d429bd6e8b9fbde0d172273efa9/tableschema-1.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ff9a21522d827671a102f20f8594cade", "sha256": "ef8745197a2d74b87d0f4358d9d1b3877b55e70e88d4649f9011b9e45835b528" }, "downloads": -1, "filename": "tableschema-1.7.0.tar.gz", "has_sig": false, "md5_digest": "ff9a21522d827671a102f20f8594cade", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62288, "upload_time": "2019-09-03T07:44:50", "url": "https://files.pythonhosted.org/packages/7f/44/59b579ecec05370df593481857538380abccd591f86b80d53026ee9acfb6/tableschema-1.7.0.tar.gz" } ], "1.7.1": [ { "comment_text": "", "digests": { "md5": "de726a6602dc0c0427b9dce930ce54fb", "sha256": "1e590fa338d08b8149b7ff116f96436b1ac282efba9ddeba33954672f495e82f" }, "downloads": -1, "filename": "tableschema-1.7.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "de726a6602dc0c0427b9dce930ce54fb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56766, "upload_time": "2019-09-18T05:53:51", "url": "https://files.pythonhosted.org/packages/27/bd/9f96d7c6a6a1d810bb0c763c0a009a175367202a26b0bad59f5919ed8ca7/tableschema-1.7.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5628ee14c3c684ef9e73fcdb6ef649ad", "sha256": "64ba58f1654a3bbc5a0d23a2d7d3cb99280932e0095226f3d617c5f83b91666a" }, "downloads": -1, "filename": "tableschema-1.7.1.tar.gz", "has_sig": false, "md5_digest": "5628ee14c3c684ef9e73fcdb6ef649ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62254, "upload_time": "2019-09-18T05:53:53", "url": "https://files.pythonhosted.org/packages/67/32/103dd99137e7682f0a78849487f45bc272170a7d4d1d724a944dac17fac0/tableschema-1.7.1.tar.gz" } ], "1.7.2": [ { "comment_text": "", "digests": { "md5": "5392770bffdb8c69c803c5ecd098464f", "sha256": "6e4bc0ccb6300620caef651fe89d180563bce3e82636c0521fa0fd51ef0c108d" }, "downloads": -1, "filename": "tableschema-1.7.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5392770bffdb8c69c803c5ecd098464f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56766, "upload_time": "2019-09-18T08:04:36", "url": "https://files.pythonhosted.org/packages/e6/4e/27a43062eb1df4abcfd24e523ba64812334e903f9c407cc806f7b0fd3d52/tableschema-1.7.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "99e44b5b58481f82c13b24ee8e0bd350", "sha256": "6a7a45a77e4315a5f76aa639dd8b2237d604c3d61481aed92ddeedb7c0bb9d60" }, "downloads": -1, "filename": "tableschema-1.7.2.tar.gz", "has_sig": false, "md5_digest": "99e44b5b58481f82c13b24ee8e0bd350", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62249, "upload_time": "2019-09-18T08:04:38", "url": "https://files.pythonhosted.org/packages/37/4a/466891a32d36b873a0a85524a92247f31667248fce1a02c2e09625ae65c1/tableschema-1.7.2.tar.gz" } ], "1.7.3": [ { "comment_text": "", "digests": { "md5": "39334bde3f4087cd472c44ba06cc4f62", "sha256": "f7f6507d57f3175d6be2f5100a21c9fca220f0cc69330ffd90d967080ba3c785" }, "downloads": -1, "filename": "tableschema-1.7.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "39334bde3f4087cd472c44ba06cc4f62", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56953, "upload_time": "2019-09-26T06:51:18", "url": "https://files.pythonhosted.org/packages/82/90/74788b8e1d07b5376a0c0744bb5863decfcb23e335f535155cdbd99dec23/tableschema-1.7.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3f2430e0d3904cd2cd3a5b80bb51b8f4", "sha256": "c337aa576b7515b98af795ff98c0881492ffaeb9157dbebd0276176badb41b58" }, "downloads": -1, "filename": "tableschema-1.7.3.tar.gz", "has_sig": false, "md5_digest": "3f2430e0d3904cd2cd3a5b80bb51b8f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4790485, "upload_time": "2019-09-26T06:51:21", "url": "https://files.pythonhosted.org/packages/04/6e/cf605406dfe6346b3ba7cc2ff6a89ccb0bafe61268a1ecce5201c0b9910e/tableschema-1.7.3.tar.gz" } ], "1.7.4": [ { "comment_text": "", "digests": { "md5": "36e51d4e29680ac5b9113507e1a1df0b", "sha256": "6edea82839bfef161eacdbadca0a2c96a3b376070fecf5ebd81c020806e77104" }, "downloads": -1, "filename": "tableschema-1.7.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "36e51d4e29680ac5b9113507e1a1df0b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56992, "upload_time": "2019-09-27T06:59:15", "url": "https://files.pythonhosted.org/packages/89/3d/b5a4045193069e85263008e3bb08b376fc4fbeec10ab533a9a4897b70260/tableschema-1.7.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6a08a4efa388f5603193bd715ef015ce", "sha256": "f3f38c1143f881e3d34b96439859fd00e5688dc6fd0dc292c41d5812f140b669" }, "downloads": -1, "filename": "tableschema-1.7.4.tar.gz", "has_sig": false, "md5_digest": "6a08a4efa388f5603193bd715ef015ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4791096, "upload_time": "2019-09-27T06:59:18", "url": "https://files.pythonhosted.org/packages/a1/c4/6c71ba6e59a9f59cd89b2e20913a7656686c465817f1135070fc124171af/tableschema-1.7.4.tar.gz" } ], "1.8.0": [ { "comment_text": "", "digests": { "md5": "6db9459a2ea4e9a3cafc8ec006bd089a", "sha256": "4db67ac4933806c46bc94b9c15fd5e5d38ef42ca85980969158383f7904a08a0" }, "downloads": -1, "filename": "tableschema-1.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6db9459a2ea4e9a3cafc8ec006bd089a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 58142, "upload_time": "2019-10-09T15:09:35", "url": "https://files.pythonhosted.org/packages/99/10/9fbfc030638d11f31ba8bed6c815eaa9971f5db9f9b18ba99e6b9f271813/tableschema-1.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "915e7ccdb1b3d3c5186d105b847c3346", "sha256": "646678c3bcc2932d9e861932fa9da0227ef2cce62cbe44cc8d6c32f6a0c09d38" }, "downloads": -1, "filename": "tableschema-1.8.0.tar.gz", "has_sig": false, "md5_digest": "915e7ccdb1b3d3c5186d105b847c3346", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4809812, "upload_time": "2019-10-09T15:09:40", "url": "https://files.pythonhosted.org/packages/18/e5/0687a0a130637ccd37477e33bbc4f87083f1c19459a9a14d1793a99716e7/tableschema-1.8.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6db9459a2ea4e9a3cafc8ec006bd089a", "sha256": "4db67ac4933806c46bc94b9c15fd5e5d38ef42ca85980969158383f7904a08a0" }, "downloads": -1, "filename": "tableschema-1.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6db9459a2ea4e9a3cafc8ec006bd089a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 58142, "upload_time": "2019-10-09T15:09:35", "url": "https://files.pythonhosted.org/packages/99/10/9fbfc030638d11f31ba8bed6c815eaa9971f5db9f9b18ba99e6b9f271813/tableschema-1.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "915e7ccdb1b3d3c5186d105b847c3346", "sha256": "646678c3bcc2932d9e861932fa9da0227ef2cce62cbe44cc8d6c32f6a0c09d38" }, "downloads": -1, "filename": "tableschema-1.8.0.tar.gz", "has_sig": false, "md5_digest": "915e7ccdb1b3d3c5186d105b847c3346", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4809812, "upload_time": "2019-10-09T15:09:40", "url": "https://files.pythonhosted.org/packages/18/e5/0687a0a130637ccd37477e33bbc4f87083f1c19459a9a14d1793a99716e7/tableschema-1.8.0.tar.gz" } ] }