{ "info": { "author": "Frederik Berlaen", "author_email": "frederik@typemytype.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Multimedia :: Graphics :: Editors :: Vector-Based", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "|Build Status| |PyPI| |Python Versions|\n\nBooleanOperations\n=================\n\nBoolean operations on paths which uses a super fast `polygon clipper\nlibrary by Angus Johnson `__.\n\nYou can download the latest version from PyPI:\n\nhttps://pypi.org/project/booleanOperations.\n\nInstall\n-------\n\n`Pip `__ is the recommended tool to\ninstall booleanOperations.\n\nTo install the latest version:\n\n.. code:: sh\n\n pip install booleanOperations\n\nBooleanOperations depends on the following packages:\n\n- `pyclipper `__: Cython wrapper for\n the C++ Clipper library\n- `fonttools `__\n\nAll dependencies are available on PyPI, so they will be resolved\nautomatically upon installing booleanOperations.\n\nBooleanOperationManager\n-----------------------\n\nContaining a ``BooleanOperationManager`` handling all boolean operations\non paths. Paths must be similar to ``defcon``, ``robofab`` contours. A\nmanager draws the result in a ``pointPen``.\n\n.. code:: py\n\n from booleanOperations import BooleanOperationManager\n\n manager = BooleanOperationManager()\n\nBooleanOperationManager()\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nCreate a ``BooleanOperationManager``.\n\nmanager.union(contours, pointPen)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nPerforms a union on all ``contours`` and draw it in the ``pointPen``.\n(this is a what a remove overlaps does)\n\nmanager.difference(contours, clipContours, pointPen)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nKnock out the ``clipContours`` from the ``contours`` and draw it in the\n``pointPen``.\n\nmanager.intersection(contours, clipContours, pointPen)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nDraw only the overlaps from the ``contours`` with the\n``clipContours``\\ and draw it in the ``pointPen``.\n\nmanager.xor(contours, clipContours, pointPen)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nDraw only the parts that not overlaps from the ``contours`` with the\n``clipContours``\\ and draw it in the ``pointPen``.\n\nmanager.getIntersections(contours)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nReturning all intersection for the given contours\n\nBooleanGlyph\n------------\n\nA glyph like object with boolean powers.\n\n.. code:: py\n\n from booleanOperations.booleanGlyph import BooleanGlyph\n\n booleanGlyph = BooleanGlyph(sourceGlyph)\n\nBooleanGlyph(sourceGlyph)\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nCreate a ``BooleanGlyph`` object from ``sourceGlyph``. This is a very\nshallow glyph object with basic support.\n\nbooleanGlyph.union(other)\n^^^^^^^^^^^^^^^^^^^^^^^^^\n\nPerform a **union** with the ``other``. Other must be a glyph or\n``BooleanGlyph`` object.\n\n.. code:: py\n\n result = BooleanGlyph(glyph).union(BooleanGlyph(glyph2))\n result = BooleanGlyph(glyph) | BooleanGlyph(glyph2)\n\nbooleanGlyph.difference(other)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nPerform a **difference** with the ``other``. Other must be a glyph or\n``BooleanGlyph`` object.\n\n.. code:: py\n\n result = BooleanGlyph(glyph).difference(BooleanGlyph(glyph2))\n result = BooleanGlyph(glyph) % BooleanGlyph(glyph2)\n\nbooleanGlyph.intersection(other)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nPerform a **intersection** with the ``other``. Other must be a glyph or\n``BooleanGlyph`` object.\n\n.. code:: py\n\n result = BooleanGlyph(glyph).intersection(BooleanGlyph(glyph2))\n result = BooleanGlyph(glyph) & BooleanGlyph(glyph2)\n\nbooleanGlyph.xor(other)\n^^^^^^^^^^^^^^^^^^^^^^^\n\nPerform a **xor** with the ``other``. Other must be a glyph or\n``BooleanGlyph`` object.\n\n.. code:: py\n\n result = BooleanGlyph(glyph).xor(BooleanGlyph(glyph2))\n result = BooleanGlyph(glyph) ^ BooleanGlyph(glyph2)\n\nbooleanGlyph.removeOverlap()\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nPerform a **union** on it self. This will remove all overlapping\ncontours and self intersecting contours.\n\n.. code:: py\n\n result = BooleanGlyph(glyph).removeOverlap()\n\n--------------\n\nbooleanGlyph.name\n^^^^^^^^^^^^^^^^^\n\nThe **name** of the ``sourceGlyph``.\n\nbooleanGlyph.unicodes\n^^^^^^^^^^^^^^^^^^^^^\n\nThe **unicodes** of the ``sourceGlyph``.\n\nbooleanGlyph.width\n^^^^^^^^^^^^^^^^^^\n\nThe **width** of the ``sourceGlyph``.\n\nbooleanGlyph.lib\n^^^^^^^^^^^^^^^^\n\nThe **lib** of the ``sourceGlyph``.\n\nbooleanGlyph.note\n^^^^^^^^^^^^^^^^^\n\nThe **note** of the ``sourceGlyph``.\n\nbooleanGlyph.contours\n^^^^^^^^^^^^^^^^^^^^^\n\nList the **contours** of the glyph.\n\nbooleanGlyph.components\n^^^^^^^^^^^^^^^^^^^^^^^\n\nList the **components** of the glyph.\n\nbooleanGlyph.anchors\n^^^^^^^^^^^^^^^^^^^^\n\nList the **anchors** of the glyph.\n\n.. |Build Status| image:: https://api.travis-ci.org/typemytype/booleanOperations.svg\n :target: https://travis-ci.org/typemytype/booleanOperations\n.. |PyPI| image:: https://img.shields.io/pypi/v/booleanOperations.svg\n :target: https://pypi.org/project/booleanOperations/\n.. |Python Versions| image:: https://img.shields.io/badge/python-2.7%2C%203.4%2C%203.5%2C%203.6-blue.svg\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/typemytype/booleanOperations", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "booleanOperations", "package_url": "https://pypi.org/project/booleanOperations/", "platform": "", "project_url": "https://pypi.org/project/booleanOperations/", "project_urls": { "Homepage": "https://github.com/typemytype/booleanOperations" }, "release_url": "https://pypi.org/project/booleanOperations/0.8.2/", "requires_dist": [ "pyclipper (>=1.0.5)", "fonttools (>=3.32.0)" ], "requires_python": "", "summary": "Boolean operations on paths.", "version": "0.8.2" }, "last_serial": 4603261, "releases": { "0.5.1": [ { "comment_text": "", "digests": { "md5": "87ce4750634b36c2c603c52407699d09", "sha256": "b7e6e33cdc7ed4738fa4fdd856c53c545ff4f6c9064623421719c3ebece3eb34" }, "downloads": -1, "filename": "booleanOperations-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "87ce4750634b36c2c603c52407699d09", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19353, "upload_time": "2016-09-11T02:35:22", "url": "https://files.pythonhosted.org/packages/9e/bc/d18f3d6ae57328bcf20280c5380251873ac7afca8b16fc748dc1604d448e/booleanOperations-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e49b09dab0d4109be5b5830940e7bf2a", "sha256": "d30e7e539bf0a8148b88facd4934b5334f8dbbaa36678c87bb83519f3c9f3383" }, "downloads": -1, "filename": "booleanOperations-0.5.1.zip", "has_sig": false, "md5_digest": "e49b09dab0d4109be5b5830940e7bf2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24004, "upload_time": "2016-09-11T02:35:24", "url": "https://files.pythonhosted.org/packages/7f/7c/a5f77621c8b2bb32b9fcc7c032dbf14a9bc15957029d4b393463bcec662f/booleanOperations-0.5.1.zip" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "cb6f42b12a9ac691f178062edc73df78", "sha256": "1e13b6f0207a470696e3800396e670e2fe7a7e426cb8e7169e782508b93c7867" }, "downloads": -1, "filename": "booleanOperations-0.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cb6f42b12a9ac691f178062edc73df78", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19621, "upload_time": "2016-09-11T19:00:56", "url": "https://files.pythonhosted.org/packages/f7/77/03692740062d9fb8961527cf1a61b35a211d8d035d25fe484fc29c3a1884/booleanOperations-0.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "60a76481b3a33555c36e9beac62f130a", "sha256": "b6d962e8fc8f3be0c919fabaa29181a8c1c80cf81f5f088eb61573fe9feb6d99" }, "downloads": -1, "filename": "booleanOperations-0.5.2.zip", "has_sig": false, "md5_digest": "60a76481b3a33555c36e9beac62f130a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24117, "upload_time": "2016-09-11T19:00:58", "url": "https://files.pythonhosted.org/packages/87/be/daae336aeec9ff516dfe2185b7fdf8509a5c99468fc085c6ce9e83bb6f56/booleanOperations-0.5.2.zip" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "93853bdc4f56e28b9174fa69e96e5a46", "sha256": "f3ba4afdc95f834e97883781d8a5c8fe46b54fad99a9dfddbb8bc726de0a10ed" }, "downloads": -1, "filename": "booleanOperations-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "93853bdc4f56e28b9174fa69e96e5a46", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20215, "upload_time": "2016-10-18T09:03:09", "url": "https://files.pythonhosted.org/packages/96/e8/004bdeb07c8125ea981ed36f697f803d3667c5bfd8a9f3e0da5244631a2d/booleanOperations-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aac5185180d4a6b2da61b49cfb18989c", "sha256": "0c446c678eee61d1217c1f3811d8f4b13e405e90e25ee1e8382ebc9a50c76b7e" }, "downloads": -1, "filename": "booleanOperations-0.6.0.zip", "has_sig": false, "md5_digest": "aac5185180d4a6b2da61b49cfb18989c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24763, "upload_time": "2016-10-18T09:07:40", "url": "https://files.pythonhosted.org/packages/1d/19/b4b927d454e7af0de5f99da78c2ef25153daede3426f9070d0f2d5273ffc/booleanOperations-0.6.0.zip" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "d15b3a44618de040cb3d563ddf31d2b8", "sha256": "35c73cfc63a1ef49ef43ae77fb3219f88165db6a531870b82fcbae461763d69b" }, "downloads": -1, "filename": "booleanOperations-0.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d15b3a44618de040cb3d563ddf31d2b8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20175, "upload_time": "2016-10-18T12:15:33", "url": "https://files.pythonhosted.org/packages/53/20/337865518c395dd237ea212ecb3e8274951a5a6d84e13520ef4a26761e55/booleanOperations-0.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "332037529d8b1e883a1be97fc39197b4", "sha256": "34b30851918ab9f8a51bbb46321625ad570180ff9b9d8c2a750f41d573891774" }, "downloads": -1, "filename": "booleanOperations-0.6.1.zip", "has_sig": false, "md5_digest": "332037529d8b1e883a1be97fc39197b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24446, "upload_time": "2016-10-18T13:19:56", "url": "https://files.pythonhosted.org/packages/26/2c/aac83fc3178c920c4439a48e31f129f625c2827d652acf4add1e0432354b/booleanOperations-0.6.1.zip" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "daafa5a8628a4a9000207fd8f299f334", "sha256": "097f7cc03fb507f04dba04f57ddbb46bcc3318eb7eeb78d0c155f1fb606d047c" }, "downloads": -1, "filename": "booleanOperations-0.6.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "daafa5a8628a4a9000207fd8f299f334", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20175, "upload_time": "2016-10-28T16:58:22", "url": "https://files.pythonhosted.org/packages/64/61/0b6102bdd2d81c36843b2bbf4a3f80dfd429b7a68b4508fbb362d5a338b0/booleanOperations-0.6.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ca8ec234153bf258c9605836d8157fe0", "sha256": "ced55e021d2bf779d8eb079eb6a2ede00eaa98e193fdc87d698a26d03319ff9b" }, "downloads": -1, "filename": "booleanOperations-0.6.2.zip", "has_sig": false, "md5_digest": "ca8ec234153bf258c9605836d8157fe0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24458, "upload_time": "2016-10-28T16:58:24", "url": "https://files.pythonhosted.org/packages/9b/9e/bf58ec215c4b07f6506a14a2c010799cd4a0d59a7d16147c4463655c7446/booleanOperations-0.6.2.zip" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "6e1f0e6d673fe79c76c68524c9be27d0", "sha256": "4fb6e3979b0652a693632a0661f600670e87e02e9c0e715eeb1ddc9e4d093b92" }, "downloads": -1, "filename": "booleanOperations-0.6.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6e1f0e6d673fe79c76c68524c9be27d0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20198, "upload_time": "2016-12-17T18:22:14", "url": "https://files.pythonhosted.org/packages/d7/51/34b2da243f4ec8b4d7dccbb5f3b6198c1002e749990d5b8f4bdf0a9c546b/booleanOperations-0.6.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ffea86841ac05f9d87e4f9c6e2ff1a7d", "sha256": "07253797596ab849b56ded2d0c9d56227bcc7f31aaa3bed2c0fcd1b87bed33ae" }, "downloads": -1, "filename": "booleanOperations-0.6.3.zip", "has_sig": false, "md5_digest": "ffea86841ac05f9d87e4f9c6e2ff1a7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24482, "upload_time": "2016-12-17T18:22:14", "url": "https://files.pythonhosted.org/packages/cb/11/305552487e012b26fdddf111dada4bb2359d763ac6fc3334112ad237a478/booleanOperations-0.6.3.zip" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "1c511d105c53968561dd148852e879bd", "sha256": "da2654471d8f748b7743a4a10f5e07706a470f1f4dff1ffd76b4c859bcfc6ac5" }, "downloads": -1, "filename": "booleanOperations-0.6.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1c511d105c53968561dd148852e879bd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20208, "upload_time": "2016-12-18T12:57:09", "url": "https://files.pythonhosted.org/packages/71/6d/fb99f65d2df776922535683b0d87a5b31cbff8904a359933e1710dec6fcf/booleanOperations-0.6.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "65a8d7a5a01d2b8b79df857de2c59d8c", "sha256": "048a084140412dae60506c00650ac3aa685018cc7b7c74b580585975e9f388a8" }, "downloads": -1, "filename": "booleanOperations-0.6.4.zip", "has_sig": false, "md5_digest": "65a8d7a5a01d2b8b79df857de2c59d8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24491, "upload_time": "2016-12-18T12:57:10", "url": "https://files.pythonhosted.org/packages/36/3e/fdc32947a6a24d8989b2d14c5d08127b136d8f8d749816d92ebac241bcd2/booleanOperations-0.6.4.zip" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "f67d4ab64f4fb3f66f1174b5d6ab298b", "sha256": "ca4c85496aef4b414b2a6cb8846dbd5a188002e612d15e1662ba0c99dd770bfd" }, "downloads": -1, "filename": "booleanOperations-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f67d4ab64f4fb3f66f1174b5d6ab298b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20615, "upload_time": "2017-03-21T09:27:06", "url": "https://files.pythonhosted.org/packages/b9/08/6c76904fd2ada13b44ee3041726880c7f8be576c73c3ee22f98a5d051cfe/booleanOperations-0.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "12db1262091dbdc706469fe3daaf6fec", "sha256": "91334a7fc6719eb1a48649afa395c3f1bfc06c22ce141910bcae6c316f0d6735" }, "downloads": -1, "filename": "booleanOperations-0.7.0.zip", "has_sig": false, "md5_digest": "12db1262091dbdc706469fe3daaf6fec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25031, "upload_time": "2017-03-21T09:27:07", "url": "https://files.pythonhosted.org/packages/f0/0c/af1900f7040f3b8718d36ec7652a80b666955551023e46979580257c03d9/booleanOperations-0.7.0.zip" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "5e419a40de62de8707a90836ecfffa32", "sha256": "e671ea1f857a373f1f37bc0b0790623edcd885b5f5e7f3a853a61076d85f2a93" }, "downloads": -1, "filename": "booleanOperations-0.7.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5e419a40de62de8707a90836ecfffa32", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20628, "upload_time": "2017-07-26T18:59:43", "url": "https://files.pythonhosted.org/packages/9f/6f/d0705fdcde22b8320548058e6f0685eb1a55bc1742663f26485d5d841547/booleanOperations-0.7.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15c287368984f3b9374c3c2a22548e7c", "sha256": "b69ad09de1c523a00f3885e933faae27d02435872675faceb17adff6951384c3" }, "downloads": -1, "filename": "booleanOperations-0.7.1.zip", "has_sig": false, "md5_digest": "15c287368984f3b9374c3c2a22548e7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25041, "upload_time": "2017-07-26T18:59:45", "url": "https://files.pythonhosted.org/packages/22/17/51605db89ce6d4dac4d6a87c05a41999780669fae3909d3ab32caf4eccca/booleanOperations-0.7.1.zip" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "8f1c55fed2571341b756d1a115774d8b", "sha256": "e405de0126aaf0f6e4f3dcebd18079db601e825e123cb095366b2a50e9abbc8c" }, "downloads": -1, "filename": "booleanOperations-0.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8f1c55fed2571341b756d1a115774d8b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20739, "upload_time": "2018-01-03T12:08:24", "url": "https://files.pythonhosted.org/packages/bd/98/4c43398f43b023803609ac4ab46b02f10936ba501c8e53e70ee8f21d794d/booleanOperations-0.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "739b9ac5d068ed97f14bea8e6a8d79db", "sha256": "62723b7cabe3e727546df945c155e2f8be9514ef8c4f3b2f0f5cdb24ebbcfdf1" }, "downloads": -1, "filename": "booleanOperations-0.8.0.zip", "has_sig": false, "md5_digest": "739b9ac5d068ed97f14bea8e6a8d79db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25143, "upload_time": "2018-01-03T12:08:25", "url": "https://files.pythonhosted.org/packages/69/6c/3a75fb491bafd4d485f13b100cd0830399920ade0b605ca55052cfbec5ee/booleanOperations-0.8.0.zip" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "7116a60a119b98049da649630c0d9084", "sha256": "9cb2f93cf0c61a976989d244d5dfe11ee9644f635e4a96720b9bed9f58fd8d3b" }, "downloads": -1, "filename": "booleanOperations-0.8.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7116a60a119b98049da649630c0d9084", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18434, "upload_time": "2018-11-01T17:59:50", "url": "https://files.pythonhosted.org/packages/fe/79/61486c10d1d7c4ac1da6009d8c7d4982dc2683da99b380b9374a058f163d/booleanOperations-0.8.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "416a21d3fb9132187d7361a139db65be", "sha256": "020cc9b50c68d4694697993dfd53c1237d5af2d8bc1abf0a328ff78ffb2a2375" }, "downloads": -1, "filename": "booleanOperations-0.8.1.zip", "has_sig": false, "md5_digest": "416a21d3fb9132187d7361a139db65be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63350, "upload_time": "2018-11-01T17:59:51", "url": "https://files.pythonhosted.org/packages/37/6d/806f33e442c21a6b823a218786b627cba9a9c78ee90181e59b983cc671bb/booleanOperations-0.8.1.zip" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "32690c4b28deb92ea654848054790b52", "sha256": "5163839dfe337ff7e30e80feee47a82a9720c972b5ae7779118aa995c30d731b" }, "downloads": -1, "filename": "booleanOperations-0.8.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "32690c4b28deb92ea654848054790b52", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18521, "upload_time": "2018-12-10T16:32:09", "url": "https://files.pythonhosted.org/packages/3d/67/05961a78573d5d4a710939bb9e0de6b828fd2902635db6ea66c0a54bafc5/booleanOperations-0.8.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4ddd0f486e4b213d35d4071aa47d864", "sha256": "1750def605e53ca13cf45fedd31b360d241cc6082523e4b71d86c72dd3e9bc8a" }, "downloads": -1, "filename": "booleanOperations-0.8.2.zip", "has_sig": false, "md5_digest": "d4ddd0f486e4b213d35d4071aa47d864", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 202758, "upload_time": "2018-12-10T16:32:11", "url": "https://files.pythonhosted.org/packages/e6/99/1ded4964e5d0c9d0d10800fadaa6b9e653f615e630e99745ea35bacc5678/booleanOperations-0.8.2.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "32690c4b28deb92ea654848054790b52", "sha256": "5163839dfe337ff7e30e80feee47a82a9720c972b5ae7779118aa995c30d731b" }, "downloads": -1, "filename": "booleanOperations-0.8.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "32690c4b28deb92ea654848054790b52", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18521, "upload_time": "2018-12-10T16:32:09", "url": "https://files.pythonhosted.org/packages/3d/67/05961a78573d5d4a710939bb9e0de6b828fd2902635db6ea66c0a54bafc5/booleanOperations-0.8.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4ddd0f486e4b213d35d4071aa47d864", "sha256": "1750def605e53ca13cf45fedd31b360d241cc6082523e4b71d86c72dd3e9bc8a" }, "downloads": -1, "filename": "booleanOperations-0.8.2.zip", "has_sig": false, "md5_digest": "d4ddd0f486e4b213d35d4071aa47d864", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 202758, "upload_time": "2018-12-10T16:32:11", "url": "https://files.pythonhosted.org/packages/e6/99/1ded4964e5d0c9d0d10800fadaa6b9e653f615e630e99745ea35bacc5678/booleanOperations-0.8.2.zip" } ] }