Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

PaulDL-RS/spyrrow

Open more actions menu

Repository files navigation

Spyrrow

spyrrow is a Python wrapper on the Rust project sparrow. It enables to solve 2D Strip packing problems.

The documentation is hosted here.

Installation

Spyrrow is hosted on PyPI.

You can install with the package manager of your choice, using the PyPI package index.

For example, with pip, the default Python package:

pip install spyrrow

Examples

import spyrrow

rectangle1 = spyrrow.Item(
    "rectangle", [(0, 0), (1, 0), (1, 1), (0, 1), (0, 0)], demand=4, allowed_orientations=[0]
)
triangle1 = spyrrow.Item(
    "triangle",
    [(0, 0), (1, 0), (1, 1), (0, 0)],
    demand=6,
    allowed_orientations=[0, 90, 180, -90],
)

instance = spyrrow.StripPackingInstance(
    "test", strip_height=2.001, items=[rectangle1, triangle1]
)
config = spyrrow.StripPackingConfig(early_termination=False,total_computation_time=60,num_wokers=3,seed=0)
sol = instance.solve(config)
print(sol.width) # 4.0 +/- 5%
print(sol.density)
print("\n")
for pi in sol.placed_items:
    print(pi.id)
    print(pi.rotation)
    print(pi.translation)
    print("\n")

Contributing

Spyrrow is open to contributions. The first target should be to reach Python open sources packages standards and practices. Second, a easier integration with the package shapely is envsionned.

Please use GitHub issues to request features. They will be considered relative to what is already implemented in the parent library sparrow. If necessary, they can be forwarded to it.

Morty Proxy This is a proxified and sanitized view of the page, visit original site.