Security News
Maven Central Adds Sigstore Signature Validation
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
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. ;-)
Open Hub | |
PyPI Counter | |
Github Stars | |
Font Counter | 672 |
1-Line-Art Counter | 710 |
Decor Counter | 218 |
Branch | master | dev |
CI |
Code Quality |
Quick Start
⚠️ Some environments don't support all 1-Line arts
⚠️ ART 4.6 is the last version to support Bipartite 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("coffee", number=3, space=5)
'c[_] c[_] c[_]'
>>> art("random") # random 1-line art mode
'(っ◕‿◕)っ '
>>> art("rand") # random 1-line art mode
't(-_-t) '
>>> art(22,number=1) # raise artError
Traceback (most recent call last):
...
art.art.artError: The 'artname' type must be str.
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("coffee", number=3, space=5)
c[_] c[_] c[_]
>>> aprint("random") # random 1-line art mode
'(っ◕‿◕)っ '
>>> aprint("rand") # random 1-line art mode
't(-_-t) '
>>> aprint("woman",number="22") # raise artError
Traceback (most recent call last):
...
art.art.artError: The 'number' type must be int.
randart
function is added in Version 2.2
as art("random")
shortcut.
>>> randart()
'ዞᏜ℘℘Ꮍ ℬℹℛʈዞᗬᏜᎽ '
>>> randart()
'✌(◕‿-)✌ '
ℹ️ Use ART_NAMES
to access all arts name list (new in Version 4.2
)
ℹ️ Use NON_ASCII_ARTS
to access all Non-ASCII arts name list (new in Version 4.6
)
ℹ️ Use ASCII_ARTS
to access all ASCII arts name list (new in Version 5.7
)
⚠️ Some fonts don't support all characters
⚠️ From Version 3.3
Non-ASCII fonts added (These fonts are not compatible with some environments)
⚠️ From Version 5.3
\n
is used as the default line separator instead of \r\n
(Use sep
parameter if needed)
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)
___ ____ ____ ___
| |___ [__ |
| |___ ___] |
>>> print(text2art("test", space=10))
_ _
| |_ ___ ___ | |_
| __| / _ \ / __| | __|
| |_ | __/ \__ \ | |_
\__| \___| |___/ \__|
>>> print(text2art('''Lorem
ipsum
dolor''', font="small")) # Multi-line print
_
| | ___ _ _ ___ _ __
| |__ / _ \| '_|/ -_)| ' \
|____|\___/|_| \___||_|_|_|
_
(_) _ __ ___ _ _ _ __
| || '_ \(_-<| || || ' \
|_|| .__//__/ \_,_||_|_|_|
|_|
_ _
__| | ___ | | ___ _ _
/ _` |/ _ \| |/ _ \| '_|
\__,_|\___/|_|\___/|_|
>>> print(text2art("test","white_bubble")) # Non-ASCII font example
ⓣⓔⓢⓣ
>>> text2art("art",font="fancy5",decoration="barcode1") # decoration parameter is added in Version 4.6
'▌│█║▌║▌║ ᏗᏒᏖ ║▌║▌║█│▌'
>>> text2art("seسسس",font=DEFAULT_FONT,chr_ignore=False) # raise artError in exception
Traceback (most recent call last):
...
art.art.artError: س is invalid.
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", space=10)
_ _
| |_ ___ ___ | |_
| __| / _ \ / __| | __|
| |_ | __/ \__ \ | |_
\__| \___| |___/ \__|
>>> tprint('testسس',chr_ignore=False) # raise artError in exception
Traceback (most recent call last):
...
art.art.artError: س is invalid.
>>> tprint('''Lorem
ipsum
dolor''', font="cybermedium") # Multi-line print
_ ____ ____ ____ _ _
| | | |__/ |___ |\/|
|___ |__| | \ |___ | |
_ ___ ____ _ _ _ _
| |__] [__ | | |\/|
| | ___] |__| | |
___ ____ _ ____ ____
| \ | | | | | |__/
|__/ |__| |___ |__| | \
>>> tprint("art",font="fancy5",decoration="barcode1") # decoration parameter is added in Version 4.6
▌│█║▌║▌║ ᏗᏒᏖ ║▌║▌║█│▌
>>> tprint("art",font="fancy5",decoration="random") # decoration random mode is added in Version 5.0
•]•·✦º✦·»ᏗᏒᏖ«·✦º✦·•[•
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'"}
>>> Response=tsave("art",filename="test.txt",overwrite=True) # overwrite parameter is added in Version 4.0
Saved!
Filename: test.txt
>>> Response=tsave("art",filename="test.txt",decoration="barcode1") # decoration parameter is added in Version 4.6
Saved!
Filename: test.txt
>>> Response=tsave("art",filename="test.txt",sep="\r\n") # sep parameter is added in Version 5.3
Saved!
Filename: test.txt
>>> Response=tsave("art",filename="test.txt",space=5) # space parameter is added in Version 6.0
Saved!
Filename: test.txt
ℹ️ Use FONT_NAMES
to access all fonts name list (new in Version 4.2
)
ℹ️ Use NON_ASCII_FONTS
to access all Non-ASCII fonts name list (new in Version 4.4
)
ℹ️ Use ASCII_FONTS
to access all ASCII fonts name list (new in Version 5.7
)
This function prints a grid (length
by height
) of any given character in normal mode and raise artError
in exception.
>>> lprint(length=15, height=2, char="*")
***************
***************
ℹ️ New in Version 6.4
ℹ️ The default values are length=15
, height=1
, char='#'
This function returns a grid (length
by height
) of any given character as str
in normal mode and raise artError
in exception.
>>> line(length=15, height=2, char="*")
'***************\n***************'
ℹ️ New in Version 6.4
ℹ️ The default values are length=15
, height=1
, char='#'
⚠️ Some environments don't support all decorations
This function return decoration as str
in normal mode and raise artError
in exception.
>>> decor("barcode1")
'▌│█║▌║▌║ '
>>> decor("barcode1",reverse=True)
' ║▌║▌║█│▌'
>>> decor("barcode1") + text2art(" art ",font="fancy42") + decor("barcode1",reverse=True)
'▌│█║▌║▌║ ąяţ ║▌║▌║█│▌'
>>> decor("barcode1",both=True) # both parameter is added in Version 5.0
['▌│█║▌║▌║ ', ' ║▌║▌║█│▌']
>>> decor("random",both=True) # random mode is added in Version 5.0
['「(◔ω◔「)三', '三三三ʅ(;◔౪◔)ʃ']
>>> decor("rand",both=True) # random mode is added in Version 5.0
['‹–…·´`·…–›', '‹–…·´`·…–›']
>>> decor(None)
Traceback (most recent call last):
...
art.art.artError: The 'decoration' type must be str.
ℹ️ Use DECORATION_NAMES
to access all decorations name list (new in Version 4.6
)
These modes are available for text2art
, tprint
& tsave
.
⚠️ Some fonts don't support all characters
>>> tprint("art",font="block",chr_ignore=True)
.----------------. .----------------. .----------------.
| .--------------. || .--------------. || .--------------. |
| | __ | || | _______ | || | _________ | |
| | / \ | || | |_ __ \ | || | | _ _ | | |
| | / /\ \ | || | | |__) | | || | |_/ | | \_| | |
| | / ____ \ | || | | __ / | || | | | | |
| | _/ / \ \_ | || | _| | \ \_ | || | _| |_ | |
| ||____| |____|| || | |____| |___| | || | |_____| | |
| | | || | | || | | |
| '--------------' || '--------------' || '--------------' |
'----------------' '----------------' '----------------'
>>> tprint("art","white_bubble")
ⓐⓡⓣ
Randomly select from all fonts.
Keywords : random
, rand
& rnd
>>> tprint("test",font="random")
| |
~|~/~/(~~|~
| \/__) |
Randomly select from small fonts.
Keywords : rnd-small
, random-small
& rand-small
ℹ️ New in Version 2.8
>>> tprint("test",font="rnd-small")
_/ _ _ _/
/ (- _) /
Randomly select from medium fonts.
Keywords : rnd-medium
, random-medium
& rand-medium
ℹ️ New in Version 2.8
>>> tprint("test",font="rnd-medium")
, ,
|| ||
=||= _-_ _-_, =||=
|| || \\ ||_. ||
|| ||/ ~ || ||
\\, \\,/ ,-_- \\,
Randomly select from large fonts.
Keywords : rnd-large
, random-large
& rand-large
ℹ️ New in Version 2.8
>>> tprint("test",font="rnd-large")
8888888 8888888888 8 8888888888 d888888o. 8888888 8888888888
8 8888 8 8888 .`8888:' `88. 8 8888
8 8888 8 8888 8.`8888. Y8 8 8888
8 8888 8 8888 `8.`8888. 8 8888
8 8888 8 888888888888 `8.`8888. 8 8888
8 8888 8 8888 `8.`8888. 8 8888
8 8888 8 8888 `8.`8888. 8 8888
8 8888 8 8888 8b `8.`8888. 8 8888
8 8888 8 8888 `8b. ;8.`8888 8 8888
8 8888 8 888888888888 `Y8888P ,88P' 8 8888
Randomly select from xlarge fonts.
Keywords : rnd-xlarge
, random-xlarge
& rand-xlarge
ℹ️ New in Version 2.8
>>> tprint("test","rnd-xlarge")
_____ _____ _____ _____
/\ \ /\ \ /\ \ /\ \
/::\ \ /::\ \ /::\ \ /::\ \
\:::\ \ /::::\ \ /::::\ \ \:::\ \
\:::\ \ /::::::\ \ /::::::\ \ \:::\ \
\:::\ \ /:::/\:::\ \ /:::/\:::\ \ \:::\ \
\:::\ \ /:::/__\:::\ \ /:::/__\:::\ \ \:::\ \
/::::\ \ /::::\ \:::\ \ \:::\ \:::\ \ /::::\ \
/::::::\ \ /::::::\ \:::\ \ ___\:::\ \:::\ \ /::::::\ \
/:::/\:::\ \ /:::/\:::\ \:::\ \ /\ \:::\ \:::\ \ /:::/\:::\ \
/:::/ \:::\____\/:::/__\:::\ \:::\____\/::\ \:::\ \:::\____\ /:::/ \:::\____\
/:::/ \::/ /\:::\ \:::\ \::/ /\:::\ \:::\ \::/ / /:::/ \::/ /
/:::/ / \/____/ \:::\ \:::\ \/____/ \:::\ \:::\ \/____/ /:::/ / \/____/
/:::/ / \:::\ \:::\ \ \:::\ \:::\ \ /:::/ /
/:::/ / \:::\ \:::\____\ \:::\ \:::\____\ /:::/ /
\::/ / \:::\ \::/ / \:::\ /:::/ / \::/ /
\/____/ \:::\ \/____/ \:::\/:::/ / \/____/
\:::\ \ \::::::/ /
\:::\____\ \::::/ /
\::/ / \::/ /
\/____/ \/____/
This mode consider length of input text to select font
☑️ Support of 95 ASCII characters guaranteed
Keywords : wizard
, wiz
& magic
ℹ️ New in Version 2.9
>>> tprint("1","wizard")
88
,d88
888888
88
88
88
88
88
88
88
>>> tprint("1"*5,"wizard")
d88 d88 d88 d88 d88
88 88 88 88 88
88 88 88 88 88
88 88 88 88 88
88 88 88 88 88
d88P d88P d88P d88P d88P
>>> tprint("1"*15,"wizard")
# # # # # # # # # # # # # # #
## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
# # # # # # # # # # # # # # #
# # # # # # # # # # # # # # #
# # # # # # # # # # # # # # #
## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
Randomly select from Non-ASCII fonts.
Keywords : random-na
, rand-na
& rnd-na
ℹ️ New in Version 3.4
>>> tprint("test","random-na")
₮Ɇ₴₮
>>> tprint("test","random-na")
ʇsǝʇ
Randomly mix Non-ASCII fonts.
Keywords : mix
ℹ️ New in Version 3.7
>>> tprint("test","mix")
†Ɛѕ†
>>> tprint("test","mix")
tᏋѕt
>>> tprint("test","mix")
꓄єร꓄
⚠️ Non-ASCII fonts are only available in Font name
, Random Non-ASCII
and Mix
modes
Levenshtein distance used in this project. (Version
>0.9)
>>> aprint("happi") # correct --> aprint("happy"), error < |artname|/2
ۜ\(סּںסּَ` )/ۜ
>>> Art=art("birds2222222",number=1) # correct --> Art=art("birds",number=1), error >= |artname|/2
Traceback (most recent call last):
...
art.art.artError: Invalid art name.
>>> aprint("happi231") # correct --> aprint("happy"), error < |artname|/2
⎦˚◡˚⎣
>>> aprint("happi2312344") # correct --> aprint("happy"), error >= |artname|/2
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")
___ ____ ____ ___
| |___ [__ |
| |___ ___] |
set_default
function is added in Version 2.2
in order to change default values.
>>> help(set_default)
Help on function set_default in module art.art:
set_default(font='standard', chr_ignore=True, filename='art', print_status=True, overwrite=False, decoration=None, sep='\n')
Change text2art, tprint and tsave default values.
:param font: input font
:type font:str
:param chr_ignore: ignore not supported character
:type chr_ignore:bool
:param filename: output file name (only tsave)
:type filename:str
:param print_status : save message print flag (only tsave)
:type print_status:bool
:param overwrite : overwrite the saved file if true (only tsave)
:type overwrite:bool
:param decoration: input decoration
:type decoration:str
:param sep: line separator char
:type sep: str
:return: None
>>> tprint("test")
_ _
| |_ ___ ___ | |_
| __| / _ \/ __|| __|
| |_ | __/\__ \| |_
\__| \___||___/ \__|
>>> set_default(font="italic")
>>> tprint("test")
_/ _ _ _/
/ (- _) /
ℹ️ Functions error response updated in Version 0.8
Function | Normal Output | Error |
decor | str | raise artError |
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 |
lprint | None | raise artError |
line | str | raise artError |
set_default | None | raise artError |
art test
art test2
⚠️ [Backward Compatibility] ART 5.9 is the last version to support this CLI structure officially
⚠️ You can use art
or python -m art
to run this mode
art list
or art arts
art fonts
art text [yourtext] [fontname(optional)]
art shape [artname]
or art art [artname]
art save [yourtext] [fontname(optional)]
art all [yourtext]
Just send your text to one of these bots. 👇👇👇👇
FontList.ipynb
, ArtList.ipynb
and DecorList.ipynb
Give a ⭐️ if this project helped you!
If 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 ;-) .
Some parts of the infrastructure for this project are supported by:
Python Software Foundation (PSF) grants ART library from version 6.3 to 6.6. 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.
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.
line
functionlprint
functionREADME.md
dev
and master
branchesPython 3.13
added to test.yml
README.md
modifieddata
directorytests
directoryart_param
module changed to params
art
module split into errors
, utils
, and functions
modulestext_dic1
, text_dic2
, and text_dic3
renamed to fonts1
, fonts2
, and fonts3
art_dic
renamed to arts
decor_dic
renamed to decorations
data
directorytests
directoryPython 3.5
support droppedCONTRIBUTING.md
updatedREADME.md
modifieddecoration_request.yml
templatefont_request.yml
templateone_line_request.yml
templatefeature_request.yml
templateconfig.yml
for issue templateSECURITY.md
README.md
modifiedREADME.md
Python 3.12
added to test.yml
font_size_splitter
function modified__detailed_return
parameter added to art
function__detailed_return
parameter added to text2art
function__word2art
function modifiedart
function tail space bug fixedspace
parameter bug fixedspace
parameter added to art
functionspace
parameter added to aprint
functionfont_check.py
modifiedREADME.md
modifiedINSTALL.md
modifiedfont_wizard.py
modifiedspace
parameter added to tsave
functionspace
parameter added to tprint
functionspace
parameter added to text2art
functioncrazy
font renamed to crazy1
codecov
removed from dev-requirements.txt
README.md
modifiedINSTALL.md
modifiedREADME.md
modifiedhelp_func
function modifiedPython 3.11
added to test.yml
Conda-Forge
installing section added to INSTALL.md
testcov
and testcov2
modesASCII_FONTS
listASCII_ARTS
list__word2art
function modifiedfont_wizard.py
modifiedtest.py
modifiedfont_wizard.py
modifiedfont_check.py
modifiedart_decor_check.py
modified__word2art
function modifiedmix_letters
function modifiedAUTHORS.md
updatedREADME.md
modifiedCONTRIBUTING.md
modifiedPython 3.10
added to test.yml
greetings.yml
fantasy
font renamed to fantasy1
upside_down
font renamed to upside_down1
sep
parameter added to text2art
, tprint
, tsave
and set_default
functions\r\n
to \n
__word2art
function modified\
in string literalssubscript
font renamed to subscript1
random
mode added to decor
functionboth
parameter added to decor
functionart
function modifiedindirect_font
function modifiedfont_wizard.py
script updatedREADME.md
modifiedsurprised2
1-line art renamed to surprised3
art_decor_check.py
script updatedfont_check.py
script updatedfont_wizard.py
script updatedart_decor_check.py
filetext
parameter removed from art
and aprint
functionsREADME.md
modifiedCONTRIBUTING.md
modifiedkitty2
1-line art renamed to kitty
NON_ASCII_ARTS
listdecor_dic.py
filecodecov.yml
filedecor
functiondecor_list
functionDecorList.ipynb
notebookREADME.md
modifiedCONTRIBUTING.md
modifiedsetup.py
modifiedcoverage
dependency moved to extras_require
random
mode modifiedtest
parameter removed from font_list
functionmode
parameter added to font_list
and art_list
functionsdecoration
parameter added to text2art
, tprint
and tsave
functions\n
support bug fixedtsave
function bug in Windows fixedrequirements.txt
README.md
modifiedINSTALL.md
modifiedcoffee
1-line art renamed to coffee1
arrow
1-line art renamed to arrow1
fish skeleton
1-line art renamed to fish skeleton1
crying
1-line art renamed to crying1
shocked
1-line art renamed to shocked1
angel
1-line art renamed to angel1
sunglasses
1-line art renamed to sunglasses1
kitty
1-line art renamed to kitty1
snowman
1-line art renamed to snowman1
barcode
1-line art renamed to barcode1
cigaret
1-line art renamed to cigarette3
cigarette
1-line art renamed to cigarette2
headphone
1-line art renamed to headphone1
rock on
1-line art renamed to rock on1
boom box
1-line art renamed to boombox1
love in my eye
1-line art renamed to love in my eye1
CONTRIBUTING.md
modifiedTEST_FILTERED_FONTS
renamed to NON_ASCII_FONTS
RANDOM_FILTERED_FONTS
and NON_ASCII_FONTS
lists optimizedREADME.md
modifiedappveyor.yml
modifiedINSTALL.md
modifiedwizard
mode modifiedgun
1-line art renamed to gun1
knife
1-line art renamed to knife1
loading
1-line art renamed to loading2
bat
1-line art renamed to bat1
mouse
1-line art renamed to mouse1
needle
1-line art renamed to needle2
snail
1-line art renamed to snail1
american money
1-line art renamed to american money1
cassette
1-line art renamed to cassette1
FONT_NAMES
variableART_NAMES
variableget_font_dic
functionfont_check.py
modifiedfont_wizard.py
modifiedCONTRIBUTING.md
modifiedinstall.sh
autopep8.sh
test.sh
moved to .travis
folderfont_wizard.py
updatedfont_check.py
updatedtsave
function bugs fixedaprint
and tprint
functions modifiedoverwrite
parameter added to tsave
and set_default
functionsREADME.md
modifiedCONTRIBUTING.md
modified__version__
variablefont_wizard.py
VERSION
variable renamed to ART_VERSION
text_dic3.py
ISSUE_TEMPLATE.md
modifiedCONTRIBUTING.md
modifieddev-requirements.txt
modifiedmix
modefont_check.py
README.md
modifiedindirect_font
function modifiedtext2art
function support of \n
rnd-na
modetprint
function modifiedtsave
function modifiedREADME.md
modifiedrandom
mode modifiedtest2.py
font_check.py
test_mode
parameter added to font_list
functionall
flag bug fixed__main__.py
modifiedart_param.py
pydocstyle
testtest_mode
parameter removed from font_list
functionREADME.md
modifiedart
function typo-tolerance threshold modifiedCODE_OF_CONDUCT.md
PULL_REQUEST_TEMPLATE.md
ISSUE_TEMPLATE.md
vulture
testbandit
testREADME.md
modifiedCONTRIBUTING.md
modifiedfont_map
renamed to FONT_MAP
font_counter
renamed to FONT_COUNTER
art_counter
renamed to ART_COUNTER
art_param.py
wizard
mode.coveragerc
version_check.py
README.md
modified.travis.yml
modifiedfont_size_splitter
function thresholds fixedrnd-small
modernd-medium
modernd-large
modernd-xlarge
modeREADME.md
modifiedart_profile.py
B1FF
font bug fixedICL-1900
font bug fixedAK-47
1-line art bug fixedI kill you
1-line art bug fixedtestcov
flagrequirements.txt
modifiedINSTALL.md
modifiedtest
flag modifieddev-requirements.txt
Python 3.7
added to .travis.yml
& appveyor.yml
font_list
modifiedREADME.md
modifiedINSTALL.md
modifiedrequirements.txt
modifiedset_default
functionrandart
functionsetuptools
removed from requirements.txt
OSX
env added to .travis.yml
text2art
bug in OSX fixedcar race
1-line art fixedart
flaglist
flagrandom
1-line art modetext2art
random range fixedREADME.md
modifiedaprint_test
function renamed to art_list
setup.py
modifiedrandom
font modeREADME.md
modifiedCHANGELOG.md
modifiedREADME.md
modifiedMANIFEST.in
modifiedINSTALL.md
modifiedCHANGELOG.md
README.md
modifiedtsave
function extension bug fixedtext2art
response bug fixed ("\r\n")setup.py
modifiedall
flagchr_ignore
flagFAQs
ASCII Art Library For Python
We found that art demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.