arraykit 1.1.0__tar.gz → 1.2.1__tar.gz

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 (49) hide show
  1. {arraykit-1.1.0 → arraykit-1.2.1}/MANIFEST.in +1 -0
  2. {arraykit-1.1.0/arraykit.egg-info → arraykit-1.2.1}/PKG-INFO +36 -15
  3. {arraykit-1.1.0 → arraykit-1.2.1}/README.rst +12 -0
  4. arraykit-1.2.1/VERSION +2 -0
  5. {arraykit-1.1.0 → arraykit-1.2.1/arraykit.egg-info}/PKG-INFO +36 -15
  6. {arraykit-1.1.0 → arraykit-1.2.1}/arraykit.egg-info/SOURCES.txt +2 -0
  7. arraykit-1.2.1/pyproject.toml +56 -0
  8. arraykit-1.2.1/setup.py +38 -0
  9. {arraykit-1.1.0 → arraykit-1.2.1}/src/delimited_to_arrays.c +2 -1
  10. {arraykit-1.1.0 → arraykit-1.2.1}/test/test_pyi.py +2 -0
  11. arraykit-1.1.0/setup.py +0 -94
  12. {arraykit-1.1.0 → arraykit-1.2.1}/LICENSE.txt +0 -0
  13. {arraykit-1.1.0 → arraykit-1.2.1}/arraykit.egg-info/dependency_links.txt +0 -0
  14. {arraykit-1.1.0 → arraykit-1.2.1}/arraykit.egg-info/requires.txt +0 -0
  15. {arraykit-1.1.0 → arraykit-1.2.1}/arraykit.egg-info/top_level.txt +0 -0
  16. {arraykit-1.1.0 → arraykit-1.2.1}/setup.cfg +0 -0
  17. {arraykit-1.1.0 → arraykit-1.2.1}/src/__init__.py +0 -0
  18. {arraykit-1.1.0 → arraykit-1.2.1}/src/__init__.pyi +0 -0
  19. {arraykit-1.1.0 → arraykit-1.2.1}/src/_arraykit.c +0 -0
  20. {arraykit-1.1.0 → arraykit-1.2.1}/src/array_go.c +0 -0
  21. {arraykit-1.1.0 → arraykit-1.2.1}/src/array_go.h +0 -0
  22. {arraykit-1.1.0 → arraykit-1.2.1}/src/array_to_tuple.c +0 -0
  23. {arraykit-1.1.0 → arraykit-1.2.1}/src/array_to_tuple.h +0 -0
  24. {arraykit-1.1.0 → arraykit-1.2.1}/src/auto_map.c +0 -0
  25. {arraykit-1.1.0 → arraykit-1.2.1}/src/auto_map.h +0 -0
  26. {arraykit-1.1.0 → arraykit-1.2.1}/src/block_index.c +0 -0
  27. {arraykit-1.1.0 → arraykit-1.2.1}/src/block_index.h +0 -0
  28. {arraykit-1.1.0 → arraykit-1.2.1}/src/delimited_to_arrays.h +0 -0
  29. {arraykit-1.1.0 → arraykit-1.2.1}/src/methods.c +0 -0
  30. {arraykit-1.1.0 → arraykit-1.2.1}/src/methods.h +0 -0
  31. {arraykit-1.1.0 → arraykit-1.2.1}/src/py.typed +0 -0
  32. {arraykit-1.1.0 → arraykit-1.2.1}/src/tri_map.c +0 -0
  33. {arraykit-1.1.0 → arraykit-1.2.1}/src/tri_map.h +0 -0
  34. {arraykit-1.1.0 → arraykit-1.2.1}/src/utilities.h +0 -0
  35. {arraykit-1.1.0 → arraykit-1.2.1}/test/test_array_go.py +0 -0
  36. {arraykit-1.1.0 → arraykit-1.2.1}/test/test_astype_array.py +0 -0
  37. {arraykit-1.1.0 → arraykit-1.2.1}/test/test_auto_map.py +0 -0
  38. {arraykit-1.1.0 → arraykit-1.2.1}/test/test_auto_map_property.py +0 -0
  39. {arraykit-1.1.0 → arraykit-1.2.1}/test/test_block_index.py +0 -0
  40. {arraykit-1.1.0 → arraykit-1.2.1}/test/test_delimited_to_arrays.py +0 -0
  41. {arraykit-1.1.0 → arraykit-1.2.1}/test/test_delimited_to_arrays_integration.py +0 -0
  42. {arraykit-1.1.0 → arraykit-1.2.1}/test/test_delimited_to_arrays_property.py +0 -0
  43. {arraykit-1.1.0 → arraykit-1.2.1}/test/test_nonzero_1d.py +0 -0
  44. {arraykit-1.1.0 → arraykit-1.2.1}/test/test_nonzero_1d_property.py +0 -0
  45. {arraykit-1.1.0 → arraykit-1.2.1}/test/test_objectable.py +0 -0
  46. {arraykit-1.1.0 → arraykit-1.2.1}/test/test_split_after_count.py +0 -0
  47. {arraykit-1.1.0 → arraykit-1.2.1}/test/test_tri_map.py +0 -0
  48. {arraykit-1.1.0 → arraykit-1.2.1}/test/test_type_discovery.py +0 -0
  49. {arraykit-1.1.0 → arraykit-1.2.1}/test/test_util.py +0 -0
