bsplyne 1.0.0__py3-none-any.whl → 1.0.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
bsplyne/__init__.py CHANGED
@@ -1,5 +1,5 @@
1
1
  """
2
- .. include:: ../README.md
2
+ .. include:: ../../README.md
3
3
  """
4
4
 
5
5
  from bsplyne.b_spline_basis import BSplineBasis
bsplyne/b_spline.py CHANGED
@@ -1,6 +1,7 @@
1
1
  import os
2
2
  from typing import Iterable, Literal, Union
3
3
  import json, pickle
4
+ import warnings
4
5
 
5
6
  import numpy as np
6
7
  import scipy.sparse as sps
@@ -1943,6 +1944,11 @@ class BSpline:
1943
1944
  show,
1944
1945
  )
1945
1946
  else:
1947
+ if not _can_visualize_pyvista:
1948
+ warnings.warn(
1949
+ "Can't use PyVista. Fallback to Matplotlib plotter. "
1950
+ "For better visualization, install PyVista."
1951
+ )
1946
1952
  return self.plotMPL(
1947
1953
  ctrl_pts,
1948
1954
  n_eval_per_elem,
bsplyne/b_spline_basis.py CHANGED
@@ -511,7 +511,7 @@ class BSplineBasis:
511
511
  Row index of D.
512
512
  j : int
513
513
  Column index of D.
514
- new_knot : numpy.array of float
514
+ new_knot : np.ndarray[np.floating]
515
515
  New knot vector to use.
516
516
  p : int
517
517
  Degree of the BSpline.
@@ -547,7 +547,7 @@ class BSplineBasis:
547
547
 
548
548
  Parameters
549
549
  ----------
550
- new_knot : numpy.array of float
550
+ new_knot : np.ndarray[np.floating]
551
551
  The new knot vector for the knot insertion.
552
552
 
553
553
  Returns
@@ -802,7 +802,7 @@ def _funcNElemOneXi(i, p, knot, xi):
802
802
  Index of the basis function wanted.
803
803
  p : int
804
804
  Degree of the BSpline evaluated.
805
- knot : numpy.array of float
805
+ knot : np.ndarray[np.floating]
806
806
  Knot vector of the BSpline basis.
807
807
  xi : float
808
808
  Value in the parametric space at which the BSpline is evaluated.
@@ -846,7 +846,7 @@ def _funcDNElemOneXi(i, p, knot, xi, k):
846
846
  Index of the basis function wanted.
847
847
  p : int
848
848
  Degree of the BSpline evaluated.
849
- knot : numpy.array of float
849
+ knot : np.ndarray[np.floating]
850
850
  Knot vector of the BSpline basis.
851
851
  xi : float
852
852
  Value in the parametric space at which the BSpline is evaluated.
@@ -904,7 +904,7 @@ def _findElem(p, m, n, knot, xi):
904
904
  Last index of the knot vector.
905
905
  n : int
906
906
  Last index of the basis.
907
- knot : numpy.array of float
907
+ knot : np.ndarray[np.floating]
908
908
  Knot vector of the BSpline basis.
909
909
  xi : float
910
910
  Value in the parametric space.
@@ -955,16 +955,16 @@ def _DN(p, m, n, knot, XI, k):
955
955
  Last index of the knot vector.
956
956
  n : int
957
957
  Last index of the basis.
958
- knot : numpy.array of float
958
+ knot : np.ndarray[np.floating]
959
959
  Knot vector of the BSpline basis.
960
- XI : numpy.array of float
960
+ XI : np.ndarray[np.floating]
961
961
  Values in the parametric space at which the BSpline is evaluated.
962
962
  k : int
963
963
  `k`-th derivative of the BSpline evaluated. The default is 0.
964
964
 
965
965
  Returns
966
966
  -------
967
- (vals, row, col) : (numpy.array of float, numpy.array of int, numpy.array of int)
967
+ (vals, row, col) : (np.ndarray[np.floating], np.ndarray[np.integer], np.ndarray[np.integer])
968
968
  Values and indices of the `k`-th derivative matrix of the BSpline
969
969
  basis functions in the columns for each value of `XI` in the rows.
970
970
 
@@ -62,9 +62,9 @@ class MultiPatchBSplineConnectivity:
62
62
 
63
63
  Attributes
64
64
  ----------
65
- unique_nodes_inds : numpy.ndarray of int
65
+ unique_nodes_inds : np.ndarray[np.integer]
66
66
  The indices of the unique representation needed to create the unpacked one.
67
- shape_by_patch : numpy.ndarray of int
67
+ shape_by_patch : np.ndarray[np.integer]
68
68
  The shape of the separated nodes by patch.
69
69
  nb_nodes : int
70
70
  The total number of unpacked nodes.
@@ -88,9 +88,9 @@ class MultiPatchBSplineConnectivity:
88
88
 
89
89
  Parameters
90
90
  ----------
91
- unique_nodes_inds : numpy.ndarray of int
91
+ unique_nodes_inds : np.ndarray[np.integer]
92
92
  The indices of the unique representation needed to create the unpacked one.
93
- shape_by_patch : numpy.ndarray of int
93
+ shape_by_patch : np.ndarray[np.integer]
94
94
  The shape of the separated nodes by patch.
95
95
  nb_unique_nodes : int
96
96
  The total number of unique nodes.
@@ -108,10 +108,10 @@ class MultiPatchBSplineConnectivity:
108
108
 
109
109
  Parameters
110
110
  ----------
111
- nodes_couples : numpy.ndarray of int
111
+ nodes_couples : np.ndarray[np.integer]
112
112
  Couples of indices of unpacked nodes that are considered the same.
113
113
  Its shape should be (# of couples, 2)
114
- shape_by_patch : numpy.ndarray of int
114
+ shape_by_patch : np.ndarray[np.integer]
115
115
  The shape of the separated nodes by patch.
116
116
 
117
117
  Returns
@@ -142,7 +142,7 @@ class MultiPatchBSplineConnectivity:
142
142
 
143
143
  Parameters
144
144
  ----------
145
- separated_ctrlPts : list of numpy.ndarray of float
145
+ separated_ctrlPts : list of np.ndarray[np.floating]
146
146
  Control points of every patch to be compared in the separated
147
147
  representation. Every array is of shape :
148
148
  (``NPh``, nb elem for dim 1, ..., nb elem for dim ``npa``)
@@ -217,13 +217,13 @@ class MultiPatchBSplineConnectivity:
217
217
 
218
218
  Parameters
219
219
  ----------
220
- unique_field : numpy.ndarray
220
+ unique_field : np.ndarray
221
221
  The unique representation. Its shape should be :
222
222
  (field, shape, ..., `self`.`nb_unique_nodes`)
223
223
 
224
224
  Returns
225
225
  -------
226
- unpacked_field : numpy.ndarray
226
+ unpacked_field : np.ndarray
227
227
  The unpacked representation. Its shape is :
228
228
  (field, shape, ..., `self`.`nb_nodes`)
229
229
  """
@@ -236,7 +236,7 @@ class MultiPatchBSplineConnectivity:
236
236
 
237
237
  Parameters
238
238
  ----------
239
- unpacked_field : numpy.ndarray
239
+ unpacked_field : np.ndarray
240
240
  The unpacked representation. Its shape should be :
241
241
  (field, shape, ..., `self`.`nb_nodes`)
242
242
  method: str
@@ -244,7 +244,7 @@ class MultiPatchBSplineConnectivity:
244
244
 
245
245
  Returns
246
246
  -------
247
- unique_nodes : numpy.ndarray
247
+ unique_nodes : np.ndarray
248
248
  The unique representation. Its shape is :
249
249
  (field, shape, ..., `self`.`nb_unique_nodes`)
250
250
  """
@@ -273,13 +273,13 @@ class MultiPatchBSplineConnectivity:
273
273
 
274
274
  Parameters
275
275
  ----------
276
- unpacked_field : numpy.ndarray
276
+ unpacked_field : np.ndarray
277
277
  The unpacked representation. Its shape is :
278
278
  (field, shape, ..., `self`.`nb_nodes`)
279
279
 
280
280
  Returns
281
281
  -------
282
- separated_field : list of numpy.ndarray
282
+ separated_field : list of np.ndarray
283
283
  The separated representation. Every array is of shape :
284
284
  (field, shape, ..., nb elem for dim 1, ..., nb elem for dim `npa`)
285
285
  """
@@ -300,13 +300,13 @@ class MultiPatchBSplineConnectivity:
300
300
 
301
301
  Parameters
302
302
  ----------
303
- separated_field : list of numpy.ndarray
303
+ separated_field : list of np.ndarray
304
304
  The separated representation. Every array is of shape :
305
305
  (field, shape, ..., nb elem for dim 1, ..., nb elem for dim `npa`)
306
306
 
307
307
  Returns
308
308
  -------
309
- unpacked_field : numpy.ndarray
309
+ unpacked_field : np.ndarray
310
310
  The unpacked representation. Its shape is :
311
311
  (field, shape, ..., `self`.`nb_nodes`)
312
312
  """
@@ -334,7 +334,7 @@ class MultiPatchBSplineConnectivity:
334
334
 
335
335
  Returns
336
336
  -------
337
- unique_field_indices : numpy.ndarray of int or list of numpy.ndarray of int
337
+ unique_field_indices : np.ndarray[np.integer] or list of np.ndarray[np.integer]
338
338
  The unique, unpacked or separated representation of a field's unique indices.
339
339
  If unique, its shape is (*`field_shape`, `self`.`nb_unique_nodes`).
340
340
  If unpacked, its shape is : (*`field_shape`, `self`.`nb_nodes`).
@@ -366,7 +366,7 @@ class MultiPatchBSplineConnectivity:
366
366
 
367
367
  Returns
368
368
  -------
369
- duplicate_nodes_mask : numpy.ndarray
369
+ duplicate_nodes_mask : np.ndarray
370
370
  Boolean mask of shape (nb_nodes,) where True indicates a node is duplicated
371
371
  across multiple patches and False indicates it appears only once.
372
372
  """
@@ -391,7 +391,7 @@ class MultiPatchBSplineConnectivity:
391
391
  Connectivity information for the border patches.
392
392
  border_splines : list[BSpline]
393
393
  Array of B-spline patches representing the borders.
394
- border_unique_to_self_unique_connectivity : numpy.ndarray of int
394
+ border_unique_to_self_unique_connectivity : np.ndarray[np.integer]
395
395
  Array mapping border unique nodes to original unique nodes.
396
396
 
397
397
  Raises
@@ -484,7 +484,7 @@ class MultiPatchBSplineConnectivity:
484
484
  Connectivity information for the border patches.
485
485
  border_splines : list[BSpline]
486
486
  Array of B-spline patches representing the borders.
487
- border_unique_to_self_unique_connectivity : numpy.ndarray of int
487
+ border_unique_to_self_unique_connectivity : np.ndarray[np.integer]
488
488
  Array mapping border unique nodes to original unique nodes.
489
489
 
490
490
  Raises
@@ -649,7 +649,7 @@ class MultiPatchBSplineConnectivity:
649
649
  ----------
650
650
  splines : list[BSpline]
651
651
  Array of B-spline patches to subset.
652
- patches_to_keep : numpy.array of int
652
+ patches_to_keep : np.ndarray[np.integer]
653
653
  Indices of patches to keep in the subset.
654
654
 
655
655
  Returns
@@ -658,7 +658,7 @@ class MultiPatchBSplineConnectivity:
658
658
  New connectivity object containing only the selected patches.
659
659
  new_splines : list[BSpline]
660
660
  Array of B-spline patches for the selected patches.
661
- new_unique_to_self_unique_connectivity : numpy.ndarray of int
661
+ new_unique_to_self_unique_connectivity : np.ndarray[np.integer]
662
662
  Array mapping new unique nodes to original unique nodes.
663
663
  """
664
664
  new_splines = splines[patches_to_keep]
bsplyne/save_utils.py CHANGED
@@ -3,7 +3,7 @@ import meshio as io
3
3
  from typing import Iterable
4
4
  from functools import reduce
5
5
  import os
6
- import xml
6
+ from xml.dom import minidom
7
7
 
8
8
 
9
9
  def writePVD(fileName: str, groups: dict[str, dict]):
@@ -32,7 +32,7 @@ def writePVD(fileName: str, groups: dict[str, dict]):
32
32
  None
33
33
  """
34
34
  rep, fname = os.path.split(fileName)
35
- pvd = xml.dom.minidom.Document()
35
+ pvd = minidom.Document()
36
36
  pvd_root = pvd.createElementNS("VTK", "VTKFile")
37
37
  pvd_root.setAttribute("type", "Collection")
38
38
  pvd_root.setAttribute("version", "0.1")
@@ -0,0 +1,178 @@
1
+ Metadata-Version: 2.4
2
+ Name: bsplyne
3
+ Version: 1.0.2
4
+ Summary: N-dimensional B-spline library for numerical mechanics and geometry
5
+ Author-email: Dorian Bichet <dbichet@insa-toulouse.fr>
6
+ Project-URL: Homepage, https://github.com/Dorian210/bsplyne
7
+ Project-URL: Repository, https://github.com/Dorian210/bsplyne
8
+ Project-URL: Issues, https://github.com/Dorian210/bsplyne/issues
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3 :: Only
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: License :: OSI Approved :: CEA CNRS Inria Logiciel Libre License, version 2.1 (CeCILL-2.1)
13
+ Classifier: Topic :: Scientific/Engineering
14
+ Classifier: Intended Audience :: Science/Research
15
+ Requires-Python: >=3.9
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE.txt
18
+ Requires-Dist: numpy>=1.20
19
+ Requires-Dist: numba>=0.55
20
+ Requires-Dist: scipy>=1.8
21
+ Requires-Dist: matplotlib>=3.5
22
+ Requires-Dist: meshio>=5.0
23
+ Requires-Dist: tqdm>=4.60
24
+ Provides-Extra: viz
25
+ Requires-Dist: pyvista>=0.41; extra == "viz"
26
+ Provides-Extra: dev
27
+ Requires-Dist: build; extra == "dev"
28
+ Requires-Dist: twine; extra == "dev"
29
+ Requires-Dist: pytest; extra == "dev"
30
+ Provides-Extra: docs
31
+ Requires-Dist: wkhtmltopdf; extra == "docs"
32
+ Requires-Dist: pdoc>=12.0; extra == "docs"
33
+ Dynamic: license-file
34
+
35
+ # bsplyne
36
+
37
+ <p align="center">
38
+ <img src="docs/logo.png" width="500" />
39
+ </p>
40
+
41
+ **bsplyne** is a Python library for working with N-dimensional B-splines, with a focus on numerical mechanics and geometry.
42
+ It implements the Cox–de Boor algorithm for basis evaluation, order elevation, knot insertion, and provides tools for handling
43
+ multi-patch B-spline structures. Visualization and export utilities (e.g. Paraview) are also included.
44
+
45
+ ---
46
+
47
+ ## Installation
48
+
49
+ ### Using pip
50
+
51
+ Install the core library:
52
+
53
+ ```bash
54
+ pip install bsplyne
55
+ ```
56
+
57
+ Install the library **with recommended visualization features** (additionally install `pyvista`):
58
+
59
+ ```bash
60
+ pip install bsplyne[viz]
61
+ ```
62
+
63
+ > Note: choose either the core (`bsplyne`) or the visualization (`bsplyne[viz]`) installation, not both.
64
+
65
+ ### Using conda (conda-forge)
66
+
67
+ Install the core library:
68
+
69
+ ```bash
70
+ conda install -c conda-forge bsplyne
71
+ ```
72
+
73
+ Optional: install PyVista to enable visualization features:
74
+
75
+ ```bash
76
+ conda install -c conda-forge pyvista
77
+ ```
78
+
79
+ ### From source (development mode)
80
+
81
+ Clone the repository and install:
82
+
83
+ ```bash
84
+ git clone https://github.com/Dorian210/bsplyne
85
+ cd bsplyne
86
+ pip install -e . # core
87
+ pip install -e .[viz] # with visualization
88
+ ```
89
+
90
+ ---
91
+
92
+ ## Dependencies
93
+
94
+ Core dependencies are handled automatically by `pip` or `conda`:
95
+
96
+ - numpy
97
+ - numba
98
+ - scipy
99
+ - matplotlib
100
+ - meshio
101
+ - tqdm
102
+
103
+ Optional visualization:
104
+
105
+ - pyvista (for 3D visualization)
106
+
107
+ ---
108
+
109
+ ## Main Modules
110
+
111
+ - **BSplineBasis**
112
+ Evaluation of B-spline basis functions using the Cox–de Boor recursion formula.
113
+
114
+ - **BSpline**
115
+ Construction and manipulation of N-dimensional B-splines, including order elevation and knot insertion.
116
+
117
+ - **MultiPatchBSplineConnectivity**
118
+ Management of connectivity between multiple B-spline patches.
119
+
120
+ - **CouplesBSplineBorder**
121
+ Utilities for coupling B-spline borders (experimental / less documented).
122
+
123
+ ---
124
+
125
+ ## Tutorials
126
+
127
+ A step-by-step introduction to **bsplyne** is provided in:
128
+
129
+ ```
130
+ examples/tutorial/
131
+ ```
132
+
133
+ These scripts are designed as a progressive entry point to the library and cover:
134
+
135
+ 1. B-spline basis functions
136
+ 2. Curve construction
137
+ 3. Surface generation
138
+ 4. Least-squares fitting
139
+ 5. Multi-patch geometries
140
+ 6. Export to Paraview
141
+
142
+ In addition, a **comprehensive PDF guide** (`tp_bsplyne.pdf`) is included in the tutorials directory, providing a hands-on introduction to the library for new users.
143
+ It explains the workflow, the main modules, and practical usage examples.
144
+
145
+ ---
146
+
147
+ ## Examples
148
+
149
+ Additional standalone examples are available in the `examples/` directory, including:
150
+
151
+ - Curves and surfaces
152
+ - Order elevation and knot insertion
153
+ - Visualization with Matplotlib
154
+ - Export to Paraview
155
+
156
+ ---
157
+
158
+ ## Documentation
159
+
160
+ The full API documentation is available online:
161
+
162
+ https://dorian210.github.io/bsplyne/
163
+
164
+ The documentation is generated from the source code docstrings and reflects the latest published version.
165
+
166
+ ---
167
+
168
+ ## Contributions
169
+
170
+ This project is primarily developed for research purposes.
171
+ While I am not actively reviewing external contributions, bug reports and suggestions are welcome via the issue tracker.
172
+
173
+ ---
174
+
175
+ ## License
176
+
177
+ This project is licensed under the **CeCILL License**.
178
+ See [LICENSE.txt](LICENSE.txt) for details.
@@ -0,0 +1,13 @@
1
+ bsplyne/__init__.py,sha256=JyAdwOKZ1G2zAtT_bWmXCvjIj-5beIEWSzoqZhsZotw,1902
2
+ bsplyne/b_spline.py,sha256=i3GHwVs9gEZP28UVo4Bub_SsAxrlN5oaTi111pTzt9s,110352
3
+ bsplyne/b_spline_basis.py,sha256=vldxFkdWrsXFmwGPBFprmUyPYPfwgeYNYmULXQlN-Jc,35347
4
+ bsplyne/geometries_in_3D.py,sha256=krQPNZEg-PZCTnlhd1YrJjwCwv7R9T7oAxxlZJms_Zs,36519
5
+ bsplyne/multi_patch_b_spline.py,sha256=zPL4hax-otlRSVft7SteQiWbjk5qN3q-AsG-rAtqP8Y,75925
6
+ bsplyne/my_wide_product.py,sha256=JqFy2s3ks0wKf4iq22NyzrZo-3Uo7ita-r6fGcGEfEE,5678
7
+ bsplyne/parallel_utils.py,sha256=M0Tuy8wA3AYltsnr_iYOnREWRGZnPxavq9cpWaEC_lU,15326
8
+ bsplyne/save_utils.py,sha256=DgIWoLmka75AprbSQnZwAUA0ox2winSOmW9UNBeFU_s,5032
9
+ bsplyne-1.0.2.dist-info/licenses/LICENSE.txt,sha256=NuJeFieCkXCWPQlUUkzn5TrngzZmXp09-Q8fk15_r6A,3196
10
+ bsplyne-1.0.2.dist-info/METADATA,sha256=STeNkrOZNFPL5xW5Fa__e3HjTmMS6mE9jaqhlLZH7K4,4518
11
+ bsplyne-1.0.2.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
12
+ bsplyne-1.0.2.dist-info/top_level.txt,sha256=Mwj9pTQb41GC_guOzmpvMcdkXeeAIWF6VtZcXghgx0c,8
13
+ bsplyne-1.0.2.dist-info/RECORD,,
@@ -1,91 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: bsplyne
3
- Version: 1.0.0
4
- Summary: A package for N dimensions B-splines.
5
- Home-page: https://github.com/Dorian210/bsplyne
6
- Author: Dorian Bichet
7
- Author-email: dbichet@insa-toulouse.fr
8
- Classifier: Programming Language :: Python :: 3
9
- Classifier: Operating System :: OS Independent
10
- Classifier: License :: OSI Approved :: CEA CNRS Inria Logiciel Libre License, version 2.1 (CeCILL-2.1)
11
- Description-Content-Type: text/markdown
12
- License-File: LICENSE.txt
13
- Requires-Dist: numpy
14
- Requires-Dist: numba
15
- Requires-Dist: scipy
16
- Requires-Dist: matplotlib
17
- Requires-Dist: meshio
18
- Requires-Dist: tqdm
19
- Dynamic: author
20
- Dynamic: author-email
21
- Dynamic: classifier
22
- Dynamic: description
23
- Dynamic: description-content-type
24
- Dynamic: home-page
25
- Dynamic: license-file
26
- Dynamic: requires-dist
27
- Dynamic: summary
28
-
29
- # bsplyne
30
-
31
- <p align="center">
32
- <img src=docs/logo.png width="500" />
33
- </p>
34
-
35
- **bsplyne** is a Python library for working with N-dimensional B-splines. It implements the Cox-de Boor algorithm for basis evaluation, order elevation, knot insertion, and provides a connectivity class for multi-patch structures. Additionally, it includes visualization tools with export capabilities to Paraview.
36
-
37
- ## Installation
38
-
39
- Since **bsplyne** is not yet on PyPI, you can install it locally as follows:
40
-
41
- ```bash
42
- git clone https://github.com/Dorian210/bsplyne
43
- cd bsplyne
44
- pip install -e .
45
- ```
46
-
47
- ### Dependencies
48
- Make sure you have the following dependencies installed:
49
- - `numpy`
50
- - `numba`
51
- - `scipy`
52
- - `matplotlib`
53
- - `meshio`
54
- - `tqdm`
55
-
56
- ## Main Modules
57
-
58
- - **BSplineBasis**
59
- Implements B-spline basis function evaluation using the Cox-de Boor recursion formula.
60
-
61
- - **BSpline**
62
- Provides methods for creating and manipulating N-dimensional B-splines, including order elevation and knot insertion.
63
-
64
- - **MultiPatchBSplineConnectivity**
65
- Manages the connectivity between multiple N-dimensional B-spline patches.
66
-
67
- - **CouplesBSplineBorder** (less documented)
68
- Handles coupling between B-spline borders.
69
-
70
- ## Examples
71
-
72
- Several example scripts demonstrating the usage of **bsplyne** can be found in the `examples/` directory. These scripts cover:
73
- - Basis evaluation on a curved line
74
- - Plotting with Matplotlib
75
- - Order elevation
76
- - Knot insertion
77
- - Surface examples
78
- - Exporting to Paraview
79
-
80
- ## Documentation
81
-
82
- The full API documentation is available in the `docs/` directory of the project or via the [online documentation portal](https://dorian210.github.io/bsplyne/).
83
-
84
- ## Contributions
85
-
86
- At the moment, I am not actively reviewing contributions. However, if you encounter issues or have suggestions, feel free to open an issue.
87
-
88
- ## License
89
-
90
- This project is licensed under the [CeCILL License](LICENSE.txt).
91
-
@@ -1,13 +0,0 @@
1
- bsplyne/__init__.py,sha256=sajGBdm1-pu6iMgD-G_nimXrbXZsXwrJT6bjA_JyLO8,1899
2
- bsplyne/b_spline.py,sha256=CJYIS_kAJFOy1ay7kIOACyX1j20BkT9TRn1t1j8WkGU,110105
3
- bsplyne/b_spline_basis.py,sha256=J4vrGx-WcW7suZDJzvLr3zDQyGCCLAZlMbzuGeQ1fZ4,35315
4
- bsplyne/geometries_in_3D.py,sha256=krQPNZEg-PZCTnlhd1YrJjwCwv7R9T7oAxxlZJms_Zs,36519
5
- bsplyne/multi_patch_b_spline.py,sha256=4lsxS3m7EV_igfzOBjCKaB7Pd8pxI-ZHyLmnQRP4NhQ,75925
6
- bsplyne/my_wide_product.py,sha256=JqFy2s3ks0wKf4iq22NyzrZo-3Uo7ita-r6fGcGEfEE,5678
7
- bsplyne/parallel_utils.py,sha256=M0Tuy8wA3AYltsnr_iYOnREWRGZnPxavq9cpWaEC_lU,15326
8
- bsplyne/save_utils.py,sha256=p-gDHTAU4Fr8iI_yPfdrMHtEF6bOlgkm8b4yHxA5qtw,5023
9
- bsplyne-1.0.0.dist-info/licenses/LICENSE.txt,sha256=NuJeFieCkXCWPQlUUkzn5TrngzZmXp09-Q8fk15_r6A,3196
10
- bsplyne-1.0.0.dist-info/METADATA,sha256=5Gb889Dpk_bkCi3Pgds_5EintBhxWTNCREE7C4bNjkY,2690
11
- bsplyne-1.0.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
12
- bsplyne-1.0.0.dist-info/top_level.txt,sha256=Mwj9pTQb41GC_guOzmpvMcdkXeeAIWF6VtZcXghgx0c,8
13
- bsplyne-1.0.0.dist-info/RECORD,,