Skip to content

Releases: nmehran/charex

charex 0.5.2

01 Jun 21:13

Choose a tag to compare

charex 0.5.2

charex 0.5.2 is the first PyPI publishing release for the Numba 0.65.1
compatibility line. The PyPI distribution is published as charex-numba; the
import package remains charex.

Highlights

  • Keeps the 0.5.1 string behavior and fixed-width scalar broadcasting fix.
  • Adds the PyPI Trusted Publishing workflow for release artifacts.
  • Refreshes the README introduction and quick-start example for PyPI users.
  • Publishes release artifacts from CI rather than local builds.

Compatibility

  • Python >=3.10,<3.15
  • Numba >=0.65.1,<0.66
  • NumPy supported/tested window: >=1.22,<1.27 or >=2.0,<2.5
  • llvmlite 0.47.x

np.strings support is conditional on NumPy 2.x.

Not In Scope

  • New string operations beyond the 0.5.0 read-only catalog.
  • Fresh benchmark artifacts.
  • Transformation/output-producing operations such as replace, case conversion,
    strip, pad, join, split, encode, and decode.

charex 0.5.1

01 Jun 20:44

Choose a tag to compare

charex 0.5.1

charex 0.5.1 is a maintenance release for the Numba 0.65.1 compatibility
line. It includes the fixed-width scalar broadcasting parity fix layered after
0.5.0 and prepares the project for PyPI publication as charex-numba.

Compatibility

  • Python >=3.10,<3.15
  • Numba >=0.65.1,<0.66
  • NumPy supported/tested window: >=1.22,<1.27 or >=2.0,<2.5
  • llvmlite 0.47.x

np.strings support is conditional on NumPy 2.x.

Highlights

  • Fixes fixed-width S/U N-D array plus Python scalar broadcasting for
    np.char and np.strings comparisons and occurrence methods.
  • Keeps the public API import-only: import charex registers the overloads.
  • Moves implementation modules under private charex._* names.
  • Moves tests and benchmarks out of the installable charex package namespace.
  • Prepares the PyPI distribution as charex-numba while preserving the import
    package name charex.
  • Adds PyPI metadata and source-archive manifest rules for cleaner release
    artifacts.

Not In Scope

  • New string operations beyond the 0.5.0 read-only catalog.
  • Fresh benchmark artifacts.
  • Transformation/output-producing operations such as replace, case conversion,
    strip, pad, join, split, encode, and decode.

charex 0.5.0

01 Jun 14:53

Choose a tag to compare

charex 0.5.0

charex 0.5.0 is the shape/layout release for the Numba 0.65.1 compatibility
line. It extends the read-only string operation surface from scalar, 0-D, and
1-D inputs to NumPy-matching N-D and broadcast-compatible shapes.

Compatibility

  • Python >=3.10,<3.15
  • Numba >=0.65.1,<0.66
  • NumPy supported/tested window: >=1.22,<1.27 or >=2.0,<2.5
  • llvmlite 0.47.x

np.strings support is conditional on NumPy 2.x.

Highlights

  • Supports N-D and broadcast-compatible shapes for fixed-width S/U arrays
    through both np.char and np.strings.
  • Supports N-D and broadcast-compatible shapes for NumPy 2.x variable-width
    StringDType arrays through np.strings.
  • Supports contiguous arrays, read-only views, positive and negative strides,
    zero-stride views, and empty views for the supported read-only catalog.
  • Supports default StringDType() and StringDType(na_object=...) variants
    with NumPy-matching operation-specific null behavior.
  • Preserves separate np.char and np.strings semantics, including the
    trailing whitespace/NUL behavior difference.
  • Keeps transformation/output-producing operations outside this release scope.

Supported Read-Only Catalog

  • comparisons: equal, not_equal, greater, greater_equal, less,
    less_equal;
  • occurrence/search: count, startswith, endswith, find, rfind,
    index, rindex;
  • information/predicates: str_len, isalpha, isalnum, isdigit,
    isdecimal, isnumeric, isspace, islower, isupper, istitle;
  • np.char.compare_chararrays for fixed-width S/U.

Parity Audit

The full shape audit on Python 3.12.8, NumPy 2.4.6, and Numba 0.65.1 reports:

  • rows: 1702
  • matching rows: 1702
  • mismatches: 0
  • NumPy accepts but charex rejects: 0

The audit CSV is written to
docs/exploration/string_array_shape_audit.csv; the summary is maintained in
docs/string-array-shape-parity.md.

Benchmarks

The Numba 0.65.1 benchmark matrix in
docs/benchmarks/numba-v-0.65.1 includes
fixed-width np.char inputs and NumPy 2.x StringDType inputs through
np.strings.

The current matrix reports a 1.60x median speedup across 135 fixed-width and
StringDType cases, with results ranging from 1.02x to 6.51x NumPy speed.

Not In Scope

  • Transformation/output-producing operations such as replace, case conversion,
    strip, pad, join, split, encode, and decode.
  • Object array bridges.
  • Max-performance experimental kernels that have not been distilled.

charex 0.4.1

31 May 13:01

Choose a tag to compare

charex 0.4.1

charex 0.4.1 is the pre-N-D checkpoint for the Numba 0.65.1 compatibility
work. It updates the package for the NumPy 1.x/2.x support window and lands the
current scalar, 0-D, and 1-D string operation surface before the larger
N-D/broadcasting work begins.

