{"id":13460235,"url":"https://github.com/sepandhaghighi/art","last_synced_at":"2025-05-12T20:52:54.249Z","repository":{"id":38325422,"uuid":"105757332","full_name":"sepandhaghighi/art","owner":"sepandhaghighi","description":"🎨 ASCII art library for Python","archived":false,"fork":false,"pushed_at":"2025-05-01T04:49:39.000Z","size":8395,"stargazers_count":2265,"open_issues_count":11,"forks_count":141,"subscribers_count":22,"default_branch":"master","last_synced_at":"2025-05-01T05:27:10.658Z","etag":null,"topics":["art","ascii","ascii-art","ascii-art-library","ascii-text","easy","easy-to-use","figlet","fonts","fun","library","pip","pypi-packages","python","python-lib","python-library","python3","status","text","twitter"],"latest_commit_sha":null,"homepage":"https://www.ascii-art.site","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sepandhaghighi.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"custom":"https://www.ascii-art.site/#support"}},"created_at":"2017-10-04T10:45:44.000Z","updated_at":"2025-04-30T18:28:57.000Z","dependencies_parsed_at":"2023-01-29T18:15:34.292Z","dependency_job_id":"c57c7569-0a19-4799-835a-042fc30a13f8","html_url":"https://github.com/sepandhaghighi/art","commit_stats":{"total_commits":2017,"total_committers":8,"mean_commits":252.125,"dds":0.1294000991571641,"last_synced_commit":"3493a875be0941fd3ca54620e224c7252928e7e6"},"previous_names":[],"tags_count":65,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sepandhaghighi%2Fart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sepandhaghighi%2Fart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sepandhaghighi%2Fart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sepandhaghighi%2Fart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sepandhaghighi","download_url":"https://codeload.github.com/sepandhaghighi/art/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253821610,"owners_count":21969738,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["art","ascii","ascii-art","ascii-art-library","ascii-text","easy","easy-to-use","figlet","fonts","fun","library","pip","pypi-packages","python","python-lib","python-library","python3","status","text","twitter"],"created_at":"2024-07-31T10:00:37.792Z","updated_at":"2025-05-12T20:52:54.196Z","avatar_url":"https://github.com/sepandhaghighi.png","language":"Python","funding_links":["https://www.ascii-art.site/#support"],"categories":["Python","Other resources","Animations and GIFs","语言资源库","Libraries 📚","Libraries \u0026 SDKs"],"sub_categories":["JetBrains","python","Python"],"readme":"\u003cdiv align=\"center\"\u003e\n\t\u003cimg src=\"https://github.com/sepandhaghighi/art/raw/master/otherfile/logo.png\" alt=\"Logo\"\u003e\n\t\u003cbr/\u003e\n\t\u003cbr/\u003e\n\t\u003ca href=\"https://codecov.io/gh/sepandhaghighi/art\"\u003e\u003cimg src=\"https://codecov.io/gh/sepandhaghighi/art/branch/master/graph/badge.svg\" alt=\"Codecov\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://badge.fury.io/py/art\"\u003e\u003cimg src=\"https://badge.fury.io/py/art.svg\" alt=\"PyPI\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://www.python.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/built%20with-Python3-green.svg\" alt=\"built with Python3\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://github.com/sepandhaghighi/art\"\u003e\u003cimg alt=\"GitHub repo size\" src=\"https://img.shields.io/github/repo-size/sepandhaghighi/art\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://github.com/sepandhaghighi/art/blob/master/FontList.ipynb\"\u003e\u003cimg src=\"https://img.shields.io/badge/Font List-677-blue.svg\" alt=\"Font List\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://github.com/sepandhaghighi/art/blob/master/ArtList.ipynb\"\u003e\u003cimg src=\"https://img.shields.io/badge/Art List-711-orange.svg\" alt=\"Art List\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://github.com/sepandhaghighi/art/blob/master/DecorList.ipynb\"\u003e\u003cimg src=\"https://img.shields.io/badge/Decor List-218-green.svg\" alt=\"Decor List\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://t.me/artlib_bot\" target=\"__blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Telegram-Bot-red.svg\" alt=\"Telegram Bot\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://anaconda.org/sepandhaghighi/art\"\u003e\u003cimg src=\"https://anaconda.org/sepandhaghighi/art/badges/version.svg\" alt=\"Anaconda\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://discord.com/invite/FAAyq3QJqP\"\u003e\u003cimg src=\"https://img.shields.io/discord/897532566301724722.svg\" alt=\"Discord Channel\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\t\n----------\n\n## Overview\t\nASCII art is also known as \"computer text art\". It involves the smart placement of typed special characters or\nletters to make a visual shape that is spread over multiple lines of text.\n\t\nART is a Python lib for text converting to ASCII art fancy. ;-)\n\n\n\n\u003ctable\u003e\n\t\u003ctr align=\"center\"\u003e \n\t\t\u003ctd\u003eOpen Hub\u003c/td\u003e\n\t\t\u003ctd\u003e\u003ca href=\"https://www.openhub.net/p/artlib\"\u003e\u003cimg src=\"https://www.openhub.net/p/artlib/widgets/project_thin_badge.gif\"\u003e\u003c/a\u003e\u003c/td\u003e\t\n\t\u003c/tr\u003e\n\t\u003ctr align=\"center\"\u003e\n\t\t\u003ctd\u003ePyPI Counter\u003c/td\u003e\n\t\t\u003ctd\u003e\u003ca href=\"https://pepy.tech/projects/art\"\u003e\u003cimg src=\"https://static.pepy.tech/badge/art\" alt=\"PyPI Downloads\"\u003e\u003c/a\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr align=\"center\"\u003e\n\t\t\u003ctd\u003eGithub Stars\u003c/td\u003e\n\t\t\u003ctd\u003e\u003ca href=\"https://github.com/sepandhaghighi/art\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/sepandhaghighi/art.svg?style=social\u0026label=Stars\"\u003e\u003c/a\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr align=\"center\"\u003e\n\t\t\u003ctd\u003eFont Counter\u003c/td\u003e\n\t\t\u003ctd id=\"font_counter\"\u003e677\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr align=\"center\"\u003e\n\t\t\u003ctd\u003e1-Line-Art Counter\u003c/td\u003e\n\t\t\u003ctd id=\"art_counter\"\u003e711\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr align=\"center\"\u003e\n\t\t\u003ctd\u003eDecor Counter\u003c/td\u003e\n\t\t\u003ctd id=\"decor_counter\"\u003e218\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003c/table\u003e\n\n\n\n\u003ctable\u003e\n\t\u003ctr\u003e \n\t\t\u003ctd align=\"center\"\u003eBranch\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003emaster\u003c/td\u003e\t\n\t\t\u003ctd align=\"center\"\u003edev\u003c/td\u003e\t\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd align=\"center\"\u003eCI\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003e\u003cimg src=\"https://github.com/sepandhaghighi/art/actions/workflows/test.yml/badge.svg?branch=master\"\u003e\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003e\u003cimg src=\"https://github.com/sepandhaghighi/art/actions/workflows/test.yml/badge.svg?branch=dev\"\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable\u003e\n\t\u003ctr\u003e \n\t\t\u003ctd align=\"center\"\u003eCode Quality\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003e\u003ca class=\"badge-align\" href=\"https://www.codacy.com/app/sepand-haghighi/art?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=sepandhaghighi/art\u0026amp;utm_campaign=Badge_Grade\"\u003e\u003cimg src=\"https://api.codacy.com/project/badge/Grade/405020450bc94088ad1450461831a587\"/\u003e\u003c/a\u003e\u003c/td\u003e\t\n\t\t\u003ctd align=\"center\"\u003e\u003ca href=\"https://codebeat.co/projects/github-com-sepandhaghighi-art-dev\"\u003e\u003cimg alt=\"codebeat badge\" src=\"https://codebeat.co/badges/90e77325-a046-4cc5-9c3e-646c011a5b72\" /\u003e\u003c/a\u003e\u003c/td\u003e\t\n\t\t\u003ctd align=\"center\"\u003e\u003ca href=\"https://www.codefactor.io/repository/github/sepandhaghighi/art\"\u003e\u003cimg src=\"https://www.codefactor.io/repository/github/sepandhaghighi/art/badge\" alt=\"CodeFactor\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003c/table\u003e\n\n    \n\n## Usage\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"https://github.com/sepandhaghighi/art/raw/master/otherfile/ART.gif\"\u003e\n\u003cp\u003eQuick Start\u003c/p\u003e\n\n\u003c/div\u003e\t\t\t\t\n\n\n### 1-Line art\n\n⚠️ Some environments don't support all 1-Line arts\n\n⚠️ **ART 4.6** is the last version to support **Bipartite art**\n\n\n#### 1. art\t\t\t\t\t\n\nThis function return 1-line art as `str` in normal mode and raise `artError` in exception.\t\n```pycon\n\u003e\u003e\u003e from art import *\n\u003e\u003e\u003e art_1=art(\"coffee\") # return art as str in normal mode\n\u003e\u003e\u003e print(art_1)\nc[_]\n\u003e\u003e\u003e art_2=art(\"woman\",number=2) # return multiple art as str\n\u003e\u003e\u003e print(art_2)\n▓⚗_⚗▓ ▓⚗_⚗▓ \n\u003e\u003e\u003e art(\"coffee\", number=3, space=5) \n'c[_]     c[_]     c[_]'\n\u003e\u003e\u003e art(\"random\") # random 1-line art mode\n'(っ◕‿◕)っ '\n\u003e\u003e\u003e art(\"rand\")   # random 1-line art mode\n't(-_-t) '\n\u003e\u003e\u003e art(22,number=1) # raise artError\nTraceback (most recent call last):\n        ...\nart.art.artError: The 'artname' type must be str.\n\n```\n#### 2. aprint\t\t\t\t\n\nThis function print 1-line art in normal mode (return None) and raise `artError` in exception.\n```pycon\n\u003e\u003e\u003e aprint(\"butterfly\") # print art\nƸ̵̡Ӝ̵̨̄Ʒ \n\u003e\u003e\u003e aprint(\"happy\") # print art\n ۜ\\(סּںסּَ` )/ۜ\n\u003e\u003e\u003e aprint(\"coffee\", number=3, space=5) \nc[_]     c[_]     c[_] \n\u003e\u003e\u003e aprint(\"random\") # random 1-line art mode\n'(っ◕‿◕)っ '\n\u003e\u003e\u003e aprint(\"rand\")   # random 1-line art mode\n't(-_-t) '\n\u003e\u003e\u003e aprint(\"woman\",number=\"22\") # raise artError\nTraceback (most recent call last):\n        ...\nart.art.artError: The 'number' type must be int.\n```\n\n#### 3. randart\n\n`randart` function is added in `Version 2.2` as `art(\"random\")` shortcut.\n```pycon\n\u003e\u003e\u003e randart()\n'ዞᏜ℘℘Ꮍ ℬℹℛʈዞᗬᏜᎽ '\n\u003e\u003e\u003e randart()\n'✌(◕‿-)✌ '\n```\t\n\nℹ️ Use `ART_NAMES` to access all arts name list (new in `Version 4.2`)\n\nℹ️ Use `NON_ASCII_ARTS` to access all Non-ASCII arts name list (new in `Version 4.6`)\n\nℹ️ Use `ASCII_ARTS` to access all ASCII arts name list (new in `Version 5.7`)\n\n### ASCII text\n\t\n⚠️ Some fonts don't support all characters\t\t\n\n⚠️ From `Version 3.3` Non-ASCII fonts added (These fonts are not compatible with some environments)\n\n⚠️ From `Version 5.3` `\\n` is used as the default line separator instead of `\\r\\n` (Use `sep` parameter if needed)\n\n#### 1. text2art\t\t\t\t\n\nThis function return ASCII text as `str` in normal mode and raise `artError` in exception.\n```pycon\t\n\u003e\u003e\u003e Art=text2art(\"art\") # Return ASCII text (default font) and default chr_ignore=True \n\u003e\u003e\u003e print(Art)\n              _   \n  __ _  _ __ | |_ \n / _` || '__|| __|\n| (_| || |   | |_ \n \\__,_||_|    \\__|\n                  \n                     \n\u003e\u003e\u003e Art=text2art(\"art\",font='block',chr_ignore=True) # Return ASCII text with block font\n\u003e\u003e\u003e print(Art)\n\n\n .----------------.  .----------------.  .----------------.\n| .--------------. || .--------------. || .--------------. |\n| |      __      | || |  _______     | || |  _________   | |\n| |     /  \\     | || | |_   __ \\    | || | |  _   _  |  | |\n| |    / /\\ \\    | || |   | |__) |   | || | |_/ | | \\_|  | |\n| |   / ____ \\   | || |   |  __ /    | || |     | |      | |\n| | _/ /    \\ \\_ | || |  _| |  \\ \\_  | || |    _| |_     | |\n| ||____|  |____|| || | |____| |___| | || |   |_____|    | |\n| |              | || |              | || |              | |\n| '--------------' || '--------------' || '--------------' |\n '----------------'  '----------------'  '----------------'\n\n\u003e\u003e\u003e Art=text2art(\"test\",\"random\") # random font mode\n\u003e\u003e\u003e print(Art)\n |       | \n~|~/~/(~~|~\n | \\/__) | \n           \n\u003e\u003e\u003e Art=text2art(\"test\",\"rand\") # random font mode\n\u003e\u003e\u003e print(Art)\n___ ____ ____ ___ \n |  |___ [__   |  \n |  |___ ___]  | \n\n\u003e\u003e\u003e print(text2art(\"test\", space=10))\n _                                             _   \n| |_             ___            ___           | |_ \n| __|           / _ \\          / __|          | __|\n| |_           |  __/          \\__ \\          | |_ \n \\__|           \\___|          |___/           \\__|\n                                                   \n\u003e\u003e\u003e print(text2art('''Lorem  \nipsum \ndolor''', font=\"small\")) # Multi-line print\n _                            \n| |    ___  _ _  ___  _ __    \n| |__ / _ \\| '_|/ -_)| '  \\   \n|____|\\___/|_|  \\___||_|_|_|  \n                              \n _                         \n(_) _ __  ___ _  _  _ __   \n| || '_ \\(_-\u003c| || || '  \\  \n|_|| .__//__/ \\_,_||_|_|_| \n   |_|                     \n    _       _           \n __| | ___ | | ___  _ _ \n/ _` |/ _ \\| |/ _ \\| '_|\n\\__,_|\\___/|_|\\___/|_|  \n                        \n\n\u003e\u003e\u003e print(text2art(\"test\",\"white_bubble\"))  # Non-ASCII font example\nⓣⓔⓢⓣ\n\u003e\u003e\u003e text2art(\"art\",font=\"fancy5\",decoration=\"barcode1\") # decoration parameter is added in Version 4.6\n'▌│█║▌║▌║ ᏗᏒᏖ ║▌║▌║█│▌'\n\u003e\u003e\u003e text2art(\"seسسس\",font=DEFAULT_FONT,chr_ignore=False) # raise artError in exception\nTraceback (most recent call last):\n        ...\nart.art.artError: س is invalid.\n  \n```\n#### 2. tprint\t\t\t\t\n\nThis function print ASCII text in normal mode (return None) and raise `artError` in exception.\n```pycon\n\u003e\u003e\u003e tprint(\"art\") # print ASCII text (default font) \n              _   \n  __ _  _ __ | |_ \n / _` || '__|| __|\n| (_| || |   | |_ \n \\__,_||_|    \\__|\n                  \n\n\u003e\u003e\u003e tprint(\"art\",font=\"block\",chr_ignore=True) # print ASCII text (block font)\n\n .----------------.  .----------------.  .----------------.\n| .--------------. || .--------------. || .--------------. |\n| |      __      | || |  _______     | || |  _________   | |\n| |     /  \\     | || | |_   __ \\    | || | |  _   _  |  | |\n| |    / /\\ \\    | || |   | |__) |   | || | |_/ | | \\_|  | |\n| |   / ____ \\   | || |   |  __ /    | || |     | |      | |\n| | _/ /    \\ \\_ | || |  _| |  \\ \\_  | || |    _| |_     | |\n| ||____|  |____|| || | |____| |___| | || |   |_____|    | |\n| |              | || |              | || |              | |\n| '--------------' || '--------------' || '--------------' |\n '----------------'  '----------------'  '----------------'\n\n\u003e\u003e\u003e tprint('testسس')  # chr_ignore flag ==True (Default)\n _               _   \n| |_   ___  ___ | |_ \n| __| / _ \\/ __|| __|\n| |_ |  __/\\__ \\| |_ \n \\__| \\___||___/ \\__|\n                     \n\u003e\u003e\u003e tprint(\"test\",\"random\") # random font mode\n |       | \n~|~/~/(~~|~\n | \\/__) | \n           \n\u003e\u003e\u003e tprint(\"test\",\"rand\") # random font mode\n___ ____ ____ ___ \n |  |___ [__   |  \n |  |___ ___]  |  \n                  \n\u003e\u003e\u003e tprint(\"test\", space=10)\n _                                             _   \n| |_             ___            ___           | |_ \n| __|           / _ \\          / __|          | __|\n| |_           |  __/          \\__ \\          | |_ \n \\__|           \\___|          |___/           \\__|\n                                                   \n\u003e\u003e\u003e tprint('testسس',chr_ignore=False) # raise artError in exception \nTraceback (most recent call last):\n       ...\nart.art.artError: س is invalid.\n\u003e\u003e\u003e tprint('''Lorem  \nipsum \ndolor''', font=\"cybermedium\") # Multi-line print\n_    ____ ____ ____ _  _    \n|    |  | |__/ |___ |\\/|    \n|___ |__| |  \\ |___ |  |    \n                            \n_ ___  ____ _  _ _  _    \n| |__] [__  |  | |\\/|    \n| |    ___] |__| |  |    \n                         \n___  ____ _    ____ ____ \n|  \\ |  | |    |  | |__/ \n|__/ |__| |___ |__| |  \\ \n\n\u003e\u003e\u003e tprint(\"art\",font=\"fancy5\",decoration=\"barcode1\") # decoration parameter is added in Version 4.6\n▌│█║▌║▌║ ᏗᏒᏖ ║▌║▌║█│▌\n\u003e\u003e\u003e tprint(\"art\",font=\"fancy5\",decoration=\"random\") # decoration random mode is added in Version 5.0\n•]•·✦º✦·»ᏗᏒᏖ«·✦º✦·•[•\n```\n#### 3. tsave\t\t\t\t\n\nThis function return `dict` in normal and exception mode.\n```pycon\n\u003e\u003e\u003e Response=tsave(\"art\",filename=\"test.txt\") # save ASCII text in test.txt file with save message (print_status==True), return dict\nSaved! \nFilename: test.txt\n\u003e\u003e\u003e Response[\"Message\"]\n'OK'\n\u003e\u003e\u003e Response=tsave(\"art\",filename=\"test.txt\",print_status=False) # save ASCII text in test.txt file without save message (print_status==False)\n\u003e\u003e\u003e Response[\"Message\"]\n'OK'\n\u003e\u003e\u003e Response[\"Status\"]\nTrue\n\u003e\u003e\u003e tsave(22,font=DEFAULT_FONT,filename=\"art\",chr_ignore=True,print_status=True)\n{'Status': False, 'Message': \"'int' object has no attribute 'split'\"}\n\u003e\u003e\u003e Response=tsave(\"art\",filename=\"test.txt\",overwrite=True) # overwrite parameter is added in Version 4.0\nSaved! \nFilename: test.txt\n\u003e\u003e\u003e Response=tsave(\"art\",filename=\"test.txt\",decoration=\"barcode1\") # decoration parameter is added in Version 4.6\nSaved! \nFilename: test.txt\n\u003e\u003e\u003e Response=tsave(\"art\",filename=\"test.txt\",sep=\"\\r\\n\") # sep parameter is added in Version 5.3\nSaved! \nFilename: test.txt                        \n\u003e\u003e\u003e Response=tsave(\"art\",filename=\"test.txt\",space=5) # space parameter is added in Version 6.0\nSaved! \nFilename: test.txt                        \n```\n\nℹ️ Use `FONT_NAMES` to access all fonts name list (new in `Version 4.2`)\n\nℹ️ Use `NON_ASCII_FONTS` to access all Non-ASCII fonts name list (new in `Version 4.4`)\n\nℹ️ Use `ASCII_FONTS` to access all ASCII fonts name list (new in `Version 5.7`)\n\n### Line\n\n#### 1. lprint\n\nThis function prints a grid (`length` by `height`) of any given character in normal mode and raise `artError` in exception.\n```pycon\n\u003e\u003e\u003e lprint(length=15, height=2, char=\"*\")\n***************\n***************\n```\n\nℹ️ New in `Version 6.4`\n\nℹ️ The default values are `length=15`, `height=1`, `char='#'`\n\n#### 2. line\n\nThis function returns a grid (`length` by `height`) of any given character as `str` in normal mode and raise `artError` in exception.\n```pycon\t\n\u003e\u003e\u003e line(length=15, height=2, char=\"*\")\n'***************\\n***************'\n```\n\nℹ️ New in `Version 6.4`\n\nℹ️ The default values are `length=15`, `height=1`, `char='#'`\n\n\n### Decoration\n\n⚠️ Some environments don't support all decorations\n\n#### 1. decor\n\nThis function return decoration as `str` in normal mode and raise `artError` in exception.\n```pycon\n\u003e\u003e\u003e decor(\"barcode1\")\n'▌│█║▌║▌║ '\n\u003e\u003e\u003e decor(\"barcode1\",reverse=True)\n' ║▌║▌║█│▌'\n\u003e\u003e\u003e decor(\"barcode1\") + text2art(\"    art   \",font=\"fancy42\") + decor(\"barcode1\",reverse=True)\n'▌│█║▌║▌║     ąяţ    ║▌║▌║█│▌'\n\u003e\u003e\u003e decor(\"barcode1\",both=True) # both parameter is added in Version 5.0\n['▌│█║▌║▌║ ', ' ║▌║▌║█│▌']\n\u003e\u003e\u003e decor(\"random\",both=True) # random mode is added in Version 5.0\n['｢(◔ω◔「)三', '三三三ʅ(；◔౪◔)ʃ']\n\u003e\u003e\u003e decor(\"rand\",both=True) # random mode is added in Version 5.0\n['‹–…·´`·…–›', '‹–…·´`·…–›']\n\u003e\u003e\u003e decor(None)\nTraceback (most recent call last):\n\t...\nart.art.artError: The 'decoration' type must be str.\n```\n\nℹ️ Use `DECORATION_NAMES` to access all decorations name list (new in `Version 4.6`)\n\n### Font modes\n\nThese modes are available for `text2art`, `tprint` \u0026 `tsave`.\t\n\n#### 1. Font name\t\n\n⚠️ Some fonts don't support all characters\n\t\t\t\n```pycon\n\n\u003e\u003e\u003e tprint(\"art\",font=\"block\",chr_ignore=True)\n\n .----------------.  .----------------.  .----------------.\n| .--------------. || .--------------. || .--------------. |\n| |      __      | || |  _______     | || |  _________   | |\n| |     /  \\     | || | |_   __ \\    | || | |  _   _  |  | |\n| |    / /\\ \\    | || |   | |__) |   | || | |_/ | | \\_|  | |\n| |   / ____ \\   | || |   |  __ /    | || |     | |      | |\n| | _/ /    \\ \\_ | || |  _| |  \\ \\_  | || |    _| |_     | |\n| ||____|  |____|| || | |____| |___| | || |   |_____|    | |\n| |              | || |              | || |              | |\n| '--------------' || '--------------' || '--------------' |\n '----------------'  '----------------'  '----------------'\n\n\u003e\u003e\u003e tprint(\"art\",\"white_bubble\")\nⓐⓡⓣ\n\n```\t\n\n#### 2. Random\t\t\n\nRandomly select from all fonts.\t\n\nKeywords : `random`, `rand` \u0026 `rnd`\n\n```pycon\n\u003e\u003e\u003e tprint(\"test\",font=\"random\")\n |       | \n~|~/~/(~~|~\n | \\/__) | \n  \n\n```\n\n#### 3. Random small\n\nRandomly select from small fonts.\t\n\nKeywords : `rnd-small`, `random-small` \u0026 `rand-small`\n\nℹ️ New in `Version 2.8`\n\n```pycon\n\u003e\u003e\u003e tprint(\"test\",font=\"rnd-small\")\n             \n_/  _   _ _/ \n/  (- _)  /  \n             \n```\n\n#### 4. Random medium\n\nRandomly select from medium fonts.\n\nKeywords : `rnd-medium`, `random-medium` \u0026 `rand-medium`\n\nℹ️ New in `Version 2.8`\n\n```pycon\n\u003e\u003e\u003e tprint(\"test\",font=\"rnd-medium\")\n                      \n  ,                ,  \n ||               ||  \n=||=  _-_   _-_, =||= \n ||  || \\\\ ||_.   ||  \n ||  ||/    ~ ||  ||  \n \\\\, \\\\,/  ,-_-   \\\\, \n                      \n                      \n```\n\n#### 5. Random large\n\nRandomly select from large fonts.\n\nKeywords : `rnd-large`, `random-large` \u0026 `rand-large`\n\nℹ️ New in `Version 2.8`\n\n```pycon\n\u003e\u003e\u003e tprint(\"test\",font=\"rnd-large\")\n                                                                    \n8888888 8888888888 8 8888888888      d888888o.   8888888 8888888888 \n      8 8888       8 8888          .`8888:' `88.       8 8888       \n      8 8888       8 8888          8.`8888.   Y8       8 8888       \n      8 8888       8 8888          `8.`8888.           8 8888       \n      8 8888       8 888888888888   `8.`8888.          8 8888       \n      8 8888       8 8888            `8.`8888.         8 8888       \n      8 8888       8 8888             `8.`8888.        8 8888       \n      8 8888       8 8888         8b   `8.`8888.       8 8888       \n      8 8888       8 8888         `8b.  ;8.`8888       8 8888       \n      8 8888       8 888888888888  `Y8888P ,88P'       8 8888       \n\n\n```\n\n#### 6. Random xlarge\n\nRandomly select from xlarge fonts.\t\n\nKeywords : `rnd-xlarge`, `random-xlarge` \u0026 `rand-xlarge`\n\nℹ️ New in `Version 2.8`\n\n```pycon\n\u003e\u003e\u003e tprint(\"test\",\"rnd-xlarge\")\n      _____                    _____                    _____                _____          \n     /\\    \\                  /\\    \\                  /\\    \\              /\\    \\         \n    /::\\    \\                /::\\    \\                /::\\    \\            /::\\    \\        \n    \\:::\\    \\              /::::\\    \\              /::::\\    \\           \\:::\\    \\       \n     \\:::\\    \\            /::::::\\    \\            /::::::\\    \\           \\:::\\    \\      \n      \\:::\\    \\          /:::/\\:::\\    \\          /:::/\\:::\\    \\           \\:::\\    \\     \n       \\:::\\    \\        /:::/__\\:::\\    \\        /:::/__\\:::\\    \\           \\:::\\    \\    \n       /::::\\    \\      /::::\\   \\:::\\    \\       \\:::\\   \\:::\\    \\          /::::\\    \\   \n      /::::::\\    \\    /::::::\\   \\:::\\    \\    ___\\:::\\   \\:::\\    \\        /::::::\\    \\  \n     /:::/\\:::\\    \\  /:::/\\:::\\   \\:::\\    \\  /\\   \\:::\\   \\:::\\    \\      /:::/\\:::\\    \\ \n    /:::/  \\:::\\____\\/:::/__\\:::\\   \\:::\\____\\/::\\   \\:::\\   \\:::\\____\\    /:::/  \\:::\\____\\\n   /:::/    \\::/    /\\:::\\   \\:::\\   \\::/    /\\:::\\   \\:::\\   \\::/    /   /:::/    \\::/    /\n  /:::/    / \\/____/  \\:::\\   \\:::\\   \\/____/  \\:::\\   \\:::\\   \\/____/   /:::/    / \\/____/ \n /:::/    /            \\:::\\   \\:::\\    \\       \\:::\\   \\:::\\    \\      /:::/    /          \n/:::/    /              \\:::\\   \\:::\\____\\       \\:::\\   \\:::\\____\\    /:::/    /           \n\\::/    /                \\:::\\   \\::/    /        \\:::\\  /:::/    /    \\::/    /            \n \\/____/                  \\:::\\   \\/____/          \\:::\\/:::/    /      \\/____/             \n                           \\:::\\    \\               \\::::::/    /                           \n                            \\:::\\____\\               \\::::/    /                            \n                             \\::/    /                \\::/    /                             \n                              \\/____/                  \\/____/                              \n                                                                                            \n```\n\t\n#### 7. Wizard\t\n\nThis mode consider length of input text to select font\n\n☑️ Support of 95 ASCII characters guaranteed\n\nKeywords : `wizard`, `wiz` \u0026 `magic`\n\nℹ️ New in `Version 2.9`\n\n```pycon\n\u003e\u003e\u003e tprint(\"1\",\"wizard\")\n    88 \n  ,d88 \n888888 \n    88 \n    88 \n    88 \n    88 \n    88 \n    88 \n    88 \n       \n            \n\n\u003e\u003e\u003e tprint(\"1\"*5,\"wizard\")\nd88  d88  d88  d88  d88  \n 88   88   88   88   88  \n 88   88   88   88   88  \n 88   88   88   88   88  \n 88   88   88   88   88  \nd88P d88P d88P d88P d88P \n                         \n                         \n\n\u003e\u003e\u003e tprint(\"1\"*15,\"wizard\")\n                                             \n                                             \n #  #  #  #  #  #  #  #  #  #  #  #  #  #  # \n## ## ## ## ## ## ## ## ## ## ## ## ## ## ## \n #  #  #  #  #  #  #  #  #  #  #  #  #  #  # \n #  #  #  #  #  #  #  #  #  #  #  #  #  #  # \n #  #  #  #  #  #  #  #  #  #  #  #  #  #  # \n## ## ## ## ## ## ## ## ## ## ## ## ## ## ## \n                                             \n                                             \n```\n\t\n\n\n#### 8. Random Non-ASCII\n\nRandomly select from Non-ASCII fonts.\t\n\nKeywords : `random-na`, `rand-na` \u0026 `rnd-na`\n\nℹ️ New in `Version 3.4`\n\n```pycon\n\u003e\u003e\u003e tprint(\"test\",\"random-na\")\n₮Ɇ₴₮\n\u003e\u003e\u003e tprint(\"test\",\"random-na\")\nʇsǝʇ\n\n```\n\n#### 9. Mix Non-ASCII\n\nRandomly mix Non-ASCII fonts.\n\nKeywords : `mix`\n\nℹ️ New in `Version 3.7`\n\n```pycon\n\u003e\u003e\u003e tprint(\"test\",\"mix\")\n†Ɛѕ†\n\u003e\u003e\u003e tprint(\"test\",\"mix\")\ntᏋѕt\n\u003e\u003e\u003e tprint(\"test\",\"mix\")\n꓄єร꓄\n```\n\n⚠️ Non-ASCII fonts are only available in `Font name`, `Random Non-ASCII` and `Mix` modes\t\n\n\n### Typo-tolerance\t\t\t\n\u003ca href=\"https://en.wikipedia.org/wiki/Levenshtein_distance\"\u003eLevenshtein distance\u003c/a\u003e used in this project. (`Version` \u003e0.9)\n\n```pycon\n\u003e\u003e\u003e aprint(\"happi\")  # correct --\u003e aprint(\"happy\"), error \u003c |artname|/2\n ۜ\\(סּںסּَ` )/ۜ \n\u003e\u003e\u003e Art=art(\"birds2222222\",number=1) # correct --\u003e Art=art(\"birds\",number=1), error \u003e= |artname|/2\nTraceback (most recent call last):\n\t...\nart.art.artError: Invalid art name.\n\u003e\u003e\u003e aprint(\"happi231\")  # correct --\u003e aprint(\"happy\"), error \u003c |artname|/2\n⎦˚◡˚⎣ \n\u003e\u003e\u003e aprint(\"happi2312344\") # correct --\u003e aprint(\"happy\"), error \u003e= |artname|/2\nTraceback (most recent call last):\n\t...\nart.art.artError: Invalid art name.\n\u003e\u003e\u003e Art=text2art(\"test\",font=\"black\") # correct --\u003e Art=text2art(\"test\",font=\"block\")\n\u003e\u003e\u003e print(Art)\n\n .----------------.  .----------------.  .----------------.  .----------------.\n| .--------------. || .--------------. || .--------------. || .--------------. |\n| |  _________   | || |  _________   | || |    _______   | || |  _________   | |\n| | |  _   _  |  | || | |_   ___  |  | || |   /  ___  |  | || | |  _   _  |  | |\n| | |_/ | | \\_|  | || |   | |_  \\_|  | || |  |  (__ \\_|  | || | |_/ | | \\_|  | |\n| |     | |      | || |   |  _|  _   | || |   '.___`-.   | || |     | |      | |\n| |    _| |_     | || |  _| |___/ |  | || |  |`\\____) |  | || |    _| |_     | |\n| |   |_____|    | || | |_________|  | || |  |_______.'  | || |   |_____|    | |\n| |              | || |              | || |              | || |              | |\n| '--------------' || '--------------' || '--------------' || '--------------' |\n '----------------'  '----------------'  '----------------'  '----------------'\n\n\u003e\u003e\u003e tprint(\"test\",font=\"cybermedum\")   # correct --\u003e tprint(\"test\",font=\"cybermedium\")\n___ ____ ____ ___ \n |  |___ [__   |  \n |  |___ ___]  |  \n                  \n   \n```\n\n### Set defaults\t\t\t\n`set_default` function is added in `Version 2.2` in order to change default values.\n\n```pycon\n\u003e\u003e\u003e help(set_default)\nHelp on function set_default in module art.art:\n\nset_default(font='standard', chr_ignore=True, filename='art', print_status=True, overwrite=False, decoration=None, sep='\\n')\n    Change text2art, tprint and tsave default values.\n    \n    :param font: input font\n    :type font:str\n    :param chr_ignore: ignore not supported character\n    :type chr_ignore:bool\n    :param filename: output file name (only tsave)\n    :type filename:str\n    :param print_status : save message print flag (only tsave)\n    :type print_status:bool\n    :param overwrite : overwrite the saved file if true (only tsave)\n    :type overwrite:bool\n    :param decoration: input decoration\n    :type decoration:str\n    :param sep: line separator char\n    :type sep: str\n    :return: None\n\n\u003e\u003e\u003e tprint(\"test\")\n _               _   \n| |_   ___  ___ | |_ \n| __| / _ \\/ __|| __|\n| |_ |  __/\\__ \\| |_ \n \\__| \\___||___/ \\__|\n                     \n\n\u003e\u003e\u003e set_default(font=\"italic\")\n\u003e\u003e\u003e tprint(\"test\")\n             \n_/  _   _ _/ \n/  (- _)  /  \n             \n\n```\n\nℹ️ Functions error response updated in `Version 0.8`\n\n\n\u003ctable\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd align=\"center\"\u003eFunction\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003eNormal Output\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003eError\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd align=\"center\"\u003edecor\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003estr\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003eraise artError\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd align=\"center\"\u003eart\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003estr\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003eraise artError\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd align=\"center\"\u003eaprint\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003eNone\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003eraise artError\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd align=\"center\"\u003etprint\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003eNone\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003eraise artError\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd align=\"center\"\u003etsave\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003e{\"Status\":bool,\"Message\":str}\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003e{\"Status\":bool,\"Message\":str}\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd align=\"center\"\u003etext2art\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003estr\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003eraise artError\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd align=\"center\"\u003elprint\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003eNone\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003eraise artError\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd align=\"center\"\u003eline\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003estr\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003eraise artError\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd align=\"center\"\u003eset_default\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003eNone\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003eraise artError\u003c/td\u003e\n\t\u003c/tr\u003e\t\n\u003c/table\u003e \n\n### Testing\n- Only ASCII fonts and arts :\n```\nart test\n```\n\n- All fonts, arts and decorations :\n```\nart test2\n```\n\n### CLI\t\n⚠️ [Backward Compatibility] **ART 5.9** is the last version to support this **CLI structure** officially\n\n⚠️ You can use `art` or `python -m art` to run this mode\n\t\t\n- List of arts :  `art list` or `art arts`\n- List of fonts : `art fonts`\n- Text : `art text [yourtext] [fontname(optional)]`\n- Art : `art shape [artname]` or `art art [artname]`\n- Save :  `art save [yourtext] [fontname(optional)]`\n- All  :  `art all [yourtext]`\n\n### Telegram bot\t\t\t\n\nJust send your text to one of these bots. 👇👇👇👇\t\t\n\n\u003ca href=\"https://t.me/artlib_bot\" target=\"__blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Telegram-Bot1-red.svg\"\u003e\u003c/a\u003e\t\t\t\n\n\u003ca href=\"https://t.me/textart_robot\" target=\"__blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Telegram-Bot2-blue.svg\"\u003e\u003c/a\u003e\n\n\n### Try ART in your browser\n\n1. ART can be used online in interactive Jupyter Notebooks via the Binder service! Try it out now! :\t\n\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/sepandhaghighi/art/master)\n\n* Open `FontList.ipynb`, `ArtList.ipynb` and `DecorList.ipynb`\n* Edit and execute each part of the notes, step by step from the top panel by run button\n\n2. ART also can be used online in [ascii-generator.site](https://ascii-generator.site/), a Django website by [hermanTenuki](https://github.com/hermanTenuki)\t\n\n### Screen record\t\t\n\n\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://asciinema.org/a/186368\" target=\"_blank\"\u003e\u003cimg src=\"https://asciinema.org/a/186368.png\" /\u003e\u003c/a\u003e\n\u003cp\u003eScreen Record\u003c/p\u003e\n\u003c/div\u003e\n\n* View full font list ([Link1](https://github.com/sepandhaghighi/art/blob/master/FontList.ipynb \"Full Font List\"),[Link2](https://www.ascii-art.site/FontList.html \"Full Font List\"))\t\t\t\t\t\n* View full art list ([Link1](https://github.com/sepandhaghighi/art/blob/master/ArtList.ipynb \"Full Art List\"),[Link2](https://www.ascii-art.site/ArtList.html \"Full Art List\"))\n* View full decoration list ([Link1](https://github.com/sepandhaghighi/art/blob/master/DecorList.ipynb \"Full Decoration List\"),[Link2](https://www.ascii-art.site/DecorList.html \"Full Decoration List\"))\n\n## Issues \u0026 bug reports\t\t\t\n\n1. Fill an issue and describe it. We'll check it ASAP!\n    - Please complete the issue template\n2. Discord : [https://discord.com/invite/FAAyq3QJqP](https://discord.com/invite/FAAyq3QJqP)\n3. Website : [https://www.ascii-art.site](https://www.ascii-art.site)\n4. Email : [info@ascii-art.site](mailto:info@ascii-art.site \"info@ascii-art.site\")\n\n## References   \n\n1. [FIGlet](http://www.figlet.org/)\n2. [1 Line Art](http://1lineart.kulaone.com/#/)\n3. [Text to ASCII](http://patorjk.com/software/taag/#p=display\u0026f=Blocks\u0026t=ART)\n4. [ASCII Generator](http://www.network-science.de/ascii/)\n5. [Asky](https://asky.io/)\n6. [Flipyourtext](https://www.flipyourtext.com/)\n7. [YayText](https://yaytext.com)\n8. [Coolletters](http://www.coolletters.net/)\n9. [Instagram Fonts](https://igfonts.io/)\n10. [Cool Symbol](https://coolsymbol.com/)\n11. [ASCII Moji](http://asciimoji.com/)\n12. [SMILEY COOL](https://smiley.cool/)\n13. [SPREZZ](https://www.sprezzkeyboard.com/)\n14. [Textart4u](http://textart4u.blogspot.com/2013/03/one-line-ascii-text-art.html?m=1)\n15. [Chat4o](https://en.chat4o.com/ascii/)\n16. [Findwebapp](http://www.findwebapp.com/ascii-art-one-liner/)\n17. [Hubpages](https://hubpages.com/technology/one-line-ascii-art-for-twitter)\n18. [ASCII-ART](http://www.ascii-art.de/ascii/mno/one_line.txt)\n19. [Messletters](https://www.messletters.com/en/)\n20. [Webestools](http://www.webestools.com/)\n21. [ASCII-emoji](https://github.com/dysfunc/ascii-emoji)\n22. [Instagram Fonts2](https://www.instagramfonts.com/)\n23. [Emotiworld](http://en.emotiworld.com/)\n24. [Fancy Text Pro](https://www.fancytextpro.com/)\n25. [Playing Cards in Unicode](https://en.m.wikipedia.org/wiki/Playing_cards_in_Unicode)\n26. [Text Generator](https://coolfonts.text-generator.org/)\n27. [GOGOTEXT](https://instafontsgen.codesdetail.com)\n28. [Fsymbols](https://fsymbols.com/)\n29. [Font Copy and Paste](https://www.fontcopypaste.com/)\n30. [Mega Cool Text](http://megacooltext.com/)\n31. [ToolCalculator](https://www.toolcalculator.com/)\n32. [Copy Paste Fonts](https://copy-paste-fonts.top/)\n\n\n## Show your support\n\t\t\t\t\t\t\t\t\n\u003ch3\u003eStar this repo\u003c/h3\u003e\t\t\t\t\t\n\nGive a ⭐️ if this project helped you!\n\n\u003ch3\u003eDonate to our project\u003c/h3\u003e\t\n\nIf you do like our project and we hope that you do, can you please support us? Our project is not and is never going to be working for profit. We need the money just so we can continue doing what we do ;-) .\t\t\t\n\n\u003ca href=\"https://www.ascii-art.site/#support\" target=\"_blank\"\u003e\u003cimg src=\"https://github.com/sepandhaghighi/art/raw/master/otherfile/donate-button.png\" height=\"90px\" width=\"270px\" alt=\"Art Donation\"\u003e\u003c/a\u003e\n\n\u003ch3\u003eBecome a sponsor to ART\u003c/h3\u003e\n\n* Contact us at the email first\t\n\n\u003ch4\u003eCorporate sponsor\u003c/h4\u003e\n\n- **$250** a month\n- Your company's logo can be featured on **Readme**\n- Intended for small companies\n\n\n\u003ch4\u003eMega corporate sponsor\u003c/h4\u003e\n\n- **$500** a month\n- Your company's logo can be featured on **Readme** and **Website**\n- Intended for medium-sized companies\n\n## Acknowledgments\nSome parts of the infrastructure for this project are supported by:\n\u003cp\u003e\n  \u003ca href=\"https://www.digitalocean.com/\"\u003e\n    \u003cimg src=\"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg\" width=\"201px\" alt=\"DigitalOcean\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n[Python Software Foundation (PSF)](https://www.python.org/psf/) grants ART library from version **6.3** to **6.6**. [PSF](https://www.python.org/psf/) is the organization behind Python. Their mission is to promote, protect, and advance the Python programming language and to support and facilitate the growth of a diverse and international community of Python programmers.\n\n\u003ca href=\"https://www.python.org/psf/\"\u003e\u003cimg src=\"https://github.com/sepandhaghighi/art/raw/master/otherfile/PSF.png\" height=\"55px\" alt=\"Python Software Foundation\"\u003e\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsepandhaghighi%2Fart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsepandhaghighi%2Fart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsepandhaghighi%2Fart/lists"}