Splipy


NameSplipy JSON
Version 1.8.2 PyPI version JSON
download
home_pagehttps://github.com/sintef/Splipy
SummarySpline modelling library for Python
upload_time2024-02-06 21:32:23
maintainerKjetil Andre Johannessen
docs_urlhttps://pythonhosted.org/Splipy/
author
requires_python
licenseGNU public license v3
keywords bspline splines nurbs curve surface volume interpolation approximation fit integration differentiation
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# ![Splipy Logo](images/logo_small.svg) SpliPy

This repository contains the SpliPy packages. SpliPy is a pure python library
for the creation, evaluation and manipulation of B-spline and NURBS geometries.
It supports n-variate splines of any dimension, but emphasis is made on the
use of curves, surfaces and volumes. The library is designed primarily for
analysis use, and therefore allows fine-grained control over many aspects which
is not possible to achieve with conventional CAD tools.

## Features

SpliPy allows for the generation of parametric curves, surfaces and volumes in the form of non-uniform rational B-splines (NURBS). It supports traditional curve- and surface-fitting methods such as (but not limited to)

### Curve fitting
* Bezier curves
* Hermite Interpolation
* Cubic Curve Interpolation
* B-spline Interpolation
* Least Square Fit

### Surface operations
* Sweep
* Revolve
* Loft
* Edge_Curves (interior from four edges)
* Extrude
* Structured Point Cloud Interpolation
* Least Square Fit

**Revolve**
![Revolve](images/revolve.png)

**Sweep**
![Sweep](images/sweep.png)

**Loft**
![Loft](images/loft.png)

### Volume operations
* Revolve
* Extrude
* Loft
* Structured Point Cloud Interpolation
* Least Square Fit

In addition to these basic building blocks, it also supports a number of primitive shapes such as (but not limited to)

### Primitive shapes
* Cube
* Circle
* Disc
* Cylinder
* Torus
* Teapot

## Examples

### Derivatives of spline curves
``` python
  from splipy import *
  import numpy as np

  n = 250                                  # number of evaluation points
  c = curve_factory.circle()               # create the NURBS circle (r=1)
  t = np.linspace(c.start(0), c.end(0), n) # parametric evaluation points
  x = c(t)                                 # physical (x,y)-coordinates, size (n,2)
  v = c.derivative(t, 1)                   # velocity at all points
  a = c.derivative(t, 2)                   # acceleration at all points
```

![Missing circle animation](http://i.imgur.com/8MaBiTW.gif "Circle animation")

### Curve fitting
Lissajous curves are a family of parametric curves of the type

```
x = A sin(at+d)
y = B sin(bt)
```

More info: [https://en.wikipedia.org/wiki/Lissajous_curve](https://en.wikipedia.org/wiki/Lissajous_curve). Stripping the [animation parts of the code](https://github.com/sintefmath/Splipy/blob/master/examples/lissajous.py), one can generate these curves in the following way


``` python
from splipy import *
import numpy as np
from fractions import gcd

def lissajous(a, b, d):
  # request a,b integers, so we have closed, periodic curves
  n = np.gcd(a,b)
  N = (a/n) * (b/n) # number of periods before looping

  # compute a set of interpolation points
  numb_pts = max(3*N, 100) # using 3N interpolation points is decent enough
  t = np.linspace(0,2*np.pi/n, numb_pts)
  x = np.array([np.sin(a*t + d), np.sin(b*t)])

# do a cubic curve interpolation with periodic boundary conditions
my_curve = curve_factory.cubic_curve(x.T, curve_factory.Boundary.PERIODIC)
```

![Missing Lissajous curve animation](http://i.imgur.com/HKr59BT.gif "lissajous(3,4,pi/2)")

Animation of the lissajous curve with a=3, b=4 and d=pi/2

### Surface Sweep

This produces the trefoil knot shown above

``` python
from splipy import *
from numpy import pi,cos,sin,transpose,array,sqrt

# define a parametric representation of the trefoil knot (to be sampled)
def trefoil(u):
  x = [41*cos(u) - 18*sin(  u) -  83*cos(2*u) - 83*sin(2*u) - 11*cos(3*u) + 27*sin(3*u),
       36*cos(u) + 27*sin(  u) - 113*cos(2*u) + 30*sin(2*u) + 11*cos(3*u) - 27*sin(3*u),
       45*sin(u) - 30*cos(2*u) + 113*sin(2*u) - 11*cos(3*u) + 27*sin(3*u)]
  return transpose(array(x))

knot_curve   = curve_factory.fit(trefoil, 0, 2*pi) # adaptive curve fit of trefoil knot
square_curve = 15 * curve_factory.n_gon(4)         # square cross-section
my_surface   = surface_factory.sweep(crv, square)  # sweep out the surface
```

### Working with the controlpoints

``` python
>>> from splipy import *
>>> my_curve = curve_factory.circle(r=3)
>>> print(my_curve[0])
[3. 0. 1.]
>>> print(my_curve[1])
[2.12132034 2.12132034 0.70710678]
>>> for controlpoint in my_curve:
...     print(controlpoint)
[3. 0. 1.]
[2.12132034 2.12132034 0.70710678]
[0. 3. 1.]
[-2.12132034  2.12132034  0.70710678]
[-3.  0.  1.]
[-2.12132034 -2.12132034  0.70710678]
[ 0. -3.  1.]
[ 2.12132034 -2.12132034  0.70710678]
```

### Creating STL files

STL files are used extensively for 3D representation and is one of the only supported formats for 3D printing.

``` python
from splipy.io import STL
from splipy import surface_factory

# create a NURBS torus
my_torus = surface_factory.torus(minor_r=1, major_r=4)

# STL files are tessellated linear triangles. View with i.e. meshlab
with STL('torus.stl') as my_file:
    my_file.write(my_torus, n=(50, 150)) # specify resolution of 50x150 evaluation pts
```

**Torus tessellation as viewed in Meshlab**
![Torus](images/torus.png)


## Citations

If you use Splipy in your work, please consider citing
[K. A. Johannessen and E. Fonn 2020 *J. Phys.: Conf. Ser.* **1669** 012032](https://iopscience.iop.org/article/10.1088/1742-6596/1669/1/012032/meta).

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/sintef/Splipy",
    "name": "Splipy",
    "maintainer": "Kjetil Andre Johannessen",
    "docs_url": "https://pythonhosted.org/Splipy/",
    "requires_python": "",
    "maintainer_email": "kjetijo@gmail.com",
    "keywords": "Bspline,Splines,NURBS,Curve,Surface,Volume,Interpolation,Approximation,Fit,Integration,Differentiation",
    "author": "",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/ab/be/adc10954fe010ff66dd805bb11ea13485717ad6a6a618b486636f9442e40/Splipy-1.8.2.tar.gz",
    "platform": null,
    "description": "\n# ![Splipy Logo](images/logo_small.svg) SpliPy\n\nThis repository contains the SpliPy packages. SpliPy is a pure python library\nfor the creation, evaluation and manipulation of B-spline and NURBS geometries.\nIt supports n-variate splines of any dimension, but emphasis is made on the\nuse of curves, surfaces and volumes. The library is designed primarily for\nanalysis use, and therefore allows fine-grained control over many aspects which\nis not possible to achieve with conventional CAD tools.\n\n## Features\n\nSpliPy allows for the generation of parametric curves, surfaces and volumes in the form of non-uniform rational B-splines (NURBS). It supports traditional curve- and surface-fitting methods such as (but not limited to)\n\n### Curve fitting\n* Bezier curves\n* Hermite Interpolation\n* Cubic Curve Interpolation\n* B-spline Interpolation\n* Least Square Fit\n\n### Surface operations\n* Sweep\n* Revolve\n* Loft\n* Edge_Curves (interior from four edges)\n* Extrude\n* Structured Point Cloud Interpolation\n* Least Square Fit\n\n**Revolve**\n![Revolve](images/revolve.png)\n\n**Sweep**\n![Sweep](images/sweep.png)\n\n**Loft**\n![Loft](images/loft.png)\n\n### Volume operations\n* Revolve\n* Extrude\n* Loft\n* Structured Point Cloud Interpolation\n* Least Square Fit\n\nIn addition to these basic building blocks, it also supports a number of primitive shapes such as (but not limited to)\n\n### Primitive shapes\n* Cube\n* Circle\n* Disc\n* Cylinder\n* Torus\n* Teapot\n\n## Examples\n\n### Derivatives of spline curves\n``` python\n  from splipy import *\n  import numpy as np\n\n  n = 250                                  # number of evaluation points\n  c = curve_factory.circle()               # create the NURBS circle (r=1)\n  t = np.linspace(c.start(0), c.end(0), n) # parametric evaluation points\n  x = c(t)                                 # physical (x,y)-coordinates, size (n,2)\n  v = c.derivative(t, 1)                   # velocity at all points\n  a = c.derivative(t, 2)                   # acceleration at all points\n```\n\n![Missing circle animation](http://i.imgur.com/8MaBiTW.gif \"Circle animation\")\n\n### Curve fitting\nLissajous curves are a family of parametric curves of the type\n\n```\nx = A sin(at+d)\ny = B sin(bt)\n```\n\nMore info: [https://en.wikipedia.org/wiki/Lissajous_curve](https://en.wikipedia.org/wiki/Lissajous_curve). Stripping the [animation parts of the code](https://github.com/sintefmath/Splipy/blob/master/examples/lissajous.py), one can generate these curves in the following way\n\n\n``` python\nfrom splipy import *\nimport numpy as np\nfrom fractions import gcd\n\ndef lissajous(a, b, d):\n  # request a,b integers, so we have closed, periodic curves\n  n = np.gcd(a,b)\n  N = (a/n) * (b/n) # number of periods before looping\n\n  # compute a set of interpolation points\n  numb_pts = max(3*N, 100) # using 3N interpolation points is decent enough\n  t = np.linspace(0,2*np.pi/n, numb_pts)\n  x = np.array([np.sin(a*t + d), np.sin(b*t)])\n\n# do a cubic curve interpolation with periodic boundary conditions\nmy_curve = curve_factory.cubic_curve(x.T, curve_factory.Boundary.PERIODIC)\n```\n\n![Missing Lissajous curve animation](http://i.imgur.com/HKr59BT.gif \"lissajous(3,4,pi/2)\")\n\nAnimation of the lissajous curve with a=3, b=4 and d=pi/2\n\n### Surface Sweep\n\nThis produces the trefoil knot shown above\n\n``` python\nfrom splipy import *\nfrom numpy import pi,cos,sin,transpose,array,sqrt\n\n# define a parametric representation of the trefoil knot (to be sampled)\ndef trefoil(u):\n  x = [41*cos(u) - 18*sin(  u) -  83*cos(2*u) - 83*sin(2*u) - 11*cos(3*u) + 27*sin(3*u),\n       36*cos(u) + 27*sin(  u) - 113*cos(2*u) + 30*sin(2*u) + 11*cos(3*u) - 27*sin(3*u),\n       45*sin(u) - 30*cos(2*u) + 113*sin(2*u) - 11*cos(3*u) + 27*sin(3*u)]\n  return transpose(array(x))\n\nknot_curve   = curve_factory.fit(trefoil, 0, 2*pi) # adaptive curve fit of trefoil knot\nsquare_curve = 15 * curve_factory.n_gon(4)         # square cross-section\nmy_surface   = surface_factory.sweep(crv, square)  # sweep out the surface\n```\n\n### Working with the controlpoints\n\n``` python\n>>> from splipy import *\n>>> my_curve = curve_factory.circle(r=3)\n>>> print(my_curve[0])\n[3. 0. 1.]\n>>> print(my_curve[1])\n[2.12132034 2.12132034 0.70710678]\n>>> for controlpoint in my_curve:\n...     print(controlpoint)\n[3. 0. 1.]\n[2.12132034 2.12132034 0.70710678]\n[0. 3. 1.]\n[-2.12132034  2.12132034  0.70710678]\n[-3.  0.  1.]\n[-2.12132034 -2.12132034  0.70710678]\n[ 0. -3.  1.]\n[ 2.12132034 -2.12132034  0.70710678]\n```\n\n### Creating STL files\n\nSTL files are used extensively for 3D representation and is one of the only supported formats for 3D printing.\n\n``` python\nfrom splipy.io import STL\nfrom splipy import surface_factory\n\n# create a NURBS torus\nmy_torus = surface_factory.torus(minor_r=1, major_r=4)\n\n# STL files are tessellated linear triangles. View with i.e. meshlab\nwith STL('torus.stl') as my_file:\n    my_file.write(my_torus, n=(50, 150)) # specify resolution of 50x150 evaluation pts\n```\n\n**Torus tessellation as viewed in Meshlab**\n![Torus](images/torus.png)\n\n\n## Citations\n\nIf you use Splipy in your work, please consider citing\n[K. A. Johannessen and E. Fonn 2020 *J. Phys.: Conf. Ser.* **1669** 012032](https://iopscience.iop.org/article/10.1088/1742-6596/1669/1/012032/meta).\n",
    "bugtrack_url": null,
    "license": "GNU public license v3",
    "summary": "Spline modelling library for Python",
    "version": "1.8.2",
    "project_urls": {
        "Homepage": "https://github.com/sintef/Splipy"
    },
    "split_keywords": [
        "bspline",
        "splines",
        "nurbs",
        "curve",
        "surface",
        "volume",
        "interpolation",
        "approximation",
        "fit",
        "integration",
        "differentiation"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "804a428726937737ee816b208e1221869dfca7db92792791b44da13014825c9b",
                "md5": "f892d976801c0129ea7bfa6212a0aac5",
                "sha256": "c495479ed37b9d85f3743e26125c4a5e91518363ff001c40fe0fc52771ee9b7d"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f892d976801c0129ea7bfa6212a0aac5",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 204386,
            "upload_time": "2024-02-06T21:31:48",
            "upload_time_iso_8601": "2024-02-06T21:31:48.665029Z",
            "url": "https://files.pythonhosted.org/packages/80/4a/428726937737ee816b208e1221869dfca7db92792791b44da13014825c9b/Splipy-1.8.2-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6def83f9a74e3eb0f2b198c2e2ede32ca436461f6e4fbdf1e2d6af6cd119d6db",
                "md5": "d13024a3b3d1efda9aca49b23635ba33",
                "sha256": "a751eac96bedc1432426f5d5fa3b3647c968c16cbd62234661c6f3d533b09973"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d13024a3b3d1efda9aca49b23635ba33",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 584413,
            "upload_time": "2024-02-06T21:31:50",
            "upload_time_iso_8601": "2024-02-06T21:31:50.323312Z",
            "url": "https://files.pythonhosted.org/packages/6d/ef/83f9a74e3eb0f2b198c2e2ede32ca436461f6e4fbdf1e2d6af6cd119d6db/Splipy-1.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "21975de346e4c64cca2fea26300e3ab8b04d1c6dd6b93756276262d00797d3d7",
                "md5": "993323d7636de9b8afe8b0de105e73ee",
                "sha256": "64ad578561b268b37f3f0327f835971c9017943b20a426dab16f32f7208a3770"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "993323d7636de9b8afe8b0de105e73ee",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 564786,
            "upload_time": "2024-02-06T21:31:52",
            "upload_time_iso_8601": "2024-02-06T21:31:52.065774Z",
            "url": "https://files.pythonhosted.org/packages/21/97/5de346e4c64cca2fea26300e3ab8b04d1c6dd6b93756276262d00797d3d7/Splipy-1.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e168154c3fd4ca72da67d1a37523af4963189acdcf12ed61a7d749fd7dcfd48b",
                "md5": "b4b97772b1d45800108bce8bbe877b46",
                "sha256": "bb6ed49d7070da2679ec78c03823c30635f067015b8cbba19cc3890dbf65804c"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "b4b97772b1d45800108bce8bbe877b46",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 183042,
            "upload_time": "2024-02-06T21:31:53",
            "upload_time_iso_8601": "2024-02-06T21:31:53.882013Z",
            "url": "https://files.pythonhosted.org/packages/e1/68/154c3fd4ca72da67d1a37523af4963189acdcf12ed61a7d749fd7dcfd48b/Splipy-1.8.2-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4bda82ef723ca7faa9b3dcfa33d44e95fb480ddd92d1664f199063134b338adf",
                "md5": "fa48b4d50bc92f42cd4c0058b7e18b2a",
                "sha256": "48d485b9f4c9a8b229aea345e9dde5a768cdca4844ddde8808405eda8629febd"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "fa48b4d50bc92f42cd4c0058b7e18b2a",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 195011,
            "upload_time": "2024-02-06T21:31:55",
            "upload_time_iso_8601": "2024-02-06T21:31:55.603169Z",
            "url": "https://files.pythonhosted.org/packages/4b/da/82ef723ca7faa9b3dcfa33d44e95fb480ddd92d1664f199063134b338adf/Splipy-1.8.2-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "831603462cdefad8af905e5dd08f97d29365f308c114a81e97575de8ab3769d0",
                "md5": "6b48633d9692f3829b32e2ccbd33d972",
                "sha256": "109dc9fce6591ee8bf31906786480ee3b88a20c8abf758261dce55d11226fc8d"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6b48633d9692f3829b32e2ccbd33d972",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 204158,
            "upload_time": "2024-02-06T21:31:57",
            "upload_time_iso_8601": "2024-02-06T21:31:57.430940Z",
            "url": "https://files.pythonhosted.org/packages/83/16/03462cdefad8af905e5dd08f97d29365f308c114a81e97575de8ab3769d0/Splipy-1.8.2-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4932a4c54fb41243203012447da63a3f8081579fe66f20434ec023e1662206b4",
                "md5": "442f0e5020b6207002559ac4f8b903f3",
                "sha256": "6a6d0bafdfe085cc7f2aed15f5afde6241d327fff25eb4e26adb13f8cc3b2082"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "442f0e5020b6207002559ac4f8b903f3",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 621502,
            "upload_time": "2024-02-06T21:31:58",
            "upload_time_iso_8601": "2024-02-06T21:31:58.935547Z",
            "url": "https://files.pythonhosted.org/packages/49/32/a4c54fb41243203012447da63a3f8081579fe66f20434ec023e1662206b4/Splipy-1.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2f1752826c75fa2e5ca04f9a0e4ee8fc397c0c11fcbca7aa0811e55eadf02efe",
                "md5": "6a84dfbb9c435d746a3c7370f5cade58",
                "sha256": "f5d092d23a8e1f9b3a8e4cece1c6fc87ffaf8eb09389a1f61d41702bdd9d196c"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "6a84dfbb9c435d746a3c7370f5cade58",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 600243,
            "upload_time": "2024-02-06T21:32:01",
            "upload_time_iso_8601": "2024-02-06T21:32:01.119266Z",
            "url": "https://files.pythonhosted.org/packages/2f/17/52826c75fa2e5ca04f9a0e4ee8fc397c0c11fcbca7aa0811e55eadf02efe/Splipy-1.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0f544f9878a76bd4ba3d156157152795517ed390791dec96ef57ee8ccfec5154",
                "md5": "dcd6cf12ca1f5c6b1f63fd2f6f80e2c6",
                "sha256": "a432f8b4f800fb140f578e42356bb8a033f1827f90bbafda22bdd9577e104f9d"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "dcd6cf12ca1f5c6b1f63fd2f6f80e2c6",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 182759,
            "upload_time": "2024-02-06T21:32:02",
            "upload_time_iso_8601": "2024-02-06T21:32:02.538485Z",
            "url": "https://files.pythonhosted.org/packages/0f/54/4f9878a76bd4ba3d156157152795517ed390791dec96ef57ee8ccfec5154/Splipy-1.8.2-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "265830b0b1539bc36c25bdb493b2394ef560921a73f9ee45207b776a10e69c8f",
                "md5": "72a9c5ec5a2ef80ab9412c2f99e87d4c",
                "sha256": "6b897b354ebc5426f06691a93be2de002515feb7369b32d3a23d2134704be59d"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "72a9c5ec5a2ef80ab9412c2f99e87d4c",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 195078,
            "upload_time": "2024-02-06T21:32:04",
            "upload_time_iso_8601": "2024-02-06T21:32:04.708047Z",
            "url": "https://files.pythonhosted.org/packages/26/58/30b0b1539bc36c25bdb493b2394ef560921a73f9ee45207b776a10e69c8f/Splipy-1.8.2-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9b1f1a381ffaef89efd9b02aca9f8334bc6a9007448b91bef3a13ecc6c740216",
                "md5": "ae8ea09b3ba8288466b393641f0f0c4c",
                "sha256": "34b93829f3ae41179c9c108bad718a4f3e3b3f0c73251c1c5d1a6ef37336ffba"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp312-cp312-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ae8ea09b3ba8288466b393641f0f0c4c",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 205527,
            "upload_time": "2024-02-06T21:32:08",
            "upload_time_iso_8601": "2024-02-06T21:32:08.103213Z",
            "url": "https://files.pythonhosted.org/packages/9b/1f/1a381ffaef89efd9b02aca9f8334bc6a9007448b91bef3a13ecc6c740216/Splipy-1.8.2-cp312-cp312-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d8aba452b0bb8b5b0c690162a37fa63bbf800cd2a1be44d4a78f9d5c8d44c3f4",
                "md5": "3b4955e0407b7b1e94a7041d6f10505d",
                "sha256": "da6fbfdad47a0db77f5acbfca519db14948ec53d0270dad3adafc720ddb8d8cf"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3b4955e0407b7b1e94a7041d6f10505d",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 611847,
            "upload_time": "2024-02-06T21:32:09",
            "upload_time_iso_8601": "2024-02-06T21:32:09.491571Z",
            "url": "https://files.pythonhosted.org/packages/d8/ab/a452b0bb8b5b0c690162a37fa63bbf800cd2a1be44d4a78f9d5c8d44c3f4/Splipy-1.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a115ca6a5ebf3671a80dfedbb536345e706dbdd93f3b9f46e3806fdcebd32190",
                "md5": "a1b6d1efdb40607e6da1aa83bbe79dbf",
                "sha256": "a444865ac3cc7e470595db736630ea3cff4837e71755a715153e43ec483a49cc"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "a1b6d1efdb40607e6da1aa83bbe79dbf",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 592174,
            "upload_time": "2024-02-06T21:32:11",
            "upload_time_iso_8601": "2024-02-06T21:32:11.541161Z",
            "url": "https://files.pythonhosted.org/packages/a1/15/ca6a5ebf3671a80dfedbb536345e706dbdd93f3b9f46e3806fdcebd32190/Splipy-1.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b17a1ed4724cc29f1691d0425478f3b102af26830f2590a94e2a5b9c8154866b",
                "md5": "9b6bc1cbca42e111e044e132c8b814bc",
                "sha256": "8fc45af9e9ea7a058752c665f186b892c33acef3d6f36a85d59872f8b109ef1b"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "9b6bc1cbca42e111e044e132c8b814bc",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 183288,
            "upload_time": "2024-02-06T21:32:12",
            "upload_time_iso_8601": "2024-02-06T21:32:12.886780Z",
            "url": "https://files.pythonhosted.org/packages/b1/7a/1ed4724cc29f1691d0425478f3b102af26830f2590a94e2a5b9c8154866b/Splipy-1.8.2-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6ed6f0effd9ea6e34ea1b9d5c16bb2e75fd39a8d88ad316c38dd0869a3e7d12a",
                "md5": "1280aa7156d4777bf8f8315205dd9bbc",
                "sha256": "a2e46d845ce1f479d915346bce0a6aaaafa42287d10a6531d4612e2c4f75653b"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "1280aa7156d4777bf8f8315205dd9bbc",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 195602,
            "upload_time": "2024-02-06T21:32:14",
            "upload_time_iso_8601": "2024-02-06T21:32:14.119735Z",
            "url": "https://files.pythonhosted.org/packages/6e/d6/f0effd9ea6e34ea1b9d5c16bb2e75fd39a8d88ad316c38dd0869a3e7d12a/Splipy-1.8.2-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "01959004a7737e8ff7e438dfd3a39d81bfd28df356657ec390f208bcd8b21660",
                "md5": "bdc39510fadd817b84afbf98f0046ecb",
                "sha256": "60ec81b85a6f16fc229f0a5be5b09f313dc9cc60168ced23448141f945af900e"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "bdc39510fadd817b84afbf98f0046ecb",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 204987,
            "upload_time": "2024-02-06T21:32:16",
            "upload_time_iso_8601": "2024-02-06T21:32:16.327459Z",
            "url": "https://files.pythonhosted.org/packages/01/95/9004a7737e8ff7e438dfd3a39d81bfd28df356657ec390f208bcd8b21660/Splipy-1.8.2-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "194a894bf0a619d6ba30f9af09b84e45658c73e3cf0dcf334e1d8648b0cb3d3a",
                "md5": "2849be3c2d5e8cb300278256879248c6",
                "sha256": "c9177b0fd5316bd1f1358e4d3065ce63b9e790dd917b768ad0e16ec5d3497382"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2849be3c2d5e8cb300278256879248c6",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 586281,
            "upload_time": "2024-02-06T21:32:17",
            "upload_time_iso_8601": "2024-02-06T21:32:17.543095Z",
            "url": "https://files.pythonhosted.org/packages/19/4a/894bf0a619d6ba30f9af09b84e45658c73e3cf0dcf334e1d8648b0cb3d3a/Splipy-1.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0132b9c71491e2a0275b1414048fcea257ec14782ae5e71db6e8160381aea8a0",
                "md5": "7d9fcf5bde7c986e20fb9b19eaa78cfb",
                "sha256": "9b7cd9550a9bafe7943b1d322f955c07fe857bbe627e7dc50576607704f67b56"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "7d9fcf5bde7c986e20fb9b19eaa78cfb",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 567751,
            "upload_time": "2024-02-06T21:32:19",
            "upload_time_iso_8601": "2024-02-06T21:32:19.505867Z",
            "url": "https://files.pythonhosted.org/packages/01/32/b9c71491e2a0275b1414048fcea257ec14782ae5e71db6e8160381aea8a0/Splipy-1.8.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e8631c04f41163efef69a905c663ad08c988ab9357d463bd05d7cbc67ebb49cc",
                "md5": "221fd9d28837b3d01dbaeb3ad66afcc9",
                "sha256": "1bbfa0b31a8f2e227670fb099003d3c15fae144efaa3089c2d737268d07a1c8f"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "221fd9d28837b3d01dbaeb3ad66afcc9",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 183712,
            "upload_time": "2024-02-06T21:32:20",
            "upload_time_iso_8601": "2024-02-06T21:32:20.761430Z",
            "url": "https://files.pythonhosted.org/packages/e8/63/1c04f41163efef69a905c663ad08c988ab9357d463bd05d7cbc67ebb49cc/Splipy-1.8.2-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e4f891089e56890b4141ad80b48144bb944f619fe4edc27169f5abb5e5bd3769",
                "md5": "d59fade3c18aff5b0bdf48a2ec94957f",
                "sha256": "e23eed336889bc6688b97c8d231108e52889f59ce0084bba37379ce665b29421"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "d59fade3c18aff5b0bdf48a2ec94957f",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 195530,
            "upload_time": "2024-02-06T21:32:22",
            "upload_time_iso_8601": "2024-02-06T21:32:22.026476Z",
            "url": "https://files.pythonhosted.org/packages/e4/f8/91089e56890b4141ad80b48144bb944f619fe4edc27169f5abb5e5bd3769/Splipy-1.8.2-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "abbeadc10954fe010ff66dd805bb11ea13485717ad6a6a618b486636f9442e40",
                "md5": "0d7b24937e4e38673a2a7a5762acb209",
                "sha256": "201ee38bd5f0d0dc57c0d6efe350ccd493521dd3b730348295b61306e9ee4ac6"
            },
            "downloads": -1,
            "filename": "Splipy-1.8.2.tar.gz",
            "has_sig": false,
            "md5_digest": "0d7b24937e4e38673a2a7a5762acb209",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 264607,
            "upload_time": "2024-02-06T21:32:23",
            "upload_time_iso_8601": "2024-02-06T21:32:23.847902Z",
            "url": "https://files.pythonhosted.org/packages/ab/be/adc10954fe010ff66dd805bb11ea13485717ad6a6a618b486636f9442e40/Splipy-1.8.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-06 21:32:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sintef",
    "github_project": "Splipy",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "splipy"
}
        
Elapsed time: 2.43042s