Como compactar uma sequência de bits arbitrária em Python?

Eu quero codificar / comprimir alguns dados de imagem binária como uma sequência se bits. (Essa sequência, em geral, terá um comprimento que não se encaixa perfeitamente em um número inteiro de tipos inteiros padrão.)

Como posso fazer isso sem desperdiçar espaço? (Percebo que, a menos que a sequência de bits tenha um comprimento "agradável", sempre haverá uma pequena quantidade [<1 byte] de espaço restante no final.)

FWIW, eu estimo que, no máximo, serão necessários 3 bits por símbolo que eu quero codificar. O Python possui ferramentas integradas para esse tipo de trabalho?

questionAnswers(3)

yourAnswerToTheQuestion