宝可梦的ASCII数据库...在Python中!
项目描述
宝可梦
观看宝可梦ASCII的诞生!
这是一个用于生成宝可梦ASCII艺术的模块,包括宝可梦图鉴中890只宝可梦,跨越8代。该包包含生成与标识符(如电子邮件地址)关联的“gravatars”的功能,以及搜索和探索数据库的功能。该库包含一个数据库版本,由pokemon/make_db.py生成,可以通过重新运行脚本进行更新。ASCII艺术的选择是生成适用于命令行工具的宝可梦图像或头像。
$ pokemon
usage: pokemon [-h] [--avatar AVATAR] [--pokemon POKEMON] [--message MESSAGE]
[--catch] [--list]
generate pokemon ascii art and avatars
optional arguments:
-h, --help show this help message and exit
--avatar AVATAR generate a pokemon avatar for some unique id.
--pokemon POKEMON generate ascii for a particular pokemon (by name)
--message MESSAGE add a custom message to your ascii!
--catch catch a random pokemon!
--list list pokemon available
安装
您可以直接通过pip安装
$ pip install pokemon
或者对于开发版本,克隆仓库并手动安装
git clone https://github.com/vsoch/pokemon
cd pokemon
pip install .
生成头像
“头像”是与某些唯一ID一致关联的图像。在我们的例子中,这是一个ASCII头像。例如,
为此,我取字符串的哈希值,然后使用模运算来获取该哈希值除以数据库中宝可梦数量的余数。这意味着,由于数据库没有变化,并且宝可梦在1到721的范围内具有唯一的ID,所以对于某些唯一的ID(如电子邮件),您应该始终得到相同的图像。
注意数据库在版本0.34和版本0.35之间已更新,因此您将根据所使用的版本得到不同的头像。每个版本都提供了Docker标签和pip安装,建议使用版本0.35与Python 3一起使用。
$ pokemon --avatar vsoch
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@?:::::::::::::::+.+.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@*?%:::::::::*::****#SSSSS%.**S+@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@*???:::::::*********#...+****++++S:@@@@@@@@@@@@@@@@@@
@@@@@@@::SSS............S+.*....*****?%S+#@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@.?SS.S.....S?%%%%%%%%..**+....?@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@..%???????#%%%%%%%....**++.....?@@@@@@@@@@@@
@@@@@@@@@@@@@@..+++%????????????%%%%%%*.......%++%@@@@@@@@@@
@@@@@@@@@@@@S.+++++S%+++SS%..????%%%?..............@@@@@@@@@
@@@@@@@@@@@%++++S+S++++.......?@%%%%%......SSSSSS:@@@@@@@@@@
@@@@@@@@@?.++.+++++%**.#.....?.%%%%%,@@@@@@@@@@@#.%@@@@@@@@@
@@@@@@@?.*.....+.**.*.....%.....+++%@@#+++S.%?+++.%@@@@@@@@@
@@@@@#***......%:.**++%........++++#.#+++++.++++.S@@@@@@@@@@
@@@@,+%.......?+++++......#....#.**+++#@@%++++.SS@@@@@@@@@@@
@@@:+?+...?..S.......S%%%...S+++::.+++@%++++.?.#@@@@@@@@@@@@
@@@@@@@,?...S%%*@@.?%++SS.S++.+S...?#.+++S++..@@@@@@@@@@@@@@
@@@@@@@@@@@@@@*...?.@SS+.SS....?....#++%:+..S@@@@@@@@@@@@@@@
@@@@@@@@@@?+S.%?#+@@@@@S...#???%%%S@+:::...@@@@@@@@@@@@@@@@@
@@@@@@@++S....#@@@@@@@@@@@@@@@S.%...:::+#...@@@@@@@@@@@@@@@@
@@@@#++.....S@@@@@@@@@@@@@.S..++..%?:...+?...@@@@@@@@@@@@@@@
@@@.......?@@@@@@@@@@@@+.....+++......#.++....*@@@@@@@@@@@@@
@@.*+...@@@@@@@@@@@@S.....?.S+..S....++...S....@@@@@@@@@@@@@
@+*++@@@@@@@@@@@@,?........@:%.*SS?+++++..+.....%@@@@@@@@@@@
@:+%@@@@@@@@@@@:?........?@@@#:::.+++++#...+.....#@@@@@@@@@@
@S@@@@@@@@@@@@+.........#@@@@@@+..++++....+......S.,@@@@@@@@
@@@@@@@@@@@@@S%##.....S@@@@@@@@@*.??.......#@%...??.#@@@@@@@
@@@@@@@@@@@@@S%@....?S@@@@@@@@@@@@@%.?...?.@@@.S+.....@@@@@@
@@@@@@@@@@@@@@@@S.....?@@@@@@@@@@@@@@@.%S.?@@@@+++S....@@@@@
@@@@@@@@@@@@@@@@+......@@@@@@@@@@@@@@@@@@@@@@@@.+++S....@@@@
@@@@@@@@@@@@@@@.%......@@@@@@@@@@@@@@@@@@@@@@@@@++++......@@
@@@@@@@@@@@@@@.%......S@@@@@@@@@@@@@@@@@@@@@@@@@++++......@@
@@@@@@@@@@@@@S.#.....++@@@@@@@@@@@@@@@@@@@@@@@@@..+..+....S@
@@@@@@@@@@@.::++S.@@?+?@@@@@@@@@@@@@@@@@@@@@@@@@+...#S+?..SS
@@@@@@@@@@@@,@,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+..*++,@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.::+@@
vsoch
您也可以使用命令行上的函数
from pokemon.skills import get_avatar
# Just get the string!
avatar = get_avatar("vsoch", print_screen=False)
print(avatar)
# Remove the name at the bottom, print to screen (default)
avatar = get_avatar("vsoch", include_name=False)
列出宝可梦
想要在数据库中查看完整的宝可梦列表吗?
pokemon --list
Slugma
Machop
Druddigon
Magby
Clawitzer
Growlithe
Empoleon
Dusknoir
Rhydon
Krookodile
Hoppip
Swellow
Oddish
Scrafty
Boldore
Pancham
Beheeyem
Honedge
...
Jumpluff
Rotom
Frillish
Lapras
Clamperl
Wingull
Vespiquen
Keldeo
Mareep
Phantump
Medicham
Shuckle
Lickitung
Chingling
您可以用它来解析一个函数。这里我们展示了简单的循环来打印宝可梦的名字,但您可以更有创意!
for gotcha in $(pokemon --list)
do
echo $gotcha
done
随机选择一个宝可梦
您可能只想随机获取一个宝可梦!使用 --catch
命令行参数来做到这一点!
pokemon --catch
@%,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
.????.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
.???????S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
:?????????#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
*?????????????*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@???????#?????###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,*.??#
@?????,##,S???#####@@@@@@@@@@@@@@@@@@@@@@@@@@S##????????????
@?????*,,,,,,########@@@@@@@@@@@@@@@@@:###????????????????#@
@##????,,,,,,,,,#####@@@@@@@@@@@@@.######?????#?:#????????@@
@####?#,,,,,,,,,,,##@@@@@@@@@@@@@@#######*,,,,,*##+?????+@@@
@######,,,,,,,,,,,S@@@@@@@@@@@@@@#.,,,,,,,,,,,,,,:?####@@@@@
@######,,,,,,,,,,%@@,S.S.,@@@@@@@,,,,,,,,,,,,,,,######@@@@@@
@@#####,,,,,,,,.,,,,,,,,,,,,,,,*#,,,,,,,,,,,,,.#####:@@@@@@@
@@@@@@@@@@.#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,######@@@@@@@@@
@@@@@@@@@,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+######@@@@@@@@@@
@@@@@@@@%,,,,,++:,,,,,,,,,,,,,,,,,,,,,@@:.######:@@@@@@@@@@@
@@@@@@@:,,,:##@@@#,,,,,,,,,,,,?@S#,,,,,,@@@@@@@@@@@@@@@@@@@@
@@@@@@@?,,,#######,,,,,,,,,,,#.@:##,,,:?@@@@@@@@@@@@@@@@@@@@
@@@@@@@.,,S,??%?*,,,,,,,,,,,,####?%+,::%@@@@@@@@@@@@@@@@@@@@
@@@@@@@@?..*+,,,,,,*,,,,,,,,,,,+#S,::::*@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@%..*,,,,,,,,,,,,,,,,,,,:.*...%@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@.**::*::::::,,:::::::+.....@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@.@@@@?:**:::*::::::::::*...@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@?,,,,,,,,,:,##S::::**:::S#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@.,,,,,,:S#?##?########:#****#,@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@,%:*%,??#,,,,:*S##**:..****:,.*@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@+,,,,,,,,,,,,,,,,,,*...*:,.,@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@+,,,,,,,,,,,,,,,,,,?@@@@@*#?@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@*,,,,,,,,,,,,,,,,,,.@#########?@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@.*:,,,,,,,,,,,,,,:.##%,?#####????:@@@@@@@@@@@@@
@@@@@@@@@@@@@@?.....*******....S@@@@@@:##?????@@@@@@@@@@@@@@
@@@@@@@@@@@@@@S.+..********...#%@@@@@@@@@##,@@@@@@@@@@@@@@@@
@@@@@@@@@@@#*,,,,*.#@@@@@@@..*:,,*S@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@+@,%,,,#@@@@@@@@@@,S,,,%,,:@@@@@@@@@@@@@@@@@@@@@@@
Pichu
您也可以使用 --message
参数为您的捕获添加自定义消息!
pokemon --catch --message "You got me!"
@@@@@@@@@*.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@...+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
:..+,@@+.+++%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@..++++S++++++.?...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@:S.S+SSS.S%++.+++@@@@@@@@@@+.%.@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@:SSSSSSSSSS,@@@@@@@,:,:.SS+.....+.@@@@@@@@@@@@@@@@@@@@@@
@@@@,:%SS++SS.,.%,:,S,,,,+..%.........S.@@@@@@@@@@@@@@@@@@@@
@@@@@,:*...:,,+,.,,,,,,,*%%%++++..+++SSS+@@@@@@@@@@@@@@@@@@@
@@@@@@,,.....%:,,,:.:.,:.%%.SSSS++SS+%+S%,+@@@@@@@@@@@@@@@@@
@@@@@@@*.....S...***+,,,%..%++,?SSS.%.%%%:,.,@@@@@@@@@@@@@@@
@@@@@@@@,+**........,,,,....++S@,+%..#..%,,S..@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@*..:,,,,,%..%++S%%.%%.S%%,,*+.+@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@S,,,,,,,,,%%%..SS..%?%%%,,,S+...@@@@@@@@@@@@
@@@@@@@@@@@@@@@@S.:::::::::%.%%S...%%%%:::*.....**@@@@@@@@@@
@@@@@@@@@@@@@@@@.%%..:::::::S%%.?%%%%%:::....**,S,,:@@@@@@@@
@@@@@@@@@@@@@@:::*%%%%?..*:::,.%%%%.,:*.%@@.*:,,,:,,S@....@@
@@@@@@@@@@@@@:,:,::*.?%%%%%%?+*%%?.?%%%%%+@@,,,,,,,.++%++@@@
@@@@@@@@@@@@@@*,,,,,**...*%%%%%%%%%%?++++++.@,,,,,SS+SS++@@@
@@@@@@@@@@@@@,,.,S,,,,:....***%%?%++++++++++.@.,,+SSSSS.S+@@
@@@@@@@@@@@@,,SSSS..:.%,:*..?%%??%%++++++.+S+@@@.S..%S.%.S++
@@@@@@@@@@@,,S.....S::*.@@@%%%%@?%%#+++++%%%?S@@@@@.%.,@@...
@@@@@@@@@@@:,,?.%%%::::@@@...%.@?.%.++++.+%%%%.@@@@..++@@@@@
@@@@@@@@@@S,.%%.:,,,,,S@@@@@.?@@+SS,S..........@@@@@,@@@@@@@
@@@@@@@@@@@+S...++.,,:@@@@@@@@@@@@@@@%....SSS+SS@@@@@@@@@@@@
You got me!
您也可以在您的 Python 应用程序中捕获宝可梦。如果您将要生成很多,建议一次性加载数据库并提供给函数,否则每次都会加载。
from pokemon.master import catch_em_all, get_pokemon
pokemons = catch_em_all()
catch = get_pokemon(pokemons=pokemons)
捕获是一个字典,键为宝可梦 ID,值为另一个包含各种元数据(高度、重量、日语、链接、ASCII 等)的字典。
更新数据库
该数据库是通过运行脚本 make_db.py 生成的,您可以通过自己运行它来更新它,如果将来索引中添加了新的宝可梦。
git clone https://github.com/vsoch/pokemon
cd pokemon
cd scripts
pip install -r requirements.txt
python make_db.py
然后移动您的旧数据库(您也可以这样做以保留它,以防您不想保留更改)
mv pokemon/database dbbackup
mv ./database pokemon/database
文件 pokemons.json 将保存于 pokemon/databases 下。然后,像往常一样安装。
python setup.py install
Docker
您还可以使用 Docker 镜像,它提供了各种函数和 科学文件系统 应用。0.35 标签是用 Python 2 开发的,0.35 标签是 Python 3 及以后的版本(带有更新后的数据库)。
我能做什么?
docker run vanessa/pokemon apps
list
catch
avatar
给我我的头像!
docker run vanessa/pokemon run avatar vsoch
捕获一个随机宝可梦
docker run vanessa/pokemon run catch
我能捕获哪种宝可梦?
docker run vanessa/pokemon run list
捕获我 Venusaur!
docker run vanessa/pokemon run catch Venusaur
您也可以在本地构建镜像
docker build -t vanessa/pokemon .
Singularity
我们还可以使用 Singularity 容器来做同样的事情!
sudo singularity build pokemons Singularity
我能做什么?
./pokemons apps
avatar
catch
list
给我我的头像!
./pokemons run avatar vsoch
捕获一个随机宝可梦
./pokemons run catch
我能捕获哪些宝可梦?
./pokemons list
...
Phantump
Trevenant
Pumpkaboo
Gourgeist
Bergmite
Avalugg
Noibat
Noivern
Xerneas
Yveltal
Zygarde
Diancie
Hoopa
Volcanion
捕获特定的宝可梦
./pokemons run catch Pikachu
[catch] executing /bin/bash /scif/apps/catch/scif/runscript Pikachu
@@@@@@@@@@@@@.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@,??@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@.###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@,##:,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*?@@
@@@@@@@@@#::::@@@@@@@@@@@@@@@@@@@@@@@@@,*.???%@@@@@@@@*,,,@@
@@@@@@@@::,,::@@@@@@@@@@@@@@@@@@%:,,:#####??,@@@@@@*,,,,,,:@
@@@@@@@@%:,,:.@@@@@@@@@@@@@@.:::::::.#####@@@@@@@.::,,,,,::@
@@@@@@@@%::::.,,,,:,:%@@:,:::::::::S###@@@@@@@@%,:::::,::,:%
@@@@@@@@.S,,,,,,,,::::::::::::::::?@@@@@@@@@@?::::::::::::::
@@@@@@@:,,,,,,,:,#.#?::::::+.,@@@@@@@@@@@@@.::::::::::::::::
@@@@@,#:S,,:,::::*#.,:::::::*@@@@@@@@@@@@,::::::::::::::::+@
@@@@@:%S::::::*,,:::...+.::::S@@@@@@@@@@:::::::::::::::%@@@@
@@@@*.::::,SSSS%::::+++++:::::%@@@@@@@@:::::::::::::%@@@@@@@
@@@@@.+:,,::S%+S::::.+++:::::::,@@@@@@@@@:::*::::S@@@@@@@@@@
@@@@@@.S:::::.*.::::::::::::::::@@@@@@@@@,****%@@@@@@@@@@@@@
@@@@@@@@.:::::::::::::::*:,**::::,@@@@@@@@,***@@@@@@@@@@@@@@
@@@@,%,::::::::::::::::*.****::,:S%@@@@@@......@@@@@@@@@@@@@
,**::::,,,,,,:::::::::::+:**:::::,::@@?.....S@@@@@@@@@@@@@@@
%:*:,:::,,,,,,,,,,,::::::%::::::,,,::,@S..+@@@@@@@@@@@@@@@@@
@@@@@,S%+::*,:,,::,:,,,,::::::::::::::?@@%SS?@@@@@@@@@@@@@@@
@@@@@@@@@@@@.:,,,,:,,,,,,,:::::::::::::+SSSSS.@@@@@@@@@@@@@@
@@@@@@@@@@@@@:,,,:::::,::::,:::::::::::*?.@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@+,:,:,::::::::::,,::,::::**.SS@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@S,,:,,,,::::::::::::::::****@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@:::::::::****::::::*******S@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@**********.%..***********@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@,?+S%@@@@@@@@@@@@......@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@+..*@@@@@@@@@@@@@:+**@@@@@@@@@@@@@@@@@@@@
问题和更新
您想要不同的或更新的功能吗?请通过添加 问题 来联系我!我做这个是为了好玩,可能还会把它偷偷加入几个命令行应用程序中,到目前为止它很简单!希望您玩得开心! :D
项目详情
pokemon-0.36.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 20f95b9037b197bda02269547fe90c19689df96a2383e68097a44c279a6dc1ce |
|
MD5 | be8c2c48394481a5b8ce67f4353f090d |
|
BLAKE2b-256 | b542337c5a15dcf934649f1d4d659d3cf916ba9a2b5ad128d0e70aefa3338d7a |