{ "info": { "author": "Kirill Pavlov", "author_email": "k@p99.io", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "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 :: Software Development :: Libraries :: Python Modules" ], "description": "+--------------+-------------+-----------------+----------+------------------+\n| Build | Coverage | Documentation | PyPI | Code |\n+==============+=============+=================+==========+==================+\n| |CircleCI| | |Coveralls| | |Readthedocs| | |pypi| | |Codacy Badge| |\n+--------------+-------------+-----------------+----------+------------------+\n\nInstall\n~~~~~~~\n\n.. code:: python\n\n pip install tabtools\n\nOr copy-paste files from the `dist` directory. Each of them is a self-contained\nexecutable script.\n\nTests\n~~~~~\n\n.. code:: python\n\n tox\n\nDocumentation\n~~~~~~~~~~~~~\n\n1. Visit ``docs`` folder and install Python dependencies: Sphinx,\n `Napoleon `__\n plugin and `readthedocs theme `__.\n2. Build documentation: ``make html``\n3. Serve local files from ``docs/_build/html`` folder:\n ``python -mSimpleHTTPServer``\n\nNotes\n~~~~~\n\nExample: convert CSV to TSV:\n\n.. code:: bash\n\n cat <(printf \"# \") <(cat file.csv | tr \",\" \"\\t\")\n\nExamples\n~~~~~~~~\n\nDemo file consists of HSBC daily stock data.\n\n.. code:: bash\n\n > head tabtools/tests/files/hsbc-stock.tsv\n\n # Date Open High Low Close Volume\n 2014-02-21 84.35 84.45 83.9 83.45 17275.0\n 2014-02-24 83.85 84.4 83.75 84.35 10549.0\n 2014-02-25 81.65 82.3 81.6 83.9 31186.0\n 2014-02-26 81.15 81.65 81.0 81.65 18937.0\n 2014-02-27 81.85 82.4 81.0 81.15 19688.0\n 2014-02-28 82.25 82.45 81.8 81.9 10806.0\n 2014-03-05 81.4 81.7 81.15 81.5 6101.0\n 2014-03-06 81.5 81.75 81.05 81.4 8642.0\n 2014-03-07 81.3 81.45 81.05 81.45 15464.0\n\nConvert daily data to weekly:\n\n.. code:: bash\n\n > head tabtools/tests/files/hsbc-stock.tsv \\\n | tgrp -k 'week=strftime(\"%U\", DateEpoch(Date))' \\ # Define aggregation key (map emitter)\n -g \"Date=FIRST(Date); Open=FIRST(Open); High=MAX(High)\" \\ # Aggregated values to compute\n -g \"Low=MIN(Low); Close=LAST(Close); Volume=SUM(Volume)\" # Extra aggregated values\n\n # week Date Open High Low Close Volume\n 07 2014-02-21 84.35 84.45 83.9 83.45 17275.0\n 08 2014-02-24 83.85 84.4 81.0 81.9 91166\n 09 2014-03-05 81.4 81.75 81.05 81.45 30207\n\nSort original file, compute 3 different EMA (exponential moving\naverage), MACD and simple moving average indicators, select last 10\nlines and prettify output:\n\n.. code:: bash\n\n > cat tabtools/tests/files/hsbc-stock.tsv \\\n | tsrt -k Date \\ # Sort by column name, not by \"field number 1\"\n | tawk -o \"Date; Open; High; Low; Close; Volume\" \\ # output original fields\n -o \"fast_macd = EMA(Close, 12) - EMA(Close, 26); slow_macd = EMA(fast_macd, 9)\" \\\n -o \"macd_histogram = fast_macd - slow_macd; ma50 = AVG(Close, 50)\" \\\n | ttail \\\n | tpretty\n\n Date | Open | High | Low | Close | Volume | fast_macd | slow_macd | macd_histogram | ma50 \n -----------+-------+-------+-------+-------+---------+-----------+-----------+----------------+---------\n 2015-07-02 | 69.55 | 69.75 | 69.3 | 70.15 | 17180.0 | -0.577588 | -0.302581 | -0.275007 | 73.7404\n 2015-07-03 | 69.55 | 70.25 | 69.45 | 69.55 | 13640.0 | -0.74297 | -0.390658 | -0.352311 | 73.7224\n 2015-07-06 | 67.6 | 68.85 | 67.0 | 69.55 | 34244.0 | -0.864075 | -0.485342 | -0.378734 | 73.6964\n 2015-07-07 | 68.7 | 69.0 | 68.35 | 67.9 | 15676.0 | -1.08074 | -0.604421 | -0.476315 | 73.6454\n 2015-07-08 | 66.2 | 67.6 | 66.0 | 68.45 | 31911.0 | -1.19429 | -0.722395 | -0.471898 | 73.5984\n 2015-07-09 | 67.05 | 67.5 | 65.35 | 65.75 | 29040.0 | -1.48504 | -0.874924 | -0.610114 | 73.4374\n 2015-07-10 | 68.1 | 68.45 | 67.0 | 67.75 | 31350.0 | -1.53636 | -1.00721 | -0.529149 | 73.2634\n 2015-07-13 | 69.0 | 69.05 | 67.0 | 68.1 | 16601.0 | -1.53114 | -1.112 | -0.419145 | 73.0974\n 2015-07-14 | 68.25 | 69.0 | 68.0 | 69.05 | 15219.0 | -1.43382 | -1.17636 | -0.257459 | 72.9294\n 2015-07-15 | 69.0 | 69.45 | 68.7 | 68.55 | 9676.0 | -1.38112 | -1.21731 | -0.163806 | 72.7614\n\nTODO:\n~~~~~\n\n- Add by-version (workflow) build status badges for CircleCI\n- Testing in different python environments:\n https://discuss.circleci.com/t/testing-in-different-environments/450/13\n\n.. |CircleCI| image:: https://circleci.com/gh/pavlov99/tabtools/tree/master.svg?style=svg\n :target: https://circleci.com/gh/pavlov99/tabtools/tree/master\n.. |Coveralls| image:: https://coveralls.io/repos/pavlov99/tabtools/badge.png\n.. |Readthedocs| image:: https://readthedocs.org/projects/tabtools/badge/?version=latest\n :target: http://tabtools.readthedocs.io/en/latest/?badge=latest\n.. |pypi| image:: https://img.shields.io/pypi/v/tabtools.svg\n :target: https://pypi.org/project/tabtools/\n.. |Codacy Badge| image:: https://api.codacy.com/project/badge/Grade/dab474ce648044979ce47ead7d923250\n :target: https://www.codacy.com/app/pavlov99/tabtools\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pavlov99/tabtools", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "tabtools", "package_url": "https://pypi.org/project/tabtools/", "platform": "", "project_url": "https://pypi.org/project/tabtools/", "project_urls": { "Homepage": "https://github.com/pavlov99/tabtools" }, "release_url": "https://pypi.org/project/tabtools/0.5.3/", "requires_dist": null, "requires_python": "", "summary": "Tools for tab separated files manipulation in command line", "version": "0.5.3" }, "last_serial": 3269117, "releases": { "0.2.0": [], "0.3.0": [ { "comment_text": "", "digests": { "md5": "a16be7a6c9d887cbfe928fc28abb5bfa", "sha256": "062ca5b8baff53aba16aa7aa9098050883898e570b448ed734cbba4dab104e65" }, "downloads": -1, "filename": "tabtools-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a16be7a6c9d887cbfe928fc28abb5bfa", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 27141, "upload_time": "2015-05-16T05:33:41", "url": "https://files.pythonhosted.org/packages/ef/7b/31063062b1e8ca66749a147590a277cb35d45756e33671a6dce05cb6b5c5/tabtools-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "84b06209bd879e91178475ae9e6b952b", "sha256": "083fa2de542f40308d7add99344a0c9224eb9ca0863297cf20ae08ef7ad470d8" }, "downloads": -1, "filename": "tabtools-0.3.0.tar.gz", "has_sig": false, "md5_digest": "84b06209bd879e91178475ae9e6b952b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22669, "upload_time": "2015-05-16T05:33:37", "url": "https://files.pythonhosted.org/packages/01/b9/8874dbf032e9ca5b3ec5facbe1d282958b6694bd40e17545e9639b5d61bd/tabtools-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "c8fdf3b3fef9620b86c4d6365388e21d", "sha256": "013c9b66551d251463342771671d71b50905a97405f0f394ec3850fc23ef19ef" }, "downloads": -1, "filename": "tabtools-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c8fdf3b3fef9620b86c4d6365388e21d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 27720, "upload_time": "2015-05-16T14:27:09", "url": "https://files.pythonhosted.org/packages/53/0e/1a88a03c2b55e69f9dc88d7eeb22718e3d86868beaf94d1fb794609fa0dd/tabtools-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "917d2f84f57ff1f326340ea98b686499", "sha256": "52153f94044a4ccd24d87dd18fd015c35c98419b5163b0773a594b8ffce0b0c2" }, "downloads": -1, "filename": "tabtools-0.3.1.tar.gz", "has_sig": false, "md5_digest": "917d2f84f57ff1f326340ea98b686499", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23203, "upload_time": "2015-05-16T14:27:05", "url": "https://files.pythonhosted.org/packages/ce/78/c90515aae54d7dac403f290815f407e6961fcc8b8f3e9fa3abe982c40c7f/tabtools-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "80c941fe1f90288e419fbce4590d8e17", "sha256": "49a2a4ea53d291b58a18fab221be1e78c41a7b0729a060f13b9148d164c003dd" }, "downloads": -1, "filename": "tabtools-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "80c941fe1f90288e419fbce4590d8e17", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 27775, "upload_time": "2015-05-16T15:04:57", "url": "https://files.pythonhosted.org/packages/b3/1d/22b5fe68ad4809c0d97da7ca2cd2ca652d3b7c53fe6e6784fd4a6cf9755e/tabtools-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9751006cecc95e3de49c38839e362c64", "sha256": "3c4001d0d6ceab5be04f82eeba14283b4afa5305d09560a4d11b8722d7c97e11" }, "downloads": -1, "filename": "tabtools-0.3.2.tar.gz", "has_sig": false, "md5_digest": "9751006cecc95e3de49c38839e362c64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23268, "upload_time": "2015-05-16T15:04:46", "url": "https://files.pythonhosted.org/packages/7b/73/a7034d3dee5fe87f48f0c6ca3f9af373af2eda3f10005b4e728aad426214/tabtools-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "e55532843a1a704f02624a602163429c", "sha256": "43d0a9ea6888b9789229a13b1d30037fcb84657db8732091322c1703d36d7f98" }, "downloads": -1, "filename": "tabtools-0.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e55532843a1a704f02624a602163429c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 27850, "upload_time": "2015-05-18T15:42:28", "url": "https://files.pythonhosted.org/packages/2e/07/c639ce3458e54f083c180bc0f56c8d577a2368b62cf98917b1403ba5b8a4/tabtools-0.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c54050c090903b178f9a7c0c4b844b24", "sha256": "55a947ce6e79785b9ab33c41e4d087b3a5034b92cbf509b68102ec93f2fdcd95" }, "downloads": -1, "filename": "tabtools-0.3.3.tar.gz", "has_sig": false, "md5_digest": "c54050c090903b178f9a7c0c4b844b24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23326, "upload_time": "2015-05-18T15:42:24", "url": "https://files.pythonhosted.org/packages/3d/7f/0e9d5e9bb06d07c77a9be3cbe290609a3ed1ffa503f64834cceb4accf39c/tabtools-0.3.3.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "51d3a995098c87c3caa3f1637158c7b0", "sha256": "cb3b39636f2e7e48af7de943eb95c1bcc8a0b286918f4d5a2b4d576d1d372947" }, "downloads": -1, "filename": "tabtools-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "51d3a995098c87c3caa3f1637158c7b0", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 25950, "upload_time": "2017-10-19T16:53:21", "url": "https://files.pythonhosted.org/packages/81/5e/d6fd7e72c1beaa117dd02428c8daa660e5ad7a2226e2d38e12e309d49ec3/tabtools-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "27b9831ee6f2ac0396679ea2dcdfc48e", "sha256": "7ef3e983a78e2f212c49967b8f56a496a981191c0764f0b8ca7d7e8d4e77a824" }, "downloads": -1, "filename": "tabtools-0.5.1.tar.gz", "has_sig": false, "md5_digest": "27b9831ee6f2ac0396679ea2dcdfc48e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22479, "upload_time": "2017-10-19T16:53:17", "url": "https://files.pythonhosted.org/packages/98/6e/bd607903c6aa3a8d9b6f5543de0f4bfe7c2db498f34837e7d7b7c7b1abfc/tabtools-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "d4e2041cfa2b6794675f9c7df986ab10", "sha256": "85865d45a555ecb453279a4250c248fb9572cb0e1d118c90383edfdae3bc4d9e" }, "downloads": -1, "filename": "tabtools-0.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d4e2041cfa2b6794675f9c7df986ab10", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 26097, "upload_time": "2017-10-21T11:58:57", "url": "https://files.pythonhosted.org/packages/ce/03/83ab06049be29507414993529e705ce07fc4d364c3420de5b2203c47f4d8/tabtools-0.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8649e75c385232b68a5973d8746b0583", "sha256": "a7c96c28e9df39c14483ce2d4d99b549a3a6b9558e13032f3d48ac82a669326b" }, "downloads": -1, "filename": "tabtools-0.5.2.tar.gz", "has_sig": false, "md5_digest": "8649e75c385232b68a5973d8746b0583", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22613, "upload_time": "2017-10-21T11:58:54", "url": "https://files.pythonhosted.org/packages/f8/4d/75dcc97405920b22bd4af153be15ac64d14e4944da87bbbfdce5d0e53e3b/tabtools-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "5b6ee5c3b76bd70f3db03925382bbbee", "sha256": "085224e88ed93f1c9d2b5b8258d6dcca8e2f543cf2fcc007b3c4b4b0398b20a9" }, "downloads": -1, "filename": "tabtools-0.5.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5b6ee5c3b76bd70f3db03925382bbbee", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 26460, "upload_time": "2017-10-22T00:44:36", "url": "https://files.pythonhosted.org/packages/ab/34/3e986e2d7a0583b429d69dbb4767fb6ece30f6f8f294457838a78e8426e5/tabtools-0.5.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "80410ca0b41e4051a9eac274e6bdb0f1", "sha256": "9cf8b42273fa234c72d33c24c8ae57790f898024f5e784e0299c69604c2b4e9b" }, "downloads": -1, "filename": "tabtools-0.5.3.tar.gz", "has_sig": false, "md5_digest": "80410ca0b41e4051a9eac274e6bdb0f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23015, "upload_time": "2017-10-22T00:44:33", "url": "https://files.pythonhosted.org/packages/19/82/6cd250b1911eb189b38e32b051d4718e9e11af080e104fe87beca65eb976/tabtools-0.5.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5b6ee5c3b76bd70f3db03925382bbbee", "sha256": "085224e88ed93f1c9d2b5b8258d6dcca8e2f543cf2fcc007b3c4b4b0398b20a9" }, "downloads": -1, "filename": "tabtools-0.5.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5b6ee5c3b76bd70f3db03925382bbbee", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 26460, "upload_time": "2017-10-22T00:44:36", "url": "https://files.pythonhosted.org/packages/ab/34/3e986e2d7a0583b429d69dbb4767fb6ece30f6f8f294457838a78e8426e5/tabtools-0.5.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "80410ca0b41e4051a9eac274e6bdb0f1", "sha256": "9cf8b42273fa234c72d33c24c8ae57790f898024f5e784e0299c69604c2b4e9b" }, "downloads": -1, "filename": "tabtools-0.5.3.tar.gz", "has_sig": false, "md5_digest": "80410ca0b41e4051a9eac274e6bdb0f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23015, "upload_time": "2017-10-22T00:44:33", "url": "https://files.pythonhosted.org/packages/19/82/6cd250b1911eb189b38e32b051d4718e9e11af080e104fe87beca65eb976/tabtools-0.5.3.tar.gz" } ] }