{ "info": { "author": "C.W.", "author_email": "wangc_2011@hotmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Office/Business", "Topic :: Software Development :: Libraries", "Topic :: Utilities" ], "description": "================================================================================\npyexcel-odsr - Let you focus on data, instead of ods format\n================================================================================\n\n.. image:: https://raw.githubusercontent.com/pyexcel/pyexcel.github.io/master/images/patreon.png\n :target: https://www.patreon.com/pyexcel\n\n.. image:: https://api.travis-ci.org/pyexcel/pyexcel-odsr.svg?branch=master\n :target: http://travis-ci.org/pyexcel/pyexcel-odsr\n\n.. image:: https://codecov.io/gh/pyexcel/pyexcel-odsr/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/pyexcel/pyexcel-odsr\n\n.. image:: https://img.shields.io/gitter/room/gitterHQ/gitter.svg\n :target: https://gitter.im/pyexcel/Lobby\n\n\n**pyexcel-odsr** is a specialized ods reader based on tailored ods reader from\n`messytables `_.\nYou are likely to use it with `pyexcel `_.\nDifferring from `pyexcel-ods `_ and\n`pyexcel-ods3 `_ in handling ods file, this\nlibrary could read partial content from a huge ods file.\n\n\nKnown constraints\n==================\n\nFonts, colors and charts are not supported.\n\nInstallation\n================================================================================\n\n\nYou can install pyexcel-odsr via pip:\n\n.. code-block:: bash\n\n $ pip install pyexcel-odsr\n\n\nor clone it and install it:\n\n.. code-block:: bash\n\n $ git clone https://github.com/pyexcel/pyexcel-odsr.git\n $ cd pyexcel-odsr\n $ python setup.py install\n\nSupport the project\n================================================================================\n\nIf your company has embedded pyexcel and its components into a revenue generating\nproduct, please `support me on patreon `_ to\nmaintain the project and develop it further.\n\nIf you are an individual, you are welcome to support me too on patreon and for however long\nyou feel like. As a patreon, you will receive\n`early access to pyexcel related contents `_.\n\nWith your financial support, I will be able to invest\na little bit more time in coding, documentation and writing interesting posts.\n\n\nUsage\n================================================================================\n\nAs a standalone library\n--------------------------------------------------------------------------------\n\nRead from an ods file\n********************************************************************************\n\nHere's the sample code:\n\n.. code-block:: python\n\n >>> from pyexcel_odsr import get_data\n >>> data = get_data(\"your_file.ods\")\n >>> import json\n >>> print(json.dumps(data))\n {\"Sheet 1\": [[1, 2, 3], [4, 5, 6]], \"Sheet 2\": [[\"row 1\", \"row 2\", \"row 3\"]]}\n\n\n\nRead from an ods from memory\n********************************************************************************\n\nContinue from previous example:\n\n.. code-block:: python\n\n >>> # This is just an illustration\n >>> # In reality, you might deal with ods file upload\n >>> # where you will read from requests.FILES['YOUR_ODS_FILE']\n >>> data = get_data(io)\n >>> print(json.dumps(data))\n {\"Sheet 1\": [[1, 2, 3], [4, 5, 6]], \"Sheet 2\": [[7, 8, 9], [10, 11, 12]]}\n\n\nPagination feature\n********************************************************************************\n\n\n\nLet's assume the following file is a huge ods file:\n\n.. code-block:: python\n\n >>> huge_data = [\n ... [1, 21, 31],\n ... [2, 22, 32],\n ... [3, 23, 33],\n ... [4, 24, 34],\n ... [5, 25, 35],\n ... [6, 26, 36]\n ... ]\n >>> sheetx = {\n ... \"huge\": huge_data\n ... }\n >>> save_data(\"huge_file.ods\", sheetx)\n\nAnd let's pretend to read partial data:\n\n.. code-block:: python\n\n >>> partial_data = get_data(\"huge_file.ods\", start_row=2, row_limit=3)\n >>> print(json.dumps(partial_data))\n {\"huge\": [[3, 23, 33], [4, 24, 34], [5, 25, 35]]}\n\nAnd you could as well do the same for columns:\n\n.. code-block:: python\n\n >>> partial_data = get_data(\"huge_file.ods\", start_column=1, column_limit=2)\n >>> print(json.dumps(partial_data))\n {\"huge\": [[21, 31], [22, 32], [23, 33], [24, 34], [25, 35], [26, 36]]}\n\nObvious, you could do both at the same time:\n\n.. code-block:: python\n\n >>> partial_data = get_data(\"huge_file.ods\",\n ... start_row=2, row_limit=3,\n ... start_column=1, column_limit=2)\n >>> print(json.dumps(partial_data))\n {\"huge\": [[23, 33], [24, 34], [25, 35]]}\n\nAs a pyexcel plugin\n--------------------------------------------------------------------------------\n\nNo longer, explicit import is needed since pyexcel version 0.2.2. Instead,\nthis library is auto-loaded. So if you want to read data in ods format,\ninstalling it is enough.\n\n\nReading from an ods file\n********************************************************************************\n\nHere is the sample code:\n\n.. code-block:: python\n\n >>> import pyexcel as pe\n >>> sheet = pe.get_book(file_name=\"your_file.ods\")\n >>> sheet\n Sheet 1:\n +---+---+---+\n | 1 | 2 | 3 |\n +---+---+---+\n | 4 | 5 | 6 |\n +---+---+---+\n Sheet 2:\n +-------+-------+-------+\n | row 1 | row 2 | row 3 |\n +-------+-------+-------+\n\n\n\nReading from a IO instance\n********************************************************************************\n\nYou got to wrap the binary content with stream to get ods working:\n\n.. code-block:: python\n\n >>> # This is just an illustration\n >>> # In reality, you might deal with ods file upload\n >>> # where you will read from requests.FILES['YOUR_ODS_FILE']\n >>> odsfile = \"another_file.ods\"\n >>> with open(odsfile, \"rb\") as f:\n ... content = f.read()\n ... r = pe.get_book(file_type=\"ods\", file_content=content)\n ... print(r)\n ...\n Sheet 1:\n +---+---+---+\n | 1 | 2 | 3 |\n +---+---+---+\n | 4 | 5 | 6 |\n +---+---+---+\n Sheet 2:\n +-------+-------+-------+\n | row 1 | row 2 | row 3 |\n +-------+-------+-------+\n\n\n\n\nLicense\n================================================================================\n\nNew BSD License\n\nDeveloper guide\n==================\n\nDevelopment steps for code changes\n\n#. git clone https://github.com/pyexcel/pyexcel-odsr.git\n#. cd pyexcel-odsr\n\nUpgrade your setup tools and pip. They are needed for development and testing only:\n\n#. pip install --upgrade setuptools pip\n\nThen install relevant development requirements:\n\n#. pip install -r rnd_requirements.txt # if such a file exists\n#. pip install -r requirements.txt\n#. pip install -r tests/requirements.txt\n\nOnce you have finished your changes, please provide test case(s), relevant documentation\nand update CHANGELOG.rst.\n\n.. note::\n\n As to rnd_requirements.txt, usually, it is created when a dependent\n library is not released. Once the dependecy is installed\n (will be released), the future\n version of the dependency in the requirements.txt will be valid.\n\n\nHow to test your contribution\n------------------------------\n\nAlthough `nose` and `doctest` are both used in code testing, it is adviable that unit tests are put in tests. `doctest` is incorporated only to make sure the code examples in documentation remain valid across different development releases.\n\nOn Linux/Unix systems, please launch your tests like this::\n\n $ make\n\nOn Windows systems, please issue this command::\n\n > test.bat\n\nHow to update test environment and update documentation\n---------------------------------------------------------\n\nAdditional steps are required:\n\n#. pip install moban\n#. git clone https://github.com/moremoban/setupmobans.git # generic setup\n#. git clone https://github.com/pyexcel/pyexcel-commons.git commons\n#. make your changes in `.moban.d` directory, then issue command `moban`\n\nWhat is pyexcel-commons\n---------------------------------\n\nMany information that are shared across pyexcel projects, such as: this developer guide, license info, etc. are stored in `pyexcel-commons` project.\n\nWhat is .moban.d\n---------------------------------\n\n`.moban.d` stores the specific meta data for the library.\n\nAcceptance criteria\n-------------------\n\n#. Has Test cases written\n#. Has all code lines tested\n#. Passes all Travis CI builds\n#. Has fair amount of documentation if your change is complex\n#. Please update CHANGELOG.rst\n#. Please add yourself to CONTRIBUTORS.rst\n#. Agree on NEW BSD License for your contribution\n\nCredits\n================================================================================\n\nThis library is based on the ods of messytables, Open Knowledge Foundation Ltd.\n\n\n\nContributors\n================\n\nAuthor is in setup.py file and module __author__. Hence please find the\ncontributors here.\n\nIn alphabetic order:\n\n*. `Jona `_\n\n\n\nChange log\n================================================================================\n\n0.5.2 - 23.10.2017\n--------------------------------------------------------------------------------\n\nupdated\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n#. pyexcel `#105 `_, remove gease\n from setup_requires, introduced by 0.5.1.\n#. remove python2.6 test support\n#. update its dependecy on pyexcel-io to 0.5.3\n\n0.5.1 - 20.10.2017\n--------------------------------------------------------------------------------\n\nadded\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n#. `#103 `_, include LICENSE file\n in MANIFEST.in, meaning LICENSE file will appear in the released tar ball.\n\n0.5.0 - 30.08.2017\n--------------------------------------------------------------------------------\n\nUpdated\n********************************************************************************\n\n#. put dependency on pyexcel-io 0.5.0, which uses cStringIO instead of StringIO.\n Hence, there will be performance boost in handling files in memory.\n\nRelocated\n--------------------------------------------------------------------------------\n\n#. All ods type conversion code lives in pyexcel_io.service module\n\n0.4.3 - 25.08.2017\n--------------------------------------------------------------------------------\n\n#. `#4 `_, handle unseekable\n stream given by http response.\n\n0.4.2 - 20.08.2017\n--------------------------------------------------------------------------------\n\nFix package installation error\n\n0.4.1 - 26.07.2017\n--------------------------------------------------------------------------------\n\nUpdated\n********************************************************************************\n\n#. PR `#3 `_, support fods, flat\n ods file\n\n0.4.0 - 19.06.2017\n--------------------------------------------------------------------------------\n\nUpdated\n********************************************************************************\n\n#. Updated to use lml interface\n\n\n0.3.2 - 07.05.2017\n--------------------------------------------------------------------------------\n\nUpdated\n********************************************************************************\n\n#. issue `#2 `_, not all texts\n in a multi-node cell were extracted.\n\n0.3.1 - 13.04.2017\n--------------------------------------------------------------------------------\n\nUpdated\n********************************************************************************\n\n#. issue `#1 `_, PT288H00M00S\n is valid duration\n\n\n0.3.0 - 02.02.2017\n--------------------------------------------------------------------------------\n\n#. initial release. It has all functionalities of pyexcel-ods and pyexcel-ods3.\n Specially, it supports partial reading of the ods file. When dealing with\n big data file, this capability enables pagination feature to indeed read\n partial files.\n\n", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/pyexcel/pyexcel-odsr/archive/0.5.2.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pyexcel/pyexcel-odsr", "keywords": "excel", "license": "New BSD", "maintainer": "", "maintainer_email": "", "name": "pyexcel-odsr", "package_url": "https://pypi.org/project/pyexcel-odsr/", "platform": "", "project_url": "https://pypi.org/project/pyexcel-odsr/", "project_urls": { "Download": "https://github.com/pyexcel/pyexcel-odsr/archive/0.5.2.tar.gz", "Homepage": "https://github.com/pyexcel/pyexcel-odsr" }, "release_url": "https://pypi.org/project/pyexcel-odsr/0.5.2/", "requires_dist": null, "requires_python": "", "summary": "a plugin to pyexcel and provides the capbility to read data in ods formats using tailored messytables.", "version": "0.5.2" }, "last_serial": 3272987, "releases": { "0.3.0": [ { "comment_text": "", "digests": { "md5": "46cd5ab1a34456391d67c5e6cd0363c8", "sha256": "7b442545c6bf59d3cc133dc528e1ebaa94746bb36f8d07bcca0a8ca486442da8" }, "downloads": -1, "filename": "pyexcel-odsr-0.3.0.tar.gz", "has_sig": false, "md5_digest": "46cd5ab1a34456391d67c5e6cd0363c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10115, "upload_time": "2017-02-02T20:56:41", "url": "https://files.pythonhosted.org/packages/41/de/86ba57ed09694a6855fb0f3650314be1626379c891c0f1bf8d36e96f9cb5/pyexcel-odsr-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "85d1ef89ef60033f0ace22a10fffc9d0", "sha256": "4da1b1fde260ce4e7e26e8dae8dccaa76257b6ff8c416f0828555cd62116b22f" }, "downloads": -1, "filename": "pyexcel-odsr-0.3.1.tar.gz", "has_sig": false, "md5_digest": "85d1ef89ef60033f0ace22a10fffc9d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12249, "upload_time": "2017-04-13T15:59:07", "url": "https://files.pythonhosted.org/packages/75/46/372d193e1586ec5284c6ee5bc7c0b122fd40087983b32914bd7368e779a5/pyexcel-odsr-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "42cb5857d74afe895483899a4d2cb76f", "sha256": "750481e8b470144cb2efcd22bf72dd6be45718e3af4975b839184e5f47ce86ea" }, "downloads": -1, "filename": "pyexcel_odsr-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "42cb5857d74afe895483899a4d2cb76f", "packagetype": "bdist_wheel", "python_version": "any", "requires_python": null, "size": 13464, "upload_time": "2017-05-07T11:03:01", "url": "https://files.pythonhosted.org/packages/c0/56/23ffc6e6fd0814c59fbe29b19c9315b76f8312b5eea6d0218063cc61203b/pyexcel_odsr-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d456701a8de997f99b490da5175a2121", "sha256": "7228f7bc55a0b6419ac193220cf8b26d798d784a2f41cf69595222c994ac856d" }, "downloads": -1, "filename": "pyexcel-odsr-0.3.2.tar.gz", "has_sig": false, "md5_digest": "d456701a8de997f99b490da5175a2121", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12941, "upload_time": "2017-05-31T08:22:53", "url": "https://files.pythonhosted.org/packages/c0/45/e3a6402e7a339d55bb2eb99f7471c389da9b426ca569dd6839d374d21520/pyexcel-odsr-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "ee5419a3a4932c1f2cfb6f327cafba07", "sha256": "6d23a570200a632e253d52c7ea72511831e6ec6de1ac8f0772c325bd532c02ae" }, "downloads": -1, "filename": "pyexcel_odsr-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ee5419a3a4932c1f2cfb6f327cafba07", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15076, "upload_time": "2017-06-19T11:31:12", "url": "https://files.pythonhosted.org/packages/90/9b/696e0af11871825ddfee7b1688442667f13cf07f6239c4b4e11719c8e6d3/pyexcel_odsr-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "955e3ae714205fb7ddfeb339971d9c7b", "sha256": "16b95123c1441640531e2623900ee693888e75ed9b4430ff22d73ab5a3791372" }, "downloads": -1, "filename": "pyexcel-odsr-0.4.0.tar.gz", "has_sig": false, "md5_digest": "955e3ae714205fb7ddfeb339971d9c7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13315, "upload_time": "2017-06-19T11:31:06", "url": "https://files.pythonhosted.org/packages/20/e2/17014f7eccd760cb7d2f63eaaf514da0918fd08fa1b9b76d430949b8eb49/pyexcel-odsr-0.4.0.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "72d3a90dba1a09185ef10cedc74c405b", "sha256": "bed64d9aadda1809de336bb36552597c30d00b97ac750544c808f720ea297d08" }, "downloads": -1, "filename": "pyexcel_odsr-0.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "72d3a90dba1a09185ef10cedc74c405b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15192, "upload_time": "2017-08-20T07:35:15", "url": "https://files.pythonhosted.org/packages/81/44/1cad7efcb3bca108631000d1644ce2a4eeaa517412ceaed4cc897c36ee07/pyexcel_odsr-0.4.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8c7fcae37cb17e72883c9f6740986687", "sha256": "5626205ecf767321208d1c2fec1fe37f9db843dd7ae90a7b267be7b85026f42c" }, "downloads": -1, "filename": "pyexcel-odsr-0.4.2.tar.gz", "has_sig": false, "md5_digest": "8c7fcae37cb17e72883c9f6740986687", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14980, "upload_time": "2017-08-20T07:35:12", "url": "https://files.pythonhosted.org/packages/11/c6/bc52fb34a91030baf505e50bf9774b46cdbe3770dee81399efbe7a7ed14c/pyexcel-odsr-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "28d27a7dffa730b98e2feb2c3bb1f46d", "sha256": "15c08a8cb6e6ec50389e134a492a0b50889aa6ed75de2e0ea45ce3b5e6fc2e5a" }, "downloads": -1, "filename": "pyexcel_odsr-0.4.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "28d27a7dffa730b98e2feb2c3bb1f46d", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 15429, "upload_time": "2017-08-25T05:51:45", "url": "https://files.pythonhosted.org/packages/6f/e5/b07061797e51285d6765d2ab9924c3cb55c592d96039b313acb3fd8a1611/pyexcel_odsr-0.4.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d19db83b9cad976fc26c8b07225c6293", "sha256": "63056106318e7c96447134ead8acf28c9ba00bab0cca874a1841b4649d047f71" }, "downloads": -1, "filename": "pyexcel-odsr-0.4.3.tar.gz", "has_sig": false, "md5_digest": "d19db83b9cad976fc26c8b07225c6293", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15193, "upload_time": "2017-08-25T05:51:42", "url": "https://files.pythonhosted.org/packages/ea/70/34d1ee10c5dbbea8f8594cf7fbb23041ab61c349ba3fd85a0e61faac8811/pyexcel-odsr-0.4.3.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "db40ffda96813fab0ba3ca3da0a0b198", "sha256": "58f66cbee59587e5b65e41b27130abc7f26a67035956d48c417e60b6b9fa905c" }, "downloads": -1, "filename": "pyexcel_odsr-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "db40ffda96813fab0ba3ca3da0a0b198", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15656, "upload_time": "2017-08-30T22:53:29", "url": "https://files.pythonhosted.org/packages/40/b2/6157df7b1c5c37ff6cc46118db3106913992ada7cc57151e422876460385/pyexcel_odsr-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2641f315a4e9fbe6a785a7e7709f3b00", "sha256": "e0b5758d792c17702b7045e8f826cb630b05b2c7945e121cf712dde3b2a56843" }, "downloads": -1, "filename": "pyexcel-odsr-0.5.0.tar.gz", "has_sig": false, "md5_digest": "2641f315a4e9fbe6a785a7e7709f3b00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15433, "upload_time": "2017-08-30T22:53:26", "url": "https://files.pythonhosted.org/packages/61/f1/c4cd3a0af4e05fdfc0c33e02cfa52fb445f499f87e8cec16b5169a13a578/pyexcel-odsr-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "5ffe24c86d2242be5339b629cfca4972", "sha256": "388871f99da8cd1229bcc020f55385ca88e9f487dd17ee4bc23bb6299e34a717" }, "downloads": -1, "filename": "pyexcel_odsr-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5ffe24c86d2242be5339b629cfca4972", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 15833, "upload_time": "2017-10-20T07:13:13", "url": "https://files.pythonhosted.org/packages/10/e0/4277338948f190d3eedff870773dc39307b4d1d187f8db65225ede58ad0d/pyexcel_odsr-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de416d78e4eeca2488b2b1adf170094a", "sha256": "54f2fb2ce403b0eed8acdba9fcbae7a5801ac03da6d64cc75104618bbaaf2942" }, "downloads": -1, "filename": "pyexcel-odsr-0.5.1.tar.gz", "has_sig": false, "md5_digest": "de416d78e4eeca2488b2b1adf170094a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16123, "upload_time": "2017-10-20T07:12:38", "url": "https://files.pythonhosted.org/packages/6e/56/2f6dcaaa0186441358974ed220058cf7b81b20d9343fc2a7e1ee55b65952/pyexcel-odsr-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "cfa85af77ecf829e10d2484387598b59", "sha256": "d0d4416df5b0e993c532ff69c41d0f528f05b46599e185b024ce9c3ea48671a0" }, "downloads": -1, "filename": "pyexcel_odsr-0.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cfa85af77ecf829e10d2484387598b59", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 16013, "upload_time": "2017-10-23T18:48:29", "url": "https://files.pythonhosted.org/packages/f9/d7/777557fd3b6d3b519dafc2a7f34f3bd37a665954c255726296efe970a335/pyexcel_odsr-0.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c069a00dbc0a9acd2c4b5715294d9046", "sha256": "4f8cb6d2ea957098ba0a309b44421dd7089bf034b3e8816c241455c54ad80ea4" }, "downloads": -1, "filename": "pyexcel-odsr-0.5.2.tar.gz", "has_sig": false, "md5_digest": "c069a00dbc0a9acd2c4b5715294d9046", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16540, "upload_time": "2017-10-23T18:48:26", "url": "https://files.pythonhosted.org/packages/45/0e/c947b9ddf7db46ba6d92430e25cee647c4f7a973913542e5ce2c484cd4cc/pyexcel-odsr-0.5.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cfa85af77ecf829e10d2484387598b59", "sha256": "d0d4416df5b0e993c532ff69c41d0f528f05b46599e185b024ce9c3ea48671a0" }, "downloads": -1, "filename": "pyexcel_odsr-0.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cfa85af77ecf829e10d2484387598b59", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 16013, "upload_time": "2017-10-23T18:48:29", "url": "https://files.pythonhosted.org/packages/f9/d7/777557fd3b6d3b519dafc2a7f34f3bd37a665954c255726296efe970a335/pyexcel_odsr-0.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c069a00dbc0a9acd2c4b5715294d9046", "sha256": "4f8cb6d2ea957098ba0a309b44421dd7089bf034b3e8816c241455c54ad80ea4" }, "downloads": -1, "filename": "pyexcel-odsr-0.5.2.tar.gz", "has_sig": false, "md5_digest": "c069a00dbc0a9acd2c4b5715294d9046", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16540, "upload_time": "2017-10-23T18:48:26", "url": "https://files.pythonhosted.org/packages/45/0e/c947b9ddf7db46ba6d92430e25cee647c4f7a973913542e5ce2c484cd4cc/pyexcel-odsr-0.5.2.tar.gz" } ] }