{"id":19347225,"url":"https://github.com/static-frame/arraykit","last_synced_at":"2025-04-23T05:31:50.621Z","repository":{"id":37665691,"uuid":"269422550","full_name":"static-frame/arraykit","owner":"static-frame","description":"Python C Extensions for StaticFrame","archived":false,"fork":false,"pushed_at":"2024-10-30T03:04:07.000Z","size":1807,"stargazers_count":8,"open_issues_count":21,"forks_count":2,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-10-30T06:13:16.813Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/static-frame.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-04T17:27:47.000Z","updated_at":"2024-08-22T03:51:45.000Z","dependencies_parsed_at":"2024-05-20T23:46:27.299Z","dependency_job_id":"33546a4e-e463-49e6-bcb7-e25dc0f642eb","html_url":"https://github.com/static-frame/arraykit","commit_stats":{"total_commits":654,"total_committers":8,"mean_commits":81.75,"dds":"0.18501529051987764","last_synced_commit":"de1ffd35775f15de5bb6f0641aa3aa69ac06846e"},"previous_names":[],"tags_count":55,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/static-frame%2Farraykit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/static-frame%2Farraykit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/static-frame%2Farraykit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/static-frame%2Farraykit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/static-frame","download_url":"https://codeload.github.com/static-frame/arraykit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250378846,"owners_count":21420824,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T04:15:00.186Z","updated_at":"2025-04-23T05:31:50.584Z","avatar_url":"https://github.com/static-frame.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n.. image:: https://img.shields.io/pypi/pyversions/arraykit.svg\n  :target: https://pypi.org/project/arraykit\n\n.. image:: https://img.shields.io/pypi/v/arraykit.svg\n  :target: https://pypi.org/project/arraykit\n\n.. image:: https://img.shields.io/conda/vn/conda-forge/arraykit.svg\n  :target: https://anaconda.org/conda-forge/arraykit\n\n.. image:: https://img.shields.io/github/actions/workflow/status/static-frame/arraykit/ci.yml?branch=master\u0026label=build\u0026logo=Github\n  :target: https://github.com/static-frame/arraykit/actions/workflows/ci.yml\n\n\narraykit\n=============\n\nThe ArrayKit library provides utilities for creating and transforming NumPy arrays, implementing performance-critical StaticFrame operations as Python C extensions.\n\nCode: https://github.com/InvestmentSystems/arraykit\n\nPackages: https://pypi.org/project/arraykit\n\n\n\nDependencies\n--------------\n\nArrayKit requires the following:\n\n- Python\u003e=3.9\n- numpy\u003e=1.19.5\n\n\n\nWhat is New in ArrayKit\n-------------------------\n\n0.10.0\n............\n\nNow building wheels for Python 3.13.\n\n\n0.9.0\n............\n\nAdded ``TriMap.map_merge()``.\n\n\n0.8.3\n............\n\nCorrected incorrect component of ``_TLabel`` in ``__init__.pyi``.\n\n\n0.8.2\n............\n\nUpdated build configuration.\n\n\n0.8.1\n............\n\nUpdated build configuration.\n\n\n0.8.0\n............\n\nNow building with NumPy 2.0.\n\n\n0.7.2\n............\n\nImproved ``array_to_tuple_array()`` and ``array_to_tuple_iter()`` to preserve ``tuple`` in 1D arrays.\n\n\n0.7.1\n............\n\nExtended ``array_to_tuple_array()`` and ``array_to_tuple_iter()`` to support 1D arrays.\n\n\n0.7.0\n............\n\nAdded ``array_to_tuple_array()``.\n\nAdded ``array_to_tuple_iter()``.\n\n\n0.6.3\n............\n\nOptimized memory allocation strategy for ``nonzero_1d()``.\n\n\n0.6.2\n............\n\nExtended ``nonzero_1d()`` to support non-contiguous arrays.\n\nOptimizations to ``TriMap`` when mapping to object and flexible dtypes.\n\n\n0.6.1\n............\n\nEnhancements and optimizations to ``TriMap``.\n\nAdded ``nonzero_1d()``.\n\n\n0.6.0\n............\n\nAdded ``TriMap`` utility class for join optimization.\n\n\n0.5.1\n............\n\nRestored functional wheels for Mac OS ``x86_64``.\n\n\n0.5.0\n............\n\nNow building wheels for 3.12.\n\nNow building functional wheels for Mac OS ``arm64`` / Apple Silicon.\n\n\n0.4.11\n............\n\nUpdated types in ``pyi`` file.\n\n\n0.4.10\n............\n\nUpdated types in ``pyi`` file.\n\nMinimum supported Python set to 3.8.\n\nMinimum supported NumPy set to 1.19.5.\n\n\n0.4.9\n............\n\nImproved performance of ``first_true_1d()`` and ``first_true_2d()``.\n\n\n0.4.8\n............\n\nRestored behavior of ``Blockndex.rows`` to return -1 when ``BlockIndex`` has zero rows.\n\n\n0.4.7\n............\n\nAdded ``BlockIndex.iter_block()``.\n\nCorrected issue in ``BlockIndex.shape`` when the ``BlockIndex`` has zero rows.\n\n\n0.4.6\n............\n\nCorrected handling of empty selections in ``BlockIndex.iter_contiguous()``.\n\n\n0.4.5\n............\n\nCorrected handling of ``ascending`` in ``BlockIndex.iter_contiguous()`` with Boolean arrays.\n\n\n0.4.4\n............\n\nCorrected deallocation routines in ``BlockIndex.iter_contiguous()``.\n\n\n0.4.3\n............\n\nAdded ``BlockIndex.iter_contiguous()`` with options for ``ascending`` and ``reduce`` sequences.\n\n\n0.4.2\n............\n\nAdded ``slice_to_ascending_slice()``.\n\nUpdated ``BlockIndex.shape`` to internally cache the shape tuple.\n\nCorrected ``BlockIndex.iter_select()`` handling of negative integers in sequences.\n\n\n0.4.1\n............\n\nUpdated ``BlockIndex.register()`` to handle 0-column 2D arrays and return False.\n\nAdded ``BlockIndex.rows``, ``BlockIndex.columns`` properties.\n\nUpdated unset ``BlockIndex.dtype`` to return a float dtype.\n\n\n0.4.0\n............\n\nAdded ``BlockIndex``, a tool to be used by ``TypeBlocks`` for mapping realized column positions to arrays.\n\nCorrected potential issue in ``AK_CPL_resize_buffer`` that could segfault for very large offsets.\n\n\n0.3.4\n............\n\nSimplified implementation of ``NaTType`` identification in ``isna_element()``.\n\n\n0.3.3\n............\n\nCorrected potential memory leak in ``isna_element()``.\n\n\n0.3.2\n............\n\nOptimization to ``delimited_to_arrays()`` character reading per line.\n\n\n0.3.1\n............\n\nImprovements to ``delimited_to_arrays()``, including proper loading of ``float16`` types.\n\nExtended ``deepcopy_array()`` to permit ``memo`` as None.\n\nCorrected all compiler warnings on Windows.\n\n\n0.3.0\n............\n\nAdded ``first_true_1d()``, ``first_true_2d()``. Added tools for performance graphing.\n\n\n0.2.9\n............\n\nCorrected segmentation fault resulting from attempting to parse invalid ``datetime64`` strings in ``AK_CPL_to_array_via_cast``.\n\n\n0.2.8\n............\n\nAdded ``include_none`` argument to ``isna_element()``; implemented identification of Pandas pd.Timestamp NaT.\n\n\n0.2.7\n............\n\nUpdated most-recent NumPy references to 1.23.5.\n\n\n0.2.6\n............\n\nMaintenance release.\n\n\n0.2.5\n............\n\nOptimization to numerical array creation in ``delimited_to_arrays()``.\n\n\n0.2.4\n............\n\nSet NumPy minimum version at 1.18.5.\n\n\n0.2.3\n............\n\nExtended arguments to and functionality in ``split_after_count()`` to support the complete CSV dialect interface.\n\nNow building wheels for 3.11.\n\n\n0.2.2\n............\n\nRefinements to ensure typed-parsed ints are always int64 in ``delimited_to_arrays()``.\n\n\n0.2.1\n............\n\nImplemented ``count_iteration``, ``split_after_count``.\n\n\n0.2.0\n............\n\nImplemented ``delimited_to_arrays``, ``iterable_str_to_array_1d``.\n\n\n0.1.13\n............\n\nNow building Python 3.10 wheels.\n\n\n0.1.12\n............\n\nAdded ``get_new_indexers_and_screen``.\n\n\n0.1.10\n............\n\nUpdated minimum NumPy to 1.18.5\n\n\n0.1.9\n............\n\nImprovements to performance of ``array_deepcopy``.\n\nAdded ``dtype_from_element``.\n\n\n0.1.8\n............\n\nRevised cross compile releases.\n\n\n0.1.7\n............\n\nAdded ``dtype_from_element()``.\n\n\n0.1.6\n............\n\nExplicit imports in ``__init__.py`` for better static analysis.\n\n\n0.1.5\n............\n\nAdded ``isna_element()``.\n\n\n0.1.3\n............\n\nRedesigned package structure for inclusion of ``py.typed`` and ``__init__.pyi``.\n\n``array_deepcopy`` now accepts kwargs and makes the ``memo`` dict optional.\n\n\n0.1.2\n..........\n\nMaintenance release of the following interfaces:\n\n``immutable_filter``\n``mloc``\n``shape_filter``\n``column_2d_filter``\n``column_1d_filter``\n``row_1d_filter``\n``array_deepcopy``\n``resolve_dtype``\n``resolve_dtype_iter``","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstatic-frame%2Farraykit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstatic-frame%2Farraykit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstatic-frame%2Farraykit/lists"}