mirror of
https://github.com/allaunthefox/Research-Stack.git
synced 2026-07-31 03:05:21 +00:00
134 lines
5.2 KiB
Python
134 lines
5.2 KiB
Python
import os
|
|
os.chdir('/home/allaun/Documents/Research Stack/3-Mathematical-Models')
|
|
|
|
with open('pist_biological_polymorphic_shifter_v3_complete.py', 'r') as f:
|
|
content = f.read()
|
|
|
|
# Fix: Compressor.compress serializes state.metadata, decompress restores it
|
|
old_compress = """ # Build header — FIX 10: include shifter_kwargs for decompress
|
|
# Serialize only serializable kwargs (no lambdas, no complex objects)
|
|
serializable_kwargs = {}
|
|
for sname, kwdict in shifter_kwargs.items():
|
|
clean = {}
|
|
for k, v in kwdict.items():
|
|
if isinstance(v, (str, int, float, bool, list, dict, tuple, type(None))):
|
|
clean[k] = v
|
|
if clean:
|
|
serializable_kwargs[sname] = clean
|
|
|
|
header = {
|
|
'chain': [s.name for s in shifter_chain],
|
|
'n_factor': current_state.n_factor,
|
|
'original_size': len(data),
|
|
'shifter_kwargs': serializable_kwargs,
|
|
}"""
|
|
|
|
new_compress = """ # Build header — FIX 10: include shifter_kwargs AND metadata for decompress
|
|
# Serialize only serializable kwargs
|
|
serializable_kwargs = {}
|
|
for sname, kwdict in shifter_kwargs.items():
|
|
clean = {}
|
|
for k, v in kwdict.items():
|
|
if isinstance(v, (str, int, float, bool, list, dict, tuple, type(None))):
|
|
clean[k] = v
|
|
if clean:
|
|
serializable_kwargs[sname] = clean
|
|
|
|
# Serialize metadata that encode() auto-generated
|
|
serialized_metadata = {}
|
|
for sname, md in current_state.metadata.items():
|
|
clean = {}
|
|
for k, v in md.items():
|
|
if isinstance(v, (str, int, float, bool, list, dict, tuple, type(None))):
|
|
clean[k] = v
|
|
if clean:
|
|
serialized_metadata[sname] = clean
|
|
|
|
header = {
|
|
'chain': [s.name for s in shifter_chain],
|
|
'n_factor': current_state.n_factor,
|
|
'original_size': len(data),
|
|
'shifter_kwargs': serializable_kwargs,
|
|
'restore_metadata': serialized_metadata,
|
|
}"""
|
|
|
|
if old_compress in content:
|
|
content = content.replace(old_compress, new_compress)
|
|
print("Compress: metadata serialized")
|
|
else:
|
|
print("Compress pattern NOT FOUND!")
|
|
# Try shorter match
|
|
if "serializable_kwargs = {}" in content:
|
|
print(" But serializable_kwargs found")
|
|
# Just the header dict
|
|
old_h = """ header = {
|
|
'chain': [s.name for s in shifter_chain],
|
|
'n_factor': current_state.n_factor,
|
|
'original_size': len(data),
|
|
'shifter_kwargs': serializable_kwargs,
|
|
}"""
|
|
new_h = """ header = {
|
|
'chain': [s.name for s in shifter_chain],
|
|
'n_factor': current_state.n_factor,
|
|
'original_size': len(data),
|
|
'shifter_kwargs': serializable_kwargs,
|
|
'restore_metadata': serialized_metadata,
|
|
}"""
|
|
if old_h in content:
|
|
content = content.replace(old_h, new_h)
|
|
print("Header pattern fixed")
|
|
|
|
# Fix decompress to restore metadata
|
|
old_decomp = """ header = json.loads(header_bytes.decode('utf-8'))
|
|
chain_names = header['chain']
|
|
# FIX 10: Extract shifter_kwargs from header
|
|
shifter_kwargs = header.get('shifter_kwargs', {})
|
|
|
|
# Reconstruct shifter chain
|
|
shifter_chain = []
|
|
for name in chain_names:
|
|
if name in SHIFTER_MAP:
|
|
shifter_chain.append(SHIFTER_MAP[name])
|
|
else:
|
|
raise ValueError(f"Unknown shifter: {name}")
|
|
|
|
# Apply decoders in reverse order — FIX 10: pass kwargs
|
|
state = ManifoldState()
|
|
state.encoded = bytearray(encoded_data)
|
|
for sc in reversed(shifter_chain):
|
|
kw = shifter_kwargs.get(sc.name, {})
|
|
state = sc.decode(state, **kw)"""
|
|
|
|
new_decomp = """ header = json.loads(header_bytes.decode('utf-8'))
|
|
chain_names = header['chain']
|
|
# FIX 10: Extract shifter_kwargs from header
|
|
shifter_kwargs = header.get('shifter_kwargs', {})
|
|
# Restore encode-generated metadata so decoders can read it
|
|
restore_metadata = header.get('restore_metadata', {})
|
|
|
|
# Reconstruct shifter chain
|
|
shifter_chain = []
|
|
for name in chain_names:
|
|
if name in SHIFTER_MAP:
|
|
shifter_chain.append(SHIFTER_MAP[name])
|
|
else:
|
|
raise ValueError(f"Unknown shifter: {name}")
|
|
|
|
# Apply decoders in reverse order — FIX 10: pass kwargs + restore metadata
|
|
state = ManifoldState()
|
|
state.encoded = bytearray(encoded_data)
|
|
state.metadata = restore_metadata # Restore encode-generated metadata
|
|
for sc in reversed(shifter_chain):
|
|
kw = shifter_kwargs.get(sc.name, {})
|
|
state = sc.decode(state, **kw)"""
|
|
|
|
if old_decomp in content:
|
|
content = content.replace(old_decomp, new_decomp)
|
|
print("Decompress: metadata restored")
|
|
else:
|
|
print("Decompress pattern NOT FOUND!")
|
|
|
|
with open('pist_biological_polymorphic_shifter_v3_complete.py', 'w') as f:
|
|
f.write(content)
|
|
|
|
print("Done! Length:", len(content))
|