Compare commits

...

17 Commits

Author SHA1 Message Date
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 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 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
34 changed files with 128 additions and 81 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", "3.13"]
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
+21 -12
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,10 +29,13 @@ sphinx:
formats:
- pdf
# FIXME: We should be installing the `doc` dependency group and not the `doc`
# extra.
#Optionally declare the Python requirements required to build your docs
python:
install:
- method: pip
path: .
extra_requirements:
- doc
# python:
# install:
# - method: pip
# path: .
# extra_requirements:
# - doc
+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
"""
+38 -30
View File
@@ -1,11 +1,17 @@
[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",
@@ -14,39 +20,41 @@ classifiers = [
"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.4"
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]
ptulsconv = '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,9 @@ from optparse import OptionParser, OptionGroup
import datetime
import sys
import importlib.metadata
from ptulsconv import __name__
import ptulsconv
from ptulsconv.commands import convert
from ptulsconv.reporting import print_status_style, \
@@ -82,7 +85,9 @@ def main():
parser.add_option_group(informational_options)
print_banner_style(ptulsconv.__name__)
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, _:
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))
doc_title=document_header)
frames = [Frame(page_box.min_x, page_box.min_y,
page_box.width, page_box.height)]