{ "info": { "author": "Kristian Perkins", "author_email": "khperkins@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "x_x: The Dead Guy CLI\n=====================\n\n.. image:: https://badge.fury.io/py/x_x.png\n :target: http://badge.fury.io/py/x_x\n\n.. image:: https://pypip.in/d/x_x/badge.png\n :target: https://crate.io/packages/x_x/\n\n\nx_x is a command line reader that displays either Excel files or CSVs in your terminal. The purpose of this is to not break the workflow of people who live on the command line and need to access a spreadsheet generated using Microsoft Excel.\n\nInstall\n-------\n\nThe easy way:\n\n::\n\n $ pip install x_x\n\n\nOr the hard way:\n\n::\n\n $ git clone https://github.com/krockode/x_x.git && cd x_x && python setup.py install\n\nUsage\n-----\n\nInstalling this package gives you an ``x_x`` CLI executable.\n\n::\n\n $ x_x --help\n Usage: x_x [OPTIONS] FILENAME\n\n Display Excel or CSV files directly on your terminal. The file type is\n guessed from file extensions, but can be overridden with the --file-type\n option.\n\n Options:\n -h, --heading INTEGER Row number containing the headings.\n -f, --file-type [csv|excel] Force parsing of the file to the chosen format.\n -d, --delimiter TEXT Delimiter (only applicable to CSV files)\n [default: ',']\n -q, --quotechar TEXT Quote character (only applicable to CSV files)\n [default: '\"']\n -e, --encoding TEXT Encoding [default: UTF-8]\n --version Show the version and exit.\n --help Show this message and exit.\n\nSo, for example:\n\n::\n\n $ x_x dead_guys.xlsx\n +---------------+--------------+\n | A | B |\n +---------------+--------------+\n | Person | Age at Death |\n | Harrold Holt | 59.0 |\n | Harry Houdini | 52.0 |\n | Howard Hughes | 70.0 |\n\nOr to specify a specific row as the header which will be visible on each page:\n\n::\n\n $ x_x -h 0 dead_guys.xlsx\n +---------------+--------------+\n | Person | Age at Death |\n +---------------+--------------+\n | Harrold Holt | 59.0 |\n | Harry Houdini | 52.0 |\n | Howard Hughes | 70.0 |\n\nWeird CSVs? No problem!\n\n::\n\n $ cat dead_guys.csv\n person;age_at_death\n Harrold Holt;59\n Harry Houdini;52\n Howard Hughes;70\n |Not some guy, but just a string with ; in it|;0\n\n::\n\n $ x_x -h 0 --delimiter=';' --quotechar='|' dead_guys.csv\n +----------------------------------------------+--------------+\n | person | age_at_death |\n +----------------------------------------------+--------------+\n | Harrold Holt | 59 |\n | Harry Houdini | 52 |\n | Howard Hughes | 70 |\n | Not some guy, but just a string with ; in it | 0 |\n\nDoes your CSV file not end in \"csv\"? Again, no problem:\n\n::\n\n $ mv dead_guys.csv dead_guys.some_other_extension\n $ x_x -h 0 --file-type=csv --delimiter=';' --quotechar='|' dead_guys.some_other_extension\n +----------------------------------------------+--------------+\n | person | age_at_death |\n +----------------------------------------------+--------------+\n | Harrold Holt | 59 |\n | Harry Houdini | 52 |\n | Howard Hughes | 70 |\n | Not some guy, but just a string with ; in it | 0 |", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/krockode/x_x", "keywords": null, "license": "Apache 2.0", "maintainer": null, "maintainer_email": null, "name": "x_x", "package_url": "https://pypi.org/project/x_x/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/x_x/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/krockode/x_x" }, "release_url": "https://pypi.org/project/x_x/0.9/", "requires_dist": null, "requires_python": null, "summary": "Excel file CLI Reader", "version": "0.9" }, "last_serial": 1482753, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "ecf15e1896f30fa58e747d5159fc9b84", "sha256": "0fef33ed2cfd6086234862f7eaafdb2d752643dac084cd0b738cb32ad27300a1" }, "downloads": -1, "filename": "x_x-0.1.tar.gz", "has_sig": false, "md5_digest": "ecf15e1896f30fa58e747d5159fc9b84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5347, "upload_time": "2015-01-08T19:10:59", "url": "https://files.pythonhosted.org/packages/3e/59/52a31dad451f8b7486761a52e3364d5aa3cf97963141b3c714c6baeec2a7/x_x-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "ce64c1d77cdd8162268c02967d6bf3f3", "sha256": "ceeba74b277acbbff7e7fe8408ea16a39f2771618ac44b2bbac032ee923a3509" }, "downloads": -1, "filename": "x_x-0.2.tar.gz", "has_sig": false, "md5_digest": "ce64c1d77cdd8162268c02967d6bf3f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7275, "upload_time": "2015-01-08T19:20:05", "url": "https://files.pythonhosted.org/packages/08/62/c5105096e31fcf710c0eab97bea54c5a26d7cbfc394aff09b00d654935e9/x_x-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "40a26117bd7bc56a009486a44b24813e", "sha256": "c96ab4e48a822a0b33c0b1a982c437901d313094491aad05436148cae21de2de" }, "downloads": -1, "filename": "x_x-0.3.tar.gz", "has_sig": false, "md5_digest": "40a26117bd7bc56a009486a44b24813e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7259, "upload_time": "2015-01-08T19:23:22", "url": "https://files.pythonhosted.org/packages/90/c0/9c2e931ba0e1efed022405b6a04169952a7841e196faa9bac7e79f0f7275/x_x-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "d4725c074af1891360f9f35e71d18a01", "sha256": "6484e78e0230e63660b74f1aa4171b4a8d5d070f4d85ba3753dc983d016f3bfe" }, "downloads": -1, "filename": "x_x-0.3.1.tar.gz", "has_sig": false, "md5_digest": "d4725c074af1891360f9f35e71d18a01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7286, "upload_time": "2015-01-08T23:51:01", "url": "https://files.pythonhosted.org/packages/15/a3/9ff727dc279741461ff2bb1677384f27998bffe49efc1091b721ce37a9ad/x_x-0.3.1.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "813b8d287e70fa7bc9d1139b3e4343c9", "sha256": "5bddf331b20cecc658e8aba61e1e43818105a4837536e00bb30baf546b04a2f5" }, "downloads": -1, "filename": "x_x-0.4.tar.gz", "has_sig": false, "md5_digest": "813b8d287e70fa7bc9d1139b3e4343c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7340, "upload_time": "2015-01-10T00:56:28", "url": "https://files.pythonhosted.org/packages/a2/72/0091093906d50a0e7571357e349bef30734ce51d87d593e43809d3e329dd/x_x-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "2444c358f94507a27e82a03a325d0c1b", "sha256": "7a2e55260bac64d5127ed389310c7b4a891273972b806cb19123890cd2bdd98d" }, "downloads": -1, "filename": "x_x-0.5.tar.gz", "has_sig": false, "md5_digest": "2444c358f94507a27e82a03a325d0c1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7459, "upload_time": "2015-03-24T14:00:08", "url": "https://files.pythonhosted.org/packages/5c/5c/dbe40a5955c8da6181f77ad0f4d655026c8cd2433c8ceca1695e25d3cb94/x_x-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "3467ef94c4e5e589492fee762a4010c8", "sha256": "61c79308470058163fadfa5e76d151fbb5d69386d9d9220817a88bffff2f72a4" }, "downloads": -1, "filename": "x_x-0.6.tar.gz", "has_sig": false, "md5_digest": "3467ef94c4e5e589492fee762a4010c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7656, "upload_time": "2015-03-24T14:05:21", "url": "https://files.pythonhosted.org/packages/b4/a0/98d69f0b0f823f67e669411ddaa96130eb0718d788fb7e31e059494f5088/x_x-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "3eba46b7dca5645c0e32611a2ba865f3", "sha256": "97e5b967bdc94776d8ed6e1819b228fe9f01a42a24c53d82a1a50f28425722d2" }, "downloads": -1, "filename": "x_x-0.7.tar.gz", "has_sig": false, "md5_digest": "3eba46b7dca5645c0e32611a2ba865f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7821, "upload_time": "2015-03-24T20:36:19", "url": "https://files.pythonhosted.org/packages/63/dd/bf8ddc66ca61420623e7a4949b8610712408f259e55d15aea50d0c5aedea/x_x-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "b0738dcaf9e25f669acf7c8a8baeea8c", "sha256": "35298d0cd00f1a156504ee9abb57ff21a9766d5cba1c5e2a662d3bc8d3a7bf5e" }, "downloads": -1, "filename": "x_x-0.8.tar.gz", "has_sig": false, "md5_digest": "b0738dcaf9e25f669acf7c8a8baeea8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7865, "upload_time": "2015-03-25T01:44:43", "url": "https://files.pythonhosted.org/packages/1e/26/a8f72eb03d550c2b1f4b790587f84d939b1ee929116fe12476d1bd540b39/x_x-0.8.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "fa0c660f4ce00a4501ee1845e339fb7f", "sha256": "7c2eef57ca7ff36d674be6dd263e5e9b08359d9cf6104f9d77f0dc61f4c6361b" }, "downloads": -1, "filename": "x_x-0.9.tar.gz", "has_sig": false, "md5_digest": "fa0c660f4ce00a4501ee1845e339fb7f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9648, "upload_time": "2015-03-30T02:09:24", "url": "https://files.pythonhosted.org/packages/ba/ff/00a23ab37b51090604637f17c53ac72aa308cf8f391138d8297a5149f9f4/x_x-0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fa0c660f4ce00a4501ee1845e339fb7f", "sha256": "7c2eef57ca7ff36d674be6dd263e5e9b08359d9cf6104f9d77f0dc61f4c6361b" }, "downloads": -1, "filename": "x_x-0.9.tar.gz", "has_sig": false, "md5_digest": "fa0c660f4ce00a4501ee1845e339fb7f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9648, "upload_time": "2015-03-30T02:09:24", "url": "https://files.pythonhosted.org/packages/ba/ff/00a23ab37b51090604637f17c53ac72aa308cf8f391138d8297a5149f9f4/x_x-0.9.tar.gz" } ] }