@@ -1,2 +1,3 @@
1
1
  include src/__init__.pyi src/py.typed
2
2
  include src/*.h
3
+ include VERSION
@@ -1,17 +1,16 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arraykit
3
- Version: 1.1.0
3
+ Version: 1.2.1
4
4
  Summary: Array utilities for StaticFrame
5
- Home-page: https://github.com/static-frame/arraykit
6
5
  Author: Christopher Ariza, Brandt Bucher, Charles Burkland
7
- License: MIT
8
- Keywords: numpy array
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/static-frame/arraykit
8
+ Keywords: numpy,array
9
9
  Classifier: Development Status :: 5 - Production/Stable
10
10
  Classifier: Intended Audience :: Developers
11
11
  Classifier: Topic :: Software Development
12
12
  Classifier: Programming Language :: C
13
13
  Classifier: Programming Language :: Python :: Implementation :: CPython
14
- Classifier: License :: OSI Approved :: MIT License
15
14
  Classifier: Operating System :: MacOS :: MacOS X
16
15
  Classifier: Operating System :: Microsoft :: Windows
17
16
  Classifier: Operating System :: POSIX
@@ -19,22 +18,32 @@ Classifier: Programming Language :: Python :: 3.10
19
18
  Classifier: Programming Language :: Python :: 3.11
20
19
  Classifier: Programming Language :: Python :: 3.12
21
20
  Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: 3.14
22
+ Classifier: Programming Language :: Python :: Free Threading
22
23
  Classifier: Typing :: Typed
23
24
  Requires-Python: >=3.10
24
25
  Description-Content-Type: text/x-rst
25
26
  License-File: LICENSE.txt
26
27
  Requires-Dist: numpy>=1.24.3
27
- Dynamic: author
28
- Dynamic: classifier
29
- Dynamic: description
30
- Dynamic: description-content-type
31
- Dynamic: home-page
32
- Dynamic: keywords
33
- Dynamic: license
34
28
  Dynamic: license-file
35
- Dynamic: requires-dist
36
- Dynamic: requires-python
37
- Dynamic: summary
29
+
30
+
31
+
32
+ .. image:: https://img.shields.io/pypi/pyversions/arraykit.svg
33
+ :target: https://pypi.org/project/arraykit
34
+
35
+ .. image:: https://img.shields.io/pypi/v/arraykit.svg
36
+ :target: https://pypi.org/project/arraykit
37
+
38
+ .. image:: https://img.shields.io/conda/vn/conda-forge/arraykit.svg
39
+ :target: https://anaconda.org/conda-forge/arraykit
40
+
41
+ .. image:: https://img.shields.io/github/actions/workflow/status/static-frame/arraykit/ci.yml?branch=master&label=build&logo=Github
42
+ :target: https://github.com/static-frame/arraykit/actions/workflows/ci.yml
43
+
44
+
45
+ arraykit
46
+ =============
38
47
 
39
48
  The ArrayKit library provides utilities for creating and transforming NumPy arrays, implementing performance-critical StaticFrame operations as Python C extensions.
40
49
 
@@ -56,6 +65,18 @@ What is New in ArrayKit
56
65
  -------------------------
57
66
 
58
67
 
68
+ 1.2.1
69
+ ............
70
+
71
+ Minor improvement in efficiency of string-to-float conversion in ``delimited_to_arrays()``.
72
+
73
+
74
+ 1.2.0
75
+ ............
76
+
77
+ Now building wheels for Python 3.14 and 3.14t.
78
+
79
+
59
80
  1.1.0
60
81
  ............
61
82
 
@@ -36,6 +36,18 @@ What is New in ArrayKit
36
36
  -------------------------
37
37
 
38
38
 
39
+ 1.2.1
40
+ ............
41
+
42
+ Minor improvement in efficiency of string-to-float conversion in ``delimited_to_arrays()``.
43
+
44
+
45
+ 1.2.0
46
+ ............
47
+
48
+ Now building wheels for Python 3.14 and 3.14t.
49
+
50
+
39
51
  1.1.0
40
52
  ............
41
53
 
arraykit-1.2.1/VERSION ADDED
@@ -0,0 +1,2 @@
1
+ 1.2.1
2
+
@@ -1,17 +1,16 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arraykit
3
- Version: 1.1.0
3
+ Version: 1.2.1
4
4
  Summary: Array utilities for StaticFrame
5
- Home-page: https://github.com/static-frame/arraykit
6
5
  Author: Christopher Ariza, Brandt Bucher, Charles Burkland
7
- License: MIT
8
- Keywords: numpy array
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/static-frame/arraykit
8
+ Keywords: numpy,array
9
9
  Classifier: Development Status :: 5 - Production/Stable
10
10
  Classifier: Intended Audience :: Developers
11
11
  Classifier: Topic :: Software Development
12
12
  Classifier: Programming Language :: C
13
13
  Classifier: Programming Language :: Python :: Implementation :: CPython
14
- Classifier: License :: OSI Approved :: MIT License
15
14
  Classifier: Operating System :: MacOS :: MacOS X
16
15
  Classifier: Operating System :: Microsoft :: Windows
17
16
  Classifier: Operating System :: POSIX
@@ -19,22 +18,32 @@ Classifier: Programming Language :: Python :: 3.10
19
18
  Classifier: Programming Language :: Python :: 3.11
20
19
  Classifier: Programming Language :: Python :: 3.12
21
20
  Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: 3.14
22
+ Classifier: Programming Language :: Python :: Free Threading
22
23
  Classifier: Typing :: Typed
23
24
  Requires-Python: >=3.10
24
25
  Description-Content-Type: text/x-rst
25
26
  License-File: LICENSE.txt
26
27
  Requires-Dist: numpy>=1.24.3
27
- Dynamic: author
28
- Dynamic: classifier
29
- Dynamic: description
30
- Dynamic: description-content-type
31
- Dynamic: home-page
32
- Dynamic: keywords
33
- Dynamic: license
34
28
  Dynamic: license-file
35
- Dynamic: requires-dist
36
- Dynamic: requires-python
37
- Dynamic: summary
29
+
30
+
31
+
32
+ .. image:: https://img.shields.io/pypi/pyversions/arraykit.svg
33
+ :target: https://pypi.org/project/arraykit
34
+
35
+ .. image:: https://img.shields.io/pypi/v/arraykit.svg
36
+ :target: https://pypi.org/project/arraykit
37
+
38
+ .. image:: https://img.shields.io/conda/vn/conda-forge/arraykit.svg
39
+ :target: https://anaconda.org/conda-forge/arraykit
40
+
41
+ .. image:: https://img.shields.io/github/actions/workflow/status/static-frame/arraykit/ci.yml?branch=master&label=build&logo=Github
42
+ :target: https://github.com/static-frame/arraykit/actions/workflows/ci.yml
43
+
44
+
45
+ arraykit
46
+ =============
38
47
 
39
48
  The ArrayKit library provides utilities for creating and transforming NumPy arrays, implementing performance-critical StaticFrame operations as Python C extensions.
40
49
 
@@ -56,6 +65,18 @@ What is New in ArrayKit
56
65
  -------------------------
57
66
 
58
67
 
68
+ 1.2.1
69
+ ............
70
+
71
+ Minor improvement in efficiency of string-to-float conversion in ``delimited_to_arrays()``.
72
+
73
+
74
+ 1.2.0
75
+ ............
76
+
77
+ Now building wheels for Python 3.14 and 3.14t.
78
+
79
+
59
80
  1.1.0
60
81
  ............
61
82
 
@@ -1,6 +1,8 @@
1
1
  LICENSE.txt
2
2
  MANIFEST.in
3
3
  README.rst
4
+ VERSION
5
+ pyproject.toml
4
6
  setup.py
5
7
  arraykit.egg-info/PKG-INFO
6
8
  arraykit.egg-info/SOURCES.txt
@@ -0,0 +1,56 @@
1
+ [build-system]
2
+ requires = [
3
+ "setuptools>=64",
4
+ "wheel",
5
+ "numpy>=2.2"
6
+ ]
7
+ build-backend = "setuptools.build_meta"
8
+
9
+ [project]
10
+ name = "arraykit"
11
+ description = "Array utilities for StaticFrame"
12
+ readme = { file = "README.rst", content-type = "text/x-rst" }
13
+ requires-python = ">=3.10"
14
+
15
+ dynamic = ["version"]
16
+
17
+ authors = [
18
+ { name = "Christopher Ariza" },
19
+ { name = "Brandt Bucher" },
20
+ { name = "Charles Burkland" },
21
+ ]
22
+ license = "MIT"
23
+ keywords = ["numpy", "array"]
24
+ dependencies = [
25
+ "numpy>=1.24.3",
26
+ ]
27
+ classifiers = [
28
+ "Development Status :: 5 - Production/Stable",
29
+ "Intended Audience :: Developers",
30
+ "Topic :: Software Development",
31
+ "Programming Language :: C",
32
+ "Programming Language :: Python :: Implementation :: CPython",
33
+ "Operating System :: MacOS :: MacOS X",
34
+ "Operating System :: Microsoft :: Windows",
35
+ "Operating System :: POSIX",
36
+ "Programming Language :: Python :: 3.10",
37
+ "Programming Language :: Python :: 3.11",
38
+ "Programming Language :: Python :: 3.12",
39
+ "Programming Language :: Python :: 3.13",
40
+ "Programming Language :: Python :: 3.14",
41
+ "Programming Language :: Python :: Free Threading",
42
+ "Typing :: Typed",
43
+ ]
44
+
45
+ [project.urls]
46
+ Homepage = "https://github.com/static-frame/arraykit"
47
+
48
+ [tool.setuptools]
49
+ package-dir = { "arraykit" = "src" }
50
+
51
+ [tool.setuptools.package-data]
52
+ arraykit = ["__init__.pyi", "py.typed"]
53
+
54
+ [tool.setuptools.dynamic]
55
+ version = { file = "VERSION" }
56
+
@@ -0,0 +1,38 @@
1
+ from setuptools import setup, Extension
2
+ from setuptools.command.build_ext import build_ext
3
+ import site, os
4
+ from pathlib import Path
5
+
6
+ AK_VERSION = Path("VERSION").read_text(encoding="utf-8").strip()
7
+
8
+ def get_ext_dir(*components: tp.Iterable[str]) -> tp.Sequence[str]:
9
+ dirs = []
10
+ for sp in site.getsitepackages():
11
+ fp = os.path.join(sp, *components)
12
+ if os.path.exists(fp):
13
+ dirs.append(fp)
14
+ return dirs
15
+
16
+ ext_modules = [
17
+ Extension(
18
+ name="arraykit._arraykit",
19
+ sources=[
20
+ "src/_arraykit.c",
21
+ "src/array_go.c",
22
+ "src/array_to_tuple.c",
23
+ "src/block_index.c",
24
+ "src/delimited_to_arrays.c",
25
+ "src/methods.c",
26
+ "src/tri_map.c",
27
+ "src/auto_map.c",
28
+ ],
29
+
30
+ include_dirs=get_ext_dir('numpy', '_core', 'include') + ['src'],
31
+ library_dirs=get_ext_dir('numpy', '_core', 'lib'),
32
+ define_macros=[("AK_VERSION", AK_VERSION)],
33
+ libraries=["npymath"],
34
+ )
35
+ ]
36
+
37
+ setup(ext_modules=ext_modules)
38
+
@@ -169,6 +169,7 @@ AK_TPS_Resolve(AK_TypeParserState previous, AK_TypeParserState new) {
169
169
  }
170
170
  // numerical promotion
171
171
  if (previous == TPS_INT) {
172
+ // this means that an empty field will not force integer to string
172
173
  if (new == TPS_EMPTY || new == TPS_INT) return TPS_INT;
173
174
  if (new == TPS_FLOAT) return TPS_FLOAT;
174
175
  if (new == TPS_COMPLEX) return TPS_COMPLEX;
@@ -809,7 +810,7 @@ static inline npy_float64
809
810
  AK_UCS4_to_float64(Py_UCS4 *p_item, Py_UCS4 *end, int *error, char tsep, char decc)
810
811
  {
811
812
  // Cache powers of 10 in memory.
812
- npy_float64 e[] = {
813
+ static const npy_float64 e[] = {
813
814
  1., 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
814
815
  1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19,
815
816
  1e20, 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
@@ -14,6 +14,8 @@ class Interface(tp.NamedTuple):
14
14
 
15
15
  @staticmethod
16
16
  def _valid_name(name: str) -> bool:
17
+ if name in ('__annotate__', '__class__', '__annotate_func__'):
18
+ return False
17
19
  if name.startswith('__'):
18
20
  return True
19
21
  if name.startswith('_'):
arraykit-1.1.0/setup.py DELETED
@@ -1,94 +0,0 @@
1
- import site
2
- import os
3
- from os import path
4
- import typing as tp
5
- from setuptools import Extension # type: ignore
6
- from setuptools import setup
7
-
8
- AK_VERSION = '1.1.0'
9
-
10
- ROOT_DIR_FP = path.abspath(path.dirname(__file__))
11
-
12
- def get_long_description() -> str:
13
- with open(path.join(ROOT_DIR_FP, 'README.rst'), encoding='utf-8') as f:
14
- msg = []
15
- collect = False
16
- start = -1
17
- for i, line in enumerate(f):
18
- if line.startswith('arraykit'):
19
- start = i + 2 # skip this line and the next
20
- if i == start:
21
- collect = True
22
- if collect:
23
- msg.append(line)
24
- return ''.join(msg).strip()
25
-
26
-
27
- # NOTE: we do this to avoid importing numpy: https://stackoverflow.com/questions/54117786/add-numpy-get-include-argument-to-setuptools-without-preinstalled-numpy
28
- # we used to import the following to get directories:
29
- # from numpy.distutils.misc_util import get_info
30
- # import numpy as np # type: ignore
31
- # get_info('npymath')['library_dirs']
32
- # get_info('npymath')['libraries']
33
-
34
- def get_ext_dir(*components: tp.Iterable[str]) -> tp.Sequence[str]:
35
- dirs = []
36
- for sp in site.getsitepackages():
37
- fp = os.path.join(sp, *components)
38
- if os.path.exists(fp):
39
- dirs.append(fp)
40
- return dirs
41
-
42
- ak_extension = Extension(
43
- name='arraykit._arraykit', # build into module
44
- sources=[
45
- 'src/_arraykit.c',
46
- 'src/array_go.c',
47
- 'src/array_to_tuple.c',
48
- 'src/block_index.c',
49
- 'src/delimited_to_arrays.c',
50
- 'src/methods.c',
51
- 'src/tri_map.c',
52
- 'src/auto_map.c',
53
- ],
54
- include_dirs=get_ext_dir('numpy', '_core', 'include') + ['src'],
55
- library_dirs=get_ext_dir('numpy', '_core', 'lib'),
56
- define_macros=[("AK_VERSION", AK_VERSION)],
57
- libraries=['npymath'], # not including mlib at this time
58
- )
59
-
60
- setup(
61
- name='arraykit',
62
- version=AK_VERSION,
63
- description='Array utilities for StaticFrame',
64
- long_description=get_long_description(),
65
- long_description_content_type='text/x-rst', # use text/x-rst
66
- python_requires='>=3.10',
67
- install_requires=['numpy>=1.24.3'],
68
- url='https://github.com/static-frame/arraykit',
69
- author='Christopher Ariza, Brandt Bucher, Charles Burkland',
70
- license='MIT',
71
- # See https://pypi.python.org/pypi?%3Aaction=list_classifiers
72
- classifiers=[
73
- 'Development Status :: 5 - Production/Stable',
74
- 'Intended Audience :: Developers',
75
- 'Topic :: Software Development',
76
- "Programming Language :: C",
77
- "Programming Language :: Python :: Implementation :: CPython",
78
- 'License :: OSI Approved :: MIT License',
79
- 'Operating System :: MacOS :: MacOS X',
80
- 'Operating System :: Microsoft :: Windows',
81
- 'Operating System :: POSIX',
82
- 'Programming Language :: Python :: 3.10',
83
- 'Programming Language :: Python :: 3.11',
84
- 'Programming Language :: Python :: 3.12',
85
- 'Programming Language :: Python :: 3.13',
86
- 'Typing :: Typed',
87
- ],
88
- keywords='numpy array',
89
- packages=['arraykit'],
90
- package_dir={'arraykit': 'src'},
91
- package_data={'arraykit': ['__init__.pyi', 'py.typed']},
92
- include_package_data=True,
93
- ext_modules=[ak_extension],
94
- )
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes