ASCII art is also known as "computer text art". It involves the smart placement of typed special characters or letters to make a visual shape that is spread over multiple lines of text. Art is a Python lib for text converting to ASCII ART fancy.
___ ___
/ /\ / /\ ___
/ /::\ / /::\ / /\
/ /:/\:\ / /:/\:\ / /:/
/ /:/~/::\ / /:/~/:/ / /:/
/__/:/ /:/\:\ /__/:/ /:/___ / /::\
\ \:\/:/__\/ \ \:\/:::::/ /__/:/\:\
\ \::/ \ \::/~~~~ \__\/ \:\
\ \:\ \ \:\ \ \:\
\ \:\ \ \:\ \__\/
\__\/ \__\/
Table of contents
- Overview
- Installation
- Usage
- Issues & Bug Reports
- Contribution
- Reference
- Authors
- License
- Donate
- Changelog
Overview
ASCII art is also known as "computer text art". It involves the smart placement of typed special characters or letters to make a visual shape that is spread over multiple lines of text.
Art is a Python lib for text converting to ASCII ART fancy. ;-)
Usage
1-Line Art
- art
This function return 1-line art as str in normal mode and raise artError in exception
>>> from art import *
>>> art_1=art("coffee") # return art as str in normal mode
>>> print(art_1)
c[_]
>>> art_2=art("woman",number=2) # return multiple art as str
>>> print(art_2)
▓⚗_⚗▓ ▓⚗_⚗▓
>>> art_3=art("love_you",number=1,text="test") # 2-part art
>>> print(art_3)
»-(¯`·.·´¯)->test<-(¯`·.·´¯)-«
>>> art(22,number=1,text="") # raise artError
Traceback (most recent call last):
...
art.art.artError: artname shoud have str type
- aprint
This function print 1-line art in normal mode (return None) and raise artError in exception
>>> aprint("butterfly") # print art
Ƹ̵̡Ӝ̵̨̄Ʒ
>>> aprint("happy") # print art
ۜ\(סּںסּَ` )/ۜ
>>> aprint("love_you",number=1,text="test") # 2-part art
»-(¯`·.·´¯)->test<-(¯`·.·´¯)-«
>>> aprint("woman",number="22",text="") # raise artError
Traceback (most recent call last):
...
art.art.artError: number should have int type
ASCII Text
- text2art
This function return ascii text as str in normal mode and raise artError in exception
>>> Art=text2art("art") # Return ascii text (default font) and default chr_ignore=True
>>> print(Art)
_
__ _ _ __ | |_
/ _` || '__|| __|
| (_| || | | |_
\__,_||_| \__|
>>> Art=text2art("art",font='block',chr_ignore=True) # Return ascii text with block font
>>> print(Art)
.----------------. .----------------. .----------------.
| .--------------. || .--------------. || .--------------. |
| | __ | || | _______ | || | _________ | |
| | / \ | || | |_ __ \ | || | | _ _ | | |
| | / /\ \ | || | | |__) | | || | |_/ | | \_| | |
| | / ____ \ | || | | __ / | || | | | | |
| | _/ / \ \_ | || | _| | \ \_ | || | _| |_ | |
| ||____| |____|| || | |____| |___| | || | |_____| | |
| | | || | | || | | |
| '--------------' || '--------------' || '--------------' |
'----------------' '----------------' '----------------'
>>> text2art("seسسس",font=DEFAULT_FONT,chr_ignore=False) # raise artError in exception
Traceback (most recent call last):
...
art.art.artError: س is invalid
- tprint
This function print ascii text in normal mode (return None) and raise artError in exception
>>> tprint("art") # print ascii text (default font)
_
__ _ _ __ | |_
/ _` || '__|| __|
| (_| || | | |_
\__,_||_| \__|
>>> tprint("art",font="block",chr_ignore=True) # print ascii text (block font)
.----------------. .----------------. .----------------.
| .--------------. || .--------------. || .--------------. |
| | __ | || | _______ | || | _________ | |
| | / \ | || | |_ __ \ | || | | _ _ | | |
| | / /\ \ | || | | |__) | | || | |_/ | | \_| | |
| | / ____ \ | || | | __ / | || | | | | |
| | _/ / \ \_ | || | _| | \ \_ | || | _| |_ | |
| ||____| |____|| || | |____| |___| | || | |_____| | |
| | | || | | || | | |
| '--------------' || '--------------' || '--------------' |
'----------------' '----------------' '----------------'
>>> tprint('testسس') # chr_ignore flag ==True (Default)
_ _
| |_ ___ ___ | |_
| __| / _ \/ __|| __|
| |_ | __/\__ \| |_
\__| \___||___/ \__|
>>> tprint('testسس',chr_ignore=False) # raise artError in exception
Traceback (most recent call last):
...
art.art.artError: س is invalid
>>> tprint('''Lorem # Multi-line print
ipsum
dolor''', font="cybermedium")
_ ____ ____ ____ _ _
| | | |__/ |___ |\/|
|___ |__| | \ |___ | |
_ ___ ____ _ _ _ _
| |__] [__ | | |\/|
| | ___] |__| | |
___ ____ _ ____ ____
| \ | | | | | |__/
|__/ |__| |___ |__| | \
- tsave
This function return dict in normal and exception mode
>>> Response=tsave("art",filename="test.txt") # save ascii text in test.txt file with save message (print_status==True) # return dict
Saved!
Filename: test.txt
>>> Response["Message"]
'OK'
>>> Response=tsave("art",filename="test.txt",print_status=False) # save ascii text in test.txt file without save message (print_status==False)
>>> Response["Message"]
'OK'
>>> Response["Status"]
True
>>> tsave(22,font=DEFAULT_FONT,filename="art",chr_ignore=True,print_status=True)
{'Status': False, 'Message': "'int' object has no attribute 'split'"}
- Note : Functions error response updated in
Version 0.8
| Function | Normal | Error |
| art | str | raise artError |
| aprint | None | raise artError |
| tprint | None | raise artError |
| tsave | {"Status":bool,"Message":str} | {"Status":bool,"Message":str} |
| text2art | str | raise artError |
Typo-Tolerance
Levenshtein distance used in this project. (>Version 0.9)
>>> Art=art("loveyou",number=1,text="test") # correct --> art("love_you",number=1,text="test") (distance < 3)
>>> print(Art)
»-(¯`·.·´¯)->test<-(¯`·.·´¯)-«
>>> aprint("happi") # correct --> aprint("happy") (distance < 3)
ۜ\(סּںסּَ` )/ۜ
>>> Art=art("birds2222",number=1) # correct --> Art=art("birds",number=1) (distance > 3)
>>> print(Art)
Traceback (most recent call last):
...
art.art.artError: Invalid art name
>>> aprint("happi231") # correct --> aprint("happy") (distance > 3)
Traceback (most recent call last):
...
art.art.artError: Invalid art name
>>> Art=text2art("test",font="black") # correct --> Art=text2art("test",font="block")
>>> print(Art)
.----------------. .----------------. .----------------. .----------------.
| .--------------. || .--------------. || .--------------. || .--------------. |
| | _________ | || | _________ | || | _______ | || | _________ | |
| | | _ _ | | || | |_ ___ | | || | / ___ | | || | | _ _ | | |
| | |_/ | | \_| | || | | |_ \_| | || | | (__ \_| | || | |_/ | | \_| | |
| | | | | || | | _| _ | || | '.___`-. | || | | | | |
| | _| |_ | || | _| |___/ | | || | |`\____) | | || | _| |_ | |
| | |_____| | || | |_________| | || | |_______.' | || | |_____| | |
| | | || | | || | | || | | |
| '--------------' || '--------------' || '--------------' || '--------------' |
'----------------' '----------------' '----------------' '----------------'
>>> tprint("test",font="cybermedum") # correct --> tprint("test",font="cybermedium")
___ ____ ____ ___
| |___ [__ |
| |___ ___] |
CLI
- List of arts :
python -m art list - List of fonts :
python -m art fonts - Test :
python -m art test - Text :
python -m art text yourtext fontname(optional) - Shape :
python -m art shape art_name - Save :
python -m art save yourtext fontname(optional) - All :
python -m art all yourtext
Telegram Bot
Just send your text to one of these bots. 👇👇👇👇
Screen Record
Issues & Bug Reports
Just fill an issue and describe it. I'll check it ASAP! or send an email to sepand@qpage.ir.
License
Reference
Donate to our project
Bitcoin :
12Xm1qL4MXYWiY9sRMoa3VpfTfw6su3vNq
Payping (For Iranian citizens)
Say Thanks!
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Unreleased
1.2 - 2018-06-04
Added
- 8 new fonts
- barbwire
- bigchief
- binary
- bubble
- calgphy2
- cygnet
- diamond
- eftifont
Changed
- Test cases modified
1.1 - 2018-05-25
Added
- 5 new fonts
- peaks
- pawp
- o8
- nipples
- maxfour
- 15 new 1-line art
- guitar
- rocket
- ghost
- hal
- cthulhu
- sat
- what
- king
- tron
- homer
- fox
- singing
- atish
- zable
- trumpet
- CLI description
Changed
- README.md modified
- Test cases modified
- File name bug in UNIX fixed
- CHANGELOG.md modified
1.0 - 2018-05-20
Added
- 15 new fonts
- tinker-toy
- straight
- stampatello
- smslant
- smshadow
- smscript
- smkeyboard
- smisome1
- slscript
- slide
- sblood
- rozzo
- pyramid
- puffy
- pebbles
- Typo-Tolerance system
Changed
- README.md modified
- Test cases modified
0.9 - 2018-05-08
Added
- 10 new fonts
- weird
- univers
- twopoint
- trek
- tombstone
- threepoint
- thick
- tanja
- swan
- stellar
Changed
- MANIFEST.in modified
- INSTALL.md modified
0.8 - 2018-03-13
Added
- CHANGELOG
Changed
- Functions error response
- README.md modified
- tsave function extension bug fixed
- text2art response bug fixed ("\r\n")
- setup file modified
0.7 - 2018-01-20
Added
- 10 new fonts
- acrobatic
- alligator
- alligator2
- block2
- caligraphy
- computer
- digital
- doh
- eftirobot
- graffiti
0.6 - 2018-01-09
Added
- all flag
0.5 - 2017-12-05
Added
- 10 new fonts
- 3-d
- 3x5
- 5lineoblique
- alphabet
- banner3-D
- banner3
- banner4
- bell
- catwalk
- colossal
0.4 - 2017-11-11
Added
- Telegram bot
Changed
- Universal Text Format Added For Unix & Windows
0.3 - 2017-10-28
Added
- Save function (tsave)
- chr_ignore flag
- 10 new fonts
- banner
- avatar
- basic
- bulbhead
- chunky
- coinstak
- contessa
- contrast
- cyberlarge
- cybermedium
- doom
- dotmatrix
- drpepper
- epic
- fuzzy
- isometric1
- isometric2
- isometric3
- isometric4
- larry3d
- nancyj
- ogre
- rectangles
- roman
- rounded
- rowancap
- script
- serifcap
- shadow
- slant
- speed
- starwars
- stop
- thin
- usaflag
- overall_stat
Changed
- Space bug fixed
0.2 - 2017-10-10
Added
- Standard font
Changed
- Minor bugs fixed
Changed
- statistic_result to class_stat
- params() to stat()
0.1 - 2017-10-04
Added
- Block font
- 1-Line art
- CLI commands
Metadata
Release files for art 1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| art-1.2.tar.gz | 155.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| art-1.2-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 296.9 kB
Release files / art-1.2.tar.gz
| Download URL | art-1.2.tar.gz |
|---|---|
| Size | 155.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5395fdf18513a10248ac9f253c6c4693d75c7fcff651e76ede8f97f881463573
|
|
BLAKE2b-256 checksum How to use checksums |
648eb824298f564155233307fb6b447030f83bbb5e5b9241627f4ddcb220e0e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / art-1.2-py2.py3-none-any.whl
| Download URL | art-1.2-py2.py3-none-any.whl |
|---|---|
| Size | 141.0 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
119bc30a79b551e3938613d889484435c19c25ed97e54cde9a85a1f3a5fe43d1
|
|
BLAKE2b-256 checksum How to use checksums |
11c3a86944afa8dee2124ddaf47c803428112f1903064396e276edac92a52a0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for art 1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.