{"id":19921481,"url":"https://github.com/pyapp-kit/pyconify","last_synced_at":"2025-10-05T06:58:51.643Z","repository":{"id":197122674,"uuid":"697576758","full_name":"pyapp-kit/pyconify","owner":"pyapp-kit","description":"Python wrapper for the Iconify API","archived":false,"fork":false,"pushed_at":"2025-09-08T19:47:06.000Z","size":98,"stargazers_count":6,"open_issues_count":4,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-25T00:32:13.693Z","etag":null,"topics":["icon-pack","iconify","icons"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pyapp-kit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-09-28T03:02:28.000Z","updated_at":"2025-08-20T05:36:10.000Z","dependencies_parsed_at":"2023-10-04T00:06:30.929Z","dependency_job_id":"1d9c5e2b-451a-43d3-ae3d-87b508b59035","html_url":"https://github.com/pyapp-kit/pyconify","commit_stats":null,"previous_names":["pyapp-kit/pyconify"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/pyapp-kit/pyconify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyapp-kit%2Fpyconify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyapp-kit%2Fpyconify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyapp-kit%2Fpyconify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyapp-kit%2Fpyconify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyapp-kit","download_url":"https://codeload.github.com/pyapp-kit/pyconify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyapp-kit%2Fpyconify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278420211,"owners_count":25983813,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["icon-pack","iconify","icons"],"created_at":"2024-11-12T22:07:43.701Z","updated_at":"2025-10-05T06:58:51.631Z","avatar_url":"https://github.com/pyapp-kit.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pyconify\n\n[![License](https://img.shields.io/pypi/l/pyconify.svg?color=green)](https://github.com/pyapp-kit/pyconify/raw/main/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/pyconify.svg?color=green)](https://pypi.org/project/pyconify)\n[![Conda](https://img.shields.io/conda/vn/conda-forge/pyconify)](https://github.com/conda-forge/pyconify-feedstock)\n[![Python Version](https://img.shields.io/pypi/pyversions/pyconify.svg?color=green)](https://python.org)\n[![CI](https://github.com/pyapp-kit/pyconify/actions/workflows/ci.yml/badge.svg)](https://github.com/pyapp-kit/pyconify/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/pyapp-kit/pyconify/branch/main/graph/badge.svg)](https://codecov.io/gh/pyapp-kit/pyconify)\n\nPython wrapper for the [Iconify](https://github.com/iconify) API.\n\nIconify is a versatile icon framework that includes 100+ icon sets with more\nthan 100,000 icons from FontAwesome, Material Design Icons, DashIcons, Feather\nIcons, EmojiOne, Noto Emoji and many other open source icon sets.\n\nSearch for icons at: https://icon-sets.iconify.design\n\n## Installation\n\n```sh\npip install pyconify\n# or\nconda install -c conda-forge pyconify\n```\n\n## Usage\n\n```python\nimport pyconify\n\n# Info on available collections\ncollections = pyconify.collections()\n\n# Info on specific collection(s)\ndetails = pyconify.collection(\"fa\", \"fa-brands\")\n\n# Search for icons\nhits = pyconify.search(\"python\")\n\n# Get icon data\ndata = pyconify.icon_data(\"fa-brands\", \"python\")\n\n# Get SVG\nsvg = pyconify.svg(\"fa-brands\", \"python\")\n\n# Get path to SVG on disk\n# will either return cached version, or write to temp file\nfile_name = pyconify.svg_path(\"fa-brands\", \"python\")\n\n# Get CSS\ncss = pyconify.css(\"fa-brands\", \"python\")\n\n# Keywords\npyconify.keywords('home')\n\n# API version\npyconify.iconify_version()\n```\n\nSee details for each of these results in the [Iconify API documentation](https://iconify.design/docs/api/queries.html).\n\n### cache\n\nWhile the first fetch of any given SVG will require internet access,\npyconfiy caches svgs for faster retrieval and offline use. To\nsee or clear cache directory:\n\n```python\nimport pyconify\n\n# reveal location of cache\n# will be ~/.cache/pyconify on linux and macos\n# will be %LOCALAPPDATA%\\pyconify on windows\n# falls back to ~/.pyconify if none of the above are available\npyconify.get_cache_directory()\n\n# remove the cache directory (and all its contents)\npyconify.clear_cache()\n```\n\nIf you'd like to precache a number of svgs, the current recommendation\nis to use the `svg()` function:\n\n```python\nimport pyconify\n\nICONS_TO_STORE = {\"mdi:bell\", \"mdi:bell-off\", \"mdi:bell-outline\"}\nfor key in ICONS_TO_STORE:\n    pyconify.svg(key)\n```\n\nLater calls to `svg()` will use the cached values.\n\nTo specify a custom cache directory, set the `PYCONIFY_CACHE` environment\nvariable to your desired directory.\nTo disable caching altogether, set the `PYCONIFY_CACHE` environment variable to\n`false` or `0`.\n\n### freedesktop themes\n\n`pyconify` includes a convenience function to generate a directory of SVG files\nin the [freedesktop icon theme specification](https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html)\n\nIt takes a mapping of names from the [icon naming spec](https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html)\nto iconify keys (e.g. `\"prefix:icon\"`). Icons will be placed in the\nappropriate freedesktop subdirectory based on the icon name. Unknown icons will be placed\nin the `other` subdirectory.\n\n```python\nfrom pyconify import freedesktop_theme\nfrom pyconify.api import svg\nicons = {\n    \"edit-copy\": \"ic:sharp-content-copy\",\n    \"edit-delete\": {\"key\": \"ic:sharp-delete\", \"color\": \"red\"},\n    \"weather-overcast\": \"ic:sharp-cloud\",\n    \"weather-clear\": \"ic:sharp-wb-sunny\",\n    \"bell\": \"bi:bell\",\n}\nfolder = freedesktop_theme(\n    \"mytheme\",\n    icons,\n    base_directory=\"~/Desktop/icons\",\n)\n```\n\nwould create\n\n```\n~/Desktop/icons/\n├── mytheme\n│   ├── actions\n│   │   ├── edit-copy.svg\n│   │   └── edit-delete.svg\n│   ├── status\n│   │   ├── weather-clear.svg\n│   │   └── weather-overcast.svg\n│   └── other\n│       └── bell.svg\n└── index.theme\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyapp-kit%2Fpyconify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpyapp-kit%2Fpyconify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyapp-kit%2Fpyconify/lists"}