Last updated:
0 purchases
pycture 0.1.0
pycture
A Python CLI for obtaining emojis as files and favicons.
Quickstart
Usage: pycture [OPTIONS] EMOJI
Get EMOJI as a file or favicon via its CLDR short name.
Use Unicode 9.0 and Emoji 3.0 as a reference.
Options:
-o, --output-dir DIRECTORY The path to the output directory.
[default: (current directory)]
-p, --pretty Pretty-print the SVG code.
-s, --source [Twemoji|OpenMoji]
The source of the emoji to obtain.
[default: Twemoji]
--version Show the version and exit.
--help Show this message and exit.
Tech Stack
Click (for the interface)
Requests (for HTTP requests)
defusedxml (for parsing XML/SVG data)
Packaging and Development
Poetry
Mypy
isort
Black
Flake8
flake8-bugbear
flake8-comprehensions
pep8-naming
flake8-builtins
Bandit
This CLI was created with Cookiecutter and the joaopalmeiro/cookiecutter-templates/python-cli project template.
Development
poetry install
poetry shell
Notes
click-contrib (a collection of third-party extensions).
click-man package (man pages).
click-help-colors package.
click-didyoumean package.
click_params package (extra types).
OpenMoji.
emoji package.
demoji package.
Twemoji.
Inflection package.
Unicode:
Full Emoji List.
Full Emoji Modifier Sequences.
Emoji Counts.
Emoji List, v13.0.
unicodedata (Python 3.6 -> Unicode 9.0).
Emoji Version 3.0 (this emoji version coincided with the release of Unicode 9.0).
cookiecutter-poetry (only the pyproject.toml file and no poetry.lock file).
cli.py or console.py.
Asyncio integration issue (Click).
asyncclick package (fork of Click).
XML vulnerabilities.
Bandit:
B405 complains about any xml.etree.ElementTree import, not just parse-related ones (open) issue.
from xml.etree.ElementTree import Element Flagged (open) issue.
Error message refers to "defusedxml.defuse_stdlib()" but calling that does not silence bandit (open) issue.
defusedxml provides alternatives for parsing-related functions.
Shell completion (for commands, options, and choice values):
Generate the activation script: _PYCTURE_COMPLETE=source_zsh pycture > pycture-complete.sh.
In .bashrc or .zshrc, source the script: . /path/to/pycture-complete.sh.
Alternative: eval "$(_PYCTURE_COMPLETE=source_zsh pycture)".
aiohttp package (vs. Requests):
"(...) you can picture the session object as a user starting and closing a browser: it wouldn't make sense to do that every time you want to load a new tab." (source)
# aiohttp
async with aiohttp.ClientSession() as session:
async with session.get("http://python.org") as response:
print(await response.text())
# vs.
# Requests
response = requests.get("http://python.org")
print(response.text)
# or
with requests.Session() as session:
response = session.get("http://python.org")
print(response.text)
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.