``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/2024.6.20/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/2024.6.20/docs/images/bernstein_basis.png
:align: center
to define a curve as a linear combination:
.. image:: https://raw.githubusercontent.com/dhermes/bezier/2024.6.20/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/2024.6.20/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.12 -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/2024.6.20/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/2024.6.20/python/reference/bezier.curve.html
.. _Triangles: https://bezier.readthedocs.io/en/2024.6.20/python/reference/bezier.triangle.html
.. _package: https://bezier.readthedocs.io/en/2024.6.20/python/reference/bezier.html
.. _DEVELOPMENT doc: https://github.com/dhermes/bezier/blob/2024.6.20/DEVELOPMENT.rst
.. _the LICENSE: https://github.com/dhermes/bezier/blob/2024.6.20/LICENSE
.. |docs| image:: https://readthedocs.org/projects/bezier/badge/?version=2024.6.20
:target: https://bezier.readthedocs.io/en/2024.6.20/
:alt: Documentation Status
.. |linux-build| image:: https://raw.githubusercontent.com/dhermes/bezier/2024.6.20/docs/linux-passing.svg?sanitize=true
:target: https://github.com/dhermes/bezier/actions/runs/9607943395
:alt: Linux Build (GitHub Actions)
.. |macos-build| image:: https://raw.githubusercontent.com/dhermes/bezier/2024.6.20/docs/macos-passing.svg?sanitize=true
:target: https://github.com/dhermes/bezier/actions/runs/9607943397
:alt: macOS Build (GitHub Actions)
.. |windows-build| image:: https://raw.githubusercontent.com/dhermes/bezier/2024.6.20/docs/windows-passing.svg?sanitize=true
:target: https://github.com/dhermes/bezier/actions/runs/9607943396
:alt: Windows Build (GitHub Actions)
.. |coverage| image:: https://s3.amazonaws.com/assets.coveralls.io/badges/coveralls_100.svg
:target: https://coveralls.io/builds/68215528
: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": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "Geometry, Curve, Bezier, Intersection, Python",
"author": "Danny Hermes",
"author_email": "daniel.j.hermes@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/1d/1a/28aa7a72a5029f416c7d04c5cdae1b0b00d1c6c72a986689458e8e586446/bezier-2024.6.20.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/2024.6.20/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/2024.6.20/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/2024.6.20/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/2024.6.20/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.12 -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/2024.6.20/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/2024.6.20/python/reference/bezier.curve.html\n.. _Triangles: https://bezier.readthedocs.io/en/2024.6.20/python/reference/bezier.triangle.html\n.. _package: https://bezier.readthedocs.io/en/2024.6.20/python/reference/bezier.html\n.. _DEVELOPMENT doc: https://github.com/dhermes/bezier/blob/2024.6.20/DEVELOPMENT.rst\n.. _the LICENSE: https://github.com/dhermes/bezier/blob/2024.6.20/LICENSE\n\n.. |docs| image:: https://readthedocs.org/projects/bezier/badge/?version=2024.6.20\n :target: https://bezier.readthedocs.io/en/2024.6.20/\n :alt: Documentation Status\n.. |linux-build| image:: https://raw.githubusercontent.com/dhermes/bezier/2024.6.20/docs/linux-passing.svg?sanitize=true\n :target: https://github.com/dhermes/bezier/actions/runs/9607943395\n :alt: Linux Build (GitHub Actions)\n.. |macos-build| image:: https://raw.githubusercontent.com/dhermes/bezier/2024.6.20/docs/macos-passing.svg?sanitize=true\n :target: https://github.com/dhermes/bezier/actions/runs/9607943397\n :alt: macOS Build (GitHub Actions)\n.. |windows-build| image:: https://raw.githubusercontent.com/dhermes/bezier/2024.6.20/docs/windows-passing.svg?sanitize=true\n :target: https://github.com/dhermes/bezier/actions/runs/9607943396\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/68215528\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": "2024.6.20",
"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": "e3266fe7391f422fb18ce258c904cd951f1cedd4e0e13fc4f664b9eec240fc36",
"md5": "36af0abf1052d49aed9986f0bd77f9cf",
"sha256": "65d12159b919e3076c6a1b90c811b740cb1eb557d250947edb7bbc9a2157490d"
},
"downloads": -1,
"filename": "bezier-2024.6.20-cp310-cp310-macosx_14_0_arm64.whl",
"has_sig": false,
"md5_digest": "36af0abf1052d49aed9986f0bd77f9cf",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 1248773,
"upload_time": "2024-06-21T04:21:40",
"upload_time_iso_8601": "2024-06-21T04:21:40.626179Z",
"url": "https://files.pythonhosted.org/packages/e3/26/6fe7391f422fb18ce258c904cd951f1cedd4e0e13fc4f664b9eec240fc36/bezier-2024.6.20-cp310-cp310-macosx_14_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9f72055a5a2f3988fe6ab9dad8f9ba6cfa59af0bbddd6972a76a3659b90ec281",
"md5": "f63e7d927a35199814b3e2f9dadbbc49",
"sha256": "ad7ec863f3fa70bd0774ea49cd8f9ad6310251055ee127917b9b8dce085a9e91"
},
"downloads": -1,
"filename": "bezier-2024.6.20-cp310-cp310-macosx_14_0_x86_64.whl",
"has_sig": false,
"md5_digest": "f63e7d927a35199814b3e2f9dadbbc49",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 1906400,
"upload_time": "2024-06-21T04:21:49",
"upload_time_iso_8601": "2024-06-21T04:21:49.839274Z",
"url": "https://files.pythonhosted.org/packages/9f/72/055a5a2f3988fe6ab9dad8f9ba6cfa59af0bbddd6972a76a3659b90ec281/bezier-2024.6.20-cp310-cp310-macosx_14_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b6200984381a3c9042810b2f9cf39dedac2acffe0546ded10a56cfa43ec4914b",
"md5": "9a04cb18dc129a770bb96f591adc78f9",
"sha256": "4b8c081eacc25c840b1991a11961421cdb0ec41906df015db9ff08322cf63486"
},
"downloads": -1,
"filename": "bezier-2024.6.20-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "9a04cb18dc129a770bb96f591adc78f9",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 1924387,
"upload_time": "2024-06-21T04:21:52",
"upload_time_iso_8601": "2024-06-21T04:21:52.921954Z",
"url": "https://files.pythonhosted.org/packages/b6/20/0984381a3c9042810b2f9cf39dedac2acffe0546ded10a56cfa43ec4914b/bezier-2024.6.20-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "db704ecdf9758fd680fdf423051b58ca2e64b6ff4cdd04f62dc1baceed0e0adf",
"md5": "b333df4a9134d26a55997a50160698a5",
"sha256": "fd1d4776212bdd9aa08ad57fb6a82978d50d0eba6f58f68fad9b83446fe895f3"
},
"downloads": -1,
"filename": "bezier-2024.6.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "b333df4a9134d26a55997a50160698a5",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2499029,
"upload_time": "2024-06-21T04:21:55",
"upload_time_iso_8601": "2024-06-21T04:21:55.166809Z",
"url": "https://files.pythonhosted.org/packages/db/70/4ecdf9758fd680fdf423051b58ca2e64b6ff4cdd04f62dc1baceed0e0adf/bezier-2024.6.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "889d8a08db203aef6289c174bdc9566a2a7a8ff60e5fabbb8c1170b9ff2261ab",
"md5": "65b8cefaf209e381c2945591293b7d33",
"sha256": "191a3c9081d16b36425cc66297f6a8e4460c1b2d43c2ddcd271014fdf99b1e46"
},
"downloads": -1,
"filename": "bezier-2024.6.20-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "65b8cefaf209e381c2945591293b7d33",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 1809884,
"upload_time": "2024-06-21T04:21:57",
"upload_time_iso_8601": "2024-06-21T04:21:57.794257Z",
"url": "https://files.pythonhosted.org/packages/88/9d/8a08db203aef6289c174bdc9566a2a7a8ff60e5fabbb8c1170b9ff2261ab/bezier-2024.6.20-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "96d502911e75ada6f740910a7203510920947acec31c7e910c8cac521ce897bc",
"md5": "cf3ecd022f510f73f78ee3585cb2f1af",
"sha256": "c860cc0e777a06cda9afa019824b9f48578b2964b0ae18ea7cbbe9d1a02066b6"
},
"downloads": -1,
"filename": "bezier-2024.6.20-cp311-cp311-macosx_14_0_arm64.whl",
"has_sig": false,
"md5_digest": "cf3ecd022f510f73f78ee3585cb2f1af",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 1249223,
"upload_time": "2024-06-21T04:22:00",
"upload_time_iso_8601": "2024-06-21T04:22:00.109348Z",
"url": "https://files.pythonhosted.org/packages/96/d5/02911e75ada6f740910a7203510920947acec31c7e910c8cac521ce897bc/bezier-2024.6.20-cp311-cp311-macosx_14_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f4e090eeab82f5e5c2c1f63e2ad7bf9ec188e0c699a410f4df1d886bd6a4b1b4",
"md5": "37f83074c54a586465c054fb4c1e3584",
"sha256": "28c50de2b7bc7afd19b3115e3f8ecad36bc281bf4eafbc335a7651b801dd3544"
},
"downloads": -1,
"filename": "bezier-2024.6.20-cp311-cp311-macosx_14_0_x86_64.whl",
"has_sig": false,
"md5_digest": "37f83074c54a586465c054fb4c1e3584",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 1907265,
"upload_time": "2024-06-21T04:22:03",
"upload_time_iso_8601": "2024-06-21T04:22:03.033368Z",
"url": "https://files.pythonhosted.org/packages/f4/e0/90eeab82f5e5c2c1f63e2ad7bf9ec188e0c699a410f4df1d886bd6a4b1b4/bezier-2024.6.20-cp311-cp311-macosx_14_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "aa81b22deec7817ebdc2da7c45920687b5697830bc0961c83a1d2a72856b3ac7",
"md5": "71f0d3ef4b8cc1af83186eea0bbf22d0",
"sha256": "29bbecca56d6d152cd566ba626ceab1a95bbaf05205acf680da6d4d5beb0e87b"
},
"downloads": -1,
"filename": "bezier-2024.6.20-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "71f0d3ef4b8cc1af83186eea0bbf22d0",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 2016937,
"upload_time": "2024-06-21T04:22:05",
"upload_time_iso_8601": "2024-06-21T04:22:05.938113Z",
"url": "https://files.pythonhosted.org/packages/aa/81/b22deec7817ebdc2da7c45920687b5697830bc0961c83a1d2a72856b3ac7/bezier-2024.6.20-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0eec836adeee81afaabd7f41f7bc3840ffc7e8b50ac1b3ffdf6f6894a13cbcd4",
"md5": "996e7f66ca8158561ccd37d480ce4c6e",
"sha256": "3d3205f96f982f0dc45e1776d8995d572e228b0dbeab234c0acf4618a2e8dce0"
},
"downloads": -1,
"filename": "bezier-2024.6.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "996e7f66ca8158561ccd37d480ce4c6e",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 2592354,
"upload_time": "2024-06-21T04:22:08",
"upload_time_iso_8601": "2024-06-21T04:22:08.258034Z",
"url": "https://files.pythonhosted.org/packages/0e/ec/836adeee81afaabd7f41f7bc3840ffc7e8b50ac1b3ffdf6f6894a13cbcd4/bezier-2024.6.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "709bcab28cdae18f739122905088845f8285f6271af3332e46b051c536804289",
"md5": "612649ee06e9de01060373f597b97849",
"sha256": "ab942ec30c73425d7b7020cbde4e1b7bd7792e914fac585565786b205ef54c94"
},
"downloads": -1,
"filename": "bezier-2024.6.20-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "612649ee06e9de01060373f597b97849",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 1810077,
"upload_time": "2024-06-21T04:22:10",
"upload_time_iso_8601": "2024-06-21T04:22:10.947459Z",
"url": "https://files.pythonhosted.org/packages/70/9b/cab28cdae18f739122905088845f8285f6271af3332e46b051c536804289/bezier-2024.6.20-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0d4bdcfed092496f53565d40f7c3846db030babb227d9e25e44c7e1d4371713f",
"md5": "c5e36136fa1cf2c2aa2299b510ae619d",
"sha256": "e18733c1fcf01a08822e6e8a6f86eb6e56067f368e4b09653d25368881765d7d"
},
"downloads": -1,
"filename": "bezier-2024.6.20-cp312-cp312-macosx_14_0_arm64.whl",
"has_sig": false,
"md5_digest": "c5e36136fa1cf2c2aa2299b510ae619d",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 1246686,
"upload_time": "2024-06-21T04:22:12",
"upload_time_iso_8601": "2024-06-21T04:22:12.980509Z",
"url": "https://files.pythonhosted.org/packages/0d/4b/dcfed092496f53565d40f7c3846db030babb227d9e25e44c7e1d4371713f/bezier-2024.6.20-cp312-cp312-macosx_14_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "034da71c92270739cba039bc110e0c805c3b2f2c8360d7fac3ec861842443571",
"md5": "f5c13d4b3cae8ee251cdcb414d707687",
"sha256": "bbe9e09dfee5cd23033aa4caf3b32b3d05d5977604b95b9c4e0220376c3c34b6"
},
"downloads": -1,
"filename": "bezier-2024.6.20-cp312-cp312-macosx_14_0_x86_64.whl",
"has_sig": false,
"md5_digest": "f5c13d4b3cae8ee251cdcb414d707687",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 1903253,
"upload_time": "2024-06-21T04:22:15",
"upload_time_iso_8601": "2024-06-21T04:22:15.049659Z",
"url": "https://files.pythonhosted.org/packages/03/4d/a71c92270739cba039bc110e0c805c3b2f2c8360d7fac3ec861842443571/bezier-2024.6.20-cp312-cp312-macosx_14_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f13c326228895c155a657079ac0094e8a3d225986332cc5b4c838f48ec18fbad",
"md5": "fc9b1f88ded08efc116cd7e6b768360d",
"sha256": "5199407fb9ad8bbae313dde49119ee33d684c2f81358082edea97345df6f493c"
},
"downloads": -1,
"filename": "bezier-2024.6.20-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "fc9b1f88ded08efc116cd7e6b768360d",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 1972128,
"upload_time": "2024-06-21T04:22:17",
"upload_time_iso_8601": "2024-06-21T04:22:17.150127Z",
"url": "https://files.pythonhosted.org/packages/f1/3c/326228895c155a657079ac0094e8a3d225986332cc5b4c838f48ec18fbad/bezier-2024.6.20-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "00a5dfa67b0de68ca25f37eeef3b85686f191991e8f20f76fdbde870dacb1c56",
"md5": "98348e01c59eeaf53183968df3b08083",
"sha256": "21241b81f75739e2cfb2f705a9bb6e55489cc2d8a1d2a514b68ca55514aa5f09"
},
"downloads": -1,
"filename": "bezier-2024.6.20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "98348e01c59eeaf53183968df3b08083",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 2556550,
"upload_time": "2024-06-21T04:22:19",
"upload_time_iso_8601": "2024-06-21T04:22:19.461782Z",
"url": "https://files.pythonhosted.org/packages/00/a5/dfa67b0de68ca25f37eeef3b85686f191991e8f20f76fdbde870dacb1c56/bezier-2024.6.20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "113c713170cd340a8fc81cc9acb88a5c371f9aaf43102bcdfec9e543843faee4",
"md5": "608a754031a38dfd03885e83cf01a9d6",
"sha256": "8cf8c3e373440f799a48ccdf51bdd6428ceef5e1dd9bae9eb01711a0a73b8fdc"
},
"downloads": -1,
"filename": "bezier-2024.6.20-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "608a754031a38dfd03885e83cf01a9d6",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 1802892,
"upload_time": "2024-06-21T04:22:22",
"upload_time_iso_8601": "2024-06-21T04:22:22.185363Z",
"url": "https://files.pythonhosted.org/packages/11/3c/713170cd340a8fc81cc9acb88a5c371f9aaf43102bcdfec9e543843faee4/bezier-2024.6.20-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1d1a28aa7a72a5029f416c7d04c5cdae1b0b00d1c6c72a986689458e8e586446",
"md5": "6f30f305628b2b6cb9f5615f5c0608ff",
"sha256": "0b46357eb6019f969a583093f66e6b73747d5e41c10d9f3dfe327b2aa43dff8c"
},
"downloads": -1,
"filename": "bezier-2024.6.20.tar.gz",
"has_sig": false,
"md5_digest": "6f30f305628b2b6cb9f5615f5c0608ff",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 354590,
"upload_time": "2024-06-21T04:22:24",
"upload_time_iso_8601": "2024-06-21T04:22:24.330366Z",
"url": "https://files.pythonhosted.org/packages/1d/1a/28aa7a72a5029f416c7d04c5cdae1b0b00d1c6c72a986689458e8e586446/bezier-2024.6.20.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-21 04:22:24",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dhermes",
"github_project": "bezier",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "bezier"
}