https://github.com/static-frame/arraykit

Python C Extensions for StaticFrame

https://github.com/static-frame/arraykit

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.7%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Python C Extensions for StaticFrame

Basic Info
  • Host: GitHub
  • Owner: static-frame
  • License: other
  • Language: C
  • Default Branch: master
  • Homepage:
  • Size: 1.6 MB
Statistics
  • Stars: 8
  • Watchers: 7
  • Forks: 2
  • Open Issues: 23
  • Releases: 66
Created about 6 years ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.rst


.. image:: https://img.shields.io/pypi/pyversions/arraykit.svg
  :target: https://pypi.org/project/arraykit

.. image:: https://img.shields.io/pypi/v/arraykit.svg
  :target: https://pypi.org/project/arraykit

.. image:: https://img.shields.io/conda/vn/conda-forge/arraykit.svg
  :target: https://anaconda.org/conda-forge/arraykit

.. image:: https://img.shields.io/github/actions/workflow/status/static-frame/arraykit/ci.yml?branch=master&label=build&logo=Github
  :target: https://github.com/static-frame/arraykit/actions/workflows/ci.yml


arraykit
=============

The ArrayKit library provides utilities for creating and transforming NumPy arrays, implementing performance-critical StaticFrame operations as Python C extensions.

Code: https://github.com/InvestmentSystems/arraykit

Packages: https://pypi.org/project/arraykit


Dependencies
--------------

ArrayKit requires the following:

- Python>=3.10
- numpy>=1.24.3


What is New in ArrayKit
-------------------------


1.1.0
............

Now building free-threaded compatible wheels for Python 3.13.

Added ``is_objectable()`` and ``is_objectable_dt64()``.

Added ``astype_array()``.


1.0.9
............

Updated types in ``pyi`` file.


1.0.8
............

NumPy ``datetime64`` scalar lookups in ``AutoMap`` and ``FrozenAutoMap`` explicitly require matching units.


1.0.7
............

Updated build configuration.


1.0.6
............

Updated build configuration.


1.0.5
............

Updated build configuration.


1.0.4
............

Updated build configuration.


1.0.3
............

Updated build configuration.


1.0.2
............

Updated build configuration.


1.0.1
............

Updated build configuration.


1.0.0
............

Integrated ``AutoMap`` and ``FrozenAutoMap`` from ``arraymap``.

Removed global integer cache from  ``AutoMap`` and ``FrozenAutoMap`` for thread safety.


0.10.0
............

Now building wheels for Python 3.13.


0.9.0
............

Added ``TriMap.map_merge()``.


0.8.3
............

Corrected incorrect component of ``_TLabel`` in ``__init__.pyi``.


0.8.2
............

Updated build configuration.


0.8.1
............

Updated build configuration.


0.8.0
............

Now building with NumPy 2.0.


0.7.2
............

Improved ``array_to_tuple_array()`` and ``array_to_tuple_iter()`` to preserve ``tuple`` in 1D arrays.


0.7.1
............

Extended ``array_to_tuple_array()`` and ``array_to_tuple_iter()`` to support 1D arrays.


0.7.0
............

Added ``array_to_tuple_array()``.

Added ``array_to_tuple_iter()``.


0.6.3
............

Optimized memory allocation strategy for ``nonzero_1d()``.


0.6.2
............

Extended ``nonzero_1d()`` to support non-contiguous arrays.

Optimizations to ``TriMap`` when mapping to object and flexible dtypes.


0.6.1
............

Enhancements and optimizations to ``TriMap``.

Added ``nonzero_1d()``.


0.6.0
............

Added ``TriMap`` utility class for join optimization.


0.5.1
............

Restored functional wheels for Mac OS ``x86_64``.


0.5.0
............

Now building wheels for 3.12.

Now building functional wheels for Mac OS ``arm64`` / Apple Silicon.


0.4.11
............

Updated types in ``pyi`` file.


0.4.10
............

Updated types in ``pyi`` file.

Minimum supported Python set to 3.8.

Minimum supported NumPy set to 1.19.5.


0.4.9
............

Improved performance of ``first_true_1d()`` and ``first_true_2d()``.


0.4.8
............

Restored behavior of ``Blockndex.rows`` to return -1 when ``BlockIndex`` has zero rows.


