rectangle-packer


Namerectangle-packer JSON
Version 2.0.2 PyPI version JSON
download
home_pagehttps://github.com/Penlect/rectangle-packer
SummaryPack a set of rectangles into a bounding box with minimum area
upload_time2023-10-10 17:37:41
maintainer
docs_urlNone
authorDaniel Andersson
requires_python
licenseMIT
keywords pack rectangle packing rectangles enclosing 2d
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Pack a set of rectangles into a bounding box with minimum area

===========================
Welcome to rectangle-packer
===========================

|PyPI-Versions| |PyPI-Wheel| |Build-Status| |Read-the-Docs| |GitHub-License|

|PyPI-Downloads|

**Primary use:** Given a set of rectangles with fixed orientations,
find a bounding box of minimum area that contains them all with no
overlap.

This project is inspired by Matt Perdeck's blog post `Fast Optimizing
Rectangle Packing Algorithm for Building CSS Sprites`_.

* The latest documentation is available on `Read the Docs`_.
* The source code is available on `GitHub`_.


Installation
============

Install latest version from `PyPI`_:

.. code:: sh

    $ python3 -m pip install rectangle-packer

Or `clone the repository`_ and install with:

.. code:: sh

    $ python3 setup.py install


Basic usage
===========

.. code:: python

    # Import the module
    >>> import rpack

    # Create a bunch of rectangles (width, height)
    >>> sizes = [(58, 206), (231, 176), (35, 113), (46, 109)]

    # Pack
    >>> positions = rpack.pack(sizes)

    # The result will be a list of (x, y) positions:
    >>> positions
    [(0, 0), (58, 0), (289, 0), (289, 113)]

The output positions are the lower left corner coordinates of each
rectangle in the input.

These positions will yield a packing with no overlaps and enclosing
area as small as possible (best effort).

.. note::

    * You must use **positive integers** as rectangle width and height.

    * The module name is **rpack** which is an abbreviation of the package
      name at PyPI (rectangle-packer).

    * The computational time required by ``rpack.pack()`` increases by
      the number *and* size of input rectangles.  If this becomes a problem,
      you might need to implement your own `divide-and-conquer algorithm`_.


Examples
========

**Example A:**

.. image:: https://penlect.com/rpack/2.0.1/img/packing_best_10.png
   :alt: pack10
   :align: center

**Example B:**

.. image:: https://penlect.com/rpack/2.0.1/img/packing_phi.png
   :alt: packphi
   :align: center

**Example C:** Sometimes the input rectangles simply cannot be packed in
a good way. Here is an example of low packing density:

.. image:: https://penlect.com/rpack/2.0.1/img/packing_worst_10.png
   :alt: pack10bad
   :align: center

**Example D:** The image below is contributed by Paul Brodersen, and
illustrates a solution to a problem discussed at stackoverflow_.

.. image:: https://i.stack.imgur.com/kLat8.png
    :alt: PaulBrodersenExampleImage
    :align: center
    :width: 450px


.. _Read the Docs: https://rectangle-packer.readthedocs.io/en/latest/
.. _GitHub: https://github.com/Penlect/rectangle-packer
.. _`Fast Optimizing Rectangle Packing Algorithm for Building CSS Sprites`: http://www.codeproject.com/Articles/210979/Fast-optimizing-rectangle-packing-algorithm-for-bu
.. _`clone the repository`: https://github.com/Penlect/rectangle-packer
.. _stackoverflow: https://stackoverflow.com/a/53156709/2912349
.. _PyPI: https://pypi.org/project/rectangle-packer/
..  _`divide-and-conquer algorithm`: https://en.wikipedia.org/wiki/Divide-and-conquer_algorithm

.. |PyPI-Versions| image:: https://img.shields.io/pypi/pyversions/rectangle-packer.svg
   :target: https://pypi.org/project/rectangle-packer

.. |PyPI-Wheel| image:: https://img.shields.io/pypi/wheel/rectangle-packer.svg
   :target: https://pypi.org/project/rectangle-packer

.. |Build-Status| image:: https://travis-ci.com/Penlect/rectangle-packer.svg?branch=master
   :target: https://travis-ci.com/Penlect/rectangle-packer

.. |Read-the-Docs| image:: https://img.shields.io/readthedocs/rectangle-packer.svg
   :target: https://rectangle-packer.readthedocs.io/en/latest

.. |GitHub-License| image:: https://img.shields.io/github/license/Penlect/rectangle-packer.svg
   :target: https://raw.githubusercontent.com/Penlect/rectangle-packer/travis/LICENSE.md

.. |PyPI-Downloads| image:: https://img.shields.io/pypi/dm/rectangle-packer.svg
   :target: https://pypi.org/project/rectangle-packer

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Penlect/rectangle-packer",
    "name": "rectangle-packer",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "pack rectangle packing rectangles enclosing 2D",
    "author": "Daniel Andersson",
    "author_email": "daniel.4ndersson@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/95/ab/0565c51c247e084f6aab54683393e68fa82547e309085a5cda134629cd3e/rectangle-packer-2.0.2.tar.gz",
    "platform": null,
    "description": "Pack a set of rectangles into a bounding box with minimum area\n\n===========================\nWelcome to rectangle-packer\n===========================\n\n|PyPI-Versions| |PyPI-Wheel| |Build-Status| |Read-the-Docs| |GitHub-License|\n\n|PyPI-Downloads|\n\n**Primary use:** Given a set of rectangles with fixed orientations,\nfind a bounding box of minimum area that contains them all with no\noverlap.\n\nThis project is inspired by Matt Perdeck's blog post `Fast Optimizing\nRectangle Packing Algorithm for Building CSS Sprites`_.\n\n* The latest documentation is available on `Read the Docs`_.\n* The source code is available on `GitHub`_.\n\n\nInstallation\n============\n\nInstall latest version from `PyPI`_:\n\n.. code:: sh\n\n    $ python3 -m pip install rectangle-packer\n\nOr `clone the repository`_ and install with:\n\n.. code:: sh\n\n    $ python3 setup.py install\n\n\nBasic usage\n===========\n\n.. code:: python\n\n    # Import the module\n    >>> import rpack\n\n    # Create a bunch of rectangles (width, height)\n    >>> sizes = [(58, 206), (231, 176), (35, 113), (46, 109)]\n\n    # Pack\n    >>> positions = rpack.pack(sizes)\n\n    # The result will be a list of (x, y) positions:\n    >>> positions\n    [(0, 0), (58, 0), (289, 0), (289, 113)]\n\nThe output positions are the lower left corner coordinates of each\nrectangle in the input.\n\nThese positions will yield a packing with no overlaps and enclosing\narea as small as possible (best effort).\n\n.. note::\n\n    * You must use **positive integers** as rectangle width and height.\n\n    * The module name is **rpack** which is an abbreviation of the package\n      name at PyPI (rectangle-packer).\n\n    * The computational time required by ``rpack.pack()`` increases by\n      the number *and* size of input rectangles.  If this becomes a problem,\n      you might need to implement your own `divide-and-conquer algorithm`_.\n\n\nExamples\n========\n\n**Example A:**\n\n.. image:: https://penlect.com/rpack/2.0.1/img/packing_best_10.png\n   :alt: pack10\n   :align: center\n\n**Example B:**\n\n.. image:: https://penlect.com/rpack/2.0.1/img/packing_phi.png\n   :alt: packphi\n   :align: center\n\n**Example C:** Sometimes the input rectangles simply cannot be packed in\na good way. Here is an example of low packing density:\n\n.. image:: https://penlect.com/rpack/2.0.1/img/packing_worst_10.png\n   :alt: pack10bad\n   :align: center\n\n**Example D:** The image below is contributed by Paul Brodersen, and\nillustrates a solution to a problem discussed at stackoverflow_.\n\n.. image:: https://i.stack.imgur.com/kLat8.png\n    :alt: PaulBrodersenExampleImage\n    :align: center\n    :width: 450px\n\n\n.. _Read the Docs: https://rectangle-packer.readthedocs.io/en/latest/\n.. _GitHub: https://github.com/Penlect/rectangle-packer\n.. _`Fast Optimizing Rectangle Packing Algorithm for Building CSS Sprites`: http://www.codeproject.com/Articles/210979/Fast-optimizing-rectangle-packing-algorithm-for-bu\n.. _`clone the repository`: https://github.com/Penlect/rectangle-packer\n.. _stackoverflow: https://stackoverflow.com/a/53156709/2912349\n.. _PyPI: https://pypi.org/project/rectangle-packer/\n..  _`divide-and-conquer algorithm`: https://en.wikipedia.org/wiki/Divide-and-conquer_algorithm\n\n.. |PyPI-Versions| image:: https://img.shields.io/pypi/pyversions/rectangle-packer.svg\n   :target: https://pypi.org/project/rectangle-packer\n\n.. |PyPI-Wheel| image:: https://img.shields.io/pypi/wheel/rectangle-packer.svg\n   :target: https://pypi.org/project/rectangle-packer\n\n.. |Build-Status| image:: https://travis-ci.com/Penlect/rectangle-packer.svg?branch=master\n   :target: https://travis-ci.com/Penlect/rectangle-packer\n\n.. |Read-the-Docs| image:: https://img.shields.io/readthedocs/rectangle-packer.svg\n   :target: https://rectangle-packer.readthedocs.io/en/latest\n\n.. |GitHub-License| image:: https://img.shields.io/github/license/Penlect/rectangle-packer.svg\n   :target: https://raw.githubusercontent.com/Penlect/rectangle-packer/travis/LICENSE.md\n\n.. |PyPI-Downloads| image:: https://img.shields.io/pypi/dm/rectangle-packer.svg\n   :target: https://pypi.org/project/rectangle-packer\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Pack a set of rectangles into a bounding box with minimum area",
    "version": "2.0.2",
    "project_urls": {
        "Homepage": "https://github.com/Penlect/rectangle-packer"
    },
    "split_keywords": [
        "pack",
        "rectangle",
        "packing",
        "rectangles",
        "enclosing",
        "2d"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1a38d45cfca30e75fa52fecd661326a5646e5b67e4b8cfcc781d93dc883d36e2",
                "md5": "c355668edb5292cbc6d850916faf187e",
                "sha256": "41fcb471bea91950beaaccb6672197c6e1f63bba25b4b933dfd02aa470c2fcbe"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c355668edb5292cbc6d850916faf187e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 63989,
            "upload_time": "2023-10-10T17:36:56",
            "upload_time_iso_8601": "2023-10-10T17:36:56.235463Z",
            "url": "https://files.pythonhosted.org/packages/1a/38/d45cfca30e75fa52fecd661326a5646e5b67e4b8cfcc781d93dc883d36e2/rectangle_packer-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "19bb64bb35c3d803c16280f617a9153e10cd3cc202a07d0b7a98eda7daafb931",
                "md5": "66c87aff9c6d0124d90d8e596ed5f10e",
                "sha256": "f630d690859f41ef860420defc889a610367e69956b87164ef66feb814281478"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "66c87aff9c6d0124d90d8e596ed5f10e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 296868,
            "upload_time": "2023-10-10T17:36:58",
            "upload_time_iso_8601": "2023-10-10T17:36:58.024701Z",
            "url": "https://files.pythonhosted.org/packages/19/bb/64bb35c3d803c16280f617a9153e10cd3cc202a07d0b7a98eda7daafb931/rectangle_packer-2.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2293a76935e161f862ae17bc0ea6d1a73c90476483bcd61f73464854abc6391e",
                "md5": "04eb0fc0bed4b83f074ba5af9b131808",
                "sha256": "386c95cf1255555bd9b16b759332e8139aaf5e3e3bd4ed9b7117802703b4192d"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "04eb0fc0bed4b83f074ba5af9b131808",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 305593,
            "upload_time": "2023-10-10T17:36:59",
            "upload_time_iso_8601": "2023-10-10T17:36:59.792929Z",
            "url": "https://files.pythonhosted.org/packages/22/93/a76935e161f862ae17bc0ea6d1a73c90476483bcd61f73464854abc6391e/rectangle_packer-2.0.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2982d8650421652fdda44f8d76b8ef708f9bfe46e773affe21300cd96301d665",
                "md5": "c9d664042f23eb3851d1ead0fb38256c",
                "sha256": "26ca5e23e9980a25aa2641c55ee863c5c15e99659604b085e0dcbb7b4ebcaa19"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp310-cp310-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "c9d664042f23eb3851d1ead0fb38256c",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 304406,
            "upload_time": "2023-10-10T17:37:01",
            "upload_time_iso_8601": "2023-10-10T17:37:01.373180Z",
            "url": "https://files.pythonhosted.org/packages/29/82/d8650421652fdda44f8d76b8ef708f9bfe46e773affe21300cd96301d665/rectangle_packer-2.0.2-cp310-cp310-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9cf9fe3c7f70546cfc8d2000fa82c1370cb0081e62abb5d627ec2d90b19c6482",
                "md5": "be125d9cea66723b32be9d16e85da7de",
                "sha256": "d7d2b7df8d0a3cc8d3e85643018d23737a29cca968553c9a7cb57c63f3be2f78"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "be125d9cea66723b32be9d16e85da7de",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 311296,
            "upload_time": "2023-10-10T17:37:03",
            "upload_time_iso_8601": "2023-10-10T17:37:03.022832Z",
            "url": "https://files.pythonhosted.org/packages/9c/f9/fe3c7f70546cfc8d2000fa82c1370cb0081e62abb5d627ec2d90b19c6482/rectangle_packer-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9201e64e2804eda6d814be0a479f61c7da2e9c6a94696006326c082e964fcb53",
                "md5": "b068e9db5e7d0e920681c2f7ef7cd08a",
                "sha256": "0b0327373fc0a0e71dc510e7d8178718427141adfae2790a456c2a8d9251d1c3"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "b068e9db5e7d0e920681c2f7ef7cd08a",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 53721,
            "upload_time": "2023-10-10T17:37:05",
            "upload_time_iso_8601": "2023-10-10T17:37:05.141396Z",
            "url": "https://files.pythonhosted.org/packages/92/01/e64e2804eda6d814be0a479f61c7da2e9c6a94696006326c082e964fcb53/rectangle_packer-2.0.2-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5c03f0d143b5cc549403ce549d4096352971f5e5bd7261200a0958d5a4cfecb4",
                "md5": "7cea57ade8056f901627ed0c0dbdbc38",
                "sha256": "e4515ce755c1afa49e4cce3612ddd7a0d92770cbbd54a692948d634bbe0d8d90"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "7cea57ade8056f901627ed0c0dbdbc38",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 58672,
            "upload_time": "2023-10-10T17:37:06",
            "upload_time_iso_8601": "2023-10-10T17:37:06.987634Z",
            "url": "https://files.pythonhosted.org/packages/5c/03/f0d143b5cc549403ce549d4096352971f5e5bd7261200a0958d5a4cfecb4/rectangle_packer-2.0.2-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "acd79678a1072927c64a12c76b8307a2cee56bf2db21f4c93fcd472c692c5a98",
                "md5": "89d7582c0c2f6f795c5686ec7c4faa60",
                "sha256": "9af27dfb75b964ff7d40f57812ee6e6ffbeff4c50e8c8021a50c1720ce184846"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "89d7582c0c2f6f795c5686ec7c4faa60",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 63543,
            "upload_time": "2023-10-10T17:37:08",
            "upload_time_iso_8601": "2023-10-10T17:37:08.234811Z",
            "url": "https://files.pythonhosted.org/packages/ac/d7/9678a1072927c64a12c76b8307a2cee56bf2db21f4c93fcd472c692c5a98/rectangle_packer-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8575f348e3360649a572669a061e2903b62d46de14f2fbf572862204742f1188",
                "md5": "a5558e569b42618ebe9efc6b30a2065f",
                "sha256": "c060aed842e072a16b853d9260cff3d0a147f66d84f675e64505e193d0087438"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "a5558e569b42618ebe9efc6b30a2065f",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 311229,
            "upload_time": "2023-10-10T17:37:09",
            "upload_time_iso_8601": "2023-10-10T17:37:09.957511Z",
            "url": "https://files.pythonhosted.org/packages/85/75/f348e3360649a572669a061e2903b62d46de14f2fbf572862204742f1188/rectangle_packer-2.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e6f4cb4c11e212679a960384cba619180bf3058fc4798617cf87663dbf4a1c7b",
                "md5": "c2a8a658a68e03e9cb40d9c89552d5e8",
                "sha256": "d036f45576589b54aa133e6fd0e47cc3f45598cb3d6562b5215271ef42f59775"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c2a8a658a68e03e9cb40d9c89552d5e8",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 328353,
            "upload_time": "2023-10-10T17:37:11",
            "upload_time_iso_8601": "2023-10-10T17:37:11.494912Z",
            "url": "https://files.pythonhosted.org/packages/e6/f4/cb4c11e212679a960384cba619180bf3058fc4798617cf87663dbf4a1c7b/rectangle_packer-2.0.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "416f48ce3c0e3f4a4037de68b35c6f3f07f5c7366b70f5a4ed54d32142740dfd",
                "md5": "1d21f234d1becc7288efc98cf15fda4b",
                "sha256": "f9672b5d8b685405c98de71b00b3ce0e963c6195ea479325ebab219dbb98d328"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp311-cp311-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "1d21f234d1becc7288efc98cf15fda4b",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 316190,
            "upload_time": "2023-10-10T17:37:13",
            "upload_time_iso_8601": "2023-10-10T17:37:13.731463Z",
            "url": "https://files.pythonhosted.org/packages/41/6f/48ce3c0e3f4a4037de68b35c6f3f07f5c7366b70f5a4ed54d32142740dfd/rectangle_packer-2.0.2-cp311-cp311-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "22d92f07739f1a2d758d6543fd93c6b204e9a647edf0fa74d41c2f5aa960e873",
                "md5": "b6f91708d97c654fa9ddbb5eb6fc5527",
                "sha256": "ed01302499bba7cfd9b8aaf91b8d964344f1f6d74cd966e53f9616fae399fd33"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b6f91708d97c654fa9ddbb5eb6fc5527",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 330174,
            "upload_time": "2023-10-10T17:37:15",
            "upload_time_iso_8601": "2023-10-10T17:37:15.818480Z",
            "url": "https://files.pythonhosted.org/packages/22/d9/2f07739f1a2d758d6543fd93c6b204e9a647edf0fa74d41c2f5aa960e873/rectangle_packer-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5838db9ff32590e4b9ae9cc260c9a5459c66601f11aa249dc9cb64a926482c6d",
                "md5": "3feb72a040a95ebbe60f30b7f69b1ce6",
                "sha256": "10deaf700cc71f95e7e7bce701a8cc5392ea2ec11dd02b1c2288990f4b613d30"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "3feb72a040a95ebbe60f30b7f69b1ce6",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 53525,
            "upload_time": "2023-10-10T17:37:17",
            "upload_time_iso_8601": "2023-10-10T17:37:17.129009Z",
            "url": "https://files.pythonhosted.org/packages/58/38/db9ff32590e4b9ae9cc260c9a5459c66601f11aa249dc9cb64a926482c6d/rectangle_packer-2.0.2-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5ff20a7c7bc5f4c87128dd23585233e8c0eda7b8890b38ecd335ac1e8b2523e3",
                "md5": "e7c8656213f89baa686af6ed2ff27bf7",
                "sha256": "83993b093fed7bac0bfb678a4bb0d31cad7042a8601a462d3bbe519b94980180"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "e7c8656213f89baa686af6ed2ff27bf7",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 58253,
            "upload_time": "2023-10-10T17:37:18",
            "upload_time_iso_8601": "2023-10-10T17:37:18.489976Z",
            "url": "https://files.pythonhosted.org/packages/5f/f2/0a7c7bc5f4c87128dd23585233e8c0eda7b8890b38ecd335ac1e8b2523e3/rectangle_packer-2.0.2-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d036cd5b9ec9be4a8c12b9be59e9bab3a6d27282af2717971a1e624395c61e9c",
                "md5": "5068059e1353e208a1404f0bb0ac2ada",
                "sha256": "6e834844eb25b91af02f2f166f2dadb4a7920d82c06f3e52b6e6a19c8f04e704"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5068059e1353e208a1404f0bb0ac2ada",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 63530,
            "upload_time": "2023-10-10T17:37:19",
            "upload_time_iso_8601": "2023-10-10T17:37:19.921799Z",
            "url": "https://files.pythonhosted.org/packages/d0/36/cd5b9ec9be4a8c12b9be59e9bab3a6d27282af2717971a1e624395c61e9c/rectangle_packer-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7f63cff4c5116816b11a97f5c9bf1a9475e6ff2cd8df5c06fa57df2ccb98f978",
                "md5": "eac231c86178a5038bc60241ac01a6e7",
                "sha256": "e7b983f687db7eef1c4280fb8a9010cbc766459697ec5e689456a55133971573"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "eac231c86178a5038bc60241ac01a6e7",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 311892,
            "upload_time": "2023-10-10T17:37:21",
            "upload_time_iso_8601": "2023-10-10T17:37:21.489948Z",
            "url": "https://files.pythonhosted.org/packages/7f/63/cff4c5116816b11a97f5c9bf1a9475e6ff2cd8df5c06fa57df2ccb98f978/rectangle_packer-2.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e30cb86e535e30edcf8823d9ae9c963609ab2a171891cf8b12fbc3d6487f4795",
                "md5": "55b57a78c573627d37d41051183f3f79",
                "sha256": "ac5bb2cb181d77d85246bbf52da885dc33cc58de03b66e73791d64912814b333"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "55b57a78c573627d37d41051183f3f79",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 327040,
            "upload_time": "2023-10-10T17:37:22",
            "upload_time_iso_8601": "2023-10-10T17:37:22.885417Z",
            "url": "https://files.pythonhosted.org/packages/e3/0c/b86e535e30edcf8823d9ae9c963609ab2a171891cf8b12fbc3d6487f4795/rectangle_packer-2.0.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5c4272b719d3845e47be7610076094de494194afe096cc0a397548c5f752282d",
                "md5": "44846eaf4c622c4fc40998e968c45b76",
                "sha256": "6547557d48b385f272533b7c62f4de49f9f6884e9c496d6d26ea28d799f9a1a6"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp312-cp312-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "44846eaf4c622c4fc40998e968c45b76",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 317440,
            "upload_time": "2023-10-10T17:37:24",
            "upload_time_iso_8601": "2023-10-10T17:37:24.458773Z",
            "url": "https://files.pythonhosted.org/packages/5c/42/72b719d3845e47be7610076094de494194afe096cc0a397548c5f752282d/rectangle_packer-2.0.2-cp312-cp312-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dfda584da1e4e5eb4ff34b3439ecb99dacbc77f15d4161d43a34acae9e5c6e8a",
                "md5": "b4d03fb758d8ea93977cc795519b1226",
                "sha256": "340cc9002aa1d4df795f24ef5f516535256bd40dc9568d5bcce94861277bfec6"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b4d03fb758d8ea93977cc795519b1226",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 328905,
            "upload_time": "2023-10-10T17:37:26",
            "upload_time_iso_8601": "2023-10-10T17:37:26.510822Z",
            "url": "https://files.pythonhosted.org/packages/df/da/584da1e4e5eb4ff34b3439ecb99dacbc77f15d4161d43a34acae9e5c6e8a/rectangle_packer-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "51ca2207081b8e461f1062ae784e1acd32a7f3ef9b7e2d4877efe0b17704fab5",
                "md5": "4b4fd4239a177cbe1de606bd881212bb",
                "sha256": "7d239749aea7bace64a5052caa6cca84ee558799e0e47348d1ff4e992426a4a1"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "4b4fd4239a177cbe1de606bd881212bb",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 54074,
            "upload_time": "2023-10-10T17:37:27",
            "upload_time_iso_8601": "2023-10-10T17:37:27.757011Z",
            "url": "https://files.pythonhosted.org/packages/51/ca/2207081b8e461f1062ae784e1acd32a7f3ef9b7e2d4877efe0b17704fab5/rectangle_packer-2.0.2-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "17859095acb7c9180142f22a7f200dc1183affd6589302d9d79073ce642f16aa",
                "md5": "e3247db401ae1764696ed1c7728dd659",
                "sha256": "e282a38fae460107806991539905ffe8d6719595f791a049e3622a03b41acbb8"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "e3247db401ae1764696ed1c7728dd659",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 58539,
            "upload_time": "2023-10-10T17:37:29",
            "upload_time_iso_8601": "2023-10-10T17:37:29.281148Z",
            "url": "https://files.pythonhosted.org/packages/17/85/9095acb7c9180142f22a7f200dc1183affd6589302d9d79073ce642f16aa/rectangle_packer-2.0.2-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3fb07bd17ccfdf5e1fc3ff007f6b99fb604de26f64d65202bd2026c58985979d",
                "md5": "3f82629027df3ad8662892f904ba2b71",
                "sha256": "d41730069bed5bc7f5da8566282112d20a3f24e6e723e2fad4ca7a3eb61d2f2f"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3f82629027df3ad8662892f904ba2b71",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 65668,
            "upload_time": "2023-10-10T17:37:30",
            "upload_time_iso_8601": "2023-10-10T17:37:30.700031Z",
            "url": "https://files.pythonhosted.org/packages/3f/b0/7bd17ccfdf5e1fc3ff007f6b99fb604de26f64d65202bd2026c58985979d/rectangle_packer-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bb3b5d4d1f971507781b3c8553ebe4df6d9344c87701616f104b3ea9d93ab5f5",
                "md5": "e84e978f3e6fbdf71e46e8d18404219b",
                "sha256": "9ead71062ae26306573479ac38c599dfae6d60c67f25c39987e4c4fb25aa8510"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "e84e978f3e6fbdf71e46e8d18404219b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 293293,
            "upload_time": "2023-10-10T17:37:32",
            "upload_time_iso_8601": "2023-10-10T17:37:32.139149Z",
            "url": "https://files.pythonhosted.org/packages/bb/3b/5d4d1f971507781b3c8553ebe4df6d9344c87701616f104b3ea9d93ab5f5/rectangle_packer-2.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b3091b99e9d65e00efaf7d71fd45cd5a38fe4f1ade78515b92420b62895f3474",
                "md5": "a3b7dd28aefe589a8d6e36645097e1cb",
                "sha256": "bfa6b9d24925dc54f07b966ae8c17b76e6870924bf5e9597ab4ab4cbccc0fc1f"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a3b7dd28aefe589a8d6e36645097e1cb",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 301218,
            "upload_time": "2023-10-10T17:37:33",
            "upload_time_iso_8601": "2023-10-10T17:37:33.540231Z",
            "url": "https://files.pythonhosted.org/packages/b3/09/1b99e9d65e00efaf7d71fd45cd5a38fe4f1ade78515b92420b62895f3474/rectangle_packer-2.0.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "057ad59833902c4094bfc4a6a4c8d3296a49c746986e908139927b5b6e709a44",
                "md5": "e9e6e2197b7f48201c597f7e2f537ab9",
                "sha256": "233f22e39ba185ffce0b91503ae7133312adefef32a23736d21065067c49262a"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp39-cp39-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "e9e6e2197b7f48201c597f7e2f537ab9",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 298481,
            "upload_time": "2023-10-10T17:37:35",
            "upload_time_iso_8601": "2023-10-10T17:37:35.556244Z",
            "url": "https://files.pythonhosted.org/packages/05/7a/d59833902c4094bfc4a6a4c8d3296a49c746986e908139927b5b6e709a44/rectangle_packer-2.0.2-cp39-cp39-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e03f8fc31fb2b859c25dd07a2b9f2e666fc3d138119bdeba95ebf5fa739aabd9",
                "md5": "be6bcebe10be64f6800446f59f8e1b58",
                "sha256": "796b7a62be8efd1b114eb26301f57e4270807745025d1eae9d956f3b96bc988d"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "be6bcebe10be64f6800446f59f8e1b58",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 306272,
            "upload_time": "2023-10-10T17:37:37",
            "upload_time_iso_8601": "2023-10-10T17:37:37.603502Z",
            "url": "https://files.pythonhosted.org/packages/e0/3f/8fc31fb2b859c25dd07a2b9f2e666fc3d138119bdeba95ebf5fa739aabd9/rectangle_packer-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b937e218c8115d43f39f57a57073158c20c018b18709aceea2fbf7a54053f5ea",
                "md5": "c13b82499e5cae6956330982a3f80334",
                "sha256": "197195574c1c163df2b76e3803148a97d9f46949f048a0a40e8c2d049c194bee"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "c13b82499e5cae6956330982a3f80334",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 55042,
            "upload_time": "2023-10-10T17:37:38",
            "upload_time_iso_8601": "2023-10-10T17:37:38.888042Z",
            "url": "https://files.pythonhosted.org/packages/b9/37/e218c8115d43f39f57a57073158c20c018b18709aceea2fbf7a54053f5ea/rectangle_packer-2.0.2-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "24efca0a7fe2a2f2c1f51f6221ec4c0e3d7553780c08e10c678a67737ee782f9",
                "md5": "c9c0e3f23fee0c613473057c9e499a05",
                "sha256": "13f89cf33ac9f3d11d67a59c8be6755c5926f552cd823cabece23a8caad2bc22"
            },
            "downloads": -1,
            "filename": "rectangle_packer-2.0.2-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "c9c0e3f23fee0c613473057c9e499a05",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 60082,
            "upload_time": "2023-10-10T17:37:40",
            "upload_time_iso_8601": "2023-10-10T17:37:40.443791Z",
            "url": "https://files.pythonhosted.org/packages/24/ef/ca0a7fe2a2f2c1f51f6221ec4c0e3d7553780c08e10c678a67737ee782f9/rectangle_packer-2.0.2-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "95ab0565c51c247e084f6aab54683393e68fa82547e309085a5cda134629cd3e",
                "md5": "53714fdee9eac441007c94c7ba1ccdb2",
                "sha256": "34e450029255f726c4a8e6e939a18cad5879f0d9fe588c1878fe85c872dcbe41"
            },
            "downloads": -1,
            "filename": "rectangle-packer-2.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "53714fdee9eac441007c94c7ba1ccdb2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 99590,
            "upload_time": "2023-10-10T17:37:41",
            "upload_time_iso_8601": "2023-10-10T17:37:41.859691Z",
            "url": "https://files.pythonhosted.org/packages/95/ab/0565c51c247e084f6aab54683393e68fa82547e309085a5cda134629cd3e/rectangle-packer-2.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-10 17:37:41",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Penlect",
    "github_project": "rectangle-packer",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "rectangle-packer"
}
        
Elapsed time: 0.25525s