# π¨ Font Analyzer
Font Analyzer is a Python CLI and API for automated font discovery, analysis, and compliance validation from websites and local files. It provides a unified workflow for font metadata extraction, policy-based validation, and reporting, making it ideal for compliance, licensing, and security use cases.
[](https://docker.com)
[](LICENSE)
[](https://github.com/aykut-canturk/font-analyzer)
## π Project Highlights
- π Website font discovery and download
- π Extract font family, style, license, and more
- β
Validate fonts against custom regex-based policies (whitelist)
- π§ Supports TTF, OTF, WOFF, WOFF2, and other formats
- π Color-coded compliance reports
- π Structured logging and flexible configuration
- π³ Docker & Docker Compose support
## π οΈ The Font Analysis Pipeline
Font Analyzer follows a typical pipeline for font compliance:
1. π Discover fonts from websites or local files
2. π Extract and analyze font metadata
3. β
Validate fonts against whitelist policies
4. π Generate compliance reports
5. βοΈ Integrate with CI/CD or enterprise workflows
## π¦ Setup
Install the latest release from PyPI:
```sh
pip install font-analyzer
```
Or for development:
```sh
git clone https://github.com/aykut-canturk/font-analyzer.git
cd font-analyzer
pip install -e .
```
## π Usage
Analyze fonts from a website:
```sh
font-analyzer --url "https://github.com"
```
Analyze a local font file:
```sh
font-analyzer --font_path "/path/to/fontfile"
```
Use a custom whitelist:
```sh
font-analyzer --url "https://github.com" --whitelist_path "/path/to/whitelist.yaml"
```
Disable SSL verification (for testing or non-SSL endpoints):
```sh
font-analyzer --url "https://github.com" --verify-ssl 0
```
## βοΈ Configuration
Environment variables:
- `URL`: Website to analyze
- `FONT_PATH`: Path to font file
- `WHITELIST_PATH`: Path to whitelist YAML
- `VERIFY_SSL`: Set to `0` to disable SSL verification
## π¨βπ» Development
To release a new version:
1. βοΈ Update the version in `src/font_analyzer/__init__.py`
2. β¬οΈ Commit and push changes
3. π·οΈ Tag the release: `git tag v<version>`
4. π Push tags: `git push --tags`
5. β
Verify build and release on PyPI
## π License
MIT License
## π Links
- [GitHub](https://github.com/aykut-canturk/font-analyzer)
- [Bug Reports](https://github.com/aykut-canturk/font-analyzer/issues)
Raw data
{
"_id": null,
"home_page": null,
"name": "font-analyzer",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8.1",
"maintainer_email": null,
"keywords": "font, metadata, analysis, web-scraping, typography",
"author": null,
"author_email": "Aykut Cant\u00fcrk <canturk.aykut@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/b0/30/12969c8ff57f8428142227bcac9a96f474bd93c23e51400e14d6a9f59571/font_analyzer-0.0.1.tar.gz",
"platform": null,
"description": "# \ud83c\udfa8 Font Analyzer\r\n\r\nFont Analyzer is a Python CLI and API for automated font discovery, analysis, and compliance validation from websites and local files. It provides a unified workflow for font metadata extraction, policy-based validation, and reporting, making it ideal for compliance, licensing, and security use cases.\r\n\r\n[](https://docker.com)\r\n[](LICENSE)\r\n[](https://github.com/aykut-canturk/font-analyzer)\r\n\r\n## \ud83d\ude80 Project Highlights\r\n\r\n- \ud83c\udf10 Website font discovery and download\r\n- \ud83d\udccb Extract font family, style, license, and more\r\n- \u2705 Validate fonts against custom regex-based policies (whitelist)\r\n- \ud83d\udd27 Supports TTF, OTF, WOFF, WOFF2, and other formats\r\n- \ud83d\udcca Color-coded compliance reports\r\n- \ud83d\udcdd Structured logging and flexible configuration\r\n- \ud83d\udc33 Docker & Docker Compose support\r\n\r\n## \ud83d\udee0\ufe0f The Font Analysis Pipeline\r\n\r\nFont Analyzer follows a typical pipeline for font compliance:\r\n\r\n1. \ud83c\udf10 Discover fonts from websites or local files\r\n2. \ud83d\udccb Extract and analyze font metadata\r\n3. \u2705 Validate fonts against whitelist policies\r\n4. \ud83d\udcca Generate compliance reports\r\n5. \u2699\ufe0f Integrate with CI/CD or enterprise workflows\r\n\r\n## \ud83d\udce6 Setup\r\n\r\nInstall the latest release from PyPI:\r\n\r\n```sh\r\npip install font-analyzer\r\n```\r\n\r\nOr for development:\r\n\r\n```sh\r\ngit clone https://github.com/aykut-canturk/font-analyzer.git\r\ncd font-analyzer\r\npip install -e .\r\n```\r\n\r\n## \ud83d\ude80 Usage\r\n\r\nAnalyze fonts from a website:\r\n\r\n```sh\r\nfont-analyzer --url \"https://github.com\"\r\n```\r\n\r\nAnalyze a local font file:\r\n\r\n```sh\r\nfont-analyzer --font_path \"/path/to/fontfile\"\r\n```\r\n\r\nUse a custom whitelist:\r\n\r\n```sh\r\nfont-analyzer --url \"https://github.com\" --whitelist_path \"/path/to/whitelist.yaml\"\r\n```\r\n\r\nDisable SSL verification (for testing or non-SSL endpoints):\r\n\r\n```sh\r\nfont-analyzer --url \"https://github.com\" --verify-ssl 0\r\n```\r\n\r\n## \u2699\ufe0f Configuration\r\n\r\nEnvironment variables:\r\n- `URL`: Website to analyze\r\n- `FONT_PATH`: Path to font file\r\n- `WHITELIST_PATH`: Path to whitelist YAML\r\n- `VERIFY_SSL`: Set to `0` to disable SSL verification\r\n\r\n## \ud83d\udc68\u200d\ud83d\udcbb Development\r\n\r\nTo release a new version:\r\n\r\n1. \u270f\ufe0f Update the version in `src/font_analyzer/__init__.py`\r\n2. \u2b06\ufe0f Commit and push changes\r\n3. \ud83c\udff7\ufe0f Tag the release: `git tag v<version>`\r\n4. \ud83d\ude80 Push tags: `git push --tags`\r\n5. \u2705 Verify build and release on PyPI\r\n\r\n## \ud83d\udcc4 License\r\n\r\nMIT License\r\n\r\n## \ud83d\udd17 Links\r\n\r\n- [GitHub](https://github.com/aykut-canturk/font-analyzer)\r\n- [Bug Reports](https://github.com/aykut-canturk/font-analyzer/issues)\r\n",
"bugtrack_url": null,
"license": null,
"summary": "A tool for detecting and analyzing font metadata from websites and files",
"version": "0.0.1",
"project_urls": {
"Homepage": "https://github.com/aykut-canturk/font-analyzer",
"Issues": "https://github.com/aykut-canturk/font-analyzer/issues",
"Repository": "https://github.com/aykut-canturk/font-analyzer"
},
"split_keywords": [
"font",
" metadata",
" analysis",
" web-scraping",
" typography"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "f3534442c2f4ebe92df686e0ccb9064f2c487264abd08c18217f2d941dbf6e0e",
"md5": "6ff1eacbef659dc4a7fb0810065e91fc",
"sha256": "2765c830bfb40678cfa1a9fbd0c7c3a72db695f538e95186af51e56203f29518"
},
"downloads": -1,
"filename": "font_analyzer-0.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6ff1eacbef659dc4a7fb0810065e91fc",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8.1",
"size": 17809,
"upload_time": "2025-07-28T08:33:15",
"upload_time_iso_8601": "2025-07-28T08:33:15.566942Z",
"url": "https://files.pythonhosted.org/packages/f3/53/4442c2f4ebe92df686e0ccb9064f2c487264abd08c18217f2d941dbf6e0e/font_analyzer-0.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b03012969c8ff57f8428142227bcac9a96f474bd93c23e51400e14d6a9f59571",
"md5": "e8179d69b0ab87c7510d1940ec24c5fd",
"sha256": "7e96020e3752f837a6c2ff49314fe9c4f1e0a4f7dd578f8b6d26c5409976715a"
},
"downloads": -1,
"filename": "font_analyzer-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "e8179d69b0ab87c7510d1940ec24c5fd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8.1",
"size": 110966,
"upload_time": "2025-07-28T08:33:17",
"upload_time_iso_8601": "2025-07-28T08:33:17.135730Z",
"url": "https://files.pythonhosted.org/packages/b0/30/12969c8ff57f8428142227bcac9a96f474bd93c23e51400e14d6a9f59571/font_analyzer-0.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-28 08:33:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "aykut-canturk",
"github_project": "font-analyzer",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "font-analyzer"
}