util.pyi 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. # Copyright (c) 2021 - 2025, Ilan Schnell; All Rights Reserved
  2. from collections import Counter
  3. from collections.abc import Iterable, Iterator, Sequence
  4. from typing import Any, AnyStr, BinaryIO, Optional, Union
  5. from bitarray import bitarray, BytesLike, CodeDict
  6. FreqMap = Union[Counter[int], dict[Any, Union[int, float]]]
  7. def zeros(length: int, endian: Optional[str] = ...) -> bitarray: ...
  8. def ones(length: int, endian: Optional[str] = ...) -> bitarray: ...
  9. def urandom(length: int, endian: Optional[str] = ...) -> bitarray: ...
  10. def random_p(n: int,
  11. p = ...,
  12. endian: Optional[str] = ...) -> bitarray: ...
  13. def random_k(n: int,
  14. k: int,
  15. endian: Optional[str] = ...) -> bitarray: ...
  16. def gen_primes(n: int,
  17. endian: Optional[str] = ...,
  18. odd: Optional[bool] = ...) -> bitarray: ...
  19. def pprint(a: Any, stream: BinaryIO = ...,
  20. group: int = ...,
  21. indent: int = ...,
  22. width: int = ...) -> None: ...
  23. def strip(a: bitarray, mode: str = ...) -> bitarray: ...
  24. def count_n(a: bitarray,
  25. n: int,
  26. value: int = ...) -> int: ...
  27. def parity(a: bitarray) -> int: ...
  28. def sum_indices(a: bitarray, mode: int = ...) -> int: ...
  29. def xor_indices(a: bitarray) -> int: ...
  30. def count_and(a: bitarray, b: bitarray) -> int: ...
  31. def count_or(a: bitarray, b: bitarray) -> int: ...
  32. def count_xor(a: bitarray, b: bitarray) -> int: ...
  33. def any_and(a: bitarray, b: bitarray) -> bool: ...
  34. def subset(a: bitarray, b: bitarray) -> bool: ...
  35. def correspond_all(a: bitarray, b: bitarray) -> tuple: ...
  36. def byteswap(a: BytesLike, n: int) -> None: ...
  37. def intervals(a: bitarray) -> Iterator: ...
  38. def ba2hex(a: bitarray,
  39. group: int = ...,
  40. sep: str = ...) -> str: ...
  41. def hex2ba(s: AnyStr,
  42. endian: Optional[str] = ...) -> bitarray: ...
  43. def ba2base(n: int,
  44. a: bitarray,
  45. group: int = ...,
  46. sep: str = ...) -> str: ...
  47. def base2ba(n: int,
  48. s: AnyStr,
  49. endian: Optional[str] = ...) -> bitarray: ...
  50. def ba2int(a: bitarray, signed: int = ...) -> int: ...
  51. def int2ba(i: int,
  52. length: int = ...,
  53. endian: str = ...,
  54. signed: int = ...) -> bitarray: ...
  55. def serialize(a: bitarray) -> bytes: ...
  56. def deserialize(b: BytesLike) -> bitarray: ...
  57. def sc_encode(a: bitarray) -> bytes: ...
  58. def sc_decode(stream: Iterable[int]) -> bitarray: ...
  59. def vl_encode(a: bitarray) -> bytes: ...
  60. def vl_decode(stream: Iterable[int],
  61. endian: Optional[str] = ...) -> bitarray: ...
  62. def _huffman_tree(freq_map: FreqMap) -> Any: ...
  63. def huffman_code(freq_map: FreqMap,
  64. endian: Optional[str] = ...) -> CodeDict: ...
  65. def canonical_huffman(Freq_Map) -> tuple[CodeDict, list, list]: ...
  66. def canonical_decode(a: bitarray,
  67. count: Sequence[int],
  68. symbol: Iterable[Any]) -> Iterator: ...