ndtypes 0.2.0dev4

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.
Files changed (139) hide show
  1. checksums.yaml +7 -0
  2. data/CONTRIBUTING.md +50 -0
  3. data/Gemfile +2 -0
  4. data/History.md +0 -0
  5. data/README.md +19 -0
  6. data/Rakefile +125 -0
  7. data/ext/ruby_ndtypes/extconf.rb +55 -0
  8. data/ext/ruby_ndtypes/gc_guard.c +36 -0
  9. data/ext/ruby_ndtypes/gc_guard.h +12 -0
  10. data/ext/ruby_ndtypes/ndtypes/AUTHORS.txt +5 -0
  11. data/ext/ruby_ndtypes/ndtypes/INSTALL.txt +101 -0
  12. data/ext/ruby_ndtypes/ndtypes/LICENSE.txt +29 -0
  13. data/ext/ruby_ndtypes/ndtypes/MANIFEST.in +3 -0
  14. data/ext/ruby_ndtypes/ndtypes/Makefile.in +87 -0
  15. data/ext/ruby_ndtypes/ndtypes/README.rst +47 -0
  16. data/ext/ruby_ndtypes/ndtypes/config.guess +1530 -0
  17. data/ext/ruby_ndtypes/ndtypes/config.h.in +67 -0
  18. data/ext/ruby_ndtypes/ndtypes/config.sub +1782 -0
  19. data/ext/ruby_ndtypes/ndtypes/configure +5260 -0
  20. data/ext/ruby_ndtypes/ndtypes/configure.ac +161 -0
  21. data/ext/ruby_ndtypes/ndtypes/doc/Makefile +14 -0
  22. data/ext/ruby_ndtypes/ndtypes/doc/_static/copybutton.js +66 -0
  23. data/ext/ruby_ndtypes/ndtypes/doc/conf.py +26 -0
  24. data/ext/ruby_ndtypes/ndtypes/doc/grammar/grammar.rst +27 -0
  25. data/ext/ruby_ndtypes/ndtypes/doc/index.rst +56 -0
  26. data/ext/ruby_ndtypes/ndtypes/doc/libndtypes/context.rst +131 -0
  27. data/ext/ruby_ndtypes/ndtypes/doc/libndtypes/encodings.rst +68 -0
  28. data/ext/ruby_ndtypes/ndtypes/doc/libndtypes/fields-values.rst +175 -0
  29. data/ext/ruby_ndtypes/ndtypes/doc/libndtypes/functions.rst +72 -0
  30. data/ext/ruby_ndtypes/ndtypes/doc/libndtypes/index.rst +43 -0
  31. data/ext/ruby_ndtypes/ndtypes/doc/libndtypes/init.rst +48 -0
  32. data/ext/ruby_ndtypes/ndtypes/doc/libndtypes/io.rst +100 -0
  33. data/ext/ruby_ndtypes/ndtypes/doc/libndtypes/memory.rst +124 -0
  34. data/ext/ruby_ndtypes/ndtypes/doc/libndtypes/predicates.rst +110 -0
  35. data/ext/ruby_ndtypes/ndtypes/doc/libndtypes/typedef.rst +31 -0
  36. data/ext/ruby_ndtypes/ndtypes/doc/libndtypes/types.rst +594 -0
  37. data/ext/ruby_ndtypes/ndtypes/doc/libndtypes/util.rst +166 -0
  38. data/ext/ruby_ndtypes/ndtypes/doc/ndtypes/buffer-protocol.rst +27 -0
  39. data/ext/ruby_ndtypes/ndtypes/doc/ndtypes/index.rst +21 -0
  40. data/ext/ruby_ndtypes/ndtypes/doc/ndtypes/pattern-matching.rst +330 -0
  41. data/ext/ruby_ndtypes/ndtypes/doc/ndtypes/quickstart.rst +144 -0
  42. data/ext/ruby_ndtypes/ndtypes/doc/ndtypes/types.rst +544 -0
  43. data/ext/ruby_ndtypes/ndtypes/doc/releases/index.rst +35 -0
  44. data/ext/ruby_ndtypes/ndtypes/install-sh +527 -0
  45. data/ext/ruby_ndtypes/ndtypes/libndtypes/Makefile.in +271 -0
  46. data/ext/ruby_ndtypes/ndtypes/libndtypes/Makefile.vc +269 -0
  47. data/ext/ruby_ndtypes/ndtypes/libndtypes/alloc.c +230 -0
  48. data/ext/ruby_ndtypes/ndtypes/libndtypes/attr.c +268 -0
  49. data/ext/ruby_ndtypes/ndtypes/libndtypes/attr.h +109 -0
  50. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/Makefile.in +73 -0
  51. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/Makefile.vc +70 -0
  52. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/README.txt +16 -0
  53. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/bpgrammar.c +2179 -0
  54. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/bpgrammar.h +134 -0
  55. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/bpgrammar.y +428 -0
  56. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/bplexer.c +2543 -0
  57. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/bplexer.h +735 -0
  58. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/bplexer.l +176 -0
  59. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/export.c +543 -0
  60. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/import.c +110 -0
  61. data/ext/ruby_ndtypes/ndtypes/libndtypes/context.c +228 -0
  62. data/ext/ruby_ndtypes/ndtypes/libndtypes/copy.c +634 -0
  63. data/ext/ruby_ndtypes/ndtypes/libndtypes/encodings.c +116 -0
  64. data/ext/ruby_ndtypes/ndtypes/libndtypes/equal.c +288 -0
  65. data/ext/ruby_ndtypes/ndtypes/libndtypes/grammar.c +3067 -0
  66. data/ext/ruby_ndtypes/ndtypes/libndtypes/grammar.h +180 -0
  67. data/ext/ruby_ndtypes/ndtypes/libndtypes/grammar.y +417 -0
  68. data/ext/ruby_ndtypes/ndtypes/libndtypes/io.c +1658 -0
  69. data/ext/ruby_ndtypes/ndtypes/libndtypes/lexer.c +2773 -0
  70. data/ext/ruby_ndtypes/ndtypes/libndtypes/lexer.h +734 -0
  71. data/ext/ruby_ndtypes/ndtypes/libndtypes/lexer.l +222 -0
  72. data/ext/ruby_ndtypes/ndtypes/libndtypes/match.c +1132 -0
  73. data/ext/ruby_ndtypes/ndtypes/libndtypes/ndtypes.c +2323 -0
  74. data/ext/ruby_ndtypes/ndtypes/libndtypes/ndtypes.h.in +893 -0
  75. data/ext/ruby_ndtypes/ndtypes/libndtypes/overflow.h +161 -0
  76. data/ext/ruby_ndtypes/ndtypes/libndtypes/parsefuncs.c +473 -0
  77. data/ext/ruby_ndtypes/ndtypes/libndtypes/parsefuncs.h +92 -0
  78. data/ext/ruby_ndtypes/ndtypes/libndtypes/parser.c +246 -0
  79. data/ext/ruby_ndtypes/ndtypes/libndtypes/seq.c +269 -0
  80. data/ext/ruby_ndtypes/ndtypes/libndtypes/seq.h +197 -0
  81. data/ext/ruby_ndtypes/ndtypes/libndtypes/serialize/Makefile.in +48 -0
  82. data/ext/ruby_ndtypes/ndtypes/libndtypes/serialize/Makefile.vc +46 -0
  83. data/ext/ruby_ndtypes/ndtypes/libndtypes/serialize/deserialize.c +1007 -0
  84. data/ext/ruby_ndtypes/ndtypes/libndtypes/serialize/serialize.c +442 -0
  85. data/ext/ruby_ndtypes/ndtypes/libndtypes/slice.h +42 -0
  86. data/ext/ruby_ndtypes/ndtypes/libndtypes/substitute.c +238 -0
  87. data/ext/ruby_ndtypes/ndtypes/libndtypes/substitute.h +50 -0
  88. data/ext/ruby_ndtypes/ndtypes/libndtypes/symtable.c +371 -0
  89. data/ext/ruby_ndtypes/ndtypes/libndtypes/symtable.h +100 -0
  90. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/Makefile.in +55 -0
  91. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/Makefile.vc +45 -0
  92. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/alloc_fail.c +82 -0
  93. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/alloc_fail.h +49 -0
  94. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/runtest.c +1657 -0
  95. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test.h +85 -0
  96. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_array.c +115 -0
  97. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_buffer.c +137 -0
  98. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_indent.c +201 -0
  99. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_match.c +2397 -0
  100. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_numba.c +57 -0
  101. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_parse.c +349 -0
  102. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_parse_error.c +27839 -0
  103. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_parse_roundtrip.c +350 -0
  104. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_record.c +231 -0
  105. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_typecheck.c +375 -0
  106. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_typedef.c +65 -0
  107. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/valgrind.supp +30 -0
  108. data/ext/ruby_ndtypes/ndtypes/libndtypes/tools/bench.c +79 -0
  109. data/ext/ruby_ndtypes/ndtypes/libndtypes/tools/indent.c +94 -0
  110. data/ext/ruby_ndtypes/ndtypes/libndtypes/tools/print_ast.c +96 -0
  111. data/ext/ruby_ndtypes/ndtypes/libndtypes/util.c +474 -0
  112. data/ext/ruby_ndtypes/ndtypes/libndtypes/values.c +228 -0
  113. data/ext/ruby_ndtypes/ndtypes/python/bench.py +49 -0
  114. data/ext/ruby_ndtypes/ndtypes/python/ndt_randtype.py +409 -0
  115. data/ext/ruby_ndtypes/ndtypes/python/ndt_support.py +14 -0
  116. data/ext/ruby_ndtypes/ndtypes/python/ndtypes/__init__.py +70 -0
  117. data/ext/ruby_ndtypes/ndtypes/python/ndtypes/_ndtypes.c +1332 -0
  118. data/ext/ruby_ndtypes/ndtypes/python/ndtypes/docstrings.h +319 -0
  119. data/ext/ruby_ndtypes/ndtypes/python/ndtypes/pyndtypes.h +154 -0
  120. data/ext/ruby_ndtypes/ndtypes/python/test_ndtypes.py +1977 -0
  121. data/ext/ruby_ndtypes/ndtypes/setup.py +288 -0
  122. data/ext/ruby_ndtypes/ndtypes/vcbuild/INSTALL.txt +41 -0
  123. data/ext/ruby_ndtypes/ndtypes/vcbuild/runtest32.bat +15 -0
  124. data/ext/ruby_ndtypes/ndtypes/vcbuild/runtest64.bat +13 -0
  125. data/ext/ruby_ndtypes/ndtypes/vcbuild/vcbuild32.bat +38 -0
  126. data/ext/ruby_ndtypes/ndtypes/vcbuild/vcbuild64.bat +38 -0
  127. data/ext/ruby_ndtypes/ndtypes/vcbuild/vcclean.bat +13 -0
  128. data/ext/ruby_ndtypes/ndtypes/vcbuild/vcdistclean.bat +14 -0
  129. data/ext/ruby_ndtypes/ruby_ndtypes.c +1003 -0
  130. data/ext/ruby_ndtypes/ruby_ndtypes.h +37 -0
  131. data/ext/ruby_ndtypes/ruby_ndtypes_internal.h +28 -0
  132. data/lib/ndtypes.rb +45 -0
  133. data/lib/ndtypes/errors.rb +2 -0
  134. data/lib/ndtypes/version.rb +6 -0
  135. data/ndtypes.gemspec +47 -0
  136. data/spec/gc_table_spec.rb +10 -0
  137. data/spec/ndtypes_spec.rb +289 -0
  138. data/spec/spec_helper.rb +241 -0
  139. metadata +242 -0
