This is a simple API wrapper that allows interaction with a PackaideServer instance.
The API allows for passing multiple SVG files to the server, which are then nested into one or more SVG files. The resulting SVG files are then returned to the client.
pip install packaide_client
The main class is a PackaideClient
which exposes a single method pack
. This method takes a list of SVG strings,
height and width (in inches) and returns a list of SVG strings. The resulting SVG strings will have the nested shapes.
As a side note, the original size (ie: viewBox
) of the input SVG files has no influence on the size of the output SVG
files. The output SVG will always conform to the height and width parameters. However, if any shape or path in the input
SVG files is too large to fit in the output SVG, a ValueError
will be always be raised.
from packaide_client import PackaideClient
# URL is the address of the server instance, usually operating on port 8000
URL = "http://localhost:8000"
client = PackaideClient(URL)
svg1 = "<svg>...</svg>"
svg2 = "<svg>...</svg>"
results = client.pack([svg1, svg2], height=60, width=40,
tolerance=.1,
offset=5,
rotations=4) # Returns a list of SVGs
# results can be passed to other functions
for sheet in results:
print(sheet)
# Or written to a files
for i, sheet in enumerate(results):
with open(f"sheet_{i}.svg", "w") as f:
f.write(sheet)
The pack
method takes the following parameters:
svgs
: A list of SVG strings to be nestedheight
: The height of the output SVG in incheswidth
: The width of the output SVG in inchestolerance
: The tolerance used when quantizing curves (Discretization tolerance)offset
: The offset distance around each shape (dilation)rotations
: The number of rotations to attempt when nesting shapes.