{ "info": { "author": "David COBAC", "author_email": "david.cobac@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "This package provides a `supercanvas` widget based on the original\n`tkinter` canvas. It provides a quickly useable canvas with a\nusual cartesian coordinate system.\n\nAs it remains a canvas, I've tried to keep canvas's items\nbehaviour. So options of items created are usual options and items\ncreated return id (as a number) of the object so that you can\n`itemconfigure` it.\n\nNote: `tticks` tag is no more used, replaced by `xlabel` and\n`ylabel` tags.\n\n\n# Full commands list\n\n``` python3\nfrom supercanvas import *\n\n```\n\n\n``` python3\n\nsupercanvas(rootname, **options)\n\n```\n\n`options` could be ususal `tkinter` options and boolean variables:\n`axes`, `ticks`, `xlabel`, `ylabel` `grid`, `zero` and `follow`.\n\nThese variables dis/enable features of `supercanvas`.\n\n\n`supercanvas` setup methods:\n\n``` python3\n\n.setOrigin(x, y)\n.getOrigin()\n\n.setViewX(x1, x2)\n.setViewY(y1, y2)\n.getView()\n\n.setUnit(x, y)\n.getUnit()\n\n.setTicks(dx, dy)\n.getTicks()\n\n.setDim(scanvas_width, scanvas_height)\n.getDim()\n\n```\n\n`supercanvas` setup variables:\n\n``` python3\n\n.axes # boolean\n.ticks # boolean\n.xlabel # boolean\n.ylabel # boolean\n.grid # boolean\n.zero # boolean\n\n.step # float or int: distance between successive argument values in drawFunction/Param\n\n```\n\n\n`supercanvas` drawing methods:\n\n\n``` python3\n\n.export() # save supercanvas in an eps file whose name is timestamped\n\n.drawPoint(x, y, **options)\n.drawLine(list, **options) # flat-list or list of tuples\n.drawFunction(function, a, b, **options)\n.drawParam(x-function, y_function, a, b, **options)\n.drawSeq(function, 1st_term, final_rank, **options)\n\n```\n\n`supercanvas` tags to identify objects: `axes`, `ticks`, `xlabel`,\n`ylabel` `grid` and `zero`.\n\nThese tags enable you to configure objects tagged with the usual way:\n\nFor example:\n\n``` python3\n\n.itemconfigure(\"axes\", fill=\"red\", dashed=(5, 2))\n\n\n```\n\n\n\n`hsv_to_rgb(h, s, v)` is based on [this SO code](https://stackoverflow.com/questions/24852345/hsv-to-rgb-color-conversion)\n\n\n``` python3\n\nbeginmagicTk() # output to store\nendMagicTk(name_of_previous_output)\n\n```\n\n\n\n### Real documentation begins at this point\n\nIf you just want to have this `supercanvas` alone with no other\nwidget, see `magicTk` section at the end.\n\n### class object\n\n``` python3\n\n>>> from supercanvas import *\n\n```\n\nOnce package importation completed, you have to create a\nsupercanvas the usual way.\n\n``` python3\n\nr = tkinter.Tk()\nc = supercanvas(r, bg=\"white\", width=800, height=600)\n\n```\n\n\n### origin and units\n\nBy default, origin is located at `supercanvas`'s center and units\nare both 1 pixel (and axes are drawn in french style with\narrows). You can change this with `setOrigin` and `setUnit`\nmethods:\n\n\n``` python3\n\nc.setUnit(80, 100)\nc.setOrigin(50, 200)\n\n```\n\nOne new feature of 0.4 version is to introduce `setViewX` and\n`setViewY` which allows you to forget about `setUnit` and\n`setOrigin`. You use these two methods to indicate limits of your\ndrawing frame, that's so simple!\n\n``` python3\n\nc.setViewX(-5, 5)\nc.setViewY(-1.05, 3.1)\n\n```\n\n\n### axes and ticks\n\nBy default, axes, ticks, tticks, grid ans zero are shown/drawn. If\nyou want them not to appear, you pass options `axes`, `ticks`,\n`xlabel`, `ylabel`, `grid` and `zero` to `False` in the\n`supercanvas` command.\n\nOr you can these variables to `False` into your script. \n\n\n`setTicks` method allow you to set distance between ticks.\n\n\n``` python3\n\nc.axes = False\nc.setTicks(1, .5)\n\n```\n\n\n### supercanvas items\n\n`supercanvas` provides four drawing methods `drawPoint`, `drawLine`, `drawFunction`, `drawParam` and `drawSeq`.\n\n\n* `drawPoint` method creates a point at the desired coords.\n\n``` python3\n\nf = lambda x:x**2\nx = 3\nc.drawPoint(x, f(x), fill=\"red\", outline=\"red\")\n\n```\n\nIt's based on `create_oval` so you can pass each option related to\n`Oval` object.\n\n* `drawLine` method creates a line with a list of coords.\n\n``` python3\n\nc.drawLine([(-2, 2), (-1, 0), (0, 3)], fill=\"blue\", width=3)\n\n```\n\n`drawLine` also supports a flat list of coords:\n\n``` python3\n\nc.drawLine([-2, 2, -1, 0, 0, 3], fill=\"blue\", width=3)\n\n```\n\ngives the same line.\n\n\n* `drawFunction` method creates a line representing a function passed.\n\n\n``` python3\n\nf = lambda x: 3 * x ** 2 + 2 \nc.drawLine(f, -2, 7, fill=\"green\")\n\n```\n\n-2 and 7 are the lower and upper values of argumentt's function.\n\nYou can use `step` method to specify difference between two\nconsecutive argguments, default is 1.\n\n\n``` python3\n\nf = lambda x: 3 * x ** 1.2 + 2\nc.step = .1\nc.drawLine(f, -2, 7, fill=\"green\")\n\n```\n\n\n* `drawParam` method creates a line representing a parametric curve.\n\n\nthis code creates a unit circle:\n\n\n``` python3\n\nf = lambda x: math.cos(x)\ng = lambda x: math.sin(x)\nc.step = .01\nc.drawParam(f, g, 0, 2 * math.pi)\n\n```\n\n* `drawSeq` method creates a broken line representing visual serach\n of a recursive sequence based on a function i.e. \\$ u_{n+1} =\n f(u_n)\\$.\n\n\nFunction and identity function do not need to be drawn but it\nvisually helps to understand line construction.\n\n\n``` python3\n\nf = lambda x: 1/(1+x)\nc.step = .01\nc.drawFunction(f, 0, 2)\nc.drawSeq(f, 1, 5)\n\n```\n\nIn the previsous example, \\$u_1=f(u_0)\\$ until we reach\n\\$u_5\\$. Construction stops when we just have to read \\$u_5\\$ on\nx-axis.\n\n\n### grab/release background\n\nYou can move the whole `supercanvas` content in grabing /\nreleasing the background. It will refresh coords.\n\n### zooming\n\nYou can zoom the whole `supercanvas` content with mousewheel.\n\n### `supercanvas` options\n\n* `axes`\n\npassing `axes=False` to `supercanvas` options disable axes, default\nis `True`. For the moment, you cannot change axes style...\n\n* `ticks`\n\npassing `ticks=False` to `supercanvas` options disable ticks, default is `True`.\n\n* `xlabel` and `ylabel`\n\npassing `xlabel=False` to `supercanvas` options disable text labels\non x-axis, default is `True`. Same thing for `ylabel`\n\n* `grid`\n\npassing `grid=False` to `supercanvas` options disable the grid, default is `True`.\n\n* `zero`\n\npassing `zero=False` to `supercanvas` options disable zero apparition, default is `True`.\n\n* `follow`\n\npassing `follow=False` to `supercanvas` options disable cursor follow with coords, default is `True`.\n\n### exporting\n\n`supercanvas` provides an `export` method. At each call, this\ncreates an `eps` (encapsulated postscript, so a vector graphics)\nfile which name is a timestamp, so successive exports are sorted.\n\nExport images are in a `exportImages` directory created on the\ncurrent directory if it doesn't exist.\n\n\n### create an animation for linux users\n\nYou can find an [eps2png perl script](https://metacpan.org/source/JV/eps2png-2.7/src/eps2png.pl) by Johan Vromans.\n\nIt's a quite fast script. Once in the `exportImages` directory, you\nrun it:\n\n``` bash\n\n$ eps2png *.eps\n\n```\n\nIt creates you png files with the same names. Then with [convert command of ImageMagick](https://imagemagick.org/script/convert.php), you run:\n\n\nNote: It's better to pass `-width` and `-height` options to this\nconversion command to respect initial size. Sometimes you will need also\nto adapt antialiasing with `-antialias` option (1, 2, 4 or 8).\n\n\n``` bash\n\n$ convert -delay 10 *.png animation.gif\n\n```\n\nto output a gif with the delay specified between images.\n\nSee example 4 below for a full complete example.\n\n\n### full examples\n\n* example 1\n\nPoints and functions using `drawPoint` and `drawLine`.\n\n\n``` python3\n\nfrom supercanvas import *\nimport math\nr = tkinter.Tk()\n\nc = supercanvas(r, bg=\"white\", width=800, height=600, ticks=False)\nc.setUnit(100, 100)\n\nf=lambda x:math.cos(x)\ng=lambda x:math.sin(x)\n\np = .1\na, b = -3, 3\nx = a\nlistePointsF = []\nlistePointsG = []\nfor i in range(int(1 + (b - a) / p)):\n # creating points \n c.drawPoint(x, f(x), fill=\"red\", outline=\"red\")\n # two lists\n # function f with tuples\n listePointsF += (x, f(x))\n # function g with flat list\n listePointsG += [x]+[g(x)]\n x += p\n\n# drawings of the two curves\nc.drawLine(listePointsF, fill=\"green\")\nc.drawLine(listePointsG, fill=\"blue\", width=3)\n\n# balancing canvas on the root\nc.pack(expand=True)\n\n# q to quit\nr.bind(\"\", quit)\ntkinter.mainloop()\n\n```\n\n\n* example 2\n\nFunction using `drawFunction`.\n\n``` python3\n\nfrom supercanvas import *\nimport math\nr = tkinter.Tk()\n\nc = supercanvas(r, bg=\"#00964a\")\nc.setOrigin(30, 150)\nc.setUnit(10, 80)\n\nf = lambda x: math.sin(x) / x\nc.step=.1\nc.drawFunction(f, c.step, 10*math.pi, width=3, fill=\"white\")\n\nc.pack()\nr.bind(\"\", quit)\ntkinter.mainloop()\n\n```\n\n* example 3\n\nCardioid curve using `drawParam`\n\n``` python3\n\nfrom supercanvas import *\nimport math\nr = tkinter.Tk()\n\nc = supercanvas(r, bg=\"red\", width=500, height=500)\nc.setOrigin(100, 250)\nc.setUnit(150, 150)\n\nx = lambda t: 2 * (1 - t ** 2) / (1 + t ** 2) ** 2\ny = lambda t: 4 * t / (1 + t ** 2) ** 2\nc.step=.001\nc.drawParam(x, y, -10, 10, width=3, fill=\"white\")\n\nc.pack()\nr.bind(\"\", quit)\ntkinter.mainloop()\n\n\n```\n\n\n* example 4\n\nLissajous animated curve with possibility to export.\n\n\n``` python3\n\nfrom supercanvas import *\n\nimport math\nw = beginMagicTk()\n# canvas dimension\ndim = 600\n# offset: mid-with of the linewidth\noffset = 25\n#\nc = supercanvas(w, bg=\"white\", width=dim, height=dim,\n axes=False, ticks=False)\nc.pack(expand=True)\nc.setUnit(dim/2 - offset, dim/2 - offset)\n\n# steps between entry values\nc.step = .005\n# exploring to 10 with 50 values in-between\nn = 10\nsteps = 50\n#\nfor i in range(steps * n + 1):\n j = i / steps\n allerRetour = abs(n / 2 - j)\n twoPi = 2 * math.pi\n id = c.drawParam(lambda x: math.cos(allerRetour * x),\n lambda x:math.sin((n / 2 - allerRetour) * x),\n 0, twoPi,\n width=50, fill=\"black\", smooth=1,\n joinstyle=\"round\", capstyle=\"round\")\n # update content\n c.update()\n # export image to directory\n # next line to uncomment to export\n # c.export()\n # wait a little\n w.after(10)\n # delete actual curve from content\n c.delete(id)\n\nendMagicTk(w)\n\n\n```\n\n* example 5\n\nCustomizing axes and drawn elements \n\n\n``` python3\n\nw = beginMagicTk()\ndim = 600\nc = supercanvas(w, bg=\"white\", width=dim, height=dim,\n axes=True,\n ticks=True,\n xlabel=False,\n ylabel=False,\n grid=True)\nc.setUnit(100, 100)\nc.itemconfigure(\"axes\", fill=\"red\", width=1)\nc.itemconfigure(\"grid\", fill=\"darkblue\", dash=(5, 2, 1, 2))\nc.itemconfigure(\"ticks\", fill=\"blue\", width=5)\nc.step=.1\nc.drawFunction(lambda x:.5 * x**2, -5, 5,\n fill=\"darkgreen\", dash=(5, 2), width=4)\n\nendMagicTk(w)\n\n```\n\n### magicTk\n\nBecause remembering `tkinter` commands for just one widget is\nawful, `supercanvas` provides two commands `beginMagicTk` and\n`endMagicTk`.\n\nKey `q` is bind to close/exit event.\n\nHere's how to use them in a standalone example file:\n\n``` python3\n\nfrom supercanvas import *\nw = beginMagicTk()\n\nc = supercanvas(w, bg=\"white\")\nc.setUnit(100, 20)\nc.setTicks(.5, 2)\n\nf = lambda x: x ** 3\nc.step=.1\nc.drawFunction(f, -3, 3)\n\nendMagicTk(w)\n\n```\n\nAssign first command output, use it in `supercanvas` and\n`endMagicTk` commands.\n\nIf you want to `update` supercanvas content for animation for\nexample, you shouldn't use this since `endMagicTk` contains the\ncommand to show the canvas, so maybe too late for you.\n\n\n### further\n\nMuch much more!\n\n\n### about\n\nsupercanvas is rather an attempt to publish on the `PyPi` packages\nindex than a fully completed python project, I do not recommend\nsupercanvas usage for professionnal use. You have to consider this\npackage as an experiment.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://twitter.com/david_cobac", "keywords": "tkinter,canvas,cartesian,rep\u00e8re", "license": "CC-BY-NC-SA", "maintainer": "", "maintainer_email": "", "name": "supercanvas", "package_url": "https://pypi.org/project/supercanvas/", "platform": "", "project_url": "https://pypi.org/project/supercanvas/", "project_urls": { "Homepage": "https://twitter.com/david_cobac" }, "release_url": "https://pypi.org/project/supercanvas/0.6.6/", "requires_dist": null, "requires_python": ">3.2", "summary": "tkinter simplified (and augmented) canvas", "version": "0.6.6" }, "last_serial": 5686505, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "c9391baedb06738f3096ec4b618b33ca", "sha256": "42afe2898592220a97e44e37010286b8269e41683ba92d354856a96e7fd5a495" }, "downloads": -1, "filename": "supercanvas-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c9391baedb06738f3096ec4b618b33ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4930, "upload_time": "2018-12-27T16:58:54", "url": "https://files.pythonhosted.org/packages/65/9e/2f79358b3e45f59f6540a6d4fc682635351bfd18b114841e589bafa8ac11/supercanvas-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4bbbdf5333f9ebd5ecb8c117a440f25", "sha256": "6620a44881bbee0bc96204b6cb50c7ae8692bbfdb403c89f0acafba34030152f" }, "downloads": -1, "filename": "supercanvas-0.1.0.tar.gz", "has_sig": false, "md5_digest": "d4bbbdf5333f9ebd5ecb8c117a440f25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4411, "upload_time": "2018-12-27T16:58:56", "url": "https://files.pythonhosted.org/packages/84/27/07f195f3ba9cfb15aa58f2a9eac582d2abe36b42f1e2f13ce8c5d9a61566/supercanvas-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "649e7627e389da0d1b4481a91c77f19f", "sha256": "f8de8d31355b68318ae56ec6bc206fb2efb326a15df97c18252b8709e1d8599f" }, "downloads": -1, "filename": "supercanvas-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "649e7627e389da0d1b4481a91c77f19f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5399, "upload_time": "2018-12-28T08:42:29", "url": "https://files.pythonhosted.org/packages/a4/7a/73021168f4c2fd87a6cd111c32e1c2d0a0a9b2e302c1ef4cb85aa314280b/supercanvas-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "039174a51030005ebe81bcc3135dced2", "sha256": "c7d72be1c52ae88e73ecec95b772f5b439300d6b8c546e04aa824a1b6bb52fbc" }, "downloads": -1, "filename": "supercanvas-0.1.1.tar.gz", "has_sig": false, "md5_digest": "039174a51030005ebe81bcc3135dced2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4934, "upload_time": "2018-12-28T08:42:31", "url": "https://files.pythonhosted.org/packages/9e/2e/3d10831b89f897b8bee037187cd187bdb4b00adc8245515d4e21dd08a5d8/supercanvas-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "e75c63c93edca9d1e0748871d8906191", "sha256": "0866ea7978cd9f8c76673ea13029072a315cc8892b6df814dcf280526c1442e0" }, "downloads": -1, "filename": "supercanvas-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e75c63c93edca9d1e0748871d8906191", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7052, "upload_time": "2018-12-28T17:09:05", "url": "https://files.pythonhosted.org/packages/76/ca/a7293cb57fbc0343239a2f1aae0f9738bffc3334394d9583757f96547d3e/supercanvas-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8ef97c7c1fb425b1ed60a4901d53020d", "sha256": "62395a33a87121e0b456f3a64875d35e4674e476661fc4a70189c2bd90117529" }, "downloads": -1, "filename": "supercanvas-0.2.0.tar.gz", "has_sig": false, "md5_digest": "8ef97c7c1fb425b1ed60a4901d53020d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7216, "upload_time": "2018-12-28T17:09:06", "url": "https://files.pythonhosted.org/packages/7e/77/eea98fc67a8d9d301965b57f5141e4b1a0ac6daf85de58a3be21ab50ba33/supercanvas-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "26809614cf8da0b7c256b1e40902df54", "sha256": "9f83fa2e99a9b86ae2e5da30d0d9049ad37b30a3e4e1258c119916fe210217a7" }, "downloads": -1, "filename": "supercanvas-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "26809614cf8da0b7c256b1e40902df54", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.2", "size": 9065, "upload_time": "2018-12-29T14:04:22", "url": "https://files.pythonhosted.org/packages/50/a5/bc57101c5db9f2a47eb3e5eb7f52002452715b937051540da6a4497b0021/supercanvas-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e72a21fc531bc1ef3db18c9e5517801", "sha256": "03f5e44a502ed2b35fd7e9b5d31a54f3ac8d1d4128cce7de734e65585de6b464" }, "downloads": -1, "filename": "supercanvas-0.3.0.tar.gz", "has_sig": false, "md5_digest": "0e72a21fc531bc1ef3db18c9e5517801", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.2", "size": 10755, "upload_time": "2018-12-29T14:04:23", "url": "https://files.pythonhosted.org/packages/e7/c3/1f215d63d35078ac1a32206cd60b7a7763272cc7ebce7006a8978cf9d519/supercanvas-0.3.0.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "c00aec44555998e62f9b3c0f8c11417e", "sha256": "de7652eedab9fc11afafbd2c60ec5a7587f327a77004179c1b314c763665a9b0" }, "downloads": -1, "filename": "supercanvas-0.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c00aec44555998e62f9b3c0f8c11417e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.2", "size": 13313, "upload_time": "2019-01-01T18:04:33", "url": "https://files.pythonhosted.org/packages/46/85/565ab559e32a131dd3d665bd037c200733899d4ff82d41068792202af328/supercanvas-0.4.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f9a474061c7b2bea12435f768f52341", "sha256": "66382211cc5249d1532bf6e89839499a7a72fef65c44dee8238f2f828f0fa60b" }, "downloads": -1, "filename": "supercanvas-0.4.3.tar.gz", "has_sig": false, "md5_digest": "8f9a474061c7b2bea12435f768f52341", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.2", "size": 16687, "upload_time": "2019-01-01T18:04:34", "url": "https://files.pythonhosted.org/packages/d7/20/5ae6a2e6eca9ec6494a8e2a9f96868c84ec58790c2daf4a656f07373f9e0/supercanvas-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "3db5e4eac0e281a4ed49204d807a277f", "sha256": "560fc669707d3d6718b9561141fd00887e4462a81123bb2253d373031ca522e0" }, "downloads": -1, "filename": "supercanvas-0.4.4-py3-none-any.whl", "has_sig": false, "md5_digest": "3db5e4eac0e281a4ed49204d807a277f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.2", "size": 13349, "upload_time": "2019-01-01T22:44:21", "url": "https://files.pythonhosted.org/packages/bc/0c/952c1d72caae8fc5d034ff583f204edb3aa9d02c2e42905886de90942b32/supercanvas-0.4.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88fbdf6c03cea7648f56be0006e6519d", "sha256": "44d355d19d664d399362e99f715fb0ed71f6ed0f6694238d4e49043f3e194692" }, "downloads": -1, "filename": "supercanvas-0.4.4.tar.gz", "has_sig": false, "md5_digest": "88fbdf6c03cea7648f56be0006e6519d", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.2", "size": 16726, "upload_time": "2019-01-01T22:44:22", "url": "https://files.pythonhosted.org/packages/77/79/5a24a558bd68b359379a6a27fc4bab6e7331ec946e126ae64bddfe5a555c/supercanvas-0.4.4.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "a93cdffa97dade4d43454c58880f9409", "sha256": "be3723884c0700a0d4e9350c987a7fd8ebd615d560e26ebcaeb2e829d7dd8061" }, "downloads": -1, "filename": "supercanvas-0.4.5-py3-none-any.whl", "has_sig": false, "md5_digest": "a93cdffa97dade4d43454c58880f9409", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.2", "size": 13304, "upload_time": "2019-01-01T22:50:14", "url": "https://files.pythonhosted.org/packages/79/7e/fdc836aac8529f34db167fb21367a2e4917d6edef34f5aa1fc1564257286/supercanvas-0.4.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63c44c3154c2ba374c71cce1428484bc", "sha256": "87588095074c7f756345bf8b4dfc8299ec5d99070bf4a0bc8be5c3701341be79" }, "downloads": -1, "filename": "supercanvas-0.4.5.tar.gz", "has_sig": false, "md5_digest": "63c44c3154c2ba374c71cce1428484bc", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.2", "size": 16674, "upload_time": "2019-01-01T22:50:16", "url": "https://files.pythonhosted.org/packages/b2/dd/0d603e096c627d409403e07d1ab4beef06d6f4163c99e8424125dbf9d6d0/supercanvas-0.4.5.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "b7af2ccc04e59f0fa45c3ecbb3178fa1", "sha256": "d28ed4dfd491ca3e4f2996cec5a9735ce84911e0910bd9de7ef132ce7b9333a8" }, "downloads": -1, "filename": "supercanvas-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b7af2ccc04e59f0fa45c3ecbb3178fa1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.2", "size": 14558, "upload_time": "2019-01-02T16:22:00", "url": "https://files.pythonhosted.org/packages/50/84/d462c290059c9654d209116333c254c30b7c6387e3be1b08dfd2d783d5f5/supercanvas-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bb3db311fd6bf21a9f7fbe711a3b5b97", "sha256": "5f2bdbea03f958f43693472f68dbb6889e1cc73b4de75233c979f25e9542befe" }, "downloads": -1, "filename": "supercanvas-0.5.0.tar.gz", "has_sig": false, "md5_digest": "bb3db311fd6bf21a9f7fbe711a3b5b97", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.2", "size": 18404, "upload_time": "2019-01-02T16:22:03", "url": "https://files.pythonhosted.org/packages/5b/7a/4a059347b326f7886d401a6439eb55987fcf34d3d41658dc976cf1e1ebaa/supercanvas-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "4207126b53266c33e5f67d32be91fdb5", "sha256": "db5f8a45509e81891f8835dc32bad67e0443078f1f5f0df0baba3711938e54e7" }, "downloads": -1, "filename": "supercanvas-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4207126b53266c33e5f67d32be91fdb5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.2", "size": 14557, "upload_time": "2019-01-02T20:59:20", "url": "https://files.pythonhosted.org/packages/2b/42/dc94f3beba5a2d018af7177cb7c6cd308c03609a649795920adbb1b4d444/supercanvas-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3b1845e21b97266d37a497c41309de72", "sha256": "778bd075933516e5447b3dcae9d24f45a246aca096c484407cdab60d6bb682ee" }, "downloads": -1, "filename": "supercanvas-0.5.1.tar.gz", "has_sig": false, "md5_digest": "3b1845e21b97266d37a497c41309de72", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.2", "size": 18398, "upload_time": "2019-01-02T20:59:24", "url": "https://files.pythonhosted.org/packages/b9/c6/04d14abe3b2450788f98674a7c3a552296df400036b79b8487fb4621c37a/supercanvas-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "718b2c12a1c566ac849d489745db0c52", "sha256": "96574e10aead834098b7b24aaab251bbf384e171229c8bf047f0ecaac9bdd366" }, "downloads": -1, "filename": "supercanvas-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "718b2c12a1c566ac849d489745db0c52", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.2", "size": 16528, "upload_time": "2019-01-03T20:40:47", "url": "https://files.pythonhosted.org/packages/3c/19/4bdab66c20290536f9c792cd3af7cceb38626f0893ca70b263e950385a56/supercanvas-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "250607c416a13ba319711beea0d6917f", "sha256": "266da056089a8c439728b2f622e87ee2aa049beec456d286921fd6c4d17e8dd8" }, "downloads": -1, "filename": "supercanvas-0.6.0.tar.gz", "has_sig": false, "md5_digest": "250607c416a13ba319711beea0d6917f", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.2", "size": 20311, "upload_time": "2019-01-03T20:40:53", "url": "https://files.pythonhosted.org/packages/a3/b6/0f1c1de4175c0b12160020417c59ac3c04579d6d6036c492a1bae9c361f3/supercanvas-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "25fc1fc11267e087651109df21e61780", "sha256": "e4a25c5cc0f78b88d82957271f39d0f5413e732321ab624c3bdc4698cd1b6332" }, "downloads": -1, "filename": "supercanvas-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "25fc1fc11267e087651109df21e61780", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.2", "size": 15842, "upload_time": "2019-01-04T15:13:36", "url": "https://files.pythonhosted.org/packages/c6/13/0dc1983ac991e9fae5bc9f3b1812a99a5d472445c19b2c6c6d53445f90b7/supercanvas-0.6.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4d0ddeba47bd921b6ca11a0340bb245", "sha256": "0e2bdde0454e4b037f3dfbfedf32e0d85d9c9f6c2703e1f5857366caa469b1ce" }, "downloads": -1, "filename": "supercanvas-0.6.1.tar.gz", "has_sig": false, "md5_digest": "c4d0ddeba47bd921b6ca11a0340bb245", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.2", "size": 19074, "upload_time": "2019-01-04T15:13:41", "url": "https://files.pythonhosted.org/packages/16/82/930616967fd2e4b189bcea8c1e204617d63271a4b9c6a55335bf8e2d5f7d/supercanvas-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "d0299e7e522a43fc7b01d54c8c01aec0", "sha256": "ac22cb458a8f4ac551280f61421b64f212fcb2e514daa388d723e2262eb8f528" }, "downloads": -1, "filename": "supercanvas-0.6.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d0299e7e522a43fc7b01d54c8c01aec0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.2", "size": 15835, "upload_time": "2019-01-04T15:58:14", "url": "https://files.pythonhosted.org/packages/34/6e/9bdd89650ddef6a22928d807f25d4fb13e1c99785ef25e7aaaff9ef67eeb/supercanvas-0.6.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fc4cd000b425a84565b3d16f7fbd3ceb", "sha256": "5da8cb976e9fb694f7e2e5f3fee00f2a2c8b77d357842dbed991ba1924d78078" }, "downloads": -1, "filename": "supercanvas-0.6.2.tar.gz", "has_sig": false, "md5_digest": "fc4cd000b425a84565b3d16f7fbd3ceb", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.2", "size": 19074, "upload_time": "2019-01-04T15:58:25", "url": "https://files.pythonhosted.org/packages/20/ac/71624741c15c1b287460cb81885d2d1498fca3bcf652f98701921d2292c5/supercanvas-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "8689d477b1804419cc2145424a65bfa4", "sha256": "818c6ada7845f16b5ee4e60497d0414e16941c53978fcf83c265ebb8006030c5" }, "downloads": -1, "filename": "supercanvas-0.6.3-py3-none-any.whl", "has_sig": false, "md5_digest": "8689d477b1804419cc2145424a65bfa4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.2", "size": 16071, "upload_time": "2019-01-05T16:09:04", "url": "https://files.pythonhosted.org/packages/86/9f/512c0faa42e51f5e93759d1611142b458b9e5188ba5f51deeaadc767447c/supercanvas-0.6.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "418a12a251b6a710ef707bb87f3b6f3c", "sha256": "b39badae4cdb6f7ab6290540f0fa93aecfddad6754fdf9af6109e8fc0cfbe72c" }, "downloads": -1, "filename": "supercanvas-0.6.3.tar.gz", "has_sig": false, "md5_digest": "418a12a251b6a710ef707bb87f3b6f3c", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.2", "size": 19308, "upload_time": "2019-01-05T16:09:11", "url": "https://files.pythonhosted.org/packages/31/88/29b27d97224a1468a8e6f0b7c8b2dd2544393a262d9d70a30cdae922ff1a/supercanvas-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "b1772ea0653c79936feb9da29fab198d", "sha256": "6659269abf1c056058e3af2d312fd4e90552eb08fbc7d6199934cd1215a3044c" }, "downloads": -1, "filename": "supercanvas-0.6.4-py3-none-any.whl", "has_sig": false, "md5_digest": "b1772ea0653c79936feb9da29fab198d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.2", "size": 15433, "upload_time": "2019-01-05T16:19:42", "url": "https://files.pythonhosted.org/packages/f2/03/24eacd1f9a842f0a49dcac65d72a9d9c054c3eaf74fa01dbc911cca2ea9d/supercanvas-0.6.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c6268d5a0df4aa4f30af979d6351325", "sha256": "ab9a44fa05262f83ef7e122f2f4c37593afa5e70199ecda5f446a35ac4b72584" }, "downloads": -1, "filename": "supercanvas-0.6.4.tar.gz", "has_sig": false, "md5_digest": "6c6268d5a0df4aa4f30af979d6351325", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.2", "size": 19304, "upload_time": "2019-01-05T16:19:44", "url": "https://files.pythonhosted.org/packages/7c/79/29c89f131eab5b1add327f8696f4076aa5ebebe085945c8b78c122ff2bd7/supercanvas-0.6.4.tar.gz" } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "7e4ba19f44ca36cb3212ab4fd2132c46", "sha256": "da690c0df95c4612e8dc8aed25b40ce7503f0c136a7d6c38ce0ce27d97e876d0" }, "downloads": -1, "filename": "supercanvas-0.6.5-py3-none-any.whl", "has_sig": false, "md5_digest": "7e4ba19f44ca36cb3212ab4fd2132c46", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.2", "size": 15952, "upload_time": "2019-02-16T06:49:36", "url": "https://files.pythonhosted.org/packages/a3/36/6c0184afa902be798e2a6a8f5b8d343ea6fb2790a26415cf1222b3580355/supercanvas-0.6.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e7814f8a8124887cf3be9b72e3b0352b", "sha256": "20b708336a174536b005f6a835ca8253d504aacfa15a05447fc6e2cd057e9c70" }, "downloads": -1, "filename": "supercanvas-0.6.5.tar.gz", "has_sig": false, "md5_digest": "e7814f8a8124887cf3be9b72e3b0352b", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.2", "size": 19841, "upload_time": "2019-02-16T06:49:38", "url": "https://files.pythonhosted.org/packages/7b/9c/bedd6ed51e14b27ea3dc96f592de421ec269058b5fa7a9835a7ba13166c7/supercanvas-0.6.5.tar.gz" } ], "0.6.6": [ { "comment_text": "", "digests": { "md5": "80cda6b546046757fc065fbe6153f858", "sha256": "5211fd06aeb5cc2528228bc97343d07e595ba00254cbccdf639a3e3a12c29fdd" }, "downloads": -1, "filename": "supercanvas-0.6.6-py3-none-any.whl", "has_sig": false, "md5_digest": "80cda6b546046757fc065fbe6153f858", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.2", "size": 16003, "upload_time": "2019-08-16T08:32:24", "url": "https://files.pythonhosted.org/packages/ec/10/102ae7eddcfd4ce67c5bf1a8aa0660b13aa7641cbd64b854506c4592719f/supercanvas-0.6.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "53a38d1533155670d8444a7cf45bacfe", "sha256": "6d0088750c09fb17b4f7305f5fc01fc115e0a2277d3bc178669f699c75201430" }, "downloads": -1, "filename": "supercanvas-0.6.6.tar.gz", "has_sig": false, "md5_digest": "53a38d1533155670d8444a7cf45bacfe", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.2", "size": 19902, "upload_time": "2019-08-16T08:32:28", "url": "https://files.pythonhosted.org/packages/73/e6/7a7713598a561b6e6aa4e3e56a77588e30fb790b5a84df82b920dfcd15b6/supercanvas-0.6.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "80cda6b546046757fc065fbe6153f858", "sha256": "5211fd06aeb5cc2528228bc97343d07e595ba00254cbccdf639a3e3a12c29fdd" }, "downloads": -1, "filename": "supercanvas-0.6.6-py3-none-any.whl", "has_sig": false, "md5_digest": "80cda6b546046757fc065fbe6153f858", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.2", "size": 16003, "upload_time": "2019-08-16T08:32:24", "url": "https://files.pythonhosted.org/packages/ec/10/102ae7eddcfd4ce67c5bf1a8aa0660b13aa7641cbd64b854506c4592719f/supercanvas-0.6.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "53a38d1533155670d8444a7cf45bacfe", "sha256": "6d0088750c09fb17b4f7305f5fc01fc115e0a2277d3bc178669f699c75201430" }, "downloads": -1, "filename": "supercanvas-0.6.6.tar.gz", "has_sig": false, "md5_digest": "53a38d1533155670d8444a7cf45bacfe", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.2", "size": 19902, "upload_time": "2019-08-16T08:32:28", "url": "https://files.pythonhosted.org/packages/73/e6/7a7713598a561b6e6aa4e3e56a77588e30fb790b5a84df82b920dfcd15b6/supercanvas-0.6.6.tar.gz" } ] }