36 Commits

Author SHA1 Message Date
95ba34187a Docs 2025-10-09 23:22:26 -07:00
4d2dfcd370 Docs 2025-10-09 23:21:43 -07:00
717b6a4117 Docs 2025-10-09 23:19:05 -07:00
7393afac95 Docs 2025-10-09 23:17:46 -07:00
e9450cd65a Docs 2025-10-09 23:16:11 -07:00
51b1a2e8b4 Docs 2025-10-09 23:15:19 -07:00
53303232b4 Docs 2025-10-09 23:11:00 -07:00
3519a0251f Docs 2025-10-09 23:09:51 -07:00
79ec1649c4 Docs 2025-10-09 23:09:04 -07:00
7c3f4c9b5e Docs 2025-10-09 23:08:32 -07:00
2e8224cb3c Docs fix 2025-10-09 23:07:39 -07:00
8ef4186b4c Merge branch 'master' of https://github.com/iluvcapra/wavinfo 2025-10-09 23:02:32 -07:00
cd5346c1cb Docs fixups 2025-10-09 23:02:15 -07:00
Jamie Hardt
925bf4f8a6 Update pythonpublish.yml 2025-10-09 22:55:13 -07:00
Jamie Hardt
e98ba0bf07 Update pythonpublish.yml 2025-10-09 22:48:40 -07:00
afca634dc3 modernized build action 2025-10-09 22:44:58 -07:00
Jamie Hardt
df9ae0f4d6 Update pyproject.toml 2025-10-09 22:34:45 -07:00
Jamie Hardt
2f23bcb982 Merge pull request #40 from iluvcapra/maint-uv
Build modernization
2025-10-09 22:33:55 -07:00
5e641b0963 Removing .flake8 file 2025-10-09 22:32:10 -07:00
1b57ad0fac Typo 2025-10-09 22:26:04 -07:00
c7a34e0064 Added 3.14 to test matrix and dropped 3.8 2025-10-09 22:24:45 -07:00
6b788484da Typo 2025-10-09 22:22:12 -07:00
76905f1a40 Updated name of lint workflow 2025-10-09 22:21:11 -07:00
9ac06040a2 Making changes to the workflows 2025-10-09 22:16:12 -07:00
1b78f5b821 Reorganized pyproject, nudged version 2025-10-09 22:08:36 -07:00
03d718b4ad Fixed dumb typo 2025-10-09 22:06:48 -07:00
61f79760e6 Initial work on uv build system
Moved module into src/ and modernized pyproject.toml
2025-10-09 21:49:33 -07:00
Jamie Hardt
afe5ea9ed3 Update pythonpublish.yml
Updated publish action to latest version
2025-09-08 12:49:05 -07:00
Jamie Hardt
c1205d52e8 Merge pull request #38 from iluvcapra/maint-no-mastodon
Workflow Spruce-up
2024-11-26 12:00:18 -08:00
Jamie Hardt
b82b6b6d43 Fixed publish to Bluesky worksflow 2024-11-26 11:56:51 -08:00
Jamie Hardt
8ef664266f Updated flake8 step to use python 3.13 2024-11-26 10:30:24 -08:00
Jamie Hardt
dfb7e34fc7 Update pythonpublish.yml
Updated `checkout` and `setup-python` versions
2024-11-25 18:41:36 -08:00
Jamie Hardt
2ebdefaab5 Update pythonpublish.yml 2024-11-25 18:37:15 -08:00
Jamie Hardt
c609e22270 Update pythonpublish.yml 2024-11-25 18:33:53 -08:00
Jamie Hardt
ef9c39f1b6 Update pythonpublish.yml
Adding posting to Bluesky
2024-11-25 18:32:19 -08:00
Jamie Hardt
cc9d884ea8 Update pythonpublish.yml
Removed Mastodon notification step
2024-11-25 18:07:17 -08:00
24 changed files with 70 additions and 71 deletions

View File

@@ -1,3 +0,0 @@
[flake8]
per-file-ignores =
wavinfo/__init__.py: F401

View File

@@ -16,7 +16,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@v2.5.0
@@ -27,8 +27,8 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install pytest
python -m pip install -e .
python -m pip install --group dev
python -m pip install .
- name: Setup FFmpeg
uses: FedericoCarboni/setup-ffmpeg@v2
- name: Test with pytest

View File

@@ -1,7 +1,7 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
name: Flake8
name: Lint with Ruff
on:
push:
@@ -11,12 +11,11 @@ on:
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.11"]
python-version: ["3.13", "3.14"]
steps:
- uses: actions/checkout@v2.5.0
@@ -27,14 +26,8 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install flake8
python -m pip install -e .
- name: Lint with flake8
python -m pip install --group dev
python -m pip install .
- name: Lint with ruff
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Lint with flake8
run: |
flake8 wavinfo
ruff check src

View File

