pycture 0.1.0

Creator: railscoder56

Last updated:

Add to Cart

Description:

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)

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.