ASCII Art Library For Python
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file art-1.3.tar.gz
.
File metadata
- Download URL: art-1.3.tar.gz
- Upload date:
- Size: 169.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86bc59a68a1f91f8fb7c69c5a2a604175d3bcad2e2cf880083bbd23a020cf434 |
|
MD5 | 0fc20184bf6f564c2ea3c8ef27473359 |
|
BLAKE2b-256 | 2d1649a3ebfcbee5ecc6522f07fee620f83cf564ce7052a06dd273dca21913af |
File details
Details for the file art-1.3-py2.py3-none-any.whl
.
File metadata
- Download URL: art-1.3-py2.py3-none-any.whl
- Upload date:
- Size: 154.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e07e9dd8ead774820c87594cc75690e73b5bfc5e1742c31df66ee61247dc951 |
|
MD5 | 42f609c3cd80d524e5e591b2779e2d0a |
|
BLAKE2b-256 | 0a2204ce072209314584bca201fbc3f764d55ff736c0dcf416b0ad9d2a68cda3 |