1 Commits

Author SHA1 Message Date
Jamie Hardt
8e466ea9fc Added poetry.lock to gitignore 2025-05-24 22:29:06 -07:00
37 changed files with 86 additions and 140 deletions

4
.flake8 Normal file
View File

@@ -0,0 +1,4 @@
[flake8]
per-file-ignores =
ptulsconv/__init__.py: F401
ptulsconv/docparser/__init__.py: F401

View File

@@ -16,7 +16,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
python-version: [3.8, 3.9, "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v2.5.0
@@ -27,11 +27,15 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install .
pip install --group dev .
- name: Lint with ruff
python -m pip install flake8 pytest
pip install -e .
- name: Lint with flake8
run: |
ruff check src
# 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
- name: Test with pytest
run: |
pytest
flake8 ptulsconv

View File

@@ -26,4 +26,14 @@ jobs:
- name: Build package
run: python -m build
- name: pypi-publish
uses: pypa/gh-action-pypi-publish@v1.13.0
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 }}

2
.gitignore vendored
View File

@@ -109,3 +109,5 @@ lcov.info
.vim
.vscode
poetry.lock

View File

@@ -7,19 +7,13 @@ version: 2
# Set the version of Python and other tools you might need
build:
os: ubuntu-lts-latest
os: ubuntu-20.04
tools:
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`
python: "3.10"
# You can also specify other tool versions:
# nodejs: "16"
# rust: "1.55"
# golang: "1.17"
# Build documentation in the docs/ directory with Sphinx
sphinx:
@@ -29,13 +23,10 @@ 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

View File

@@ -1,6 +1,4 @@
# Contributing
Contributions to `ptulsconv` are welcome!
# Contributing to ptulsconv
## Testing
@@ -9,35 +7,3 @@ 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.

View File

@@ -23,10 +23,6 @@ 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.

View File

@@ -3,7 +3,6 @@
# For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
import importlib
import sys
import os
@@ -16,9 +15,9 @@ import ptulsconv
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
project = 'ptulsconv'
copyright = '2019-2025 Jamie Hardt. All rights reserved'
version = "Version 2"
release = importlib.metadata.version("ptulsconv")
copyright = '2019-2023 Jamie Hardt. All rights reserved'
# author = ptulsconv.__author__
release = ptulsconv.__version__
# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration

View File

@@ -6,12 +6,7 @@ Usage Form
Invocations of ptulsconv take the following form:
ptulsconv [options] [IN_FILE]
`IN_FILE` is a Pro Tools text export in UTF-8 encoding. If `IN_FILE` is
missing, `ptulsconv` will attempt to connect to Pro Tools and read cue data
from the selected tracks of the currently-open session.
ptulsconv [options] IN_FILE
Flags

3
ptulsconv/__init__.py Normal file
View File

@@ -0,0 +1,3 @@
"""
Parse and convert Pro Tools text exports
"""

View File

@@ -2,10 +2,7 @@ from optparse import OptionParser, OptionGroup
import datetime
import sys
import importlib.metadata
from ptulsconv import __name__
import ptulsconv
from ptulsconv import __name__, __copyright__
from ptulsconv.commands import convert
from ptulsconv.reporting import print_status_style, \
print_banner_style, print_section_header_style, \
@@ -85,9 +82,7 @@ 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__)
print_banner_style(__copyright__)
(options, args) = parser.parse_args(sys.argv)

View File

@@ -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)

View File

@@ -2,7 +2,4 @@
Docparser module
"""
from .pt_doc_parser import parse_document
__all__ = [parse_document]

View File

@@ -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')
def on_page_lambda(c, _):
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)
doc_title=document_header))
frames = [Frame(page_box.min_x, page_box.min_y,
page_box.width, page_box.height)]

View File

@@ -1,60 +1,49 @@
[project]
name = "ptulsconv"
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"]
license = { file = "LICENSE" }
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"
]
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",
]
requires-python = ">=3.8"
keywords = ["text-processing", "parsers", "film",
"broadcast", "editing", "editorial"]
[tool.poetry]
name = "ptulsconv"
version = "2.2.2"
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"
[tool.poetry.extras]
doc = ['sphinx', 'sphinx_rtd_theme']
[tool.poetry.scripts]
wavinfo = 'ptulsconv.__main__:main'
# [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 = ["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",
]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

View File

@@ -1,5 +0,0 @@
"""
Parse and convert Pro Tools text exports
"""
__copyright__ = "ptulsconv (c) 2025 Jamie Hardt. All rights reserved."