0.4.7
............

Added ``BlockIndex.iter_block()``.

Corrected issue in ``BlockIndex.shape`` when the ``BlockIndex`` has zero rows.


0.4.6
............

Corrected handling of empty selections in ``BlockIndex.iter_contiguous()``.


0.4.5
............

Corrected handling of ``ascending`` in ``BlockIndex.iter_contiguous()`` with Boolean arrays.


0.4.4
............

Corrected deallocation routines in ``BlockIndex.iter_contiguous()``.


0.4.3
............

Added ``BlockIndex.iter_contiguous()`` with options for ``ascending`` and ``reduce`` sequences.


0.4.2
............

Added ``slice_to_ascending_slice()``.

Updated ``BlockIndex.shape`` to internally cache the shape tuple.

Corrected ``BlockIndex.iter_select()`` handling of negative integers in sequences.


0.4.1
............

Updated ``BlockIndex.register()`` to handle 0-column 2D arrays and return False.

Added ``BlockIndex.rows``, ``BlockIndex.columns`` properties.

Updated unset ``BlockIndex.dtype`` to return a float dtype.


0.4.0
............

Added ``BlockIndex``, a tool to be used by ``TypeBlocks`` for mapping realized column positions to arrays.

Corrected potential issue in ``AK_CPL_resize_buffer`` that could segfault for very large offsets.


0.3.4
............

Simplified implementation of ``NaTType`` identification in ``isna_element()``.


0.3.3
............

Corrected potential memory leak in ``isna_element()``.


0.3.2
............

Optimization to ``delimited_to_arrays()`` character reading per line.


0.3.1
............

Improvements to ``delimited_to_arrays()``, including proper loading of ``float16`` types.

Extended ``deepcopy_array()`` to permit ``memo`` as None.

Corrected all compiler warnings on Windows.


0.3.0
............

Added ``first_true_1d()``, ``first_true_2d()``. Added tools for performance graphing.


0.2.9
............

Corrected segmentation fault resulting from attempting to parse invalid ``datetime64`` strings in ``AK_CPL_to_array_via_cast``.


0.2.8
............

Added ``include_none`` argument to ``isna_element()``; implemented identification of Pandas pd.Timestamp NaT.


0.2.7
............

Updated most-recent NumPy references to 1.23.5.


0.2.6
............

Maintenance release.


0.2.5
............

Optimization to numerical array creation in ``delimited_to_arrays()``.


0.2.4
............

Set NumPy minimum version at 1.18.5.


0.2.3
............

Extended arguments to and functionality in ``split_after_count()`` to support the complete CSV dialect interface.

Now building wheels for 3.11.


0.2.2
............

Refinements to ensure typed-parsed ints are always int64 in ``delimited_to_arrays()``.


0.2.1
............

Implemented ``count_iteration``, ``split_after_count``.


0.2.0
............

Implemented ``delimited_to_arrays``, ``iterable_str_to_array_1d``.


0.1.13
............

Now building Python 3.10 wheels.


0.1.12
............

Added ``get_new_indexers_and_screen``.


0.1.10
............

Updated minimum NumPy to 1.18.5


0.1.9
............

Improvements to performance of ``array_deepcopy``.

Added ``dtype_from_element``.


0.1.8
............

Revised cross compile releases.


0.1.7
............

Added ``dtype_from_element()``.


0.1.6
............

Explicit imports in ``__init__.py`` for better static analysis.


0.1.5
............

Added ``isna_element()``.


0.1.3
............

Redesigned package structure for inclusion of ``py.typed`` and ``__init__.pyi``.

``array_deepcopy`` now accepts kwargs and makes the ``memo`` dict optional.


0.1.2
..........

Maintenance release of the following interfaces:

``immutable_filter``
``mloc``
``shape_filter``
``column_2d_filter``
``column_1d_filter``
``row_1d_filter``
``array_deepcopy``
``resolve_dtype``
``resolve_dtype_iter``

Owner

  • Name: static-frame
  • Login: static-frame
  • Kind: organization

GitHub Events

Total
  • Create event: 16
  • Release event: 10
  • Issues event: 13
  • Issue comment event: 1
  • Push event: 45
  • Pull request review comment event: 1
  • Pull request event: 11
