mirror of
https://github.com/iluvcapra/ptulsconv.git
synced 2025-12-31 17:00:46 +00:00
Compare commits
43 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 32191791c6 | |||
| 1ff910e4d2 | |||
| 0e8a77f548 | |||
|
|
7058397f6f | ||
|
|
16d7befd9f | ||
|
|
2a3f4a7c18 | ||
| d7fff23e5e | |||
|
|
757c3171e7 | ||
| 48dd7de07e | |||
|
|
dc259d54aa | ||
|
|
09ed12fc8f | ||
| 2a69bf47c8 | |||
| 01d2374a9b | |||
| 68e7eb89a9 | |||
|
|
517fe3526a | ||
| 7789c0df4c | |||
| d97dcc3e08 | |||
| 615b2b5a2a | |||
| 4cd6ba1772 | |||
| 1942b323b3 | |||
| 7d297a7564 | |||
|
|
54fa8f04a7 | ||
|
|
dcc6113a63 | ||
|
|
04b9e35240 | ||
|
|
f460022160 | ||
| 5c5cd84811 | |||
|
|
ee90697be0 | ||
|
|
4a0d19ade1 | ||
|
|
df6c783c51 | ||
|
|
f0b232b2b6 | ||
|
|
519c6403ba | ||
|
|
d29c36eafa | ||
|
|
2095a1fb75 | ||
|
|
70defcc46c | ||
|
|
d156b6df89 | ||
|
|
3ba9d7933e | ||
|
|
b0c40ee0b6 | ||
|
|
921b0f07af | ||
|
|
57764bc859 | ||
|
|
779c93282c | ||
|
|
9684be6c7e | ||
|
|
484a70fc8e | ||
|
|
5aa005c317 |
4
.flake8
4
.flake8
@@ -1,4 +0,0 @@
|
|||||||
[flake8]
|
|
||||||
per-file-ignores =
|
|
||||||
ptulsconv/__init__.py: F401
|
|
||||||
ptulsconv/docparser/__init__.py: F401
|
|
||||||
14
.github/workflows/python-package.yml
vendored
14
.github/workflows/python-package.yml
vendored
@@ -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"]
|
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2.5.0
|
- uses: actions/checkout@v2.5.0
|
||||||
@@ -27,15 +27,11 @@ 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 pytest
|
pip install .
|
||||||
pip install -e .
|
pip install --group dev .
|
||||||
- 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 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
|
- name: Test with pytest
|
||||||
run: |
|
run: |
|
||||||
pytest
|
pytest
|
||||||
flake8 ptulsconv
|
|
||||||
|
|||||||
12
.github/workflows/pythonpublish.yml
vendored
12
.github/workflows/pythonpublish.yml
vendored
@@ -26,14 +26,4 @@ jobs:
|
|||||||
- name: Build package
|
- name: Build package
|
||||||
run: python -m build
|
run: python -m build
|
||||||
- name: pypi-publish
|
- name: pypi-publish
|
||||||
uses: pypa/gh-action-pypi-publish@v1.12.4
|
uses: pypa/gh-action-pypi-publish@v1.13.0
|
||||||
# - 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 }}
|
|
||||||
|
|||||||
@@ -10,10 +10,15 @@ build:
|
|||||||
os: ubuntu-20.04
|
os: ubuntu-20.04
|
||||||
tools:
|
tools:
|
||||||
python: "3.10"
|
python: "3.10"
|
||||||
# You can also specify other tool versions:
|
jobs:
|
||||||
# nodejs: "16"
|
pre_install:
|
||||||
# rust: "1.55"
|
- pip install --upgrade --upgrade-strategy only-if-needed --group doc .
|
||||||
# golang: "1.17"
|
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
|
# Build documentation in the docs/ directory with Sphinx
|
||||||
sphinx:
|
sphinx:
|
||||||
@@ -23,10 +28,13 @@ sphinx:
|
|||||||
formats:
|
formats:
|
||||||
- pdf
|
- 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
|
#Optionally declare the Python requirements required to build your docs
|
||||||
python:
|
# python:
|
||||||
install:
|
# install:
|
||||||
- method: pip
|
# - method: pip
|
||||||
path: .
|
# path: .
|
||||||
extra_requirements:
|
# extra_requirements:
|
||||||
- doc
|
# - doc
|
||||||
|
|||||||
@@ -23,6 +23,10 @@ The easiest way to install on your site is to use `pip`:
|
|||||||
|
|
||||||
% pip3 install ptulsconv
|
% 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
|
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
|
command-line access to the tool through an entry-point `ptulsconv`. In a
|
||||||
terminal window type `ptulsconv -h` for a list of available options.
|
terminal window type `ptulsconv -h` for a list of available options.
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
# For the full list of built-in configuration values, see the documentation:
|
# For the full list of built-in configuration values, see the documentation:
|
||||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
||||||
|
|
||||||
|
import importlib
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
|
|
||||||
@@ -15,9 +16,9 @@ import ptulsconv
|
|||||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
||||||
|
|
||||||
project = 'ptulsconv'
|
project = 'ptulsconv'
|
||||||
copyright = '2019-2023 Jamie Hardt. All rights reserved'
|
copyright = '2019-2025 Jamie Hardt. All rights reserved'
|
||||||
# author = ptulsconv.__author__
|
version = "Version 2"
|
||||||
release = ptulsconv.__version__
|
release = importlib.metadata.version("ptulsconv")
|
||||||
|
|
||||||
# -- General configuration ---------------------------------------------------
|
# -- General configuration ---------------------------------------------------
|
||||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
||||||
|
|||||||
@@ -6,7 +6,12 @@ Usage Form
|
|||||||
|
|
||||||
Invocations of ptulsconv take the following form:
|
Invocations of ptulsconv take the following form:
|
||||||
|
|
||||||
ptulsconv [options] IN_FILE
|
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.
|
||||||
|
|
||||||
|
|
||||||
Flags
|
Flags
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
"""
|
|
||||||
Parse and convert Pro Tools text exports
|
|
||||||
"""
|
|
||||||
@@ -1,49 +1,60 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "ptulsconv"
|
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 = [
|
classifiers = [
|
||||||
'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",
|
||||||
"Development Status :: 5 - Production/Stable",
|
"Development Status :: 5 - Production/Stable",
|
||||||
"Topic :: Text Processing :: Filters"
|
"Topic :: Text Processing :: Filters"
|
||||||
]
|
]
|
||||||
requires-python = ">=3.8"
|
authors = [{name = "Jamie Hardt", email = "<jamiehardt@me.com>"}]
|
||||||
keywords = ["text-processing", "parsers", "film",
|
dependencies = [
|
||||||
"broadcast", "editing", "editorial"]
|
"parsimonious>=0.10.0",
|
||||||
|
"py-ptsl>=600.0.0",
|
||||||
[tool.poetry]
|
"reportlab>=4.4.4",
|
||||||
name = "ptulsconv"
|
"tqdm>=4.67.1",
|
||||||
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]
|
[project.urls]
|
||||||
Source = 'https://github.com/iluvcapra/ptulsconv'
|
Source = 'https://github.com/iluvcapra/ptulsconv'
|
||||||
Issues = 'https://github.com/iluvcapra/ptulsconv/issues'
|
Issues = 'https://github.com/iluvcapra/ptulsconv/issues'
|
||||||
Documentation = 'https://ptulsconv.readthedocs.io/'
|
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]
|
[build-system]
|
||||||
requires = ["poetry-core"]
|
requires = ["uv_build>=0.8.18,<0.9.0"]
|
||||||
build-backend = "poetry.core.masonry.api"
|
build-backend = "uv_build"
|
||||||
|
|
||||||
|
[dependency-groups]
|
||||||
|
dev = [
|
||||||
|
"ruff>=0.13.1",
|
||||||
|
]
|
||||||
|
doc = [
|
||||||
|
"sphinx>=7.4.7",
|
||||||
|
"sphinx-rtd-theme>=3.0.2",
|
||||||
|
]
|
||||||
|
|||||||
5
src/ptulsconv/__init__.py
Normal file
5
src/ptulsconv/__init__.py
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
"""
|
||||||
|
Parse and convert Pro Tools text exports
|
||||||
|
"""
|
||||||
|
|
||||||
|
__copyright__ = "ptulsconv (c) 2025 Jamie Hardt. All rights reserved."
|
||||||
@@ -2,7 +2,10 @@ from optparse import OptionParser, OptionGroup
|
|||||||
import datetime
|
import datetime
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from ptulsconv import __name__, __copyright__
|
import importlib.metadata
|
||||||
|
|
||||||
|
from ptulsconv import __name__
|
||||||
|
import ptulsconv
|
||||||
from ptulsconv.commands import convert
|
from ptulsconv.commands import convert
|
||||||
from ptulsconv.reporting import print_status_style, \
|
from ptulsconv.reporting import print_status_style, \
|
||||||
print_banner_style, print_section_header_style, \
|
print_banner_style, print_section_header_style, \
|
||||||
@@ -82,7 +85,9 @@ def main():
|
|||||||
|
|
||||||
parser.add_option_group(informational_options)
|
parser.add_option_group(informational_options)
|
||||||
|
|
||||||
print_banner_style(__copyright__)
|
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)
|
(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
|
directories for each character number and name pair, and within that
|
||||||
directory, creates a CSV file for each reel.
|
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]:
|
for n, name in [(n.character_id, n.character_name) for n in lines]:
|
||||||
dir_name = "%s_%s" % (n, name)
|
dir_name = "%s_%s" % (n, name)
|
||||||
os.makedirs(dir_name, exist_ok=True)
|
os.makedirs(dir_name, exist_ok=True)
|
||||||
@@ -2,4 +2,7 @@
|
|||||||
Docparser module
|
Docparser module
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
from .pt_doc_parser import parse_document
|
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')
|
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')
|
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,
|
draw_header_footer(c, report_box, title_box,
|
||||||
footer_box, title=title,
|
footer_box, title=title,
|
||||||
supervisor=supervisor,
|
supervisor=supervisor,
|
||||||
document_subheader=document_subheader,
|
document_subheader=document_subheader,
|
||||||
client=client,
|
client=client,
|
||||||
doc_title=document_header))
|
doc_title=document_header)
|
||||||
|
|
||||||
frames = [Frame(page_box.min_x, page_box.min_y,
|
frames = [Frame(page_box.min_x, page_box.min_y,
|
||||||
page_box.width, page_box.height)]
|
page_box.width, page_box.height)]
|
||||||
Reference in New Issue
Block a user