Skip to content

Instantly share code, notes, and snippets.

@lastforkbender
Last active December 29, 2023 10:55
Show Gist options
  • Select an option

  • Save lastforkbender/14f7f442a046b2712e5d4ea7bb1e279b to your computer and use it in GitHub Desktop.

Select an option

Save lastforkbender/14f7f442a046b2712e5d4ea7bb1e279b to your computer and use it in GitHub Desktop.
Rev9 Self Replication Primer Module - Staqtapp
# STAQTAPP - REV9 - SELF REPLICATION
# https://github.com/lastforkbender/staqtapp
# !!!Unless permitted to edit this class, do not edit by any means!!!
# --------------------------------host descriptors here for module rearrangements paths or reclamation of the pre-tree determined parameters list, if the required set options to parallel paths exist and finished!
import os
import sys
import collections
import contextlib
import tempfile
import shutil
from deque import deque
import mmap
class Rev9EnvVar(object):
__slots__ = ['key', 'value']
def __init__(self, key, value):
self.key = key
self.value = value
def __repr__(self):
return f"Rev9EnvVar({self.key!r}, {self.value!r})"
class Rev9EnvVarManager(collections.abc.MutableMapping):
def __init__(self, capacity, tmp_dir=None):
self.capacity = capacity
self.tmp_dir = tmp_dir or tempfile.gettempdir()
self.deque = deque(maxlen=capacity)
self.dict = {}
def __getitem__(self, key):
return self.dict[key].value
def __setitem__(self, key, value):
env_var = Rev9EnvVar(key, value)
if key in self.dict:
self.deque.remove(self.dict[key])
else:
if len(self.deque) == self.capacity:
del self.dict[self.deque.popleft().key]
self.deque.append(env_var)
self.dict[key] = env_var
def __delitem__(self, key):
del self.dict[key]
self.deque.remove(Rev9EnvVar(key, self.dict[key].value))
def __iter__(self):
return iter(self.dict)
def __len__(self):
return len(self.dict)
def save(self, filename):
with open(filename, 'wb') as f:
for env_var in self.deque:
f.write(f"{env_var.key}={env_var.value}\n".encode('utf-8'))
def load(self, filename):
with open(filename, 'rb') as f:
mm = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
lines = mm.readlines()
for line in lines:
key, value = line.decode('utf-8').strip().split('=')
self[key] = value
def export(self):
for env_var in self.deque:
os.environ[env_var.key] = env_var.value
def import_os_environ(self):
for key, value in os.environ.items():
self[key] = value
def clear(self):
self.deque.clear()
self.dict.clear()
def _init_deque_from_file(self, filename):
self.deque.clear()
with open(filename, 'rb') as f:
mm = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
lines = mm.readlines()
for line in lines:
key, value = line.decode('utf-8').strip().split('=')
env_var = Rev9EnvVar(key, value)
self.deque.append(env_var)
self.dict[key] = env_var
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment