Compare commits

..

41 Commits

Author SHA1 Message Date
Jamie Hardt 6f2367c9fd Update pyproject.toml 2026-09-17 20:52:45 -07:00
jamie 8a23d7c702 Merge branch 'master' of https://github.com/iluvcapra/ptulsconv 2026-09-17 20:46:57 -07:00
Jamie Hardt 90f78c8fa2 Update CONTRIBUTING.md
Updating Agents policy
2026-05-03 12:16:07 -07:00
Jamie Hardt ebd0b54b6a Update .readthedocs.yaml 2026-03-30 11:54:59 -07:00
Jamie Hardt 98958c42f4 Update .readthedocs.yaml 2026-03-30 11:50:00 -07:00
Jamie Hardt bf9ff7b00f Documentation updates (#18)
* Update .readthedocs.yaml

Updated RTD version to `ubuntu-lts-latest`

* Update .readthedocs.yaml

RTD config fix
2026-03-30 11:46:52 -07:00
Jamie Hardt c45ca3a8fd Decline contributions from Large Language Models
Added a note regarding contributions from Large Language Models.
2026-02-15 15:49:26 -08:00
Jamie Hardt 1fd86a6d7d Switching to ruff linter (#17)
* Migrating to uv build and manager

* Updated Flake8 settings

* Updating github workflow

* Update python-package.yml

Removed redundant flake8 run

* Twiddle

* Version number in banner

* Changing to ruff linter

* Tweaking workflow

* Update python-package.yml

* Update __init__.py

* Update __init__.py

* removing flake8 file

* Doc notes

* Twiddling with RtD

---------

Co-authored-by: Jamie Hardt <jamie@squad51.us>
2026-01-21 21:56:05 -08:00
jamie e593996b65 Revert "Twiddling with RtD"
This reverts commit 32191791c6.
2025-09-20 23:20:24 -07:00
jamie 32191791c6 Twiddling with RtD 2025-09-20 23:00:49 -07:00
jamie 1ff910e4d2 Doc notes 2025-09-20 22:34:58 -07:00
jamie 0e8a77f548 removing flake8 file 2025-09-20 22:26:21 -07:00
Jamie Hardt 7058397f6f Update __init__.py 2025-09-20 22:24:10 -07:00
Jamie Hardt 16d7befd9f Update __init__.py 2025-09-20 22:21:56 -07:00
Jamie Hardt 2a3f4a7c18 Update python-package.yml 2025-09-20 22:19:14 -07:00
jamie d7fff23e5e Tweaking workflow 2025-09-20 22:12:55 -07:00
Jamie Hardt 757c3171e7 Merge branch 'master' into feat-uv 2025-09-20 22:10:15 -07:00
jamie 48dd7de07e Changing to ruff linter 2025-09-20 22:07:33 -07:00
Jamie Hardt dc259d54aa Update README.md 2025-09-20 16:39:06 -07:00
Jamie Hardt 09ed12fc8f Migrating to uv build and manager (#16)
* Migrating to uv build and manager

* Updated Flake8 settings

* Updating github workflow

* Update python-package.yml

* Removed redundant flake8 run

* Version number in banner

---------

Co-authored-by: Jamie Hardt <jamie@squad51.us>
2025-09-20 10:04:15 -07:00
jamie 2a69bf47c8 Version number in banner 2025-09-20 10:02:44 -07:00
jamie 01d2374a9b Merge branch 'feat-uv' of https://github.com/iluvcapra/ptulsconv into feat-uv 2025-09-20 09:47:07 -07:00
jamie 68e7eb89a9 Twiddle 2025-09-20 09:46:46 -07:00
Jamie Hardt 517fe3526a Update python-package.yml
Removed redundant flake8 run
2025-09-20 08:56:34 -07:00
jamie 7789c0df4c Updating github workflow 2025-09-19 10:43:20 -07:00
jamie d97dcc3e08 Updated Flake8 settings 2025-09-19 10:41:41 -07:00
jamie 615b2b5a2a Migrating to uv build and manager 2025-09-19 10:36:28 -07:00
jamie 4cd6ba1772 Updated for latest ptsl-py
Major version change, dependency changes
2025-09-19 09:52:24 -07:00
jamie 1942b323b3 Merge branch 'master' of https://github.com/iluvcapra/ptulsconv 2025-09-08 16:27:19 -07:00
jamie 7d297a7564 Nudged version 2025-09-08 16:26:40 -07:00
Jamie Hardt 54fa8f04a7 Update pyproject.toml
Nudge version to 3.0.0
2025-09-08 13:18:24 -07:00
Jamie Hardt dcc6113a63 Merge pull request #15 from iluvcapra/remove-3.8-support
Remove 3.8 Support
2025-09-08 13:14:47 -07:00
Jamie Hardt 04b9e35240 Update python-package.yml
Remove 3.8 from test matrix
2025-09-08 13:13:09 -07:00
Jamie Hardt f460022160 Update pyproject.toml
Removing 3.8 from classifiers
2025-09-08 13:11:23 -07:00
jamie 5c5cd84811 Merged upstream 2025-09-08 13:06:02 -07:00
Jamie Hardt ee90697be0 Update pythonpublish.yml
pypa/gh-action-pypi-publish@v1.13.0
2025-09-08 12:50:46 -07:00
Jamie Hardt 4a0d19ade1 Added 3.13 to classifiers. 2025-05-25 07:58:55 -07:00
Jamie Hardt df6c783c51 Added 3.13 to test matrix 2025-05-25 07:57:42 -07:00
Jamie Hardt f0b232b2b6 autopep 2025-05-25 07:54:50 -07:00
Jamie Hardt 519c6403ba Nudged version 2025-05-25 07:52:11 -07:00
Jamie Hardt d29c36eafa Fixed some bugs I introduced, fixed entrypoint 2025-05-25 07:50:37 -07:00
34 changed files with 122 additions and 76 deletions
-4
View File
@@ -1,4 +0,0 @@
[flake8]
per-file-ignores =
ptulsconv/__init__.py: F401
ptulsconv/docparser/__init__.py: F401
+5 -9
View File
@@ -16,7 +16,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [3.8, 3.9, "3.10", "3.11", "3.12"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v2.5.0
@@ -27,15 +27,11 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install flake8 pytest
pip install -e .
- name: Lint with flake8
pip install .
pip install --group dev .
- name: Lint with ruff
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 ptulsconv tests --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 ptulsconv tests --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
ruff check src
- name: Test with pytest
run: |
pytest
flake8 ptulsconv
+1 -11
View File
@@ -26,14 +26,4 @@ jobs:
- name: Build package
run: python -m build
- name: pypi-publish
uses: pypa/gh-action-pypi-publish@v1.12.4
# - name: Report to Mastodon
# uses: cbrgm/mastodon-github-action@v1.0.1
# with:
# message: |
# I just released a new version of ptulsconv, my ADR cue sheet generator!
# #python #protools #pdf #filmmaking
# ${{ github.server_url }}/${{ github.repository }}
# env:
# MASTODON_URL: ${{ secrets.MASTODON_URL }}
# MASTODON_ACCESS_TOKEN: ${{ secrets.MASTODON_ACCESS_TOKEN }}
uses: pypa/gh-action-pypi-publish@v1.13.0
+15 -7
View File
@@ -7,13 +7,19 @@ version: 2
# Set the version of Python and other tools you might need
build:
os: ubuntu-20.04
os: ubuntu-lts-latest
tools:
python: "3.10"
# You can also specify other tool versions:
# nodejs: "16"
# rust: "1.55"
# golang: "1.17"
python: "3.13"
jobs:
pre_install:
- pip install --upgrade pip
- pip install --upgrade --upgrade-strategy only-if-needed --group doc .
# build:
# html:
# - python -m sphinx -T -b html -d _build/doctrees -D language=en . $READTHEDOCS_OUTPUT/html
post_build:
- echo "Command run at 'post_build' step"
- echo `date`
# Build documentation in the docs/ directory with Sphinx
sphinx:
@@ -23,7 +29,9 @@ sphinx:
formats:
- pdf
#Optionally declare the Python requirements required to build your docs
# FIXME: We should be installing the `doc` dependency group and not the `doc`
# extra.
python:
install:
- method: pip
+35 -1
View File
@@ -1,4 +1,6 @@
# Contributing to ptulsconv
# Contributing
Contributions to `ptulsconv` are welcome!
## Testing
@@ -7,3 +9,35 @@ Before submitting PRs or patches, please make sure your branch passes all of the
```sh
~/ptulsconv$ pytest
```
## Regarding use of Agents
`ptulsconv` is an open-source project that is offered free for no commerical gain, and
is developed and maintained for educational and creative reasons.
If you use an agent or LLM to produce code for it you are missing out on the benefits
of contributing to an open-source project, particularly community, collaboration with
other developers and designers, and being able to learn and experiment without the
burden of deadlines or worrying about business cases or profits.
This project is supposed to be fun, do not let machines have fun for you.
We can't prevent you from using LLMs to contribute to this project but we ask you
abide by the following eitiquette when doing so:
* All communication with the maintainers must be written by a human in their own
voice. Never use an LLM to craft thread comments, discussion posts, issues, emails
or other correspondence with other developers or the maintainers.
* PRs must be submitted by a person. Do not allow an agent to submit its own PRs to
this project.
* Especially if you are a new contributor to this project, please submit only one PR
at a time and please restrict the subject matter of the PR to a specific unit,
module or tool. All submissions have to be reviewed and understood by the
maintainers before they can be merged.
Obviously we can't verify if you follow all of these rules but certain telltale
traits of LLM-predicted text or code will raise a flag: lack of brevity in
descriptions or code comments, large amounts of text describing your process or
steps that add little to understanding the changes you've made, use of an
obsequious tone or being excessively accomodating, immediately doing requests
without further discussion or clarifications.
+4
View File
@@ -23,6 +23,10 @@ The easiest way to install on your site is to use `pip`:
% pip3 install ptulsconv
If you are using `uv` you can also do a tool install...
% uv tool install ptulsconv
This will install the necessary libraries on your host and gives you
command-line access to the tool through an entry-point `ptulsconv`. In a
terminal window type `ptulsconv -h` for a list of available options.
-3
View File
@@ -1,3 +0,0 @@
"""
Parse and convert Pro Tools text exports
"""
+39 -30
View File
@@ -1,51 +1,60 @@
[project]
name = "ptulsconv"
license = { file = "LICENSE" }
version = "4.0.0"
description = "Read Pro Tools Text exports and generate PDF ADR Reports, JSON"
readme = "README.md"
requires-python = ">=3.9"
license-files = ["LICENSE"]
keywords = ["text-processing", "parsers", "film",
"broadcast", "editing", "editorial"]
classifiers = [
'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",
"Development Status :: 5 - Production/Stable",
"Topic :: Text Processing :: Filters"
]
requires-python = ">=3.8"
keywords = ["text-processing", "parsers", "film",
"broadcast", "editing", "editorial"]
[tool.poetry]
name = "ptulsconv"
version = "2.2.3"
description = "Read Pro Tools Text exports and generate PDF ADR Reports, JSON"
authors = ["Jamie Hardt <jamiehardt@me.com>"]
license = "MIT"
readme = "README.md"
[tool.poetry.dependencies]
python = "^3.8"
parsimonious = "^0.10.0"
tqdm = "^4.67.1"
reportlab = "^4.4.1"
py-ptsl = "^101.1.0"
sphinx_rtd_theme = {version= '>= 1.1.1', optional=true}
sphinx = {version= '>= 5.3.0', optional=true}
[tool.poetry.extras]
doc = ['sphinx', 'sphinx_rtd_theme']
[tool.poetry.scripts]
wavinfo = 'ptulsconv.__main__:main'
authors = [{name = "Jamie Hardt", email = "<jamiehardt@me.com>"}]
dependencies = [
"parsimonious>=0.10.0",
"py-ptsl>=600.0.0",
"reportlab>=4.4.4",
"tqdm>=4.67.1",
]
# [tool.uv.build-backend]
# data = { headers = "include/headers", scripts = "bin" }
[project.urls]
Source = 'https://github.com/iluvcapra/ptulsconv'
Issues = 'https://github.com/iluvcapra/ptulsconv/issues'
Documentation = 'https://ptulsconv.readthedocs.io/'
[project.optional-dependencies]
doc = [
"sphinx>=7.4.7",
"sphinx-rtd-theme>=3.0.2",
]
[project.scripts]
ptulsconv = "ptulsconv:__main__.main"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
requires = ["uv_build>=0.8.18,<0.9.0"]
build-backend = "uv_build"
[dependency-groups]
dev = [
"ruff==0.13.1",
]
doc = [
"sphinx>=7.4.7",
"sphinx-rtd-theme>=3.0.2",
]
+5
View File
@@ -0,0 +1,5 @@
"""
Parse and convert Pro Tools text exports
"""
__copyright__ = "ptulsconv (c) 2025 Jamie Hardt. All rights reserved."
@@ -2,6 +2,8 @@ from optparse import OptionParser, OptionGroup
import datetime
import sys
import importlib.metadata
from ptulsconv import __name__
import ptulsconv
from ptulsconv.commands import convert
@@ -83,6 +85,8 @@ def main():
parser.add_option_group(informational_options)
version = importlib.metadata.version(ptulsconv.__name__)
print_banner_style(f"{ptulsconv.__name__} - version {version}")
print_banner_style(ptulsconv.__copyright__)
(options, args) = parser.parse_args(sys.argv)
@@ -55,8 +55,8 @@ def output_adr_csv(lines: List[ADRLine], time_format: TimecodeFormat):
directories for each character number and name pair, and within that
directory, creates a CSV file for each reel.
"""
reels = set([ln.reel for ln in lines])
reels: set[str | None] = set([ln.reel for ln in lines])
for n, name in [(n.character_id, n.character_name) for n in lines]:
dir_name = "%s_%s" % (n, name)
os.makedirs(dir_name, exist_ok=True)
@@ -2,4 +2,7 @@
Docparser module
"""
from .pt_doc_parser import parse_document
__all__ = [parse_document]
@@ -79,13 +79,13 @@ def make_doc_template(page_size, filename, document_title,
header_box, page_box = page_box.split_y(0.75 * inch, direction='d')
title_box, report_box = header_box.split_x(3.5 * inch, direction='r')
on_page_lambda = (lambda c, _:
draw_header_footer(c, report_box, title_box,
footer_box, title=title,
supervisor=supervisor,
document_subheader=document_subheader,
client=client,
doc_title=document_header))
def on_page_lambda(c, _):
draw_header_footer(c, report_box, title_box,
footer_box, title=title,
supervisor=supervisor,
document_subheader=document_subheader,
client=client,
doc_title=document_header)
frames = [Frame(page_box.min_x, page_box.min_y,
page_box.width, page_box.height)]