Quickstart

See examples/quickstart.py for a runnable example.

"""scitex-types quickstart: type-checking helpers for arrays and lists."""

import scitex_types


def main():
    # 1. is_array_like — recognises numpy arrays, pandas Series, lists, tuples.
    assert scitex_types.is_array_like([1, 2, 3]) is True
    assert scitex_types.is_array_like("not array") is False
    print("is_array_like([1,2,3]):", scitex_types.is_array_like([1, 2, 3]))

    # 2. is_listed_X — predicate over every element of a sequence.
    assert scitex_types.is_listed_X([1, 2, 3], int) is True
    assert scitex_types.is_listed_X([1, "x", 3], int) is False
    print("is_listed_X([1,2,3], int):", scitex_types.is_listed_X([1, 2, 3], int))

    # 3. is_list_of_type — alias style check.
    assert scitex_types.is_list_of_type([1.0, 2.0], float) is True
    print(
        "is_list_of_type([1.0,2.0], float):",
        scitex_types.is_list_of_type([1.0, 2.0], float),
    )

    # 4. ArrayLike / ColorLike protocols are exported as type aliases.
    print("ArrayLike alias:", scitex_types.ArrayLike)
    print("ColorLike alias:", scitex_types.ColorLike)


if __name__ == "__main__":
    main()