@@ -0,0 +1,288 @@
1
+ #
2
+ # BSD 3-Clause License
3
+ #
4
+ # Copyright (c) 2017-2018, plures
5
+ # All rights reserved.
6
+ #
7
+ # Redistribution and use in source and binary forms, with or without
8
+ # modification, are permitted provided that the following conditions are met:
9
+ #
10
+ # 1. Redistributions of source code must retain the above copyright notice,
11
+ # this list of conditions and the following disclaimer.
12
+ #
13
+ # 2. Redistributions in binary form must reproduce the above copyright notice,
14
+ # this list of conditions and the following disclaimer in the documentation
15
+ # and/or other materials provided with the distribution.
16
+ #
17
+ # 3. Neither the name of the copyright holder nor the names of its
18
+ # contributors may be used to endorse or promote products derived from
19
+ # this software without specific prior written permission.
20
+ #
21
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
25
+ # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27
+ # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28
+ # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29
+ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ #
32
+
33
+
34
+ import sys, os
35
+
36
+ if "bdist_wheel" in sys.argv:
37
+ from setuptools import setup, Extension
38
+ else:
39
+ from distutils.core import setup, Extension
40
+
41
+ from distutils.sysconfig import get_python_lib
42
+ from glob import glob
43
+ import platform
44
+ import subprocess
45
+ import shutil
46
+
47
+ try:
48
+ import sphinx.cmd
49
+ SPHINX_BUILD = "sphinx.cmd.build"
50
+ except:
51
+ SPHINX_BUILD = "sphinx"
52
+
53
+
54
+ DESCRIPTION = """\
55
+ Dynamic types for data description and in-memory computations.\
56
+ """
57
+
58
+ LONG_DESCRIPTION = """
59
+ Overview
60
+ --------
61
+
62
+ The ``ndtypes`` module is the Python interface to the ``libndtypes`` library.
63
+ ``libndtypes`` implements dynamic types relevant for scientific computing.
64
+
65
+ These types contain full memory layout information and are used both for type
66
+ checking and accessing values in memory.
67
+
68
+ Types are specified using a close variant of the datashape language.
69
+
70
+ ``ndtypes`` supports other container modules. It displays types, performs
71
+ type checking, and the concrete type layout information is used to traverse
72
+ memory.
73
+
74
+ As an example, ``xnd`` is a container module that is based on ``ndtypes``.
75
+
76
+ Links
77
+ -----
78
+
79
+ * https://github.com/plures/
80
+ * http://ndtypes.readthedocs.io/en/latest/
81
+ * http://xnd.readthedocs.io/en/latest/
82
+ """
83
+
84
+
85
+ if sys.platform == "darwin":
86
+ LIBNAME = "libndtypes.dylib"
87
+ LIBSONAME = "libndtypes.0.dylib"
88
+ LIBSHARED = "libndtypes.0.2.0dev3.dylib"
89
+ else:
90
+ LIBNAME = "libndtypes.so"
91
+ LIBSONAME = "libndtypes.so.0"
92
+ LIBSHARED = "libndtypes.so.0.2.0dev3"
93
+
94
+ if "install" in sys.argv or "bdist_wheel" in sys.argv:
95
+ LIBNDTYPESDIR = "%s/ndtypes" % get_python_lib()
96
+ INSTALL_LIBS = True
97
+ else:
98
+ LIBNDTYPESDIR = "../python/ndtypes"
99
+ INSTALL_LIBS = False
100
+
101
+ PY_MAJOR = sys.version_info[0]
102
+ PY_MINOR = sys.version_info[1]
103
+ ARCH = platform.architecture()[0]
104
+ BUILD_ALL = \
105
+ "build" in sys.argv or "install" in sys.argv or "bdist_wheel" in sys.argv
106
+ WITH_VALGRIND = False
107
+
108
+
109
+ if PY_MAJOR < 3:
110
+ raise NotImplementedError(
111
+ "python2 support is not implemented")
112
+
113
+
114
+ def get_module_path():
115
+ pathlist = glob("build/lib.*/")
116
+ if pathlist:
117
+ return pathlist[0]
118
+ raise RuntimeError("cannot find ndtypes module in build directory")
119
+
120
+ def copy_ext():
121
+ if sys.platform == "win32":
122
+ pathlist = glob("build/lib.*/ndtypes/_ndtypes.*.pyd")
123
+ else:
124
+ pathlist = glob("build/lib.*/ndtypes/_ndtypes.*.so")
125
+ if pathlist:
126
+ shutil.copy2(pathlist[0], "python/ndtypes")
127
+
128
+ def make_symlinks():
129
+ os.chdir(LIBNDTYPESDIR)
130
+ os.chmod(LIBSHARED, 0o755)
131
+ os.system("ln -sf %s %s" % (LIBSHARED, LIBSONAME))
132
+ os.system("ln -sf %s %s" % (LIBSHARED, LIBNAME))
133
+
134
+
135
+ if "--with-valgrind" in sys.argv:
136
+ WITH_VALGRIND = True
137
+ sys.argv.remove("--with-valgrind")
138
+
139
+
140
+ if len(sys.argv) == 3 and sys.argv[1] == "install" and \
141
+ sys.argv[2].startswith("--local"):
142
+ localdir = sys.argv[2].split("=")[1]
143
+ sys.argv = sys.argv[:2] + [
144
+ "--install-base=" + localdir,
145
+ "--install-purelib=" + localdir,
146
+ "--install-platlib=" + localdir,
147
+ "--install-scripts=" + localdir,
148
+ "--install-data=" + localdir,
149
+ "--install-headers=" + localdir]
150
+
151
+ LIBNDTYPESDIR = "%s/ndtypes" % localdir
152
+
153
+ if sys.platform == "darwin": # homebrew bug
154
+ sys.argv.append("--prefix=")
155
+
156
+ elif len(sys.argv) == 2:
157
+ if sys.argv[1] == 'module':
158
+ sys.argv[1] = 'build'
159
+ if sys.argv[1] == 'module_install':
160
+ sys.argv[1] = 'install'
161
+ if sys.argv[1] == 'test':
162
+ module_path = get_module_path()
163
+ python_path = os.getenv('PYTHONPATH')
164
+ path = module_path + ':' + python_path if python_path else module_path
165
+ env = os.environ.copy()
166
+ env['PYTHONPATH'] = path
167
+ ret = subprocess.call([sys.executable, "python/test_ndtypes.py", "--long"], env=env)
168
+ sys.exit(ret)
169
+ elif sys.argv[1] == 'doctest':
170
+ os.chdir("doc")
171
+ module_path = '../python'
172
+ python_path = os.getenv('PYTHONPATH')
173
+ path = module_path + ':' + python_path if python_path else module_path
174
+ env = os.environ.copy()
175
+ env['PYTHONPATH'] = path
176
+ cmd = [sys.executable, "-m", SPHINX_BUILD,
177
+ "-b", "doctest", "-d", "build/doctrees", ".", "build/html"]
178
+ ret = subprocess.call(cmd, env=env)
179
+ sys.exit(ret)
180
+ elif sys.argv[1] == 'clean':
181
+ shutil.rmtree("build", ignore_errors=True)
182
+ os.chdir("python/ndtypes")
183
+ shutil.rmtree("__pycache__", ignore_errors=True)
184
+ for f in glob("_ndtypes*.so"):
185
+ os.remove(f)
186
+ sys.exit(0)
187
+ elif sys.argv[1] == 'distclean':
188
+ if sys.platform == "win32":
189
+ os.chdir("vcbuild")
190
+ os.system("vcdistclean.bat")
191
+ else:
192
+ os.system("make distclean")
193
+ sys.exit(0)
194
+ else:
195
+ pass
196
+
197
+
198
+ def ndtypes_ext():
199
+ include_dirs = ["libndtypes"]
200
+ library_dirs = ["libndtypes"]
201
+ depends = ["libndtypes/ndtypes.h", "python/ndtypes/pyndtypes.h"]
202
+ sources = ["python/ndtypes/_ndtypes.c"]
203
+
204
+ if sys.platform == "win32":
205
+ libraries = ["libndtypes-0.2.0dev3.dll"]
206
+ extra_compile_args = ["/DNDT_IMPORT"]
207
+ extra_link_args = []
208
+ runtime_library_dirs = []
209
+
210
+ if BUILD_ALL:
211
+ from distutils.msvc9compiler import MSVCCompiler
212
+ MSVCCompiler().initialize()
213
+ os.chdir("vcbuild")
214
+ if ARCH == "64bit":
215
+ os.system("vcbuild64.bat")
216
+ else:
217
+ os.system("vcbuild32.bat")
218
+ os.chdir("..")
219
+
220
+ else:
221
+ libraries = [":%s" % LIBSHARED]
222
+ extra_compile_args = ["-Wextra", "-Wno-missing-field-initializers", "-std=c11"]
223
+ if sys.platform == "darwin":
224
+ libraries = ["ndtypes"]
225
+ extra_link_args = ["-Wl,-rpath,@loader_path"]
226
+ runtime_library_dirs = []
227
+ else:
228
+ libraries = [":%s" % LIBSHARED]
229
+ extra_link_args = []
230
+ runtime_library_dirs = ["$ORIGIN"]
231
+
232
+ if BUILD_ALL:
233
+ if WITH_VALGRIND:
234
+ os.system("./configure --with-valgrind && make")
235
+ else:
236
+ os.system("./configure && make")
237
+
238
+ return Extension (
239
+ "ndtypes._ndtypes",
240
+ include_dirs = include_dirs,
241
+ library_dirs = library_dirs,
242
+ depends = depends,
243
+ sources = sources,
244
+ libraries = libraries,
245
+ extra_compile_args = extra_compile_args,
246
+ extra_link_args = extra_link_args,
247
+ runtime_library_dirs = runtime_library_dirs
248
+ )
249
+
250
+ setup (
251
+ name = "ndtypes",
252
+ version = "0.2.0dev3",
253
+ description = DESCRIPTION,
254
+ long_description = LONG_DESCRIPTION,
255
+ url = "https://github.com/plures/ndtypes",
256
+ author = 'Stefan Krah',
257
+ author_email = 'skrah@bytereef.org',
258
+ license = "BSD License",
259
+ keywords = ["ndtypes", "array computing", "data description"],
260
+ platforms = ["Many"],
261
+ classifiers = [
262
+ "Development Status :: 4 - Beta",
263
+ "Intended Audience :: Developers",
264
+ "Intended Audience :: Education",
265
+ "Intended Audience :: End Users/Desktop",
266
+ "Intended Audience :: Financial and Insurance Industry",
267
+ "Intended Audience :: Science/Research",
268
+ "License :: OSI Approved :: BSD License",
269
+ "Programming Language :: C",
270
+ "Programming Language :: Python :: 3",
271
+ "Programming Language :: Python :: 3.6",
272
+ "Programming Language :: Python :: 3.7",
273
+ "Operating System :: OS Independent",
274
+ "Topic :: Scientific/Engineering :: Mathematics",
275
+ "Topic :: Software Development"
276
+ ],
277
+ package_dir = {"": "python"},
278
+ packages = ["ndtypes"],
279
+ package_data = {"ndtypes": ["libndtypes*", "ndtypes.h", "pyndtypes.h"]
280
+ if INSTALL_LIBS
281
+ else ["pyndtypes.h"]},
282
+ ext_modules = [ndtypes_ext()],
283
+ )
284
+
285
+ copy_ext()
286
+
287
+ if INSTALL_LIBS and sys.platform != "win32" and not "bdist_wheel" in sys.argv:
288
+ make_symlinks()
@@ -0,0 +1,41 @@
1
+
2
+
3
+ libndtypes build instructions for Visual Studio
4
+ ===============================================
5
+
6
+ Requirements
7
+ ------------
8
+
9
+ - Visual Studio 2015 or later
10
+
11
+
12
+ 64-bit build
13
+ ------------
14
+
15
+ # Set the build environment
16
+ vcvarsall.bat x64
17
+
18
+ # Build: If successful, the static library, the dynamic library, the
19
+ # common header file and two executables for running the unit tests
20
+ # should be in the dist64 directory.
21
+ vcbuild64.bat
22
+
23
+ # Test
24
+ runtest64.bat
25
+
26
+
27
+ 32-bit build
28
+ ------------
29
+
30
+ # Set the build environment
31
+ vcvarsall.bat x86
32
+
33
+ # Build: If successful, the static library, the dynamic library, the
34
+ # common header file and two executables for running the unit tests
35
+ # should be in the dist32 directory.
36
+ vcbuild32.bat
37
+
38
+ # Test
39
+ runtest32.bat
40
+
41
+
@@ -0,0 +1,15 @@
1
+ @ECHO OFF
2
+ echo.
3
+ <nul (set /p x="Running static library tests ... ")
4
+ echo.
5
+ echo.
6
+ dist32\runtest.exe
7
+ IF ERRORLEVEL 1 echo FAIL
8
+ echo.
9
+ <nul (set /p x="Running shared library tests ... ")
10
+ echo.
11
+ echo.
12
+ dist32\runtest_shared.exe
13
+ IF ERRORLEVEL 1 echo FAIL
14
+
15
+
@@ -0,0 +1,13 @@
1
+ @ECHO OFF
2
+ echo.
3
+ <nul (set /p x="Running static library tests ... ")
4
+ echo.
5
+ echo.
6
+ dist64\runtest.exe
7
+ IF ERRORLEVEL 1 echo FAIL
8
+ echo.
9
+ <nul (set /p x="Running shared library tests ... ")
10
+ echo.
11
+ echo.
12
+ dist64\runtest_shared.exe
13
+ IF ERRORLEVEL 1 echo FAIL
@@ -0,0 +1,38 @@
1
+ @ECHO off
2
+
3
+ if not exist dist32 mkdir dist32
4
+ if exist dist32\* del /q dist32\*
5
+
6
+ cd ..\libndtypes
7
+ copy /y Makefile.vc Makefile
8
+ copy /y ndtypes.h.in ndtypes.h
9
+
10
+ cd compat
11
+ copy /y Makefile.vc Makefile
12
+ cd ..
13
+
14
+ cd serialize
15
+ copy /y Makefile.vc Makefile
16
+ cd ..
17
+
18
+ nmake /nologo clean
19
+ nmake /nologo
20
+
21
+ copy /y libndtypes-0.2.0dev3.lib ..\vcbuild\dist32
22
+ copy /y libndtypes-0.2.0dev3.dll ..\vcbuild\dist32
23
+ copy /y libndtypes-0.2.0dev3.dll.lib ..\vcbuild\dist32
24
+ copy /y libndtypes-0.2.0dev3.dll.exp ..\vcbuild\dist32
25
+ copy /y ndtypes.h ..\vcbuild\dist32
26
+
27
+ cd tests
28
+ copy /y Makefile.vc Makefile
29
+ nmake /nologo clean
30
+ nmake /nologo
31
+
32
+ copy /y runtest.exe ..\..\vcbuild\dist32
33
+ copy /y runtest_shared.exe ..\..\vcbuild\dist32
34
+
35
+ cd ..\..\vcbuild
36
+
37
+
38
+
@@ -0,0 +1,38 @@
1
+ @ECHO off
2
+
3
+ if not exist dist64 mkdir dist64
4
+ if exist dist64\* del /q dist64\*
5
+
6
+ cd ..\libndtypes
7
+ copy /y Makefile.vc Makefile
8
+ copy /y ndtypes.h.in ndtypes.h
9
+
10
+ cd compat
11
+ copy /y Makefile.vc Makefile
12
+ cd ..
13
+
14
+ cd serialize
15
+ copy /y Makefile.vc Makefile
16
+ cd ..
17
+
18
+ nmake /nologo clean
19
+ nmake /nologo
20
+
21
+ copy /y libndtypes-0.2.0dev3.lib ..\vcbuild\dist64
22
+ copy /y libndtypes-0.2.0dev3.dll ..\vcbuild\dist64
23
+ copy /y libndtypes-0.2.0dev3.dll.lib ..\vcbuild\dist64
24
+ copy /y libndtypes-0.2.0dev3.dll.exp ..\vcbuild\dist64
25
+ copy /y ndtypes.h ..\vcbuild\dist64
26
+
27
+ cd tests
28
+ copy /y Makefile.vc Makefile
29
+ nmake /nologo clean
30
+ nmake /nologo
31
+
32
+ copy /y runtest.exe ..\..\vcbuild\dist64
33
+ copy /y runtest_shared.exe ..\..\vcbuild\dist64
34
+
35
+ cd ..\..\vcbuild
36
+
37
+
38
+
@@ -0,0 +1,13 @@
1
+ @ECHO off
2
+
3
+ cd ..\libndtypes
4
+ if exist Makefile nmake /nologo clean
5
+
6
+ cd tests
7
+ if exist Makefile nmake /nologo clean
8
+
9
+ cd ..\..\vcbuild
10
+ if exist dist64 rd /q /s dist64
11
+ if exist dist32 rd /q /s dist32
12
+
13
+