Merge branch 'master' of https://github.com/iluvcapra/wavinfo into feature-smpl

This commit is contained in:
Jamie Hardt
2024-11-25 10:52:46 -08:00
8 changed files with 67 additions and 42 deletions

2
.gitignore vendored
View File

@@ -110,3 +110,5 @@ venv_docs/
.DS_Store
.vscode/
poetry.lock

View File

@@ -12,24 +12,25 @@
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
import importlib
import os
import sys
sys.path.insert(0, os.path.abspath('../..'))
sys.path.insert(0, os.path.abspath("../../.."))
print(sys.path)
import wavinfo
import importlib
# -- Project information -----------------------------------------------------
project = u'wavinfo'
copyright = u'2018-2023, Jamie Hardt'
copyright = u'2018-2024, Jamie Hardt'
author = u'Jamie Hardt'
# The short X.Y version
version = wavinfo.__short_version__
version = "3.1"
# The full version, including alpha/beta/rc tags
release = wavinfo.__version__
release = importlib.metadata.version("wavinfo")
# -- General configuration ---------------------------------------------------

View File

@@ -1,13 +1,16 @@
[build-system]
requires = ["flit_core >=3.2,<4"]
build-backend = "flit_core.buildapi"
# https://python-poetry.org/docs/pyproject/
[project]
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
[tool.poetry]
name = "wavinfo"
authors = [{name = "Jamie Hardt", email = "jamiehardt@me.com"}]
version = "3.0.1"
description = "Probe WAVE files for all metadata"
authors = ["Jamie Hardt <jamiehardt@me.com>"]
license = "MIT"
readme = "README.md"
dynamic = ["version", "description"]
requires-python = "~=3.8"
classifiers = [
'Development Status :: 5 - Production/Stable',
'License :: OSI Approved :: MIT License',
@@ -20,9 +23,10 @@ classifiers = [
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13"
]
dependencies = [
"lxml ~= 5.3.0"
]
homepage = "https://github.com/iluvcapra/wavinfo"
repository = "https://github.com/iluvcapra/wavinfo.git"
documentation = "https://wavinfo.readthedocs.io/"
urls.Tracker = 'https://github.com/iluvcapra/wavinfo/issues'
keywords = [
'waveform',
'metadata',
@@ -35,29 +39,17 @@ keywords = [
'broadcast'
]
[tool.flit.module]
name = "wavinfo"
[tool.poetry.extras]
doc = ['sphinx', 'sphinx_rtd_theme']
[project.optional-dependencies]
doc = [
'sphinx >= 5.3.0',
'sphinx_rtd_theme >= 1.1.1',
]
[project.urls]
Home = "https://github.com/iluvcapra/wavinfo"
Documentation = "https://wavinfo.readthedocs.io/"
Source = "https://github.com/iluvcapra/wavinfo.git"
Issues = 'https://github.com/iluvcapra/wavinfo/issues'
[project.entry_points.console_scripts]
[tool.poetry.scripts]
wavinfo = 'wavinfo.__main__:main'
[project.scripts]
wavinfo = "wavinfo.__main__:main"
[tool.flit.external-data]
directory = "data"
[tool.poetry.dependencies]
python = "^3.8"
lxml = "~= 5.3.0"
sphinx_rtd_theme = {version= '>= 1.1.1', optional=true}
sphinx = {version= '>= 5.3.0', optional=true}
[tool.pyright]
typeCheckingMode = "basic"

View File

@@ -4,6 +4,3 @@ Probe WAVE Files for iXML, Broadcast-WAVE and other metadata.
from .wave_reader import WavInfoReader
from .riff_parser import WavInfoEOFError
__version__ = '3.0.0'
__short_version__ = '3.0.0'

View File

@@ -1,11 +1,12 @@
import datetime
from . import WavInfoReader
from . import __version__
import datetime
from optparse import OptionParser
import sys
import os
import json
from enum import Enum
import importlib.metadata
from base64 import b64encode
@@ -24,10 +25,22 @@ class MissingDataError(RuntimeError):
def main():
version = importlib.metadata.version('wavinfo')
manpath = os.path.dirname(__file__) + "/man"
parser = OptionParser()
parser.usage = 'wavinfo (--adm | --ixml) <FILE> +'
# parser.add_option('--install-manpages',
# help="Install manual pages for wavinfo",
# default=False,
# action='store_true')
parser.add_option('--man',
help="Read the manual and exit.",
default=False,
action='store_true')
parser.add_option('--adm', dest='adm',
help='Output ADM XML',
default=False,
@@ -39,6 +52,26 @@ def main():
action='store_true')
(options, args) = parser.parse_args(sys.argv)
# if options.install_manpages:
# print("Installing manpages...")
# print(f"Docfiles at {__file__}")
# return
if options.man:
import shlex
print("Which man page?")
print("1) wavinfo usage")
print("7) General info on Wave file metadata")
m = input("?> ")
args = ["man", "-M", manpath, "1", "wavinfo"]
if m.startswith("7"):
args[3] = "7"
os.system(shlex.join(args))
return
for arg in args[1:]:
try:
this_file = WavInfoReader(path=arg)
@@ -56,7 +89,7 @@ def main():
ret_dict = {
'filename': arg,
'run_date': datetime.datetime.now().isoformat(),
'application': "wavinfo " + __version__,
'application': f"wavinfo {version}",
'scopes': {}
}
for scope, name, value in this_file.walk():

View File

@@ -17,7 +17,7 @@ With no options,
will emit a JSON (Javascript Object Notation) object containing all
detected metadata.
.IP "\-\-adm"
Output any Audio Definition Model (ADM) metadata in
Output Audio Definition Model (ADM) XML metadata in
.BR FILE .
.IP "\-\-ixml"
Output any iXML metdata in