Skip to main content

iconify for python. Universal icon framework

Project description

pyconify

License PyPI Conda Python Version CI codecov

Python wrapper for the Iconify API.

Iconify is a versatile icon framework that includes 100+ icon sets with more than 100,000 icons from FontAwesome, Material Design Icons, DashIcons, Feather Icons, EmojiOne, Noto Emoji and many other open source icon sets.

Search for icons at: https://icon-sets.iconify.design

Installation

pip install pyconify
# or
conda install -c conda-forge pyconify

Usage

import pyconify

# Info on available collections
collections = pyconify.collections()

# Info on specific collection(s)
details = pyconify.collection("fa", "fa-brands")

# Search for icons
hits = pyconify.search("python")

# Get icon data
data = pyconify.icon_data("fa-brands", "python")

# Get SVG
svg = pyconify.svg("fa-brands", "python")

# Get path to SVG on disk
# will either return cached version, or write to temp file
file_name = pyconify.svg_path("fa-brands", "python")

# Get CSS
css = pyconify.css("fa-brands", "python")

# Keywords
pyconify.keywords('home')

# API version
pyconify.iconify_version()

See details for each of these results in the Iconify API documentation.

cache

While the first fetch of any given SVG will require internet access, pyconfiy caches svgs for faster retrieval and offline use. To see or clear cache directory:

import pyconify

# reveal location of cache
# will be ~/.cache/pyconify on linux and macos
# will be %LOCALAPPDATA%\pyconify on windows
# falls back to ~/.pyconify if none of the above are available
pyconify.get_cache_directory()

# remove the cache directory (and all its contents)
pyconify.clear_cache()

If you'd like to precache a number of svgs, the current recommendation is to use the svg() function:

import pyconify

import pyconify

ICONS_TO_STORE = {"mdi:bell", "mdi:bell-off", "mdi:bell-outline"}
for key in ICONS_TO_STORE:
    pyconify.svg(key)

Later calls to svg() will use the cached values.

To specify a custom cache directory, set the PYCONIFY_CACHE environment variable to your desired directory. To disable caching altogether, set the PYCONIFY_CACHE environment variable to false or 0.

freedesktop themes

pyconify includes a convenience function to generate a directory of SVG files in the freedesktop icon theme specification

It takes a mapping of names from the icon naming spec to iconify keys (e.g. "prefix:icon"). Icons will be placed in the appropriate freedesktop subdirectory based on the icon name. Unknown icons will be placed in the other subdirectory.

from pyconify import freedesktop_theme
from pyconify.api import svg
icons = {
    "edit-copy": "ic:sharp-content-copy",
    "edit-delete": {"key": "ic:sharp-delete", "color": "red"},
    "weather-overcast": "ic:sharp-cloud",
    "weather-clear": "ic:sharp-wb-sunny",
    "bell": "bi:bell",
}
folder = freedesktop_theme(
    "mytheme",
    icons,
    base_directory="~/Desktop/icons",
)

would create

~/Desktop/icons/
├── mytheme
│   ├── actions
│   │   ├── edit-copy.svg
│   │   └── edit-delete.svg
│   ├── status
│   │   ├── weather-clear.svg
│   │   └── weather-overcast.svg
│   └── other
│       └── bell.svg
└── index.theme

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyconify-0.1.6.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

pyconify-0.1.6-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

File details

Details for the file pyconify-0.1.6.tar.gz.

File metadata

  • Download URL: pyconify-0.1.6.tar.gz
  • Upload date:
  • Size: 22.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for pyconify-0.1.6.tar.gz
Algorithm Hash digest
SHA256 25272f7a29965f32ee698c9da6aab8bbbeb0756ca3bfeadd3d9effab689d239d
MD5 ce6eb4817890cc76a905b904e95fe630
BLAKE2b-256 dd218b703dd994e4833dcfa611536485ce2096c215aa74cbf610c2ff51a7dea8

See more details on using hashes here.

File details

Details for the file pyconify-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: pyconify-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 18.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for pyconify-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 63040836b344ec351c05531231609edd30425c145ff68478b6250f33135b8fc5
MD5 090788ac307cefb598d50847875af487
BLAKE2b-256 34fcbe68d2acc43d22dbfe6d52d573dc83da14e4fd45821acaf42992e8803682

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page