``bezier``
==========
Helper for B |eacute| zier Curves, Triangles, and Higher Order Objects
|linux-build| |macos-build| |windows-build| |coverage|
|docs| |zenodo| |JOSS|
.. |eacute| unicode:: U+000E9 .. LATIN SMALL LETTER E WITH ACUTE
:trim:
This library provides:
* Support for B |eacute| zier `Curves`_
* Support for B |eacute| zier `Triangles`_
Dive in and take a look!
.. image:: https://raw.githubusercontent.com/dhermes/bezier/2023.7.28/docs/images/triangles6Q_and_7Q.png
:align: center
Why B |eacute| zier?
--------------------
A B |eacute| zier curve (and triangle, etc.) is a parametric curve
that uses the `Bernstein basis`_:
.. image:: https://raw.githubusercontent.com/dhermes/bezier/2023.7.28/docs/images/bernstein_basis.png
:align: center
to define a curve as a linear combination:
.. image:: https://raw.githubusercontent.com/dhermes/bezier/2023.7.28/docs/images/bezier_defn.png
:align: center
This comes from the fact that the weights sum to one:
.. image:: https://raw.githubusercontent.com/dhermes/bezier/2023.7.28/docs/images/sum_to_unity.png
:align: center
This can be generalized to higher order by considering three, four, etc.
non-negative weights that sum to one (in the above we have the two
non-negative weights ``s`` and ``1 - s``).
Due to their simple form, B |eacute| zier curves:
* can easily model geometric objects as parametric curves, triangles, etc.
* can be computed in an efficient and numerically stable way via
`de Casteljau's algorithm`_
* can utilize convex optimization techniques for many algorithms (such as
curve-curve intersection), since curves (and triangles, etc.)
are convex combinations of the basis
Many applications -- as well as the history of their development --
are described in
"The Bernstein polynomial basis: A centennial `retrospective`_",
for example;
* aids physical analysis using finite element methods (`FEM`_) on
isogeometric models by using geometric shape functions called
`NURBS`_ to represent data
* used in robust control of dynamic systems; utilizes convexity to
create a hull of curves
.. _retrospective: https://dx.doi.org/10.1016/j.cagd.2012.03.001
.. _Bernstein basis: https://en.wikipedia.org/wiki/Bernstein_polynomial
.. _de Casteljau's algorithm: https://en.wikipedia.org/wiki/De_Casteljau%27s_algorithm
.. _FEM: https://en.wikipedia.org/wiki/Finite_element_method
.. _NURBS: https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline
Installing
----------
The ``bezier`` Python package can be installed with `pip`_:
.. code-block:: console
$ python -m pip install --upgrade bezier
$ python3.11 -m pip install --upgrade bezier
$ # To install optional dependencies, e.g. SymPy
$ python -m pip install --upgrade bezier[full]
To install a pure Python version (i.e. with no binary extension):
.. code-block:: console
$ BEZIER_NO_EXTENSION=true \
> python -m pip install --upgrade bezier --no-binary=bezier
``bezier`` is open-source, so you can alternatively grab the source
code from `GitHub`_ and install from source.
.. _pip: https://pip.pypa.io
.. _GitHub: https://github.com/dhermes/bezier/
Getting Started
---------------
For example, to create a curve:
.. code-block:: python
>>> import bezier
>>> import numpy as np
>>> nodes1 = np.asfortranarray([
... [0.0, 0.5, 1.0],
... [0.0, 1.0, 0.0],
... ])
>>> curve1 = bezier.Curve(nodes1, degree=2)
The intersection (points) between two curves can
also be determined:
.. code-block:: python
>>> nodes2 = np.asfortranarray([
... [0.0, 0.25, 0.5, 0.75, 1.0],
... [0.0, 2.0 , -2.0, 2.0 , 0.0],
... ])
>>> curve2 = bezier.Curve.from_nodes(nodes2)
>>> intersections = curve1.intersect(curve2)
>>> intersections
array([[0.31101776, 0.68898224, 0. , 1. ],
[0.31101776, 0.68898224, 0. , 1. ]])
>>> s_vals = np.asfortranarray(intersections[0, :])
>>> points = curve1.evaluate_multi(s_vals)
>>> points
array([[0.31101776, 0.68898224, 0. , 1. ],
[0.42857143, 0.42857143, 0. , 0. ]])
and then we can plot these curves (along with their
intersections):
.. code-block:: python
>>> import seaborn
>>> seaborn.set()
>>>
>>> ax = curve1.plot(num_pts=256)
>>> _ = curve2.plot(num_pts=256, ax=ax)
>>> lines = ax.plot(
... points[0, :], points[1, :],
... marker="o", linestyle="None", color="black")
>>> _ = ax.axis("scaled")
>>> _ = ax.set_xlim(-0.125, 1.125)
>>> _ = ax.set_ylim(-0.0625, 0.625)
.. image:: https://raw.githubusercontent.com/dhermes/bezier/2023.7.28/docs/images/curves1_and_13.png
:align: center
For API-level documentation, check out the B |eacute| zier Python
`package`_ documentation.
Development
-----------
To work on adding a feature or to run the functional tests, see the
`DEVELOPMENT doc`_ for more information on how to get
started.
Citation
--------
For publications that use ``bezier``, there is a `JOSS paper`_ that can be
cited. The following BibTeX entry can be used:
.. code-block:: rest
@article{Hermes2017,
doi = {10.21105/joss.00267},
url = {https://doi.org/10.21105%2Fjoss.00267},
year = {2017},
month = {Aug},
publisher = {The Open Journal},
volume = {2},
number = {16},
pages = {267},
author = {Danny Hermes},
title = {Helper for B{\'{e}}zier Curves, Triangles, and Higher Order Objects},
journal = {The Journal of Open Source Software}
}
A **particular** version of this library can be cited via a Zenodo DOI; see
a full `list by version`_.
.. _JOSS paper: https://joss.theoj.org/papers/10.21105/joss.00267
.. _list by version: https://zenodo.org/search?page=1&size=20&q=conceptrecid:%22838307%22&sort=-version&all_versions=True
License
-------
``bezier`` is made available under the Apache 2.0 License. For more
details, see `the LICENSE`_.
.. _Curves: https://bezier.readthedocs.io/en/2023.7.28/python/reference/bezier.curve.html
.. _Triangles: https://bezier.readthedocs.io/en/2023.7.28/python/reference/bezier.triangle.html
.. _package: https://bezier.readthedocs.io/en/2023.7.28/python/reference/bezier.html
.. _DEVELOPMENT doc: https://github.com/dhermes/bezier/blob/2023.7.28/DEVELOPMENT.rst
.. _the LICENSE: https://github.com/dhermes/bezier/blob/2023.7.28/LICENSE
.. |docs| image:: https://readthedocs.org/projects/bezier/badge/?version=2023.7.28
:target: https://bezier.readthedocs.io/en/2023.7.28/
:alt: Documentation Status
.. |linux-build| image:: https://raw.githubusercontent.com/dhermes/bezier/2023.7.28/docs/linux-passing.svg?sanitize=true
:target: https://github.com/dhermes/bezier/actions/runs/5698156661
:alt: Linux Build (GitHub Actions)
.. |macos-build| image:: https://raw.githubusercontent.com/dhermes/bezier/2023.7.28/docs/macos-passing.svg?sanitize=true
:target: https://github.com/dhermes/bezier/actions/runs/5698156663
:alt: macOS Build (GitHub Actions)
.. |windows-build| image:: https://raw.githubusercontent.com/dhermes/bezier/2023.7.28/docs/windows-passing.svg?sanitize=true
:target: https://github.com/dhermes/bezier/actions/run/5698156662
:alt: Windows Build (GitHub Actions)
.. |coverage| image:: https://s3.amazonaws.com/assets.coveralls.io/badges/coveralls_100.svg
:target: https://coveralls.io/builds/61654285
:alt: Code Coverage
.. |zenodo| image:: https://zenodo.org/badge/73047402.svg
:target: https://zenodo.org/badge/latestdoi/73047402
:alt: Zenodo DOI for ``bezier``
.. |JOSS| image:: https://joss.theoj.org/papers/10.21105/joss.00267/status.svg
:target: https://dx.doi.org/10.21105/joss.00267
:alt: "Journal of Open Source Science" DOI for ``bezier``
Raw data
{
"_id": null,
"home_page": "https://github.com/dhermes/bezier",
"name": "bezier",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "Geometry,Curve,Bezier,Intersection,Python",
"author": "Danny Hermes",
"author_email": "daniel.j.hermes@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/cb/b4/bc9fcd3ea73fb084a1686b11313e91276168a53d85ecc161d3bab8832c6a/bezier-2023.7.28.tar.gz",
"platform": "Posix; macOS; Windows",
"description": "``bezier``\n==========\n\n Helper for B |eacute| zier Curves, Triangles, and Higher Order Objects\n\n|linux-build| |macos-build| |windows-build| |coverage|\n\n|docs| |zenodo| |JOSS|\n\n.. |eacute| unicode:: U+000E9 .. LATIN SMALL LETTER E WITH ACUTE\n :trim:\n\nThis library provides:\n\n* Support for B |eacute| zier `Curves`_\n* Support for B |eacute| zier `Triangles`_\n\nDive in and take a look!\n\n.. image:: https://raw.githubusercontent.com/dhermes/bezier/2023.7.28/docs/images/triangles6Q_and_7Q.png\n :align: center\n\nWhy B |eacute| zier?\n--------------------\n\nA B |eacute| zier curve (and triangle, etc.) is a parametric curve\nthat uses the `Bernstein basis`_:\n\n.. image:: https://raw.githubusercontent.com/dhermes/bezier/2023.7.28/docs/images/bernstein_basis.png\n :align: center\n\nto define a curve as a linear combination:\n\n.. image:: https://raw.githubusercontent.com/dhermes/bezier/2023.7.28/docs/images/bezier_defn.png\n :align: center\n\nThis comes from the fact that the weights sum to one:\n\n.. image:: https://raw.githubusercontent.com/dhermes/bezier/2023.7.28/docs/images/sum_to_unity.png\n :align: center\n\nThis can be generalized to higher order by considering three, four, etc.\nnon-negative weights that sum to one (in the above we have the two\nnon-negative weights ``s`` and ``1 - s``).\n\nDue to their simple form, B |eacute| zier curves:\n\n* can easily model geometric objects as parametric curves, triangles, etc.\n* can be computed in an efficient and numerically stable way via\n `de Casteljau's algorithm`_\n* can utilize convex optimization techniques for many algorithms (such as\n curve-curve intersection), since curves (and triangles, etc.)\n are convex combinations of the basis\n\nMany applications -- as well as the history of their development --\nare described in\n\"The Bernstein polynomial basis: A centennial `retrospective`_\",\nfor example;\n\n* aids physical analysis using finite element methods (`FEM`_) on\n isogeometric models by using geometric shape functions called\n `NURBS`_ to represent data\n* used in robust control of dynamic systems; utilizes convexity to\n create a hull of curves\n\n.. _retrospective: https://dx.doi.org/10.1016/j.cagd.2012.03.001\n.. _Bernstein basis: https://en.wikipedia.org/wiki/Bernstein_polynomial\n.. _de Casteljau's algorithm: https://en.wikipedia.org/wiki/De_Casteljau%27s_algorithm\n.. _FEM: https://en.wikipedia.org/wiki/Finite_element_method\n.. _NURBS: https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline\n\nInstalling\n----------\n\nThe ``bezier`` Python package can be installed with `pip`_:\n\n.. code-block:: console\n\n $ python -m pip install --upgrade bezier\n $ python3.11 -m pip install --upgrade bezier\n $ # To install optional dependencies, e.g. SymPy\n $ python -m pip install --upgrade bezier[full]\n\nTo install a pure Python version (i.e. with no binary extension):\n\n.. code-block:: console\n\n $ BEZIER_NO_EXTENSION=true \\\n > python -m pip install --upgrade bezier --no-binary=bezier\n\n``bezier`` is open-source, so you can alternatively grab the source\ncode from `GitHub`_ and install from source.\n\n.. _pip: https://pip.pypa.io\n.. _GitHub: https://github.com/dhermes/bezier/\n\nGetting Started\n---------------\n\nFor example, to create a curve:\n\n.. code-block:: python\n\n >>> import bezier\n >>> import numpy as np\n >>> nodes1 = np.asfortranarray([\n ... [0.0, 0.5, 1.0],\n ... [0.0, 1.0, 0.0],\n ... ])\n >>> curve1 = bezier.Curve(nodes1, degree=2)\n\nThe intersection (points) between two curves can\nalso be determined:\n\n.. code-block:: python\n\n >>> nodes2 = np.asfortranarray([\n ... [0.0, 0.25, 0.5, 0.75, 1.0],\n ... [0.0, 2.0 , -2.0, 2.0 , 0.0],\n ... ])\n >>> curve2 = bezier.Curve.from_nodes(nodes2)\n >>> intersections = curve1.intersect(curve2)\n >>> intersections\n array([[0.31101776, 0.68898224, 0. , 1. ],\n [0.31101776, 0.68898224, 0. , 1. ]])\n >>> s_vals = np.asfortranarray(intersections[0, :])\n >>> points = curve1.evaluate_multi(s_vals)\n >>> points\n array([[0.31101776, 0.68898224, 0. , 1. ],\n [0.42857143, 0.42857143, 0. , 0. ]])\n\nand then we can plot these curves (along with their\nintersections):\n\n.. code-block:: python\n\n >>> import seaborn\n >>> seaborn.set()\n >>>\n >>> ax = curve1.plot(num_pts=256)\n >>> _ = curve2.plot(num_pts=256, ax=ax)\n >>> lines = ax.plot(\n ... points[0, :], points[1, :],\n ... marker=\"o\", linestyle=\"None\", color=\"black\")\n >>> _ = ax.axis(\"scaled\")\n >>> _ = ax.set_xlim(-0.125, 1.125)\n >>> _ = ax.set_ylim(-0.0625, 0.625)\n\n.. image:: https://raw.githubusercontent.com/dhermes/bezier/2023.7.28/docs/images/curves1_and_13.png\n :align: center\n\nFor API-level documentation, check out the B |eacute| zier Python\n`package`_ documentation.\n\nDevelopment\n-----------\n\nTo work on adding a feature or to run the functional tests, see the\n`DEVELOPMENT doc`_ for more information on how to get\nstarted.\n\nCitation\n--------\n\nFor publications that use ``bezier``, there is a `JOSS paper`_ that can be\ncited. The following BibTeX entry can be used:\n\n.. code-block:: rest\n\n @article{Hermes2017,\n doi = {10.21105/joss.00267},\n url = {https://doi.org/10.21105%2Fjoss.00267},\n year = {2017},\n month = {Aug},\n publisher = {The Open Journal},\n volume = {2},\n number = {16},\n pages = {267},\n author = {Danny Hermes},\n title = {Helper for B{\\'{e}}zier Curves, Triangles, and Higher Order Objects},\n journal = {The Journal of Open Source Software}\n }\n\nA **particular** version of this library can be cited via a Zenodo DOI; see\na full `list by version`_.\n\n.. _JOSS paper: https://joss.theoj.org/papers/10.21105/joss.00267\n.. _list by version: https://zenodo.org/search?page=1&size=20&q=conceptrecid:%22838307%22&sort=-version&all_versions=True\n\nLicense\n-------\n\n``bezier`` is made available under the Apache 2.0 License. For more\ndetails, see `the LICENSE`_.\n\n.. _Curves: https://bezier.readthedocs.io/en/2023.7.28/python/reference/bezier.curve.html\n.. _Triangles: https://bezier.readthedocs.io/en/2023.7.28/python/reference/bezier.triangle.html\n.. _package: https://bezier.readthedocs.io/en/2023.7.28/python/reference/bezier.html\n.. _DEVELOPMENT doc: https://github.com/dhermes/bezier/blob/2023.7.28/DEVELOPMENT.rst\n.. _the LICENSE: https://github.com/dhermes/bezier/blob/2023.7.28/LICENSE\n\n.. |docs| image:: https://readthedocs.org/projects/bezier/badge/?version=2023.7.28\n :target: https://bezier.readthedocs.io/en/2023.7.28/\n :alt: Documentation Status\n.. |linux-build| image:: https://raw.githubusercontent.com/dhermes/bezier/2023.7.28/docs/linux-passing.svg?sanitize=true\n :target: https://github.com/dhermes/bezier/actions/runs/5698156661\n :alt: Linux Build (GitHub Actions)\n.. |macos-build| image:: https://raw.githubusercontent.com/dhermes/bezier/2023.7.28/docs/macos-passing.svg?sanitize=true\n :target: https://github.com/dhermes/bezier/actions/runs/5698156663\n :alt: macOS Build (GitHub Actions)\n.. |windows-build| image:: https://raw.githubusercontent.com/dhermes/bezier/2023.7.28/docs/windows-passing.svg?sanitize=true\n :target: https://github.com/dhermes/bezier/actions/run/5698156662\n :alt: Windows Build (GitHub Actions)\n.. |coverage| image:: https://s3.amazonaws.com/assets.coveralls.io/badges/coveralls_100.svg\n :target: https://coveralls.io/builds/61654285\n :alt: Code Coverage\n.. |zenodo| image:: https://zenodo.org/badge/73047402.svg\n :target: https://zenodo.org/badge/latestdoi/73047402\n :alt: Zenodo DOI for ``bezier``\n.. |JOSS| image:: https://joss.theoj.org/papers/10.21105/joss.00267/status.svg\n :target: https://dx.doi.org/10.21105/joss.00267\n :alt: \"Journal of Open Source Science\" DOI for ``bezier``\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "Helper for B\u00e9zier Curves, Triangles, and Higher Order Objects",
"version": "2023.7.28",
"project_urls": {
"Changelog": "https://bezier.readthedocs.io/en/latest/releases/index.html",
"Documentation": "https://bezier.readthedocs.io/",
"Homepage": "https://github.com/dhermes/bezier",
"Issue Tracker": "https://github.com/dhermes/bezier/issues"
},
"split_keywords": [
"geometry",
"curve",
"bezier",
"intersection",
"python"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ee30d8eb5e170b78743752b183c0f987590afff43167233441fc60f815b264ef",
"md5": "50e30cc0980ce47b77aa5178b3c30233",
"sha256": "5846838f53b1f63fc53a2fb6273966eeaf0e8d6ed81a25368bfda8cc4bfb1f0c"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "50e30cc0980ce47b77aa5178b3c30233",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 1872245,
"upload_time": "2023-07-29T04:07:34",
"upload_time_iso_8601": "2023-07-29T04:07:34.173638Z",
"url": "https://files.pythonhosted.org/packages/ee/30/d8eb5e170b78743752b183c0f987590afff43167233441fc60f815b264ef/bezier-2023.7.28-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "84daabaea567be7198e407f71fba80011bac535a223194258a1e01d1ddad6b55",
"md5": "46fd72b7c5ba7005f5ff8a491f25ca44",
"sha256": "412b15c606183a0aaf9cbc40d4e1069638e60d6a8a80460fb3bd7fb69f92a6b8"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "46fd72b7c5ba7005f5ff8a491f25ca44",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 1216041,
"upload_time": "2023-07-29T04:07:36",
"upload_time_iso_8601": "2023-07-29T04:07:36.928397Z",
"url": "https://files.pythonhosted.org/packages/84/da/abaea567be7198e407f71fba80011bac535a223194258a1e01d1ddad6b55/bezier-2023.7.28-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "043f5c66e135cccc490844f88e38f7286bc9b932456b5d22c83ab54515a42da7",
"md5": "e2d4bfc091a311d44d4b32d4ae565f63",
"sha256": "3db780501aa0ed9224582c28d1b4b35eab764a58096a405fc749691972986cba"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "e2d4bfc091a311d44d4b32d4ae565f63",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 1937874,
"upload_time": "2023-07-29T04:07:39",
"upload_time_iso_8601": "2023-07-29T04:07:39.532886Z",
"url": "https://files.pythonhosted.org/packages/04/3f/5c66e135cccc490844f88e38f7286bc9b932456b5d22c83ab54515a42da7/bezier-2023.7.28-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "07048f146767fef25dfed8bb4285372382a85ae47460d5dc4e53b16de2b0be79",
"md5": "b44358283b607ca3dfad113a57953369",
"sha256": "9af82b42143e5fda2c101308166bc55f4b31ddcbd4e315b25f766668ab87e1b7"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "b44358283b607ca3dfad113a57953369",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 2512248,
"upload_time": "2023-07-29T04:07:41",
"upload_time_iso_8601": "2023-07-29T04:07:41.922153Z",
"url": "https://files.pythonhosted.org/packages/07/04/8f146767fef25dfed8bb4285372382a85ae47460d5dc4e53b16de2b0be79/bezier-2023.7.28-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1edd16754d0fbca66813ea5ef65387ee34bd72887c96a2ee02c86203fc79e752",
"md5": "65eb30e2eb07c66f66dd26f00ab3bab4",
"sha256": "32d6d38d7b3b9cbbea53ed0814b348da8d70718c85213ff48d418968fcf11dd9"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "65eb30e2eb07c66f66dd26f00ab3bab4",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 709292,
"upload_time": "2023-07-29T04:07:43",
"upload_time_iso_8601": "2023-07-29T04:07:43.611496Z",
"url": "https://files.pythonhosted.org/packages/1e/dd/16754d0fbca66813ea5ef65387ee34bd72887c96a2ee02c86203fc79e752/bezier-2023.7.28-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b3065d943bf358835b6c49b6873c88710d6d930abc5380f70f2bdb422e255cef",
"md5": "0b75bc15a9cd8db41f7c9368afcdf6cb",
"sha256": "e8b8a0d049eef63774b805c2e1078337d206b35599e74a43554b687eb650cfd3"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "0b75bc15a9cd8db41f7c9368afcdf6cb",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 1872141,
"upload_time": "2023-07-29T04:07:46",
"upload_time_iso_8601": "2023-07-29T04:07:46.089807Z",
"url": "https://files.pythonhosted.org/packages/b3/06/5d943bf358835b6c49b6873c88710d6d930abc5380f70f2bdb422e255cef/bezier-2023.7.28-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a55bf0ce45e3d82622632a7ba53b70085bb9221ba580eb6875659c571f987832",
"md5": "ccfa91a19b240765249774a4ed2c68a0",
"sha256": "ed0cc6441da427a2ae40dd32eb6b567c1a3e48ccbeecabdb03f93370da762c68"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "ccfa91a19b240765249774a4ed2c68a0",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 1216318,
"upload_time": "2023-07-29T04:07:48",
"upload_time_iso_8601": "2023-07-29T04:07:48.475125Z",
"url": "https://files.pythonhosted.org/packages/a5/5b/f0ce45e3d82622632a7ba53b70085bb9221ba580eb6875659c571f987832/bezier-2023.7.28-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7600c94fccce7423da88c0b453ff0a89eed083f1eb75b435415b455970a6dfd5",
"md5": "aeebaef0d438c39afc7adcef4c8888ce",
"sha256": "aa43e1721f252f99a1d8bc06f66e89e5433604f1b0338fe7e025e4cd4dd579ff"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "aeebaef0d438c39afc7adcef4c8888ce",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 2034896,
"upload_time": "2023-07-29T04:07:50",
"upload_time_iso_8601": "2023-07-29T04:07:50.527994Z",
"url": "https://files.pythonhosted.org/packages/76/00/c94fccce7423da88c0b453ff0a89eed083f1eb75b435415b455970a6dfd5/bezier-2023.7.28-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4f47cb4fd6e9eb3bf8c83499d09c1a36c25c1074d86109f16675f5a4ab365ab0",
"md5": "e052faa563b65caa09f3cf4c10633d53",
"sha256": "17201989272725921b6133ff89ab29f08c5f1c18b29b0bbfe64d95fc61f50a40"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "e052faa563b65caa09f3cf4c10633d53",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 2605890,
"upload_time": "2023-07-29T04:07:52",
"upload_time_iso_8601": "2023-07-29T04:07:52.915203Z",
"url": "https://files.pythonhosted.org/packages/4f/47/cb4fd6e9eb3bf8c83499d09c1a36c25c1074d86109f16675f5a4ab365ab0/bezier-2023.7.28-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "98a6fe2da06010937970a1e151c9fc71708bee8815192a04b8f8d3efa3d103f7",
"md5": "19da82a8f6f9aae2a3829318a46296a1",
"sha256": "355947a0b3bd1a8b978ad992ff8ac538fd46b7dcd6858af62b471445541c38b2"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "19da82a8f6f9aae2a3829318a46296a1",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 709781,
"upload_time": "2023-07-29T04:07:55",
"upload_time_iso_8601": "2023-07-29T04:07:55.038698Z",
"url": "https://files.pythonhosted.org/packages/98/a6/fe2da06010937970a1e151c9fc71708bee8815192a04b8f8d3efa3d103f7/bezier-2023.7.28-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1f8a9b5c82db19f13fa20cb79957769840f57494205943b203116d98d2da722c",
"md5": "4f03ba97e291950fd684c33a928c313b",
"sha256": "b6931d16897a76aecd8d427896af2ea24d00332941cb8f8a6a71ffeb15440800"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp38-cp38-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "4f03ba97e291950fd684c33a928c313b",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 1869712,
"upload_time": "2023-07-29T04:07:57",
"upload_time_iso_8601": "2023-07-29T04:07:57.562495Z",
"url": "https://files.pythonhosted.org/packages/1f/8a/9b5c82db19f13fa20cb79957769840f57494205943b203116d98d2da722c/bezier-2023.7.28-cp38-cp38-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f4214e978cf8b9c9229a78fea25804962ba3e08e507b1a132db0eaccd28508eb",
"md5": "f7b9d3800c250a59065e58004967b741",
"sha256": "9bde270818247331db5c99ef42bf33981c7568825269d5463d28325bbc5d5998"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp38-cp38-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "f7b9d3800c250a59065e58004967b741",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 1215343,
"upload_time": "2023-07-29T04:07:59",
"upload_time_iso_8601": "2023-07-29T04:07:59.893611Z",
"url": "https://files.pythonhosted.org/packages/f4/21/4e978cf8b9c9229a78fea25804962ba3e08e507b1a132db0eaccd28508eb/bezier-2023.7.28-cp38-cp38-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "50e117f4e8a128df601ec07a289ac26457a0d4681dcd8664a7f24cb98bf4032f",
"md5": "c73b9000004d7c37155f10e6d9820da0",
"sha256": "750e239d40e0d8d4b906b2509cf8c3448afabaa5779b3d5642cdc8d1b754fc48"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "c73b9000004d7c37155f10e6d9820da0",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 1980108,
"upload_time": "2023-07-29T04:08:02",
"upload_time_iso_8601": "2023-07-29T04:08:02.123561Z",
"url": "https://files.pythonhosted.org/packages/50/e1/17f4e8a128df601ec07a289ac26457a0d4681dcd8664a7f24cb98bf4032f/bezier-2023.7.28-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ec0a3282ff43228b5a776fd4324f49e115700cc5c7acdcc5f35587fa1c03c27a",
"md5": "58c5e0df1ccb2cb436aa89e3acb243cb",
"sha256": "e247d82ac271b451974e9cc5e8c50a46e0196e1e35ffddee8e90d27bd5e86242"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "58c5e0df1ccb2cb436aa89e3acb243cb",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 2553724,
"upload_time": "2023-07-29T04:08:04",
"upload_time_iso_8601": "2023-07-29T04:08:04.991040Z",
"url": "https://files.pythonhosted.org/packages/ec/0a/3282ff43228b5a776fd4324f49e115700cc5c7acdcc5f35587fa1c03c27a/bezier-2023.7.28-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8a4f2db6b792595f5c4860236172ca78b98101b46b730cb9b0729328ac42ff2e",
"md5": "82a01c51e611becbc7fac5462a6524b6",
"sha256": "922055eb437d46e13a0d20cc2b9ebed093dbbe3a55afb8d30136ffff5ce47620"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp38-cp38-win_amd64.whl",
"has_sig": false,
"md5_digest": "82a01c51e611becbc7fac5462a6524b6",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 710029,
"upload_time": "2023-07-29T04:08:07",
"upload_time_iso_8601": "2023-07-29T04:08:07.172830Z",
"url": "https://files.pythonhosted.org/packages/8a/4f/2db6b792595f5c4860236172ca78b98101b46b730cb9b0729328ac42ff2e/bezier-2023.7.28-cp38-cp38-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a73600b638b0cb1f95a51c0de7a6a90f53f3ac6b948fd2b3255325f7a9dde356",
"md5": "ab4baebb5e013118073d49005e9c32d9",
"sha256": "962d93f7dbfdc37c1fa2f930f304810eff79ef30d067a36c65bbdce0a6356afe"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp39-cp39-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "ab4baebb5e013118073d49005e9c32d9",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 1872446,
"upload_time": "2023-07-29T04:08:09",
"upload_time_iso_8601": "2023-07-29T04:08:09.043638Z",
"url": "https://files.pythonhosted.org/packages/a7/36/00b638b0cb1f95a51c0de7a6a90f53f3ac6b948fd2b3255325f7a9dde356/bezier-2023.7.28-cp39-cp39-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3bda4fd16519cae797cf41e7074a73cafcafab6796445a88edfaf19232066695",
"md5": "d8411ac8293dc4de442890f345a1f335",
"sha256": "6c52b5f083540250da00d586ce5f4e8d8d2434c63b5b815625c5b3e1a602c2e8"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "d8411ac8293dc4de442890f345a1f335",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 1216332,
"upload_time": "2023-07-29T04:08:10",
"upload_time_iso_8601": "2023-07-29T04:08:10.834374Z",
"url": "https://files.pythonhosted.org/packages/3b/da/4fd16519cae797cf41e7074a73cafcafab6796445a88edfaf19232066695/bezier-2023.7.28-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c0fdadfb5be257d9a7d3d6e0403b768bef8cc4c840f3262c8959d4658ebf239c",
"md5": "06fd20fb8004891abc1c01e3f4b4467e",
"sha256": "787023b8e1a5d9056bbb3422ecc84b276cfb03f37e359676e523ca70446c8a33"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "06fd20fb8004891abc1c01e3f4b4467e",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 1944561,
"upload_time": "2023-07-29T04:08:14",
"upload_time_iso_8601": "2023-07-29T04:08:14.078985Z",
"url": "https://files.pythonhosted.org/packages/c0/fd/adfb5be257d9a7d3d6e0403b768bef8cc4c840f3262c8959d4658ebf239c/bezier-2023.7.28-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d1681e2cae4c2327073a1c4312a9e7efc48e0f0735c84edcf3401265386982c3",
"md5": "7c90992727fa962cd40527b5b8e6ce85",
"sha256": "8ae58e466335c5808e8841c46afdd8ac449915895f28d9bd526b19110a6d4caa"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "7c90992727fa962cd40527b5b8e6ce85",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 2517733,
"upload_time": "2023-07-29T04:08:16",
"upload_time_iso_8601": "2023-07-29T04:08:16.976775Z",
"url": "https://files.pythonhosted.org/packages/d1/68/1e2cae4c2327073a1c4312a9e7efc48e0f0735c84edcf3401265386982c3/bezier-2023.7.28-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7f12cc0ea4cb05db7d4117f59ed627634823964700fd5c6194a3a26a56f56401",
"md5": "1a87ee607f368dc566a9f24358d00124",
"sha256": "24fc2c33b98101321906092600a9821b495abe877a029f973882a8e88932d88a"
},
"downloads": -1,
"filename": "bezier-2023.7.28-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "1a87ee607f368dc566a9f24358d00124",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 709905,
"upload_time": "2023-07-29T04:08:18",
"upload_time_iso_8601": "2023-07-29T04:08:18.639041Z",
"url": "https://files.pythonhosted.org/packages/7f/12/cc0ea4cb05db7d4117f59ed627634823964700fd5c6194a3a26a56f56401/bezier-2023.7.28-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cbb4bc9fcd3ea73fb084a1686b11313e91276168a53d85ecc161d3bab8832c6a",
"md5": "d8052824738e6f2f16ae679c1d45a68e",
"sha256": "853256d1e1e9cd82cbb3d1543be906e9d54e8491e3020a90c084a9d18021f63b"
},
"downloads": -1,
"filename": "bezier-2023.7.28.tar.gz",
"has_sig": false,
"md5_digest": "d8052824738e6f2f16ae679c1d45a68e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 348945,
"upload_time": "2023-07-29T04:08:20",
"upload_time_iso_8601": "2023-07-29T04:08:20.190605Z",
"url": "https://files.pythonhosted.org/packages/cb/b4/bc9fcd3ea73fb084a1686b11313e91276168a53d85ecc161d3bab8832c6a/bezier-2023.7.28.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-29 04:08:20",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dhermes",
"github_project": "bezier",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "bezier"
}