Julianna Kissane Lab Compression

This commit is contained in:
jkissane2
2026-03-22 19:36:44 -04:00
parent be94b32e16
commit 119c7d10d5
6 changed files with 22904 additions and 2 deletions

1
.envrc Normal file
View File

@@ -0,0 +1 @@
source .venv/bin/activate

1
hello.txt Normal file
View File

@@ -0,0 +1 @@
Hello!

View File

@@ -1,10 +1,29 @@
import string import string
import codecs import codecs
from custom_codecs.register import register_codec #from text_codecs.register import register_codec
from easybits import Bits from easybits import Bits
allowed_characters = string.ascii_letters + string.digits allowed_characters = string.ascii_letters + string.digits
import codecs
def register_codec(encode, decode, name):
"""Registers a codec so that it can later be used to encode
or decode strings and bytes.
"""
def encode_wrapper(text):
return encode(text), len(text)
def decode_wrapper(data):
return decode(data), len(data)
def search_for_codec(query):
if query == name:
return codecs.CodecInfo(encode_wrapper, decode_wrapper, name=name)
codecs.register(search_for_codec)
def encode(text): def encode(text):
"""A (very) lossy encoder which only saves ASCII letters, numbers, and spaces. """A (very) lossy encoder which only saves ASCII letters, numbers, and spaces.
Everything else is discarded. All whitespace (e.g. tabs) is converted into spaces. Everything else is discarded. All whitespace (e.g. tabs) is converted into spaces.

View File

@@ -1,6 +1,25 @@
from custom_codecs.register import register_codec #from text_codecs.register import register_codec
from easybits import Bits from easybits import Bits
import codecs
def register_codec(encode, decode, name):
"""Registers a codec so that it can later be used to encode
or decode strings and bytes.
"""
def encode_wrapper(text):
return encode(text), len(text)
def decode_wrapper(data):
return decode(data), len(data)
def search_for_codec(query):
if query == name:
return codecs.CodecInfo(encode_wrapper, decode_wrapper, name=name)
codecs.register(search_for_codec)
def encode(text): def encode(text):
"""An encoder which only handles ASCII: non-ASCII characters """An encoder which only handles ASCII: non-ASCII characters
are replaced with '?'. Once all the characters are ASCII, this encoder are replaced with '?'. Once all the characters are ASCII, this encoder

12
text_codecs/mycodec.py Normal file
View File

@@ -0,0 +1,12 @@
"This simple codec converts all text to Lowercase."
def encode(text):
text = text.lower()
return text.encode("utf-8")
def decode(data):
return bytes(data).decode("utf-8").lower()
from register import register_codec
register_codec(encode, decode, "mycodec")

File diff suppressed because it is too large Load Diff