0.4.1 is a patch update over 0.4.0: it keeps the same public operation
surface, tightens StringDType empty/NUL edge-case coverage, avoids unsafe
zero-length libc comparison calls in generated code, and refreshes benchmark
plot readability.

Compatibility

  • Python >=3.10,<3.15
  • Numba >=0.65.1,<0.66
  • NumPy supported/tested window: >=1.22,<1.27 or >=2.0,<2.5
  • llvmlite 0.47.x

np.strings support is conditional on NumPy 2.x.

Highlights

  • Adds NumPy 2.x np.strings overloads for the read-only catalog.
  • Adds NumPy 2.x StringDType support for scalar, 0-D, and 1-D inputs.
  • Supports default StringDType() and StringDType(na_object=...) variants.
  • Supports StringDType comparisons, occurrence/search, and information
    predicates for the same read-only method families as fixed-width strings.
  • Supports fixed-width S/U scalar, 0-D, and 1-D inputs, including strided,
    reversed, zero-stride, read-only, and empty views.
  • Preserves separate np.char and np.strings semantics, including the
    trailing whitespace/NUL behavior difference.
  • Adds packaging metadata and the native charex._stringdtype helper required
    for StringDType access.

Supported Read-Only Catalog

  • comparisons: equal, not_equal, greater, greater_equal, less,
    less_equal;
  • occurrence/search: count, startswith, endswith, find, rfind,
    index, rindex;
  • information/predicates: str_len, isalpha, isalnum, isdigit,
    isdecimal, isnumeric, isspace, islower, isupper, istitle;
  • np.char.compare_chararrays for fixed-width S/U.

Not In Scope

  • N-D arrays and general broadcasting.
  • Transformation/output-producing operations such as replace, case conversion,
    strip, pad, join, split, encode, and decode.
  • Object array bridges.
  • Max-performance experimental kernels that have not been distilled.

Next Milestone

0.5.0 is reserved for the shape/layout release: fixed-width and StringDType
N-D same-shape support, general broadcasting, and the corresponding audit and
benchmark refresh.

Benchmarks

The Numba 0.65.1 benchmark matrix in
docs/benchmarks/numba-v-0.65.1 includes
fixed-width np.char inputs and NumPy 2.x StringDType inputs through
np.strings.

charex 0.4.0

28 May 19:34

Choose a tag to compare

charex 0.4.0 is the pre-N-D checkpoint for the Numba 0.65.1 compatibility
work. It updates the package for the NumPy 1.x/2.x support window and lands the
current scalar, 0-D, and 1-D string operation surface before the larger
N-D/broadcasting work begins.

Compatibility

  • Python >=3.10,<3.15
  • Numba >=0.65.1,<0.66
  • NumPy supported/tested window: >=1.22,<1.27 or >=2.0,<2.5
  • llvmlite 0.47.x

np.strings support is conditional on NumPy 2.x.

Highlights

  • Adds NumPy 2.x np.strings overloads for the read-only catalog.
  • Adds NumPy 2.x StringDType support for scalar, 0-D, and 1-D inputs.
  • Supports default StringDType() and StringDType(na_object=...) variants.
  • Supports StringDType comparisons, occurrence/search, and information
    predicates for the same read-only method families as fixed-width strings.
  • Supports fixed-width S/U scalar, 0-D, and 1-D inputs, including strided,
    reversed, zero-stride, read-only, and empty views.
  • Preserves separate np.char and np.strings semantics, including the
    trailing whitespace/NUL behavior difference.
  • Adds packaging metadata and the native charex._stringdtype helper required
    for StringDType access.

Supported Read-Only Catalog

  • comparisons: equal, not_equal, greater, greater_equal, less,
    less_equal;
  • occurrence/search: count, startswith, endswith, find, rfind,
    index, rindex;
  • information/predicates: str_len, isalpha, isalnum, isdigit,
    isdecimal, isnumeric, isspace, islower, isupper, istitle;
  • np.char.compare_chararrays for fixed-width S/U.

Not In Scope

  • N-D arrays and general broadcasting.
  • Transformation/output-producing operations such as replace, case conversion,
    strip, pad, join, split, encode, and decode.
  • Object array bridges.
  • Max-performance experimental kernels that have not been distilled.

Next Milestone

0.5.0 is reserved for the shape/layout release: fixed-width and StringDType
N-D same-shape support, general broadcasting, and the corresponding audit and
benchmark refresh.

v0.1.0

26 May 02:08

Choose a tag to compare

First packaged release checkpoint for charex.

Highlights:

  • Targets Numba 0.65.1 with llvmlite 0.47.x.
  • Supports Python >=3.10,<3.15.
  • Supports NumPy >=1.22,<1.27 and >=2.0,<2.5.
  • Registers Numba overloads for NumPy fixed-width string APIs: np.char and NumPy 2.x np.strings.
  • Covers comparison, occurrence, length, and string predicate operations for scalar and one-dimensional C-contiguous fixed-width S/U inputs.
  • Includes refreshed tests, benchmark harnesses, and Numba 0.65.1 benchmark artifacts.

Not included in this release:

  • NumPy StringDType support.
  • N-dimensional array support and full NumPy broadcasting.
  • Transformation-method coverage for the full NumPy string catalog.