{ "info": { "author": "Tammo Ippen", "author_email": "tammo.ippen@posteo.de", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Scientific/Engineering :: Visualization", "Topic :: Terminals" ], "description": "# Plotille\n\n[![CircleCI](https://circleci.com/gh/tammoippen/plotille.svg?style=svg)](https://circleci.com/gh/tammoippen/plotille)\n[![Coverage Status](https://coveralls.io/repos/github/tammoippen/plotille/badge.svg?branch=master)](https://coveralls.io/github/tammoippen/plotille?branch=master)\n[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/tammoippen/plotille.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/tammoippen/plotille/context:python)\n[![Tested CPython Versions](https://img.shields.io/badge/cpython-2.7%2C%203.5%2C%203.6%2C%203.7-brightgreen.svg)](https://img.shields.io/badge/cpython-2.7%2C%203.5%2C%203.6%2C%203.7-brightgreen.svg)\n[![Tested PyPy Versions](https://img.shields.io/badge/pypy-2.7--7.1.0%2C%203.5--7.0.0%2C%203.6--7.1.0-brightgreen.svg)](https://img.shields.io/badge/pypy-2.7--6.0.0%2C%203.5--6.0.0-brightgreen.svg)\n[![PyPi version](https://img.shields.io/pypi/v/plotille.svg)](https://pypi.python.org/pypi/plotille)\n[![PyPi license](https://img.shields.io/pypi/l/plotille.svg)](https://pypi.python.org/pypi/plotille)\n\nPlot, scatter plots and histograms in the terminal using braille dots, with (almost) no dependancies. Plot with color or make complex figures - similar to a very small sibling to matplotlib. Or use the canvas to plot dots and lines yourself.\n\nInstall:\n\n```sh\npip install plotille\n```\n\nSimilar to other libraries:\n\n* like [drawille](https://github.com/asciimoo/drawille), but focused on graphing \u2013 plus X/Y-axis.\n* like [termplot](https://github.com/justnoise/termplot), but with braille (finer dots), left to right histogram and linear interpolation for plotting function.\n* like [termgraph](https://github.com/sgeisler/termgraph) (not on pypi), but very different style.\n* like [terminalplot](https://github.com/kressi/terminalplot), but with braille, X/Y-axis, histogram, linear interpolation.\n\nBasic support for timeseries plotting is provided with release 3.2: for any `X` or `Y` values you can also add `datetime.datetime`, `pendulum.datetime` or `numpy.datetime64` values. Labels are generated respecting the difference of `x_limits` and `y_limits`.\n\n## Documentation\n\n```python\nIn [1]: import plotille\nIn [2]: import numpy as np\nIn [3]: X = np.sort(np.random.normal(size=1000))\n```\n\n### Figure\n\nTo construct plots the recomended way is to use a `Figure`:\n\n```python\nIn [12]: plotille.Figure?\nInit signature: plotille.Figure()\nDocstring:\nFigure class to compose multiple plots.\n\nWithin a Figure you can easily compose many plots, assign labels to plots\nand define the properties of the underlying Canvas. Possible properties that\ncan be defined are:\n\n width, height: int Define the number of characters in X / Y direction\n which are used for plotting.\n x_limits: float Define the X limits of the reference coordinate system,\n that will be plottered.\n y_limits: float Define the Y limits of the reference coordinate system,\n that will be plottered.\n color_mode: str Define the used color mode. See `plotille.color()`.\n with_colors: bool Define, whether to use colors at all.\n background: multiple Define the background color.\n x_label, y_label: str Define the X / Y axis label.\n```\n\nBasically, you create a `Figure`, define the properties and add your plots. Using the `show()` function, the `Figure` generates the plot using a new canvas:\n\n```python\nIn [13] fig = plotille.Figure()\nIn [14] fig.width = 60\nIn [15] fig.height = 30\nIn [16] fig.set_x_limits(min_=-3, max_=3)\nIn [17] fig.set_y_limits(min_=-1, max_=1)\nIn [18] fig.color_mode = 'byte'\nIn [19] fig.plot([-0.5, 1], [-1, 1], lc=25, label='First line')\nIn [20] fig.scatter(X, np.sin(X), lc=100, label='sin')\nIn [21] fig.plot(X, (X+2)**2 , lc=200, label='square')\nIn [22] print(fig.show(legend=True))\n```\n![](https://github.com/tammoippen/plotille/raw/master/imgs/figure.png)\n\nThe available plotting functions are:\n```python\n# create a plot with linear interpolation between points\nFigure.plot(self, X, Y, lc=None, interp='linear', label=None)\n# create a scatter plot with no interpolation between points\nFigure.scatter(self, X, Y, lc=None, label=None)\n# create a histogram over X\nFigure.histogram(self, X, bins=160, lc=None)\n```\n\nOther interesting functions are:\n```python\n# remove all plots from the figure\nFigure.clear(self)\n# Create a canvas, plot the registered plots and return the string for displaying the plot\nFigure.show(self, legend=False)\n```\n\n### Graphing:\n\nThere are some utility functions for fast graphing of single plots.\n\n#### Plot:\n```python\nIn [4]: plotille.plot?\nSignature:\nplt.plot(\n X,\n Y,\n width=80,\n height=40,\n X_label='X',\n Y_label='Y',\n linesep='\\n',\n interp='linear',\n x_min=None,\n x_max=None,\n y_min=None,\n y_max=None,\n lc=None,\n bg=None,\n color_mode='names',\n origin=True,\n)\nDocstring:\nCreate plot with X , Y values and linear interpolation between points\n\nParameters:\n X: List[float] X values.\n Y: List[float] Y values. X and Y must have the same number of entries.\n width: int The number of characters for the width (columns) of the canvas.\n hight: int The number of characters for the hight (rows) of the canvas.\n X_label: str Label for X-axis.\n Y_label: str Label for Y-axis. max 8 characters.\n linesep: str The requested line seperator. default: os.linesep\n interp: Optional[str] Specify interpolation; values None, 'linear'\n x_min, x_max: float Limits for the displayed X values.\n y_min, y_max: float Limits for the displayed Y values.\n lc: multiple Give the line color.\n bg: multiple Give the background color.\n color_mode: str Specify color input mode; 'names' (default), 'byte' or 'rgb'\n see plotille.color.__docs__\n origin: bool Whether to print the origin. default: True\n\nReturns:\n str: plot over `X`, `Y`.\n\nIn [5]: print(plotille.plot(X, np.sin(X), height=30, width=60))\n```\n![](https://github.com/tammoippen/plotille/raw/master/imgs/plot.png)\n\n#### Scatter:\n```python\nIn [6]: plotille.scatter?\nSignature:\nplt.scatter(\n X,\n Y,\n width=80,\n height=40,\n X_label='X',\n Y_label='Y',\n linesep='\\n',\n x_min=None,\n x_max=None,\n y_min=None,\n y_max=None,\n lc=None,\n bg=None,\n color_mode='names',\n origin=True,\n)\nDocstring:\nCreate scatter plot with X , Y values\n\nBasically plotting without interpolation:\n `plot(X, Y, ... , interp=None)`\n\nParameters:\n X: List[float] X values.\n Y: List[float] Y values. X and Y must have the same number of entries.\n width: int The number of characters for the width (columns) of the canvas.\n hight: int The number of characters for the hight (rows) of the canvas.\n X_label: str Label for X-axis.\n Y_label: str Label for Y-axis. max 8 characters.\n linesep: str The requested line seperator. default: os.linesep\n x_min, x_max: float Limits for the displayed X values.\n y_min, y_max: float Limits for the displayed Y values.\n lc: multiple Give the line color.\n bg: multiple Give the background color.\n color_mode: str Specify color input mode; 'names' (default), 'byte' or 'rgb'\n see plotille.color.__docs__\n origin: bool Whether to print the origin. default: True\n\nReturns:\n str: scatter plot over `X`, `Y`.\n\nIn [7]: print(plotille.scatter(X, np.sin(X), height=30, width=60))\n```\n![](https://github.com/tammoippen/plotille/raw/master/imgs/scatter.png)\n\n#### Hist:\n\nInspired by [crappyhist](http://kevinastraight.x10host.com/2013/12/28/python-histograms-from-the-console/).\n```python\nIn [8]: plotille.hist?\nSignature: plotille.hist(X, bins=40, width=80, log_scale=False, linesep='\\n', lc=None, bg=None, color_mode='names')\nDocstring:\nCreate histogram over `X` from left to right\n\nThe values on the left are the center of the bucket, i.e. `(bin[i] + bin[i+1]) / 2`.\nThe values on the right are the total counts of this bucket.\n\nParameters:\n X: List[float] The items to count over.\n bins: int The number of bins to put X entries in (rows).\n width: int The number of characters for the width (columns).\n log_scale: bool Scale the histogram with `log` function.\n linesep: str The requested line seperator. default: os.linesep\n lc: multiple Give the line color.\n bg: multiple Give the background color.\n color_mode: str Specify color input mode; 'names' (default), 'byte' or 'rgb'\n see plotille.color.__docs__\n\nReturns:\n str: histogram over `X` from left to right.\n\nIn [9]: print(plotille.hist(np.random.normal(size=10000)))\n```\n![](https://github.com/tammoippen/plotille/raw/master/imgs/hist.png)\n\n#### Histogram:\n\nThere is also another more 'usual' histogram function available:\n```python\nIn [10]: plotille.histogram?\nSignature: plotille.histogram(X, bins=160, width=80, height=40, X_label='X', Y_label='Counts', linesep='\\n', x_min=None, x_max=None, y_min=None, y_max=None, lc=None, bg=None, color_mode='names')\nDocstring:\nCreate histogram over `X`\n\nIn contrast to `hist`, this is the more `usual` histogram from bottom\nto up. The X-axis represents the values in `X` and the Y-axis is the\ncorresponding frequency.\n\nParameters:\n X: List[float] The items to count over.\n bins: int The number of bins to put X entries in (columns).\n height: int The number of characters for the height (rows).\n X_label: str Label for X-axis.\n Y_label: str Label for Y-axis. max 8 characters.\n linesep: str The requested line seperator. default: os.linesep\n x_min, x_max: float Limits for the displayed X values.\n y_min, y_max: float Limits for the displayed Y values.\n lc: multiple Give the line color.\n bg: multiple Give the background color.\n color_mode: str Specify color input mode; 'names' (default), 'byte' or 'rgb'\n see plotille.color.__docs__\n\nReturns:\n str: histogram over `X`.\n\nIn [11]: print(plotille.histogram(np.random.normal(size=10000)))\n```\n![](https://github.com/tammoippen/plotille/raw/master/imgs/histogram.png)\n\n### Canvas:\n\nThe underlying plotting area is modeled as the `Canvas` class:\n```python\nIn [12]: plotille.Canvas?\nInit signature: plotille.Canvas(width, height, xmin=0, ymin=0, xmax=1, ymax=1, background=None, color_mode='names')\nDocstring:\nA canvas object for plotting braille dots\n\nA Canvas object has a `width` x `height` characters large canvas, in which it\ncan plot indivitual braille point, lines out of braille points, rectangles,...\nSince a full braille character has 2 x 4 dots (\u28ff), the canvas has `width` * 2, `height` * 4\ndots to plot into in total.\n\nIt maintains two coordinate systems: a reference system with the limits (xmin, ymin)\nin the lower left corner to (xmax, ymax) in the upper right corner is transformed\ninto the canvas discrete, i.e. dots, coordinate system (0, 0) to (`width` * 2, `height` * 4).\nIt does so transparently to clients of the Canvas, i.e. all plotting functions\nonly accept coordinates in the reference system. If the coordinates are outside\nthe reference system, they are not plotted.\nInit docstring:\nInitiate a Canvas object\n\nParameters:\n width: int The number of characters for the width (columns) of the canvas.\n hight: int The number of characters for the hight (rows) of the canvas.\n xmin, ymin: float Lower left corner of reference system.\n xmax, ymax: float Upper right corner of reference system.\n background: multiple Background color of the canvas.\n color_mode: str The color-mode for all colors of this canvas; either 'names' (default)\n 'rgb' or 'byte'. See `plotille.color()`.\n\nReturns:\n Canvas object\n```\n\nThe most interesting functions are:\n\n*point:*\n```python\nSignature: plotille.Canvas.point(self, x, y, set_=True, color=None)\nDocstring:\nPut a point into the canvas at (x, y) [reference coordinate system]\n\nParameters:\n x: float x-coordinate on reference system.\n y: float y-coordinate on reference system.\n set_: bool Whether to plot or remove the point.\n color: multiple Color of the point.\n```\n\n*line:*\n```python\nIn [14]: plotille.Canvas.line?\nSignature: plotille.Canvas.line(self, x0, y0, x1, y1, set_=True, color=None)\nDocstring:\nPlot line between point (x0, y0) and (x1, y1) [reference coordinate system].\n\nParameters:\n x0, y0: float Point 0\n x1, y1: float Point 1\n set_: bool Whether to plot or remove the line.\n color: multiple Color of the line.\n```\n\n*rect:*\n```python\nIn [15]: Canvas.rect?\nSignature: plotille.Canvas.rect(self, xmin, ymin, xmax, ymax, set_=True, color=None)\nDocstring:\nPlot rectangle with bbox (xmin, ymin) and (xmax, ymax) [reference coordinate system].\n\nParameters:\n xmin, ymin: float Lower left corner of rectangle.\n xmax, ymax: float Upper right corner of rectangle.\n set_: bool Whether to plot or remove the rect.\n color: multiple Color of the rect.\n```\n\n*plot:*\n```python\nIn [16]: Canvas.plot?\nSignature: plotille.Canvas.plot(self, x_axis=False, y_axis=False, y_label='Y', x_label='X', linesep='\\n')\nDocstring:\nTransform canvas into `print`-able string\n\nParameters:\n x_axis: bool Add a X-axis at the bottom.\n y_axis: bool Add a Y-axis to the left.\n y_label: str Label for Y-axis. max 8 characters.\n x_label: str Label for X-axis.\n linesep: str The requested line seperator. default: os.linesep\n\nReturns:\n unicode: The cancas as a string.\n```\n\nYou can use it for example to plot a house in the terminal:\n```python\nIn [17]: c = Canvas(width=40, height=20)\nIn [18]: c.rect(0.1, 0.1, 0.6, 0.6)\nIn [19]: c.line(0.1, 0.1, 0.6, 0.6)\nIn [20]: c.line(0.1, 0.6, 0.6, 0.1)\nIn [21]: c.line(0.1, 0.6, 0.35, 0.8)\nIn [22]: c.line(0.35, 0.8, 0.6, 0.6)\nIn [23]: print(c.plot())\n```\n![](https://github.com/tammoippen/plotille/raw/master/imgs/house.png)\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/tammoippen/plotille", "keywords": "plot,scatter,histogram,terminal,braille,unicode,timeseries", "license": "MIT", "maintainer": "Tammo Ippen", "maintainer_email": "tammo.ippen@posteo.de", "name": "plotille", "package_url": "https://pypi.org/project/plotille/", "platform": "", "project_url": "https://pypi.org/project/plotille/", "project_urls": { "Homepage": "https://github.com/tammoippen/plotille", "Repository": "https://github.com/tammoippen/plotille" }, "release_url": "https://pypi.org/project/plotille/3.7/", "requires_dist": [ "six (>=1.12,<2.0)" ], "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "summary": "Plot in the terminal using braille dots.", "version": "3.7" }, "last_serial": 5545727, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "372337a32601d01bcc00e88bcf878426", "sha256": "9430a5742b2596fe2375a1a3aceb8a4bd7bdcc88a3a0bb357a361b76b8132e36" }, "downloads": -1, "filename": "plotille-1.0.tar.gz", "has_sig": false, "md5_digest": "372337a32601d01bcc00e88bcf878426", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8593, "upload_time": "2017-09-27T14:26:39", "url": "https://files.pythonhosted.org/packages/a0/28/5e36201897aa6333bde1918b8b42a2a8bface7b18cdef4fc9bfd01ad5e0a/plotille-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "4ba807cfe0b7a9599189102b1cc69442", "sha256": "2e2e49a4977ff80f7e1c183b5bcc4c8a572c4f5db3ad132435fb89e7b2970502" }, "downloads": -1, "filename": "plotille-1.1.tar.gz", "has_sig": false, "md5_digest": "4ba807cfe0b7a9599189102b1cc69442", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15862, "upload_time": "2017-09-28T08:47:31", "url": "https://files.pythonhosted.org/packages/db/d8/c83495c72baea351ac5ee87bd26c5a69434f89af531098da8a98f2ada0b9/plotille-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "4ebae3d534cb1b5d1cfec2b19d07f1e9", "sha256": "6a307c5bc88744f1dbef1d1f2c373c15978c8ff5e45305d50f881ff308cac01d" }, "downloads": -1, "filename": "plotille-1.2.tar.gz", "has_sig": false, "md5_digest": "4ebae3d534cb1b5d1cfec2b19d07f1e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15867, "upload_time": "2017-09-28T09:41:00", "url": "https://files.pythonhosted.org/packages/dd/ec/40070bf2c788361dd9eba775d4389caf103a76eb663f240e1177f0f9c585/plotille-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "48e2ce3d489a6f687fe6820a88def541", "sha256": "5e18e6c77c7c073d1882f69c1f04dbb88a7df85e6e10476d2ba4b60039ac25f5" }, "downloads": -1, "filename": "plotille-1.3.tar.gz", "has_sig": false, "md5_digest": "48e2ce3d489a6f687fe6820a88def541", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7495, "upload_time": "2017-10-04T09:57:59", "url": "https://files.pythonhosted.org/packages/f7/25/78be7ba03bc7fa63bde0c90c466e5334a1622884bac250d2ba2c3bc637fd/plotille-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "fdd655dd86e951b50d4601ad4bf2a7d3", "sha256": "e6d546cc34dac8d764dc39fcb6e0f7e143dddb96684008460204df97564c3d2e" }, "downloads": -1, "filename": "plotille-1.4.tar.gz", "has_sig": false, "md5_digest": "fdd655dd86e951b50d4601ad4bf2a7d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7745, "upload_time": "2017-10-06T11:27:15", "url": "https://files.pythonhosted.org/packages/a9/d1/082f201016a8c40c7d671308e4b092ee2b3e345c560df53ebb01d519cec1/plotille-1.4.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "c4b04449a840269c533360eaf3f44201", "sha256": "98ff71cee0f4f547ba9dd755dac754d2993dab2c5c13580bdc4c2ecb58eae2c0" }, "downloads": -1, "filename": "plotille-1.5.tar.gz", "has_sig": false, "md5_digest": "c4b04449a840269c533360eaf3f44201", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7911, "upload_time": "2017-11-01T22:06:14", "url": "https://files.pythonhosted.org/packages/25/87/08246c39fd2c034c566bd30f19ad92811f2a0572dfc4ebdf96701cba03a7/plotille-1.5.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "31a178871994aaa3de4b2e4f50aee54c", "sha256": "1777d2a14eb1a1e25dbff160650a0de6481a1bf83a551c77b30c493e04b45520" }, "downloads": -1, "filename": "plotille-2.0.tar.gz", "has_sig": false, "md5_digest": "31a178871994aaa3de4b2e4f50aee54c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18633, "upload_time": "2017-11-08T23:20:11", "url": "https://files.pythonhosted.org/packages/8a/9d/925d76770ee0be7b1b310b9a74c35911ec15d9659c21fb8a00262bd13f50/plotille-2.0.tar.gz" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "233c9fc33b4fa0f06f01239acc755af2", "sha256": "ff6a306fa89d9b28c2485ccb37ef64a85dcf6d8dbbae3d0784dda49e007eb2c1" }, "downloads": -1, "filename": "plotille-2.1.tar.gz", "has_sig": false, "md5_digest": "233c9fc33b4fa0f06f01239acc755af2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19178, "upload_time": "2017-11-09T11:02:45", "url": "https://files.pythonhosted.org/packages/23/9c/26f803da70b1c7b455141413084169990daaa0cac59396c7cbe91694e825/plotille-2.1.tar.gz" } ], "3.0": [ { "comment_text": "", "digests": { "md5": "7a2ea13f29f8d16e079e44d6c8ec928e", "sha256": "ce8f8f03360982ba85c7aa500703b7ce8511bca3920cae8060b3298b85fb5f02" }, "downloads": -1, "filename": "plotille-3.0.tar.gz", "has_sig": false, "md5_digest": "7a2ea13f29f8d16e079e44d6c8ec928e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31735, "upload_time": "2017-12-15T12:52:32", "url": "https://files.pythonhosted.org/packages/27/e8/530998e97a609ce4a6a586df2d6564dfca841895dea90faa06335563b7d4/plotille-3.0.tar.gz" } ], "3.1": [ { "comment_text": "", "digests": { "md5": "a79438e601a64dc99cea7e7e75af9b2e", "sha256": "a6734851e33adf8268d455d7abe30f2004a76f9cdbd4bfae4a74fd2bb6f33b96" }, "downloads": -1, "filename": "plotille-3.1.tar.gz", "has_sig": false, "md5_digest": "a79438e601a64dc99cea7e7e75af9b2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31730, "upload_time": "2017-12-19T08:50:39", "url": "https://files.pythonhosted.org/packages/17/59/27e449b694ca22c7cbfccf107959b9a34b344d9e7fec3a4cb7d8a761bf5a/plotille-3.1.tar.gz" } ], "3.2": [ { "comment_text": "", "digests": { "md5": "ad82c63f071d2fa86a372fca4cf377de", "sha256": "cdfa26de6c11a20d999b1fea9d559e12d7aee07bb393ff7b86d22fe20763ddf4" }, "downloads": -1, "filename": "plotille-3.2.tar.gz", "has_sig": false, "md5_digest": "ad82c63f071d2fa86a372fca4cf377de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37504, "upload_time": "2018-02-01T18:57:11", "url": "https://files.pythonhosted.org/packages/79/a7/3c6d90f190347eb763bfda6d9ebed6dacbc2779f650bfc414c4f26927f56/plotille-3.2.tar.gz" } ], "3.3": [ { "comment_text": "", "digests": { "md5": "61a19ea741d8cd74f38b0393bd239944", "sha256": "46a92f83caed6d75b32d551fd4ea3283760d83d7f6afffa41b259a19df82246e" }, "downloads": -1, "filename": "plotille-3.3.tar.gz", "has_sig": false, "md5_digest": "61a19ea741d8cd74f38b0393bd239944", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38704, "upload_time": "2018-02-14T12:06:25", "url": "https://files.pythonhosted.org/packages/c1/a3/bd99782c73368820bdcf1a068cf24f6cbbd1d55e2ab56e9ef561bc203a57/plotille-3.3.tar.gz" } ], "3.4": [ { "comment_text": "", "digests": { "md5": "ccdd365236a3ca52b8b604bd7bc8c1f9", "sha256": "6c769771d92f58b073a0dce7704d04d121ab7c3cc64899c0c353d8748f3cea1d" }, "downloads": -1, "filename": "plotille-3.4.tar.gz", "has_sig": false, "md5_digest": "ccdd365236a3ca52b8b604bd7bc8c1f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38684, "upload_time": "2018-04-26T14:46:10", "url": "https://files.pythonhosted.org/packages/79/e1/5f6bd323fe54e0a7f8ae23de485b3728054850defd4c85f5a5799aa0d2fe/plotille-3.4.tar.gz" } ], "3.5": [ { "comment_text": "", "digests": { "md5": "51709d1bc154150a1b180c9d61c8983f", "sha256": "d2d11bf0bd013982d7703590188b43815dff8ff7af2755f2ff4f065cff5e4b6e" }, "downloads": -1, "filename": "plotille-3.5.tar.gz", "has_sig": false, "md5_digest": "51709d1bc154150a1b180c9d61c8983f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 20628, "upload_time": "2018-12-17T08:39:05", "url": "https://files.pythonhosted.org/packages/f0/ac/7189188586c3d3b9988b0238cd089e7495e2b7946bcbdaeb24127a3946b7/plotille-3.5.tar.gz" } ], "3.6": [ { "comment_text": "", "digests": { "md5": "be714b41311a70a06f56f1b2135a48e9", "sha256": "ec8db66473a81290f794fc9d86c0b2fd9486dda9ee5a97835ead05a8e64cd6fe" }, "downloads": -1, "filename": "plotille-3.6.tar.gz", "has_sig": false, "md5_digest": "be714b41311a70a06f56f1b2135a48e9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 20918, "upload_time": "2019-03-29T10:54:37", "url": "https://files.pythonhosted.org/packages/8e/57/3b59580d3abe1c6b0b634a52f52488cff924d54c088d12561db0c8b48e96/plotille-3.6.tar.gz" } ], "3.7": [ { "comment_text": "", "digests": { "md5": "37f4d0ae326185a6bb95958bd9a72510", "sha256": "44afcfaf9d276c6eeef9978bf480127f33f046fe4f88d177bd4899b2acd266a2" }, "downloads": -1, "filename": "plotille-3.7.tar.gz", "has_sig": false, "md5_digest": "37f4d0ae326185a6bb95958bd9a72510", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 22263, "upload_time": "2019-07-17T12:54:37", "url": "https://files.pythonhosted.org/packages/22/16/219daf27f7af6bec6b8f6dd1fe928e2723e4f9def04139aa5be8adea1800/plotille-3.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "37f4d0ae326185a6bb95958bd9a72510", "sha256": "44afcfaf9d276c6eeef9978bf480127f33f046fe4f88d177bd4899b2acd266a2" }, "downloads": -1, "filename": "plotille-3.7.tar.gz", "has_sig": false, "md5_digest": "37f4d0ae326185a6bb95958bd9a72510", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 22263, "upload_time": "2019-07-17T12:54:37", "url": "https://files.pythonhosted.org/packages/22/16/219daf27f7af6bec6b8f6dd1fe928e2723e4f9def04139aa5be8adea1800/plotille-3.7.tar.gz" } ] }