{ "info": { "author": "S. Andrew Sheppard", "author_email": "andrew@wq.io", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering :: GIS", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Text Processing :: Markup :: XML", "Topic :: Utilities" ], "description": "|wq.io|\n\n`wq.io `__ is a Pythonic library for consuming\n(input), iterating over, and generating (output) external data resources\nin various formats. wq.io facilitates interoperability between the `wq\nframework `__ and other systems and formats.\n\nwq.io is `designed to be customized `__,\nwith a `base class `__ and modular mixin\nclasses that handle `loading `__,\n`parsing `__, and\n`mapping `__ external data to a convenient\nAPI.\n\n|Latest PyPI Release| |Release Notes| |Documentation| |License| |GitHub\nStars| |GitHub Forks| |GitHub Issues|\n\n|Travis Build Status| |Python Support|\n\n Somewhat coincidentally, https://wq.io is also the URL for the\n website describing the wq framework as a whole. The documentation\n for wq.io (the library) is available on wq.io (the website) at\n https://wq.io/wq.io.\n\nGetting Started\n---------------\n\n.. code:: bash\n\n # Recommended: create virtual environment\n # python3 -m venv venv\n # . venv/bin/activate\n\n # Install entire wq suite (recommended)\n pip install wq\n\n # Install only wq.io\n pip install wq.io\n\n # To enable wq.io's GIS support\n pip install geopandas # includes Shapely & Fiona\n\n # To enable wq.io's Excel write support\n pip install xlwt # xls support\n pip install xlsxwriter # xlsx support\n # (xls/xlsx read support is enabled by default)\n\nSee `the wq documentation `__ for more information.\n\nFeatures\n--------\n\nwq.io provides a general purpose API for loading, iterating over, and\nwriting tabular datasets. The basic idea is to avoid needing to remember\nthe unique usage of e.g.\n`csv `__,\n`xlrd `__, or\n`xml.etree `__\nevery time one needs to work with external data. Instead, wq.io\nabstracts these libraries into a consistent interface that works as an\n`iterable `__ of\n`namedtuples `__.\nWhenever possible, the field names for a dataset are automatically\ndetermined from the source file, e.g. the column headers in an Excel\nspreadsheet.\n\n.. code:: python\n\n from wq.io import ExcelFileIO\n data = ExcelFileIO(filename='example.xls')\n for row in data:\n print(row.name, row.date)\n\nwq.io provides a number of built-in classes like the above, including a\n``CsvFileIO``, ``XmlFileIO``, and ``JsonFileIO``. There is also a\nconvenience function, ``load_file()``, that attempts to automatically\ndetermine which class to use for a given file.\n\n.. code:: python\n\n from wq.io import load_file\n data = load_file('example.csv')\n for row in data:\n print(row.name, row.date)\n\nAll of the included ``*FileIO`` classes support both reading and writing\nto external files, though write support for Excel files requires\nadditional libraries (`xlwt `__ and\n`xlsxwriter `__) that aren't listed\nas dependencies.\n\nNetwork Client\n~~~~~~~~~~~~~~\n\nwq.io also provides network-capable equivalents of each of the above\nclasses, to facilitate loading data from third party webservices.\n\n.. code:: python\n\n from wq.io import JsonNetIO\n class WebServiceIO(JsonNetIO):\n url = \"http://example.com/api\"\n \n data = WebServiceIO(params={'type': 'all'})\n for row in data:\n print(row.timestamp, row.value)\n\nThe powerful `requests `__ library is used\ninternally to load data over HTTP.\n\nPandas Analysis\n~~~~~~~~~~~~~~~\n\nWhen `Pandas `__ is installed, the\n``as_dataframe()`` method on wq.io classes can be used to create a\n`DataFrame `__,\nenabling more extensive analysis possibilities.\n\n.. code:: python\n\n instance = WebServiceIO(params={'type': 'all'})\n df = instance.as_dataframe()\n print(df.value.mean())\n\nGIS Support\n~~~~~~~~~~~\n\nWhen `Fiona `__ and\n`Shapely `__ are installed, wq.io\ncan also open and create shapefiles and other OGR-compatible geographic\ndata formats.\n\n.. code:: python\n\n from wq.io import ShapeIO\n data = ShapeIO(filename='sites.shp')\n for id, site in data.items():\n print(id, site.geometry.wkt)\n\nExtending wq.io\n~~~~~~~~~~~~~~~\n\nEach ``IO`` class is composed of mixin classes\n(`loaders `__,\n`parsers `__, and\n`mappers `__) that handle the various steps\nof the process. By extending these mixin or the pre-mixed classes above,\nit is straightforward to `extend wq.io `__\nto support arbitrary formats. The `climata\nlibrary `__ provides a number of\nexamples of custom ``IO`` classes for loading climate and hydrology\ndata.\n\n.. |wq.io| image:: https://raw.github.com/wq/wq/master/images/256/wq.io.png\n :target: https://wq.io/wq.io\n.. |Latest PyPI Release| image:: https://img.shields.io/pypi/v/wq.io.svg\n :target: https://pypi.org/project/wq.io\n.. |Release Notes| image:: https://img.shields.io/github/release/wq/wq.io.svg\n :target: https://github.com/wq/wq.io/releases\n.. |Documentation| image:: https://img.shields.io/badge/Docs-1.1-blue.svg\n :target: https://wq.io/wq.io\n.. |License| image:: https://img.shields.io/pypi/l/wq.io.svg\n :target: https://wq.io/license\n.. |GitHub Stars| image:: https://img.shields.io/github/stars/wq/wq.io.svg\n :target: https://github.com/wq/wq.io/stargazers\n.. |GitHub Forks| image:: https://img.shields.io/github/forks/wq/wq.io.svg\n :target: https://github.com/wq/wq.io/network\n.. |GitHub Issues| image:: https://img.shields.io/github/issues/wq/wq.io.svg\n :target: https://github.com/wq/wq.io/issues\n.. |Travis Build Status| image:: https://img.shields.io/travis/wq/wq.io.svg\n :target: https://travis-ci.org/wq/wq.io\n.. |Python Support| image:: https://img.shields.io/pypi/pyversions/wq.io.svg\n :target: https://pypi.python.org/pypi/wq.io\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://wq.io/wq.io", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "wq.io", "package_url": "https://pypi.org/project/wq.io/", "platform": "", "project_url": "https://pypi.org/project/wq.io/", "project_urls": { "Homepage": "https://wq.io/wq.io" }, "release_url": "https://pypi.org/project/wq.io/1.1.0/", "requires_dist": null, "requires_python": "", "summary": "Consistent iterable API for reading and writing to external datasets", "version": "1.1.0" }, "last_serial": 3955055, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "d640fe19b6929f4e33f4645ef07497bb", "sha256": "c92dc8c2f22f56dd40c63ea7ed4c9e469a70d83acee378b96abc074ace1827cd" }, "downloads": -1, "filename": "wq.io-0.1.0.tar.gz", "has_sig": false, "md5_digest": "d640fe19b6929f4e33f4645ef07497bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8874, "upload_time": "2013-06-01T03:32:19", "url": "https://files.pythonhosted.org/packages/20/78/7bd82474bd83cb57f9758f5ca4aa6634d0b1c717b7d0ad2b6e110e75bec2/wq.io-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "c024d9f9f824c5a07826c4ca4f8aea36", "sha256": "0b1db04d34df56bfef7c07afd4dd53c7af569c4d044103c23460c23aa5071e8b" }, "downloads": -1, "filename": "wq.io-0.2.0.tar.gz", "has_sig": false, "md5_digest": "c024d9f9f824c5a07826c4ca4f8aea36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9682, "upload_time": "2013-09-17T20:55:53", "url": "https://files.pythonhosted.org/packages/28/39/e38aeaf6748f2b1fbd0f7663166baffafd9e798b78ca9cdf24643cd2e48c/wq.io-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "f49640416c18ad68c197a777914da226", "sha256": "fbc50254a0cbff6761291d721e19863249c8b85c84d865e99f53d78f2e35209c" }, "downloads": -1, "filename": "wq.io-0.3.0.tar.gz", "has_sig": false, "md5_digest": "f49640416c18ad68c197a777914da226", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11460, "upload_time": "2013-10-29T00:49:48", "url": "https://files.pythonhosted.org/packages/c5/0e/883cecde5dad21d574188afc56fed91770573892d217bf7a30fef81169eb/wq.io-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "1e0187c3571298e23cd9305b7651305e", "sha256": "ae609c2f9c206068bffad6ee4de5196958ea1c47da8305745495dfdd076b1e4b" }, "downloads": -1, "filename": "wq.io-0.4.0.tar.gz", "has_sig": false, "md5_digest": "1e0187c3571298e23cd9305b7651305e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11345, "upload_time": "2013-12-11T06:38:12", "url": "https://files.pythonhosted.org/packages/6c/95/925f02403f730aa62146fa5d5296e40f62c78c7be69a532b130821e86aff/wq.io-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "f4408b640fbae1000d540ef7a339d56d", "sha256": "d82562503fb3688a83f0f60355d6fb7e22bbc26e846b96a77c0da3759a4cd02c" }, "downloads": -1, "filename": "wq.io-0.4.1.tar.gz", "has_sig": false, "md5_digest": "f4408b640fbae1000d540ef7a339d56d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11473, "upload_time": "2014-01-28T19:17:35", "url": "https://files.pythonhosted.org/packages/6a/63/b800951d2ae50a62c3fcc8fe27ce20754c982341d0869cc263420a5eb13a/wq.io-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "65347f410510b759001823b80830c039", "sha256": "12a733dc796d9d356da170dddf833336f52bc0746237613abe7129cae81611ac" }, "downloads": -1, "filename": "wq.io-0.4.2.tar.gz", "has_sig": false, "md5_digest": "65347f410510b759001823b80830c039", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11534, "upload_time": "2014-02-12T16:23:48", "url": "https://files.pythonhosted.org/packages/b0/61/7eccb2cfd067181eb41585cde9107174b7ff7436805324a5f38d13414750/wq.io-0.4.2.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "6dd5150db303a206e2dea5d848571fcb", "sha256": "1ea66a393e1da7ef2ffaecc6dfe0d9c9b71d0aeb7fd0be6aba2b931699e38d45" }, "downloads": -1, "filename": "wq.io-0.5.0.tar.gz", "has_sig": false, "md5_digest": "6dd5150db303a206e2dea5d848571fcb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12083, "upload_time": "2014-06-13T21:08:50", "url": "https://files.pythonhosted.org/packages/89/20/8a7e9261a419f04ca5479168ab0e95409688a54d3a30e4530788727d93b6/wq.io-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "5e5a0a662743545fae6a287c7abcd91c", "sha256": "19ed653bccd237d534c3b298c1f872fa33d32e4f137928df1d75019449f366ff" }, "downloads": -1, "filename": "wq.io-0.5.1.tar.gz", "has_sig": false, "md5_digest": "5e5a0a662743545fae6a287c7abcd91c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12636, "upload_time": "2014-07-08T21:09:52", "url": "https://files.pythonhosted.org/packages/6e/f9/1c87614fd7e93f1643751cc5715e8d6ff38c2557da27211044ef445da83a/wq.io-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "fafd1ba6250f77f92ffe54e86709a7cf", "sha256": "c8c2745ed0e5dc38f5f9b74cff550efc8c1bebddefca14152f3b91f4f07d340c" }, "downloads": -1, "filename": "wq.io-0.6.0.tar.gz", "has_sig": false, "md5_digest": "fafd1ba6250f77f92ffe54e86709a7cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15649, "upload_time": "2014-07-22T14:17:54", "url": "https://files.pythonhosted.org/packages/9a/b3/9710a9a4ba207b4eb6174f09537ce723287791bed5adb7a39e8ed3f4f921/wq.io-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "a504dc7db5edefa0bcc69036f0c79514", "sha256": "0517291c97fbc3faf8f863072345fd1feaa4979d9c46744664318ef335ef62e6" }, "downloads": -1, "filename": "wq.io-0.6.1.tar.gz", "has_sig": false, "md5_digest": "a504dc7db5edefa0bcc69036f0c79514", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13980, "upload_time": "2014-09-02T22:18:39", "url": "https://files.pythonhosted.org/packages/8c/33/2dfa39fefeb1a84b3fcebccbbbd2c308cb54a51c6909cd64169b81d19aba/wq.io-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "fb9652ec3cc2fe43ba82e3a79d4cbf0b", "sha256": "699c51fc1646dc19f43feb3c00319d3b2d33084be3cfaa4095a22508172635e8" }, "downloads": -1, "filename": "wq.io-0.6.2.tar.gz", "has_sig": false, "md5_digest": "fb9652ec3cc2fe43ba82e3a79d4cbf0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14364, "upload_time": "2014-09-07T22:37:32", "url": "https://files.pythonhosted.org/packages/38/ba/dc426a3448f1555dbdf2776072f606e87d157af8092087ea82443efa8302/wq.io-0.6.2.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "8bbce469b06cac1ae42554590d776479", "sha256": "952a8d501bca3b7918d19e3d944a75993aafae19b77a52367728bf54c2608a21" }, "downloads": -1, "filename": "wq.io-0.7.0.tar.gz", "has_sig": false, "md5_digest": "8bbce469b06cac1ae42554590d776479", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15203, "upload_time": "2014-11-17T17:26:53", "url": "https://files.pythonhosted.org/packages/92/bd/18d6acba777cf872d2ea711c476fb1d92b7bee1b65a037b9171fa0648399/wq.io-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "14a7b49365802c8adfb42bd19912fdc7", "sha256": "92c46a53a7e37cfc1a6985b2ad0b6c20e546259639c844b265df138d1d87a1cc" }, "downloads": -1, "filename": "wq.io-0.7.1.tar.gz", "has_sig": false, "md5_digest": "14a7b49365802c8adfb42bd19912fdc7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15225, "upload_time": "2015-01-31T18:04:32", "url": "https://files.pythonhosted.org/packages/62/2c/ab11fde46f6632c90cd20201625f0a59b8d6eb4fd3d9cb9e2bf68024b00a/wq.io-0.7.1.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "ee4a38d16763b68e14e5167d3f7a69ce", "sha256": "8a19e165ec026170317f720339af1c87833e71b4065d8553387f7da57a86cff2" }, "downloads": -1, "filename": "wq.io-0.8.0.tar.gz", "has_sig": false, "md5_digest": "ee4a38d16763b68e14e5167d3f7a69ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16332, "upload_time": "2015-06-16T18:57:15", "url": "https://files.pythonhosted.org/packages/4c/b2/dc70770317be00c80d31a05aae3c831cf0ec6307b7e6fedbd70da6ff4565/wq.io-0.8.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "7053ff0de8a810ee7f6a01ba99df5782", "sha256": "24948f1f807b85c1938935861ee7488982e635291e681c3604fc656a2a3c3bb8" }, "downloads": -1, "filename": "wq.io-1.0.0.tar.gz", "has_sig": false, "md5_digest": "7053ff0de8a810ee7f6a01ba99df5782", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17486, "upload_time": "2017-07-19T16:53:13", "url": "https://files.pythonhosted.org/packages/70/5a/9d6be00671da4fc53f87ce2f49857b955d6491bee16edfe518e00a620e73/wq.io-1.0.0.tar.gz" } ], "1.0.0a1": [ { "comment_text": "", "digests": { "md5": "173179439574b42e434e2b5573d897d6", "sha256": "38610cf4545cba4c81795fe8ff6034e521a3176894ac799f8a3bec7372f0e1f0" }, "downloads": -1, "filename": "wq.io-1.0.0a1.tar.gz", "has_sig": false, "md5_digest": "173179439574b42e434e2b5573d897d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16340, "upload_time": "2016-03-22T02:43:31", "url": "https://files.pythonhosted.org/packages/b6/bb/0a50757e9adbd1a5506f9728b9f79abec68ac4e40b8f13452bdaa79cc053/wq.io-1.0.0a1.tar.gz" } ], "1.0.0b1": [ { "comment_text": "", "digests": { "md5": "551b26c27b74c5db1b9c99b18c3763b6", "sha256": "0a01c558f5c8c2c5bf1b04297645610e516db72aad22ec29ab37fc41f8813876" }, "downloads": -1, "filename": "wq.io-1.0.0b1.tar.gz", "has_sig": false, "md5_digest": "551b26c27b74c5db1b9c99b18c3763b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16687, "upload_time": "2016-09-08T02:02:40", "url": "https://files.pythonhosted.org/packages/05/ab/9909b56e6ad907667d0e780f55488a0ad2243ba9569895fdb7cb437a685b/wq.io-1.0.0b1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "1d9d912cec2fe50bdc3ce441f19224c4", "sha256": "23f1ed5712983160b9cef9598f5a789553749ea49665a8bce85b5b51b4c248b5" }, "downloads": -1, "filename": "wq.io-1.1.0.tar.gz", "has_sig": false, "md5_digest": "1d9d912cec2fe50bdc3ce441f19224c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17516, "upload_time": "2018-06-12T19:16:38", "url": "https://files.pythonhosted.org/packages/b3/2e/75f4889350f78035081470387f50363cbda798bc639c440c107e927f6a37/wq.io-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1d9d912cec2fe50bdc3ce441f19224c4", "sha256": "23f1ed5712983160b9cef9598f5a789553749ea49665a8bce85b5b51b4c248b5" }, "downloads": -1, "filename": "wq.io-1.1.0.tar.gz", "has_sig": false, "md5_digest": "1d9d912cec2fe50bdc3ce441f19224c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17516, "upload_time": "2018-06-12T19:16:38", "url": "https://files.pythonhosted.org/packages/b3/2e/75f4889350f78035081470387f50363cbda798bc639c440c107e927f6a37/wq.io-1.1.0.tar.gz" } ] }