Name | pypolyclip JSON |
Version |
1.0.0
JSON |
| download |
home_page | |
Summary | A python driver to the polyclip functions |
upload_time | 2023-11-06 22:24:46 |
maintainer | |
docs_url | None |
author | |
requires_python | >=3.9 |
license | Original polyclip C code (BSD 3-clause license) ----------------------------------------------- Copyright (c) 2001-2007, J.D. Smith Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Python wrapper code (BSD 3-clause license) ------------------------------------------ Copyright (C) 2010 Association of Universities for Research in Astronomy (AURA) Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The name of AURA and its representatives may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY AURA "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
keywords |
computational geometry
polygon clipping
polygon intersection
pixelated images
cubism
polyclip
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# pypolyclip
[![CI Tests](https://github.com/spacetelescope/pypolyclip/actions/workflows/ci_tests.yml/badge.svg?branch=main)](https://github.com/spacetelescope/pypolyclip/actions/workflows/ci_tests.yml) [![coverage](https://codecov.io/github/spacetelescope/pypolyclip/branch/main/graph/badge.svg?token=8xpNHaI9wD)](https://codecov.io/github/spacetelescope/pypolyclip)
A Python package to clip polygons against a pixel grid.
The polyclip functions were originally developed for the CUBISM
project [Smith et al. 2007 (PASP 119, 1133)](https://ui.adsabs.harvard.edu/abs/2007PASP..119.1133S/).
## Installation
The package can be installed using pip from the command line:
```
pip install pypolyclip
```
## Description
The [polyclip](http://tir.astro.utoledo.edu/jdsmith/code/idl.php)
code employs the [Sutherland-Hodgman
algorithm](https://en.wikipedia.org/wiki/Sutherland–Hodgman_algorithm)
to clip simple polygons against a tessellated grid of square pixels.
Therefore, this differs from similar packages, which often clip between
two arbitrary polygons.
The test module
[test_pypolyclip.py](https://github.com/spacetelescope/pypolyclip/blob/main/pypolyclip/tests/test_pypolyclip.py) can be run to produce the following
example figures:
<img src="docs/_static/polygons.png" width="350" height="350">
<img src="docs/_static/quadrilaterals.png" width="350" height="350">
In each figure, the Cartesian coordinates for each pixel that overlaps
with a given polygon are labeled with the area of that pixel that is
covered (the area of a pixel is defined as 1). Therefore, the sum of the
areas of the individual pixels for each polygon should be the total area
of the polygon.
Pypolyclip uses a coordinate grid where integer pixel coordinates are
located at the lower-left corner of each pixel, starting from zero. To
clip polygons on a coordinate grid where integer pixel coordinates are
located at the center of pixels, one will need to add 0.5 pixel to both
the x and y vertices of the input polygons.
The first figure shows clipping of polygons with differing numbers of
vertices, which internally requires the use of "for loops". However, if
the number of vertices is the same for all polygons (such as the second
figure), then [NumPy](https://numpy.org/) is used internally to improve
performance by several percent.
## Example usage
This first example demonstrates polygons with the same number of
vertices:
```
import numpy as np
from pypolyclip import clip_multi
# define the size of the pixel grid
naxis = (100, 100)
# create 3 polygons to clip
# the x-vertices of the polygon
px = np.array([[3.4, 3.4, 4.4, 4.4],
[3.5, 3.5, 4.3, 4.3],
[3.1, 3.1, 3.9, 3.9]])
# the y-vertices of the polygon
py = np.array([[1.4, 1.9, 1.9, 1.4],
[3.7, 4.4, 4.4, 3.7],
[2.1, 2.9, 2.9, 2.1]])
# call the clipper
xc, yc, area, slices = clip_multi(px, py, naxis)
# xc, yc are the grid indices with overlapping pixels.
# area is the overlapping area on a given pixel.
# slices is a list of slice objects to link between the input polygons
# and the clipped pixel grid.
# the slices object can be used to get the area of each polygon
for i, s in enumerate(slices):
print(f'total area for polygon {i}={np.sum(area[s])}')
```
This second example demonstrates clipping polygons that have a different
number of vertices. Note that `px` and `py` are lists of lists instead
of NumPy arrays as in the first example.
```
import numpy as np
from pypolyclip import clip_multi
# define the size of the pixel grid
naxis = (100, 100)
# create 3 polygons to clip
# the x-vertices of the polygon
px = [[3.4, 3.4, 4.4, 4.8, 4.4],
[3.5, 3.5, 4.3, 4.3],
[3.1, 3.8, 3.1]]
# the y-vertices of the polygon
py = [[1.4, 1.9, 1.9, 1.65, 1.4],
[3.7, 4.4, 4.4, 3.7],
[2.1, 2.1, 3.4]]
# call the clipper
xc, yc, area, slices = clip_multi(px, py, naxis)
# xc, yc are the grid indices with overlapping pixels.
# area is the overlapping area on a given pixel.
# slices is a list of slice objects to link between the input polygons
# and the clipped pixel grid.
# the slices object can be used to get the area of each polygon
for i, s in enumerate(slices):
print(f'total area for polygon {i}={np.sum(area[s])}')
```
Raw data
{
"_id": null,
"home_page": "",
"name": "pypolyclip",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "",
"keywords": "computational geometry,polygon clipping,polygon intersection,pixelated images,CUBISM,polyclip",
"author": "",
"author_email": "Pypolyclip Developers <help@stsci.edu>",
"download_url": "",
"platform": null,
"description": "# pypolyclip\n\n[![CI Tests](https://github.com/spacetelescope/pypolyclip/actions/workflows/ci_tests.yml/badge.svg?branch=main)](https://github.com/spacetelescope/pypolyclip/actions/workflows/ci_tests.yml) [![coverage](https://codecov.io/github/spacetelescope/pypolyclip/branch/main/graph/badge.svg?token=8xpNHaI9wD)](https://codecov.io/github/spacetelescope/pypolyclip)\n\nA Python package to clip polygons against a pixel grid.\n\nThe polyclip functions were originally developed for the CUBISM\nproject [Smith et al. 2007 (PASP 119, 1133)](https://ui.adsabs.harvard.edu/abs/2007PASP..119.1133S/).\n\n## Installation\n\nThe package can be installed using pip from the command line:\n```\npip install pypolyclip\n```\n\n## Description\nThe [polyclip](http://tir.astro.utoledo.edu/jdsmith/code/idl.php)\ncode employs the [Sutherland-Hodgman\nalgorithm](https://en.wikipedia.org/wiki/Sutherland\u2013Hodgman_algorithm)\nto clip simple polygons against a tessellated grid of square pixels.\nTherefore, this differs from similar packages, which often clip between\ntwo arbitrary polygons.\n\nThe test module\n[test_pypolyclip.py](https://github.com/spacetelescope/pypolyclip/blob/main/pypolyclip/tests/test_pypolyclip.py) can be run to produce the following\nexample figures:\n\n<img src=\"docs/_static/polygons.png\" width=\"350\" height=\"350\">\n<img src=\"docs/_static/quadrilaterals.png\" width=\"350\" height=\"350\">\n\nIn each figure, the Cartesian coordinates for each pixel that overlaps\nwith a given polygon are labeled with the area of that pixel that is\ncovered (the area of a pixel is defined as 1). Therefore, the sum of the\nareas of the individual pixels for each polygon should be the total area\nof the polygon.\n\nPypolyclip uses a coordinate grid where integer pixel coordinates are\nlocated at the lower-left corner of each pixel, starting from zero. To\nclip polygons on a coordinate grid where integer pixel coordinates are\nlocated at the center of pixels, one will need to add 0.5 pixel to both\nthe x and y vertices of the input polygons.\n\nThe first figure shows clipping of polygons with differing numbers of\nvertices, which internally requires the use of \"for loops\". However, if\nthe number of vertices is the same for all polygons (such as the second\nfigure), then [NumPy](https://numpy.org/) is used internally to improve\nperformance by several percent.\n\n\n## Example usage\nThis first example demonstrates polygons with the same number of\nvertices:\n\n```\nimport numpy as np\nfrom pypolyclip import clip_multi\n\n# define the size of the pixel grid\nnaxis = (100, 100)\n\n# create 3 polygons to clip\n\n# the x-vertices of the polygon\npx = np.array([[3.4, 3.4, 4.4, 4.4],\n [3.5, 3.5, 4.3, 4.3],\n [3.1, 3.1, 3.9, 3.9]])\n\n# the y-vertices of the polygon\npy = np.array([[1.4, 1.9, 1.9, 1.4],\n [3.7, 4.4, 4.4, 3.7],\n [2.1, 2.9, 2.9, 2.1]])\n\n# call the clipper\nxc, yc, area, slices = clip_multi(px, py, naxis)\n\n# xc, yc are the grid indices with overlapping pixels.\n# area is the overlapping area on a given pixel.\n# slices is a list of slice objects to link between the input polygons\n# and the clipped pixel grid.\n\n# the slices object can be used to get the area of each polygon\nfor i, s in enumerate(slices):\n print(f'total area for polygon {i}={np.sum(area[s])}')\n```\n\nThis second example demonstrates clipping polygons that have a different\nnumber of vertices. Note that `px` and `py` are lists of lists instead\nof NumPy arrays as in the first example.\n\n```\nimport numpy as np\nfrom pypolyclip import clip_multi\n\n# define the size of the pixel grid\nnaxis = (100, 100)\n\n# create 3 polygons to clip\n\n# the x-vertices of the polygon\npx = [[3.4, 3.4, 4.4, 4.8, 4.4],\n [3.5, 3.5, 4.3, 4.3],\n [3.1, 3.8, 3.1]]\n\n# the y-vertices of the polygon\npy = [[1.4, 1.9, 1.9, 1.65, 1.4],\n [3.7, 4.4, 4.4, 3.7],\n [2.1, 2.1, 3.4]]\n\n# call the clipper\nxc, yc, area, slices = clip_multi(px, py, naxis)\n\n# xc, yc are the grid indices with overlapping pixels.\n# area is the overlapping area on a given pixel.\n# slices is a list of slice objects to link between the input polygons\n# and the clipped pixel grid.\n\n# the slices object can be used to get the area of each polygon\nfor i, s in enumerate(slices):\n print(f'total area for polygon {i}={np.sum(area[s])}')\n```\n",
"bugtrack_url": null,
"license": "Original polyclip C code (BSD 3-clause license) ----------------------------------------------- Copyright (c) 2001-2007, J.D. Smith Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Python wrapper code (BSD 3-clause license) ------------------------------------------ Copyright (C) 2010 Association of Universities for Research in Astronomy (AURA) Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The name of AURA and its representatives may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY AURA \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ",
"summary": "A python driver to the polyclip functions",
"version": "1.0.0",
"project_urls": {
"Homepage": "https://github.com/spacetelescope/pypolyclip"
},
"split_keywords": [
"computational geometry",
"polygon clipping",
"polygon intersection",
"pixelated images",
"cubism",
"polyclip"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "061e989fe7066326273aaf3694b52f9f78221c3e22e4d20ea0b2ca07b9806b3f",
"md5": "b33857afe113800162282e5261eba41f",
"sha256": "2df8854926f79c608305695668afdbda53253e6b9901caa580cb60cd5fe914ee"
},
"downloads": -1,
"filename": "pypolyclip-1.0.0-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "b33857afe113800162282e5261eba41f",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 20198,
"upload_time": "2023-11-06T22:24:46",
"upload_time_iso_8601": "2023-11-06T22:24:46.938510Z",
"url": "https://files.pythonhosted.org/packages/06/1e/989fe7066326273aaf3694b52f9f78221c3e22e4d20ea0b2ca07b9806b3f/pypolyclip-1.0.0-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2cf1e70b43b5e634fb09c20838503a8d9fbc6026c42a063277c0f4e2fb4a6ae2",
"md5": "333ae2a8922149021f930e2275ece959",
"sha256": "7c95a1b5af9ac0e594dacb612417c91d2d1f8526522443acb2f487bfa0a9770f"
},
"downloads": -1,
"filename": "pypolyclip-1.0.0-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "333ae2a8922149021f930e2275ece959",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 20046,
"upload_time": "2023-11-06T22:24:48",
"upload_time_iso_8601": "2023-11-06T22:24:48.675979Z",
"url": "https://files.pythonhosted.org/packages/2c/f1/e70b43b5e634fb09c20838503a8d9fbc6026c42a063277c0f4e2fb4a6ae2/pypolyclip-1.0.0-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a13741cf925b2454a5094ae54035f37f081a35f7f0e4c7fe53772e286848349e",
"md5": "0f28f23dd42b9f9ddd581768b3f306db",
"sha256": "ff6efc6d326231449931978359d5ef548325b1367663873cb50caf33c702ef94"
},
"downloads": -1,
"filename": "pypolyclip-1.0.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "0f28f23dd42b9f9ddd581768b3f306db",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 40012,
"upload_time": "2023-11-06T22:24:49",
"upload_time_iso_8601": "2023-11-06T22:24:49.564370Z",
"url": "https://files.pythonhosted.org/packages/a1/37/41cf925b2454a5094ae54035f37f081a35f7f0e4c7fe53772e286848349e/pypolyclip-1.0.0-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": "f6511b5e0ddcfc29eb20158b9e8506b44d2400a3639716a2d4a493d1e9c03bcf",
"md5": "a5cddccddf3fb4174fea1c53ba997958",
"sha256": "f37736f19500a42cd77837b21db005d26ea4a5472f5f03e77d9cc874e7eece39"
},
"downloads": -1,
"filename": "pypolyclip-1.0.0-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "a5cddccddf3fb4174fea1c53ba997958",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 22354,
"upload_time": "2023-11-06T22:24:51",
"upload_time_iso_8601": "2023-11-06T22:24:51.088918Z",
"url": "https://files.pythonhosted.org/packages/f6/51/1b5e0ddcfc29eb20158b9e8506b44d2400a3639716a2d4a493d1e9c03bcf/pypolyclip-1.0.0-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "00e16d67fe15d58b4591082d8e578cf88d18aafeaadaece196ff62c925c9cc0e",
"md5": "c9fe849a8daa7be2f79114572f8a3e86",
"sha256": "3eae7af211f4f9593db0a12c9fcef954d0db499eec60a78f04db90e0860c2fcb"
},
"downloads": -1,
"filename": "pypolyclip-1.0.0-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "c9fe849a8daa7be2f79114572f8a3e86",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 20198,
"upload_time": "2023-11-06T22:24:52",
"upload_time_iso_8601": "2023-11-06T22:24:52.578616Z",
"url": "https://files.pythonhosted.org/packages/00/e1/6d67fe15d58b4591082d8e578cf88d18aafeaadaece196ff62c925c9cc0e/pypolyclip-1.0.0-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "262223a367651f7b681aba1b663fdf785bdcc26186f8ed12f47b3665d1461e1d",
"md5": "e1bc384cebb77de6bfb09f95c733f77d",
"sha256": "411821294e6361456945827075b70838fbf7fb27d46bc80af3bdc512ad3cf8de"
},
"downloads": -1,
"filename": "pypolyclip-1.0.0-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "e1bc384cebb77de6bfb09f95c733f77d",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 20043,
"upload_time": "2023-11-06T22:24:54",
"upload_time_iso_8601": "2023-11-06T22:24:54.281721Z",
"url": "https://files.pythonhosted.org/packages/26/22/23a367651f7b681aba1b663fdf785bdcc26186f8ed12f47b3665d1461e1d/pypolyclip-1.0.0-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d6f58f37245cb9f26b903d93b4575e4f3cf01aa3335ba93dc489f38bcc74ee4a",
"md5": "f9584d2451f9aba96529adf66c7f92b8",
"sha256": "e3da8aed573fafa4dee41a0ebd046ffaa1d31a6f111d436fa635d37f0ae10a7f"
},
"downloads": -1,
"filename": "pypolyclip-1.0.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "f9584d2451f9aba96529adf66c7f92b8",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 40071,
"upload_time": "2023-11-06T22:24:55",
"upload_time_iso_8601": "2023-11-06T22:24:55.313788Z",
"url": "https://files.pythonhosted.org/packages/d6/f5/8f37245cb9f26b903d93b4575e4f3cf01aa3335ba93dc489f38bcc74ee4a/pypolyclip-1.0.0-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": "76e6142177598268a62c850a8f447840d29efd38c2d296bee866be0324e356db",
"md5": "0b3a11e065e8fc5f7ed26c9a005c115d",
"sha256": "dc3d0c4ac3c2c24cdcc27209b18ce4e3f904e023f08c96a2323f8b2565a9cfe9"
},
"downloads": -1,
"filename": "pypolyclip-1.0.0-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "0b3a11e065e8fc5f7ed26c9a005c115d",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 22359,
"upload_time": "2023-11-06T22:24:56",
"upload_time_iso_8601": "2023-11-06T22:24:56.670680Z",
"url": "https://files.pythonhosted.org/packages/76/e6/142177598268a62c850a8f447840d29efd38c2d296bee866be0324e356db/pypolyclip-1.0.0-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "33fbbeecbd17b9c19cead673fd33e60a533fbf31cfbce17a14c052cc17df3df4",
"md5": "eb7beb381561bd35adfdce2abc4039f5",
"sha256": "3b290b976d9f6cfae24849322f15491ecf1a9773167986a004cf6531e2122f43"
},
"downloads": -1,
"filename": "pypolyclip-1.0.0-cp312-cp312-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "eb7beb381561bd35adfdce2abc4039f5",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 20113,
"upload_time": "2023-11-06T22:24:57",
"upload_time_iso_8601": "2023-11-06T22:24:57.560497Z",
"url": "https://files.pythonhosted.org/packages/33/fb/beecbd17b9c19cead673fd33e60a533fbf31cfbce17a14c052cc17df3df4/pypolyclip-1.0.0-cp312-cp312-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "867107e6b31337fb3505e96d6554d5fc33b113388e71a04b9e40b9459a555e53",
"md5": "e301f60686d3246a0eeed9375edd8d13",
"sha256": "80f80e72fdfe0ce9bf149ab3dea45361bc754335458409fa71164406e59a892c"
},
"downloads": -1,
"filename": "pypolyclip-1.0.0-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "e301f60686d3246a0eeed9375edd8d13",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 19943,
"upload_time": "2023-11-06T22:24:58",
"upload_time_iso_8601": "2023-11-06T22:24:58.561649Z",
"url": "https://files.pythonhosted.org/packages/86/71/07e6b31337fb3505e96d6554d5fc33b113388e71a04b9e40b9459a555e53/pypolyclip-1.0.0-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "29c6403af3f3582a77d89dcf4b7f2546f6a25971fc6188e12c464efc9744a522",
"md5": "15098d52be73e11b7c9e06bbf0e05bd3",
"sha256": "9a66dcc6ca624c1a525c540405fce1f435d0eae22a277cd35e746c81c793e232"
},
"downloads": -1,
"filename": "pypolyclip-1.0.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "15098d52be73e11b7c9e06bbf0e05bd3",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 40843,
"upload_time": "2023-11-06T22:24:59",
"upload_time_iso_8601": "2023-11-06T22:24:59.951460Z",
"url": "https://files.pythonhosted.org/packages/29/c6/403af3f3582a77d89dcf4b7f2546f6a25971fc6188e12c464efc9744a522/pypolyclip-1.0.0-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": "95b28033841001db13df9642ff7f228dae732bf902fa8d09ebfd5e7c2c7e6453",
"md5": "e8bd44c81412d9d227bc61ee3e79222f",
"sha256": "757a5b08359b7aae17483ae3e144ec968eded33c88a225943c43ebc39f4e0e9a"
},
"downloads": -1,
"filename": "pypolyclip-1.0.0-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "e8bd44c81412d9d227bc61ee3e79222f",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 22400,
"upload_time": "2023-11-06T22:25:01",
"upload_time_iso_8601": "2023-11-06T22:25:01.176764Z",
"url": "https://files.pythonhosted.org/packages/95/b2/8033841001db13df9642ff7f228dae732bf902fa8d09ebfd5e7c2c7e6453/pypolyclip-1.0.0-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "763414fddff9c37221dd34be3837cec621bd6fa0d6b44f1d3487f1646215da6c",
"md5": "506d49b44bf59d8c0ea37c9714360c34",
"sha256": "06ca81aa042b8181f557ab85a729073f12c54c5f0a89c3420cc1c4ad8cf97117"
},
"downloads": -1,
"filename": "pypolyclip-1.0.0-cp39-cp39-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "506d49b44bf59d8c0ea37c9714360c34",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 20196,
"upload_time": "2023-11-06T22:25:02",
"upload_time_iso_8601": "2023-11-06T22:25:02.906605Z",
"url": "https://files.pythonhosted.org/packages/76/34/14fddff9c37221dd34be3837cec621bd6fa0d6b44f1d3487f1646215da6c/pypolyclip-1.0.0-cp39-cp39-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4afcfd1bcf13a1ade7d108be91ae0b13fdc8dd27abda6509598f871f6539f64a",
"md5": "d725335b4993ef26f807d84b1323b535",
"sha256": "74d5ee979adde2e3473f50872d3da7eefe2ddd870c9e48df5077ce59d97d047b"
},
"downloads": -1,
"filename": "pypolyclip-1.0.0-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "d725335b4993ef26f807d84b1323b535",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 20041,
"upload_time": "2023-11-06T22:25:04",
"upload_time_iso_8601": "2023-11-06T22:25:04.468083Z",
"url": "https://files.pythonhosted.org/packages/4a/fc/fd1bcf13a1ade7d108be91ae0b13fdc8dd27abda6509598f871f6539f64a/pypolyclip-1.0.0-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "400244bae8f98f936879b0a3df42a3dac68e532cf0589eedc042859229da4d23",
"md5": "877f31b7c2b2c2d0d17a7acb3bfc5509",
"sha256": "20f964cf9755d7b0affdcf6a7f7d3a25606e437a9db827408e003885459ad7d5"
},
"downloads": -1,
"filename": "pypolyclip-1.0.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "877f31b7c2b2c2d0d17a7acb3bfc5509",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 39793,
"upload_time": "2023-11-06T22:25:06",
"upload_time_iso_8601": "2023-11-06T22:25:06.152144Z",
"url": "https://files.pythonhosted.org/packages/40/02/44bae8f98f936879b0a3df42a3dac68e532cf0589eedc042859229da4d23/pypolyclip-1.0.0-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": "52c26d66731c63d0f60a385b72f96d68ef418014dfc27f34a674b0d00148f08b",
"md5": "1719a014b83b64f65ad37926a104a405",
"sha256": "c078e67ae3413bc788e2724c9ec2ae61c4d98c9c541a76991003f2da239a989d"
},
"downloads": -1,
"filename": "pypolyclip-1.0.0-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "1719a014b83b64f65ad37926a104a405",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 22362,
"upload_time": "2023-11-06T22:25:07",
"upload_time_iso_8601": "2023-11-06T22:25:07.222361Z",
"url": "https://files.pythonhosted.org/packages/52/c2/6d66731c63d0f60a385b72f96d68ef418014dfc27f34a674b0d00148f08b/pypolyclip-1.0.0-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-06 22:24:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "spacetelescope",
"github_project": "pypolyclip",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "pypolyclip"
}