{ "info": { "author": "Paul Schweizer", "author_email": "paulschweizer@gmx.net", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "[![Version](https://img.shields.io/pypi/v/ascii_canvas.svg)](https://pypi.org/project/ascii_canvas/)\n[![Build Status](https://travis-ci.org/PaulSchweizer/ascii-canvas.svg?branch=master)](https://travis-ci.org/PaulSchweizer/ascii-canvas) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/1e97852797d14c679d7c89337b022c92)](https://www.codacy.com/app/paulschweizer/ascii-canvas?utm_source=github.com&utm_medium=referral&utm_content=PaulSchweizer/ascii-canvas&utm_campaign=Badge_Grade)[![Codacy Badge](https://api.codacy.com/project/badge/Coverage/1e97852797d14c679d7c89337b022c92)](https://www.codacy.com/app/paulschweizer/ascii-canvas?utm_source=github.com&utm_medium=referral&utm_content=PaulSchweizer/ascii-canvas&utm_campaign=Badge_Coverage)\n\n\n# Treat Strings like Items on a 2D Canvas\n\nWith this primitive library you can do things like this:\n\n```python\nfrom ascii_canvas import canvas\nfrom ascii_canvas import item\n\ncanvas_ = canvas.Canvas()\n\nrect_a = item.Item('+-----+\\n|Hello|\\n+-----+', position=[0, 0])\nrect_b = item.Item('+-----+\\n|World|\\n+-----+', position=[16, 5])\nrect_c = item.Item('+-+\\n|!|\\n+-+', position=[32, 0])\nline_a = item.Line(start=[7, 1], end=[15, 6])\nline_b = item.Line(start=[23, 6], end=[31, 1])\n\ncanvas_.add_item(rect_a)\ncanvas_.add_item(rect_b)\ncanvas_.add_item(rect_c)\ncanvas_.add_item(line_a)\ncanvas_.add_item(line_b)\nprint(canvas_.draw())\n```\n\nWhich results in this output:\n\n```\n+-----+ +-+\n|Hello|----+ +----|!|\n+-----+ | | +-+\n | |\n | |\n | +-----+ |\n +----|World|----+\n +-----+\n```\n\n# Type hints\n\nThe library contains Python3.6-style type hints. For lower Python versions the hints are however stripped on the fly with [strip-hints](https://github.com/abarker/strip-hints)!, making ascii-canvas compatible all the way down to Python 2.6.\nPlease note that in Python < 3.6 you can NOT import the classes directly due to the stripping of the type hints, so stick with the way that the example imports the module.\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://github.com/PaulSchweizer/ascii-canvas", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "ascii-canvas", "package_url": "https://pypi.org/project/ascii-canvas/", "platform": "", "project_url": "https://pypi.org/project/ascii-canvas/", "project_urls": { "Homepage": "https://github.com/PaulSchweizer/ascii-canvas" }, "release_url": "https://pypi.org/project/ascii-canvas/1.3.5/", "requires_dist": [ "strip-hints (>=0.1.7)" ], "requires_python": "", "summary": "Treat strings like Items on a 2D Canvas.", "version": "1.3.5" }, "last_serial": 5627564, "releases": { "1.2.1": [ { "comment_text": "", "digests": { "md5": "f941d218c8d9ff0cae950cb6812f5691", "sha256": "a07d68662b22c2cd8653779817d80eeb1e0295021959a851fe600d326e0951bd" }, "downloads": -1, "filename": "ascii_canvas-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f941d218c8d9ff0cae950cb6812f5691", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4983, "upload_time": "2019-01-30T10:23:09", "url": "https://files.pythonhosted.org/packages/0e/b4/9eea79a7a591aab11ad3ed03013aed90d642cfec2a971c9dd0e35b2a92fb/ascii_canvas-1.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "66be9241cfed1830df388de3f13a1238", "sha256": "2001ceffbae1e6ab6498559429878244f98040444edc086c69a1173c137f5c6e" }, "downloads": -1, "filename": "ascii-canvas-1.2.1.tar.gz", "has_sig": false, "md5_digest": "66be9241cfed1830df388de3f13a1238", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3479, "upload_time": "2019-01-30T10:23:11", "url": "https://files.pythonhosted.org/packages/00/83/e876ca1542771cca27a9eb22d4c2603d2a2a4b75dfceef446b4bd41c8f3d/ascii-canvas-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "aee075f0da29848e31a52b5d175d95e1", "sha256": "b8b58cc3dd009c7a3d63ee8c8a9e7b823a0b4912e37f246a26338ae2437561ec" }, "downloads": -1, "filename": "ascii_canvas-1.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "aee075f0da29848e31a52b5d175d95e1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5122, "upload_time": "2019-01-31T13:08:44", "url": "https://files.pythonhosted.org/packages/c7/e5/a441d81a39e845277ad275820ff7fe82369bcd06a66ae5075229c9e18d46/ascii_canvas-1.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e75bb3c90af9fad7a3656fcfd72cfb92", "sha256": "8149ca8af4fed2373e541650b0e37cb7162a2ee8d9caf8449c0264b3a2c60e61" }, "downloads": -1, "filename": "ascii-canvas-1.2.2.tar.gz", "has_sig": false, "md5_digest": "e75bb3c90af9fad7a3656fcfd72cfb92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3589, "upload_time": "2019-01-31T13:08:45", "url": "https://files.pythonhosted.org/packages/9e/0a/c1b9c5f671fd845d363a012c27372c4ba787018a5972c54b2716f8c3f2bd/ascii-canvas-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "0b4b7ec8391dd8f00f5a0631f1c96d84", "sha256": "5e9535ee34febfce46ebf68458f95e43c88156543f7b7b4d565c018f05c0dc67" }, "downloads": -1, "filename": "ascii_canvas-1.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "0b4b7ec8391dd8f00f5a0631f1c96d84", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5123, "upload_time": "2019-02-04T12:54:42", "url": "https://files.pythonhosted.org/packages/24/6a/9ea0cee448edf0cf8d431d64a74ac68ab75623ee52b131cef7bfc57e2ee8/ascii_canvas-1.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "173e210757818e85988ddf74adfd3375", "sha256": "978cf8673e411b47fadc0e11ccc3842f82e973ec2f4b11728263f30e73c8be8e" }, "downloads": -1, "filename": "ascii-canvas-1.2.3.tar.gz", "has_sig": false, "md5_digest": "173e210757818e85988ddf74adfd3375", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3597, "upload_time": "2019-02-04T12:54:44", "url": "https://files.pythonhosted.org/packages/a9/05/ef3adb9b50120d86a7811aed580a81a2ad50782c58e3e14c2e45a2ed25f6/ascii-canvas-1.2.3.tar.gz" } ], "1.2.7": [ { "comment_text": "", "digests": { "md5": "e0ef33538a585082e656db36fef26063", "sha256": "a21ffd1626898d495dcf78824f6a96923208a7c6a273181b0c07c93894d9f902" }, "downloads": -1, "filename": "ascii_canvas-1.2.7-py3-none-any.whl", "has_sig": false, "md5_digest": "e0ef33538a585082e656db36fef26063", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5123, "upload_time": "2019-02-25T14:04:08", "url": "https://files.pythonhosted.org/packages/8a/61/cf08b5487a431c994fee4f8baf9ac260267c7000baec320e8abf6fb4740f/ascii_canvas-1.2.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e5df2bc78f495e8f960ba5bf85c51c87", "sha256": "87fc5b25eb887e47fcac86f79d0fdc2ccd79850f977da3ed875cc6915901fcf8" }, "downloads": -1, "filename": "ascii-canvas-1.2.7.tar.gz", "has_sig": false, "md5_digest": "e5df2bc78f495e8f960ba5bf85c51c87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3592, "upload_time": "2019-02-25T14:04:10", "url": "https://files.pythonhosted.org/packages/96/93/0605efd201e426c065ed728df8b7d9f910cbb21ba8a7373d7d0ed18a4114/ascii-canvas-1.2.7.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "d24c807a72555faaf02ca6997a4bea9a", "sha256": "0a628da71c8e0af503680293af66664b7707e0a0637232b875da6335cf7c9c42" }, "downloads": -1, "filename": "ascii_canvas-1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d24c807a72555faaf02ca6997a4bea9a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5709, "upload_time": "2019-07-25T21:09:54", "url": "https://files.pythonhosted.org/packages/3a/6c/b7ac94812f03f1387075b9c6ac016a2b23ec21d9b9f1d4840b5dd24929a7/ascii_canvas-1.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "58b4b4244fa05eaf563078a316c21dcc", "sha256": "1a5d94a3d3a081c5eee21370105333f2e9db839a1ad36877bf75bc86a745b413" }, "downloads": -1, "filename": "ascii-canvas-1.3.1.tar.gz", "has_sig": false, "md5_digest": "58b4b4244fa05eaf563078a316c21dcc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4061, "upload_time": "2019-07-25T21:09:55", "url": "https://files.pythonhosted.org/packages/a4/65/d9697d8db14fd56b8b2a772a2cb2be6ad13af75e9d654aa61b4f24759474/ascii-canvas-1.3.1.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "9a07d8591b96a4f2545c82b6b3f2848a", "sha256": "88c1b7dd55a5780f1d6e9bd6c693a2c72f2e0d29b3b961f66602931857a0abc6" }, "downloads": -1, "filename": "ascii_canvas-1.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9a07d8591b96a4f2545c82b6b3f2848a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5718, "upload_time": "2019-07-26T15:35:07", "url": "https://files.pythonhosted.org/packages/76/9d/ade6d243275f4666ec97e3d7fc2975f4b2ad411caf986cbc1ed994954491/ascii_canvas-1.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7a3b3190d49fe13bbd909ef0e5905afe", "sha256": "920ee4daaa4c3f8f2995c0ad5c30ba3db2d50a9d096c4a71d91eb9c816e8a80b" }, "downloads": -1, "filename": "ascii-canvas-1.3.2.tar.gz", "has_sig": false, "md5_digest": "7a3b3190d49fe13bbd909ef0e5905afe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4073, "upload_time": "2019-07-26T15:35:08", "url": "https://files.pythonhosted.org/packages/44/e2/954622ef70033accc3f6eaf49cf639c38e2d705cf4cc4a973f8dd55d9e6c/ascii-canvas-1.3.2.tar.gz" } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "02b3c9462dfe71848b6f101776f2d31c", "sha256": "62eb54d9d482bb0f56165270d40b5a095f3c996b8c6b2ddf4a83164a6756ecc3" }, "downloads": -1, "filename": "ascii_canvas-1.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "02b3c9462dfe71848b6f101776f2d31c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5718, "upload_time": "2019-07-26T16:07:12", "url": "https://files.pythonhosted.org/packages/2a/63/502078a4138c3fa2b21a340056de3282c0b0d3f40ea202684fab06551606/ascii_canvas-1.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ddd21ddaeb6b77072f68124bcfa98833", "sha256": "b911b57ed4bcb59a0d0757e00a7eb463ce09d32592a5b16202da4088d46f4bca" }, "downloads": -1, "filename": "ascii-canvas-1.3.3.tar.gz", "has_sig": false, "md5_digest": "ddd21ddaeb6b77072f68124bcfa98833", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4075, "upload_time": "2019-07-26T16:07:13", "url": "https://files.pythonhosted.org/packages/e0/c7/3fea6d860254381b41b47ca0bf5a9a092d6f1b09583a01a0c6c6e870c981/ascii-canvas-1.3.3.tar.gz" } ], "1.3.4": [ { "comment_text": "", "digests": { "md5": "5c751b7af3b8d2c14dccdc5a5e6446ed", "sha256": "d2b41b1c3a700afd02a8dab695afbff41d044e3f31bafe9466717e11b2c3ffcf" }, "downloads": -1, "filename": "ascii_canvas-1.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "5c751b7af3b8d2c14dccdc5a5e6446ed", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5579, "upload_time": "2019-07-30T12:19:46", "url": "https://files.pythonhosted.org/packages/ee/e8/c3a4393f975f02cacf502e8cd47f3efbb3208a6f94ba71f567060609c462/ascii_canvas-1.3.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "40bf15188cbed60593dfc938a60c20d6", "sha256": "9e26df81df2621307d864811a3ba1bfa417653518599a9ba824dd45ba2f84abc" }, "downloads": -1, "filename": "ascii-canvas-1.3.4.tar.gz", "has_sig": false, "md5_digest": "40bf15188cbed60593dfc938a60c20d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3941, "upload_time": "2019-07-30T12:19:49", "url": "https://files.pythonhosted.org/packages/02/ee/13794cab8fe057d98c278b1c78f8d9143c465dabb58be9adf67fc2563a4d/ascii-canvas-1.3.4.tar.gz" } ], "1.3.5": [ { "comment_text": "", "digests": { "md5": "ee478281a6d598260052a4564e5d469b", "sha256": "0ffef0928369fa668c31e3d198d790e55a3d4124627c0c2aed58456d4814c052" }, "downloads": -1, "filename": "ascii_canvas-1.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "ee478281a6d598260052a4564e5d469b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5603, "upload_time": "2019-08-03T08:33:38", "url": "https://files.pythonhosted.org/packages/ff/3c/d994189153e671262a0889452b531a7acd3e68f21463c1222b08bdb49e5f/ascii_canvas-1.3.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "17567fd11e45723b1cecfacb1bfc0e6f", "sha256": "a369b193c8b565eaedc8e89f63cdb356085abc1478bb8775ec4bcfb7b6d4da5d" }, "downloads": -1, "filename": "ascii-canvas-1.3.5.tar.gz", "has_sig": false, "md5_digest": "17567fd11e45723b1cecfacb1bfc0e6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4018, "upload_time": "2019-08-03T08:33:40", "url": "https://files.pythonhosted.org/packages/7c/f0/d2afcaf05f19073f68597fa8598b9e6aaf546ea6d5acf666b7d590a4ad81/ascii-canvas-1.3.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ee478281a6d598260052a4564e5d469b", "sha256": "0ffef0928369fa668c31e3d198d790e55a3d4124627c0c2aed58456d4814c052" }, "downloads": -1, "filename": "ascii_canvas-1.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "ee478281a6d598260052a4564e5d469b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5603, "upload_time": "2019-08-03T08:33:38", "url": "https://files.pythonhosted.org/packages/ff/3c/d994189153e671262a0889452b531a7acd3e68f21463c1222b08bdb49e5f/ascii_canvas-1.3.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "17567fd11e45723b1cecfacb1bfc0e6f", "sha256": "a369b193c8b565eaedc8e89f63cdb356085abc1478bb8775ec4bcfb7b6d4da5d" }, "downloads": -1, "filename": "ascii-canvas-1.3.5.tar.gz", "has_sig": false, "md5_digest": "17567fd11e45723b1cecfacb1bfc0e6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4018, "upload_time": "2019-08-03T08:33:40", "url": "https://files.pythonhosted.org/packages/7c/f0/d2afcaf05f19073f68597fa8598b9e6aaf546ea6d5acf666b7d590a4ad81/ascii-canvas-1.3.5.tar.gz" } ] }