This commit is contained in:
elburg 2023-03-06 10:53:49 -08:00
parent c94e713b1d
commit c9b97a5f97
10 changed files with 199 additions and 0 deletions

35
owo/__init__.py Normal file
View file

@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
# from . import config
from . import output
import logging
import sys
__author__ = "arris kathery"
__copyright__ = "copyright 2023 brendan berger"
__license__ = ""
__maintainer__ = "arris kathery"
__email__ = "whotookelburg@hotmail.com"
__version__ = "0.0.0-alpha0"
DEBUG = True
def main() -> dict:
try:
out=output.OutputObject()
except Exception as exc:
return {
'_err':True,
'exception':exc,
'vars':{
'globals': globals(),
'locals': locals(),
'dir': dir()
}
}
try:
pass
# do shit
except KeyboardInterrupt:
return {'_kbi':True}

24
owo/__main__.py Normal file
View file

@ -0,0 +1,24 @@
import sys
if __package__ is None and not hasattr(sys, "frozen"):
import os.path
path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, os.path.realpath(path))
import owo
if __name__ == "__main__":
output=owo.main()
del owo
if output.__contains__('_err'):
#from yaml import dump
#print("exception! check stderr!!")
#print(dump(output),file=sys.stderr)
from json import dumps
print(dumps(output))
sys.exit(1)
if output.__contains__('_kb'):
print("interupted by keyboard")
sys.exit()
else:
pass # output results

6
owo/config.py Normal file
View file

@ -0,0 +1,6 @@
confDict = {}
def loadConfig(confLocation = "$HOME/.config/owo.yaml"):
from os import path
if not path.exists(confLocation):

48
owo/datafiles/__init__.py Normal file
View file

@ -0,0 +1,48 @@
from pathlib import Path
from sys import platform
from yaml import load, dump
import os
from re import search, IGNORECASE
import collections.abc
_config={}
_files=[]
_configloaded = False
_LOCATIONS = {
'_YAMLCONFPATH':{
'_DIR':[
"{}/owo/".format(os.environ["XDG_CONFIG_HOME"]) if "XDG_CONFIG_HOME" in os.environ else str(Path.home())+"/.config/owo/",
"{}/".format(os.environ["XDG_CONFIG_HOME"]) if "XDG_CONFIG_HOME" in os.environ else str(Path.home())+"/.config/",
str(Path('~').resolve()),
str(Path().resolve()) if str(Path.cwd()) not in self._DIRS else None
],
'_FNAME_RE':
r"([ou^>]w[ou^<]|config)\.(ya?ml|c(on)?fi?g?)$"
}
}
def _updateConf(toAdd: dict):
_config = toAdd.update(_config)
def initConfig(path: str) -> bool:
if _configloaded:
return True# If config already loaded, do not reload.
else:
try:
file = Path(path)
if file.exists() and not file.is_dir():
try:
conf = yaml.load(file.read_text())
except Exception as exc:
raise exc
else:
if not _config:
_config = conf
else:
_updateConf(conf)
if file not in _files:
_files+str(file)

31
owo/format.py Normal file
View file

@ -0,0 +1,31 @@
_DEFAULT = {
'_DATETEMP':'%a, %d %b %Y %H:%M:%S %Z%z',
'_INCLUDE':[
'env',
]
}
def dateFormat(input: str = _DEFAULT._DATETEMP,use_local:bool=True) -> str:
from time import strftime
if use_local:
from time import localtime
return strftime(input,localtime())
else:
from time import gmtime
return strftime(input,gmtime())
def stringformat(
input: str,
include: list = _DEFAULT._INCLUDE
) -> str:
imap = {
'time': dateFormat()
}
if 'env' in include:
import os
imap['env'] = os.environ
del os
return input.format_map(imap)

View file

@ -0,0 +1,24 @@
import logging
# outputDict={
# 'status': 1,
# 'input': {
# 'argsRaw': sys.argv,
# 'streamObjects': []
# },
# 'output': [],
# 'errors': []
# }
class OutputObject:
def __init__(self):
self.status = 1
import sys
self.input = {
'argsRaw': sys.argv,
'streamObjects': []
}
del sys
self.output = []
self.errors = []

1
owo/output/__init__.py Normal file
View file

@ -0,0 +1 @@
from . import OutputObject

0
owo/source/__init__.py Normal file
View file

View file

@ -0,0 +1,10 @@
from .NetworkPath import NetworkPath
from ...config.datafiles.owoDataFile import owoDataFile
from ...config import moduleConfig
class DownloadJob:
def __init__(self,
url: NetworkPath,
engine: string = moduleConfig.source.network.engine,
engineConfig: dict = moduleConfig.source.network.engineConfig

20
scripts/test_debug.sh Normal file
View file

@ -0,0 +1,20 @@
#!/usr/bin/env bash
date="$(date +%Y-%j-%H-%M-%S)"
python_args="-d -v"
owo_args=""
_rst=$PWD
dir=".debug/runs/$date"
mkdir -p $dir
touch $dir/stdout.term
touch $dir/stderr.term
python3 $python_args owo/__main__.py $owo_args > $dir/stdout.term 2> $dir/stderr.term
7z a -m0=LZMA2 -mx9 -sdel -ssw -t7z -- $dir.7z $dir/*
rm -rfv $dir
printf "done"