return of the datafiles and a lot of code reformats!
This commit is contained in:
parent
0ecd2159dd
commit
5cbeb949ea
8 changed files with 120 additions and 91 deletions
|
@ -1,8 +1,9 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# TODO: clean this up
|
||||
# TODO: load datafiles. if not found, either fail or install files (maybe)?
|
||||
|
||||
from .output.owoOutputClass import owoOutputClass
|
||||
from . import datafiles
|
||||
from . import config, parseargs
|
||||
import logging
|
||||
import sys
|
||||
|
||||
|
@ -17,15 +18,15 @@ DEBUG = 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:
|
||||
# PART 1: init
|
||||
try:
|
||||
out = owoOutputClass() # Prepare output object
|
||||
args = parseargs.parse()
|
||||
except Exception as exc:
|
||||
import traceback
|
||||
traceback.print_exc(exc, file=sys.stderr)
|
||||
sys.exit(1)
|
||||
else:
|
||||
pass
|
||||
|
||||
# PART 2: load config/data files
|
||||
|
|
|
@ -8,6 +8,7 @@ if __package__ is None and not hasattr(sys, "frozen"):
|
|||
import owo
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
output=owo.main()
|
||||
if output == None:
|
||||
print("an error might have occured...",file=sys.stderr)
|
||||
|
|
65
owo/config.py
Normal file
65
owo/config.py
Normal file
|
@ -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)
|
||||
|
|
@ -17,16 +17,13 @@ keywords = [
|
|||
"fetch",
|
||||
"sqlite3"
|
||||
]
|
||||
requires-python = ">=3.7"
|
||||
requires-python = ">=3.10"
|
||||
classifiers = [
|
||||
"Programming Language :: Python :: 3",
|
||||
"Development Status :: 1 - Planning",
|
||||
"Natural Language :: English",
|
||||
"Operating System :: POSIX :: Linux",
|
||||
"Programming Language :: Python",
|
||||
"Programming Language :: Python :: 3.7",
|
||||
"Programming Language :: Python :: 3.8",
|
||||
"Programming Language :: Python :: 3.9",
|
||||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
|
@ -40,8 +37,16 @@ classifiers = [
|
|||
"Topic :: System :: Networking",
|
||||
"Topic :: Utilities"
|
||||
]
|
||||
dependencies = [
|
||||
"PyYAML"
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
"Homepage" = "https://basedwa.re/elburg/owo"
|
||||
"Repository" = "https://basedwa.re/elburg/owo.git"
|
||||
"Bug Tracker" = "https://basedwa.re/elburg/owo/issues"
|
||||
"Bug Tracker" = "https://basedwa.re/elburg/owo/issues"i
|
||||
|
||||
[project.optional-dependencies]
|
||||
ALL = [ # ONLY FOR SERVERS OR BIG COMPUTERS
|
||||
"yt-dlp"
|
||||
]
|
||||
|
|
12
res/locale/en_US.yaml
Normal file
12
res/locale/en_US.yaml
Normal file
|
@ -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"
|
16
setup.py
Normal file
16
setup.py
Normal file
|
@ -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 a new issue