Messed around with getting my encoding to work

This commit is contained in:
zoeyande2
2026-03-24 22:43:22 -04:00
parent 0fa64e0241
commit 070fccef49
3 changed files with 65 additions and 18 deletions

View File

@@ -1,6 +1,5 @@
import string
import codecs
from text_codecs.register import register_codec
from easybits import Bits
allowed_characters = string.ascii_letters + string.digits
@@ -35,5 +34,21 @@ def decode(data):
print("Error")
breakpoint()
return text
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)
register_codec(encode, decode, "alphanumeric")

View File

@@ -1,5 +1,5 @@
from text_codecs.register import register_codec
from easybits import Bits
import codecs
def encode(text):
"""An encoder which only handles ASCII: non-ASCII characters
@@ -30,4 +30,20 @@ def decode(data):
text += Bits(byte).ascii
return text
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)
register_codec(encode, decode, "ascii7")

View File

@@ -1,31 +1,31 @@
import string
import codecs
from text_codecs.register import register_codec
from easybits import Bits
vowels = 'aeiouyAEIOUY'
allowed_chars = string.ascii_letters + string.digits
def encode(text):
ascii_chars = []
ascii_novow_chars = []
last_character_was_space = False
for char in text:
if char in allowed_chars:
ascii_chars.append(char)
if char in allowed_chars and char not in vowels:
ascii_novow_chars.append(char)
last_character_was_space = False
elif char in string.whitespace and not last_character_was_space:
ascii_chars.append(' ')
ascii_novow_chars.append(' ')
last_character_was_space = True
ascii_text = ''.join(ascii_chars)
no_vowels = []
for ch in ascii_text:
if ch not in vowels:
no_vowels.append(ch)
return Bits(no_vowels, encoding = 'ascii7')
clean_text = ''.join(ascii_novow_chars)
result = Bits()
for char in clean_text:
try:
b = Bits(char, encoding='ascii')
result = result.concat(b[1:])
except:
b = Bits('?')
result = result.concat(b[1:])
return result.bytes
def decode(data):
bits = Bits(bytes(data))
@@ -35,7 +35,23 @@ def decode(data):
text += Bits(byte).ascii
return text
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)
register_codec(encode, decode, "noVow7")
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)
register_codec(encode, decode,"novow7")