return of the datafiles and a lot of code reformats!
parent
0ecd2159dd
commit
5cbeb949ea
@ -0,0 +1,65 @@
|
||||
from pathlib import Path
|
||||
from yaml import load
|
||||
import os
|
||||
import re
|
||||
|
||||
global _config
|
||||
_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())
|
||||
],
|
||||
'_FNAME_RE':
|
||||
r"([ou^>]w[ou^<]|config)\.(ya?ml|c(on)?fi?g?)$"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
def _mDC_listMatches(inp: str) -> list:
|
||||
"\n".join(os.listdir(inp))
|
||||
return re.findall(
|
||||
_LOCATIONS['_YAMLCONFPATH']['_FNAME_RE'],
|
||||
inp
|
||||
)
|
||||
|
||||
|
||||
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)
|
||||
|
||||
if file.exists() and not file.is_dir():
|
||||
conf = load(file.read_text())
|
||||
except Exception as exc:
|
||||
raise exc
|
||||
else:
|
||||
_updateConf(conf)
|
||||
if file not in _files:
|
||||
_files.push(str(file))
|
||||
|
||||
|
||||
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)
|
@ -1,71 +0,0 @@
|
||||
from pathlib import Path
|
||||
from sys import platform
|
||||
from yaml import load, dump
|
||||
import os
|
||||
import sys
|
||||
import re
|
||||
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())
|
||||
],
|
||||
'_FNAME_RE':
|
||||
r"([ou^>]w[ou^<]|config)\.(ya?ml|c(on)?fi?g?)$"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
def _mDC_listMatches(inp: str) -> list:
|
||||
"\n".join(os.listdir(inp))
|
||||
return re.findall(
|
||||
_LOCATIONS['_YAMLCONFPATH']['_FNAME_RE'],
|
||||
inp
|
||||
)
|
||||
|
||||
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)
|
||||
|
||||
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)
|
||||
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)
|
||||
|
@ -1,2 +1,2 @@
|
||||
def parse():
|
||||
|
||||
|
||||
|
@ -0,0 +1,12 @@
|
||||
_meta:
|
||||
names:
|
||||
lang: "English"
|
||||
region: "United States"
|
||||
data:
|
||||
types:
|
||||
audio:
|
||||
codecs:
|
||||
pcm_alaw: "A-law / G.711 A-law PCM"
|
||||
pcm_s16le: "Little Endian Signed 16-bit PCM"
|
||||
pcm_u16le: "Little Endian Unsigned 16-bit PCM"
|
||||
pcm_s16be: "Big Endian Signed 16-bit PCM"
|
@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from setuptools import setup
|
||||
|
||||
setup(
|
||||
name = 'owo',
|
||||
version = '0.0.0-alpha0',
|
||||
description = 'tool to get information on just about everything',
|
||||
author = 'arris kathery',
|
||||
python_requires = '>=3.10',
|
||||
packages = ['owo'],
|
||||
package_dir = {'owo': 'owo'},
|
||||
package_data = {'owo': [
|
||||
'res/locale/*.yaml'
|
||||
]}
|
||||
)
|
Loading…
Reference in New Issue