head 1.8; access; symbols pkgsrc-2026Q2:1.4.0.2 pkgsrc-2026Q2-base:1.4; locks; strict; comment @# @; 1.8 date 2026.07.16.11.37.04; author adam; state Exp; branches; next 1.7; commitid X68nHLoecOPG5SNG; 1.7 date 2026.07.06.12.39.03; author adam; state Exp; branches; next 1.6; commitid sLko0273FYbSKAMG; 1.6 date 2026.06.28.08.07.13; author adam; state Exp; branches; next 1.5; commitid Dpuj2CrkcROyvxLG; 1.5 date 2026.06.24.08.51.15; author adam; state Exp; branches; next 1.4; commitid tIGL5iCViceDS1LG; 1.4 date 2026.06.06.06.34.35; author adam; state Exp; branches; next 1.3; commitid scGfGmnsd5zDHHIG; 1.3 date 2026.06.01.07.47.33; author adam; state Exp; branches; next 1.2; commitid mKSSm010ewkCg4IG; 1.2 date 2026.05.26.05.43.08; author adam; state Exp; branches; next 1.1; commitid 8juWKN5IecwSLhHG; 1.1 date 2026.05.20.07.58.33; author adam; state Exp; branches; next ; commitid hVL76bFlX1UjIwGG; desc @@ 1.8 log @py-tibs: updated to 1.0.0 1.0.0 This is the first stable release. The documented public API is now intended to remain compatible across future 1.x releases. Backwardly incompatible changes * Tightened automatic promotion to `Tibs` and `Mutibs`. Constructors and other bit-sequence arguments now accept only unambiguous inputs: existing `Tibs`/`Mutibs` objects, strings, `bytes`/`bytearray`/`memoryview`, and strict list or tuple bit patterns containing only `True`, `False`, `0` or `1`. Arbitrary iterables, file-like objects such as `io.BytesIO`, `array.array`, and numeric lists such as `[1, 2, 3]` no longer silently convert through truthiness. Use `from_bools(...)` for truthy iterables, `from_bytes(...)` for explicit byte data, and `from_values(...)` for fixed-width numeric values. @ text @# $NetBSD: Makefile,v 1.7 2026/07/06 12:39:03 adam Exp $ DISTNAME= tibs-1.0.0 PKGNAME= ${PYPKGPREFIX}-${DISTNAME} CATEGORIES= misc python MASTER_SITES= ${MASTER_SITE_PYPI:=t/tibs/} MAINTAINER= pkgsrc-users@@NetBSD.org HOMEPAGE= https://github.com/scott-griffiths/tibs COMMENT= Sleek Python library for binary data LICENSE= mit TEST_DEPENDS+= ${PYPKGPREFIX}-hypothesis>=6.151.0:../../devel/py-hypothesis TEST_DEPENDS+= ${PYPKGPREFIX}-test-benchmark>=5.2.0:../../devel/py-test-benchmark .include "cargo-depends.mk" .include "../../devel/py-maturin/tool.mk" .include "../../lang/python/wheel.mk" .include "../../lang/rust/cargo.mk" .include "../../mk/bsd.pkg.mk" @ 1.7 log @py-tibs: updated to 0.12.0 0.12.0 This is effectively the first beta before a 1.0 release. I don't plan to change the API or add new features before the 1.0 release. Backwardly incompatible changes * Minimum Python version now 3.10 instead of 3.8 * Renamed the `Endianness` enum to `ByteOrder` as it's more consistent. Added * Added `Tibs.split_at()` and `Mutibs.split_at()` for partitioning a bit sequence at one or more bit positions. Fixed * Fix LSB0 view value ordering. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.6 2026/06/28 08:07:13 adam Exp $ d3 1 a3 1 DISTNAME= tibs-0.12.0 @ 1.6 log @py-tibs: updated to 0.11.0 0.11.0 Backwardly incompatible changes * Restored `Tibs.__hash__`, reversing the change made in version 0.10.0. `Tibs` is now hashable again, while `Mutibs` remains unhashable. * Instead, equality no longer promotes strings, bytes or iterables to bit containers. `Tibs` and `Mutibs` compare equal to each other when their bit sequences match, but expressions such as `Tibs('0xf') == '0b1111'` now return `False`. Use `Tibs('0b1111')`, `Mutibs('0b1111')`, or representation properties such as `.bin` and `.hex` when comparing against literal representations. Added * Added `Tibs.to_padded_bytes()` and `Mutibs.to_padded_bytes()`, which convert to `bytes` after appending 0 to 7 zero bits on the right to reach a byte boundary. * Added `Dtype.pack`, `Dtype.pack_values`, `Dtype.unpack`, `Dtype.unpack_values` and `Dtype.unpack_values_iter`. * Added `DtypeKind.Bool` and `DtypeKind.Bits`. `Dtype("bool")` is a fixed one-bit dtype that packs `True`, `False`, `0` and `1`, and unpacks to Python `bool`. `Dtype("bitsN")` packs fixed-length bit sequences and unpacks them as immutable `Tibs` values. Fixes * `Dtype` instances now compare and hash by kind, length and byte order instead of by object identity. * Byte order is now rejected for every non-numeric dtype kind. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.5 2026/06/24 08:51:15 adam Exp $ d3 1 a3 1 DISTNAME= tibs-0.11.0 @ 1.5 log @py-tibs: updated to 0.10.0 0.10.0 Backwardly incompatible changes * Removed `__hash__` method from `Tibs`. Because `Tibs` can compare equal to other types (for example `Tibs('0xf') == '0b1111'`), the hash should not have been available. The new recommendation is to use the `encode` method to convert to `bytes` objects to use as keys. Fixes * Fixed LSB0 field extraction and assignment ordering for combined bit-order and byte-order views. LSB0 labels now identify the physical bits while extracted fields are returned in field-value order instead of being bit-reversed. * Fixed dtype length validation for `bin`, `oct` and `hex` values passed to `from_value` and `from_values`. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.4 2026/06/06 06:34:35 adam Exp $ d3 1 a3 1 DISTNAME= tibs-0.10.0 @ 1.4 log @py-tibs: updated to 0.9.2 0.9.2 Adding start and end to count. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.3 2026/06/01 07:47:33 adam Exp $ d3 1 a3 1 DISTNAME= tibs-0.9.2 @ 1.3 log @py-tibs: updated to 0.9.0 0.9.0 Adding periodic checks for Python signals in more methods that could... @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.2 2026/05/26 05:43:08 adam Exp $ d3 1 a3 1 DISTNAME= tibs-0.9.0 @ 1.2 log @py-tibs: updated to 0.8.0 0.8.0 Backwardly incompatible changes * Renamed the constructor keyword from `endianness` to `byte_order` for `from_u`, `from_i` and `from_f`. The `Endianness` enum is unchanged. Added * Added the `MutableView` class. Views from `Mutibs` are now live mutable views, so interpreted writes through `m.le`, `m.lsb0`, selected fields, or explicit mutable views update the original `Mutibs`. * Added fixed-width write methods and settable interpretation properties: `write_u`, `write_i`, `write_f`, `write_bin`, `write_oct`, `write_hex` and `write_bytes`, plus settable `.u`, `.i`, `.f`, `.bin`, `.oct`, `.hex` and `.bytes` properties where mutation is supported. * Added labelled field helpers. `Tibs.field(a, b)` and `Mutibs.field(a, b)` use default MSB0 labels, while `View.field(a, b)` and `MutableView.field(a, b)` use the view's current bit order. Field endpoints are inclusive and can be given in either order. * Added `View.from_indices` and `MutableView.from_indices` for low-level views over explicit source-bit positions. * Added read-only `byte_order` and `bit_order` properties to `View` and `MutableView`. Fixes * Fixed LSB0 field extraction so it reverses labels within bytes without also reversing byte order. * Improved error handling around field labels and byte-order construction, including reporting negative field labels as `ValueError`. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.1 2026/05/20 07:58:33 adam Exp $ d3 1 a3 1 DISTNAME= tibs-0.8.0 @ 1.1 log @py-tibs: added version 0.7.0 tibs is a simple but powerful Python library for creating, interpreting and manipulating binary data. It is 100% written in Rust to give it excellent performance, and is from the same author as the bitstring library. @ text @d1 1 a1 1 # $NetBSD$ d3 1 a3 1 DISTNAME= tibs-0.7.0 @