a
    Eb
                     @   s^   d Z ddlmZ ddlmZmZmZmZmZm	Z	 g dZ
G dd deZdd Zdd
dZdS )a  
This package defines an object type which can efficiently represent
a bitarray.  Bitarrays are sequence types and behave very much like lists.

Please find a description of this package at:

    https://github.com/ilanschnell/bitarray

Author: Ilan Schnell
    )absolute_import)bitarray
decodetree_sysinfoget_default_endian_set_default_endian__version__)r   frozenbitarrayr   
bits2bytesc                   @   s   e Zd ZdZdd Zdd Zdd Zdd	 Ze Z Z	 Z
 Z ZZe Z Z Z Z ZZe Z Z Z ZZe Z Z Z ZZe ZZd
S )r	   aA  frozenbitarray(initializer=0, /, endian='big', buffer=None) -> frozenbitarray

Return a frozenbitarray object, which is initialized the same way a bitarray
object is initialized.  A frozenbitarray is immutable and hashable.
Its contents cannot be altered after it is created; however, it can be used
as a dictionary key.
c                 O   s   |    d S )N)Z_freezeselfargskwargs r   0lib/python3.9/site-packages/bitarray/__init__.py__init__   s    zfrozenbitarray.__init__c                 C   s   dt |  S )Nfrozen)r   __repr__)r   r   r   r   r   "   s    zfrozenbitarray.__repr__c                 C   s6   t | dddu r0t| d}tt|| f| _| jS )zReturn hash(self)._hashNZbig)getattrr   hashlentobytesr   )r   ar   r   r   __hash__%   s    
zfrozenbitarray.__hash__c                 O   s   t ddS ) zfrozenbitarray is immutableN)	TypeErrorr   r   r   r   __delitem__1   s    zfrozenbitarray.__delitem__N) __name__
__module____qualname____doc__r   r   r   r   appendZbytereverseclearextendencodeZfillZ	frombytesZfromfileinsertinvertZpackpopremovereverseZsetallsort__setitem____iadd____iand____imul____ior____ixor____ilshift____irshift__r   r   r   r   r	      s   r	   c                 C   sL   ddl }t| |jd dkr"ttfnts0td| dk r@td| d d S )zObits2bytes(n, /) -> int

Return the number of bytes necessary to store n bits.
r   N   zinteger expectedznon-negative integer expected      )sys
isinstanceversion_infointZlongr   
ValueError)Z__nr7   r   r   r   r
   <   s     r
      c                 C   s   ddl m} |j| |dS )zptest(verbosity=1, repeat=1) -> TextTestResult

Run self-test, and return unittest.runner.TextTestResult object.
r   )test_bitarray)	verbosityrepeat)r   r=   run)r>   r?   r=   r   r   r   testI   s    rA   N)r<   r<   )r!   Z
__future__r   Zbitarray._bitarrayr   r   r   r   r   r   __all__r	   r
   rA   r   r   r   r   <module>   s   
 &