
    E#i5                     D    S r SSKJrJr  SSKJr  SSKJr   " S S5      rg	)
z+Module with some integer utility functions.    )OptionalUnion   )	AlgoUtils   )Literalc                       \ rS rSrSr\S\S\4S j5       r\   SS\S\\   S\	S	   S
\
S\4
S jj5       r\S\\\4   S\4S j5       r\ SS\S\S\4S jj5       rSrg)IntegerUtils   z.Class container for integer utility functions.data_intreturnc                 >    U S:  a  U R                  5       OSS-   S-  $ )z~
Get the number of bytes of the specified integer.

Args:
    data_int (int): Data integer

Returns:
    int: Number of bytes
r   r         )
bit_length)r   s    i/home/james-whalen/.local/lib/python3.13/site-packages/ccxt/static_dependencies/bip/utils/misc/integer.pyGetBytesNumberIntegerUtils.GetBytesNumber!   s%     +3Q,$$&ABqHH    N	bytes_num
endianness)littlebigsignedc                     U R                   R                  S:X  a  [        U 5      n U=(       d    [        R	                  U 5      nU R                  XUS9$ )a  
Convert integer to bytes.

Args:
    data_int (int)                          : Data integer
    bytes_num (int, optional)               : Number of bytes, automatic if None
    endianness ("big" or "little", optional): Endianness (default: big)
    signed (bool, optional)                 : True if signed, false otherwise (default: false)

Returns:
    bytes: Bytes representation
mpz)	byteorderr   )	__class____name__intr
   r   to_bytes)r   r   r   r   s       r   ToBytesIntegerUtils.ToBytes.   sL    & &&%/8}HF!<!<X!F	   PPr   datac                 B    [        [        R                  " U 5      S5      $ )z
Convert the specified binary string to integer.

Args:
    data (str or bytes): Data

Returns:
    int: Integer representation
r   )r    r   Encode)r$   s    r   FromBinaryStrIntegerUtils.FromBinaryStrG   s     9##D)1--r   zero_pad_bit_lenc                 <    [        U 5      SS R                  U5      $ )z
Convert the specified integer to a binary string.

Args:
    data_int (int)                  : Data integer
    zero_pad_bit_len (int, optional): Zero pad length in bits, 0 if not specified

Returns:
    str: Binary string
r   N)binzfill)r   r)   s     r   ToBinaryStrIntegerUtils.ToBinaryStrT   s!     8}QR &&'788r    )Nr   F)r   )r   
__module____qualname____firstlineno____doc__staticmethodr    r   r   r   boolbytesr"   r   strr'   r-   __static_attributes__r/   r   r   r
   r
      s    8
I 
I 
I 
I +/7<$Q# Q#C=Q#O4Q Q */Q Q0 
.E%*- 
.# 
. 
. ,-9c 9&)9259 9r   r
   N)r3   typingr   r   algor   r   r
   r/   r   r   <module>r;      s!   * 2 #  C9 C9r   