{ "info": { "author": "Reuben Cummings", "author_email": "reubano@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "meza: A Python toolkit for processing tabular data\n======================================================\n\n|travis| |versions| |pypi|\n\nIndex\n-----\n\n`Introduction`_ | `Requirements`_ | `Motivation`_ | `Hello World`_ | `Usage`_ |\n`Interoperability`_ | `Installation`_ | `Project Structure`_ |\n`Design Principles`_ | `Scripts`_ | `Contributing`_ | `Credits`_ |\n`More Info`_ | `License`_\n\nIntroduction\n------------\n\n**meza** is a Python `library`_ for reading and processing tabular data.\nIt has a functional programming style API, excels at reading/writing large files,\nand can process 10+ file types.\n\nWith meza, you can\n\n- Read csv/xls/xlsx/mdb/dbf files, and more!\n- Type cast records (date, float, text...)\n- Process U\u00f1ic\u00f4d\u00eb text\n- Lazily stream files by default\n- and much more...\n\nRequirements\n------------\n\nmeza has been tested and is known to work on Python 2.7, 3.5, and 3.6;\nand PyPy 2.7 and 3.5.\n\nOptional Dependencies\n^^^^^^^^^^^^^^^^^^^^^\n\n=============================== ============== ============================== =======================\nFunction Dependency Installation File type / extension\n=============================== ============== ============================== =======================\n``meza.io.read_mdb`` `mdbtools`_ ``sudo port install mdbtools`` Microsoft Access / mdb\n``meza.io.read_html`` `lxml`_ [#]_ ``pip install lxml`` HTML / html\n``meza.convert.records2array`` `NumPy`_ [#]_ ``pip install numpy`` n/a\n``meza.convert.records2df`` `pandas`_ ``pip install pandas`` n/a\n=============================== ============== ============================== =======================\n\nNotes\n^^^^^\n\n.. [#] If ``lxml`` isn't present, ``read_html`` will default to the builtin Python html reader\n\n.. [#] ``records2array`` can be used without ``numpy`` by passing ``native=True`` in the function call. This will convert ``records`` into a list of native ``array.array`` objects.\n\nMotivation\n----------\n\nWhy I built meza\n^^^^^^^^^^^^^^^^\n\npandas is great, but installing it isn't exactly a `walk in the park`_, and it\ndoesn't play nice with `PyPy`_. I designed **meza** to be a lightweight, easy to install, less featureful alternative to\npandas. I also optimized **meza** for low memory usage, PyPy compatibility, and functional programming best practices.\n\nWhy you should use meza\n^^^^^^^^^^^^^^^^^^^^^^^\n\n``meza`` provides a number of benefits / differences from similar libraries such\nas ``pandas``. Namely:\n\n- a functional programming (instead of object oriented) API\n- `iterators by default`_ (reading/writing)\n- `PyPy compatibility`_\n- `geojson support`_ (reading/writing)\n- `seamless integration`_ with sqlachemy (and other libs that work with iterators of dicts)\n\nFor more detailed information, please check-out the `FAQ`_.\n\nHello World\n-----------\n\nA simple data processing example is shown below:\n\nFirst create a simple csv file (in bash)\n\n.. code-block:: bash\n\n echo 'col1,col2,col3\\nhello,5/4/82,1\\none,1/1/15,2\\nhappy,7/1/92,3\\n' > data.csv\n\nNow we can read the file, manipulate the data a bit, and write the manipulated\ndata back to a new file.\n\n.. code-block:: python\n\n >>> from meza import io, process as pr, convert as cv\n >>> from io import open\n\n >>> # Load the csv file\n >>> records = io.read_csv('data.csv')\n\n >>> # `records` are iterators over the rows\n >>> row = next(records)\n >>> row\n {'col1': 'hello', 'col2': '5/4/82', 'col3': '1'}\n\n >>> # Let's replace the first row so as not to lose any data\n >>> records = pr.prepend(records, row)\n\n # Guess column types. Note: `detect_types` returns a new `records`\n # generator since it consumes rows during type detection\n >>> records, result = pr.detect_types(records)\n >>> {t['id']: t['type'] for t in result['types']}\n {'col1': 'text', 'col2': 'date', 'col3': 'int'}\n\n # Now type cast the records. Note: most `meza.process` functions return\n # generators, so lets wrap the result in a list to view the data\n >>> casted = list(pr.type_cast(records, result['types']))\n >>> casted[0]\n {'col1': 'hello', 'col2': datetime.date(1982, 5, 4), 'col3': 1}\n\n # Cut out the first column of data and merge the rows to get the max value\n # of the remaining columns. Note: since `merge` (by definition) will always\n # contain just one row, it is returned as is (not wrapped in a generator)\n >>> cut_recs = pr.cut(casted, ['col1'], exclude=True)\n >>> merged = pr.merge(cut_recs, pred=bool, op=max)\n >>> merged\n {'col2': datetime.date(2015, 1, 1), 'col3': 3}\n\n # Now write merged data back to a new csv file.\n >>> io.write('out.csv', cv.records2csv(merged))\n\n # View the result\n >>> with open('out.csv', 'utf-8') as f:\n ... f.read()\n 'col2,col3\\n2015-01-01,3\\n'\n\nUsage\n-----\n\nmeza is intended to be used directly as a Python library.\n\nUsage Index\n^^^^^^^^^^^\n\n- `Reading data`_\n- `Processing data`_\n\n + `Numerical analysis (\u00e0 la pandas)`_\n + `Text processing (\u00e0 la csvkit)`_\n + `Geo processing (\u00e0 la mapbox)`_\n\n- `Writing data`_\n- `Cookbook`_\n\nReading data\n^^^^^^^^^^^^\n\nmeza can read both filepaths and file-like objects. Additionally, all readers\nreturn equivalent `records` iterators, i.e., a generator of dictionaries with\nkeys corresponding to the column names.\n\n.. code-block:: python\n\n >>> from io import open, StringIO\n >>> from meza import io\n\n \"\"\"Read a filepath\"\"\"\n >>> records = io.read_json('path/to/file.json')\n\n \"\"\"Read a file like object and de-duplicate the header\"\"\"\n >>> f = StringIO('col,col\\nhello,world\\n')\n >>> records = io.read_csv(f, dedupe=True)\n\n \"\"\"View the first row\"\"\"\n >>> next(records)\n {'col': 'hello', 'col_2': 'world'}\n\n \"\"\"Read the 1st sheet of an xls file object opened in text mode.\"\"\"\n # Also, santize the header names by converting them to lowercase and\n # replacing whitespace and invalid characters with `_`.\n >>> with open('path/to/file.xls', 'utf-8') as f:\n ... for row in io.read_xls(f, sanitize=True):\n ... # do something with the `row`\n ... pass\n\n \"\"\"Read the 2nd sheet of an xlsx file object opened in binary mode\"\"\"\n # Note: sheets are zero indexed\n >>> with open('path/to/file.xlsx') as f:\n ... records = io.read_xls(f, encoding='utf-8', sheet=1)\n ... first_row = next(records)\n ... # do something with the `first_row`\n\n \"\"\"Read any recognized file\"\"\"\n >>> records = io.read('path/to/file.geojson')\n >>> f.seek(0)\n >>> records = io.read(f, ext='csv', dedupe=True)\n\nPlease see `readers`_ for a complete list of available readers and recognized\nfile types.\n\nProcessing data\n^^^^^^^^^^^^^^^\n\nNumerical analysis (\u00e0 la pandas) [#]_\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIn the following example, ``pandas`` equivalent methods are preceded by ``-->``.\n\n.. code-block:: python\n\n >>> import itertools as it\n >>> import random\n\n >>> from io import StringIO\n >>> from meza import io, process as pr, convert as cv, stats\n\n # Create some data in the same structure as what the various `read...`\n # functions output\n >>> header = ['A', 'B', 'C', 'D']\n >>> data = [(random.random() for _ in range(4)) for x in range(7)]\n >>> df = [dict(zip(header, d)) for d in data]\n >>> df[0]\n {'A': 0.53908..., 'B': 0.28919..., 'C': 0.03003..., 'D': 0.65363...}\n\n \"\"\"Sort records by the value of column `B` --> df.sort_values(by='B')\"\"\"\n >>> next(pr.sort(df, 'B'))\n {'A': 0.53520..., 'B': 0.06763..., 'C': 0.02351..., 'D': 0.80529...}\n\n \"\"\"Select column `A` --> df['A']\"\"\"\n >>> next(pr.cut(df, ['A']))\n {'A': 0.53908170489952006}\n\n \"\"\"Select the first three rows of data --> df[0:3]\"\"\"\n >>> len(list(it.islice(df, 3)))\n 3\n\n \"\"\"Select all data whose value for column `A` is less than 0.5\n --> df[df.A < 0.5]\n \"\"\"\n >>> next(pr.tfilter(df, 'A', lambda x: x < 0.5))\n {'A': 0.21000..., 'B': 0.25727..., 'C': 0.39719..., 'D': 0.64157...}\n\n # Note: since `aggregate` and `merge` (by definition) return just one row,\n # they return them as is (not wrapped in a generator).\n \"\"\"Calculate the mean of column `A` across all data --> df.mean()['A']\"\"\"\n >>> pr.aggregate(df, 'A', stats.mean)['A']\n 0.5410437473067938\n\n \"\"\"Calculate the sum of each column across all data --> df.sum()\"\"\"\n >>> pr.merge(df, pred=bool, op=sum)\n {'A': 3.78730..., 'C': 2.82875..., 'B': 3.14195..., 'D': 5.26330...}\n\nText processing (\u00e0 la csvkit) [#]_\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIn the following example, ``csvkit`` equivalent commands are preceded by ``-->``.\n\nFirst create a few simple csv files (in bash)\n\n.. code-block:: bash\n\n echo 'col_1,col_2,col_3\\n1,dill,male\\n2,bob,male\\n3,jane,female' > file1.csv\n echo 'col_1,col_2,col_3\\n4,tom,male\\n5,dick,male\\n6,jill,female' > file2.csv\n\nNow we can read the files, manipulate the data, convert the manipulated data to\njson, and write the json back to a new file. Also, note that since all readers\nreturn equivalent `records` iterators, you can use them interchangeably (in\nplace of ``read_csv``) to open any supported file. E.g., ``read_xls``,\n``read_sqlite``, etc.\n\n.. code-block:: python\n\n >>> import itertools as it\n\n >>> from meza import io, process as pr, convert as cv\n\n \"\"\"Combine the files into one iterator\n --> csvstack file1.csv file2.csv\n \"\"\"\n >>> records = io.join('file1.csv', 'file2.csv')\n >>> next(records)\n {'col_1': '1', 'col_2': 'dill', 'col_3': 'male'}\n >>> next(it.islice(records, 4, None))\n {'col_1': '6', 'col_2': 'jill', 'col_3': 'female'}\n\n # Now let's create a persistent records list\n >>> records = list(io.read_csv('file1.csv'))\n\n \"\"\"Sort records by the value of column `col_2`\n --> csvsort -c col_2 file1.csv\n \"\"\"\n >>> next(pr.sort(records, 'col_2'))\n {'col_1': '2', 'col_2': 'bob', 'col_3': 'male'\n\n \"\"\"Select column `col_2` --> csvcut -c col_2 file1.csv\"\"\"\n >>> next(pr.cut(records, ['col_2']))\n {'col_2': 'dill'}\n\n \"\"\"Select all data whose value for column `col_2` contains `jan`\n --> csvgrep -c col_2 -m jan file1.csv\n \"\"\"\n >>> next(pr.grep(records, [{'pattern': 'jan'}], ['col_2']))\n {'col_1': '3', 'col_2': 'jane', 'col_3': 'female'}\n\n \"\"\"Convert a csv file to json --> csvjson -i 4 file1.csv\"\"\"\n >>> io.write('file.json', cv.records2json(records))\n\n # View the result\n >>> with open('file.json', 'utf-8') as f:\n ... f.read()\n '[{\"col_1\": \"1\", \"col_2\": \"dill\", \"col_3\": \"male\"}, {\"col_1\": \"2\",\n \"col_2\": \"bob\", \"col_3\": \"male\"}, {\"col_1\": \"3\", \"col_2\": \"jane\",\n \"col_3\": \"female\"}]'\n\nGeo processing (\u00e0 la mapbox) [#]_\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIn the following example, ``mapbox`` equivalent commands are preceded by ``-->``.\n\nFirst create a geojson file (in bash)\n\n.. code-block:: bash\n\n echo '{\"type\": \"FeatureCollection\",\"features\": [' > file.geojson\n echo '{\"type\": \"Feature\", \"id\": 11, \"geometry\": {\"type\": \"Point\", \"coordinates\": [10, 20]}},' >> file.geojson\n echo '{\"type\": \"Feature\", \"id\": 12, \"geometry\": {\"type\": \"Point\", \"coordinates\": [5, 15]}}]}' >> file.geojson\n\nNow we can open the file, split the data by id, and finally convert the split data\nto a new geojson file-like object.\n\n.. code-block:: python\n\n >>> from meza import io, process as pr, convert as cv\n\n # Load the geojson file and peek at the results\n >>> records, peek = pr.peek(io.read_geojson('file.geojson'))\n >>> peek[0]\n {'lat': 20, 'type': 'Point', 'lon': 10, 'id': 11}\n\n \"\"\"Split the records by feature ``id`` and select the first feature\n --> geojsplit -k id file.geojson\n \"\"\"\n >>> splits = pr.split(records, 'id')\n >>> feature_records, name = next(splits)\n >>> name\n 11\n\n \"\"\"Convert the feature records into a GeoJSON file-like object\"\"\"\n >>> geojson = cv.records2geojson(feature_records)\n >>> geojson.readline()\n '{\"type\": \"FeatureCollection\", \"bbox\": [10, 20, 10, 20], \"features\": '\n '[{\"type\": \"Feature\", \"id\": 11, \"geometry\": {\"type\": \"Point\", '\n '\"coordinates\": [10, 20]}, \"properties\": {\"id\": 11}}], \"crs\": {\"type\": '\n '\"name\", \"properties\": {\"name\": \"urn:ogc:def:crs:OGC:1.3:CRS84\"}}}'\n\n # Note: you can also write back to a file as shown previously\n # io.write('file.geojson', geojson)\n\nWriting data\n^^^^^^^^^^^^\n\nmeza can persist ``records`` to disk via the following functions:\n\n- ``meza.convert.records2csv``\n- ``meza.convert.records2json``\n- ``meza.convert.records2geojson``\n\nEach function returns a file-like object that you can write to disk via\n``meza.io.write('/path/to/file', result)``.\n\n.. code-block:: python\n\n >>> from meza import io, convert as cv\n >>> from io import StringIO, open\n\n # First let's create a simple tsv file like object\n >>> f = StringIO('col1\\tcol2\\nhello\\tworld\\n')\n >>> f.seek(0)\n\n # Next create a records list so we can reuse it\n >>> records = list(io.read_tsv(f))\n >>> records[0]\n {'col1': 'hello', 'col2': 'world'}\n\n # Now we're ready to write the records data to file\n\n \"\"\"Create a csv file like object\"\"\"\n >>> cv.records2csv(records).readline()\n 'col1,col2\\n'\n\n \"\"\"Create a json file like object\"\"\"\n >>> cv.records2json(records).readline()\n '[{\"col1\": \"hello\", \"col2\": \"world\"}]'\n\n \"\"\"Write back csv to a filepath\"\"\"\n >>> io.write('file.csv', cv.records2csv(records))\n >>> with open('file.csv', 'utf-8') as f_in:\n ... f_in.read()\n 'col1,col2\\nhello,world\\n'\n\n \"\"\"Write back json to a filepath\"\"\"\n >>> io.write('file.json', cv.records2json(records))\n >>> with open('file.json', 'utf-8') as f_in:\n ... f_in.readline()\n '[{\"col1\": \"hello\", \"col2\": \"world\"}]'\n\nCookbook\n^^^^^^^^\n\nPlease see the `cookbook`_ or ipython `notebook`_ for more examples.\n\nNotes\n^^^^^\n\n.. [#] http://pandas.pydata.org/pandas-docs/stable/10min.html#min\n.. [#] https://csvkit.readthedocs.org/en/0.9.1/cli.html#processing\n.. [#] https://github.com/mapbox?utf8=%E2%9C%93&query=geojson\n\nInteroperability\n----------------\n\nmeza plays nicely with NumPy and friends out of the box\n\nsetup\n^^^^^\n\n.. code-block:: python\n\n from meza import process as pr\n\n # First create some records and types. Also, convert the records to a list\n # so we can reuse them.\n >>> records = [{'a': 'one', 'b': 2}, {'a': 'five', 'b': 10, 'c': 20.1}]\n >>> records, result = pr.detect_types(records)\n >>> records, types = list(records), result['types']\n >>> types\n [\n {'type': 'text', 'id': 'a'},\n {'type': 'int', 'id': 'b'},\n {'type': 'float', 'id': 'c'}]\n\n\nfrom records to pandas.DataFrame to records\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n >>> import pandas as pd\n >>> from meza import convert as cv\n\n \"\"\"Convert the records to a DataFrame\"\"\"\n >>> df = cv.records2df(records, types)\n >>> df\n a b c\n 0 one 2 NaN\n 1 five 10 20.1\n # Alternatively, you can do `pd.DataFrame(records)`\n\n \"\"\"Convert the DataFrame back to records\"\"\"\n >>> next(cv.df2records(df))\n {'a': 'one', 'b': 2, 'c': nan}\n\nfrom records to arrays to records\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n >>> import numpy as np\n\n >>> from array import array\n >>> from meza import convert as cv\n\n \"\"\"Convert records to a structured array\"\"\"\n >>> recarray = cv.records2array(records, types)\n >>> recarray\n rec.array([('one', 2, nan), ('five', 10, 20.100000381469727)],\n dtype=[('a', 'O'), ('b', '>> recarray.b\n array([ 2, 10], dtype=int32)\n\n \"\"\"Convert records to a native array\"\"\"\n >>> narray = cv.records2array(records, types, native=True)\n >>> narray\n [[array('u', 'a'), array('u', 'b'), array('u', 'c')],\n [array('u', 'one'), array('u', 'five')],\n array('i', [2, 10]),\n array('f', [0.0, 20.100000381469727])]\n\n \"\"\"Convert a 2-D NumPy array to a records generator\"\"\"\n >>> data = np.array([[1, 2, 3], [4, 5, 6]], np.int32)\n >>> data\n array([[1, 2, 3],\n [4, 5, 6]], dtype=int32)\n >>> next(cv.array2records(data))\n {'column_1': 1, 'column_2': 2, 'column_3': 3}\n\n \"\"\"Convert the structured array back to a records generator\"\"\"\n >>> next(cv.array2records(recarray))\n {'a': 'one', 'b': 2, 'c': nan}\n\n \"\"\"Convert the native array back to records generator\"\"\"\n >>> next(cv.array2records(narray, native=True))\n {'a': 'one', 'b': 2, 'c': 0.0}\n\nInstallation\n------------\n\n(You are using a `virtualenv`_, right?)\n\nAt the command line, install meza using either ``pip`` (*recommended*)\n\n.. code-block:: bash\n\n pip install meza\n\nor ``easy_install``\n\n.. code-block:: bash\n\n easy_install meza\n\nPlease see the `installation doc`_ for more details.\n\nProject Structure\n-----------------\n\n.. code-block:: bash\n\n \u250c\u2500\u2500 CONTRIBUTING.rst\n \u251c\u2500\u2500 LICENSE\n \u251c\u2500\u2500 MANIFEST.in\n \u251c\u2500\u2500 Makefile\n \u251c\u2500\u2500 README.rst\n \u251c\u2500\u2500 data\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 converted/*\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 test/*\n \u251c\u2500\u2500 dev-requirements.txt\n \u251c\u2500\u2500 docs\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 AUTHORS.rst\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 CHANGES.rst\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 COOKBOOK.rst\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 FAQ.rst\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 INSTALLATION.rst\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 TODO.rst\n \u251c\u2500\u2500 examples\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 usage.ipynb\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 usage.py\n \u251c\u2500\u2500 helpers/*\n \u251c\u2500\u2500 manage.py\n \u251c\u2500\u2500 meza\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 __init__.py\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 convert.py\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 dbf.py\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 fntools.py\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 io.py\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 process.py\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 stats.py\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 typetools.py\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 unicsv.py\n \u251c\u2500\u2500 optional-requirements.txt\n \u251c\u2500\u2500 py2-requirements.txt\n \u251c\u2500\u2500 requirements.txt\n \u251c\u2500\u2500 setup.cfg\n \u251c\u2500\u2500 setup.py\n \u251c\u2500\u2500 tests\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 __init__.py\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 standard.rc\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 test_fntools.py\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 test_io.py\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 test_process.py\n \u2514\u2500\u2500 tox.ini\n\nDesign Principles\n-----------------\n\n- prefer functions over objects\n- provide enough functionality out of the box to easily implement the most common data analysis use cases\n- make conversion between ``records``, ``arrays``, and ``DataFrames`` dead simple\n- whenever possible, lazily read objects and stream the result [#]_\n\n.. [#] Notable exceptions are ``meza.process.group``, ``meza.process.sort``, ``meza.io.read_dbf``, ``meza.io.read_yaml``, and ``meza.io.read_html``. These functions read the entire contents into memory up front.\n\nScripts\n-------\n\nmeza comes with a built in task manager ``manage.py``\n\nSetup\n^^^^^\n\n.. code-block:: bash\n\n pip install -r dev-requirements.txt\n\nExamples\n^^^^^^^^\n\n*Run python linter and nose tests*\n\n.. code-block:: bash\n\n manage lint\n manage test\n\nContributing\n------------\n\nPlease mimic the coding style/conventions used in this repo.\nIf you add new classes or functions, please add the appropriate doc blocks with\nexamples. Also, make sure the python linter and nose tests pass.\n\nPlease see the `contributing doc`_ for more details.\n\nCredits\n-------\n\nShoutouts to `csvkit`_, `messytables`_, and `pandas`_ for heavily inspiring meza.\n\nMore Info\n---------\n\n- `FAQ`_\n- `cookbook`_\n- ipython `notebook`_\n\nLicense\n-------\n\nmeza is distributed under the `MIT License`_.\n\n.. |travis| image:: https://img.shields.io/travis/reubano/meza/master.svg\n :target: https://travis-ci.org/reubano/meza\n\n.. |versions| image:: https://img.shields.io/pypi/pyversions/meza.svg\n :target: https://pypi.python.org/pypi/meza\n\n.. |pypi| image:: https://img.shields.io/pypi/v/meza.svg\n :target: https://pypi.python.org/pypi/meza\n\n.. _mdbtools: http://sourceforge.net/projects/mdbtools/\n.. _lxml: http://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser\n.. _library: #usage\n.. _NumPy: https://github.com/numpy/numpy\n.. _PyPy: https://github.com/pydata/pandas/issues/9532\n.. _walk in the park: http://pandas.pydata.org/pandas-docs/stable/install.html#installing-pandas-with-anaconda\n.. _csvkit: https://github.com/onyxfish/csvkit\n.. _messytables: https://github.com/okfn/messytables\n.. _pandas: https://github.com/pydata/pandas\n.. _MIT License: http://opensource.org/licenses/MIT\n.. _virtualenv: http://www.virtualenv.org/en/latest/index.html\n.. _contributing doc: https://github.com/reubano/meza/blob/master/CONTRIBUTING.rst\n.. _FAQ: https://github.com/reubano/meza/blob/master/docs/FAQ.rst\n.. _iterators by default: https://github.com/reubano/meza/blob/master/docs/FAQ.rst#memory\n.. _PyPy compatibility: https://github.com/reubano/meza/blob/master/docs/FAQ.rst#pypy\n.. _geojson support: https://github.com/reubano/meza/blob/master/docs/FAQ.rst#geojson\n.. _seamless integration: https://github.com/reubano/meza/blob/master/docs/FAQ.rst#convenience\n.. _notebook: http://nbviewer.jupyter.org/github/reubano/meza/blob/master/examples/usage.ipynb\n.. _readers: https://github.com/reubano/meza/blob/master/docs/FAQ.rst#what-readers-are-available\n.. _installation doc: https://github.com/reubano/meza/blob/master/docs/INSTALLATION.rst\n.. _cookbook: https://github.com/reubano/meza/blob/master/docs/COOKBOOK.rst\n\n\n=========\nChangelog\n=========\n\nHere you can find the recent changes to meza..\n\n.. changelog::\n :version: dev\n :released: Ongoing\n\n .. change::\n :tags: docs\n\n Updated CHANGES.\n\n.. changelog::\n :version: 0.1.0\n :released: 2015-12-05\n\n .. change::\n :tags: docs\n\n First release on PyPi.\n\n.. todo:: vim: set filetype=rst:\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/reubano/meza/archive/v0.41.1.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/reubano/meza", "keywords": "meza,A,Python,toolkit,for,processing,tabular,data", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "meza", "package_url": "https://pypi.org/project/meza/", "platform": "MacOS X", "project_url": "https://pypi.org/project/meza/", "project_urls": { "Download": "https://github.com/reubano/meza/archive/v0.41.1.tar.gz", "Homepage": "https://github.com/reubano/meza" }, "release_url": "https://pypi.org/project/meza/0.41.1/", "requires_dist": [ "chardet (<4.0.0,>=3.0.4)", "python-slugify (<2.0.0,>=1.2.5)", "python-dateutil (<3.0.0,>=2.7.2)", "requests (<3.0.0,>=2.18.4)", "xlrd (<2.0.0,>=1.1.0)", "dbfread (==2.0.4)", "ijson (<3.0.0,>=2.3)", "six (<2.0.0,>=1.11.0)", "beautifulsoup4 (<5.0.0,>=4.6.0)", "PyYAML (<4.0.0,>=3.12)", "pygogo (<0.13.0,>=0.12.0)", "future (<1.0.0,>=0.16.0); extra == 'python_version<3.0'" ], "requires_python": "", "summary": "A Python toolkit for processing tabular data", "version": "0.41.1" }, "last_serial": 3877367, "releases": { "0.27.2": [], "0.28.0": [ { "comment_text": "", "digests": { "md5": "c9d0f797d88b74e9e55efe644aef2e09", "sha256": "14aebff896bb9f2445ca93abc72cabb151df408173d5435074f9edd6dc6eb897" }, "downloads": -1, "filename": "meza-0.28.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "c9d0f797d88b74e9e55efe644aef2e09", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 59790, "upload_time": "2016-01-21T19:20:37", "url": "https://files.pythonhosted.org/packages/c5/1a/326b9e4ba56b7fddcb521427e5181de0f17e9832e327b0cecbdc69159b23/meza-0.28.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b45cfc2ba675d26cd1dd9855a2501ac9", "sha256": "ee5f85dc79cc44d24d634e27387bb37648bdc5fedf6473a203b15077c71ef8fe" }, "downloads": -1, "filename": "meza-0.28.0.tar.gz", "has_sig": true, "md5_digest": "b45cfc2ba675d26cd1dd9855a2501ac9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 140857, "upload_time": "2016-01-21T19:20:47", "url": "https://files.pythonhosted.org/packages/fb/c8/d5aa0452796e08e3682b08cbf21e338969a3e88fc895632525223cf6409d/meza-0.28.0.tar.gz" } ], "0.28.1": [ { "comment_text": "", "digests": { "md5": "15ac077ed494fee7bf4ec3d56ff6e0a4", "sha256": "4edc74e5d502e0780b9b321232800a94265c7deeac7b17ef083ded4d65fc8f7c" }, "downloads": -1, "filename": "meza-0.28.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "15ac077ed494fee7bf4ec3d56ff6e0a4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 59796, "upload_time": "2016-01-21T21:25:51", "url": "https://files.pythonhosted.org/packages/bd/33/c90b861a15150c2926e6a1797b7768c94f515c9eb449e23855f29d8c81d9/meza-0.28.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6df2d67f8c0bba7a0e2ba5573244a1bf", "sha256": "771791793e1ea0fc555513ed19df77ad947094f90f505050957b88f85f4dc364" }, "downloads": -1, "filename": "meza-0.28.1.tar.gz", "has_sig": true, "md5_digest": "6df2d67f8c0bba7a0e2ba5573244a1bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 140872, "upload_time": "2016-01-21T21:26:04", "url": "https://files.pythonhosted.org/packages/f0/16/376cafe0e37cb9abe6fbb7ba489540279139296fd2233563cebaafdd8f9f/meza-0.28.1.tar.gz" } ], "0.28.5": [ { "comment_text": "", "digests": { "md5": "d7004e8239bd0b59591b1b2c36040bdc", "sha256": "cdc1fe67b306e86b9e6fd2f9057a3f877cd29d758c258bf3d219df6765bef099" }, "downloads": -1, "filename": "meza-0.28.5-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "d7004e8239bd0b59591b1b2c36040bdc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 57581, "upload_time": "2016-01-25T13:16:04", "url": "https://files.pythonhosted.org/packages/f1/de/406ed886993d2a1e4d2318b7f6f79c176bc08d8d22d222c444013ae8eee9/meza-0.28.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d5b245d5994fceda00de8a5d5087d6e", "sha256": "0a372917e69e25fdea3f60b7f79ee3647ebc517c4f186997cb99ad2b3863a361" }, "downloads": -1, "filename": "meza-0.28.5.tar.gz", "has_sig": true, "md5_digest": "4d5b245d5994fceda00de8a5d5087d6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 143088, "upload_time": "2016-01-25T13:16:38", "url": "https://files.pythonhosted.org/packages/7b/74/e43b21e0eb2eca3339bc2c73fce9f0e4016a7dc0be5929ffdd338c3931be/meza-0.28.5.tar.gz" } ], "0.29.3": [ { "comment_text": "", "digests": { "md5": "b86d68082ca238791abb7b46af4bf04d", "sha256": "3d442898c54f87e64a51e6c6407b7f4a79227da60f41b3b7a84b7b6b1003f186" }, "downloads": -1, "filename": "meza-0.29.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "b86d68082ca238791abb7b46af4bf04d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 58366, "upload_time": "2016-06-11T10:30:03", "url": "https://files.pythonhosted.org/packages/e1/52/7d1978875879f8043ae88bde04cf8414b01f70edbe44ade0ac2daeea5660/meza-0.29.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a4e7892f63164c69f6041227c653e245", "sha256": "3c257d44d17642ae1bdd86e7b4243292f06306ee6209b67852bbe7388c32969f" }, "downloads": -1, "filename": "meza-0.29.3.tar.gz", "has_sig": true, "md5_digest": "a4e7892f63164c69f6041227c653e245", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 145429, "upload_time": "2016-06-11T10:30:10", "url": "https://files.pythonhosted.org/packages/e6/06/a2d93904c3c12e8d820a89e5991c5d6eb7eef54252e65cc41af3c56e2d4d/meza-0.29.3.tar.gz" } ], "0.29.4": [ { "comment_text": "", "digests": { "md5": "d3ed161f1e6baab64ea1f353a9f8319b", "sha256": "f3909dcd75599ba5cfac85fd62825fb18659e5bc88c571dac391e89c8b0ade98" }, "downloads": -1, "filename": "meza-0.29.4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "d3ed161f1e6baab64ea1f353a9f8319b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 59821, "upload_time": "2016-06-23T08:56:34", "url": "https://files.pythonhosted.org/packages/07/48/da670344a55d07aff729dd5401e5ffba22b4c353d26713389dcde407a123/meza-0.29.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c63106a08864bbee89596322601e29bf", "sha256": "0d15ed5b477e150a9625efddd4289c8a4dc7489f6c7c0b796d3ac87fa2a35bd7" }, "downloads": -1, "filename": "meza-0.29.4.tar.gz", "has_sig": true, "md5_digest": "c63106a08864bbee89596322601e29bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 146393, "upload_time": "2016-06-23T08:56:40", "url": "https://files.pythonhosted.org/packages/0c/7e/02dcac713de61495d6badd6410f3ebc3a75f09bae9da978da2b9cb2a43e3/meza-0.29.4.tar.gz" } ], "0.29.5": [ { "comment_text": "", "digests": { "md5": "00e225450b362c75ef7b5e8bdc7f470e", "sha256": "db45db5b967f4b294d68c6a3044fa5efc9937c074cb7fbbccc22e425620e6be3" }, "downloads": -1, "filename": "meza-0.29.5-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "00e225450b362c75ef7b5e8bdc7f470e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 60125, "upload_time": "2016-06-24T19:24:46", "url": "https://files.pythonhosted.org/packages/f0/2a/3a0944023d3a3d36bbfbda670c2bed1acdf98b6ed019349253d35cc28dac/meza-0.29.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "95efec7d6f9660067f650f828de44b78", "sha256": "f6e8ac41f27c77133980596954714f15f98e7405c6b2b63f52a5bfee6ba48abb" }, "downloads": -1, "filename": "meza-0.29.5.tar.gz", "has_sig": true, "md5_digest": "95efec7d6f9660067f650f828de44b78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 146739, "upload_time": "2016-06-24T19:24:56", "url": "https://files.pythonhosted.org/packages/bd/d8/0350a00291e6d0124bd6fa62d3bbe652510a860886bc2235c63677211768/meza-0.29.5.tar.gz" } ], "0.29.6": [ { "comment_text": "", "digests": { "md5": "4d5fff2007afc1616e557823dd435697", "sha256": "275c6bad73402b344ccddd11a9392fba8d88edef86b593c836f5d7aa78b15c0f" }, "downloads": -1, "filename": "meza-0.29.6-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "4d5fff2007afc1616e557823dd435697", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 60497, "upload_time": "2016-06-27T17:19:12", "url": "https://files.pythonhosted.org/packages/e1/f1/47d92332689fb7e757dccf160248df04436788fdd61efc465e78fdc5db94/meza-0.29.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "679daad706618c17b066be9bc503b66f", "sha256": "a5b5eb07e9f232b91940b39624b36c14573a87cadca295a4a2befecdd05d9934" }, "downloads": -1, "filename": "meza-0.29.6.tar.gz", "has_sig": true, "md5_digest": "679daad706618c17b066be9bc503b66f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 147198, "upload_time": "2016-06-27T17:19:19", "url": "https://files.pythonhosted.org/packages/93/95/88fc15845914259df0fd5760bd95b89c15bf316ae0cef4411dd0d0a1627a/meza-0.29.6.tar.gz" } ], "0.30.0": [ { "comment_text": "", "digests": { "md5": "0db0638910bd47d33690e7e257517cf9", "sha256": "e3f781c73394c2ab005e3c7d425f3fda5de6c1151274b6bfe2464d7f52bcaf67" }, "downloads": -1, "filename": "meza-0.30.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "0db0638910bd47d33690e7e257517cf9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 60493, "upload_time": "2016-07-25T15:01:33", "url": "https://files.pythonhosted.org/packages/e7/5e/11944b4903c72f5305030b22c37f147beda484fc9d678e7b3098c294d4f4/meza-0.30.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "594d6095ecf4bf4f442333cb641b3275", "sha256": "3a6ea249fab3cbb8c092f8e58b696afcb42b5038933ed0d1d6bb9826ceab5379" }, "downloads": -1, "filename": "meza-0.30.0.tar.gz", "has_sig": true, "md5_digest": "594d6095ecf4bf4f442333cb641b3275", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 147232, "upload_time": "2016-07-25T15:01:37", "url": "https://files.pythonhosted.org/packages/45/d9/52bd24b465eb0b7443232ea859545804c774e578a8fc647d1c31456b4124/meza-0.30.0.tar.gz" } ], "0.30.1": [ { "comment_text": "", "digests": { "md5": "6b7459d680697096f1321782ae5675f8", "sha256": "82791358bcf5bed0e2a15bb9279c808aff649a7ce6e94903d5a0a0bd9b4ed914" }, "downloads": -1, "filename": "meza-0.30.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "6b7459d680697096f1321782ae5675f8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 60523, "upload_time": "2016-08-13T16:52:17", "url": "https://files.pythonhosted.org/packages/31/0d/cb70d79f4bed7e9c12803a75d2960746def058fd916b4eacda3a70e8ac58/meza-0.30.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aa834c0d056cd8e554c186c540e67662", "sha256": "b84202c6a411dd83f0d3eaf034cb3f72c904be40b561cf57e1de04d8d3b816bf" }, "downloads": -1, "filename": "meza-0.30.1.tar.gz", "has_sig": true, "md5_digest": "aa834c0d056cd8e554c186c540e67662", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 147268, "upload_time": "2016-08-13T16:52:25", "url": "https://files.pythonhosted.org/packages/76/5a/6f9ecd75227f3618454c43498dcbb07326a85f919a433946884eb4e7d5b3/meza-0.30.1.tar.gz" } ], "0.31.0": [ { "comment_text": "", "digests": { "md5": "f537aa64f8e4637bd1e4c4f451cc5995", "sha256": "ea0c1513e6f085dde99248415a84a431e99bad7800a0c6907e2aea1d23123523" }, "downloads": -1, "filename": "meza-0.31.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "f537aa64f8e4637bd1e4c4f451cc5995", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 60549, "upload_time": "2016-10-11T13:27:57", "url": "https://files.pythonhosted.org/packages/a8/9a/6f45d195a586512effe8801cb48b740d384dde35db680b31464e1d5e205f/meza-0.31.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e707bd960a8d703ad943f98f85de109", "sha256": "97a7754cacb6508a249cb4a7bee2a80114c561552b7fd754fc99f84eee8967d5" }, "downloads": -1, "filename": "meza-0.31.0.tar.gz", "has_sig": true, "md5_digest": "2e707bd960a8d703ad943f98f85de109", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 146886, "upload_time": "2016-10-11T13:28:03", "url": "https://files.pythonhosted.org/packages/04/12/835c344047d040ee90667160fb6f86a75f1237dfd4cbecb08ba9bd1064a9/meza-0.31.0.tar.gz" } ], "0.31.1": [ { "comment_text": "", "digests": { "md5": "46300464eb0625319432c8d57b14400e", "sha256": "b468be7c3a0fac1d8ed39dd39dac6519b2d4d8884113d8c66a92f58a1ed5deab" }, "downloads": -1, "filename": "meza-0.31.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "46300464eb0625319432c8d57b14400e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 60570, "upload_time": "2016-10-31T11:53:09", "url": "https://files.pythonhosted.org/packages/d1/23/c69177d718660aa03ca4cbc4791fe37f19e272fb4f6d0cc38b413bda7825/meza-0.31.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b076e0067a22c837a0ac57074803c670", "sha256": "1e3d8f62d31bc8cb28acf4b778b3c704859b2a9af936b2e34961bcd6d7ddd92b" }, "downloads": -1, "filename": "meza-0.31.1.tar.gz", "has_sig": true, "md5_digest": "b076e0067a22c837a0ac57074803c670", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 146903, "upload_time": "2016-10-31T11:53:22", "url": "https://files.pythonhosted.org/packages/07/38/36d1cb140fb6db64a9e811991be68d3b57ca71641f7302a093a74ebfc8a0/meza-0.31.1.tar.gz" } ], "0.31.2": [ { "comment_text": "", "digests": { "md5": "bf6300189898b8a25703e70d7e5653b4", "sha256": "cee8db1fa3e0b96f8f46a099e80f52b382fd0a918a323a0861b35aba955ea45a" }, "downloads": -1, "filename": "meza-0.31.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "bf6300189898b8a25703e70d7e5653b4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 61143, "upload_time": "2016-11-01T11:03:25", "url": "https://files.pythonhosted.org/packages/ed/56/0320e7ce8f25f79c96c63a96e1205231490192e18f27707b6a95dcf67c5e/meza-0.31.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d57ef4dac99d192965b6e1f963e634d9", "sha256": "0a36f6c48502fb777591357d2655efcf8054994dd401bd742101694543acf587" }, "downloads": -1, "filename": "meza-0.31.2.tar.gz", "has_sig": true, "md5_digest": "d57ef4dac99d192965b6e1f963e634d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 147726, "upload_time": "2016-11-01T11:04:06", "url": "https://files.pythonhosted.org/packages/e9/a2/492d13ef40b890081fb68154b167fb18078730dc0c66ac26904abac21660/meza-0.31.2.tar.gz" } ], "0.31.3": [ { "comment_text": "", "digests": { "md5": "6301052bf6655fbb16f5e748a0f75b02", "sha256": "ff2bc2bf88da52fe4bc8381572e9a7c5edc8fb59c8ab66d050c37fb2f6335eba" }, "downloads": -1, "filename": "meza-0.31.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "6301052bf6655fbb16f5e748a0f75b02", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 61104, "upload_time": "2016-11-01T19:06:29", "url": "https://files.pythonhosted.org/packages/64/5a/5b5b4af98fd171738704ccc1b46f2caa5ef2d80edd973a31baa63d82414c/meza-0.31.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6a6a47f23bfd0fb9e4a01601d92b9b4a", "sha256": "c15c1aef50218df08d19173bf7e051116fa1a4fe85e1ec447482b73bfc924be7" }, "downloads": -1, "filename": "meza-0.31.3.tar.gz", "has_sig": true, "md5_digest": "6a6a47f23bfd0fb9e4a01601d92b9b4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 147760, "upload_time": "2016-11-01T19:06:42", "url": "https://files.pythonhosted.org/packages/80/7f/f9f630d397be3614778fbefccebad2aa916e42a213ada53caa093a314fbe/meza-0.31.3.tar.gz" } ], "0.32.0": [ { "comment_text": "", "digests": { "md5": "d59261e85ec1bab6125a6380432f06d9", "sha256": "9d0d848a2eacaed93f64cbeff020b5a29d262ba12bc2ca60c019ee4bf720a06d" }, "downloads": -1, "filename": "meza-0.32.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "d59261e85ec1bab6125a6380432f06d9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 61630, "upload_time": "2017-03-28T09:54:12", "url": "https://files.pythonhosted.org/packages/f8/1d/75382fa1feee7b89fc6b052a8072dc2ef918fab73c4db1863849b30109a1/meza-0.32.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "001a9b70081999824757f2a3bed21a10", "sha256": "400bd868babb8a88874fe8bab6c2852391fa3463b31c41969f1d1fab7df39822" }, "downloads": -1, "filename": "meza-0.32.0.tar.gz", "has_sig": true, "md5_digest": "001a9b70081999824757f2a3bed21a10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 148223, "upload_time": "2017-03-28T09:54:17", "url": "https://files.pythonhosted.org/packages/b1/2e/666deb7b88677207430fc95441d97841ca02a216e897a2e5074d41436c5c/meza-0.32.0.tar.gz" } ], "0.33.0": [ { "comment_text": "", "digests": { "md5": "8b527d8e87a4f3a7e5941659449d009c", "sha256": "fb497327cab0fcc2917d6f95523e22afceaa002efc04b8706fe183175df2babf" }, "downloads": -1, "filename": "meza-0.33.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "8b527d8e87a4f3a7e5941659449d009c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 62159, "upload_time": "2017-04-01T06:53:54", "url": "https://files.pythonhosted.org/packages/4c/13/27162c9407f03f3e824ac1ebf6bfb2a2ba49df58b8f8923430a54b914f83/meza-0.33.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2fd4f0bcfb723f5c9d85fe366644feb8", "sha256": "76cbbc0d6080f36bc841aaea3d7fd6647a0b1b6ab7bc6cc20cd34290b24a0bb1" }, "downloads": -1, "filename": "meza-0.33.0.tar.gz", "has_sig": true, "md5_digest": "2fd4f0bcfb723f5c9d85fe366644feb8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 148922, "upload_time": "2017-04-01T06:53:57", "url": "https://files.pythonhosted.org/packages/e7/ef/dc4ba0e834ca1f1ae00bc823d93cccd5788c06aef3fb0d8c75f1daa7f031/meza-0.33.0.tar.gz" } ], "0.34.0": [ { "comment_text": "", "digests": { "md5": "a00e6cfb1ced78ddeaa440ef08b237f9", "sha256": "e025a1d40d2c5b19a0b8aabb9469f674f4ade3c5a47aa8dabb543597f297fa00" }, "downloads": -1, "filename": "meza-0.34.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "a00e6cfb1ced78ddeaa440ef08b237f9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 62950, "upload_time": "2017-04-06T20:23:43", "url": "https://files.pythonhosted.org/packages/d9/7e/9b518a6cf18efe9df5c61dc2d0a1bc70dec08811f062351ab846319c8787/meza-0.34.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2ddbf1d74a023fabe3458f5e4ad3df28", "sha256": "3de3c33b2c0d552bd50bd6436e2d7bda5576114a810219d5e3c3da014d857afc" }, "downloads": -1, "filename": "meza-0.34.0.tar.gz", "has_sig": true, "md5_digest": "2ddbf1d74a023fabe3458f5e4ad3df28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 149869, "upload_time": "2017-04-06T20:23:52", "url": "https://files.pythonhosted.org/packages/d6/0f/e4fbba0a3e84e0a1ddcecbea777864fc52b822021fbd503fc6846aaadf06/meza-0.34.0.tar.gz" } ], "0.35.0": [ { "comment_text": "", "digests": { "md5": "518004ce638ef3eb6f0305188f293512", "sha256": "42932a312ca27dfee9043667dc1771b9cd638849823be819496adafdef694126" }, "downloads": -1, "filename": "meza-0.35.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "518004ce638ef3eb6f0305188f293512", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 62961, "upload_time": "2017-04-06T20:23:17", "url": "https://files.pythonhosted.org/packages/8d/6d/49ee0a374bc3de589dc15461b60eb7e35dd6c6305d8a4b0ea1f1eafec9d8/meza-0.35.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "395c71a7bc34a0a7169dfe756a69c315", "sha256": "0b1eb3adde9c677fe2596e696644f2681f55f072d5c16bf0f55b51d2097e8538" }, "downloads": -1, "filename": "meza-0.35.0.tar.gz", "has_sig": true, "md5_digest": "395c71a7bc34a0a7169dfe756a69c315", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 149893, "upload_time": "2017-04-06T20:23:23", "url": "https://files.pythonhosted.org/packages/26/80/0afe3eb4b5b5f6fa56c9d13d5510ead09ec297f435354f1189009ab2fc23/meza-0.35.0.tar.gz" } ], "0.35.2": [ { "comment_text": "", "digests": { "md5": "abd7ec71593303cbed6cf8f7449e404f", "sha256": "110a4aa5cec9845033241bc24d8003b4604d9aa181b0ad5a1bcbe9960b8cd62c" }, "downloads": -1, "filename": "meza-0.35.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "abd7ec71593303cbed6cf8f7449e404f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63026, "upload_time": "2017-04-07T09:00:32", "url": "https://files.pythonhosted.org/packages/72/dd/c1305362fb831b2b871fa431aad042c612932cb3e758aae0abd2263ab93d/meza-0.35.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "33463ce4214aba7b61f06f3637a3bdf1", "sha256": "85c79904f3efb38ff3cb4c3c28f6857e5392c87b715907c09c8937b19d326276" }, "downloads": -1, "filename": "meza-0.35.2.tar.gz", "has_sig": true, "md5_digest": "33463ce4214aba7b61f06f3637a3bdf1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 150012, "upload_time": "2017-04-07T09:00:36", "url": "https://files.pythonhosted.org/packages/66/8d/3e1265e0d5a3f3ef4e6c41df4cc31936a97abe7597d272ac1f98dc5dbc78/meza-0.35.2.tar.gz" } ], "0.36.0": [ { "comment_text": "", "digests": { "md5": "a84981851e1723c7f1b82e6d684e44c2", "sha256": "8d662df16b5109ac0670c120b6f66e44f6d53c34d0c7df2aec1b2e893aaf5e7e" }, "downloads": -1, "filename": "meza-0.36.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "a84981851e1723c7f1b82e6d684e44c2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63398, "upload_time": "2017-04-11T19:49:58", "url": "https://files.pythonhosted.org/packages/ed/fc/48e598220d662749d461b04baa6e6665dd16cb34439832a2c4b31f4714ac/meza-0.36.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "168021807f57053a7d3b82327962d131", "sha256": "178aedab671f12e541a04065d741a62f9946b99e8581509b0c5f5a29c2177d71" }, "downloads": -1, "filename": "meza-0.36.0.tar.gz", "has_sig": true, "md5_digest": "168021807f57053a7d3b82327962d131", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 150408, "upload_time": "2017-04-11T19:50:02", "url": "https://files.pythonhosted.org/packages/c0/80/d4446b156bda56cab7100fb8b5a39448ce4bb4e0f13acd3bdd74302c0063/meza-0.36.0.tar.gz" } ], "0.36.1": [ { "comment_text": "", "digests": { "md5": "49d6945a8fa10f7648ff9aae5f25e779", "sha256": "b98e75bf472a208fbba3049fd5f0b5b33826475de39a79271a6f92d425ff6df5" }, "downloads": -1, "filename": "meza-0.36.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "49d6945a8fa10f7648ff9aae5f25e779", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63174, "upload_time": "2017-04-12T08:59:31", "url": "https://files.pythonhosted.org/packages/66/0a/e40fee1b96649b57ce217260655993c6a540e601f37ef379f108e6f9507d/meza-0.36.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "27b7a2153de48b8c60a024248b568702", "sha256": "3c3d1080aaa488be0717f58bb93abf794dff8bde2939e85c4dd8ffebacdd9656" }, "downloads": -1, "filename": "meza-0.36.1.tar.gz", "has_sig": true, "md5_digest": "27b7a2153de48b8c60a024248b568702", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 150188, "upload_time": "2017-04-12T08:59:35", "url": "https://files.pythonhosted.org/packages/56/f9/e1163c6dbc47f00671820e12036e3c2ef53e7dedde050f99356990142d55/meza-0.36.1.tar.gz" } ], "0.36.2": [ { "comment_text": "", "digests": { "md5": "09e575db024934b74c2538c7aad71e3c", "sha256": "9c78ef6937fd5a36dc4934b64e2f432c1d7e76dd60f28700ed16a7c0f28ec597" }, "downloads": -1, "filename": "meza-0.36.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "09e575db024934b74c2538c7aad71e3c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63177, "upload_time": "2017-04-12T19:15:08", "url": "https://files.pythonhosted.org/packages/59/e9/1e5cc46b26173948eab5ba226b7876ddaa59fc59f5afcd3d074b5ddb69cd/meza-0.36.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0c6a0674431e8ffb88925fb5c3b00464", "sha256": "7ad788b94fb2f213dc35d787dc0c1b2e4d675d3c20aaa1e6d58c8dbb54c1ddf4" }, "downloads": -1, "filename": "meza-0.36.2.tar.gz", "has_sig": true, "md5_digest": "0c6a0674431e8ffb88925fb5c3b00464", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 150288, "upload_time": "2017-04-12T19:15:17", "url": "https://files.pythonhosted.org/packages/52/18/ad9cadecd50058df21b22ae0a1a9a5f17ed385a4d4f4885016394d5316fc/meza-0.36.2.tar.gz" } ], "0.37.0": [ { "comment_text": "", "digests": { "md5": "45844d61dadf5d4201548f7b51fca359", "sha256": "fd5dce6a436542106a036dd16122db97618ea5cbd83a40d2c4c685e310f72375" }, "downloads": -1, "filename": "meza-0.37.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "45844d61dadf5d4201548f7b51fca359", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63344, "upload_time": "2017-05-01T16:14:31", "url": "https://files.pythonhosted.org/packages/05/76/8dea4e01fda8da6fee9ceb39555caf47bdc3fb1755aba96751e058f56a35/meza-0.37.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "30eb3834ac873a880c62477f5ef3c8b5", "sha256": "16fa4693bde4f8534d5fc04b7206799f6652fa8c30c711a464b162af1f4c10d4" }, "downloads": -1, "filename": "meza-0.37.0.tar.gz", "has_sig": true, "md5_digest": "30eb3834ac873a880c62477f5ef3c8b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 150364, "upload_time": "2017-05-01T16:14:36", "url": "https://files.pythonhosted.org/packages/4c/9f/551423c91f8845b0b335c8ed8098fd832e77a40183801b09fa91283e3ccd/meza-0.37.0.tar.gz" } ], "0.38.0": [ { "comment_text": "", "digests": { "md5": "de2193abdfec2612b525b05eeaec7183", "sha256": "ec50aa20b2df348a6c552d3a5345f64e12d74940655e480651913d9b382470a5" }, "downloads": -1, "filename": "meza-0.38.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "de2193abdfec2612b525b05eeaec7183", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63353, "upload_time": "2017-07-28T18:06:48", "url": "https://files.pythonhosted.org/packages/c2/ad/627bab7d41d7d9c0ada4e684c0427de113039a8e6c53ef6785af5c2caed9/meza-0.38.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d77b7e0670741605e0ef1481d7486458", "sha256": "e741b06481a515e276907710a15ddafe08ecc769bf30cb9187f22e93f21143df" }, "downloads": -1, "filename": "meza-0.38.0.tar.gz", "has_sig": true, "md5_digest": "d77b7e0670741605e0ef1481d7486458", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 150413, "upload_time": "2017-07-28T18:06:55", "url": "https://files.pythonhosted.org/packages/54/4b/586a8c131597779c4c616426ad0cb89b5ce5c8ba74698e3ad2a3ceb46b2b/meza-0.38.0.tar.gz" } ], "0.38.1": [ { "comment_text": "", "digests": { "md5": "67dc50ecb79e898cb27fab407bde9658", "sha256": "78964cd9261be8bb639d5ef57a83bd1d0c4ef906757de805abc0fe3b0dcafaaa" }, "downloads": -1, "filename": "meza-0.38.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "67dc50ecb79e898cb27fab407bde9658", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63819, "upload_time": "2017-08-23T09:17:51", "url": "https://files.pythonhosted.org/packages/2e/91/7eb2daa71ab54304afea063bdad2555180e25d632873f6dc56827135577e/meza-0.38.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8444c50f122566665f2deb20a8c21b4a", "sha256": "30e886e07d6c192c065755fd4db3d93e1b139c5ded89d00e0e73889530e2da1b" }, "downloads": -1, "filename": "meza-0.38.1.tar.gz", "has_sig": true, "md5_digest": "8444c50f122566665f2deb20a8c21b4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 150802, "upload_time": "2017-08-23T09:18:00", "url": "https://files.pythonhosted.org/packages/6b/27/69cd7142090d7eaa99da2865188b15852a93d972ed3b78e200b5a0b4218d/meza-0.38.1.tar.gz" } ], "0.38.2": [ { "comment_text": "", "digests": { "md5": "6e31068d44421f41c16a0e0cc7e1daa0", "sha256": "125a44cef9034a541c3ff87e39d885fe46d3e9a0b2dd1f17d88ead58c0520b8d" }, "downloads": -1, "filename": "meza-0.38.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "6e31068d44421f41c16a0e0cc7e1daa0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63479, "upload_time": "2017-08-23T13:07:18", "url": "https://files.pythonhosted.org/packages/0c/d8/d19320e26c5277271ce12824e21af12a6a582659d201b40ffb2923084022/meza-0.38.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c73c45ee0521ba2534617089c93ae466", "sha256": "9f71688b3420fc2c85fcd2defda9ffd3f7d9a18dbd8be97d2a6852fee29ad055" }, "downloads": -1, "filename": "meza-0.38.2.tar.gz", "has_sig": true, "md5_digest": "c73c45ee0521ba2534617089c93ae466", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 150477, "upload_time": "2017-08-23T13:07:21", "url": "https://files.pythonhosted.org/packages/40/3b/5aba83be03e3fea8d32771ea990ef2218d163cd9c0a1632e042e2daf6bba/meza-0.38.2.tar.gz" } ], "0.39.0": [ { "comment_text": "", "digests": { "md5": "10765812d13acf14bcb9e91058945355", "sha256": "394863a7f33edfa648649f3963ae240a37fef3edbafd20d9dd1caad178180011" }, "downloads": -1, "filename": "meza-0.39.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "10765812d13acf14bcb9e91058945355", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63800, "upload_time": "2017-08-23T13:07:46", "url": "https://files.pythonhosted.org/packages/97/9f/207614658fa67d51b10fab95f63533d83c8aa40324ac5e7ef5599178cabf/meza-0.39.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b259fc0f58aca8ab6eabc29f1481ed44", "sha256": "993e1c311d3d3633a6cd9d1c1c308d8f2cb8324f1a618da9444434866dd803cc" }, "downloads": -1, "filename": "meza-0.39.0.tar.gz", "has_sig": true, "md5_digest": "b259fc0f58aca8ab6eabc29f1481ed44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 152900, "upload_time": "2017-08-23T13:07:50", "url": "https://files.pythonhosted.org/packages/d0/d6/5fe7fe7c7d3fcf0bfebdfa9969e7c58ecc340a5677e6d2f2ed0fbc372294/meza-0.39.0.tar.gz" } ], "0.40.0": [ { "comment_text": "", "digests": { "md5": "7331530ffbb21b3be784a5ed3a9f6762", "sha256": "27f67bdb532106dcc853197388f06b5109579b1a373a663d52b460c9d5849b5c" }, "downloads": -1, "filename": "meza-0.40.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "7331530ffbb21b3be784a5ed3a9f6762", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 55820, "upload_time": "2018-04-07T20:23:45", "url": "https://files.pythonhosted.org/packages/5a/74/2eb4e1020114a5b24708ab852d4b46366cecf784112a1af4246d569d844e/meza-0.40.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "920f1953e0ca582cd1b21637acc72c8a", "sha256": "6cf7f297b3c7fc2659f08db5f8ae1b74709f22a878ef153263d419517e8bcf74" }, "downloads": -1, "filename": "meza-0.40.0.tar.gz", "has_sig": true, "md5_digest": "920f1953e0ca582cd1b21637acc72c8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 158921, "upload_time": "2018-04-07T20:23:52", "url": "https://files.pythonhosted.org/packages/e3/ce/edfd0917f9d9f45d9bd7c718f55bf7ba12f9c37b224367bd4e158d246b35/meza-0.40.0.tar.gz" } ], "0.41.0": [ { "comment_text": "", "digests": { "md5": "c9a788f2965214fdfde987f2e8d5f189", "sha256": "e80a49b15a3bacb80083727bc190060755052ec8e32671df96bccd64a35951cb" }, "downloads": -1, "filename": "meza-0.41.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "c9a788f2965214fdfde987f2e8d5f189", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56259, "upload_time": "2018-04-10T19:15:14", "url": "https://files.pythonhosted.org/packages/46/41/a1635a6067afc20e2ac5f8bc2a5718cc9e1c016bcf2dd95048fa5d188042/meza-0.41.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f1af0c2ef15670d44f1fa268e9d92ad0", "sha256": "e4a5abf7b14bb723521de7cf40a4067168665f7e57255c00bdc48aea6e6ec3a4" }, "downloads": -1, "filename": "meza-0.41.0.tar.gz", "has_sig": true, "md5_digest": "f1af0c2ef15670d44f1fa268e9d92ad0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 160647, "upload_time": "2018-04-10T19:15:17", "url": "https://files.pythonhosted.org/packages/f1/23/cc80fb5fe8f75a2415fc07acddd90f3d6963a631e1b7c04366664c10ac55/meza-0.41.0.tar.gz" } ], "0.41.1": [ { "comment_text": "", "digests": { "md5": "5ff0e50f0a2b7818ebbb268dbb8ff1da", "sha256": "4bd5901624a23d235a3655690d415f8154b48d2635658bdb395af8dcd977eca2" }, "downloads": -1, "filename": "meza-0.41.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "5ff0e50f0a2b7818ebbb268dbb8ff1da", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56433, "upload_time": "2018-05-18T19:31:26", "url": "https://files.pythonhosted.org/packages/d5/99/d2b64bb32e00c9a353b89b3df58f80a12df4c2c5453de7723227cb2fdc33/meza-0.41.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e52dcf0796f177a5d38aac93733767fb", "sha256": "f137d529ad89b62e083b5ae4b1fbf46000794c0d25afd44f630ea19e98aa2714" }, "downloads": -1, "filename": "meza-0.41.1.tar.gz", "has_sig": true, "md5_digest": "e52dcf0796f177a5d38aac93733767fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 160911, "upload_time": "2018-05-18T19:31:28", "url": "https://files.pythonhosted.org/packages/2d/c6/a02e253ab2966a57f9520effc2a9b5f2270cacf44efa9f47b224ead81499/meza-0.41.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5ff0e50f0a2b7818ebbb268dbb8ff1da", "sha256": "4bd5901624a23d235a3655690d415f8154b48d2635658bdb395af8dcd977eca2" }, "downloads": -1, "filename": "meza-0.41.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "5ff0e50f0a2b7818ebbb268dbb8ff1da", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56433, "upload_time": "2018-05-18T19:31:26", "url": "https://files.pythonhosted.org/packages/d5/99/d2b64bb32e00c9a353b89b3df58f80a12df4c2c5453de7723227cb2fdc33/meza-0.41.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e52dcf0796f177a5d38aac93733767fb", "sha256": "f137d529ad89b62e083b5ae4b1fbf46000794c0d25afd44f630ea19e98aa2714" }, "downloads": -1, "filename": "meza-0.41.1.tar.gz", "has_sig": true, "md5_digest": "e52dcf0796f177a5d38aac93733767fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 160911, "upload_time": "2018-05-18T19:31:28", "url": "https://files.pythonhosted.org/packages/2d/c6/a02e253ab2966a57f9520effc2a9b5f2270cacf44efa9f47b224ead81499/meza-0.41.1.tar.gz" } ] }