{"id":837,"library":"bitarray","title":"bitarray","description":"Efficient boolean arrays implemented as a C extension for Python. Provides bit-level operations, packed representations, and performance comparable to NumPy for bit manipulation. Current version 2.3.8. Released under PSF license.","status":"active","version":"2.3.8","language":"python","source_language":"en","source_url":"https://github.com/ilanschnell/bitarray","tags":["bitarray","bits","boolean array","C extension","efficient"],"install":[{"cmd":"pip install bitarray","lang":"bash","label":"PyPI"}],"dependencies":[],"imports":[{"note":"Class name is lowercase 'bitarray'.","wrong":"from bitarray import Bitarray","symbol":"Bitarray","correct":"from bitarray import bitarray"},{"note":"While 'import bitarray' works, you need to use 'bitarray.bitarray()'. Direct import of the class is common.","wrong":"import bitarray","symbol":"bitarray","correct":"from bitarray import bitarray"}],"quickstart":{"code":"from bitarray import bitarray\n# Create a bitarray of 8 zero bits\na = bitarray(8)\nprint('Length:', len(a))  # 8\n# Set bits from a binary string\na = bitarray('11001010')\nprint(a)  # bitarray('11001010')\n# Bitwise operations\nb = bitarray('11110000')\nc = a & b\nprint(c)  # bitarray('11000000')\n# Convert to bytes\npacked = a.tobytes()\nprint('Bytes:', packed)","lang":"python","description":"Create bitarrays, perform bitwise operations, and convert to bytes."},"warnings":[{"fix":"Convert to bytes or tuple for hashing, e.g., key = a.tobytes()","message":"bitarray objects are not hashable. Attempting to use them as dictionary keys or in sets will raise TypeError.","severity":"breaking","affected_versions":"all"},{"fix":"Use 'bitarray.endian' (property) instead of 'bitarray.endian()' (method).","message":"The 'bitarray.endian()' method is deprecated in favor of the 'endian' property in version 2.0+.","severity":"deprecated","affected_versions":">=2.0,<3.0"},{"fix":"Use bitarray('111') for specific bits or bitarray(8) for an all-zero array of given length.","message":"When creating a bitarray from an integer, the integer is treated as the length (number of bits), not as the initial bits. bitarray(8) creates 8 zero bits, not a bitarray with one bit set at position 3.","severity":"gotcha","affected_versions":"all"},{"fix":"Explicitly pass value=0 for zero count: mybitarray.count(0).","message":"The 'count()' method with 'value' parameter default is 1. bitarray('110').count() returns 2 (counts 1s). Use count(0) to count zeros.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-12T20:17:08.899Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use indexing to access bits: bit = a[0]","cause":"Trying to call a bitarray object as a function, e.g., a() instead of a[index].","error":"TypeError: 'bitarray' object is not callable"},{"fix":"Remove whitespace: bitarray('11001010') not bitarray('1100 1010')","cause":"Constructing bitarray from a string that contains spaces or other invalid characters.","error":"ValueError: bitarray must not contain whitespace"},{"fix":"Use 'from bitarray import bitarray'. If you already installed, check for version conflicts: 'pip install --upgrade bitarray'","cause":"Incorrect import attempt or missing installation/conflict with another package named bitarray.","error":"ImportError: cannot import name 'bitarray' from 'bitarray'"}],"ecosystem":"pypi","meta_description":null,"install_score":100,"install_tag":"verified","quickstart_score":null,"quickstart_tag":null,"pypi_latest":"3.8.1","cli_name":"","install_checks":{"last_tested":"2026-05-12","tag":"verified","tag_description":"installs cleanly on critical runtimes, fast import, recently tested","results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"19.0M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"19.0M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":2.1,"import_time_s":0,"mem_mb":0.1,"disk_size":"20M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"20M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"21.2M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.01,"mem_mb":0.1,"disk_size":"21.2M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":1.9,"import_time_s":0,"mem_mb":0.1,"disk_size":"22M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"22M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"13.0M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"13.0M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":1.7,"import_time_s":0,"mem_mb":0.1,"disk_size":"14M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"14M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.3,"disk_size":"12.8M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.3,"disk_size":"12.6M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":1.7,"import_time_s":0,"mem_mb":0.1,"disk_size":"13M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"13M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"18.5M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"18.5M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":2.4,"import_time_s":0,"mem_mb":0.1,"disk_size":"19M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"19M"}]},"quickstart_checks":{"last_tested":"2026-04-24","tag":null,"tag_description":null,"results":[{"runtime":"python:3.10-alpine","exit_code":1},{"runtime":"python:3.10-slim","exit_code":1},{"runtime":"python:3.11-alpine","exit_code":1},{"runtime":"python:3.11-slim","exit_code":1},{"runtime":"python:3.12-alpine","exit_code":1},{"runtime":"python:3.12-slim","exit_code":1},{"runtime":"python:3.13-alpine","exit_code":1},{"runtime":"python:3.13-slim","exit_code":1},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":1}]}}