{ "info": { "author": "Kevin Lyda", "author_email": "kevin@ie.suberic.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python :: 2.5", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Utilities" ], "description": "===========\nspreadsheet\n===========\n\nCommand Line Tool To Manipulate Google Spreadsheets\n===================================================\nThe ``spreadsheet`` tool is a command line tool to manipulate Google\nspreadsheets. It specifically works on spreadsheets where row 1 is\na series of column titles and there is one or more columns that can\nact as a unique key.\n\nWhen running it it will create three config files in the current\ndirectory:\n\n* ``.app.json``: Configuration file with the app configuration. By\n default these are anonymous, but if you have Google Apps for your\n domain, you might want to set these. TODO: Explain how and provide\n urls to Google help docs and the app admin panel for this.\n (console: https://code.google.com/apis/console ; docs: ?)\n* ``.auth.json``: These store your auth credentials. The ``spreadsheet``\n tool will manipulate these.\n* ``.ss.json``: This records the spreadsheet and worksheet you chose\n as well as any infor the ``spreadsheet`` tool has cached.\n\nIf these need info from you, you will be prompted.\n\nCommands\n~~~~~~~~\n\nAll references to \"column\" mean the title of the column.\n\nspreadsheet app_conf \"consumer_key\" \"consumer_secret\" \"google_apps_domain\"\nspreadsheet list \"key column\"\nspreadsheet update \"key column\" key \"value column\" value\nspreadsheet remember headers\nspreadsheet remember \"column\"\nspreadsheet forget headers\nspreadsheet forget \"column\"\n\nDependencies\n~~~~~~~~~~~~\n\nDepends on the following modules: ``gdata``, ``json``, ``gflags``.\n\nContributions\n=============\nContributions are welcome!\n\nUnit tests are kind of difficult since I haven't found a good mock\nspreadsheet.\n\nThe packaged version is available via ``pip`` or ``easy_install``\nas ``spreadsheet``. The project page is on `pypi`_:\n\nThe source code is available in the following locations:\n\n* Bitbucket: https://bitbucket.org/lyda/spreadsheet/\n* code.google: https://code.google.com/p/spreadsheet-cl/\n* Github: https://github.com/lyda/spreadsheet\n* Gitorious: https://gitorious.org/uu/spreadsheet\n* Sourceforge: https://sourceforge.net/p/spreadsheet-cl\n\nPull requests on any of those platforms or emailed patches are fine.\nOpening issues on github is easiest, but I'll check any of them.\n\nTODO\n====\n\nAuthentication\n~~~~~~~~~~~~~~\n\n* Currently authentication redirects to a local url. Document that\n url and give the user the option to change it.\n* Likewise, it currently listens on localhost and a dynamically\n chosen port. Provide a way to supply that.\n* Might also print the url the browser will redirect to.\n* Clean up how the auth token is found by the listener.\n* Have the listener display a page saying auth success.\n\nTesting and API\n~~~~~~~~~~~~~~~\n* Some unit tests of some sort.\n* Ideas for mocking gdata?\n* Is `issue580`_ fixed yet? If so remove the ``str()`` calls for\n GetCells parameters.\n* Code layout - split things into modules so it's not one monlithic\n script now that there's an install process.\n\nFeatures and hardening\n~~~~~~~~~~~~~~~~~~~~~~\n* A way to add rows. And a way to delete them.\n* Finish allowing users to specify the title row number.\n* A command similar to update that allows users to specify the\n row/column directly.\n* Have caching be more seemless. When using cache, do sanity checks\n to make sure it's correct (check the search column and the header)\n and then recache if it's a miss. Keep the forget/remember commands\n in case the user knows the caches are wrong and can use these to\n tell us ahead of time.\n* Handle a bunch of possible exceptions in the gdata API.\n* Do command parsing better.\n\nCredits\n=======\n- `Kevin Lyda`_: Spreadsheets are fine once I can script them...\n\n.. _`Kevin Lyda`: https://github.com/lyda\n.. _`pypi`: https://pypi.python.org/pypi/spreadsheet\n.. _`issue580`: https://code.google.com/p/gdata-python-client/issues/detail?id=580", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/lyda/spreadsheet", "keywords": "google spreadsheet gdata", "license": "GNU General Public License v3", "maintainer": null, "maintainer_email": null, "name": "spreadsheet", "package_url": "https://pypi.org/project/spreadsheet/", "platform": "POSIX", "project_url": "https://pypi.org/project/spreadsheet/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/lyda/spreadsheet" }, "release_url": "https://pypi.org/project/spreadsheet/1.2.1/", "requires_dist": null, "requires_python": null, "summary": "A tool to manipulate Google Spreadsheets", "version": "1.2.1" }, "last_serial": 849087, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "4e421445471603d8eb63c13febcb0092", "sha256": "a5b373d7a28ece06d63cd02be4709ac027f25814a188a7ed1dce967d815b5f33" }, "downloads": -1, "filename": "spreadsheet-1.0.tar.gz", "has_sig": false, "md5_digest": "4e421445471603d8eb63c13febcb0092", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18919, "upload_time": "2013-08-14T12:19:24", "url": "https://files.pythonhosted.org/packages/d3/88/f165c58abdb88bc599d32b1f213f832eaf9e107e7c0847db80147465ec20/spreadsheet-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "aa93cce3c15a1c74bbe97328898c4d5a", "sha256": "3d294d6c167d4b5da2035180e0551f7cc6a8e50f4b1d1f1f11475969943c55e3" }, "downloads": -1, "filename": "spreadsheet-1.1.tar.gz", "has_sig": true, "md5_digest": "aa93cce3c15a1c74bbe97328898c4d5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18923, "upload_time": "2013-08-14T19:21:54", "url": "https://files.pythonhosted.org/packages/6c/3a/517efed70ec1bdc18fb8e1a09f03f1652dce409a0a16dc3a5b75667610dc/spreadsheet-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "1d4fdd0cae93378116342bb1c0fda3d2", "sha256": "81f76b09283ea8e4d04ef9d8f37aa1ed1e7fbf3ec6e885a72feb8c6840e1d41b" }, "downloads": -1, "filename": "spreadsheet-1.2.tar.gz", "has_sig": true, "md5_digest": "1d4fdd0cae93378116342bb1c0fda3d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18933, "upload_time": "2013-08-14T19:44:49", "url": "https://files.pythonhosted.org/packages/d5/15/ba2449ee9930965e47a597e94bd7267596544602e26a1d479940485e1ff0/spreadsheet-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "17617d624a1603d79c65c7aedcc8f849", "sha256": "7f555877f7fb9e4d013a3f3d50fdfcb9a4ee6ba2252e5ae6b7092ba38091dd69" }, "downloads": -1, "filename": "spreadsheet-1.2.1.tar.gz", "has_sig": true, "md5_digest": "17617d624a1603d79c65c7aedcc8f849", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19018, "upload_time": "2013-08-26T12:24:52", "url": "https://files.pythonhosted.org/packages/4f/bc/b570af86c48e71cd4692fa8f482d686c63e82e8a9238840e6296d0fd5386/spreadsheet-1.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "17617d624a1603d79c65c7aedcc8f849", "sha256": "7f555877f7fb9e4d013a3f3d50fdfcb9a4ee6ba2252e5ae6b7092ba38091dd69" }, "downloads": -1, "filename": "spreadsheet-1.2.1.tar.gz", "has_sig": true, "md5_digest": "17617d624a1603d79c65c7aedcc8f849", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19018, "upload_time": "2013-08-26T12:24:52", "url": "https://files.pythonhosted.org/packages/4f/bc/b570af86c48e71cd4692fa8f482d686c63e82e8a9238840e6296d0fd5386/spreadsheet-1.2.1.tar.gz" } ] }