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)
.----------------. .----------------. .----------------.
| .--------------. || .--------------. || .--------------. |
| | __ | || | _______ | || | _________ | |
| | / \ | || | |_ __ \ | || | | _ _ | | |
| | / /\ \ | || | | |__) | | || | |_/ | | \_| | |
| | / ____ \ | || | | __ / | || | | | | |
| | _/ / \ \_ | || | _| | \ \_ | || | _| |_ | |
| ||____| |____|| || | |____| |___| | || | |_____| | |
| | | || | | || | | |
| '--------------' || '--------------' || '--------------' |
'----------------' '----------------' '----------------'
>>> Art=text2art("test","random") # random font mode
>>> print(Art)
| |
~|~/~/(~~|~
| \/__) |
>>> Art=text2art("test","rand") # random font mode
>>> 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","random") # random font mode
| |
~|~/~/(~~|~
| \/__) |
>>> tprint("test","rand") # random font mode
___ ____ ____ ___
| |___ [__ |
| |___ ___] |
>>> 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.3 - 2018-06-08
Added
- 10 new fonts
- eftitalic
- eftiwater
- fourtops
- goofy
- hollywood
- invita
- italic
- jazmine
- lcd
- lean
- random font mode
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
Release files for art 1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| art-1.3.tar.gz | 169.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| art-1.3-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size:324.1 kB
Release files / art-1.3.tar.gz
| Download URL | art-1.3.tar.gz |
|---|---|
| Size | 169.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
86bc59a68a1f91f8fb7c69c5a2a604175d3bcad2e2cf880083bbd23a020cf434
|
|
BLAKE2b-256 checksum How to use checksums |
2d1649a3ebfcbee5ecc6522f07fee620f83cf564ce7052a06dd273dca21913af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / art-1.3-py2.py3-none-any.whl
| Download URL | art-1.3-py2.py3-none-any.whl |
|---|---|
| Size | 154.4 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
7e07e9dd8ead774820c87594cc75690e73b5bfc5e1742c31df66ee61247dc951
|
|
BLAKE2b-256 checksum How to use checksums |
0a2204ce072209314584bca201fbc3f764d55ff736c0dcf416b0ad9d2a68cda3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |