OmniGraffle Stencil generator
Tool to create OmniGraffle stencils from SVG icons.
Features:
- create multiple sheets by directory
- parametrize object magnets
- filter images and format icon names
Idea based on script from AWS-OmniGraffle-Stencils
Usage
Requires Python 3.8+.
Install:
pip3 install omnigraffle-stencil
Run:
omnigraffle-stencil --help
to see all options:
usage: omnigraffle-stencil [-h] [--svg-dir SVG_DIR] [--stencil-file STENCIL_FILE] [--filename-includes [FILENAME_INCLUDES [FILENAME_INCLUDES ...]]] [--filename-excludes [FILENAME_EXCLUDES [FILENAME_EXCLUDES ...]]]
[--stencil-name-remove [STENCIL_NAME_REMOVE [STENCIL_NAME_REMOVE ...]]] [--no-vertex-magnets] [--side-magnets SIDE_MAGNETS] [--text-output]
Convert SVG files into OmniGraffle stencil
optional arguments:
-h, --help show this help message and exit
--svg-dir SVG_DIR svg files directory path (default: ./svg)
--stencil-file STENCIL_FILE
name of output stencil file (default: output.gstencil)
--filename-includes [FILENAME_INCLUDES [FILENAME_INCLUDES ...]]
strings to filter image file name by, taking only those which contains them all
--filename-excludes [FILENAME_EXCLUDES [FILENAME_EXCLUDES ...]]
strings to filter image file name by, taking only those which do not contain any of them
--stencil-name-remove [STENCIL_NAME_REMOVE [STENCIL_NAME_REMOVE ...]]
strings to be removed from image file name when creating stencil name (default: . - _)
--no-vertex-magnets don't create magnets on vertices (NE, NW, SE, SW)
--side-magnets SIDE_MAGNETS
number of magnets for each side (default: 5)
--text-output write OmniGraffle data file as text instead of binary
Input files are taken from the given location (./svg by default)
and should be grouped into directories.
Every directory will be parsed to a separate canvas in output stencil.
SVG directories structure example:
svg/
├── Group 1/
│ ├── icon1.svg
│ ├── icon2.svg
│ ├── icon3.svg
└── Group 2/
├── icon4.svg
└── icon5.svg
AWS Architecture Icons example
To generate icons from AWS Architecture Icons download SVG zip file (example: AWS-Architecture-Assets-For-Light-and-Dark-BG_20200911) and unpack it.
Run script with options:
omnigraffle-stencil \
--svg-dir "AWS-Architecture-Assets-For-Light-and-Dark-BG_20200911/AWS-Architecture-Service-Icons_20200911" \
--stencil-file AWS_20200911_Services.gstencil \
--filename-includes _48 \
--stencil-name-remove Arch_ _48 . - _ \
--group-name-remove Arch_ . - _
Output stencil will be created as AWS_20200911_Services.gstencil.
Check out the AWS stencil in Stenciltown - it contains all Service and Resource icons.
Development
Requires Python 3.8+ and Poetry.
Install dependencies in virtual env:
poetry shell
poetry install
Troubleshooting installing pillow library on MacOS:
https://akrabat.com/installing-pillow-on-macos-10-15-calatalina/
Get virtual env path for the IDE:
poetry env info -p
Run script:
poetry run omnigraffle-stencil
Publishing
Build and publish package:
poetry build
poetry publish
Metadata
Release files for omnigraffle-stencil 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| omnigraffle-stencil-1.1.0.tar.gz | 9.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| omnigraffle_stencil-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.1 kB
Release files / omnigraffle-stencil-1.1.0.tar.gz
| Download URL | omnigraffle-stencil-1.1.0.tar.gz |
|---|---|
| Size | 9.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7666d8117b47834956b99a302eab15e85eda707e758947384c5ec32e1e310a39
|
|
BLAKE2b-256 checksum How to use checksums |
ae7b16cdde415c9d2e102ae945b590fc7aeac3d6f13920d29cd7cfec068454ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.4 CPython/3.9.1 Darwin/19.6.0
|
Release files / omnigraffle_stencil-1.1.0-py3-none-any.whl
| Download URL | omnigraffle_stencil-1.1.0-py3-none-any.whl |
|---|---|
| Size | 10.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e7af519a27f74aa836ae69a0f82d5f741cc65d3ceece5ccfd1563dfd0c49825e
|
|
BLAKE2b-256 checksum How to use checksums |
faa4f008d4fd7e94be83dfb939fa96bca14d6b750a6ac3de8942b2a7bcb7d5a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.4 CPython/3.9.1 Darwin/19.6.0
|
Security for omnigraffle-stencil 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.