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 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# TODO: clean this up
|
# TODO: clean this up
|
||||||
# TODO: load datafiles. if not found, either fail or install files (maybe)?
|
# TODO: load datafiles. if not found, either fail or install files (maybe)?
|
||||||
|
|
||||||
from .output.owoOutputClass import owoOutputClass
|
from .output.owoOutputClass import owoOutputClass
|
||||||
from . import datafiles
|
from . import config, parseargs
|
||||||
import logging
|
import logging
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
@ -17,15 +18,15 @@ DEBUG = True
|
||||||
|
|
||||||
|
|
||||||
def main() -> owoOutputClass:
|
def main() -> owoOutputClass:
|
||||||
# PART 1: init
|
# PART 1: init
|
||||||
try:
|
try:
|
||||||
out = owoOutputClass()
|
out = owoOutputClass() # Prepare output object
|
||||||
except Exception as exc:
|
args = parseargs.parse()
|
||||||
import traceback
|
except Exception as exc:
|
||||||
traceback.print_exc(exc, file=sys.stderr)
|
import traceback
|
||||||
sys.exit(1)
|
traceback.print_exc(exc, file=sys.stderr)
|
||||||
else:
|
sys.exit(1)
|
||||||
pass
|
else:
|
||||||
# PART 2: load config/data files
|
pass
|
||||||
try:
|
|
||||||
|
|
||||||
|
# PART 2: load config/data files
|
||||||
|
|
|
@ -8,6 +8,7 @@ if __package__ is None and not hasattr(sys, "frozen"):
|
||||||
import owo
|
import owo
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
output=owo.main()
|
output=owo.main()
|
||||||
if output == None:
|
if output == None:
|
||||||
print("an error might have occured...",file=sys.stderr)
|
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",
|
"fetch",
|
||||||
"sqlite3"
|
"sqlite3"
|
||||||
]
|
]
|
||||||
requires-python = ">=3.7"
|
requires-python = ">=3.10"
|
||||||
classifiers = [
|
classifiers = [
|
||||||
"Programming Language :: Python :: 3",
|
"Programming Language :: Python :: 3",
|
||||||
"Development Status :: 1 - Planning",
|
"Development Status :: 1 - Planning",
|
||||||
"Natural Language :: English",
|
"Natural Language :: English",
|
||||||
"Operating System :: POSIX :: Linux",
|
"Operating System :: POSIX :: Linux",
|
||||||
"Programming Language :: Python",
|
"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.10",
|
||||||
"Programming Language :: Python :: 3.11",
|
"Programming Language :: Python :: 3.11",
|
||||||
"Programming Language :: Python :: 3.12",
|
"Programming Language :: Python :: 3.12",
|
||||||
|
@ -40,8 +37,16 @@ classifiers = [
|
||||||
"Topic :: System :: Networking",
|
"Topic :: System :: Networking",
|
||||||
"Topic :: Utilities"
|
"Topic :: Utilities"
|
||||||
]
|
]
|
||||||
|
dependencies = [
|
||||||
|
"PyYAML"
|
||||||
|
]
|
||||||
|
|
||||||
[project.urls]
|
[project.urls]
|
||||||
"Homepage" = "https://basedwa.re/elburg/owo"
|
"Homepage" = "https://basedwa.re/elburg/owo"
|
||||||
"Repository" = "https://basedwa.re/elburg/owo.git"
|
"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