23 Commits

Author SHA1 Message Date
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
22 changed files with 58 additions and 56 deletions

View File

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

View File

@@ -16,7 +16,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: 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: steps:
- uses: actions/checkout@v2.5.0 - uses: actions/checkout@v2.5.0
@@ -27,8 +27,8 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
python -m pip install --upgrade pip python -m pip install --upgrade pip
python -m pip install pytest python -m pip install --group dev
python -m pip install -e . python -m pip install .
- name: Setup FFmpeg - name: Setup FFmpeg
uses: FedericoCarboni/setup-ffmpeg@v2 uses: FedericoCarboni/setup-ffmpeg@v2
- name: Test with pytest - 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 # 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 # 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: on:
push: push:
@@ -11,12 +11,11 @@ on:
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
python-version: ["3.11"] python-version: ["3.13", "3.14"]
steps: steps:
- uses: actions/checkout@v2.5.0 - uses: actions/checkout@v2.5.0
@@ -27,14 +26,8 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
python -m pip install --upgrade pip python -m pip install --upgrade pip
python -m pip install flake8 python -m pip install --group dev
python -m pip install -e . python -m pip install .
- name: Lint with flake8 - name: Lint with ruff
run: | run: |
# stop the build if there are Python syntax errors or undefined names ruff check src
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

View File

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

@@ -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) ![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) [![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) [![codecov](https://codecov.io/gh/iluvcapra/wavinfo/branch/master/graph/badge.svg?token=9DZQfZENYv)](https://codecov.io/gh/iluvcapra/wavinfo)
# wavinfo # wavinfo

View File

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

View File

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