@@ -8,29 +8,33 @@ jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4.2.2
- name: Set up Python
uses: actions/setup-python@v1
uses: actions/setup-python@v5.3.0
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools build wheel twine lxml
- name: Build and publish
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_APIKEY }}
- name: Setup uv and Handle Its Cache
# You may pin to the exact commit or the version.
# uses: hynek/setup-cached-uv@757bedc3f972eb7227a1aa657651f15a8527c817
uses: hynek/setup-cached-uv@v2.3.0
- name: Build
run: |
python -m build .
twine upload dist/*
- name: Report to Mastodon
uses: cbrgm/mastodon-github-action@v1.0.1
uv build --wheel
- name: Publish to Pypi
uses: pypa/gh-action-pypi-publish@v1.13.0
with:
message: |
I just released a new version of wavinfo, my library for reading WAVE file metadata!
#sounddesign #filmmaking #audio #python
${{ github.server_url }}/${{ github.repository }}
env:
MASTODON_URL: ${{ secrets.MASTODON_URL }}
MASTODON_ACCESS_TOKEN: ${{ secrets.MASTODON_ACCESS_TOKEN }}
password: ${{ secrets.PYPI_APIKEY }}
# - name: Send Bluesky Post
# uses: myConsciousness/bluesky-post@v5
# with:
# text: |
# I've released a new version of wavinfo, my module for
# reading WAVE metadata.
# link-preview-url: ${{ github.server_url }}/${{ github.repository }}
# identifier: ${{ secrets.BLUESKY_APP_USER }}
# password: ${{ secrets.BLUESKY_APP_PASSWORD }}
# service: bsky.social
# retry-count: 1

View File

@@ -9,11 +9,11 @@ version: 2
build:
os: ubuntu-20.04
tools:
python: "3.10"
# You can also specify other tool versions:
# nodejs: "16"
# rust: "1.55"
# golang: "1.17"
python: "3.13"
jobs:
install:
- pip install --upgrade pip
- pip install --group 'doc'
# Build documentation in the docs/ directory with Sphinx
sphinx:
@@ -28,5 +28,3 @@ python:
install:
- method: pip
path: .
extra_requirements:
- doc

View File

@@ -2,7 +2,7 @@
![GitHub last commit](https://img.shields.io/github/last-commit/iluvcapra/wavinfo) [![Documentation Status](https://readthedocs.org/projects/wavinfo/badge/?version=latest)](https://wavinfo.readthedocs.io/en/latest/?badge=latest) ![](https://img.shields.io/github/license/iluvcapra/wavinfo.svg)
[![Tests](https://github.com/iluvcapra/wavinfo/actions/workflows/python-package.yml/badge.svg)](https://github.com/iluvcapra/wavinfo/actions/workflows/python-package.yml)
[![Flake8](https://github.com/iluvcapra/wavinfo/actions/workflows/python-flake8.yml/badge.svg)](https://github.com/iluvcapra/wavinfo/actions/workflows/python-flake8.yml)
[![Ruff](https://github.com/iluvcapra/wavinfo/actions/workflows/python-ruff.yml/badge.svg)](https://github.com/iluvcapra/wavinfo/actions/workflows/python-ruff.yml)
[![codecov](https://codecov.io/gh/iluvcapra/wavinfo/branch/master/graph/badge.svg?token=9DZQfZENYv)](https://codecov.io/gh/iluvcapra/wavinfo)
# wavinfo

View File

@@ -12,25 +12,24 @@
# 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 importlib
import os
import sys
sys.path.insert(0, os.path.abspath('../..'))
sys.path.insert(0, os.path.abspath("../../.."))
sys.path.insert(0, os.path.abspath('../../src'))
sys.path.insert(0, os.path.abspath("../../../src"))
print(sys.path)
import importlib
# -- Project information -----------------------------------------------------
project = u'wavinfo'
copyright = u'2018-2024, Jamie Hardt'
copyright = u'2018-2025, Jamie Hardt'
author = u'Jamie Hardt'
# The short X.Y version
version = "3.1"
version = "4.0"
# The full version, including alpha/beta/rc tags
release = importlib.metadata.version("wavinfo")
release = "4.0.0"
# release = importlib.metadata.version("wavinfo")
# -- General configuration ---------------------------------------------------

View File

@@ -1,27 +1,26 @@
# https://python-poetry.org/docs/pyproject/
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
requires = ["uv_build>=0.8.18,<0.9.0"]
build-backend = "uv_build"
[tool.poetry]
[project]
name = "wavinfo"
version = "3.1.0"
version = "4.0.0"
description = "Probe WAVE files for all metadata"
authors = ["Jamie Hardt <jamiehardt@me.com>"]
authors = [{ name = "Jamie Hardt", email = "jamiehardt@me.com"}]
license = "MIT"
readme = "README.md"
requires-python = ">=3.8"
classifiers = [
'Development Status :: 5 - Production/Stable',
'License :: OSI Approved :: MIT License',
'Topic :: Multimedia',
'Topic :: Multimedia :: Sound/Audio',
"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",
"Programming Language :: Python :: 3.13"
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14"
]
homepage = "https://github.com/iluvcapra/wavinfo"
repository = "https://github.com/iluvcapra/wavinfo.git"
@@ -39,17 +38,22 @@ keywords = [
'broadcast'
]
[tool.poetry.extras]
doc = ['sphinx', 'sphinx_rtd_theme']
dependencies = [
"lxml>=6.0.2",
]
[tool.poetry.scripts]
wavinfo = 'wavinfo.__main__:main'
[dependency-groups]
dev = [
"pytest>=8.3.5",
"ruff>=0.14.0",
]
doc = [
"sphinx>=7.1.2",
"sphinx-rtd-theme>=3.0.2",
]
[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}
[project.scripts]
wavinfo = "wavinfo:__main__.main"
[tool.pyright]
typeCheckingMode = "basic"
@@ -65,3 +69,4 @@ disable = [
"R0913", # (too-many-arguments)
"W0105", # (pointless-string-statement)
]

View File

@@ -2,5 +2,8 @@
Probe WAVE Files for iXML, Broadcast-WAVE and other metadata.
"""
__all__ = ['WavInfoReader', 'WavInfoEOFError']
from .wave_reader import WavInfoReader
from .riff_parser import WavInfoEOFError