Compare commits

..

2 commits

Author SHA1 Message Date
0ecd2159dd i ddid things 2023-03-14 18:48:46 +00:00
b322bcacd3 added ignore crap for replit shit 2023-03-14 17:27:38 +00:00
9 changed files with 97 additions and 65 deletions

7
.gitignore vendored
View file

@ -160,3 +160,10 @@ cython_debug/
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
# replit
.replit
venv/
replit.nix
.upm/
.cache/
.config/

View file

@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
# from . import config
from . import output
# TODO: clean this up
# TODO: load datafiles. if not found, either fail or install files (maybe)?
from .output.owoOutputClass import owoOutputClass
from . import datafiles
import logging
import sys
@ -14,22 +15,17 @@ __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}
def main() -> owoOutputClass:
# PART 1: init
try:
out = owoOutputClass()
except Exception as exc:
import traceback
traceback.print_exc(exc, file=sys.stderr)
sys.exit(1)
else:
pass
# PART 2: load config/data files
try:

View file

@ -9,11 +9,8 @@ import owo
if __name__ == "__main__":
output=owo.main()
del owo
if output.__contains__('_err'):
print("an error occured!", file=sys.stderr)
if output.__contains__('_kb'):
print("interupted by keyboard")
sys.exit()
if output == None:
print("an error might have occured...",file=sys.stderr)
else:
pass # output results
from yaml import dump
print(dump(output))

View file

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

View file

@ -2,7 +2,8 @@ from pathlib import Path
from sys import platform
from yaml import load, dump
import os
from re import search, IGNORECASE
import sys
import re
import collections.abc
_config={}
@ -15,7 +16,7 @@ _LOCATIONS = {
"{}/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
str(Path().resolve())
],
'_FNAME_RE':
r"([ou^>]w[ou^<]|config)\.(ya?ml|c(on)?fi?g?)$"
@ -23,13 +24,23 @@ _LOCATIONS = {
}
def _updateConf(toAdd: dict):
_config = toAdd.update(_config)
def _mDC_listMatches(inp: str) -> list:
"\n".join(os.listdir(inp))
return re.findall(
_LOCATIONS['_YAMLCONFPATH']['_FNAME_RE'],
inp
)
def initConfig(path: str) -> bool:
if _configloaded:
return True# If config already loaded, do not reload.
else:
def _makeDefaultConfs() -> list:
locates=[]
for x in _LOCATIONS['_YAMLCONFPATH']['_DIR']:
locates+=_mDC_listMatches(x)
return locates
def _updateConf(toAdd: dict):
_config.update(toAdd)
def _loadConfigFile(path: str):
try:
file = Path(path)
@ -45,4 +56,16 @@ def initConfig(path: str) -> bool:
_updateConf(conf)
if file not in _files:
_files+str(file)
except Exception as exc:
print(exc)
import traceback
traceback.print_exc(file=sys.stderr)
def initConfig(path: str = None) -> bool:
if _configloaded:
return True# If config already loaded, do not reload.
else:
_toLookIn=_makeDefaultConfs()+path
for loc in _toLookIn:
_loadConfigFile(loc)

View file

@ -1,3 +1,7 @@
# TODO: clean this up
# TODO: complete dateFormat()
# TODO: complete stringFormat()
_DEFAULT = {
'_DATETEMP':'%a, %d %b %Y %H:%M:%S %Z%z',
'_INCLUDE':[
@ -14,7 +18,7 @@ def dateFormat(input: str = _DEFAULT._DATETEMP,use_local:bool=True) -> str:
from time import gmtime
return strftime(input,gmtime())
def stringformat(
def stringFormat(
input: str,
include: list = _DEFAULT._INCLUDE
) -> str:

View file

@ -10,15 +10,14 @@ import logging
# 'errors': []
# }
class OutputObject:
def __init__(self):
self.status = 1
def __init__(self, type: int):
self.OOType = [
'HeaderTable', 'BasicInfoTable', 'AdvancedInfoTable', 'DebugInfoTable'
][type]
if type == 0:
import sys
self.input = {
'argsRaw': sys.argv,
'streamObjects': []
}
self.input = {'argsRaw': sys.argv, 'streamObjects': []}
del sys
self.output = []
self.errors = []

View file

@ -0,0 +1,10 @@
from .OutputObject import OutputObject
class owoOutputClass:
def newObject(self,type: int):
self.objects.push(OutputObject(type))
def __init__(self):
self.objects=[OutputObject(0)]
# def __iter__(self):
# yield [
# self.header
# ]+self.objects

2
owo/parseargs.py Normal file
View file

@ -0,0 +1,2 @@
def parse():