Last Year
  • Create event: 16
  • Release event: 10
  • Issues event: 13
  • Issue comment event: 1
  • Push event: 45
  • Pull request review comment event: 1
  • Pull request event: 11

Committers

Last synced: over 3 years ago

All Time
  • Total Commits: 654
  • Total Committers: 8
  • Avg Commits per committer: 81.75
  • Development Distribution Score (DDS): 0.185
Top Committers
Name Email Commits
Christopher Ariza a****a@f****m 533
Charles Burkland b****d@r****m 51
Brandt Bucher b****r@r****m 25
Brandt Bucher b****r@g****m 18
Charles Burkland c****d@g****m 13
Guru Devanla g****l@g****m 12
Christopher Ariza f****e@u****m 1
Guru Devanla g****a@u****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 101
  • Total pull requests: 83
  • Average time to close issues: 6 months
  • Average time to close pull requests: 18 days
  • Total issue authors: 4
  • Total pull request authors: 6
  • Average comments per issue: 0.4
  • Average comments per pull request: 0.65
  • Merged pull requests: 69
  • Bot issues: 0
  • Bot pull requests: 3
Past Year
  • Issues: 9
  • Pull requests: 10
  • Average time to close issues: 10 days
  • Average time to close pull requests: about 14 hours
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.11
  • Average comments per pull request: 0.1
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • flexatone (96)
  • gettodaze (1)
  • alexlatif (1)
  • passionsfrucht (1)
Pull Request Authors
  • flexatone (78)
  • chaburkland (11)
  • gdevanla (4)
  • gettodaze (4)
  • dependabot[bot] (3)
  • brandtbucher (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (3) codex (2) bug (1) enhancement (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 42,966 last-month
  • Total dependent packages: 2
    (may contain duplicates)
  • Total dependent repositories: 4
    (may contain duplicates)
  • Total versions: 72
  • Total maintainers: 2
pypi.org: arraykit

Array utilities for StaticFrame

  • Versions: 57
  • Dependent Packages: 1
  • Dependent Repositories: 4
  • Downloads: 42,966 Last month
Rankings
Downloads: 3.8%
Dependent packages count: 4.8%
Dependent repos count: 7.5%
Average: 11.4%
Stargazers count: 18.5%
Forks count: 22.7%
Maintainers (2)
Last synced: 11 months ago
conda-forge.org: arraykit
  • Versions: 15
  • Dependent Packages: 1
  • Dependent Repositories: 0
Rankings
Dependent packages count: 28.8%
Dependent repos count: 34.0%
Average: 43.7%
Stargazers count: 54.5%
Forks count: 57.4%
Last synced: 11 months ago

Dependencies

requirements.txt pypi
  • numpy ==1.18.5
setup.py pypi
  • numpy >=1.18.5
.github/workflows/build-pyodide.yml actions
  • actions/checkout master composite
  • actions/setup-node master composite
  • actions/setup-python master composite
  • aws-actions/configure-aws-credentials v1 composite
  • mymindstorm/setup-emsdk v12 composite
.github/workflows/ci.yml actions
  • actions/checkout master composite
  • actions/download-artifact v3 composite
  • actions/setup-python master composite
  • actions/upload-artifact v3 composite
  • pypa/cibuildwheel v2.13.0 composite
  • pypa/gh-action-pypi-publish master composite
requirements-build-3_08.txt pypi
  • numpy ==1.19.5
requirements-build-3_11.txt pypi
  • numpy ==1.23.5
requirements-build-3_12.txt pypi
  • numpy ==1.26.2
  • setuptools ==69.
requirements-dev-3_08.txt pypi
  • hypothesis ==6.10.1 development
  • invoke ==1.4.0 development
  • numpy ==1.19.5 development
  • pylint ==2.7.4 development
  • pytest ==7.1.2 development
requirements-dev-3_11.txt pypi
  • hypothesis ==6.10.1 development
  • invoke ==1.4.0 development
  • numpy ==1.23.5 development
  • pylint ==2.7.4 development
  • pytest ==7.1.2 development
requirements-dev-3_12.txt pypi
  • hypothesis ==6.10.1 development
  • invoke ==2.2.0 development
  • numpy ==1.26.2 development
  • pytest ==7.1.2 development