Releases: nmehran/charex
charex 0.5.2
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.27or>=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
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.27or>=2.0,<2.5 - llvmlite
0.47.x
np.strings support is conditional on NumPy 2.x.
Highlights
- Fixes fixed-width
S/UN-D array plus Python scalar broadcasting for
np.charandnp.stringscomparisons and occurrence methods. - Keeps the public API import-only:
import charexregisters the overloads. - Moves implementation modules under private
charex._*names. - Moves tests and benchmarks out of the installable
charexpackage namespace. - Prepares the PyPI distribution as
charex-numbawhile preserving the import
package namecharex. - 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
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.27or>=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/Uarrays
through bothnp.charandnp.strings. - Supports N-D and broadcast-compatible shapes for NumPy 2.x variable-width
StringDTypearrays throughnp.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()andStringDType(na_object=...)variants
with NumPy-matching operation-specific null behavior. - Preserves separate
np.charandnp.stringssemantics, 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_chararraysfor fixed-widthS/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
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.27or>=2.0,<2.5 - llvmlite
0.47.x
np.strings support is conditional on NumPy 2.x.
Highlights
- Adds NumPy 2.x
np.stringsoverloads for the read-only catalog. - Adds NumPy 2.x
StringDTypesupport for scalar, 0-D, and 1-D inputs. - Supports default
StringDType()andStringDType(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/Uscalar, 0-D, and 1-D inputs, including strided,
reversed, zero-stride, read-only, and empty views. - Preserves separate
np.charandnp.stringssemantics, including the
trailing whitespace/NUL behavior difference. - Adds packaging metadata and the native
charex._stringdtypehelper 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_chararraysfor fixed-widthS/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
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.27or>=2.0,<2.5 - llvmlite
0.47.x
np.strings support is conditional on NumPy 2.x.
Highlights
- Adds NumPy 2.x
np.stringsoverloads for the read-only catalog. - Adds NumPy 2.x
StringDTypesupport for scalar, 0-D, and 1-D inputs. - Supports default
StringDType()andStringDType(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/Uscalar, 0-D, and 1-D inputs, including strided,
reversed, zero-stride, read-only, and empty views. - Preserves separate
np.charandnp.stringssemantics, including the
trailing whitespace/NUL behavior difference. - Adds packaging metadata and the native
charex._stringdtypehelper 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_chararraysfor fixed-widthS/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
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.