{ "info": { "author": "shiba6v", "author_email": "shiba6v@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# Shape Commentator\n[![CircleCI](https://circleci.com/gh/shiba6v/shape_commentator.svg?style=svg)](https://circleci.com/gh/shiba6v/shape_commentator)\n\n## About \nYou can easily add numpy.ndarray.shape, torch.Size, other \"shape\" and type information to your script as comments.\n\n![Sample](https://user-images.githubusercontent.com/13820488/50560224-e656e300-0d41-11e9-90a3-f946cb40ab72.png)\n\nAn article about this tool is here. (in Japanese)\n[NumPy\u3084PyTorch\u3067\u4f7f\u3048\u308b\u8d85\u4fbf\u5229\u30c4\u30fc\u30eb\u3092\u4f5c\u3063\u305f](http://shiba6v.hatenablog.com/entry/shape_commentator_release)\n\n## Getting Started \n### For Jupyter Notebook User\n[This](https://github.com/shiba6v/jupyter-shape-commentator) is a Jupyter Notebook extension of this tool. It is easier to use!\n\n![use_fig](https://user-images.githubusercontent.com/13820488/61187795-fcf6d300-a6b0-11e9-97c6-4fd029244839.png)\n\n### NumPy\n```bash\npip install shape_commentator numpy\necho -e \"import numpy as np\\na = np.array([1,2,3])\" > src.py\npython -m shape_commentator src.py\ncat src.py.commented.py\n```\n\n```python\nimport numpy as np\na = np.array([1,2,3]) #_ (3,)\n\n```\n\n### PyTorch\n```bash\npip install shape_commentator torch\necho -e \"import torch\\na = torch.tensor([1,2,3])\" > src.py\npython -m shape_commentator src.py\ncat src.py.commented.py\n```\n\n```python\nimport torch\na = torch.tensor([1,2,3]) #_ torch.Size([3])\n\n```\n\n## Table Of Contents\n- [Shape Commentator](#shape-commentator)\n * [About](#about)\n * [Getting Started](#getting-started)\n + [NumPy](#numpy)\n + [PyTorch](#pytorch)\n * [Usage](#usage)\n + [Execute as a Module](#execute-as-a-module)\n - [Create Commented Script to File](#create-commented-script-to-file)\n - [Create Commented Script to Standard Output](#create-commented-script-to-standard-output)\n - [Clear Shape Comment](#clear-shape-comment)\n + [IPython / Jupyter Notebook](#ipython---jupyter-notebook)\n - [Create Commented Script](#create-commented-script)\n - [Clear Shape Comment](#clear-shape-comment-1)\n * [Tested Python Version](#tested-python-version)\n * [Development](#development)\n + [Python Main Version in Development](#python-main-version-in-development)\n + [Installation](#installation)\n + [Sample](#sample)\n + [Test](#test)\n + [Changing Test Scripts](#changing-test-scripts)\n + [Try Master Branch](#try-master-branch)\n * [Further Reading](#further-reading)\n\n## Usage \n### Execute as a Module\n#### Create Commented Script to File\n1. Run this script as a module with argument of script name. Command line arguments to the target script are available.\n\n```bash\npython -m shape_commentator src.py [args]\n```\n\n2. You get the commented script. For example, you execute shape_commentator to `src.py`, you get `src.py.commented.py`. \n\n`src.py`\n```python\nimport numpy as np\na = np.array([1,2,3,4,5,6])\nb = np.array([0,1,2,3,4,5])\nab_h = np.hstack((a,b))\nab_v = np.vstack((a,b))\nab = np.dot(a,b)\nAA, BB = np.meshgrid(a,b)\ni = 1\nf = 1.0\nc = 1 + 1j\ns = \"string1\"\nclass A():\n pass\na = A()\n```\n\n`src.py.commented.py`\n```python\nimport numpy as np\na = np.array([1,2,3,4,5,6]) #_ (6,)\nb = np.array([0,1,2,3,4,5]) #_ (6,)\nab_h = np.hstack((a,b)) #_ (12,)\nab_v = np.vstack((a,b)) #_ (2, 6)\nab = np.dot(a,b) #_ ()\nAA, BB = np.meshgrid(a,b) #_ [(6, 6),(6, 6),]\ni = 1 #_ int\nf = 1.0 #_ float\nc = 1 + 1j #_ complex\ns = \"string1\" #_ str\nclass A():\n pass\na = A() #_ A\n```\n\n#### Create Commented Script to Standard Output\nBy using `shape_commentator.print_comment` module, you get the commented script in standard output. (Not `src.py.commented.py`)\n```bash\npython -m shape_commentator.print_comment src.py [args]\n```\n\n#### Clear Shape Comment\nBy using `shape_commentator.print_clear` module, you get the uncommented script in standard output.\n```bash\npython -m shape_commentator.print_clear src.py [args]\n```\n\n### Jupyter Notebook \nJupyter Notebook Extension is [HERE](https://github.com/shiba6v/jupyter-shape-commentator)\n\n### IPython\n#### Create Commented Script\n1. Execute the cell that you want to see shape. \n2. Run the cell below, and the commented source code will be outputted. (`In[len(In)-2]` is the source code in the cell that you ran just before.)\n\n```python\nimport shape_commentator\nshape_commentator.comment(In[len(In)-2],globals())\n``` \n![ipython_comment](https://user-images.githubusercontent.com/13820488/50559871-1ac8a000-0d3e-11e9-923e-997f6aac6d68.png) \n\n#### Clear Shape Comment\n```python\nimport shape_commentator\nshape_commentator.clear(In[len(In)-2])\n``` \n![ipython_clear](https://user-images.githubusercontent.com/13820488/50559879-37fd6e80-0d3e-11e9-8c06-7f6963396dcb.png) \n\n## Tested Python Version \nTest script must be written in these version of Python.\n- 3.6.6\n- 3.5.6\n- 3.4.9\n- 2.7.15\n\n## Development \n### Python Main Version in Development \n- 3.6.6\n\n### Installation\n```\npip install numpy\nsudo apt install bats\nsh tests/install_for_dev.sh\n```\n\n### Sample\n```\n# Module Mode\npython -m shape_commentator tests/input_scripts/numpy_compute.py\n# Method Mode (Use in IPython / Jupyter Notebook.)\npython tests/comment_method.py tests/input_scripts/numpy_compute.py \n```\n\n### Test \n```\npython -m doctest shape_commentator/shape_commentator.py\nsh tests/install_for_dev.sh\nbats tests/test_all.bats\npython setup.py develop --uninstall\n```\n\n### Changing Test Scripts\nRemove `remove_tested_scripts` in `tests/test_all.bats` and run `bats tests/test_all.bats`, and you get new test script in `tests/input_scripts/`\n\n### Try Master Branch\nThe package of shape_commentator in TestPyPI is the HEAD of master branch. \nYou can try newest (but under development) version by running commands below.\n```\npip uninstall -y shape-commentator\npip install --index-url https://test.pypi.org/simple/ shape-commentator\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/shiba6v/shape_commentator", "keywords": "numpy,ndarray,shape comment,tool", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "shape-commentator", "package_url": "https://pypi.org/project/shape-commentator/", "platform": "", "project_url": "https://pypi.org/project/shape-commentator/", "project_urls": { "Homepage": "https://github.com/shiba6v/shape_commentator" }, "release_url": "https://pypi.org/project/shape-commentator/0.6.4/", "requires_dist": null, "requires_python": "", "summary": "You can easily add numpy.ndarray.shape information to your script as comments.", "version": "0.6.4" }, "last_serial": 5932333, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "0da2d39a3a92f1ade44bdd818136ff70", "sha256": "2476a1103c0760885cc66e7ae12a448fd16b380d9458082703cf7b4f0727463a" }, "downloads": -1, "filename": "shape_commentator-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0da2d39a3a92f1ade44bdd818136ff70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4228, "upload_time": "2018-12-04T08:17:00", "url": "https://files.pythonhosted.org/packages/39/5f/be9bf22882678f7db4f64b1b31f3bbd9729f2fbd292dbe1a8916d0d6d7f9/shape_commentator-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "171b178ba07468b5bbe18e2ec7765fe0", "sha256": "975f004111674386e75c0db2b2a2bfa311695a93810290d5835b5fa20ed6d1be" }, "downloads": -1, "filename": "shape_commentator-0.1.1.tar.gz", "has_sig": false, "md5_digest": "171b178ba07468b5bbe18e2ec7765fe0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4237, "upload_time": "2018-12-04T10:12:22", "url": "https://files.pythonhosted.org/packages/f6/ca/68091fbbb75b62b83bef0b33446b95bd449f8cf48d74264b2e4f4074f118/shape_commentator-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "28927e3a51b84d4e1e3860d11aeef5ce", "sha256": "17f416fb6228fcc56835016f54ed0ba690d61c37ff486dc561fc7aade2a00117" }, "downloads": -1, "filename": "shape_commentator-0.1.2.tar.gz", "has_sig": false, "md5_digest": "28927e3a51b84d4e1e3860d11aeef5ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4244, "upload_time": "2018-12-04T10:42:18", "url": "https://files.pythonhosted.org/packages/df/93/1229f909ea0bd512111c4ebd8f724304d1a25966e763d9eb0b8cb64b68c4/shape_commentator-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "a0c2563c5ead02eadd7ffa3d68129648", "sha256": "7ea8117bf0a1b12b3da4d346ef03eb9d81f49f219adba52ab3a8265d3ebf5ea4" }, "downloads": -1, "filename": "shape_commentator-0.1.3.tar.gz", "has_sig": false, "md5_digest": "a0c2563c5ead02eadd7ffa3d68129648", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4285, "upload_time": "2018-12-04T13:55:20", "url": "https://files.pythonhosted.org/packages/07/45/cbc87d4f01239f6be7a37b426b24ca443b363b7034d947b68877c8a63317/shape_commentator-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "0b1d976f912ccfbda0499459d1ee7cbc", "sha256": "c403d8111e5350fb905a8b3353ce940565cd0cc3d2964ae47e93e4dcb38b786b" }, "downloads": -1, "filename": "shape_commentator-0.1.4.tar.gz", "has_sig": false, "md5_digest": "0b1d976f912ccfbda0499459d1ee7cbc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4281, "upload_time": "2018-12-15T07:40:26", "url": "https://files.pythonhosted.org/packages/d0/7d/d9f3c0fcde8dbfb7f9bc41d1162e1bc293d95a3c934e854ed508258b553c/shape_commentator-0.1.4.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "d6f51f6d57f6758a1f907af4d4e2e795", "sha256": "ba6d602bcabfa9f212258e3080342bd0a70e9528762846a114d236fcb4ccbe70" }, "downloads": -1, "filename": "shape_commentator-0.2.1.tar.gz", "has_sig": false, "md5_digest": "d6f51f6d57f6758a1f907af4d4e2e795", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5019, "upload_time": "2018-12-29T13:09:41", "url": "https://files.pythonhosted.org/packages/33/74/d40c4faeee18ef163dc7ebbd1ea082de3a42832d88b326142cceb2ce75ad/shape_commentator-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "85f3b671c97c0ce4aabb40860f00a31f", "sha256": "ee87d40e47a3631dccce6674223ed3bd2d9f063267c7a7362a8a56760e8e7c9d" }, "downloads": -1, "filename": "shape_commentator-0.2.2.tar.gz", "has_sig": false, "md5_digest": "85f3b671c97c0ce4aabb40860f00a31f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5175, "upload_time": "2018-12-29T14:18:08", "url": "https://files.pythonhosted.org/packages/32/7c/917cbed77f709f7164b915733b9126bb7a78403d866a875842bf7b59b280/shape_commentator-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "8ceab103ba0f29dcaa71933ed03899e5", "sha256": "41dccc151966922c590f2994fda6d4f6afeecb86a92f17ba00f7294dd4bbc45a" }, "downloads": -1, "filename": "shape_commentator-0.2.3.tar.gz", "has_sig": false, "md5_digest": "8ceab103ba0f29dcaa71933ed03899e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4935, "upload_time": "2018-12-30T14:47:28", "url": "https://files.pythonhosted.org/packages/3c/2b/da6f29178f7b196d260c80edf4ce18e6302cbdc5f6c562baa3ba3305106c/shape_commentator-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "bca37bcf62d9cc1eebf730ba29c6e85c", "sha256": "d1f5fabc24f9f9ec379d2e1268536e2c8839e6b3e2266d9a6614e44684e72527" }, "downloads": -1, "filename": "shape_commentator-0.2.4.tar.gz", "has_sig": false, "md5_digest": "bca37bcf62d9cc1eebf730ba29c6e85c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4932, "upload_time": "2018-12-30T15:00:18", "url": "https://files.pythonhosted.org/packages/54/c3/ae5196da634dc7eaa14cc2cdd537bc4236fa610307a9213f88a13fbc4954/shape_commentator-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "f7d9365568f52da41c343bcd75c9e5ef", "sha256": "d69b1dc38b58aa0fba2c20905adc08f707ac925502a6db0614102d6da54b587b" }, "downloads": -1, "filename": "shape_commentator-0.2.5.tar.gz", "has_sig": false, "md5_digest": "f7d9365568f52da41c343bcd75c9e5ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4907, "upload_time": "2018-12-30T15:24:33", "url": "https://files.pythonhosted.org/packages/39/d5/8190999867400056f85e67f1de1251246418e8f40b23753908e3f31c28a0/shape_commentator-0.2.5.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "829567bbbeddbd09fe628c556e045477", "sha256": "9e8aec73a64dab360c65587c8929ad1dc57e32de292ee05aa016c71d7e7570c0" }, "downloads": -1, "filename": "shape_commentator-0.3.1.tar.gz", "has_sig": false, "md5_digest": "829567bbbeddbd09fe628c556e045477", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5164, "upload_time": "2018-12-31T04:03:01", "url": "https://files.pythonhosted.org/packages/45/1b/1af6610889d00ae26d9ee0a10b568ce3c218c99f7f3cd5ec47c15661b337/shape_commentator-0.3.1.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "0daf7a262c1c7553fa4f951abfac65fd", "sha256": "33ec0497a562929e8c4147657ee5efd08da6ba343cbbffb13c85213e759fa111" }, "downloads": -1, "filename": "shape_commentator-0.4.1.tar.gz", "has_sig": false, "md5_digest": "0daf7a262c1c7553fa4f951abfac65fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5471, "upload_time": "2018-12-31T10:17:40", "url": "https://files.pythonhosted.org/packages/f2/b6/be3ffb3452b9cc9e5b0946e9b0d112dae53957458b942ea7fd5fa5d9495d/shape_commentator-0.4.1.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "060d7348cb287627b0a197866419857f", "sha256": "9b5301109ae34155771f25ee1583d637c014f6a72eb1e99d10d732305f2072c3" }, "downloads": -1, "filename": "shape_commentator-0.5.1.tar.gz", "has_sig": false, "md5_digest": "060d7348cb287627b0a197866419857f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6904, "upload_time": "2019-01-02T02:57:31", "url": "https://files.pythonhosted.org/packages/f6/d1/fceeacf457a6050180d3f5f830df3559840e4b2233d07a30e4daa2ef4e64/shape_commentator-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "70f3fb47d341bbc713311feddfa8ca1c", "sha256": "fc9195b547a71a89be3eb8b91060d8eb7bc16599cfbfd6cb777c1e63464ad922" }, "downloads": -1, "filename": "shape_commentator-0.5.2.tar.gz", "has_sig": false, "md5_digest": "70f3fb47d341bbc713311feddfa8ca1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6997, "upload_time": "2019-02-07T07:56:21", "url": "https://files.pythonhosted.org/packages/5a/ad/45ebdc32ee89580fdec039749ab64014db7ebb2c4fcffcaabacfedd11dc3/shape_commentator-0.5.2.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "1f3ec9f1f0b2f8e7c1d06f3e028112a7", "sha256": "3d7bd822bbe6acf97f909d0ca9d2661dd4809d5e220338a5b0329e9c834cd685" }, "downloads": -1, "filename": "shape_commentator-0.6.0.tar.gz", "has_sig": false, "md5_digest": "1f3ec9f1f0b2f8e7c1d06f3e028112a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7180, "upload_time": "2019-07-16T05:44:20", "url": "https://files.pythonhosted.org/packages/1e/bf/d2f97c726ac4651e6f05ca88df400b97b4b7c9012d678070229a42ef6dc4/shape_commentator-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "2925d1f0e5965d6d6ac3a88aa8f95e63", "sha256": "f7a2c55d318651e4e38ce412a04df664dcdfd27b9520aae4fcf2cf60ad43af74" }, "downloads": -1, "filename": "shape_commentator-0.6.1.tar.gz", "has_sig": false, "md5_digest": "2925d1f0e5965d6d6ac3a88aa8f95e63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7375, "upload_time": "2019-08-04T08:13:33", "url": "https://files.pythonhosted.org/packages/50/60/a947379bb025335da5b73205bfbe163dba899b3928af3896372a3ee7da21/shape_commentator-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "7c68f83bdccc54a776b15c298fd48cc9", "sha256": "e828b0158b088356b51b241e79f9d99ac014a1bdf7584ff54da1803ce951734e" }, "downloads": -1, "filename": "shape_commentator-0.6.2.tar.gz", "has_sig": false, "md5_digest": "7c68f83bdccc54a776b15c298fd48cc9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7430, "upload_time": "2019-08-06T05:34:50", "url": "https://files.pythonhosted.org/packages/a2/51/d41fcd903dd04dc3988e14f0c5e495c00ea8f040f5cbf514a1e1e9aeb28e/shape_commentator-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "2b5ff59b252376f001b8bd0a300085f2", "sha256": "1f67da5687b9540d07a7cbb725a8578a971c8e066ffd68af9639cf88e166cc4a" }, "downloads": -1, "filename": "shape_commentator-0.6.3.tar.gz", "has_sig": false, "md5_digest": "2b5ff59b252376f001b8bd0a300085f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7502, "upload_time": "2019-08-21T13:30:19", "url": "https://files.pythonhosted.org/packages/07/37/2baa513b59aabea61eaf1ca95a6eeffceabddbb902b838a7d74da0e132db/shape_commentator-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "c58aaecb2ed520d1c38e5da887ccc212", "sha256": "25e2966c53ebebbff45b1e108045768db1f688828ecf634d19f55db57e89717f" }, "downloads": -1, "filename": "shape_commentator-0.6.4.tar.gz", "has_sig": false, "md5_digest": "c58aaecb2ed520d1c38e5da887ccc212", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7103, "upload_time": "2019-10-05T15:45:03", "url": "https://files.pythonhosted.org/packages/48/33/8a87e3e5a27b144f2388359955eed1f5d18b3ebc0b5cf5c02e0c76d67ae7/shape_commentator-0.6.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c58aaecb2ed520d1c38e5da887ccc212", "sha256": "25e2966c53ebebbff45b1e108045768db1f688828ecf634d19f55db57e89717f" }, "downloads": -1, "filename": "shape_commentator-0.6.4.tar.gz", "has_sig": false, "md5_digest": "c58aaecb2ed520d1c38e5da887ccc212", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7103, "upload_time": "2019-10-05T15:45:03", "url": "https://files.pythonhosted.org/packages/48/33/8a87e3e5a27b144f2388359955eed1f5d18b3ebc0b5cf5c02e0c76d67ae7/shape_commentator-0.6.4.tar.gz" } ] }