awkward-cpp 57__cp315-cp315-pyemscripten_2026_5_wasm32.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.
@@ -0,0 +1,21 @@
1
+ # BSD 3-Clause License; see https://github.com/scikit-hep/awkward/blob/main/LICENSE
2
+
3
+
4
+ import ctypes
5
+ import importlib.resources as importlib_resources
6
+ import platform
7
+
8
+ import awkward_cpp._kernel_signatures
9
+
10
+ if platform.system() == "Windows":
11
+ name = "awkward-cpu-kernels.dll"
12
+ elif platform.system() == "Darwin":
13
+ name = "libawkward-cpu-kernels.dylib"
14
+ else:
15
+ name = "libawkward-cpu-kernels.so"
16
+
17
+ libpath_ref = importlib_resources.files(awkward_cpp) / "lib" / name
18
+ with importlib_resources.as_file(libpath_ref) as libpath:
19
+ lib = ctypes.cdll.LoadLibrary(str(libpath))
20
+
21
+ kernel = awkward_cpp._kernel_signatures.by_signature(lib)
Binary file
@@ -0,0 +1,185 @@
1
+ # BSD 3-Clause License; see https://github.com/scikit-hep/awkward/blob/main/LICENSE
2
+
3
+
4
+ import ctypes
5
+ import importlib.resources as importlib_resources
6
+ import platform
7
+
8
+ if platform.system() == "Windows":
9
+ name = "awkward.dll"
10
+ elif platform.system() == "Darwin":
11
+ name = "libawkward.dylib"
12
+ else:
13
+ name = "libawkward.so"
14
+
15
+ libpath_ref = importlib_resources.files(__package__) / "lib" / name
16
+ with importlib_resources.as_file(libpath_ref) as libpath:
17
+ lib = ctypes.cdll.LoadLibrary(str(libpath))
18
+
19
+ # bool awkward_ArrayBuilder_length(void* arraybuilder,
20
+ # int64_t* result);
21
+ ArrayBuilder_length = lib.awkward_ArrayBuilder_length
22
+ ArrayBuilder_length.name = "ArrayBuilder.length"
23
+ ArrayBuilder_length.argtypes = [ctypes.c_voidp, ctypes.POINTER(ctypes.c_int64)]
24
+ ArrayBuilder_length.restype = ctypes.c_uint8
25
+
26
+ # bool awkward_ArrayBuilder_clear(void* arraybuilder);
27
+ ArrayBuilder_clear = lib.awkward_ArrayBuilder_clear
28
+ ArrayBuilder_clear.name = "ArrayBuilder.clear"
29
+ ArrayBuilder_clear.argtypes = [ctypes.c_voidp]
30
+ ArrayBuilder_clear.restype = ctypes.c_uint8
31
+
32
+ # bool awkward_ArrayBuilder_null(void* arraybuilder);
33
+ ArrayBuilder_null = lib.awkward_ArrayBuilder_null
34
+ ArrayBuilder_null.name = "ArrayBuilder.null"
35
+ ArrayBuilder_null.argtypes = [ctypes.c_voidp]
36
+ ArrayBuilder_null.restype = ctypes.c_uint8
37
+
38
+ # bool awkward_ArrayBuilder_boolean(void* arraybuilder,
39
+ # bool x);
40
+ ArrayBuilder_boolean = lib.awkward_ArrayBuilder_boolean
41
+ ArrayBuilder_boolean.name = "ArrayBuilder.boolean"
42
+ ArrayBuilder_boolean.argtypes = [ctypes.c_voidp, ctypes.c_uint8]
43
+ ArrayBuilder_boolean.restype = ctypes.c_uint8
44
+
45
+ # bool awkward_ArrayBuilder_integer(void* arraybuilder,
46
+ # int64_t x);
47
+ ArrayBuilder_integer = lib.awkward_ArrayBuilder_integer
48
+ ArrayBuilder_integer.name = "ArrayBuilder.integer"
49
+ ArrayBuilder_integer.argtypes = [ctypes.c_voidp, ctypes.c_int64]
50
+ ArrayBuilder_integer.restype = ctypes.c_uint8
51
+
52
+ # bool awkward_ArrayBuilder_real(void* arraybuilder,
53
+ # double x);
54
+ ArrayBuilder_real = lib.awkward_ArrayBuilder_real
55
+ ArrayBuilder_real.name = "ArrayBuilder.real"
56
+ ArrayBuilder_real.argtypes = [ctypes.c_voidp, ctypes.c_double]
57
+ ArrayBuilder_real.restype = ctypes.c_uint8
58
+
59
+ # bool awkward_ArrayBuilder_complex(void* arraybuilder,
60
+ # double real,
61
+ # double imag);
62
+ ArrayBuilder_complex = lib.awkward_ArrayBuilder_complex
63
+ ArrayBuilder_complex.name = "ArrayBuilder.complex"
64
+ ArrayBuilder_complex.argtypes = [ctypes.c_voidp, ctypes.c_double, ctypes.c_double]
65
+ ArrayBuilder_complex.restype = ctypes.c_uint8
66
+
67
+ # bool awkward_ArrayBuilder_datetime(void* arraybuilder,
68
+ # int64_t x,
69
+ # const char* unit);
70
+ ArrayBuilder_datetime = lib.awkward_ArrayBuilder_datetime
71
+ ArrayBuilder_datetime.name = "ArrayBuilder.datetime"
72
+ ArrayBuilder_datetime.argtypes = [ctypes.c_voidp, ctypes.c_int64, ctypes.c_voidp]
73
+ ArrayBuilder_datetime.restype = ctypes.c_uint8
74
+
75
+ # bool awkward_ArrayBuilder_timedelta(void* arraybuilder,
76
+ # int64_t x,
77
+ # const char* unit);
78
+ ArrayBuilder_timedelta = lib.awkward_ArrayBuilder_timedelta
79
+ ArrayBuilder_timedelta.name = "ArrayBuilder.timedelta"
80
+ ArrayBuilder_timedelta.argtypes = [ctypes.c_voidp, ctypes.c_int64, ctypes.c_voidp]
81
+ ArrayBuilder_timedelta.restype = ctypes.c_uint8
82
+
83
+ # bool awkward_ArrayBuilder_bytestring(void* arraybuilder,
84
+ # const char* unit);
85
+ ArrayBuilder_bytestring = lib.awkward_ArrayBuilder_bytestring
86
+ ArrayBuilder_bytestring.name = "ArrayBuilder.bytestring"
87
+ ArrayBuilder_bytestring.argtypes = [ctypes.c_voidp, ctypes.c_voidp]
88
+ ArrayBuilder_bytestring.restype = ctypes.c_uint8
89
+
90
+ # bool awkward_ArrayBuilder_bytestring_length(void* arraybuilder,
91
+ # const char* unit);
92
+ ArrayBuilder_bytestring_length = lib.awkward_ArrayBuilder_bytestring_length
93
+ ArrayBuilder_bytestring_length.name = "ArrayBuilder.bytestring_length"
94
+ ArrayBuilder_bytestring_length.argtypes = [
95
+ ctypes.c_voidp,
96
+ ctypes.c_voidp,
97
+ ctypes.c_int64,
98
+ ]
99
+ ArrayBuilder_bytestring_length.restype = ctypes.c_uint8
100
+
101
+ # bool awkward_ArrayBuilder_string(void* arraybuilder,
102
+ # const char* unit);
103
+ ArrayBuilder_string = lib.awkward_ArrayBuilder_string
104
+ ArrayBuilder_string.name = "ArrayBuilder.string"
105
+ ArrayBuilder_string.argtypes = [ctypes.c_voidp, ctypes.c_voidp]
106
+ ArrayBuilder_string.restype = ctypes.c_uint8
107
+
108
+ # bool awkward_ArrayBuilder_string_length(void* arraybuilder,
109
+ # const char* unit);
110
+ ArrayBuilder_string_length = lib.awkward_ArrayBuilder_string_length
111
+ ArrayBuilder_string_length.name = "ArrayBuilder.string_length"
112
+ ArrayBuilder_string_length.argtypes = [ctypes.c_voidp, ctypes.c_voidp, ctypes.c_int64]
113
+ ArrayBuilder_string_length.restype = ctypes.c_uint8
114
+
115
+ # bool awkward_ArrayBuilder_beginlist(void* arraybuilder);
116
+ ArrayBuilder_beginlist = lib.awkward_ArrayBuilder_beginlist
117
+ ArrayBuilder_beginlist.name = "ArrayBuilder.beginlist"
118
+ ArrayBuilder_beginlist.argtypes = [ctypes.c_voidp]
119
+ ArrayBuilder_beginlist.restype = ctypes.c_uint8
120
+
121
+ # bool awkward_ArrayBuilder_endlist(void* arraybuilder);
122
+ ArrayBuilder_endlist = lib.awkward_ArrayBuilder_endlist
123
+ ArrayBuilder_endlist.name = "ArrayBuilder.endlist"
124
+ ArrayBuilder_endlist.argtypes = [ctypes.c_voidp]
125
+ ArrayBuilder_endlist.restype = ctypes.c_uint8
126
+
127
+ # uint8_t awkward_ArrayBuilder_begintuple(void* arraybuilder,
128
+ # int64_t numfields);
129
+ ArrayBuilder_begintuple = lib.awkward_ArrayBuilder_begintuple
130
+ ArrayBuilder_begintuple.name = "ArrayBuilder.begintuple"
131
+ ArrayBuilder_begintuple.argtypes = [ctypes.c_voidp, ctypes.c_int64]
132
+ ArrayBuilder_begintuple.restype = ctypes.c_uint8
133
+
134
+ # uint8_t awkward_ArrayBuilder_index(void* arraybuilder,
135
+ # int64_t index);
136
+ ArrayBuilder_index = lib.awkward_ArrayBuilder_index
137
+ ArrayBuilder_index.name = "ArrayBuilder.index"
138
+ ArrayBuilder_index.argtypes = [ctypes.c_voidp, ctypes.c_int64]
139
+ ArrayBuilder_index.restype = ctypes.c_uint8
140
+
141
+ # uint8_t awkward_ArrayBuilder_endtuple(void* arraybuilder);
142
+ ArrayBuilder_endtuple = lib.awkward_ArrayBuilder_endtuple
143
+ ArrayBuilder_endtuple.name = "ArrayBuilder.endtuple"
144
+ ArrayBuilder_endtuple.argtypes = [ctypes.c_voidp]
145
+ ArrayBuilder_endtuple.restype = ctypes.c_uint8
146
+
147
+ # uint8_t awkward_ArrayBuilder_beginrecord(void* arraybuilder);
148
+ ArrayBuilder_beginrecord = lib.awkward_ArrayBuilder_beginrecord
149
+ ArrayBuilder_beginrecord.name = "ArrayBuilder.beginrecord"
150
+ ArrayBuilder_beginrecord.argtypes = [ctypes.c_voidp]
151
+ ArrayBuilder_beginrecord.restype = ctypes.c_uint8
152
+
153
+ # uint8_t awkward_ArrayBuilder_beginrecord_fast(void* arraybuilder,
154
+ # const char* name);
155
+ ArrayBuilder_beginrecord_fast = lib.awkward_ArrayBuilder_beginrecord_fast
156
+ ArrayBuilder_beginrecord_fast.name = "ArrayBuilder.beginrecord_fast"
157
+ ArrayBuilder_beginrecord_fast.argtypes = [ctypes.c_voidp, ctypes.c_voidp]
158
+ ArrayBuilder_beginrecord_fast.restype = ctypes.c_uint8
159
+
160
+ # uint8_t awkward_ArrayBuilder_beginrecord_check(void* arraybuilder,
161
+ # const char* name);
162
+ ArrayBuilder_beginrecord_check = lib.awkward_ArrayBuilder_beginrecord_check
163
+ ArrayBuilder_beginrecord_check.name = "ArrayBuilder.beginrecord_check"
164
+ ArrayBuilder_beginrecord_check.argtypes = [ctypes.c_voidp, ctypes.c_voidp]
165
+ ArrayBuilder_beginrecord_check.restype = ctypes.c_uint8
166
+
167
+ # uint8_t awkward_ArrayBuilder_field_fast(void* arraybuilder,
168
+ # const char* key);
169
+ ArrayBuilder_field_fast = lib.awkward_ArrayBuilder_field_fast
170
+ ArrayBuilder_field_fast.name = "ArrayBuilder.field_fast"
171
+ ArrayBuilder_field_fast.argtypes = [ctypes.c_voidp, ctypes.c_voidp]
172
+ ArrayBuilder_field_fast.restype = ctypes.c_uint8
173
+
174
+ # uint8_t awkward_ArrayBuilder_field_check(void* arraybuilder,
175
+ # const char* key);
176
+ ArrayBuilder_field_check = lib.awkward_ArrayBuilder_field_check
177
+ ArrayBuilder_field_check.name = "ArrayBuilder.field_check"
178
+ ArrayBuilder_field_check.argtypes = [ctypes.c_voidp, ctypes.c_voidp]
179
+ ArrayBuilder_field_check.restype = ctypes.c_uint8
180
+
181
+ # uint8_t awkward_ArrayBuilder_endrecord(void* arraybuilder);
182
+ ArrayBuilder_endrecord = lib.awkward_ArrayBuilder_endrecord
183
+ ArrayBuilder_endrecord.name = "ArrayBuilder.endrecord"
184
+ ArrayBuilder_endrecord.argtypes = [ctypes.c_voidp]
185
+ ArrayBuilder_endrecord.restype = ctypes.c_uint8
@@ -0,0 +1,44 @@
1
+ Metadata-Version: 2.4
2
+ Name: awkward_cpp
3
+ Version: 57
4
+ Summary: CPU kernels and compiled extensions for Awkward Array
5
+ Author-Email: Jim Pivarski <jpivarski@gmail.com>
6
+ Maintainer-Email: Scikit-HEP <scikit-hep-admins@googlegroups.com>
7
+ License-Expression: BSD-3-Clause AND MIT
8
+ License-File: LICENSE
9
+ License-File: rapidjson/license.txt
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Intended Audience :: Information Technology
13
+ Classifier: Intended Audience :: Science/Research
14
+ Classifier: Operating System :: MacOS :: MacOS X
15
+ Classifier: Operating System :: Microsoft :: Windows
16
+ Classifier: Operating System :: POSIX :: Linux
17
+ Classifier: Operating System :: Unix
18
+ Classifier: Programming Language :: Python
19
+ Classifier: Programming Language :: Python :: 3 :: Only
20
+ Classifier: Programming Language :: Python :: 3
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Programming Language :: Python :: 3.14
26
+ Classifier: Topic :: Scientific/Engineering
27
+ Classifier: Topic :: Scientific/Engineering :: Information Analysis
28
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
29
+ Classifier: Topic :: Scientific/Engineering :: Physics
30
+ Classifier: Topic :: Software Development
31
+ Classifier: Topic :: Utilities
32
+ Project-URL: Homepage, https://github.com/scikit-hep/awkward-1.0
33
+ Project-URL: Documentation, https://awkward-array.org
34
+ Project-URL: Source Code, https://github.com/scikit-hep/awkward-1.0
35
+ Project-URL: Bug Tracker, https://github.com/scikit-hep/awkward-1.0/issues
36
+ Project-URL: Discussions, https://github.com/scikit-hep/awkward-1.0/discussions
37
+ Project-URL: Releases, https://github.com/scikit-hep/awkward-1.0/releases
38
+ Requires-Python: >=3.10
39
+ Requires-Dist: numpy>=1.21.3
40
+ Description-Content-Type: text/markdown
41
+
42
+ # `awkward-cpp`
43
+
44
+ `awkward-cpp` provides precompiled routines for the `awkward` package. It is not useful on its own, only as a dependency for `awkward `.
@@ -0,0 +1,12 @@
1
+ awkward_cpp/__init__.py,sha256=c3K_Hb4C1gVOl_q1IfB8k-a0zcb_TrH1l39FsP5Zp-c,161
2
+ awkward_cpp/_kernel_signatures.py,sha256=_2egOVZpU1YIoVIx087JMG6x2CU5FMcqMp0Gw2AkDUk,140313
3
+ awkward_cpp/cpu_kernels.py,sha256=IyaDZ7pKrBuIMoZGGN7ey1GBhy6CEUY2oOwwxS4jkuw,635
4
+ awkward_cpp/libawkward.py,sha256=qG9CZd9Qebb17HmAaFa1aCq1HtBBnlLM0jfcUxTkZO4,8581
5
+ awkward_cpp/lib/_ext.cpython-315-wasm32-emscripten.so,sha256=IqUp5aVgUS22bca0tj2NhMdsSbg68lHgM4WDtzFpmTs,227647
6
+ awkward_cpp/lib/libawkward-cpu-kernels.so,sha256=XaMkaGUZuNg4NOYs-DUYQZ8TKdvO9AYVUeEypTb6v3c,428257
7
+ awkward_cpp/lib/libawkward.so,sha256=RjSRhHU2VHRCrxM6xNvGG0MtgsbIYu5OH6g1ePSDI_Y,458437
8
+ awkward_cpp-57.dist-info/licenses/LICENSE,sha256=8F5OAD_PpZAb4NOYgFqGU6oelSEEM-AOiaTFUoSRtOY,1520
9
+ awkward_cpp-57.dist-info/licenses/rapidjson/license.txt,sha256=oUDl1G_nNKHHjxo8PvIHhx3XVki-cf3ajjCbI6uLHzI,5152
10
+ awkward_cpp-57.dist-info/METADATA,sha256=2ilxvbyxhfsbm_-A1HDyc1uZa6vPhFxFDIty31RHAGU,2086
11
+ awkward_cpp-57.dist-info/WHEEL,sha256=Lvn6zU7AQuN3iEZt8vaabYgDP8YMMEplslH-QuoVd-E,122
12
+ awkward_cpp-57.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: scikit-build-core 1.0.3
3
+ Root-Is-Purelib: false
4
+ Tag: cp315-cp315-pyemscripten_2026_5_wasm32
5
+
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2019, Jim Pivarski
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ 3. Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,57 @@
1
+ Tencent is pleased to support the open source community by making RapidJSON available.
2
+
3
+ Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
+
5
+ If you have downloaded a copy of the RapidJSON binary from Tencent, please note that the RapidJSON binary is licensed under the MIT License.
6
+ If you have downloaded a copy of the RapidJSON source code from Tencent, please note that RapidJSON source code is licensed under the MIT License, except for the third-party components listed below which are subject to different license terms. Your integration of RapidJSON into your own projects may require compliance with the MIT License, as well as the other licenses applicable to the third-party components included within RapidJSON. To avoid the problematic JSON license in your own projects, it's sufficient to exclude the bin/jsonchecker/ directory, as it's the only code under the JSON license.
7
+ A copy of the MIT License is included in this file.
8
+
9
+ Other dependencies and licenses:
10
+
11
+ Open Source Software Licensed Under the BSD License:
12
+ --------------------------------------------------------------------
13
+
14
+ The msinttypes r29
15
+ Copyright (c) 2006-2013 Alexander Chemeris
16
+ All rights reserved.
17
+
18
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
19
+
20
+ * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
21
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
22
+ * Neither the name of copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
23
+
24
+ THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
+
26
+ Open Source Software Licensed Under the JSON License:
27
+ --------------------------------------------------------------------
28
+
29
+ json.org
30
+ Copyright (c) 2002 JSON.org
31
+ All Rights Reserved.
32
+
33
+ JSON_checker
34
+ Copyright (c) 2002 JSON.org
35
+ All Rights Reserved.
36
+
37
+
38
+ Terms of the JSON License:
39
+ ---------------------------------------------------
40
+
41
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
42
+
43
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
44
+
45
+ The Software shall be used for Good, not Evil.
46
+
47
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
48
+
49
+
50
+ Terms of the MIT License:
51
+ --------------------------------------------------------------------
52
+
53
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
54
+
55
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
56
+
57
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.